Source code for simcardems.lvgeometry

from typing import Dict
from typing import Tuple

import dolfin
import pulse
from cardiac_geometries.geometry import MeshTypes

from .geometry import BaseGeometry


[docs] class LeftVentricularGeometry(BaseGeometry):
[docs] @staticmethod def default_markers() -> Dict[str, Tuple[int, int]]: return { "BASE": (5, 2), "ENDO": (6, 2), "EPI": (7, 2), }
def _default_microstructure( self, mesh: dolfin.Mesh, ffun: dolfin.MeshFunction, ) -> pulse.Microstructure: from cardiac_geometries import lv_ellipsoid_fibers return lv_ellipsoid_fibers.create_microstructure( function_space=self.parameters["fiber_space"], mesh=mesh, ffun=ffun, markers=self.markers, r_short_endo=self.parameters["r_short_endo"], r_short_epi=self.parameters["r_short_epi"], r_long_endo=self.parameters["r_long_endo"], r_long_epi=self.parameters["r_long_epi"], alpha_endo=self.parameters["fibers_angle_endo"], alpha_epi=self.parameters["fibers_angle_epi"], ) def _default_ffun(self, mesh: dolfin.Mesh) -> dolfin.MeshFunction: raise NotImplementedError def _default_mesh(self) -> dolfin.Mesh: raise NotImplementedError
[docs] @staticmethod def default_parameters(): return { "num_refinements": 1, "fiber_space": "Quadrature_3", "fibers_angle_endo": -60.0, "fibers_angle_epi": 60.0, "mesh_type": MeshTypes.lv_ellipsoid.value, "mu_apex_endo": -3.141592653589793, "mu_apex_epi": -3.141592653589793, "mu_base_endo": -1.2722641256100204, "mu_base_epi": -1.318116071652818, "psize_ref": 3.0, "r_long_endo": 17.0, "r_long_epi": 20.0, "r_short_endo": 7.0, "r_short_epi": 10.0, }
[docs] def validate(self): pass
def __repr__(self) -> str: return f"{self.__class__.__name__}(parameters={self.parameters})"