Hello,
I want to use CutFEM for the Stokes problem using Scott-Vogelius elements on Alfeld splits. Currently, I have a working code that does
- Create a simplicial background mesh
- Create an Alfeld split of the background mesh
- Create an active mesh of the splitted background mesh given a levelset function.
This is done in the following way:
levelset = sqrt((x-0.5)**2 + (y-0.5)**2) - 0.25
square = SplineGeometry()
square.AddRectangle((0, 0), (1, 1), bcs=[])
mesh = Mesh(square.GenerateMesh(maxh=0.1, quad_dominated=False))
mesh.SplitElements_Alfeld()
lsetp1 = GridFunction(H1(mesh, order=1))
InterpolateToP1(levelset, lsetp1)
ci = CutInfo(mesh, lsetp1)
hasneg = ci.GetElementsOfType(HASNEG)
Vhbase = VectorH1(mesh, order=order, dirichlet=[])
Qhbase = L2(mesh, order=order - 1)
Vh = Restrict(Vhbase, hasneg)
Qh = Restrict(Qhbase, hasneg)
However, what I want to do is the following:
- Create a simplicial background mesh
- Create an active mesh of the background mesh given a levelset function.
- Create an Alfeld split of the active mesh.
Can anyone indicate how to do the Alfeld based on the active mesh, not the background mesh?
Thanks