Description

SPH-based fluid solver and FSI interface.

Collaboration diagram for SPH-based FSI module:

Modules

 Physics objects
 
 Math support
 
 Utilities
 
 Visualization
 

Namespaces

 chrono::fsi::sph::PeriodicSide
 Enumeration for specifying whether the sides of a computational domain are periodic or not.
 
 chrono::fsi::sph::BoxSide
 Enumeration for box sides.
 
 chrono::fsi::sph::CylSide
 Enumeration for cylinder sides.
 

Classes

struct  chrono::fsi::sph::Real2
 Pair of reals. More...
 
struct  chrono::fsi::sph::Real3
 Triplet of reals. More...
 
struct  chrono::fsi::sph::Real4
 Quadruplet of reals. More...
 
struct  chrono::fsi::sph::RealAABB
 Axis-aligned bounding box (real coordinates). More...
 
struct  chrono::fsi::sph::IntAABB
 Axis-aligned bounding box (integer grid coordinates). More...
 
struct  chrono::fsi::sph::BoundaryConditions
 Boundary condition types in all three directions of the computational domain. More...
 
class  chrono::fsi::sph::ChFsiFluidSystemSPH
 Physical system for an FSI-aware SPH fluid solver. More...
 
class  chrono::fsi::sph::ChFsiInterfaceSPH
 Custom FSI interface between a Chrono multibody system and the SPH-based fluid system. More...
 
struct  chrono::fsi::sph::ChFsiParamsSPH
 Structure with FSI simulation parameters. More...
 
class  chrono::fsi::sph::ChFsiProblemSPH
 Base class to set up a Chrono::FSI problem. More...
 
class  chrono::fsi::sph::ChFsiProblemCartesian
 Class to set up a Chrono::FSI problem using particles and markers on a Cartesian coordinates grid. More...
 
class  chrono::fsi::sph::ChFsiProblemCylindrical
 Class to set up a Chrono::FSI problem using particles and markers on a cylindrical coordinates grid. More...
 
class  chrono::fsi::sph::DepthPressurePropertiesCallback
 Predefined SPH particle initial properties callback (depth-based pressure). More...
 
class  chrono::fsi::sph::WaveTankRampBeach
 Predefined wave tank profile with a ramp beach. More...
 
class  chrono::fsi::sph::WaveTankParabolicBeach
 Predefined wave tank profile with a parabolic beach. More...
 
class  chrono::fsi::sph::ChFsiSystemSPH
 FSI system using an SPH-based fluid solver. More...
 

Typedefs

typedef float chrono::fsi::sph::Real
 Real type used in the SPH Chrono::FSI module (float or double).
 
typedef unsigned int chrono::fsi::sph::uint
 Unsigned int type used in the SPH Chrono::FSI module.
 
typedef unsigned short chrono::fsi::sph::ushort
 Unsigned short type used in the SPH Chrono::FSI module.
 

Enumerations

enum  chrono::fsi::sph::PhysicsProblem { chrono::fsi::sph::PhysicsProblem::CFD, chrono::fsi::sph::PhysicsProblem::CRM }
 Physics problem type. More...
 
enum  chrono::fsi::sph::IntegrationScheme {
  chrono::fsi::sph::IntegrationScheme::EULER, chrono::fsi::sph::IntegrationScheme::RK2, chrono::fsi::sph::IntegrationScheme::VERLET, chrono::fsi::sph::IntegrationScheme::SYMPLECTIC,
  chrono::fsi::sph::IntegrationScheme::IMPLICIT_SPH
}
 Integration scheme. More...
 
enum  chrono::fsi::sph::ShiftingMethod {
  NONE, PPST, XSPH, PPST_XSPH,
  DIFFUSION, DIFFUSION_XSPH
}
 Shifting Methods.
 
enum  chrono::fsi::sph::EosType { TAIT, ISOTHERMAL }
 Equation of State type. More...
 
enum  chrono::fsi::sph::KernelType { QUADRATIC, CUBIC_SPLINE, QUINTIC_SPLINE, WENDLAND }
 SPH kernel type.
 
enum  chrono::fsi::sph::ViscosityMethod { LAMINAR, ARTIFICIAL_UNILATERAL, ARTIFICIAL_BILATERAL }
 Visosity method type.
 
enum  chrono::fsi::sph::BoundaryMethod { ADAMI, HOLMES }
 Boundary method type.
 
enum  chrono::fsi::sph::Rheology { INERTIA_RHEOLOGY, NONLOCAL_FLUIDITY }
 Rheology type.
 
enum  chrono::fsi::sph::FrictionLaw { CONSTANT, LINEAR, NONLINEAR }
 Friction law in ISPH.
 
enum  chrono::fsi::sph::SolverType {
  JACOBI, BICGSTAB, GMRES, CR,
  CG, SAP
}
 Linear solver type.
 
enum  chrono::fsi::sph::BCType { chrono::fsi::sph::BCType::NONE, chrono::fsi::sph::BCType::PERIODIC, chrono::fsi::sph::BCType::INLET_OUTLET }
 Boundary conditions along directions of the computational domain. More...
 
enum  chrono::fsi::sph::BcePatternMesh1D { FULL, STAR }
 BCE pattern in cross section of 1-D flexible elements. More...
 
enum  chrono::fsi::sph::BcePatternMesh2D { CENTERED, OUTWARD, INWARD }
 BCE pattern along normal of 2-D surface of flexible elements. More...
 
enum  chrono::fsi::sph::OutputLevel { chrono::fsi::sph::OutputLevel::STATE, chrono::fsi::sph::OutputLevel::STATE_PRESSURE, chrono::fsi::sph::OutputLevel::CFD_FULL, chrono::fsi::sph::OutputLevel::CRM_FULL }
 Output level. More...
 

Functions

std::ostream & chrono::fsi::sph::operator<< (std::ostream &out, const Real2 &v)
 Insertion of a Real2 to output stream.
 
std::ostream & chrono::fsi::sph::operator<< (std::ostream &out, const Real3 &v)
 Insertion of a Real3 to output stream.
 
std::ostream & chrono::fsi::sph::operator<< (std::ostream &out, const Real4 &v)
 Insertion of a Real4 to output stream.
 

Variables

constexpr BoundaryConditions chrono::fsi::sph::BC_NONE = {BCType::NONE, BCType::NONE, BCType::NONE}
 
constexpr BoundaryConditions chrono::fsi::sph::BC_X_PERIODIC = {BCType::PERIODIC, BCType::NONE, BCType::NONE}
 
constexpr BoundaryConditions chrono::fsi::sph::BC_Y_PERIODIC = {BCType::NONE, BCType::PERIODIC, BCType::NONE}
 
constexpr BoundaryConditions chrono::fsi::sph::BC_Z_PERIODIC = {BCType::NONE, BCType::NONE, BCType::PERIODIC}
 
constexpr BoundaryConditions chrono::fsi::sph::BC_ALL_PERIODIC = {BCType::PERIODIC, BCType::PERIODIC, BCType::PERIODIC}
 

Enumeration Type Documentation

◆ BcePatternMesh1D

BCE pattern in cross section of 1-D flexible elements.

The available patterns are illustrated below (assuming 3 BCE layers):

FULL:
     X--X--X
     X--X--X
     X--X--X
STAR:
     ---X---
     X--X--X
     ---X---

◆ BcePatternMesh2D

BCE pattern along normal of 2-D surface of flexible elements.

The choices are illustrated below (assuming 3 BCE layers):

OUTWARD:
   ^ n
   |    ...--X--X--X--...
   |    ...--X--X--X--...
---|---------X--X--X-------- surface
CENTERED:
   ^ n
   |    ...--X--X--X--...
---|---------X--X--X-------- surface
   |    ...--X--X--X--...
INWARD:
   ^ n
---|---------X--X--X-------- surface
   |    ...--X--X--X--...
   |    ...--X--X--X--...

◆ BCType

Boundary conditions along directions of the computational domain.

Enumerator
NONE 

no boundary conditions enforced

PERIODIC 

periodic boundary conditions

INLET_OUTLET 

inlet-outlet boundary conditions

◆ EosType

Equation of State type.

See https://pysph.readthedocs.io/en/latest/reference/equations.html#basic-wcsph-equations. An equation of state is used only with an explicit WCSPH formulation.

◆ IntegrationScheme

Integration scheme.

All explicit integratioon schemes use a Weakly-Compressible SPH (WCSPH) formulation in which the density is integrated and an equation of state is used to calculate the corresponding pressure. For the implicit SPH scheme, the pressure is instead updated.

Enumerator
EULER 

Explicit Euler.

RK2 

Runge-Kutta 2.

VERLET 

Velocity Verlet.

SYMPLECTIC 

Symplectic Euler.

IMPLICIT_SPH 

Implicit SPH.

◆ OutputLevel

Output level.

Enumerator
STATE 

marker state, velocity, and acceleration

STATE_PRESSURE 

STATE plus density and pressure.

CFD_FULL 

STATE_PRESSURE plus various CFD parameters.

CRM_FULL 

STATE_PRESSURE plus normal and shear stress.

◆ PhysicsProblem

Physics problem type.

Enumerator
CFD 

incompressible fluid problem

CRM 

continuous granular problem