diff --git a/ntrfc/utils/pyvista_utils/surface.py b/ntrfc/utils/pyvista_utils/surface.py index 51081efc8315b8824ea76a4447edd3ee6ef8134c..a532853bd08b8a295576f136cc5c9d8680aded3f 100644 --- a/ntrfc/utils/pyvista_utils/surface.py +++ b/ntrfc/utils/pyvista_utils/surface.py @@ -55,3 +55,28 @@ def calc_dist_from_surface(surface_primary, surface_secondary, verbose=False): p.show() return h0n + + +def massflow_plane(mesh): + if not "Normals" in mesh.array_names: + mesh = mesh.compute_normals() + if not "Area" in mesh.array_names: + mesh = mesh.compute_cell_sizes() + mesh = mesh.point_data_to_cell_data() + normals = mesh.cell_normals + rhos = mesh["rho"] + areas = mesh["Area"] + velocities = mesh["U"] + + massflow = np.array( + [vecAbs(vecProjection(velocities[i], normals[i])) for i in range(mesh.number_of_cells)]) ** 2 * rhos * areas + + return massflow + + +def test_massflow_plane(): + import pyvista as pv + + plane = pv.Plane() + numcells = plane.number_of_cells + plane["U"] = np.array([1,0,0])