Source code for monalisa.geometry._volume_element_random_partial_cartesian2_x

"""Port of src/geom2/bmVolumeElement_randomPartialCartesian2_x.m."""

import numpy as np

from monalisa._mat import vec
from monalisa.array._point_reshape import point_reshape
from monalisa.geometry._volume_element1 import volume_element1


[docs] def volume_element_random_partial_cartesian2_x(t, N_u, dK_u): """Volume elements of 2D Cartesian lines along x at random y positions.""" N_u, dK_u = vec(N_u), vec(dK_u) Nx = int(N_u[0]) t = np.asarray(point_reshape(t)) nLine = t.shape[1] // Nx t = np.reshape(t, (2, Nx, nLine), order="F") ve = volume_element1(point_reshape(t[1, 0, :])) ve = np.tile(np.ravel(ve, order="F")[None, :], (Nx, 1)) return dK_u[0] * np.ravel(ve, order="F")[None, :]