Closed JanSuntajs closed 9 months ago
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.
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 $\alpha$ effectively solved my problem:
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, Jan
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