chrono::fsi Namespace Reference

Description

Namespace with classes for the FSI module.

Classes

class  ChBce
 Base class for processing boundary condition enforcing (BCE) particle forces in an FSI system. More...
 
class  ChCollisionSystemFsi
 Base class for processing proximity computation in an FSI system. More...
 
struct  ChCounters
 Number of rigid and flexible solid bodies, fluid SPH particles, solid SPH particles, boundary SPH particles. More...
 
class  ChFluidDynamics
 Class to represent the fluid/granular dynamics system. More...
 
class  ChFsiBase
 Base class for various FSI classes. More...
 
class  ChFsiForce
 Base class to calculate force between SPH particles. More...
 
class  ChFsiForceExplicitSPH
 Inter-particle force calculation for explicit schemes. More...
 
class  ChFsiForceI2SPH
 Inter-particle force calculation for the I2SPH method. More...
 
class  ChFsiInterface
 Base class for processing the interface between Chrono and FSI modules. More...
 
class  ChFsiLinearSolver
 Base class for solving linear systems on GPUs. More...
 
class  ChFsiLinearSolverBiCGStab
 BiCG-Stab iterative linear solver. More...
 
class  ChFsiLinearSolverGMRES
 GMRES iterative linear solver. More...
 
class  ChFsiProblem
 Base class to set up a Chrono::FSI problem. More...
 
class  ChFsiProblemCartesian
 Class to set up a Chrono::FSI problem using particles and markers on a Cartesian coordinates grid. More...
 
class  ChFsiProblemCylindrical
 Class to set up a Chrono::FSI problem using particles and markers on a cylindrical coordinates grid. More...
 
class  ChFsiVisualization
 Run-time visualization support for Chrono::FSI systems. More...
 
class  ChFsiVisualizationGL
 Run-time visualization support for Chrono::FSI systems. More...
 
class  ChFsiVisualizationVSG
 Run-time visualization support for Chrono::FSI systems. More...
 
class  ChSystemFsi
 Physical system for fluid-solid interaction problems. More...
 
class  ChSystemFsi_impl
 Underlying implementation of an FSI system. More...
 
class  ChUtilsDevice
 Utilities for thrust device vectors. More...
 
class  DepthPressurePropertiesCallback
 Predefined SPH particle initial properties callback (depth-based pressure). More...
 
struct  FsiBodyStateD
 Rigid body states on device. More...
 
struct  FsiBodyStateH
 Rigid body states on host. More...
 
struct  FsiData
 FSI system information information exchanged with the Chrono system. More...
 
struct  FsiMeshStateD
 FEA mesh state on device. More...
 
struct  FsiMeshStateH
 FEA mesh states on host. More...
 
class  GpuTimer
 Time recorder for cuda events. More...
 
struct  ProximityDataD
 Struct to store neighbor search information on the device. More...
 
struct  SimParams
 Structure with FSI simulation parameters. More...
 
struct  SphMarkerDataD
 Struct to store the information of SPH particles on the device. More...
 
struct  SphMarkerDataH
 Struct to store the information of SPH particles on the host. More...
 

Typedefs

typedef float Real
 Define the real type used in FSI (float or double).
 
typedef unsigned int uint
 Define the unsigned int type used in FSI.
 
typedef unsigned short ushort
 Define the unsigned short type used in FSI.
 
typedef thrust::device_vector< Real3 >::iterator r3IterD
 typedef device iterators for shorthand SPH operation of thrust vectors of Real3
 
typedef thrust::device_vector< Real4 >::iterator r4IterD
 typedef device iterators for shorthand SPH operation of thrust vectors of Real4
 
typedef thrust::tuple< r4IterD, r3IterD, r4IterD, r3IterD, r3IterDiterTupleSphD
 typedef device tuple for holding SPH data pos,vel,[rho,pressure,mu,type]
 
typedef thrust::zip_iterator< iterTupleSphDzipIterSphD
 
typedef thrust::host_vector< Real3 >::iterator r3IterH
 typedef host iterators for shorthand SPH operation of thrust vectors of Real3
 
typedef thrust::host_vector< Real4 >::iterator r4IterH
 typedef host iterators for shorthand SPH operation of thrust vectors of Real4
 
typedef thrust::tuple< r4IterH, r3IterH, r4IterH, r3IterH, r3IterHiterTupleH
 typedef host tuple for holding SPH data pos,vel,[rho,pressure,mu,type]
 
typedef thrust::zip_iterator< iterTupleHzipIterSphH
 
typedef thrust::tuple< r3IterD, r4IterD, r3IterD, r4IterD, r3IterD, r3IterDiterTupleRigidD
 typedef device iterators for shorthand rigid body states: pos,orientation in position, velocity and acceleration level
 
typedef thrust::zip_iterator< iterTupleRigidDzipIterRigidD
 
typedef thrust::tuple< r3IterH, r4IterH, r3IterH, r4IterH, r3IterH, r3IterHiterTupleRigidH
 typedef host iterators for shorthand rigid body states: pos,orientation in position, velocity and acceleration level
 
typedef thrust::zip_iterator< iterTupleRigidHzipIterRigidH
 
typedef thrust::tuple< r3IterH, r3IterH, r3IterH, r4IterH, r3IterH, r3IterHiterTupleChronoBodiesH
 typedef device iterators for shorthand chrono bodies operations
 
typedef thrust::zip_iterator< iterTupleChronoBodiesHzipIterChronoBodiesH
 

Enumerations

enum  BcePatternMesh1D { FULL, STAR }
 BCE pattern in cross section of 1-D flexible elements. More...
 
enum  BcePatternMesh2D { CENTERED, OUTWARD, INWARD }
 BCE pattern along normal of 2-D surface of flexible elements. More...
 
enum  Rheology { INERTIA_RHEOLOGY, NONLOCAL_FLUIDITY }
 Rheology type.
 
enum  FrictionLaw { CONSTANT, LINEAR, NONLINEAR }
 Friction law in ISPH.
 
enum  SPHMethod { SPHMethod::WCSPH, SPHMethod::I2SPH }
 SPH method. More...
 
enum  SolverType {
  JACOBI, BICGSTAB, GMRES, CR,
  CG, SAP
}
 Linear solver type.
 

Functions

bool InsidePoint (const utils::ChBodyGeometry &geometry, const ChVector3d &p)
 
Real3 LoadVectorJSON (const Value &a)
 
void printMatrix (const Real *A, int Ny, int Nx)
 
void GeneratePlaneRotation (const Real &dx, const Real &dy, Real &cs, Real &sn)
 
void ApplyPlaneRotation (Real &dx, Real &dy, const Real &cs, const Real &sn)
 
void PlaneRotation (Real *H, Real *cs, Real *sn, Real *s, const int i, const int restart)
 
__host__ __device__ float fminf (float a, float b)
 Return the minimum of two single precision numbers.
 
__host__ __device__ float fmaxf (float a, float b)
 Return the maximum of two single precision numbers.
 
__host__ __device__ int max (int a, int b)
 Return the maximum of two integer numbers.
 
__host__ __device__ int min (int a, int b)
 Return the minimum of two integer numbers.
 
__host__ __device__ float rsqrtf (float x)
 Return the reciprocal square root of a single precision number.
 
__host__ __device__ Real square (Real a)
 Square a float value.
 
__host__ __device__ Real cube (Real a)
 Cube a float value.
 
__host__ __device__ Real quartic (Real a)
 Quartic a float value.
 
__host__ __device__ Real quintic (Real a)
 Quintic a float value.
 
__VECTOR_FUNCTIONS_DECL__ uint2 make_uint2 (unsigned int x, unsigned int y)
 Make a vector with two unsigned integer elements.
 
__VECTOR_FUNCTIONS_DECL__ uint3 make_uint3 (unsigned int x, unsigned int y, unsigned int z)
 Make a vector with three unsigned integer elements.
 
__VECTOR_FUNCTIONS_DECL__ uint4 make_uint4 (unsigned int x, unsigned int y, unsigned int z, unsigned int w)
 Make a vector with four unsigned integer elements.
 
__VECTOR_FUNCTIONS_DECL__ int2 make_int2 (int x, int y)
 Make a vector with two integer elements.
 
__VECTOR_FUNCTIONS_DECL__ int3 make_int3 (int x, int y, int z)
 Make a vector with three integer elements.
 
__VECTOR_FUNCTIONS_DECL__ int4 make_int4 (int x, int y, int z, int w)
 Make a vector with four integer elements.
 
__VECTOR_FUNCTIONS_DECL__ float2 make_float2 (float x, float y)
 Make a vector with two float elements.
 
__VECTOR_FUNCTIONS_DECL__ float3 make_float3 (float x, float y, float z)
 Make a vector with three float elements.
 
__VECTOR_FUNCTIONS_DECL__ float4 make_float4 (float x, float y, float z, float w)
 Make a vector with four float elements.
 
__VECTOR_FUNCTIONS_DECL__ double2 make_double2 (double x, double y)
 Make a vector with two double elements.
 
__VECTOR_FUNCTIONS_DECL__ double3 make_double3 (double x, double y, double z)
 Make a vector with three double elements.
 
__VECTOR_FUNCTIONS_DECL__ double4 make_double4 (double x, double y, double z, double w)
 Make a vector with four double elements.
 
__host__ __device__ float2 make_float2 (float s)
 
__host__ __device__ float2 make_float2 (float3 a)
 
__host__ __device__ float2 make_float2 (int2 a)
 
__host__ __device__ float2 make_float2 (uint2 a)
 
__host__ __device__ int2 make_int2 (int s)
 
__host__ __device__ int2 make_int2 (int3 a)
 
__host__ __device__ int2 make_int2 (int4 a)
 
__host__ __device__ int2 make_int2 (uint2 a)
 
__host__ __device__ int2 make_int2 (float2 a)
 
__host__ __device__ uint2 make_uint2 (uint s)
 
__host__ __device__ uint2 make_uint2 (uint3 a)
 
__host__ __device__ uint2 make_uint2 (int2 a)
 
__host__ __device__ float3 make_float3 (float s)
 
__host__ __device__ float3 make_float3 (float2 a)
 
__host__ __device__ float3 make_float3 (float2 a, float s)
 
__host__ __device__ float3 make_float3 (float4 a)
 
__host__ __device__ float3 make_float3 (int3 a)
 
__host__ __device__ float3 make_float3 (uint3 a)
 
__host__ __device__ int3 make_int3 (int s)
 
__host__ __device__ int3 make_int3 (int2 a)
 
__host__ __device__ int3 make_int3 (int2 a, int s)
 
__host__ __device__ int3 make_int3 (uint3 a)
 
__host__ __device__ int3 make_int3 (float3 a)
 
__host__ __device__ uint3 make_uint3 (uint s)
 
__host__ __device__ uint3 make_uint3 (uint2 a)
 
__host__ __device__ uint3 make_uint3 (uint2 a, uint s)
 
__host__ __device__ uint3 make_uint3 (uint4 a)
 
__host__ __device__ uint3 make_uint3 (int3 a)
 
__host__ __device__ float4 make_float4 (float s)
 
__host__ __device__ float4 make_float4 (float3 a)
 
__host__ __device__ float4 make_float4 (float3 a, float w)
 
__host__ __device__ float4 make_float4 (int4 a)
 
__host__ __device__ float4 make_float4 (uint4 a)
 
__host__ __device__ int4 make_int4 (int s)
 
__host__ __device__ int4 make_int4 (int3 a)
 
__host__ __device__ int4 make_int4 (int3 a, int w)
 
__host__ __device__ int4 make_int4 (uint4 a)
 
__host__ __device__ int4 make_int4 (float4 a)
 
__host__ __device__ uint4 make_uint4 (uint s)
 
__host__ __device__ uint4 make_uint4 (uint3 a)
 
__host__ __device__ uint4 make_uint4 (uint3 a, uint w)
 
__host__ __device__ uint4 make_uint4 (int4 a)
 
__host__ __device__ float2 operator- (float2 &a)
 
__host__ __device__ int2 operator- (int2 &a)
 
__host__ __device__ float3 operator- (float3 &a)
 
__host__ __device__ int3 operator- (int3 &a)
 
__host__ __device__ float4 operator- (float4 &a)
 
__host__ __device__ int4 operator- (int4 &a)
 
__host__ __device__ float2 operator+ (float2 a, float2 b)
 
__host__ __device__ void operator+= (float2 &a, float2 b)
 
__host__ __device__ float2 operator+ (float2 a, float b)
 
__host__ __device__ float2 operator+ (float b, float2 a)
 
__host__ __device__ void operator+= (float2 &a, float b)
 
__host__ __device__ int2 operator+ (int2 a, int2 b)
 
__host__ __device__ void operator+= (int2 &a, int2 b)
 
__host__ __device__ int2 operator+ (int2 a, int b)
 
__host__ __device__ int2 operator+ (int b, int2 a)
 
__host__ __device__ void operator+= (int2 &a, int b)
 
__host__ __device__ uint2 operator+ (uint2 a, uint2 b)
 
__host__ __device__ void operator+= (uint2 &a, uint2 b)
 
__host__ __device__ uint2 operator+ (uint2 a, uint b)
 
__host__ __device__ uint2 operator+ (uint b, uint2 a)
 
__host__ __device__ void operator+= (uint2 &a, uint b)
 
__host__ __device__ float3 operator+ (float3 a, float3 b)
 
__host__ __device__ void operator+= (float3 &a, float3 b)
 
__host__ __device__ float3 operator+ (float3 a, float b)
 
__host__ __device__ void operator+= (float3 &a, float b)
 
__host__ __device__ int3 operator+ (int3 a, int3 b)
 
__host__ __device__ void operator+= (int3 &a, int3 b)
 
__host__ __device__ int3 operator+ (int3 a, int b)
 
__host__ __device__ void operator+= (int3 &a, int b)
 
__host__ __device__ uint3 operator+ (uint3 a, uint3 b)
 
__host__ __device__ void operator+= (uint3 &a, uint3 b)
 
__host__ __device__ uint3 operator+ (uint3 a, uint b)
 
__host__ __device__ void operator+= (uint3 &a, uint b)
 
__host__ __device__ int3 operator+ (int b, int3 a)
 
__host__ __device__ uint3 operator+ (uint b, uint3 a)
 
__host__ __device__ float3 operator+ (float b, float3 a)
 
__host__ __device__ float4 operator+ (float4 a, float4 b)
 
__host__ __device__ void operator+= (float4 &a, float4 b)
 
__host__ __device__ float4 operator+ (float4 a, float b)
 
__host__ __device__ float4 operator+ (float b, float4 a)
 
__host__ __device__ void operator+= (float4 &a, float b)
 
__host__ __device__ int4 operator+ (int4 a, int4 b)
 
__host__ __device__ void operator+= (int4 &a, int4 b)
 
__host__ __device__ int4 operator+ (int4 a, int b)
 
__host__ __device__ int4 operator+ (int b, int4 a)
 
__host__ __device__ void operator+= (int4 &a, int b)
 
__host__ __device__ uint4 operator+ (uint4 a, uint4 b)
 
__host__ __device__ void operator+= (uint4 &a, uint4 b)
 
__host__ __device__ uint4 operator+ (uint4 a, uint b)
 
__host__ __device__ uint4 operator+ (uint b, uint4 a)
 
__host__ __device__ void operator+= (uint4 &a, uint b)
 
__host__ __device__ float2 operator- (float2 a, float2 b)
 
__host__ __device__ void operator-= (float2 &a, float2 b)
 
__host__ __device__ float2 operator- (float2 a, float b)
 
__host__ __device__ float2 operator- (float b, float2 a)
 
__host__ __device__ void operator-= (float2 &a, float b)
 
__host__ __device__ int2 operator- (int2 a, int2 b)
 
__host__ __device__ void operator-= (int2 &a, int2 b)
 
__host__ __device__ int2 operator- (int2 a, int b)
 
__host__ __device__ int2 operator- (int b, int2 a)
 
__host__ __device__ void operator-= (int2 &a, int b)
 
__host__ __device__ uint2 operator- (uint2 a, uint2 b)
 
__host__ __device__ void operator-= (uint2 &a, uint2 b)
 
__host__ __device__ uint2 operator- (uint2 a, uint b)
 
__host__ __device__ uint2 operator- (uint b, uint2 a)
 
__host__ __device__ void operator-= (uint2 &a, uint b)
 
__host__ __device__ float3 operator- (float3 a, float3 b)
 
__host__ __device__ void operator-= (float3 &a, float3 b)
 
__host__ __device__ float3 operator- (float3 a, float b)
 
__host__ __device__ float3 operator- (float b, float3 a)
 
__host__ __device__ void operator-= (float3 &a, float b)
 
__host__ __device__ int3 operator- (int3 a, int3 b)
 
__host__ __device__ void operator-= (int3 &a, int3 b)
 
__host__ __device__ int3 operator- (int3 a, int b)
 
__host__ __device__ int3 operator- (int b, int3 a)
 
__host__ __device__ void operator-= (int3 &a, int b)
 
__host__ __device__ uint3 operator- (uint3 a, uint3 b)
 
__host__ __device__ void operator-= (uint3 &a, uint3 b)
 
__host__ __device__ uint3 operator- (uint3 a, uint b)
 
__host__ __device__ uint3 operator- (uint b, uint3 a)
 
__host__ __device__ void operator-= (uint3 &a, uint b)
 
__host__ __device__ float4 operator- (float4 a, float4 b)
 
__host__ __device__ void operator-= (float4 &a, float4 b)
 
__host__ __device__ float4 operator- (float4 a, float b)
 
__host__ __device__ void operator-= (float4 &a, float b)
 
__host__ __device__ int4 operator- (int4 a, int4 b)
 
__host__ __device__ void operator-= (int4 &a, int4 b)
 
__host__ __device__ int4 operator- (int4 a, int b)
 
__host__ __device__ int4 operator- (int b, int4 a)
 
__host__ __device__ void operator-= (int4 &a, int b)
 
__host__ __device__ uint4 operator- (uint4 a, uint4 b)
 
__host__ __device__ void operator-= (uint4 &a, uint4 b)
 
__host__ __device__ uint4 operator- (uint4 a, uint b)
 
__host__ __device__ uint4 operator- (uint b, uint4 a)
 
__host__ __device__ void operator-= (uint4 &a, uint b)
 
__host__ __device__ float2 operator* (float2 a, float2 b)
 
__host__ __device__ void operator*= (float2 &a, float2 b)
 
__host__ __device__ float2 operator* (float2 a, float b)
 
__host__ __device__ float2 operator* (float b, float2 a)
 
__host__ __device__ void operator*= (float2 &a, float b)
 
__host__ __device__ int2 operator* (int2 a, int2 b)
 
__host__ __device__ void operator*= (int2 &a, int2 b)
 
__host__ __device__ int2 operator* (int2 a, int b)
 
__host__ __device__ int2 operator* (int b, int2 a)
 
__host__ __device__ void operator*= (int2 &a, int b)
 
__host__ __device__ uint2 operator* (uint2 a, uint2 b)
 
__host__ __device__ void operator*= (uint2 &a, uint2 b)
 
__host__ __device__ uint2 operator* (uint2 a, uint b)
 
__host__ __device__ uint2 operator* (uint b, uint2 a)
 
__host__ __device__ void operator*= (uint2 &a, uint b)
 
__host__ __device__ float3 operator* (float3 a, float3 b)
 
__host__ __device__ void operator*= (float3 &a, float3 b)
 
__host__ __device__ float3 operator* (float3 a, float b)
 
__host__ __device__ float3 operator* (float b, float3 a)
 
__host__ __device__ void operator*= (float3 &a, float b)
 
__host__ __device__ int3 operator* (int3 a, int3 b)
 
__host__ __device__ void operator*= (int3 &a, int3 b)
 
__host__ __device__ int3 operator* (int3 a, int b)
 
__host__ __device__ int3 operator* (int b, int3 a)
 
__host__ __device__ void operator*= (int3 &a, int b)
 
__host__ __device__ uint3 operator* (uint3 a, uint3 b)
 
__host__ __device__ void operator*= (uint3 &a, uint3 b)
 
__host__ __device__ uint3 operator* (uint3 a, uint b)
 
__host__ __device__ uint3 operator* (uint b, uint3 a)
 
__host__ __device__ void operator*= (uint3 &a, uint b)
 
__host__ __device__ float4 operator* (float4 a, float4 b)
 
__host__ __device__ void operator*= (float4 &a, float4 b)
 
__host__ __device__ float4 operator* (float4 a, float b)
 
__host__ __device__ float4 operator* (float b, float4 a)
 
__host__ __device__ void operator*= (float4 &a, float b)
 
__host__ __device__ int4 operator* (int4 a, int4 b)
 
__host__ __device__ void operator*= (int4 &a, int4 b)
 
__host__ __device__ int4 operator* (int4 a, int b)
 
__host__ __device__ int4 operator* (int b, int4 a)
 
__host__ __device__ void operator*= (int4 &a, int b)
 
__host__ __device__ uint4 operator* (uint4 a, uint4 b)
 
__host__ __device__ void operator*= (uint4 &a, uint4 b)
 
__host__ __device__ uint4 operator* (uint4 a, uint b)
 
__host__ __device__ uint4 operator* (uint b, uint4 a)
 
__host__ __device__ void operator*= (uint4 &a, uint b)
 
__host__ __device__ float2 operator/ (float2 a, float2 b)
 
__host__ __device__ void operator/= (float2 &a, float2 b)
 
__host__ __device__ float2 operator/ (float2 a, float b)
 
__host__ __device__ void operator/= (float2 &a, float b)
 
__host__ __device__ float2 operator/ (float b, float2 a)
 
__host__ __device__ float3 operator/ (float3 a, float3 b)
 
__host__ __device__ void operator/= (float3 &a, float3 b)
 
__host__ __device__ float3 operator/ (float3 a, float b)
 
__host__ __device__ void operator/= (float3 &a, float b)
 
__host__ __device__ float3 operator/ (float b, float3 a)
 
__host__ __device__ float4 operator/ (float4 a, float4 b)
 
__host__ __device__ void operator/= (float4 &a, float4 b)
 
__host__ __device__ float4 operator/ (float4 a, float b)
 
__host__ __device__ void operator/= (float4 &a, float b)
 
__host__ __device__ float4 operator/ (float b, float4 a)
 
__host__ __device__ float2 fminf (float2 a, float2 b)
 
__host__ __device__ float3 fminf (float3 a, float3 b)
 
__host__ __device__ float4 fminf (float4 a, float4 b)
 
__host__ __device__ int2 min (int2 a, int2 b)
 
__host__ __device__ int3 min (int3 a, int3 b)
 
__host__ __device__ int4 min (int4 a, int4 b)
 
__host__ __device__ uint2 min (uint2 a, uint2 b)
 
__host__ __device__ uint3 min (uint3 a, uint3 b)
 
__host__ __device__ uint4 min (uint4 a, uint4 b)
 
__host__ __device__ float2 fmaxf (float2 a, float2 b)
 
__host__ __device__ float3 fmaxf (float3 a, float3 b)
 
__host__ __device__ float4 fmaxf (float4 a, float4 b)
 
__host__ __device__ int2 max (int2 a, int2 b)
 
__host__ __device__ int3 max (int3 a, int3 b)
 
__host__ __device__ int4 max (int4 a, int4 b)
 
__host__ __device__ uint2 max (uint2 a, uint2 b)
 
__host__ __device__ uint3 max (uint3 a, uint3 b)
 
__host__ __device__ uint4 max (uint4 a, uint4 b)
 
__device__ __host__ float lerp (float a, float b, float t)
 
__device__ __host__ float2 lerp (float2 a, float2 b, float t)
 
__device__ __host__ float3 lerp (float3 a, float3 b, float t)
 
__device__ __host__ float4 lerp (float4 a, float4 b, float t)
 
__host__ __device__ float dot (float2 a, float2 b)
 
__host__ __device__ float dot (float3 a, float3 b)
 
__host__ __device__ float dot (float4 a, float4 b)
 
__host__ __device__ int dot (int2 a, int2 b)
 
__host__ __device__ int dot (int3 a, int3 b)
 
__host__ __device__ int dot (int4 a, int4 b)
 
__host__ __device__ uint dot (uint2 a, uint2 b)
 
__host__ __device__ uint dot (uint3 a, uint3 b)
 
__host__ __device__ uint dot (uint4 a, uint4 b)
 
__host__ __device__ float length (float2 v)
 
__host__ __device__ float length (float3 v)
 
__host__ __device__ float length (float4 v)
 
__host__ __device__ float2 normalize (float2 v)
 
__host__ __device__ float3 normalize (float3 v)
 
__host__ __device__ float4 normalize (float4 v)
 
__host__ __device__ float3 cross (float3 a, float3 b)
 
__host__ __device__ Real rminr (Real a, Real b)
 
__host__ __device__ Real rmaxr (Real a, Real b)
 
__host__ __device__ Real rsqrtr (Real x)
 
__host__ __device__ Real2 make_Real2 (Real b, Real c)
 
__host__ __device__ Real2 make_Real2 (Real s)
 
__host__ __device__ Real2 make_Real2 (Real3 a)
 
__host__ __device__ Real2 make_Real2 (int2 a)
 
__host__ __device__ Real2 make_Real2 (uint2 a)
 
__host__ __device__ int2 make_int2 (Real2 a)
 
__host__ __device__ Real3 make_Real3 (Real a, Real b, Real c)
 
__host__ __device__ Real3 make_Real3 (Real s)
 
__host__ __device__ Real3 make_Real3 (Real2 a)
 
__host__ __device__ Real3 make_Real3 (Real2 a, Real s)
 
__host__ __device__ Real3 make_Real3 (Real4 a)
 
__host__ __device__ Real3 make_Real3 (int3 a)
 
__host__ __device__ Real3 make_Real3 (uint3 a)
 
__host__ __device__ int3 make_int3 (Real3 a)
 
__host__ __device__ Real3 make_Real3 (Real3 a)
 
__host__ __device__ Real4 make_Real4 (Real a, Real b, Real c, Real d)
 
__host__ __device__ Real4 make_Real4 (Real s)
 
__host__ __device__ Real4 make_Real4 (Real3 a)
 
__host__ __device__ Real4 make_Real4 (Real3 a, Real w)
 
__host__ __device__ Real4 make_Real4 (Real4 a)
 
__host__ __device__ Real4 make_Real4 (int4 a)
 
__host__ __device__ Real4 make_Real4 (uint4 a)
 
__host__ __device__ int4 make_int4 (Real4 a)
 
__host__ __device__ Real2 operator- (Real2 &a)
 
__host__ __device__ Real3 operator- (Real3 &a)
 
__host__ __device__ Real4 operator- (Real4 &a)
 
__host__ __device__ Real2 operator+ (Real2 a, Real2 b)
 
__host__ __device__ void operator+= (Real2 &a, Real2 b)
 
__host__ __device__ Real2 operator+ (Real2 a, Real b)
 
__host__ __device__ Real2 operator+ (Real b, Real2 a)
 
__host__ __device__ void operator+= (Real2 &a, Real b)
 
__host__ __device__ Real3 operator+ (Real3 a, Real3 b)
 
__host__ __device__ void operator+= (Real3 &a, Real3 b)
 
__host__ __device__ Real3 operator+ (Real3 a, Real b)
 
__host__ __device__ void operator+= (Real3 &a, Real b)
 
__host__ __device__ Real3 operator+ (Real b, Real3 a)
 
__host__ __device__ Real4 operator+ (Real4 a, Real4 b)
 
__host__ __device__ void operator+= (Real4 &a, Real4 b)
 
__host__ __device__ Real4 operator+ (Real4 a, Real b)
 
__host__ __device__ Real4 operator+ (Real b, Real4 a)
 
__host__ __device__ void operator+= (Real4 &a, Real b)
 
__host__ __device__ Real2 operator- (Real2 a, Real2 b)
 
__host__ __device__ void operator-= (Real2 &a, Real2 b)
 
__host__ __device__ Real2 operator- (Real2 a, Real b)
 
__host__ __device__ Real2 operator- (Real b, Real2 a)
 
__host__ __device__ void operator-= (Real2 &a, Real b)
 
__host__ __device__ Real3 operator- (Real3 a, Real3 b)
 
__host__ __device__ void operator-= (Real3 &a, Real3 b)
 
__host__ __device__ Real3 operator- (Real3 a, Real b)
 
__host__ __device__ Real3 operator- (Real b, Real3 a)
 
__host__ __device__ void operator-= (Real3 &a, Real b)
 
__host__ __device__ Real4 operator- (Real4 a, Real4 b)
 
__host__ __device__ void operator-= (Real4 &a, Real4 b)
 
__host__ __device__ Real4 operator- (Real4 a, Real b)
 
__host__ __device__ void operator-= (Real4 &a, Real b)
 
__host__ __device__ Real2 operator* (Real2 a, Real2 b)
 
__host__ __device__ void operator*= (Real2 &a, Real2 b)
 
__host__ __device__ Real2 operator* (Real2 a, Real b)
 
__host__ __device__ Real2 operator* (Real b, Real2 a)
 
__host__ __device__ void operator*= (Real2 &a, Real b)
 
__host__ __device__ Real3 operator* (Real3 a, Real3 b)
 
__host__ __device__ void operator*= (Real3 &a, Real3 b)
 
__host__ __device__ Real3 operator* (Real3 a, Real b)
 
__host__ __device__ Real3 operator* (Real b, Real3 a)
 
__host__ __device__ void operator*= (Real3 &a, Real b)
 
__host__ __device__ Real4 operator* (Real4 a, Real4 b)
 
__host__ __device__ void operator*= (Real4 &a, Real4 b)
 
__host__ __device__ Real4 operator* (Real4 a, Real b)
 
__host__ __device__ Real4 operator* (Real b, Real4 a)
 
__host__ __device__ void operator*= (Real4 &a, Real b)
 
__host__ __device__ Real2 operator/ (Real2 a, Real2 b)
 
__host__ __device__ void operator/= (Real2 &a, Real2 b)
 
__host__ __device__ Real2 operator/ (Real2 a, Real b)
 
__host__ __device__ void operator/= (Real2 &a, Real b)
 
__host__ __device__ Real2 operator/ (Real b, Real2 a)
 
__host__ __device__ Real3 operator/ (Real3 a, Real3 b)
 
__host__ __device__ void operator/= (Real3 &a, Real3 b)
 
__host__ __device__ Real3 operator/ (Real3 a, Real b)
 
__host__ __device__ void operator/= (Real3 &a, Real b)
 
__host__ __device__ Real3 operator/ (Real b, Real3 a)
 
__host__ __device__ Real4 operator/ (Real4 a, Real4 b)
 
__host__ __device__ void operator/= (Real4 &a, Real4 b)
 
__host__ __device__ Real4 operator/ (Real4 a, Real b)
 
__host__ __device__ void operator/= (Real4 &a, Real b)
 
__host__ __device__ Real4 operator/ (Real b, Real4 a)
 
__host__ __device__ Real2 rminr (Real2 a, Real2 b)
 
__host__ __device__ Real3 rminr (Real3 a, Real3 b)
 
__host__ __device__ Real4 rminr (Real4 a, Real4 b)
 
__host__ __device__ Real2 rmaxr (Real2 a, Real2 b)
 
__host__ __device__ Real3 rmaxr (Real3 a, Real3 b)
 
__host__ __device__ Real4 rmaxr (Real4 a, Real4 b)
 
__host__ __device__ Real2 lerp (Real2 a, Real2 b, Real t)
 
__host__ __device__ Real3 lerp (Real3 a, Real3 b, Real t)
 
__host__ __device__ Real4 lerp (Real4 a, Real4 b, Real t)
 
__host__ __device__ Real dot (Real2 a, Real2 b)
 
__host__ __device__ Real dot (Real3 a, Real3 b)
 
__host__ __device__ Real dot (Real4 a, Real4 b)
 
__host__ __device__ Real length (Real v)
 
__host__ __device__ Real length (Real2 v)
 
__host__ __device__ Real length (Real3 v)
 
__host__ __device__ Real length (Real4 v)
 
__host__ __device__ Real2 normalize (Real2 v)
 
__host__ __device__ Real3 normalize (Real3 v)
 
__host__ __device__ Real4 normalize (Real4 v)
 
__host__ __device__ Real3 cross (Real3 a, Real3 b)
 
__host__ __device__ Real sgn (Real a)
 
__host__ __device__ Real3 sgn (Real3 a)
 
__host__ __device__ Real4 Cables_ShapeFunctions (Real l, Real xi)
 
__host__ __device__ Real4 Cables_ShapeFunctionsDerivatives (Real l, Real xi)
 
__host__ __device__ Real4 Shells_ShapeFunctions (Real x, Real y)
 
__host__ __device__ Real3 user_BC_U (Real3 Pos)
 
__device__ void clearRow (uint i_idx, uint csrStartIdx, uint csrEndIdx, Real *A_Matrix, Real *Bi)
 
__device__ void clearRow3 (uint i_idx, uint csrStartIdx, uint csrEndIdx, Real *A_Matrix, Real3 *Bi)
 
void CopyParams_NumberOfObjects (std::shared_ptr< SimParams > paramsH, std::shared_ptr< ChCounters > numObjectsH)
 
__device__ Real W3h_Spline (Real d, Real h)
 
__device__ Real W3h_High (Real d, Real h)
 
__device__ Real W3h_Quintic (Real d, Real h)
 
__device__ Real3 GradWh_Spline (Real3 d, Real h)
 
__device__ Real3 GradWh_High (Real3 d, Real h)
 
__device__ Real3 W3h_Quintic (Real3 d, Real h)
 
__device__ Real Eos (Real rho, Real type)
 
__device__ Real InvEos (Real pw)
 
__device__ Real FerrariCi (Real rho)
 
__device__ Real3 Modify_Local_PosB (Real3 &b, Real3 a)
 
__device__ Real3 Distance (Real3 a, Real3 b)
 
__device__ void RotationMatirixFromQuaternion (Real3 &AD1, Real3 &AD2, Real3 &AD3, const Real4 &q)
 
__device__ Real3 InverseRotate_By_RotationMatrix_DeviceHost (const Real3 &A1, const Real3 &A2, const Real3 &A3, const Real3 &r3)
 
__device__ int3 calcGridPos (Real3 p)
 
__device__ uint calcGridHash (int3 gridPos)
 
__device__ uint calcCellID (uint3 cellPos)
 
__device__ uint getCellPos (int trialCellPos, uint ub)
 
__device__ uint getCenterCellID (const uint *numPartsInCenterCells, const uint threadID)
 
__device__ Real Strain_Rate (Real3 grad_ux, Real3 grad_uy, Real3 grad_uz)
 
__device__ Real Tensor_Norm (Real *T)
 
__device__ Real Sym_Tensor_Norm (Real3 xx_yy_zz, Real3 xy_xz_yz)
 
__device__ Real Inertia_num (Real Strain_rate, Real rho, Real p, Real diam)
 
__device__ Real mu_I (Real Strain_rate, Real I)
 
__device__ Real mu_eff (Real Strain_rate, Real p, Real mu_I)
 
__device__ Real Herschel_Bulkley_stress (Real Strain_rate, Real k, Real n, Real tau0)
 
__device__ Real Herschel_Bulkley_mu_eff (Real Strain_rate, Real k, Real n, Real tau0)
 
__device__ void BCE_Vel_Acc (int i_idx, Real3 &myAcc, Real3 &V_prescribed, Real4 *sortedPosRad, int4 updatePortion, uint *gridMarkerIndexD, Real4 *qD, Real3 *rigid_BCEcoords_D, Real3 *posRigid_fsiBodies_D, Real4 *velMassRigid_fsiBodies_D, Real3 *omegaVelLRF_fsiBodies_D, Real3 *accRigid_fsiBodies_D, Real3 *omegaAccLRF_fsiBodies_D, uint *rigid_BCEsolids_D, Real3 *flex1D_vel_fsi_fea_D, Real3 *flex1D_acc_fsi_fea_D, Real3 *flex2D_vel_fsi_fea_D, Real3 *flex2D_acc_fsi_fea_D, uint2 *flex1D_Nodes_D, uint3 *flex1D_BCEsolids_D, Real3 *flex1D_BCEcoords_D, uint3 *flex2D_Nodes_D, uint3 *flex2D_BCEsolids_D, Real3 *flex2D_BCEcoords_D)
 
__global__ void calc_A_tensor (Real *A_tensor, Real *G_tensor, Real4 *sortedPosRad, Real4 *sortedRhoPreMu, Real *sumWij_inv, uint *cellStart, uint *cellEnd, const size_t numAllMarkers, volatile bool *isErrorD)
 
__global__ void calc_L_tensor (Real *A_tensor, Real *L_tensor, Real *G_tensor, Real4 *sortedPosRad, Real4 *sortedRhoPreMu, Real *sumWij_inv, uint *cellStart, uint *cellEnd, const size_t numAllMarkers, volatile bool *isErrorD)
 
__global__ void calcRho_kernel (Real4 *sortedPosRad, Real4 *sortedRhoPreMu, Real *sumWij_inv, uint *cellStart, uint *cellEnd, uint *mynumContact, const size_t numAllMarkers, volatile bool *isErrorD)
 
__global__ void calcNormalizedRho_kernel (Real4 *sortedPosRad, Real3 *sortedVelMas, Real4 *sortedRhoPreMu, Real *sumWij_inv, Real *G_i, Real3 *normals, Real *Color, uint *cellStart, uint *cellEnd, const size_t numAllMarkers, volatile bool *isErrorD)
 
__global__ void calcNormalizedRho_Gi_fillInMatrixIndices (Real4 *sortedPosRad, Real3 *sortedVelMas, Real4 *sortedRhoPreMu, Real *sumWij_inv, Real *G_i, Real3 *normals, uint *csrColInd, uint *numContacts, uint *cellStart, uint *cellEnd, const size_t numAllMarkers, volatile bool *isErrorD)
 
__global__ void 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, const size_t numAllMarkers, volatile bool *isErrorD)
 
__global__ void 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, size_t numAllMarkers, bool _3dvector, volatile bool *isErrorD)
 
__global__ void Update_AND_Calc_Res (Real4 *sortedRhoPreMu, Real3 *V_old, Real3 *V_new, Real *q_old, Real *q_new, Real *Residuals, const size_t numAllMarkers, bool _3dvector, volatile bool *isErrorD)
 
__global__ void Initialize_Variables (Real4 *sortedRhoPreMu, Real *p_old, Real3 *sortedVelMas, Real3 *V_new, const size_t numAllMarkers, volatile bool *isErrorD)
 
__global__ void UpdateDensity (Real3 *vis_vel, Real3 *XSPH_Vel, Real3 *new_vel, Real4 *sortedPosRad, Real4 *sortedRhoPreMu, Real *sumWij_inv, uint *cellStart, uint *cellEnd, size_t numAllMarkers, volatile bool *isErrorD)
 
__global__ void neighborSearchNum (const Real4 *sortedPosRad, const Real4 *sortedRhoPreMu, const uint *cellStart, const uint *cellEnd, const uint *activityIdentifierD, uint *numNeighborsPerPart, volatile bool *isErrorD)
 
__global__ void neighborSearchID (const Real4 *sortedPosRad, const Real4 *sortedRhoPreMu, const uint *cellStart, const uint *cellEnd, const uint *activityIdentifierD, const uint *numNeighborsPerPart, uint *neighborList, volatile bool *isErrorD)
 

Variables

const Real pi = Real(CH_PI)