MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / interpolate_at_quadrature_pts

Function interpolate_at_quadrature_pts

scripts/fem_check.py:71–100  ·  view source on GitHub ↗
(mesh, sol_values, sol_grads)

Source from the content-addressed store, hash-verified

69 return q_pts;
70
71def interpolate_at_quadrature_pts(mesh, sol_values, sol_grads):
72 tets = mesh.voxels;
73 b = 0.1381966011250105;
74 a = 1.0 - 3 * b;
75
76 values = np.ndarray(mesh.num_voxels * 4);
77 values[0:mesh.num_voxels*4:4] = \
78 a*sol_values[tets[:,0]] + \
79 b*sol_values[tets[:,1]] + \
80 b*sol_values[tets[:,2]] + \
81 b*sol_values[tets[:,3]];
82 values[1:mesh.num_voxels*4:4] = \
83 b*sol_values[tets[:,0]] + \
84 a*sol_values[tets[:,1]] + \
85 b*sol_values[tets[:,2]] + \
86 b*sol_values[tets[:,3]];
87 values[2:mesh.num_voxels*4:4] = \
88 b*sol_values[tets[:,0]] + \
89 b*sol_values[tets[:,1]] + \
90 a*sol_values[tets[:,2]] + \
91 b*sol_values[tets[:,3]];
92 values[3:mesh.num_voxels*4:4] = \
93 b*sol_values[tets[:,0]] + \
94 b*sol_values[tets[:,1]] + \
95 b*sol_values[tets[:,2]] + \
96 a*sol_values[tets[:,3]];
97 # Grad is elementwise const.
98 grads = np.repeat(sol_grads, 4, axis=0);
99
100 return values, grads;
101
102def interpolate_at_centroids(mesh, sol_values, sol_grads):
103 tets = mesh.voxels;

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected