Source code for simcardems.config
import logging
import typing
from dataclasses import dataclass
import dolfin
import typing_extensions
from . import utils
# from . import land_model
[docs]
@dataclass
class Config:
outdir: utils.PathLike = "results"
outfilename: str = "results.h5"
geometry_path: utils.PathLike = ""
geometry_schema_path: typing.Optional[utils.PathLike] = None
T: float = 1000
dt: float = 0.05
bnd_rigid: bool = False
load_state: bool = False
cell_init_file: utils.PathLike = ""
show_progress_bar: bool = True
save_freq: int = 1
pre_stretch: typing.Optional[typing.Union[dolfin.Constant, float]] = None
traction: typing.Union[dolfin.Constant, float] = None
spring: typing.Union[dolfin.Constant, float] = None
fix_right_plane: bool = False
loglevel: int = logging.INFO
num_refinements: int = 1
set_material: str = ""
debug_mode: bool = False
drug_factors_file: utils.PathLike = ""
popu_factors_file: utils.PathLike = ""
disease_state: str = "healthy"
dt_mech: float = 1.0
mech_threshold: float = 0.05
mechanics_solve_strategy: typing_extensions.Literal[
"fixed",
"adaptive",
] = "adaptive"
# mechanics_ode_scheme: land_model.Scheme = land_model.Scheme.analytic
ep_ode_scheme: str = "GRL1"
ep_preconditioner: str = "sor"
ep_theta: float = 0.5
linear_mechanics_solver: str = "mumps"
mechanics_use_continuation: bool = False
mechanics_use_custom_newton_solver: bool = False
PCL: float = 1000
coupling_type: typing_extensions.Literal[
"fully_coupled_ORdmm_Land",
"fully_coupled_Tor_Land",
"explicit_ORdmm_Land",
"pureEP_ORdmm_Land",
] = "fully_coupled_ORdmm_Land"
[docs]
def as_dict(self):
return {k: v for k, v in self.__dict__.items()}
[docs]
def default_parameters():
return {k: v for k, v in Config.__dict__.items() if not k.startswith("_")}