svZeroDSolver
|
Spherical heart chamber model. More...
#include <ChamberSphere.h>
Public Types | |
enum | ParamId { rho = 0 , thick0 = 1 , radius0 = 2 , W1 = 3 , W2 = 4 , eta = 5 , sigma_max = 6 , alpha_max = 7 , alpha_min = 8 , tsys = 9 , tdias = 10 , steepness = 11 } |
Local IDs of the parameters. More... | |
Public Member Functions | |
ChamberSphere (int id, Model *model) | |
Construct a new ChamberSphere object. | |
void | setup_dofs (DOFHandler &dofhandler) |
Set up the degrees of freedom (DOF) of the block. | |
void | update_constant (SparseSystem &system, std::vector< double > ¶meters) |
Update the constant contributions of the element in a sparse system. | |
void | update_time (SparseSystem &system, std::vector< double > ¶meters) |
Update the time-dependent contributions of the element in a sparse system. | |
void | update_solution (SparseSystem &system, std::vector< double > ¶meters, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &y, const Eigen::Matrix< double, Eigen::Dynamic, 1 > &dy) |
Update the solution-dependent contributions of the element in a sparse system. | |
void | get_elastance_values (std::vector< double > ¶meters) |
Update the elastance functions which depend on time. | |
![]() | |
Block (int id, Model *model, BlockType block_type, BlockClass block_class, std::vector< std::pair< std::string, InputParameter > > input_params) | |
Construct a new Block object. | |
~Block () | |
Destroy the Block object. | |
Block (const Block &)=delete | |
Copy the Block object. | |
std::string | get_name () |
Get the name of the block. | |
void | update_vessel_type (VesselType type) |
Update vessel type of the block. | |
void | setup_params_ (const std::vector< int > ¶m_ids) |
Setup parameter IDs for the block. | |
void | setup_dofs_ (DOFHandler &dofhandler, int num_equations, const std::list< std::string > &internal_var_names) |
Set up the degrees of freedom (DOF) of the block. | |
virtual void | setup_model_dependent_params () |
Setup parameters that depend on the model. | |
virtual void | setup_initial_state_dependent_params (State initial_state, std::vector< double > ¶meters) |
Setup parameters that depend on the initial state. | |
virtual void | post_solve (Eigen::Matrix< double, Eigen::Dynamic, 1 > &y) |
Modify the solution after solving it. | |
virtual void | update_gradient (Eigen::SparseMatrix< double > &jacobian, Eigen::Matrix< double, Eigen::Dynamic, 1 > &residual, Eigen::Matrix< double, Eigen::Dynamic, 1 > &alpha, std::vector< double > &y, std::vector< double > &dy) |
Set the gradient of the block contributions with respect to the parameters. | |
virtual TripletsContributions | get_num_triplets () |
Get number of triplets of element. | |
Additional Inherited Members | |
![]() | |
const int | id |
Global ID of the block. | |
const Model * | model |
The model to which the block belongs. | |
const BlockType | block_type |
Type of this block. | |
const BlockClass | block_class |
Class of this block. | |
VesselType | vessel_type = VesselType::neither |
Vessel type of this block. | |
const std::vector< std::pair< std::string, InputParameter > > | input_params |
Map from name to input parameter. | |
std::vector< Node * > | inlet_nodes |
Inlet nodes. | |
std::vector< Node * > | outlet_nodes |
Outlet nodes. | |
bool | steady = false |
Toggle steady behavior. | |
bool | input_params_list = false |
Are input parameters given as a list? | |
std::vector< int > | global_param_ids |
Global IDs for the block parameters. | |
std::vector< int > | global_var_ids |
Global variable indices of the local element contributions. | |
std::vector< int > | global_eqn_ids |
Global equation indices of the local element contributions. | |
TripletsContributions | num_triplets |
Number of triplets of element. | |
Spherical heart chamber model.
Models the mechanical behavior of a spherical heart chamber with active contraction. For reference, see [1] Equations (13a-b) for continuum mechanics (without length-dependent contraction valves, vessels) and [6] Equations (12-16) for the simplified active contraction model.
Cauchy-Green deformation tensor and time derivative:
Parameter sequence for constructing this block:
rho
- Density thick0
- Wall thickness radius0
- Reference radius W1
- Material constant W2
- Material constant eta
- Viscosity parameter sigma_max
- Maximum active stress alpha_max
- Maximum activation parameter alpha_min
- Minimum activation parameter tsys
- Systole timing parameter tdias
- Diastole timing parameter steepness
- Activation steepness parameter Names of internal variables in this block's output:
radius
- Chamber radius velo
- Chamber velocity stress
- Spherical stress tau
- Active stress volume
- Chamber volume Local IDs of the parameters.
|
inline |
Construct a new ChamberSphere object.
id | Global ID of the block |
model | The model to which the block belongs |
void ChamberSphere::get_elastance_values | ( | std::vector< double > & | parameters | ) |
Update the elastance functions which depend on time.
parameters | Parameters of the model |
|
virtual |
Set up the degrees of freedom (DOF) of the block.
Set global_var_ids and global_eqn_ids of the element based on the number of equations and the number of internal variables of the element.
dofhandler | Degree-of-freedom handler to register variables and equations at |
Reimplemented from Block.
|
virtual |
Update the constant contributions of the element in a sparse system.
system | System to update contributions at |
parameters | Parameters of the model |
Reimplemented from Block.
|
virtual |
Update the solution-dependent contributions of the element in a sparse system.
system | System to update contributions at |
parameters | Parameters of the model |
y | Current solution |
dy | Current derivate of the solution |
Reimplemented from Block.
|
virtual |
Update the time-dependent contributions of the element in a sparse system.
system | System to update contributions at |
parameters | Parameters of the model |
Reimplemented from Block.