In [1]:
from dolfin import *
import numpy
nn = 2
mesh = UnitCubeMesh(int(nn),int(nn),int(nn))
order = 1
parameters['reorder_dofs_serial'] = False
Magnetic = FunctionSpace(mesh, "N1curl", order)
Lagrange = FunctionSpace(mesh, "CG", order)
print Magnetic.dim()
def boundary(x, on_boundary):
return on_boundary
W = Magnetic*Lagrange
# bcW = DirichletBC(W.sub(0),Expression(("1.0","1.0","1.0")), boundary)
# bcuW = DirichletBC(W.sub(1), Expression(("1.0")), boundary)
In [3]:
a = mesh.bounding_box_tree()
B = BoundaryMesh(Magnetic.mesh(),"exterior",False)
B = numpy.sort(B.entity_map(0).array().astype("float_","C"))
In [40]:
v = Vertex(mesh, 3)
In [61]:
data = mesh.data()
In [63]:
data.array("facet_orientation",0)
In [5]:
j = 0
for vert in vertices(mesh):
if vert.index() == B[j]:
print "boundary"
j = j+1
else:
print "\nvert", vert.index()
print vert.entities(1)
for edge in edges(vert):
# j = j+1
# print j
print " edge", edge.index()
Ve
In [76]:
In [80]:
E.array().size
Out[80]:
In [83]:
E = EdgeFunctionBool(mesh)
VertexBoundary = numpy.zeros(mesh.num_edges())
VertexBoundary[E.array()] = 1
In [84]:
VertexBoundary
Out[84]:
In [59]:
SystemAssembler?
In [24]:
bcW = DirichletBC(Magnetic,Expression(("1.0","1.0","1.0")), boundary)
bcW.get_boundary_values()
bcW.markers()
Out[24]:
In [16]:
B.keys()
intlist = [str(x) for x in B.keys()]
In [21]:
import numpy
x= numpy.array(intlist)
y = x.astype("float_","C")
In [22]:
y
Out[22]: