Description
Data manager for the SPH-based FSI system.
Public Member Functions | |
FsiDataManager (std::shared_ptr< SimParams > params) | |
void | AddSphParticle (Real3 pos, Real rho, Real pres, Real mu, Real3 vel=mR3(0.0), Real3 tauXxYyZz=mR3(0.0), Real3 tauXyXzYz=mR3(0.0)) |
Add an SPH particle given its position, physical properties, velocity, and stress. | |
void | AddBceMarker (MarkerType type, Real3 pos, Real3 vel) |
Add a BCE marker of given type at the specified position and with specified velocity. | |
void | Initialize (unsigned int num_fsi_bodies, unsigned int num_fsi_nodes1D, unsigned int num_fsi_elements1D, unsigned int num_fsi_nodes2D, unsigned int num_fsi_elements2D) |
Initialize the underlying FSU system. More... | |
thrust::device_vector< int > | FindParticlesInBox (const Real3 &hsize, const Real3 &pos, const Real3 &ax, const Real3 &ay, const Real3 &az) |
Find indices of all SPH particles inside the specified OBB. | |
thrust::device_vector< Real3 > | GetPositions () |
Extract positions of all markers (SPH and BCE). More... | |
thrust::device_vector< Real3 > | GetVelocities () |
Extract velocities of all markers (SPH and BCE). More... | |
thrust::device_vector< Real3 > | GetAccelerations () |
Extract accelerations of all markers (SPH and BCE). More... | |
thrust::device_vector< Real3 > | GetForces () |
Extract forces applied to all markers (SPH and BCE). More... | |
thrust::device_vector< Real3 > | GetProperties () |
Extract fluid properties of all markers (SPH and BCE). More... | |
thrust::device_vector< Real3 > | GetPositions (const thrust::device_vector< int > &indices) |
Extract positions of all markers (SPH and BCE) with indices in the provided array. More... | |
thrust::device_vector< Real3 > | GetVelocities (const thrust::device_vector< int > &indices) |
Extract velocities of all markers (SPH and BCE) with indices in the provided array. More... | |
thrust::device_vector< Real3 > | GetAccelerations (const thrust::device_vector< int > &indices) |
Extract accelerations of all markers (SPH and BCE) with indices in the provided array. More... | |
thrust::device_vector< Real3 > | GetForces (const thrust::device_vector< int > &indices) |
Extract forces applied to all markers (SPH and BCE) with indices in the provided array. More... | |
Public Attributes | |
std::shared_ptr< SimParams > | paramsH |
simulation parameters (host) | |
std::shared_ptr< Counters > | countersH |
problem counters (host) | |
std::shared_ptr< SphMarkerDataD > | sphMarkers_D |
Information of SPH particles at state 1 on device. | |
std::shared_ptr< SphMarkerDataD > | sortedSphMarkers1_D |
Information of SPH particles at state 2 on device. | |
std::shared_ptr< SphMarkerDataD > | sortedSphMarkers2_D |
Sorted information of SPH particles at state 1 on device. | |
std::shared_ptr< SphMarkerDataH > | sphMarkers_H |
Information of SPH particles on host. | |
std::shared_ptr< FsiBodyStateH > | fsiBodyState_H |
rigid body state (host) | |
std::shared_ptr< FsiBodyStateD > | fsiBodyState_D |
rigid body state 2 (device) | |
std::shared_ptr< FsiMeshStateH > | fsiMesh1DState_H |
1-D FEA mesh state (host) | |
std::shared_ptr< FsiMeshStateD > | fsiMesh1DState_D |
1-D FEA mesh state (device) | |
std::shared_ptr< FsiMeshStateH > | fsiMesh2DState_H |
2-D FEA mesh state (host) | |
std::shared_ptr< FsiMeshStateD > | fsiMesh2DState_D |
2-D FEA mesh state (device) | |
std::shared_ptr< ProximityDataD > | markersProximity_D |
Information of neighbor search on the device. | |
std::shared_ptr< CudaDeviceInfo > | cudaDeviceInfo |
CUDA device information. | |
thrust::host_vector< int4 > | referenceArray |
phases in the array of SPH particles | |
thrust::host_vector< int4 > | referenceArray_FEA |
phases in the array of SPH particles for flexible elements | |
thrust::device_vector< Real4 > | derivVelRhoD |
dv/dt and d(rho)/dt for particles | |
thrust::device_vector< Real4 > | derivVelRhoOriginalD |
dv/dt and d(rho)/dt used for writing partilces in file - unsorted | |
thrust::device_vector< Real3 > | derivTauXxYyZzD |
d(tau)/dt for particles | |
thrust::device_vector< Real3 > | derivTauXyXzYzD |
d(tau)/dt for particles | |
thrust::device_vector< Real3 > | vel_XSPH_D |
XSPH velocity for particles. | |
thrust::device_vector< Real3 > | vis_vel_SPH_D |
ISPH velocity for particles. | |
thrust::device_vector< Real4 > | sr_tau_I_mu_i |
I2SPH strain-rate, stress, inertia number, friction. | |
thrust::device_vector< Real4 > | sr_tau_I_mu_i_Original |
I2SPH strain-rate, stress, inertia number, friction - unsorted for writing. | |
thrust::device_vector< Real3 > | bceAcc |
Acceleration for boundary/rigid/flex body particles. | |
thrust::device_vector< uint > | activityIdentifierD |
Identifies if a particle is an active particle or not. | |
thrust::device_vector< uint > | extendedActivityIdD |
Identifies if a particle is in an extended active domain. | |
thrust::device_vector< uint > | numNeighborsPerPart |
Stores the number of neighbors the particle, given by the index, has. | |
thrust::device_vector< uint > | neighborList |
Stores the neighbor list - all neighbors are just stored one by one. More... | |
thrust::device_vector< uint > | freeSurfaceIdD |
Identifies if a particle is close to free surface. | |
thrust::device_vector< Real3 > | rigid_BCEcoords_D |
rigid body BCE position (local reference frame) | |
thrust::host_vector< Real3 > | flex1D_BCEcoords_H |
local coords for BCE markers on 1-D flex segments (host) | |
thrust::device_vector< Real3 > | flex1D_BCEcoords_D |
local coords for BCE markers on 1-D flex segments (device) | |
thrust::host_vector< Real3 > | flex2D_BCEcoords_H |
local coords for BCE markers on 2-D flex faces (host) | |
thrust::device_vector< Real3 > | flex2D_BCEcoords_D |
local coors for BCE markers on 2-D flex faces (device) | |
thrust::device_vector< uint > | rigid_BCEsolids_D |
associated body ID for BCE markers on rigid bodies | |
thrust::host_vector< uint3 > | flex1D_BCEsolids_H |
associated mesh and segment for BCE markers on 1-D segments | |
thrust::device_vector< uint3 > | flex1D_BCEsolids_D |
associated mesh and segment for BCE markers on 1-D segments | |
thrust::host_vector< uint3 > | flex2D_BCEsolids_H |
associated mesh and face for BCE markers on 2-D faces | |
thrust::device_vector< uint3 > | flex2D_BCEsolids_D |
associated mesh and face for BCE markers on 2-D faces | |
thrust::device_vector< Real3 > | rigid_FSI_ForcesD |
surface-integrated forces to rigid bodies | |
thrust::device_vector< Real3 > | rigid_FSI_TorquesD |
surface-integrated torques to rigid bodies | |
thrust::device_vector< Real3 > | flex1D_FSIforces_D |
surface-integrated forces on FEA 1-D segment nodes | |
thrust::device_vector< Real3 > | flex2D_FSIforces_D |
surface-integrated forces on FEA 2-D face nodes | |
thrust::host_vector< int2 > | flex1D_Nodes_H |
node indices for each 1-D flex segment (host) | |
thrust::device_vector< int2 > | flex1D_Nodes_D |
node indices for each 1-D flex segment (device) | |
thrust::host_vector< int3 > | flex2D_Nodes_H |
node indices for each 2-D flex face (host) | |
thrust::device_vector< int3 > | flex2D_Nodes_D |
node indices for each 2-D flex face (device) | |
Friends | |
class | chrono::fsi::ChFluidSystemSPH |
Member Function Documentation
◆ GetAccelerations() [1/2]
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetAccelerations | ( | ) |
Extract accelerations of all markers (SPH and BCE).
The return value is a device thrust vector.
◆ GetAccelerations() [2/2]
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetAccelerations | ( | const thrust::device_vector< int > & | indices | ) |
Extract accelerations of all markers (SPH and BCE) with indices in the provided array.
The return value is a device thrust vector.
◆ GetForces() [1/2]
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetForces | ( | ) |
Extract forces applied to all markers (SPH and BCE).
The return value is a device thrust vector.
◆ GetForces() [2/2]
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetForces | ( | const thrust::device_vector< int > & | indices | ) |
Extract forces applied to all markers (SPH and BCE) with indices in the provided array.
The return value is a device thrust vector.
◆ GetPositions() [1/2]
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetPositions | ( | ) |
Extract positions of all markers (SPH and BCE).
The return value is a device thrust vector.
◆ GetPositions() [2/2]
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetPositions | ( | const thrust::device_vector< int > & | indices | ) |
Extract positions of all markers (SPH and BCE) with indices in the provided array.
The return value is a device thrust vector.
◆ GetProperties()
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetProperties | ( | ) |
Extract fluid properties of all markers (SPH and BCE).
For each SPH particle, the 3-dimensional vector contains density, pressure, and viscosity.
◆ GetVelocities() [1/2]
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetVelocities | ( | ) |
Extract velocities of all markers (SPH and BCE).
The return value is a device thrust vector.
◆ GetVelocities() [2/2]
thrust::device_vector<Real3> chrono::fsi::sph::FsiDataManager::GetVelocities | ( | const thrust::device_vector< int > & | indices | ) |
Extract velocities of all markers (SPH and BCE) with indices in the provided array.
The return value is a device thrust vector.
◆ Initialize()
void chrono::fsi::sph::FsiDataManager::Initialize | ( | unsigned int | num_fsi_bodies, |
unsigned int | num_fsi_nodes1D, | ||
unsigned int | num_fsi_elements1D, | ||
unsigned int | num_fsi_nodes2D, | ||
unsigned int | num_fsi_elements2D | ||
) |
Initialize the underlying FSU system.
Set reference arrays, set counters, and resize simulation arrays.
Member Data Documentation
◆ neighborList
thrust::device_vector<uint> chrono::fsi::sph::FsiDataManager::neighborList |
Stores the neighbor list - all neighbors are just stored one by one.
- The above vector provides the info required to idenitfy which particles neighbors are stored at which index of neighborList
The documentation for this class was generated from the following file:
- /builds/uwsbel/chrono/src/chrono_fsi/sph/physics/FsiDataManager.cuh