Description

Physics objects for the Chrono::FSI module. Including the fluid dynamics system, force system, interface with Chrono core module, simulation parameters, and data structures.

Collaboration diagram for Physics objects:

Classes

class  chrono::fsi::ChFsiInterface
 Base class for processing the interface between Chrono and FSI modules. More...
 
class  chrono::fsi::ChSystemFsi
 Physical system for fluid-solid interaction problems. More...
 
struct  chrono::fsi::SphMarkerDataD
 Struct to store the information of SPH particles on the device. More...
 
struct  chrono::fsi::SphMarkerDataH
 Struct to store the information of SPH particles on the host. More...
 
struct  chrono::fsi::FsiBodiesDataH
 Struct to store the information of rigid bodies on the host. More...
 
struct  chrono::fsi::FsiBodiesDataD
 Struct to store the information of rigid bodies on the device. More...
 
struct  chrono::fsi::FsiMeshDataH
 Struct to store the information of mesh on the host. More...
 
struct  chrono::fsi::FsiMeshDataD
 Struct to store the information of mesh on the device. More...
 
struct  chrono::fsi::FsiShellsDataH
 Struct to store the information of shell elements on the host. More...
 
struct  chrono::fsi::FsiShellsDataD
 Struct to store the information of shell elements on the device. More...
 
struct  chrono::fsi::ProximityDataD
 Struct to store neighbor search information on the device. More...
 
struct  chrono::fsi::ChronoBodiesDataH
 Struct to store Chrono rigid bodies information on the host. More...
 
struct  chrono::fsi::ChronoShellsDataH
 Struct to store Chrono shell elements information on the host. More...
 
struct  chrono::fsi::ChronoMeshDataH
 Struct to store Chrono mesh information on the host. More...
 
struct  chrono::fsi::FsiGeneralData
 Struct to store fluid/granular system information that need to be passed to Chrono. More...
 
class  chrono::fsi::ChSystemFsi_impl
 Data related function implementations for FSI system. More...
 
class  chrono::fsi::ChBce
 Base class for processing boundary condition enforcing (BCE) particle forces in an FSI system. More...
 
class  chrono::fsi::ChFluidDynamics
 Class to represent the fluid/granular dynamics system. More...
 
class  chrono::fsi::ChFsiForce
 Base class to calculate force between SPH particles. More...
 
class  chrono::fsi::ChFsiForceExplicitSPH
 Child class of ChFsiForce. More...
 
class  chrono::fsi::ChFsiForceI2SPH
 Derived class of ChFsiForce that implements the I2SPH method. More...
 
class  chrono::fsi::ChFsiForceIISPH
 Derived class of ChFsiForce that implements the IISPH method. More...
 
struct  chrono::fsi::NumberOfObjects
 Number of rigid and flexible solid bodies, fluid SPH particles, solid SPH particles, boundary SPH particles. More...
 
class  chrono::fsi::ChFsiGeneral
 Class for FSI properties and functions. More...
 
struct  chrono::fsi::SimParams
 Structure with FSI simulation parameters. More...
 
class  chrono::fsi::GpuTimer
 A template time recorder for cuda events. More...
 
class  chrono::fsi::ChUtilsDevice
 This utility class encapsulates a operators on device vectors which might be needed in host files. More...
 

Macros

#define mF2   make_float2
 
#define mF3   make_float3
 
#define mF4   make_float4
 
#define mR2   make_Real2
 
#define mR3   make_Real3
 
#define mR4   make_Real4
 
#define mI2   make_int2
 
#define mI3   make_int3
 
#define mI4   make_int4
 
#define mU3   make_uint3
 
#define F1CAST(x)   (float*)thrust::raw_pointer_cast(&x[0])
 
#define D1CAST(x)   (double*)thrust::raw_pointer_cast(&x[0])
 
#define BCAST(x)   (bool*)thrust::raw_pointer_cast(&x[0])
 
#define I1CAST(x)   (int*)thrust::raw_pointer_cast(&x[0])
 
#define mI2CAST(x)   (int2*)thrust::raw_pointer_cast(&x[0])
 
#define mI4CAST(x)   (int4*)thrust::raw_pointer_cast(&x[0])
 
#define U1CAST(x)   (uint*)thrust::raw_pointer_cast(&x[0])
 
#define U2CAST(x)   (uint2*)thrust::raw_pointer_cast(&x[0])
 
#define U4CAST(x)   (uint4*)thrust::raw_pointer_cast(&x[0])
 
#define LU1CAST(x)   (unsigned long int*)thrust::raw_pointer_cast(&x[0])
 
#define R1CAST(x)   (Real*)thrust::raw_pointer_cast(&x[0])
 
#define mR2CAST(x)   (Real2*)thrust::raw_pointer_cast(&x[0])
 
#define mR3CAST(x)   (Real3*)thrust::raw_pointer_cast(&x[0])
 
#define mR4CAST(x)   (Real4*)thrust::raw_pointer_cast(&x[0])
 
#define TCAST(x)   thrust::raw_pointer_cast(x.data())
 
#define mR3BY3CAST(x)   (Real3By3*)thrust::raw_pointer_cast(&x[0])
 
#define CUDA_KERNEL_DIM(...)   << <__VA_ARGS__>>>
 
#define LARGE_NUMBER   99999999
 
#define SMALL_NUMBER   -99999999
 
#define PI   3.1415926535897932384626433832795028841971693993751058f
 
#define INVPI   0.3183098861837906715377675267450287240689192914809128f
 
#define EPSILON   1e-8
 
#define RESOLUTION_LENGTH_MULT   2.0
 
#define cudaCheckError()
 

Typedefs

typedef thrust::device_vector< Real3 >::iterator chrono::fsi::r3IterD
 typedef device iterators for shorthand SPH operation of thrust vectors of Real3
 
typedef thrust::device_vector< Real4 >::iterator chrono::fsi::r4IterD
 typedef device iterators for shorthand SPH operation of thrust vectors of Real4
 
typedef thrust::tuple< r4IterD, r3IterD, r4IterD, r3IterD, r3IterDchrono::fsi::iterTupleSphD
 typedef device tuple for holding SPH data pos,vel,[rho,pressure,mu,type]
 
typedef thrust::zip_iterator< iterTupleSphDchrono::fsi::zipIterSphD
 
typedef thrust::host_vector< Real3 >::iterator chrono::fsi::r3IterH
 typedef host iterators for shorthand SPH operation of thrust vectors of Real3
 
typedef thrust::host_vector< Real4 >::iterator chrono::fsi::r4IterH
 typedef host iterators for shorthand SPH operation of thrust vectors of Real4
 
typedef thrust::tuple< r4IterH, r3IterH, r4IterH, r3IterH, r3IterHchrono::fsi::iterTupleH
 typedef host tuple for holding SPH data pos,vel,[rho,pressure,mu,type]
 
typedef thrust::zip_iterator< iterTupleHchrono::fsi::zipIterSphH
 
typedef thrust::tuple< r3IterD, r4IterD, r3IterD, r4IterD, r3IterD, r3IterDchrono::fsi::iterTupleRigidD
 typedef device iterators for shorthand rigid body states: pos,orientation in position, velocity and acceleration level
 
typedef thrust::zip_iterator< iterTupleRigidDchrono::fsi::zipIterRigidD
 
typedef thrust::tuple< r3IterH, r4IterH, r3IterH, r4IterH, r3IterH, r3IterHchrono::fsi::iterTupleRigidH
 typedef host iterators for shorthand rigid body states: pos,orientation in position, velocity and acceleration level
 
typedef thrust::zip_iterator< iterTupleRigidHchrono::fsi::zipIterRigidH
 
typedef thrust::tuple< r3IterH, r3IterH, r3IterH, r4IterH, r3IterH, r3IterHchrono::fsi::iterTupleChronoBodiesH
 typedef device iterators for shorthand chrono bodies operations
 
typedef thrust::zip_iterator< iterTupleChronoBodiesHchrono::fsi::zipIterChronoBodiesH
 

Enumerations

enum  chrono::fsi::CHFSI_OUTPUT_MODE { CSV, CHPF, NONE }
 Output mode.
 
enum  chrono::fsi::CHFSI_TIME_INTEGRATOR { ExplicitSPH, IISPH, I2SPH }
 Time integration methods.
 
enum  chrono::fsi::CHFSI_SOLVER_TYPE {
  JACOBI, BICGSSTAB, GMRES, CR,
  CG, SAP
}
 Linear solver type.
 
enum  chrono::fsi::BceVersion { ADAMI = 0, mORIGINAL = 1 }
 Approach to handle BCE particles.
 
enum  chrono::fsi::PPE_SolutionType { MATRIX_FREE, FORM_SPARSE_MATRIX }
 PPE_SolutionType.
 
enum  chrono::fsi::rheology { Inertia_rheology, nonlocal_fluidity }
 Rheology type.
 
enum  chrono::fsi::friction_law { constant, linear, nonlinear }
 Friction law in ISPH.
 
enum  chrono::fsi::fluid_dynamics { IISPH, I2SPH, WCSPH }
 Dynamics solver type for fluid/granular.
 

Macro Definition Documentation

◆ cudaCheckError

#define cudaCheckError ( )
Value:
{ \
cudaError_t e = cudaGetLastError(); \
if (e != cudaSuccess) { \
printf("Cuda failure %s:%d: '%s'\n", __FILE__, __LINE__, cudaGetErrorString(e)); \
exit(0); \
} \
}