|
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)