The laplace_post.py
module#
Summary#
Read laplace fields from d3plot files. |
|
Use surface normal for transmural direction. |
|
Orthogonalization. |
|
Compute left atrium fibers coordinate system. |
|
Compute right atrium fibers coordinate system. |
|
Define rotation bounds from input parameters. |
|
Rotate by alpha and beta angles. |
|
Compute the fiber coordinate system from Laplace solving. |
Description#
Postprocessing script related to Laplace solving (UHC, fibers).
Module detail#
- laplace_post.read_laplace_solution(directory: str, field_list: list[str], read_heatflux: bool = False) pyvista.UnstructuredGrid #
Read laplace fields from d3plot files.
- laplace_post.update_transmural_by_normal(grid: pyvista.UnstructuredGrid, surface: pyvista.PolyData) numpy.ndarray #
Use surface normal for transmural direction.
- Parameters:
- grid
pv.UnstructuredGrid
Atrium grid.
- surface
pv.PolyData
Atrium endocardium surface.
- grid
- Returns:
np.ndarray
Cell transmural direction vector.
Notes
Assume mesh is coarse compared to the thickness. Solid cell normal is interpolated from closest surface normal.
- laplace_post.orthogonalization(grad_trans: numpy.ndarray, k: numpy.ndarray) tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray] #
Orthogonalization.
- Parameters:
- grad_trans
np.ndarray
Transmural vector.
- k
np.ndarray
Bundle selection vector.
- grad_trans
- Returns:
tuple
[np.ndarray
,np.ndarray
,np.ndarray
]Local coordinate system
e_l, e_n, e_t
.
- laplace_post.compute_la_fiber_cs(directory: str, settings: ansys.health.heart.settings.settings.AtrialFiber, endo_surface: pyvista.PolyData = None) pyvista.UnstructuredGrid #
Compute left atrium fibers coordinate system.
- Parameters:
- Returns:
pv.UnstructuredGrid
PV object with fiber coordinates system.
Notes
This method is described in Modeling cardiac muscle fibers in ventricular and atrial electrophysiology simulations.
- laplace_post.compute_ra_fiber_cs(directory: str, settings: ansys.health.heart.settings.settings.AtrialFiber, endo_surface: pyvista.PolyData = None) pyvista.UnstructuredGrid #
Compute right atrium fibers coordinate system.
- Parameters:
- Returns:
pv.UnstructuredGrid
PV object with the fiber coordinates system.
Notes
This method is described in Modeling cardiac muscle fibers in ventricular and atrial electrophysiology simulations.
- laplace_post.set_rotation_bounds(w: numpy.ndarray, endo: float, epi: float, outflow_tracts: list[float, float] = None) tuple[numpy.ndarray, numpy.ndarray] #
Define rotation bounds from input parameters.
- Parameters:
- Returns:
tuple
[np.ndarray
,np.ndarray
]Cell-wise rotation bounds for endocardium and epicardium.
- laplace_post.compute_rotation_angle(grid: pyvista.UnstructuredGrid, w: numpy.ndarray, rotation: list[float, float], outflow_tracts: list[float, float] = None) numpy.ndarray #
Rotate by alpha and beta angles.
- Parameters:
- Returns:
np.ndarray
Cell-wise rotation angles.
Notes
Compute for all cells, but filter by left/right mask outside of this function.
- laplace_post.compute_ventricle_fiber_by_drbm(directory: str, settings: dict = {'alpha_left': [-60, 60], 'alpha_right': [-60, 60], 'alpha_ot': None, 'beta_left': [-65, 25], 'beta_right': [-65, 25], 'beta_ot': None}, left_only: bool = False) pyvista.UnstructuredGrid #
Compute the fiber coordinate system from Laplace solving.
- Parameters:
- directory
str
Directory of d3plot/tprint files.
- settings
dict
,optional
Rotation angles. By default:
{ "alpha_left": [-60, 60], "alpha_right": [-60, 60], "alpha_ot": None, "beta_left": [-65, 25], "beta_right": [-65, 25], "beta_ot": None, }
.- left_onlybool, default:
False
Whether to only compute fibers on the left ventricle.
- directory
- Returns:
pv.UnstructuredGrid
Grid containing
fiber
,cross-fiber
, andsheet
vectors.
Notes
The D-RBM method is described in Modeling cardiac muscle fibers in ventricular and atrial electrophysiology simulations.