Dear FEniCSx community,
I have solutions over Lagrange functionspace (nodal dofs). However, I want to query the solutions at guass points.
Using boxbeam tree- gives a constant value for all points lying in an element. (one value per element).
Can you suggest functionspace which uses guass points as dofs (like how lagrange uses nodes) or way to obtain interpolated value at query point (guass point for my case)?
bb_tree = dolfinx.geometry.bb_tree(mesh, mesh.topology.dim)
points = np.array(points, dtype=mesh.geometry.x.dtype)
potential_colliding_cells = dolfinx.geometry.compute_collisions_points(
bb_tree, points
)
colliding_cells = dolfinx.geometry.compute_colliding_cells(
mesh, potential_colliding_cells, points
)
points_on_proc = []
cells = []
for i, point in enumerate(points):
if len(colliding_cells.links(i)) > 0:
points_on_proc.append(point)
cells.append(colliding_cells.links(i)[0])
points_on_proc = np.array(points_on_proc, dtype=np.float64).reshape(-1, 3)
cells = np.array(cells, dtype=np.int32)
I remember in legacy dolfin, we can directly give query to solved ufl-function with any coordinate point- to obtain function value.
u=Function(V) # solved ufl function
u.vector(2,3,0.5) # extracting function value at (x,y,z) coordinate--> (2,3,0.5).