Hi all,
I am working on a project concerning the meaning curvature flow of a 2d closed surface. Now I am going to perform a numerical test on a rotational geometry which is known as the Angenent Torus, whose profile curve (which is not a circle) can only be numerically computed.
I generate the geometry following this post: Rotationally symmetric geometries.
Thus, I only need to approximate the profile curve in cubic splines.
I choose the control points by guessing:
FIrst I add several nodes of the profile curve, then I compute the intersection of the tangent lines of two adjacent nodes as the additional control nodes.
For example, A1, A2 are two adjacent nodes and I choose B1 as the intersection of their tangent lines. Then I add a cubic spline for example by geo.Append([“spline3”,A1,B1,A2]).
I approximate the profile curve by about 40 piecewise cubic splines. (I think more pieces can give high accuracy?) and generate the high order isotropic finite element by using
mesh.curve(2)
and
fes = H1(mesh,order=2)
and begin my computation. However, it seems that this kind of generation is not accuracy enough. The reason that I generate the geometry object first is the “curve” option of mesh needs geometrical information.
My questions:
- In generating Torus mesh in this post Rotationally symmetric geometries
eps = r*1e-2
define the control points
pnts = [ (0,R-r), (-r+eps,R-r+eps), (-r,R),
(-r+eps,R+r-eps), (0,R+r), (r-eps,R+r-eps), (r,R), (r-eps,R-r+eps) ]
The introduction of eps seems necessary (why?). Actually, in my case, when using more pieces of splines, I also need to use smaller eps (about 2e-7). Is it correct to plus or minus eps in the above snippet? I think it may leads to discontinuity of normal and then curvature at nodes. Shouldn’t it be something like
pnts = [ (0,R-r), (-r+eps,R-r+eps), (-r,R),
(-r-eps,R+r-eps), (0,R+r), (r+eps,R+r+eps), (r,R), (r-eps,R-r-eps) ]
-
After using a large number of splines to approximate the profile curve, the generated mesh seems to obey the piecewise property of the geometry and the mesh quality is terrible
https://ngsolve.org/media/kunena/attachments/1516/截屏2021-10-14 上午12.08.02.png (I have put too many pieces there in order to make the piecewise cubic approximation accurate…) Is there any way to improve the situation? -
Is the high order space with curved mesh actually the isotropic finite element? or equivalent?
-
Any other suggestions for generating this rotational geometry so that I can use high order isotropic finite element method on surface? I see the recent post on the open cascade. Can it be used to generate my geometric object more precisely?
Thanks in advance.
Jiashun
Attachment: 52fc9dec87479b1deeaa9d7cbcf149b2