7#ifndef SVZERODSOLVER_MODEL_BLOODVESSELJUNCTION_HPP_
8#define SVZERODSOLVER_MODEL_BLOODVESSELJUNCTION_HPP_
182 void setup_dofs(DOFHandler& dofhandler)
override;
191 std::vector<double>& parameters)
override;
203 SparseSystem& system, std::vector<double>& parameters,
204 const Eigen::Matrix<double, Eigen::Dynamic, 1>& y,
205 const Eigen::Matrix<double, Eigen::Dynamic, 1>& dy)
override;
218 Eigen::Matrix<double, Eigen::Dynamic, 1>& residual,
219 Eigen::Matrix<double, Eigen::Dynamic, 1>& alpha,
220 std::vector<double>& y,
221 std::vector<double>& dy)
override;
BlockType
The types of blocks supported by the solver.
Definition BlockType.h:15
BlockClass
The classes/categories of blocks supported. Some classes require special handling (e....
Definition BlockType.h:44
model::BloodVessel source file
model::BloodVesselCRL source file
SparseSystem source file.
bool input_params_list
Are input parameters given as a list?
Definition Block.h:90
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.
Definition Block.h:101
const int id
Global ID of the block.
Definition Block.h:78
const Model * model
The model to which the block belongs.
Definition Block.h:79
TripletsContributions num_triplets
Number of triplets of element.
Definition BloodVesselJunction.h:229
void update_constant(SparseSystem &system, std::vector< double > ¶meters) override
Update the constant contributions of the element in a sparse system.
Definition BloodVesselJunction.cpp:19
BloodVesselJunction(int id, Model *model)
Construct a new BloodVesselJunction object.
Definition BloodVesselJunction.h:164
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) override
Set the gradient of the block contributions with respect to the parameters.
Definition BloodVesselJunction.cpp:55
virtual 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) override
Update the solution-dependent contributions of the element in a sparse system.
Definition BloodVesselJunction.cpp:38
void setup_dofs(DOFHandler &dofhandler) override
Set up the degrees of freedom (DOF) of the block.
Definition BloodVesselJunction.cpp:6
Model of 0D elements.
Definition Model.h:55
The number of triplets that the element contributes to the global system.
Definition Block.h:27