Description
Base class for processing the interface between Chrono and FSI modules.
#include <ChFsiInterface.h>
Public Member Functions | |
void | SetVerbose (bool verbose) |
FsiBody & | AddFsiBody (std::shared_ptr< ChBody > body) |
Add a rigid body. | |
FsiMesh1D & | AddFsiMesh1D (std::shared_ptr< fea::ChContactSurfaceSegmentSet > surface) |
Add a flexible solid with segment set contact to the FSI system. | |
FsiMesh2D & | AddFsiMesh2D (std::shared_ptr< fea::ChContactSurfaceMesh > surface) |
Add a flexible solid with surface mesh contact to the FSI system. | |
virtual void | Initialize () |
Initialize the FSI interface. | |
unsigned int | GetNumBodies () const |
Get the number of FSI bodies. | |
unsigned int | GetNumMeshes1D () const |
Get the number of FSI 1-D meshes. | |
unsigned int | GetNumElements1D () const |
Get the number of FSI 1-D mesh elements (segments). | |
unsigned int | GetNumNodes1D () const |
Get the number of FSI 1-D mesh nodes. | |
unsigned int | GetNumMeshes2D () const |
Get the number of FSI 2-D meshes. | |
unsigned int | GetNumElements2D () const |
Get the number of FSI 2-D mesh elements (segments). | |
unsigned int | GetNumNodes2D () const |
Get the number of FSI 2-D mesh nodes. | |
const ChVector3d & | GetFsiBodyForce (size_t i) const |
Return the FSI applied force on the body with specified index. More... | |
const ChVector3d & | GetFsiBodyTorque (size_t i) const |
Return the FSI applied torque on the body with specified index. More... | |
void | AllocateStateVectors (std::vector< FsiBodyState > &body_states, std::vector< FsiMeshState > &mesh1D_states, std::vector< FsiMeshState > &mesh2D_states) const |
Utility function to allocate state vectors. | |
void | AllocateForceVectors (std::vector< FsiBodyForce > &body_forces, std::vector< FsiMeshForce > &mesh_forces1D, std::vector< FsiMeshForce > &mesh_forces2D) const |
Utility function to allocate force vectors. | |
bool | CheckStateVectors (const std::vector< FsiBodyState > &body_states, const std::vector< FsiMeshState > &mesh1D_states, const std::vector< FsiMeshState > &mesh2D_states) const |
Utility function to check sizes of state vectors. | |
bool | CheckForceVectors (const std::vector< FsiBodyForce > &body_forces, const std::vector< FsiMeshForce > &mesh_forces1D, const std::vector< FsiMeshForce > &mesh_forces2D) const |
Utility function to check sizes of force vectors. | |
void | StoreSolidStates (std::vector< FsiBodyState > &body_states, std::vector< FsiMeshState > &mesh1D_states, std::vector< FsiMeshState > &mesh2D_states) |
Utility function to get current solid phase states from the multibody system in the provided structures. More... | |
void | LoadSolidForces (std::vector< FsiBodyForce > &body_forces, std::vector< FsiMeshForce > &mesh1D_forces, std::vector< FsiMeshForce > &mesh2D_forces) |
Utility function to apply forces in the provided structures to the multibody system. More... | |
virtual void | ExchangeSolidStates ()=0 |
Exchange solid phase state information between the MBS and fluid system. More... | |
virtual void | ExchangeSolidForces ()=0 |
Exchange solid phase force information between the multibody and fluid systems. More... | |
Protected Member Functions | |
ChFsiInterface (ChSystem &sysMBS, ChFluidSystem &sysCFD) | |
Protected Attributes | |
bool | m_verbose |
ChSystem & | m_sysMBS |
ChFluidSystem & | m_sysCFD |
std::vector< FsiBody > | m_fsi_bodies |
rigid bodies exposed to the FSI system | |
std::vector< FsiMesh1D > | m_fsi_meshes1D |
FEA meshes with 1-D segments exposed to the FSI system. | |
std::vector< FsiMesh2D > | m_fsi_meshes2D |
FEA meshes with 2-D faces exposed to the FSI system. | |
Member Function Documentation
◆ ExchangeSolidForces()
|
pure virtual |
Exchange solid phase force information between the multibody and fluid systems.
- Extract fluid forces on rigid bodies from fluid system and apply them as external loads to the MBS.
- Extract fluid forces on mesh nodes from fluid system and apply them as external loads to the MBS.
Implemented in chrono::fsi::ChFsiInterfaceSPH.
◆ ExchangeSolidStates()
|
pure virtual |
Exchange solid phase state information between the MBS and fluid system.
- Extract FSI body states from MBS and apply them to the fluid system.
- Extract FSI mesh node states from MBS and apply them to the fluid system.
Implemented in chrono::fsi::ChFsiInterfaceSPH.
◆ GetFsiBodyForce()
const ChVector3d & chrono::fsi::ChFsiInterface::GetFsiBodyForce | ( | size_t | i | ) | const |
Return the FSI applied force on the body with specified index.
The force is applied at the body COM and is expressed in the absolute frame.
◆ GetFsiBodyTorque()
const ChVector3d & chrono::fsi::ChFsiInterface::GetFsiBodyTorque | ( | size_t | i | ) | const |
Return the FSI applied torque on the body with specified index.
The torque is expressed in the absolute frame.
◆ LoadSolidForces()
void chrono::fsi::ChFsiInterface::LoadSolidForces | ( | std::vector< FsiBodyForce > & | body_forces, |
std::vector< FsiMeshForce > & | mesh1D_forces, | ||
std::vector< FsiMeshForce > & | mesh2D_forces | ||
) |
Utility function to apply forces in the provided structures to the multibody system.
A runtime exception is thrown if the output vectors do not have the appropriate sizes.
◆ StoreSolidStates()
void chrono::fsi::ChFsiInterface::StoreSolidStates | ( | std::vector< FsiBodyState > & | body_states, |
std::vector< FsiMeshState > & | mesh1D_states, | ||
std::vector< FsiMeshState > & | mesh2D_states | ||
) |
Utility function to get current solid phase states from the multibody system in the provided structures.
A runtime exception is thrown if the output vectors do not have the appropriate sizes.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_fsi/ChFsiInterface.h
- /builds/uwsbel/chrono/src/chrono_fsi/ChFsiInterface.cpp