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 > sortedSphMarkers_D, std::shared_ptr< ProximityDataD > markersProximity_D, std::shared_ptr< FsiData > fsiData, std::shared_ptr< SimParams > paramsH, std::shared_ptr< ChCounters > numObjects, bool verbose) | |
Constructor of the ChBce class. More... | |
~ChBce () | |
Destructor of the ChBce class. | |
void | UpdateBodyMarkerState (std::shared_ptr< FsiBodyStateD > fsiBodyState_D) |
Updates the position and velocity of the particles on the rigid bodies based on the state of the body. | |
void | UpdateMeshMarker1DState (std::shared_ptr< FsiMeshStateD > fsiMesh1DState_D) |
Updates the position and velocity of the particles on the flexible solids based on the state of the mesh. | |
void | UpdateMeshMarker2DState (std::shared_ptr< FsiMeshStateD > fsiMesh2DState_D) |
void | UpdateBodyMarkerStateInitial (std::shared_ptr< SphMarkerDataD > sphMarkers_D, std::shared_ptr< FsiBodyStateD > fsiBodyState_D) |
Updates the position and velocity of the particles on the rigid bodies based on the state of the body. | |
void | UpdateMeshMarker1DStateInitial (std::shared_ptr< SphMarkerDataD > sphMarkers_D, std::shared_ptr< FsiMeshStateD > fsiMesh1DState_D) |
Updates the position and velocity of the particles on the flexible solids based on the state of the mesh. | |
void | UpdateMeshMarker2DStateInitial (std::shared_ptr< SphMarkerDataD > sphMarkers_D, std::shared_ptr< FsiMeshStateD > fsiMesh2DState_D) |
void | Rigid_Forces_Torques (std::shared_ptr< FsiBodyStateD > fsiBodyState_D) |
Calculates the forces from the fluid/granular dynamics system to the FSI system on rigid bodies. | |
void | Flex1D_Forces (std::shared_ptr< FsiMeshStateD > fsiMesh1DState_D) |
Calculates the forces from the fluid/granular dynamics system to the FSI system on flexible bodies. | |
void | Flex2D_Forces (std::shared_ptr< FsiMeshStateD > fsiMesh2DState_D) |
void | CalcMeshMarker1DAcceleration (thrust::device_vector< Real3 > &bceAcc, std::shared_ptr< FsiMeshStateD > fsiMesh1DState_D) |
void | CalcMeshMarker2DAcceleration (thrust::device_vector< Real3 > &bceAcc, std::shared_ptr< FsiMeshStateD > fsiMesh2DState_D) |
void | updateBCEAcc (std::shared_ptr< FsiBodyStateD > fsiBodyState_D, std::shared_ptr< FsiMeshStateD > fsiMesh1DState_D, std::shared_ptr< FsiMeshStateD > fsiMesh2DState_D) |
void | Populate_RigidSPH_MeshPos_LRF (std::shared_ptr< SphMarkerDataD > sphMarkers_D, std::shared_ptr< FsiBodyStateD > fsiBodyState_D, std::vector< int > fsiBodyBceNum) |
Populates the BCE particles on the rigid bodies at the initial configuration of the system. More... | |
void | Initialize (std::shared_ptr< SphMarkerDataD > sphMarkers_D, std::shared_ptr< FsiBodyStateD > fsiBodyState_D, std::shared_ptr< FsiMeshStateD > fsiMesh1DState_D, std::shared_ptr< FsiMeshStateD > fsiMesh2DState_D, std::vector< int > fsiBodyBceNum) |
Complete construction of the BCE at the intial configuration of the system. | |
Public Member Functions inherited from chrono::fsi::ChFsiBase | |
ChFsiBase (std::shared_ptr< SimParams > params, std::shared_ptr< ChCounters > numObjects) | |
Constructor for the ChFsiBase class. More... | |
virtual | ~ChFsiBase () |
Destructor of the ChFsiBase class. | |
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 | |
Static Public Member Functions inherited from chrono::fsi::ChFsiBase | |
static void | computeGridSize (uint n, uint blockSize, uint &numBlocks, uint &numThreads) |
Compute number of blocks and threads for calculation on GPU. More... | |
Protected Attributes inherited from chrono::fsi::ChFsiBase | |
std::shared_ptr< SimParams > | paramsH |
simulation parameters (host) | |
std::shared_ptr< ChCounters > | numObjectsH |
problem counters (host) | |
Constructor & Destructor Documentation
◆ ChBce()
chrono::fsi::ChBce::ChBce | ( | std::shared_ptr< SphMarkerDataD > | sortedSphMarkers_D, |
std::shared_ptr< ProximityDataD > | markersProximity_D, | ||
std::shared_ptr< FsiData > | fsiData, | ||
std::shared_ptr< SimParams > | paramsH, | ||
std::shared_ptr< ChCounters > | numObjects, | ||
bool | verbose | ||
) |
Constructor of the ChBce class.
- Parameters
-
sortedSphMarkers_D data for SPH particles markersProximity_D information for neighbor search fsiData general information, e.g, ordering of the phases paramsH simulation parameters numObjects number of sph particles on each phase verbose verbose terminal output
Member Function Documentation
◆ Populate_RigidSPH_MeshPos_LRF()
void chrono::fsi::ChBce::Populate_RigidSPH_MeshPos_LRF | ( | std::shared_ptr< SphMarkerDataD > | sphMarkers_D, |
std::shared_ptr< FsiBodyStateD > | fsiBodyState_D, | ||
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