Description
Base class for an FSI-aware fluid solver.
#include <ChFsiFluidSystem.h>

Public Member Functions | |
| void | SetVerbose (bool verbose) |
| Enable/disable verbose terminal output (default: true). | |
| virtual void | SetGravitationalAcceleration (const ChVector3d &gravity)=0 |
| Set gravity for the fluid syatem. | |
| void | SetStepSize (double step) |
| Set integration step size. | |
| virtual void | Initialize () |
| Initialize the fluid system with no FSI support. | |
| void | DoStepDynamics (double step) |
| Function to integrate the FSI fluid system in time. | |
| double | GetSimTime () const |
| Get current simulation time. | |
| double | GetStepSize () const |
| Get the default constant integration step size. | |
| double | GetRtf () const |
| Get current estimated RTF (real time factor). | |
| double | GetTimerStep () const |
| Return the time in seconds for fluid dynamics over the last step. | |
| virtual void | OnDoStepDynamics (double time, double step)=0 |
Function to integrate the FSI fluid system from time to time + step. | |
| virtual void | OnExchangeSolidForces ()=0 |
| Additional actions taken before applying fluid forces to the solid phase. | |
| virtual void | OnExchangeSolidStates ()=0 |
| Additional actions taken after loading new solid phase states. | |
| virtual void | LoadSolidStates (const std::vector< FsiBodyState > &body_states, const std::vector< FsiMeshState > &mesh1D_states, const std::vector< FsiMeshState > &mesh2D_states)=0 |
| Load FSI body and mesh node states from the given vectors. More... | |
| virtual void | StoreSolidForces (std::vector< FsiBodyForce > body_forces, std::vector< FsiMeshForce > mesh1D_forces, std::vector< FsiMeshForce > mesh2D_forces)=0 |
| Store the body and mesh node forces to the given vectors. More... | |
| virtual double | GetCurrentStepSize () |
| Get the current step size. More... | |
Protected Member Functions | |
| void | UseNodeDirections (NodeDirectionsMode mode) |
| virtual void | OnAddFsiBody (std::shared_ptr< FsiBody > fsi_body, bool check_embedded) |
| Solver-specific actions taken when a rigid solid is added as an FSI object. | |
| virtual void | OnAddFsiMesh1D (std::shared_ptr< FsiMesh1D > mesh, bool check_embedded) |
| Solver-specific actions taken when a 1D deformable solid is added as an FSI object. | |
| virtual void | OnAddFsiMesh2D (std::shared_ptr< FsiMesh2D > mesh, bool check_embedded) |
| Solver-specific actions taken when a 2D deformable solid is added as an FSI object. | |
| virtual void | Initialize (const std::vector< FsiBodyState > &body_states, const std::vector< FsiMeshState > &mesh1D_states, const std::vector< FsiMeshState > &mesh2D_states)=0 |
| Initialize the fluid system using initial states of solid FSI objects. More... | |
Protected Attributes | |
| bool | m_verbose |
| enable/disable m_verbose terminal output | |
| std::string | m_outdir |
| output directory | |
| NodeDirectionsMode | m_node_directions_mode |
| mode used for FEA node directions | |
| bool | m_is_initialized |
| set to true once the Initialize function is called | |
| double | m_time |
| current simulation time | |
| double | m_step |
| time step for fluid dynamics | |
| unsigned int | m_frame |
| current simulation frame | |
Friends | |
| class | ChFsiSystem |
| class | ChFsiInterface |
Member Function Documentation
◆ GetCurrentStepSize()
|
inlinevirtual |
Get the current step size.
The default implementation returns the specified constant step size. A derived class may use a variable step size, in which case it must override this function.
◆ Initialize()
|
protectedpure virtual |
Initialize the fluid system using initial states of solid FSI objects.
A call to this function marks completion of the fluid system construction and can only be made from ChFsiSystem.
◆ LoadSolidStates()
|
pure virtual |
Load FSI body and mesh node states from the given vectors.
The functions LoadSolidStates and StoreSolidForces allow using a generic FSI interface. However, a concrete fluid system can be paired with a corresponding FSI interface, both of which work on the same data structures; in that case, the custom FSI interface need not use the mechanism provided by LoadSolidStates and StoreSolidForces (which incur the cost of additional data copies).
◆ StoreSolidForces()
|
pure virtual |
Store the body and mesh node forces to the given vectors.
The functions LoadSolidStates and StoreSolidForces allow using a generic FSI interface. However, a concrete fluid system can be paired with a corresponding FSI interface, both of which work on the same data structures; in that case, the custom FSI interface need not use the mechanism provided by LoadSolidStates and StoreSolidForces (which incur the cost of additional data copies).
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_fsi/ChFsiFluidSystem.h
- /builds/uwsbel/chrono/src/chrono_fsi/ChFsiFluidSystem.cpp