Description

Base class for processing boundary condition enforcing (BCE) marker forces in an FSI system.

This class handles the Fluid-Solid Interaction by enforcing i) forces from the fluid dynamics system to the MBD system and ii) displacement from the MBD system to the fluid dynamics system.

Inherits chrono::fsi::ChFsiGeneral.

Public Member Functions

 ChBce (std::shared_ptr< SphMarkerDataD > otherSortedSphMarkersD, std::shared_ptr< ProximityDataD > otherMarkersProximityD, std::shared_ptr< FsiGeneralData > otherFsiGeneralData, std::shared_ptr< SimParams > otherParamsH, std::shared_ptr< NumberOfObjects > otherNumObjects)
 Constructor of the ChBce. More...
 
virtual ~ChBce ()
 Destructor of the ChBce.
 
virtual void UpdateRigidMarkersPositionVelocity (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD)
 Updates the position and velocity of the markers on the rigid bodies based on the state of the body.
 
virtual void UpdateFlexMarkersPositionVelocity (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiMeshDataD > fsiMeshD)
 
virtual void Rigid_Forces_Torques (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD)
 Calculates the forces from the fluid dynamics system to the fsi system on rigid bodies.
 
virtual void Flex_Forces (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiMeshDataD > fsiMeshD)
 Calculates the forces from the fluid dynamics system to the fsi system on flexible bodies.
 
void ModifyBceVelocity (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD)
 
virtual void Populate_RigidSPH_MeshPos_LRF (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD)
 Populates the BCE markers on the rigid bodies at the initial configuration of the system. More...
 
virtual void Populate_FlexSPH_MeshPos_LRF (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiMeshDataD > fsiMeshD)
 Populates the BCE markers on the flexible bodies at the initial configuration of the system. More...
 
virtual void Finalize (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD, std::shared_ptr< FsiMeshDataD > fsiMeshD)
 Finalizes the construction of the ChBce at the intial configuration of the system.
 

Public Attributes

thrust::device_vector< Real3 > velMas_ModifiedBCE
 
thrust::device_vector< Real4 > rhoPreMu_ModifiedBCE
 

Constructor & Destructor Documentation

◆ ChBce()

chrono::fsi::ChBce::ChBce ( std::shared_ptr< SphMarkerDataD otherSortedSphMarkersD,
std::shared_ptr< ProximityDataD otherMarkersProximityD,
std::shared_ptr< FsiGeneralData otherFsiGeneralData,
std::shared_ptr< SimParams >  otherParamsH,
std::shared_ptr< NumberOfObjects otherNumObjects 
)

Constructor of the ChBce.

Parameters
otherSortedSphMarkersDHolds the position, velocity, denisty, pressure, viscousity and types of the SPH markers
otherMarkersProximityDHolds the information for the neighbor search and mapping from the sorted variables to an unsorted ones
otherFsiGeneralDataSome general information, e.g, ordering of the phases.
otherParamsHParameter of the simulation
otherNumObjectsHolds the number of sph markers on each phase

Member Function Documentation

◆ Populate_FlexSPH_MeshPos_LRF()

virtual void chrono::fsi::ChBce::Populate_FlexSPH_MeshPos_LRF ( std::shared_ptr< SphMarkerDataD sphMarkersD,
std::shared_ptr< FsiMeshDataD >  fsiMeshD 
)
virtual

Populates the BCE markers on the flexible bodies at the initial configuration of the system.

The local coordinates w.r.t to the coordinate system of the rigid body is saved and is used during the update stage. In such a condition the position and orientation of the body is enough to update the position of all the markers attached to it.

◆ Populate_RigidSPH_MeshPos_LRF()

virtual void chrono::fsi::ChBce::Populate_RigidSPH_MeshPos_LRF ( std::shared_ptr< SphMarkerDataD sphMarkersD,
std::shared_ptr< FsiBodiesDataD fsiBodiesD 
)
virtual

Populates the BCE markers on the rigid bodies at the initial configuration of the system.

The local coordinates w.r.t to the coordinate system of the rigid body is saved and is used during the update stage. In such a condition the position and orientation of the body is enough to update the position of all the markers attached to it.


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono_fsi/physics/ChBce.cuh