示例#1
0
    return val


node = np.array([(0, 0), (1, 0), (1, 1), (0, 1)], dtype=np.float)

cell = np.array([(1, 2, 0), (3, 0, 2)], dtype=np.int)

p = 0
mesh = TriangleMesh(node, cell)
mesh.uniform_refine()
node = mesh.entity('node')
cell = mesh.entity('cell')
NC = mesh.number_of_cells()
bc = mesh.entity_barycenter('cell')
if p == 0:
    integrator = mesh.integrator(1)
else:
    integrator = mesh.integrator(p + 2)

cellmeasure = mesh.entity_measure('cell')

V = VectorLagrangeFiniteElementSpace(mesh, p, spacetype='D')
b = V.source_vector(f2, integrator, cellmeasure)
c = V.scalarspace.source_vector(f1, integrator, cellmeasure)

print(b)
print(c)
print(V.number_of_global_dofs())

fig = plt.figure()
axes = fig.gca()
ipoint = dof.interpolation_points()
cell2dof = dof.cell2dof
node = mesh.entity('node')
edge = mesh.entity('edge')

# fig = plt.figure()
# axes = fig.gca()
# mesh.add_plot(axes, cellcolor='w')
# find_entity(axes, mesh, entity='cell', index='all', showindex=True, color='b', fontsize=15)
# # find_node(axes, ipoint, showindex=False, fontsize=12, markersize=25)
# find_node(axes, node, showindex=True, fontsize=12, markersize=25)
# find_entity(axes, mesh, entity='edge', index='all', showindex=True, color='b', fontsize=12)
# plt.show()

# get bcs
integrator = mesh.integrator(q)
qf = integrator
bcs, ws = qf.quadpts, qf.weights
shape = bcs.shape

print(shape)
# ------------------------------------------------- #

# ------------------------------------------------- #
# ---      project 2: get basis at bcs          --- #

# Ref: lagrange_fem_space.py -- basis
bcs = bcs
ftype = mesh.ftype
TD = 2  # topological dimension
multiIndex = dof.multiIndex