Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Feel::FeelModels::FluidMechanics< ConvexType, BasisVelocityType, BasisPressureType >::NBodyArticulated Class Reference
+ Collaboration diagram for Feel::FeelModels::FluidMechanics< ConvexType, BasisVelocityType, BasisPressureType >::NBodyArticulated:

Public Types

typedef std::shared_ptr< bdf_trace_angular_velocity_type > bdf_trace_angular_velocity_ptrtype
 
typedef Bdf< space_trace_angular_velocity_type > bdf_trace_angular_velocity_type
 
typedef std::shared_ptr< element_trace_angular_velocity_type > element_trace_angular_velocity_ptrtype
 
typedef space_trace_angular_velocity_type::element_type element_trace_angular_velocity_type
 
using moment_of_inertia_type = typename multibody_type::body_type::moment_of_inertia_type
 
using rotation_angles_type = typename multibody_type::body_type::rotation_angles_type
 
typedef std::shared_ptr< space_trace_angular_velocity_type > space_trace_angular_velocity_ptrtype
 
typedef mpl::if_< mpl::equal_to< mpl::int_< nDim >, mpl::int_< 2 > >, space_trace_p0c_scalar_type, space_trace_p0c_vectorial_type >::type space_trace_angular_velocity_type
 

Public Member Functions

void addArticulation (BodyArticulation const &art)
 
void applyRemesh (self_type const &fluidToolbox, RemeshInterpolation &remeshInterp)
 
std::string const & articulationMethod () const
 
std::vector< BodyArticulation > const & articulations () const
 
bdf_trace_angular_velocity_ptrtype bdfAngularVelocity () const
 
std::vector< BodyBoundaryCondition const * > bodyList (bool withMaster=true) const
 return the list of all BodyBoundaryCondition connected by setting \withMaster = false, the master BodyBoundaryCondition will not be present in the list
 
bool canBeConnectedTo (BodyArticulation const &ba) const
 
std::tuple< double, eigen_vector_type< nRealDim > > computeMassAndMassCenterFromDisplacementFieldOfBodies ()
 
datamap_ptr_t dataMapPMatrixTranslationalVelocity () const
 
eigen_vector_type< nRealDim > evaluateRelativeRigidTranslation (BodyBoundaryCondition const &bbc, BodyBoundaryCondition const &bbcMaster) const
 return the relative rigid translation (computed from translational velocity fields)
 
element_trace_angular_velocity_ptrtype fieldAngularVelocityPtr () const
 
bool has (BodyBoundaryCondition const &bbc) const
 return true if the BodyBoundaryCondition \bbc is present in this nbody articulated
 
void init (self_type const &fluidToolbox)
 
void initTimeStep (self_type const &fluidToolbox, int bdfOrder, int nConsecutiveSave, std::string const &myFileFormat)
 init the time stepping
 
double mass () const
 return mass value
 
eigen_vector_type< nRealDim > const & massCenter () const
 return center of mass
 
auto massCenterExpr () const
 return center of mass expression
 
auto massExpr () const
 return mass expression
 
BodyBoundaryCondition const & masterBodyBC () const
 
sparse_matrix_ptrtype matrixPTilde_angular () const
 
auto modelMeasuresQuantities (std::string const &prefix) const
 
moment_of_inertia_type const & momentOfInertia_bodyFrame () const
 return moment of inertia related to body frame
 
moment_of_inertia_type momentOfInertia_inertialFrame () const
 return the moment of inertia related to inertial frame
 
auto momentOfInertiaExpr_bodyFrame () const
 return moment of inertia related to body frame as an expression
 
std::string name () const
 
 NBodyArticulated (NBodyArticulated &&)=default
 
 NBodyArticulated (NBodyArticulated const &)=default
 
 NBodyArticulated (self_type const &fluidToolbox)
 
eigen_matrix_type< nRealDim, nRealDim > rigidRotationMatrix () const
 return the current rotation matrix
 
auto rigidRotationMatrixExpr () const
 return the current rotation matrix as an expression
 
void setParameterValues (std::map< std::string, double > const &mp)
 set parameter values with symbolic expression
 
space_trace_angular_velocity_ptrtype spaceAngularVelocity () const
 
void startTimeStep ()
 start the time stepping
 
moment_of_inertia_type timeDerivativeOfMomentOfInertia_bodyFrame (double dt) const
 return time derivative of moment of inertia
 
template<typename SymbolsExprType >
void updateDisplacement (double dt, SymbolsExprType const &se)
 update displacement (only angles)
 
void updateForUse ()
 compute mass, mass center
 
void updateMatrixPTilde_angular (self_type const &fluidToolbox)
 
void updateMatrixPTilde_angular (self_type const &fluidToolbox, sparse_matrix_ptrtype &mat, size_type startBlockIndexVelocity=0, size_type startBlockIndexAngularVelocity=0) const
 
void updateTimeStep ()
 update the time stepping to the next time