chrono::fsi::ChSystemFsi Class Reference

Description

Physical system for fluid-solid interaction problem.

This class is used to represent a fluid-solid interaction problem consist of fluid dynamics and multibody system. Each of the two underlying physics are independent objects owned and instantiated by this class. Additionally, the fsi system owns other objects to handle the interface between the two systems, boundary condition enforcing markers, and data.

#include <ChSystemFsi.h>

Inherits chrono::fsi::ChFsiGeneral.

Public Member Functions

 ChSystemFsi (ChSystem &other_physicalSystem, ChFluidDynamics::Integrator type=ChFluidDynamics::Integrator::IISPH)
 Constructor for FSI system. More...
 
 ~ChSystemFsi ()
 Destructor for the FSI system.
 
virtual void DoStepDynamics_FSI ()
 Function to integrate the fsi system in time. More...
 
virtual void DoStepDynamics_ChronoRK2 ()
 Function to integrate the multibody system dynamics based on Runge-Kutta 2nd-order integration scheme.
 
virtual void CopyDeviceDataToHalfStep ()
 Function to initialize the midpoint device data of the fluid system by copying from the full step.
 
virtual void FinalizeData ()
 Fill out the dependent data based on the independent one. More...
 
std::shared_ptr< ChFsiDataManagerGetDataManager ()
 Get a pointer to the data manager.
 
void SetFluidSystemLinearSolver (ChFsiLinearSolver::SolverType other_solverType)
 Set the linear system solver for implicit methods.
 
void SetFluidDynamics (fluid_dynamics params_type=fluid_dynamics::I2SPH)
 Set the SPH method to be used for fluid dynamics.
 
std::shared_ptr< SimParams > GetSimParams ()
 Get a pointer to the parameters used to set up the simulation.
 
std::vector< std::shared_ptr< ChBody > > & GetFsiBodies ()
 Get a reference to the fsi bodies. More...
 
std::vector< std::shared_ptr< fea::ChElementCableANCF > > & GetFsiCables ()
 Get a reference to the fsi ChElementCableANCF. More...
 
std::vector< std::shared_ptr< fea::ChElementShellANCF > > & GetFsiShells ()
 Get a reference to the fsi ChElementShellANCF. More...
 
std::vector< std::shared_ptr< fea::ChNodeFEAxyzD > > & GetFsiNodes ()
 Get a reference to the fsi ChNodeFEAxyzD. More...
 
void AddFsiBody (std::shared_ptr< ChBody > mbody)
 Adds FSI body to the FsiSystem.
 
virtual void Finalize ()
 Finzalizes data by calling FinalizeData function and finalize fluid and bce and also finalizes the fluid and bce objects if the system have fluid.
 
void SetCableElementsNodes (std::vector< std::vector< int >> elementsNodes)
 Finalizes the construction of cable elements in the FSI system.
 
void SetShellElementsNodes (std::vector< std::vector< int >> elementsNodes)
 Finalizes the construction of cable elements in the FSI system.
 
void SetFsiMesh (std::shared_ptr< fea::ChMesh > other_fsi_mesh)
 Sets the FSI mesh for flexible elements.
 
void SetParticleOutputMode (CHFSI_OUTPUT_MODE mode)
 Sets the FSI system output mode.
 
void WriteParticleFile (const std::string &outfilename) const
 Write FSI system particle output.
 
std::shared_ptr< fea::ChMeshGetFsiMesh ()
 Gets the FSI mesh for flexible elements.
 

Constructor & Destructor Documentation

◆ ChSystemFsi()

chrono::fsi::ChSystemFsi::ChSystemFsi ( ChSystem other_physicalSystem,
ChFluidDynamics::Integrator  type = ChFluidDynamics::Integrator::IISPH 
)

Constructor for FSI system.

This class constructor instantiates all the member objects. Wherever relevant, the instantiation is handled by sending a pointer to other objects or data. Therefore, the sub-classes have pointers to the same data.

Member Function Documentation

◆ DoStepDynamics_FSI()

void chrono::fsi::ChSystemFsi::DoStepDynamics_FSI ( )
virtual

Function to integrate the fsi system in time.

It uses a Runge-Kutta 2nd order algorithm to update both the fluid and multibody system dynamics. The midpoint data of MBS is needed for fluid dynamics update.

The following is used to execute the Explicit WCSPH

◆ FinalizeData()

void chrono::fsi::ChSystemFsi::FinalizeData ( )
virtual

Fill out the dependent data based on the independent one.

For instance, it copies the position of the rigid bodies from the multibody dynamics system to arrays in fsi system since they are needed for internal use.

◆ GetFsiBodies()

std::vector<std::shared_ptr<ChBody> >& chrono::fsi::ChSystemFsi::GetFsiBodies ( )
inline

Get a reference to the fsi bodies.

fsi bodies are the ones seen by the fluid dynamics system.

◆ GetFsiCables()

std::vector<std::shared_ptr<fea::ChElementCableANCF> >& chrono::fsi::ChSystemFsi::GetFsiCables ( )
inline

Get a reference to the fsi ChElementCableANCF.

fsi ChElementCableANCF are the ones seen by the fluid dynamics system.

◆ GetFsiNodes()

std::vector<std::shared_ptr<fea::ChNodeFEAxyzD> >& chrono::fsi::ChSystemFsi::GetFsiNodes ( )
inline

Get a reference to the fsi ChNodeFEAxyzD.

fsi ChNodeFEAxyzD are the ones seen by the fluid dynamics system.

◆ GetFsiShells()

std::vector<std::shared_ptr<fea::ChElementShellANCF> >& chrono::fsi::ChSystemFsi::GetFsiShells ( )
inline

Get a reference to the fsi ChElementShellANCF.

fsi ChElementShellANCF are the ones seen by the fluid dynamics system.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_fsi/ChSystemFsi.h
  • /builds/uwsbel/chrono/src/chrono_fsi/ChSystemFsi.cpp