23 const Eigen::MatrixXd &physical_points,
25 Eigen::MatrixXd &values)>;
70 std::string
name()
const override {
return "NavierStokesFSIVelocity"; }
71 std::map<std::string, ParamFunc>
parameters()
const override;
76 bool is_fluid()
const override {
return true; }
87 std::string
name()
const override {
return "NavierStokesFSIMixed"; }
88 std::map<std::string, ParamFunc>
parameters()
const override {
return {}; }
98 std::string
name()
const override {
return "NavierStokesFSIPressure"; }
99 std::map<std::string, ParamFunc>
parameters()
const override {
return {}; }
109 std::string
name()
const override {
return "NavierStokesFSIInertia"; }
110 std::map<std::string, ParamFunc>
parameters()
const override;
ElementAssemblyValues vals
Local data shared by assemblers involving an arbitrary number of FE spaces.
std::vector< std::reference_wrapper< const Eigen::VectorXd > > Coefficients
const Eigen::VectorXd & x_prev(const int space) const
std::vector< std::reference_wrapper< const ElementAssemblyValues > > Values
const QuadratureVector & da
Local nonlinear assembler for an arbitrary number of FE spaces.
const Eigen::VectorXd & mesh_velocity
NavierStokesFSIAssemblerData(Values vals, Coefficients x, Coefficients x_prev, const double t, const double dt, const QuadratureVector &da, const Eigen::VectorXd &velocity_tilde, const Eigen::VectorXd &mesh_velocity, const double dmesh_velocity_dmesh_displacement, const double spatial_weight, const bool include_inertia, const bool picard, BodyForceEvaluator body_force_evaluator={})
const Eigen::VectorXd & velocity() const
const double dmesh_velocity_dmesh_displacement
const double spatial_weight
const bool include_inertia
const Eigen::VectorXd & mesh_displacement() const
const Eigen::VectorXd & pressure() const
const Eigen::VectorXd & velocity_tilde
std::function< void(int element_id, const Eigen::MatrixXd &physical_points, double time, Eigen::MatrixXd &values)> BodyForceEvaluator
const BodyForceEvaluator body_force_evaluator
std::string name() const override
Eigen::MatrixXd assemble_hessian(const MultiSpacesNLAssemblerData &data, int row_space, int col_space) const override
Eigen::VectorXd assemble_gradient(const MultiSpacesNLAssemblerData &data) const override
double compute_energy(const MultiSpacesNLAssemblerData &) const override
std::map< std::string, ParamFunc > parameters() const override
void add_multimaterial(const int index, const json ¶ms, const Units &units, const std::string &root_path) override
bool is_fluid() const override
bool is_tensor() const override
void set_size(const int size) override
Eigen::VectorXd assemble_gradient(const MultiSpacesNLAssemblerData &data) const override
std::map< std::string, ParamFunc > parameters() const override
Eigen::MatrixXd assemble_hessian(const MultiSpacesNLAssemblerData &data, int row_space, int col_space) const override
std::string name() const override
double compute_energy(const MultiSpacesNLAssemblerData &) const override
double compute_energy(const MultiSpacesNLAssemblerData &) const override
std::map< std::string, ParamFunc > parameters() const override
void set_size(const int) override
std::string name() const override
Eigen::MatrixXd assemble_hessian(const MultiSpacesNLAssemblerData &data, int row_space, int col_space) const override
Eigen::VectorXd assemble_gradient(const MultiSpacesNLAssemblerData &data) const override
void add_multimaterial(const int index, const json ¶ms, const Units &units, const std::string &root_path) override
GenericMatParam viscosity_
Eigen::MatrixXd assemble_hessian(const MultiSpacesNLAssemblerData &data, int row_space, int col_space) const override
std::string name() const override
bool is_fluid() const override
Eigen::VectorXd assemble_gradient(const MultiSpacesNLAssemblerData &data) const override
bool is_tensor() const override
NavierStokesFSIVelocity()
double compute_energy(const MultiSpacesNLAssemblerData &) const override
std::map< std::string, ParamFunc > parameters() const override
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, MAX_QUAD_POINTS, 1 > QuadratureVector