chrono::fsi::sph::FsiDataManager Struct Reference
  Description
Data manager for the SPH-based FSI system.
| Public Member Functions | |
| FsiDataManager (std::shared_ptr< ChFsiParamsSPH > params) | |
| void | SetGrowthFactor (float factor) | 
| Set the growth factor for buffer resizing. | |
| 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, NodeDirections node_directions_mode) | 
| Initialize the underlying FSU system.  More... | |
| std::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. | |
| std::vector< Real3 > | GetPositions () | 
| Extract positions of all markers (SPH and BCE). | |
| std::vector< Real3 > | GetVelocities () | 
| Extract velocities of all markers (SPH and BCE). | |
| std::vector< Real3 > | GetAccelerations () | 
| Extract accelerations of all markers (SPH and BCE). | |
| std::vector< Real3 > | GetForces () | 
| Extract forces applied to all markers (SPH and BCE). | |
| std::vector< Real3 > | GetProperties () | 
| Extract fluid properties of all markers (SPH and BCE).  More... | |
| std::vector< Real3 > | GetPositions (const std::vector< int > &indices) | 
| Extract positions of all markers (SPH and BCE) with indices in the provided array. | |
| std::vector< Real3 > | GetVelocities (const std::vector< int > &indices) | 
| Extract velocities of all markers (SPH and BCE) with indices in the provided array. | |
| std::vector< Real3 > | GetAccelerations (const std::vector< int > &indices) | 
| Extract accelerations of all markers (SPH and BCE) with indices in the provided array. | |
| std::vector< Real3 > | GetForces (const std::vector< int > &indices) | 
| Extract forces applied to all markers (SPH and BCE) with indices in the provided array. | |
| std::vector< Real3 > | GetRigidForces () | 
| Extract FSI forces on rigid bodies. | |
| std::vector< Real3 > | GetRigidTorques () | 
| Extract FSI torques on rigid bodies. | |
| std::vector< Real3 > | GetFlex1dForces () | 
| Extract FSI forces on flex1D nodes. | |
| std::vector< Real3 > | GetFlex2dForces () | 
| Extract FSI forces on flex2D nodes. | |
| void | ConstructReferenceArray () | 
| void | SetCounters (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) | 
| void | ResetData () | 
| Reset device data at beginning of a step.  More... | |
| void | ResizeArrays (uint numExtended) | 
| Resize data arrays based on particle activity. | |
| size_t | GetCurrentGPUMemoryUsage () const | 
| Return device memory usage. | |
| Public Attributes | |
| std::shared_ptr< CudaDeviceInfo > | cudaDeviceInfo | 
| CUDA device information. | |
| std::shared_ptr< ChFsiParamsSPH > | 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 (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) | |
| 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) | |
| thrust::host_vector< Real3 > | rigid_BCEcoords_H | 
| local coordinates for BCE markers on rigid bodies (host) | |
| thrust::device_vector< Real3 > | rigid_BCEcoords_D | 
| local coordinates for BCE markers on rigid bodies (device) | |
| 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::host_vector< uint > | rigid_BCEsolids_H | 
| body ID for BCE markers on rigid bodies (host) | |
| thrust::device_vector< uint > | rigid_BCEsolids_D | 
| body ID for BCE markers on rigid bodies (device) | |
| thrust::host_vector< uint3 > | flex1D_BCEsolids_H | 
| mesh and segment IDs for BCE markers on 1-D segments (host) | |
| thrust::device_vector< uint3 > | flex1D_BCEsolids_D | 
| mesh and segment IDs for BCE markers on 1-D segments (device) | |
| thrust::host_vector< uint3 > | flex2D_BCEsolids_H | 
| mesh and face IDs for BCE markers on 2-D faces (host) | |
| thrust::device_vector< uint3 > | flex2D_BCEsolids_D | 
| mesh and face IDs for BCE markers on 2-D faces (device) | |
| 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 | |
| std::shared_ptr< ProximityDataD > | markersProximity_D | 
| information of neighbor search on the device | |
| 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 | 
| particle dv/dt and d(rho)/dt for particles | |
| thrust::device_vector< Real4 > | derivVelRhoOriginalD | 
| particle dv/dt and d(rho)/dt - 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 | 
| ISPH strain-rate, stress, inertia number, friction. | |
| thrust::device_vector< Real4 > | sr_tau_I_mu_i_Original | 
| ISPH strain-rate, stress, inertia number, friction. | |
| thrust::device_vector< Real3 > | bceAcc | 
| acceleration for boundary/rigid/flex body particles | |
| thrust::device_vector< int32_t > | activityIdentifierOriginalD | 
| active particle flags - unsorted | |
| thrust::device_vector< int32_t > | activityIdentifierSortedD | 
| active particle flags - sorted | |
| thrust::device_vector< int32_t > | extendedActivityIdentifierOriginalD | 
| active particle flags - unsorted | |
| thrust::device_vector< uint > | prefixSumExtendedActivityIdD | 
| prefix sum of extended particles | |
| thrust::device_vector< uint > | activeListD | 
| active list of particles | |
| thrust::device_vector< uint > | numNeighborsPerPart | 
| number of neighbors for each particle | |
| thrust::device_vector< uint > | neighborList | 
| neighbor list for all particles | |
| thrust::device_vector< uint > | freeSurfaceIdD | 
| identifiers for particles close to free surface | |
| thrust::device_vector< Real > | courantViscousTimeStepD | 
| courant time step for viscosity | |
| thrust::device_vector< Real > | accelerationTimeStepD | 
| courant time step for acceleration - unsorted | |
Member Function Documentation
◆ GetProperties()
| std::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.
◆ 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, | ||
| NodeDirections | node_directions_mode | ||
| ) | 
Initialize the underlying FSU system.
Set reference arrays, set counters, and resize simulation arrays.
◆ ResetData()
| void chrono::fsi::sph::FsiDataManager::ResetData | ( | ) | 
Reset device data at beginning of a step.
Initializes device vectors to zero.
The documentation for this struct was generated from the following file:
- /builds/uwsbel/chrono/src/chrono_fsi/sph/physics/SphDataManager.cuh
