Description
Base class for processing boundary condition enforcing (BCE) particle forces in an FSI system.
This class handles the Fluid-Solid Interaction by enforcing i) forces from the fluid/granular dynamics system to the MBD system, and ii) displacement from the MBD system to the fluid dynamics system.
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 class. More... | |
~ChBce () | |
Destructor of the ChBce class. | |
void | UpdateRigidMarkersPositionVelocity (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD) |
Updates the position and velocity of the particles on the rigid bodies based on the state of the body. | |
void | UpdateFlexMarkersPositionVelocity (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiMeshDataD > fsiMeshD) |
Updates the position and velocity of the particles on the flexible bodies based on the state of the body. | |
void | Rigid_Forces_Torques (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD) |
Calculates the forces from the fluid/granular dynamics system to the FSI system on rigid bodies. | |
void | Flex_Forces (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiMeshDataD > fsiMeshD) |
Calculates the forces from the fluid/granular dynamics system to the FSI system on flexible bodies. | |
void | ModifyBceVelocity (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD) |
Modify the velocity of BCE particles according to the SPH particles around. | |
void | Populate_RigidSPH_MeshPos_LRF (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD) |
Populates the BCE particles on the rigid bodies at the initial configuration of the system. More... | |
void | Populate_FlexSPH_MeshPos_LRF (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiMeshDataD > fsiMeshD) |
Populates the BCE particles on the flexible bodies at the initial configuration of the system. More... | |
void | Finalize (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD, std::shared_ptr< FsiMeshDataD > fsiMeshD) |
Finalizes the construction of the BCE at the intial configuration of the system. | |
Public Member Functions inherited from chrono::fsi::ChFsiGeneral | |
ChFsiGeneral (std::shared_ptr< SimParams > hostParams, std::shared_ptr< NumberOfObjects > hostNumObjects) | |
Constructor for the ChFsiGeneral class. More... | |
virtual | ~ChFsiGeneral () |
Destructor of the ChFsiGeneral class. | |
void | computeGridSize (uint n, uint blockSize, uint &numBlocks, uint &numThreads) |
Compute number of blocks and threads for calculation on GPU. More... | |
Public Attributes | |
thrust::device_vector< Real3 > | velMas_ModifiedBCE |
Modified velocity information for BCE particles. | |
thrust::device_vector< Real4 > | rhoPreMu_ModifiedBCE |
Modified density, pressure information for BCE particles. | |
Additional Inherited Members | |
Protected Member Functions inherited from chrono::fsi::ChFsiGeneral | |
uint | iDivUp (uint a, uint b) |
Return a/b or a/b + 1. | |
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 class.
- Parameters
-
otherSortedSphMarkersD Holds the position, velocity, denisty, pressure, viscousity and types of the SPH particles. otherMarkersProximityD Holds the information for the neighbor search and mapping from the sorted variables to unsorted ones. otherFsiGeneralData Some general information, e.g, ordering of the phases. otherParamsH Parameter of the simulation. otherNumObjects Holds the number of sph particles on each phase.
Member Function Documentation
◆ Populate_FlexSPH_MeshPos_LRF()
void chrono::fsi::ChBce::Populate_FlexSPH_MeshPos_LRF | ( | std::shared_ptr< SphMarkerDataD > | sphMarkersD, |
std::shared_ptr< FsiMeshDataD > | fsiMeshD | ||
) |
Populates the BCE particles on the flexible bodies at the initial configuration of the system.
The local coordinates w.r.t to the coordinate system of the flexible bodies 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 particles attached to it.
◆ Populate_RigidSPH_MeshPos_LRF()
void chrono::fsi::ChBce::Populate_RigidSPH_MeshPos_LRF | ( | std::shared_ptr< SphMarkerDataD > | sphMarkersD, |
std::shared_ptr< FsiBodiesDataD > | fsiBodiesD | ||
) |
Populates the BCE particles on the rigid bodies at the initial configuration of the system.
The local coordinates w.r.t to the coordinate system of the rigid bodies 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 particles attached to it.
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono_fsi/physics/ChBce.cuh