In [2]:
from dolfin import *
import numpy
nn = 1
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
In [6]:
B = BoundaryMesh(Magnetic.mesh(),"exterior",False)
numpy.sort(B.entity_map(1).array().astype("float_","C"))
Out[6]:
In [13]:
E = EdgeFunctionBool(mesh)
print E.array()
VertexBoundary = numpy.zeros(mesh.num_edges())
VertexBoundary[E.array()] = 1
print VertexBoundary
In [14]:
B = BoundaryMesh(Magnetic.mesh(),"exterior",False)
print numpy.sort(B.entity_map(0).array().astype("float_","C"))
bb = numpy.sort(B.entity_map(0).array().astype("float_","C"))
print numpy.sort(B.entity_map(1).array().astype("float_","C"))
In [33]:
B = BoundaryMesh(Magnetic.mesh(),"exterior")
B.entity_map(0).array()
Out[33]:
In [2]:
plot(mesh)
Out[2]:
In [33]:
b = SparsityPatternBuilder()
In [2]:
B = EdgeFunctionBool(mesh)
In [2]:
B = BoundaryMesh(mesh,"exterior")
In [3]:
bb = B.entity_map(2).array()
print bb
In [3]:
B = BoundaryMesh(mesh,"exterior")
bb = B.entity_map(2).array()
k = 0
kk = 0
VertexBoundary = numpy.zeros(3*bb.size)
for i in range(bb.size):
face = Face(mesh,bb[i])
print face.index()
print face.entities(0)
In [33]:
%timeit
B = BoundaryMesh(mesh,"exterior")
bb = B.entity_map(2).array()
k = 0
kk = 0
VertexBoundary = numpy.zeros(3*bb.size)
for face in faces(mesh):
if face.index() == bb[k]:
k = k+1
# print "\nface", face.index()
for edge in edges(face):
# print " edge", edge.index()
VertexBoundary[kk] = edge.index()
kk = kk+1
# VertexBoundary
In [47]:
V = numpy.sort(VertexBoundary)
V
Out[47]:
In [48]:
V[::2]
Out[48]: