chrono::fsi::sph::FsiDataManager Class Reference

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< SimParamsparamsH
 simulation parameters (host)
 
std::shared_ptr< CounterscountersH
 problem counters (host)
 
std::shared_ptr< SphMarkerDataDsphMarkers_D
 Information of SPH particles at state 1 on device.
 
std::shared_ptr< SphMarkerDataDsortedSphMarkers1_D
 Information of SPH particles at state 2 on device.
 
std::shared_ptr< SphMarkerDataDsortedSphMarkers2_D
 Sorted information of SPH particles at state 1 on device.
 
std::shared_ptr< SphMarkerDataHsphMarkers_H
 Information of SPH particles on host.
 
std::shared_ptr< FsiBodyStateHfsiBodyState_H
 rigid body state (host)
 
std::shared_ptr< FsiBodyStateDfsiBodyState_D
 rigid body state 2 (device)
 
std::shared_ptr< FsiMeshStateHfsiMesh1DState_H
 1-D FEA mesh state (host)
 
std::shared_ptr< FsiMeshStateDfsiMesh1DState_D
 1-D FEA mesh state (device)
 
std::shared_ptr< FsiMeshStateHfsiMesh2DState_H
 2-D FEA mesh state (host)
 
std::shared_ptr< FsiMeshStateDfsiMesh2DState_D
 2-D FEA mesh state (device)
 
std::shared_ptr< ProximityDataDmarkersProximity_D
 Information of neighbor search on the device.
 
std::shared_ptr< CudaDeviceInfocudaDeviceInfo
 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< uintactivityIdentifierD
 Identifies if a particle is an active particle or not.
 
thrust::device_vector< uintextendedActivityIdD
 Identifies if a particle is in an extended active domain.
 
thrust::device_vector< uintnumNeighborsPerPart
 Stores the number of neighbors the particle, given by the index, has.
 
thrust::device_vector< uintneighborList
 Stores the neighbor list - all neighbors are just stored one by one. More...
 
thrust::device_vector< uintfreeSurfaceIdD
 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< uintrigid_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