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< ChCounters > otherNumObjects, bool verb) | |
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 | ModifyBceVelocityPressureStress (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD, std::shared_ptr< FsiMeshDataD > fsiMeshD) |
Modify the velocity, pressure, stress of BCE particles according to the SPH particles around. | |
void | Populate_RigidSPH_MeshPos_LRF (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD, std::vector< int > fsiBodyBceNum) |
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, std::vector< int > fsiShellBceNum, std::vector< int > fsiCableBceNum) |
Populates the BCE particles on the flexible bodies at the initial configuration of the system. More... | |
void | Initialize (std::shared_ptr< SphMarkerDataD > sphMarkersD, std::shared_ptr< FsiBodiesDataD > fsiBodiesD, std::shared_ptr< FsiMeshDataD > fsiMeshD, std::vector< int > fsiBodyBceNum, std::vector< int > fsiShellBceNum, std::vector< int > fsiCableBceNum) |
Complete 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< ChCounters > 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. | |
thrust::device_vector< Real3 > | tauXxYyZz_ModifiedBCE |
Modified stress tensor for BCE particles, diagonal entries. | |
thrust::device_vector< Real3 > | tauXyXzYz_ModifiedBCE |
Modified stress tensor for BCE particles, non-diagonal entries. | |
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< ChCounters > | otherNumObjects, | ||
bool | verb | ||
) |
Constructor of the ChBce class.
- Parameters
-
otherSortedSphMarkersD data for SPH particles otherMarkersProximityD information for neighbor search otherFsiGeneralData general information, e.g, ordering of the phases otherParamsH simulation parameters otherNumObjects number of sph particles on each phase verb verbose terminal output
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, | ||
std::vector< int > | fsiShellBceNum, | ||
std::vector< int > | fsiCableBceNum | ||
) |
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, | ||
std::vector< int > | fsiBodyBceNum | ||
) |
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