PolyFEM
Loading...
Searching...
No Matches
polyfem::assembler::NavierStokesFSIVelocity Class Reference

#include <NavierStokesFSI.hpp>

Inheritance diagram for polyfem::assembler::NavierStokesFSIVelocity:
[legend]
Collaboration diagram for polyfem::assembler::NavierStokesFSIVelocity:
[legend]

Public Member Functions

 NavierStokesFSIVelocity ()
 
std::string name () const override
 
std::map< std::string, ParamFuncparameters () const override
 
void add_multimaterial (const int index, const json &params, const Units &units, const std::string &root_path) override
 
double compute_energy (const MultiSpacesNLAssemblerData &) const override
 
Eigen::VectorXd assemble_gradient (const MultiSpacesNLAssemblerData &data) const override
 
Eigen::MatrixXd assemble_hessian (const MultiSpacesNLAssemblerData &data, int row_space, int col_space) const override
 
bool is_fluid () const override
 
bool is_tensor () const override
 
- Public Member Functions inherited from polyfem::assembler::MultiSpacesNLAssembler
virtual ~MultiSpacesNLAssembler ()=default
 
bool is_linear () const override
 
virtual void assemble_gradient (const bool is_volume, const int n_basis, const std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &gbases, const AssemblyValsCache &cache, const double t, const double dt, const Eigen::MatrixXd &displacement, const Eigen::MatrixXd &displacement_prev, Eigen::MatrixXd &rhs) const
 
virtual void assemble_hessian (const bool is_volume, const int n_basis, const bool project_to_psd, const std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &gbases, const AssemblyValsCache &cache, const double t, const double dt, const Eigen::MatrixXd &displacement, const Eigen::MatrixXd &displacement_prev, utils::MatrixCache &mat_cache, StiffnessMatrix &grad) const
 
- Public Member Functions inherited from polyfem::assembler::Assembler
virtual ~Assembler ()=default
 
int size () const
 
virtual void set_size (const int size)
 
virtual void assemble (const bool is_volume, const int n_basis, const std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &gbases, const AssemblyValsCache &cache, const double t, StiffnessMatrix &stiffness, const bool is_mass=false) const
 
virtual double assemble_energy (const bool is_volume, const std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &gbases, const AssemblyValsCache &cache, const double t, const double dt, const Eigen::MatrixXd &displacement, const Eigen::MatrixXd &displacement_prev) const
 
virtual Eigen::VectorXd assemble_energy_per_element (const bool is_volume, const std::vector< basis::ElementBases > &bases, const std::vector< basis::ElementBases > &gbases, const AssemblyValsCache &cache, const double t, const double dt, const Eigen::MatrixXd &displacement, const Eigen::MatrixXd &displacement_prev) const
 
virtual void compute_scalar_value (const OutputData &data, std::vector< NamedMatrix > &result) const
 
virtual void compute_tensor_value (const OutputData &data, std::vector< NamedMatrix > &result) const
 
virtual void compute_stiffness_value (const double t, const assembler::ElementAssemblyValues &vals, const Eigen::MatrixXd &local_pts, const Eigen::MatrixXd &displacement, Eigen::MatrixXd &tensor) const
 
virtual void compute_dstress_dmu_dlambda (const OptAssemblerData &data, Eigen::MatrixXd &dstress_dmu, Eigen::MatrixXd &dstress_dlambda) const
 
virtual void compute_stress_grad_multiply_mat (const OptAssemblerData &data, const Eigen::MatrixXd &mat, Eigen::MatrixXd &stress, Eigen::MatrixXd &result) const
 
virtual void compute_stress_grad_multiply_stress (const OptAssemblerData &data, Eigen::MatrixXd &stress, Eigen::MatrixXd &result) const
 
virtual void compute_stress_grad_multiply_vect (const OptAssemblerData &data, const Eigen::MatrixXd &vect, Eigen::MatrixXd &stress, Eigen::MatrixXd &result) const
 
virtual void compute_stress_grad (const OptAssemblerData &data, const Eigen::MatrixXd &prev_grad_u_i, Eigen::MatrixXd &stress, Eigen::MatrixXd &result) const
 
virtual void compute_stress_prev_grad (const OptAssemblerData &data, const Eigen::MatrixXd &prev_grad_u_i, Eigen::MatrixXd &result) const
 
virtual VectorNd compute_rhs (const AutodiffHessianPt &pt) const
 
virtual Eigen::Matrix< AutodiffScalarGrad, Eigen::Dynamic, 1, 0, 3, 1 > kernel (const int dim, const AutodiffGradPt &rvect, const AutodiffScalarGrad &r) const
 
void set_materials (const std::vector< int > &body_ids, const json &body_params, const Units &units, const std::string &root_path)
 
virtual void update_lame_params (const Eigen::MatrixXd &lambdas, const Eigen::MatrixXd &mus)
 
virtual bool is_solution_displacement () const
 

Private Attributes

GenericMatParam viscosity_
 
Density density_
 

Additional Inherited Members

- Public Types inherited from polyfem::assembler::Assembler
typedef std::pair< std::string, Eigen::MatrixXd > NamedMatrix
 
typedef std::function< double(const RowVectorNd &, const RowVectorNd &, double, int)> ParamFunc
 
- Protected Attributes inherited from polyfem::assembler::Assembler
int size_ = -1
 

Detailed Description

Definition at line 66 of file NavierStokesFSI.hpp.

Constructor & Destructor Documentation

◆ NavierStokesFSIVelocity()

polyfem::assembler::NavierStokesFSIVelocity::NavierStokesFSIVelocity ( )

Definition at line 190 of file NavierStokesFSI.cpp.

Member Function Documentation

◆ add_multimaterial()

void polyfem::assembler::NavierStokesFSIVelocity::add_multimaterial ( const int  index,
const json params,
const Units units,
const std::string &  root_path 
)
overridevirtual

Reimplemented from polyfem::assembler::Assembler.

Definition at line 195 of file NavierStokesFSI.cpp.

References polyfem::assembler::Density::add_multimaterial(), polyfem::assembler::GenericMatParam::add_multimaterial(), polyfem::Units::density(), density_, polyfem::assembler::Assembler::size(), polyfem::Units::viscosity(), and viscosity_.

Here is the call graph for this function:

◆ assemble_gradient()

Eigen::VectorXd polyfem::assembler::NavierStokesFSIVelocity::assemble_gradient ( const MultiSpacesNLAssemblerData data) const
overridevirtual

Implements polyfem::assembler::MultiSpacesNLAssembler.

Definition at line 208 of file NavierStokesFSI.cpp.

References density_, and viscosity_.

◆ assemble_hessian()

Eigen::MatrixXd polyfem::assembler::NavierStokesFSIVelocity::assemble_hessian ( const MultiSpacesNLAssemblerData data,
int  row_space,
int  col_space 
) const
overridevirtual

Implements polyfem::assembler::MultiSpacesNLAssembler.

Definition at line 253 of file NavierStokesFSI.cpp.

References density_, F_inv, point, and viscosity_.

◆ compute_energy()

double polyfem::assembler::NavierStokesFSIVelocity::compute_energy ( const MultiSpacesNLAssemblerData ) const
overridevirtual

Implements polyfem::assembler::MultiSpacesNLAssembler.

Definition at line 203 of file NavierStokesFSI.cpp.

References polyfem::log_and_throw_error().

Here is the call graph for this function:

◆ is_fluid()

bool polyfem::assembler::NavierStokesFSIVelocity::is_fluid ( ) const
inlineoverridevirtual

Reimplemented from polyfem::assembler::Assembler.

Definition at line 76 of file NavierStokesFSI.hpp.

◆ is_tensor()

bool polyfem::assembler::NavierStokesFSIVelocity::is_tensor ( ) const
inlineoverridevirtual

Reimplemented from polyfem::assembler::Assembler.

Definition at line 77 of file NavierStokesFSI.hpp.

◆ name()

std::string polyfem::assembler::NavierStokesFSIVelocity::name ( ) const
inlineoverridevirtual

Implements polyfem::assembler::Assembler.

Definition at line 70 of file NavierStokesFSI.hpp.

◆ parameters()

std::map< std::string, Assembler::ParamFunc > polyfem::assembler::NavierStokesFSIVelocity::parameters ( ) const
overridevirtual

Implements polyfem::assembler::Assembler.

Definition at line 375 of file NavierStokesFSI.cpp.

References density_, and viscosity_.

Member Data Documentation

◆ density_

Density polyfem::assembler::NavierStokesFSIVelocity::density_
private

◆ viscosity_

GenericMatParam polyfem::assembler::NavierStokesFSIVelocity::viscosity_
private

The documentation for this class was generated from the following files: