svZeroDSolver
|
Heart and pulmonary circulation model. More...
#include <ClosedLoopHeartPulmonary.h>
Public Types | |
enum | ParamId { TSA = 0 , TPWAVE = 1 , ERV_S = 2 , ELV_S = 3 , IML = 4 , IMR = 5 , LRA_V = 6 , RRA_V = 7 , LRV_A = 8 , RRV_A = 9 , LLA_V = 10 , RLA_V = 11 , LLV_A = 12 , RLV_AO = 13 , VRV_U = 14 , VLV_U = 15 , RPD = 16 , CP = 17 , CPA = 18 , KXP_RA = 19 , KXV_RA = 20 , KXP_LA = 21 , KXV_LA = 22 , EMAX_RA = 23 , EMAX_LA = 24 , VASO_RA = 25 , VASO_LA = 26 } |
Local IDs of the parameters. More... | |
Public Member Functions | |
ClosedLoopHeartPulmonary (int id, Model *model) | |
Construct a new ClosedLoopHeartPulmonary 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 | post_solve (Eigen::Matrix< double, Eigen::Dynamic, 1 > &y) |
Modify the solution after solving it. | |
Public Member Functions inherited from Block | |
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 | 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. | |
Public Attributes | |
TripletsContributions | num_triplets {33, 10, 2} |
Number of triplets of element. | |
Public Attributes inherited from Block | |
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. | |
Heart and pulmonary circulation model.
Models the mechanics of the 4 heart chambers and pulmonary circulation
TODO: Equations and circuit diagram
Parameter sequence for constructing this block
0
Atrial systole time fraction1
Time for P-wave2
Scaling for right ventricle elastance3
Scaling for left ventricle elastance4
Scaling for intramyocardial pressure (left coronaries)5
Scaling for intramyocardial pressure (right coronaries)6
Right atrium inductance7
Right atrium outflow resistance8
Right ventricle inductance9
Right ventricle outflow resistance10
Left atrium inductance11
Left atrium outflow resistance12
Left ventricle inductance13
Left ventricle outflow resistance14
Right ventricle unstressed volume15
Left ventricle unstressed volume16
Pulmonary resistance17
Pulmonary capacitance18
Aortic capacitance19
Right atrium pressure scaling20
Right atrium volume scaling21
Left atrium pressure scaling22
Left atrium volume scaling23
Right atrium elastance24
Left atrium elastance25
Right atrium resting volume26
Left atrium resting volumeNames of internal variables in this block's output:
V_RA
: Right atrium volumeQ_RA
: Right atrium outflowP_RV
: Right ventricle pressureV_RV
: Right ventricle volumeQ_RV
: Right ventricle outflowP_pul
: Pulmonary pressureP_LA
: Left atrium pressureV_LA
: Left atrium volumeQ_LA
: Left atrium outflowP_LV
: Left ventricle pressureV_LV
: Left ventricle volumeQ_LV
: Left ventricle outflow Local IDs of the parameters.
|
inline |
Construct a new ClosedLoopHeartPulmonary object.
id | Global ID of the block |
model | The model to which the block belongs |
|
virtual |
|
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.
TripletsContributions ClosedLoopHeartPulmonary::num_triplets {33, 10, 2} |
Number of triplets of element.
Number of triplets that the element contributes to the global system (relevant for sparse memory reservation)