Howdy,
So I’m extremely interested in editing the code I got here a little bit
from dolfin import *
class Left(SubDomain):
def inside(self, x, on_boundary):
return near(x[0], -1.0)
class Right(SubDomain):
def inside(self, x, on_boundary):
return near(x[0], 1.0)
class Bottom(SubDomain):
def inside(self, x, on_boundary):
return near(x[1], -1.0)
class Top(SubDomain):
def inside(self, x, on_boundary):
return near(x[1], 1.0)
class Obstacle(SubDomain):
def inside(self, x, on_boundary):
return (between(x[1], (-(5.0/8.0), (5.0/8.0))) and between(x[0], (-(5.0/8.0), (5.0/8.0))))
def test():
left = Left()
top = Top()
right = Right()
bottom = Bottom()
obstacle = Obstacle()
p1 = Point(-1.0,-1.0)
p2 = Point(1.0,1.0)
size=128
mesh = RectangleMesh(p1,p2,size,size)
domains = MeshFunction("size_t", mesh,mesh.topology().dim())
domains.set_all(0)
obstacle.mark(domains, 1)
CG = FiniteElement("CG", mesh.ufl_cell(), 1)
DG = FiniteElement("DG", mesh.ufl_cell(), 0)
W = FunctionSpace(mesh, CG * DG)
u = Function(W)
test()
I was interested if it was possible the CG function space have the traditional triangle elements everywhere (which is default now) and for the DG I have triangle elements outside obstacle domain, while inside the subdomain I have a quadrilateral mesh of size nxn (i.e 20x20 squares in the subdomain)
Thank you so much!