9/20/2023 0 Comments Laplacian in curved space![]() ![]() N = project(as_vector((xs,xs,xs))/sqrt(dot(xs,xs)), V) Mesh = SphericalShellMesh.create(MPI.comm_world, 1) You should also normalize your normal, see this example with built in meshes: from dolfin import * In that way, you can get the FacetNormal for your 2D mesh from the 3D mesh. Use boundarymesh to reduce it to a manifold, then compute the curvature as suggested in that post (You just don’t need to transfer the values back to the volume mesh at the end). If you want to use my advice, start with a 3D mesh. However, I really want to know the reason why the “native” Laplace operator div(grad()) does not work in my code. Previously, I managed to implement Laplace operator vertex-wise on 2D surface according to the paper by M. It gives approximately the same results as those of previous code. I tried the following code, but with no luck. The mesh in my problem is on sphere surface (topological dimension 2). I don’t know if I get the idea in the linked post. V0 = VectorFunctionSpace(mesh, "CG", order, dim=3) Is there something wrong in the code or misunderstanding of how to use the differential operators on curved surface on my part? But the actual results of the following code are very small numbers, like array(). ![]() I expect the following code will give the mean curvature of unit sphere, which is -1. It seems that differential operators on curved surface such grad(), div() have been implemented in FEniCS. I referred to the presentation by Marie E. I’d like to compute the mean curvature on curved surface. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |