Physics objects
  Description
Collaboration diagram for Physics objects:

Classes | |
| class | chrono::fsi::sph::SphBceManager | 
| Manager for processing boundary condition enforcing (BCE) particle forces in an FSI system.  More... | |
| class | chrono::fsi::sph::SphCollisionSystem | 
| Base class for processing proximity computation in an FSI system.  More... | |
| struct | chrono::fsi::sph::SphMarkerDataD | 
| Struct to store the information of SPH particles on the device.  More... | |
| struct | chrono::fsi::sph::SphMarkerDataH | 
| Struct to store the information of SPH particles on the host.  More... | |
| struct | chrono::fsi::sph::FsiBodyStateH | 
| Rigid body states on host.  More... | |
| struct | chrono::fsi::sph::FsiBodyStateD | 
| Rigid body states on device.  More... | |
| struct | chrono::fsi::sph::FsiMeshStateH | 
| FEA mesh states on host.  More... | |
| struct | chrono::fsi::sph::FsiMeshStateD | 
| FEA mesh state on device.  More... | |
| struct | chrono::fsi::sph::ProximityDataD | 
| Struct to store neighbor search information on the device.  More... | |
| struct | chrono::fsi::sph::CudaDeviceInfo | 
| Struct to store CUDA device information.  More... | |
| struct | chrono::fsi::sph::Counters | 
| Number of rigid and flexible solid bodies, fluid SPH particles, solid SPH particles, boundary SPH particles.  More... | |
| struct | chrono::fsi::sph::FsiDataManager | 
| Data manager for the SPH-based FSI system.  More... | |
| class | chrono::fsi::sph::SphFluidDynamics | 
| Class to represent the fluid/granular dynamics system.  More... | |
| class | chrono::fsi::sph::SphForce | 
| Base class to calculate force between SPH particles.  More... | |
| class | chrono::fsi::sph::SphForceISPH | 
| Inter-particle force calculation for the implicit SPH method.  More... | |
| class | chrono::fsi::sph::SphForceWCSPH | 
| Inter-particle force calculation for explicit SPH schemes.  More... | |
Typedefs | |
| typedef thrust::device_vector< Real3 >::iterator | chrono::fsi::sph::r3IterD | 
| typedef device iterators for shorthand SPH operation of thrust vectors of Real3  | |
| typedef thrust::device_vector< Real4 >::iterator | chrono::fsi::sph::r4IterD | 
| typedef device iterators for shorthand SPH operation of thrust vectors of Real4  | |
| typedef thrust::tuple< r4IterD, r3IterD, r4IterD, r3IterD, r3IterD > | chrono::fsi::sph::iterTupleSphD | 
| typedef device tuple for holding SPH data pos,vel,[rho,pressure,mu,type]  | |
| typedef thrust::zip_iterator< iterTupleSphD > | chrono::fsi::sph::zipIterSphD | 
| typedef thrust::host_vector< Real3 >::iterator | chrono::fsi::sph::r3IterH | 
| typedef host iterators for shorthand SPH operation of thrust vectors of Real3  | |
| typedef thrust::host_vector< Real4 >::iterator | chrono::fsi::sph::r4IterH | 
| typedef host iterators for shorthand SPH operation of thrust vectors of Real4  | |
| typedef thrust::tuple< r4IterH, r3IterH, r4IterH, r3IterH, r3IterH > | chrono::fsi::sph::iterTupleH | 
| typedef host tuple for holding SPH data pos,vel,[rho,pressure,mu,type]  | |
| typedef thrust::zip_iterator< iterTupleH > | chrono::fsi::sph::zipIterSphH | 
| typedef thrust::tuple< r3IterD, r3IterD, r3IterD, r4IterD, r3IterD, r3IterD > | chrono::fsi::sph::iterTupleRigidD | 
| typedef device iterators for shorthand rigid body states: pos,lin_vel,lin_acc,rot,ang_Vel,ang_acc  | |
| typedef thrust::zip_iterator< iterTupleRigidD > | chrono::fsi::sph::zipIterRigidD | 
| typedef thrust::tuple< r3IterH, r3IterH, r3IterH, r4IterH, r3IterH, r3IterH > | chrono::fsi::sph::iterTupleRigidH | 
| typedef host iterators for shorthand rigid body states: pos,lin_vel,lin_acc,rot,ang_Vel,ang_acc  | |
| typedef thrust::zip_iterator< iterTupleRigidH > | chrono::fsi::sph::zipIterRigidH | 
| typedef thrust::tuple< r3IterH, r3IterH, r3IterH, r4IterH, r3IterH, r3IterH > | chrono::fsi::sph::iterTupleChronoBodiesH | 
| typedef device iterators for shorthand chrono bodies operations  | |
| typedef thrust::zip_iterator< iterTupleChronoBodiesH > | chrono::fsi::sph::zipIterChronoBodiesH | 
Enumerations | |
| enum | chrono::fsi::sph::MarkerGroup {  FLUID, SOLID, BOUNDARY, NON_FLUID, NON_SOLID, NON_BOUNDARY, ALL }  | 
| Marker (SPH and BCE) groups.  | |
| enum | chrono::fsi::sph::MarkerType {  SPH_PARTICLE, SPH_HELPER, SPH_GHOST, BCE_WALL, BCE_RIGID, BCE_FLEX1D, BCE_FLEX2D }  | 
| Marker (SPH and BCE) type.  | |
Functions | |
| void | chrono::fsi::sph::calculateDirectionsMesh1D (FsiDataManager &data_mgr) | 
| Utility function to calculate (on the device) direction vectors at the flexible 1-D mesh nodes.  More... | |
| void | chrono::fsi::sph::calculateDirectionsMesh2D (FsiDataManager &data_mgr) | 
| Utility function to calculate (on the device) direction vectors at the flexible 2-D mesh nodes.  More... | |
| void | chrono::fsi::sph::printDirectionsMesh1D (FsiDataManager &data_mgr) | 
| __host__ __device__ Real | chrono::fsi::sph::W3h_CubicSpline (Real d, Real invh) | 
| __host__ __device__ Real3 | chrono::fsi::sph::GradW3h_CubicSpline (Real3 d, Real invh) | 
| __host__ __device__ Real | chrono::fsi::sph::W3h_Quadratic (Real d, Real invh) | 
| __host__ __device__ Real3 | chrono::fsi::sph::GradW3h_Quadratic (Real3 d, Real invh) | 
| __host__ __device__ Real | chrono::fsi::sph::W3h_QuinticSpline (Real d, Real invh) | 
| __host__ __device__ Real3 | chrono::fsi::sph::GradW3h_QuinticSpline (Real3 d, Real invh) | 
| __host__ __device__ Real | chrono::fsi::sph::W3h_Wendland (Real d, Real invh) | 
| __host__ __device__ Real3 | chrono::fsi::sph::GradW3h_Wendland (Real3 d, Real invh) | 
| __host__ __device__ Real | chrono::fsi::sph::W3h (KernelType type, Real d, Real invh) | 
| __host__ __device__ Real3 | chrono::fsi::sph::GradW3h (KernelType type, Real3 d, Real invh) | 
| __device__ Real | chrono::fsi::sph::Eos (Real rho, EosType eos_type) | 
| __device__ Real | chrono::fsi::sph::InvEos (Real pw, EosType eos_type) | 
| __device__ Real | chrono::fsi::sph::FerrariCi (Real rho) | 
| __device__ Real3 | chrono::fsi::sph::Modify_Local_PosB (Real3 &b, Real3 a) | 
| __device__ Real3 | chrono::fsi::sph::Distance (Real3 a, Real3 b) | 
| __device__ void | chrono::fsi::sph::RotationMatrixFromQuaternion (Real3 &AD1, Real3 &AD2, Real3 &AD3, const Real4 &q) | 
| __device__ Real3 | chrono::fsi::sph::InverseRotate_By_RotationMatrix_DeviceHost (const Real3 &A1, const Real3 &A2, const Real3 &A3, const Real3 &r3) | 
| __device__ int3 | chrono::fsi::sph::calcGridPos (Real3 p) | 
| __device__ uint | chrono::fsi::sph::calcGridHash (int3 gridPos) | 
| __device__ uint | chrono::fsi::sph::calcCellID (uint3 cellPos) | 
| __device__ uint | chrono::fsi::sph::getCellPos (int trialCellPos, uint ub) | 
| __device__ uint | chrono::fsi::sph::getCenterCellID (const uint *numPartsInCenterCells, const uint threadID) | 
| __device__ Real | chrono::fsi::sph::Strain_Rate (Real3 grad_ux, Real3 grad_uy, Real3 grad_uz) | 
| __device__ Real | chrono::fsi::sph::Tensor_Norm (Real *T) | 
| __device__ Real | chrono::fsi::sph::Sym_Tensor_Norm (Real3 xx_yy_zz, Real3 xy_xz_yz) | 
| __device__ Real | chrono::fsi::sph::Inertia_num (Real Strain_rate, Real rho, Real p, Real diam) | 
| __device__ Real | chrono::fsi::sph::mu_I (Real Strain_rate, Real I) | 
| __device__ Real | chrono::fsi::sph::mu_eff (Real Strain_rate, Real p, Real mu_I) | 
| __device__ Real | chrono::fsi::sph::Herschel_Bulkley_stress (Real Strain_rate, Real k, Real n, Real tau0) | 
| __device__ Real | chrono::fsi::sph::Herschel_Bulkley_mu_eff (Real Strain_rate, Real k, Real n, Real tau0) | 
| __global__ void | chrono::fsi::sph::calc_A_tensor (Real *A_tensor, Real *G_tensor, Real4 *sortedPosRad, Real4 *sortedRhoPreMu, Real *sumWij_inv, uint *cellStart, uint *cellEnd, volatile bool *error_flag) | 
| __global__ void | chrono::fsi::sph::calc_L_tensor (Real *A_tensor, Real *L_tensor, Real *G_tensor, Real4 *sortedPosRad, Real4 *sortedRhoPreMu, Real *sumWij_inv, uint *cellStart, uint *cellEnd, volatile bool *error_flag) | 
| __global__ void | chrono::fsi::sph::calcRho_kernel (Real4 *sortedPosRad, Real4 *sortedRhoPreMu, Real *sumWij_inv, const uint *neighborList, const uint *mynumContacts, volatile bool *error_flag) | 
| __global__ void | chrono::fsi::sph::calcNormalizedRho_Gi_fillInMatrixIndices (Real4 *sortedPosRad, Real3 *sortedVelMas, Real4 *sortedRhoPreMu, Real *sumWij_inv, Real *G_i, Real3 *normals, const uint *csrColInd, const uint *numContacts, volatile bool *error_flag) | 
| __global__ void | chrono::fsi::sph::Function_Gradient_Laplacian_Operator (Real4 *sortedPosRad, Real3 *sortedVelMas, Real4 *sortedRhoPreMu, Real *sumWij_inv, Real *G_tensor, Real *L_tensor, Real *A_L, Real3 *A_G, Real *A_f, uint *csrColInd, uint *numContacts, volatile bool *error_flag) | 
| __global__ void | chrono::fsi::sph::Jacobi_SOR_Iter (Real4 *sortedRhoPreMu, Real *A_Matrix, Real3 *V_old, Real3 *V_new, Real3 *b3vec, Real *q_old, Real *q_new, Real *b1vec, const uint *csrColInd, const uint *numContacts, bool _3dvector, volatile bool *error_flag) | 
| __global__ void | chrono::fsi::sph::Update_AND_Calc_Res (Real4 *sortedRhoPreMu, Real3 *V_old, Real3 *V_new, Real *q_old, Real *q_new, Real *Residuals, bool _3dvector, volatile bool *error_flag) | 
| __global__ void | chrono::fsi::sph::Initialize_Variables (Real4 *sortedRhoPreMu, Real *p_old, Real3 *sortedVelMas, Real3 *V_new, volatile bool *error_flag) | 
| __global__ void | chrono::fsi::sph::UpdateDensity (Real3 *vis_vel, Real3 *XSPH_Vel, Real3 *new_vel, Real4 *sortedPosRad, Real4 *sortedRhoPreMu, Real *sumWij_inv, uint *cellStart, uint *cellEnd, volatile bool *error_flag) | 
| __host__ __device__ bool | chrono::fsi::sph::IsInMarkerGroup (MarkerGroup group, Real code) | 
| __host__ __device__ MarkerType | chrono::fsi::sph::GetMarkerType (Real code) | 
| __host__ __device__ Real | chrono::fsi::sph::GetMarkerCode (MarkerType type) | 
| __host__ __device__ bool | chrono::fsi::sph::IsSphParticle (Real code) | 
| __host__ __device__ bool | chrono::fsi::sph::IsFluidParticle (Real code) | 
| __host__ __device__ bool | chrono::fsi::sph::IsBceMarker (Real code) | 
| __host__ __device__ bool | chrono::fsi::sph::IsBceWallMarker (Real code) | 
| __host__ __device__ bool | chrono::fsi::sph::IsBceSolidMarker (Real code) | 
Function Documentation
◆ calculateDirectionsMesh1D()
| void chrono::fsi::sph::calculateDirectionsMesh1D | ( | FsiDataManager & | data_mgr | ) | 
Utility function to calculate (on the device) direction vectors at the flexible 1-D mesh nodes.
For 1-D meshes, these are averages of the segment direction vectors of adjacent segments.
◆ calculateDirectionsMesh2D()
| void chrono::fsi::sph::calculateDirectionsMesh2D | ( | FsiDataManager & | data_mgr | ) | 
Utility function to calculate (on the device) direction vectors at the flexible 2-D mesh nodes.
For 2-D meshes, these are averages of the face normals of adjacent faces.