26 int n_mesh_displacement_bases,
27 int multiplier_offset,
29 const std::vector<basis::ElementBases> &pressure_bases,
30 const std::vector<basis::ElementBases> &mesh_displacement_bases,
31 const std::vector<basis::ElementBases> &geom_bases,
36 std::string
name()
const override {
return "navier-stokes-fsi-average-pressure"; }
45 const Eigen::VectorXd &
x,
47 Eigen::MatrixXd &weight_derivative)
const;
73 const Eigen::VectorXd ¤t_velocity,
74 Eigen::VectorXd &velocity_tilde)>;
80 int n_mesh_displacement_bases,
81 const std::vector<basis::ElementBases> &velocity_bases,
82 const std::vector<basis::ElementBases> &pressure_bases,
83 const std::vector<basis::ElementBases> &mesh_displacement_bases,
84 const std::vector<basis::ElementBases> &geom_bases,
88 std::vector<std::shared_ptr<assembler::MultiSpacesNLAssembler>> assemblers,
96 std::string
name()
const override {
return "navier-stokes-fsi"; }
99 bool is_step_valid(
const Eigen::VectorXd &x0,
const Eigen::VectorXd &x1)
const override;
111 using SpaceValues = std::array<assembler::ElementAssemblyValues, 3>;
121 const Eigen::MatrixXd &local,
122 std::vector<Eigen::Triplet<double>> &
entries)
const;
128 const Eigen::VectorXd &velocity_tilde,
129 const Eigen::VectorXd &mesh_velocity)
const;
138 const std::array<std::reference_wrapper<const std::vector<basis::ElementBases>>, 3>
bases_;
140 const std::array<std::reference_wrapper<const assembler::AssemblyValsCache>, 3>
caches_;
141 const std::vector<std::shared_ptr<assembler::MultiSpacesNLAssembler>>
assemblers_;
ElementAssemblyValues vals
std::vector< Eigen::Triplet< double > > entries
Caches basis evaluation and geometric mapping at every element.
stores per element basis values at given quadrature points and geometric mapping
std::function< void(int element_id, const Eigen::MatrixXd &physical_points, double time, Eigen::MatrixXd &values)> BodyForceEvaluator
Implicit time integrator of a second order ODE (equivently a system of coupled first order ODEs).
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, MAX_QUAD_POINTS, 1 > QuadratureVector
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix