|
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. | |
| virtual void | set_activation_function (std::unique_ptr< ActivationFunction > af) |
| Set activation function (for chamber blocks that use one). | |
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
"closed_loop_blocks": [
{
"outlet_blocks": [
"branch0_seg0"
],
"closed_loop_type": "ClosedLoopHeartAndPulmonary",
"cardiac_cycle_period": 1.0169,
"parameters": {
"Tsa": 0.40742,
"tpwave": 8.976868,
"Erv_s": 2.125279,
"Elv_s": 3.125202,
"iml": 0.509365,
"imr": 0.806369,
"Lrv_a": 0.000186865,
"Rrv_a": 0.035061704,
"Lra_v": 0.000217032,
"Rra_v": 0.007887459,
"Lla_v": 0.000351787,
"Rla_v": 0.005310825,
"Rlv_ao": 0.034320234,
"Llv_a": 0.000110776,
"Vrv_u": 9.424629,
"Vlv_u": 5.606007,
"Rpd": 0.098865401,
"Cp": 1.090989,
"Cpa": 0.556854,
"Kxp_ra": 9.22244,
"Kxv_ra": 0.004837,
"Emax_ra": 0.208858,
"Vaso_ra": 4.848742,
"Kxp_la": 9.194992,
"Kxv_la": 0.008067,
"Emax_la": 0.303119,
"Vaso_la": 9.355754
}
}
],
"initial_condition": {
"V_RA:CLH": 38.43,
"V_RV:CLH": 96.07,
"V_LA:CLH": 38.43,
"V_LV:CLH": 96.07,
"P_pul:CLH": 8.0
}
Names of internal variables in this block's output:
Local IDs of the parameters.
|
inline |
Construct a new ClosedLoopHeartPulmonary object.
|
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)