-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Neumann boundary conditions and different geometries #968
Comments
I don't think I can help you, but wanted to say that Neumann boundary conditions are not named for John von Neumann, but German mathematician Carl Neumann. |
Thanks, edited :) |
I have since managed to pinpoint the culprit and solve my problem; it would say it is not that much of a Gridap problem, more a FEM related one. If only Neumann conditions are specified at the sphere's outer shell, the solutions are still symmetric against rigid rotations. This (with properly tuned degree = 2*order
Ω = Triangulation(model)
dΩ = Measure(Ω,degree)
neumann_tags = ["Casing"]
Γ = BoundaryTriangulation(model, tags=neumann_tags)
dΓ = Measure(Γ, degree)
n_Γ = get_normal_vector(Γ)
α = 0.1
a(u,v) = ∫( ε(v) ⊙ (σ∘ε(u)) )*dΩ + ∫(α * (curl(u)) ⋅ (curl(v)))*dΩ # stabilization term
l(v) = ∫(pbound * (n_Γ ⋅ v)) * dΓ Regards, |
Hello,
while solving some linear elasticity problems on a sphere, I've encountered issues probably related to the specification of the Neumann boundary conditions at the sphere's outer surface.
In formulation of the problem, I follow the Gridap tutorial on linear elasticity. I use a spherical mesh generated using the
Open Cascade Kernel
inGridapGmsh
. As I typically use the no-displacement boundary condition at the sphere's center, I've assigned a physical domain namedCenter
to a single point at the sphere's origin. The other physical domain is namedCasing
and consists of the sphere's outer surface. As per the gotchas section ofGridapGmsh
I took special care to also include the 0-d and 1-d entities to theCasing
physical region. The code seems to work just fine if I specify the zero-displacement Dirichlet boundary condition at theCenter
and some other Dirichlet-type boundary condition at theCasing
. However, it fails to produce meaningful results once I try to apply the Neumann boundary conditions at theCasing
. Typically, the magnitude of the displacement vector would be abnormally large or/and would not exhibit the symmetry properties of the applied external pressure. Below I illustrate this with two MWEs for the above mentioned cases.The MWE for the working case with Dirichlet BCs at both physical regions:
In thise case, the results seem to be reasonable, as
shown by these ParaView plots:
.
Now, let's turn to the combined case with Dirichlet and Neumann BC. In that case, the code is as follows:
This approach yields the following (wrong) results:
Are there any glaring errors in my above approach? If so, what should I do to fix them? I assume this is somehow related to the specification of the boundary conditions; for instance, if I solve the same problem on a cylindrical domain, applying the Dirichlet BC at its bases and Neumann BC along the casing, the problem does not appear.
Thank you for your response.
Jan
The text was updated successfully, but these errors were encountered: