chrono::fsi::sph::FluidDynamics Class Reference

Description

Class to represent the fluid/granular dynamics system.

This class is used to represent a fluid/granular system and take care of the time integration of the fluid/granular dynamics. This is a class designed for base SPH simulation. The class holds pointer to data, which is hold somewhere else. It also include a forceSystem, which takes care of the computation of force between particles. The forceSystem is owned by the class FsiForce.

Public Member Functions

 FluidDynamics (FsiDataManager &data_mgr, BceManager &bce_mgr, bool verbose, bool check_errors)
 Constructor of the fluid/granular dynamics class. More...
 
 ~FluidDynamics ()
 Destructor of the fluid/granular dynamics class.
 
void ProximitySearch ()
 Perform proximity search. More...
 
void CopySortedMarkers (const std::shared_ptr< SphMarkerDataD > &in, std::shared_ptr< SphMarkerDataD > &out)
 
void DoStepDynamics (std::shared_ptr< SphMarkerDataD > y, Real t, Real h, IntegrationScheme scheme)
 Advance the dynamics of the SPH fluid system. More...
 
void CopySortedToOriginal (MarkerGroup group, std::shared_ptr< SphMarkerDataD > sortedSphMarkersD2, std::shared_ptr< SphMarkerDataD > sphMarkersD)
 Copy markers in the specified group from sorted arrays to original-order arrays.
 
void DensityReinitialization ()
 Function to perform Shepard filtering. More...
 
void Initialize ()
 Initialize the force and colision systems. More...
 
std::shared_ptr< FsiForceGetForceSystem ()
 Return the FsiForce type used in the simulation.
 
void UpdateActivity (std::shared_ptr< SphMarkerDataD > sphMarkersD)
 Update activity of SPH particles. More...
 
bool CheckActivityArrayResize ()
 Check if arrays must be resized due to change in particle activity.
 

Constructor & Destructor Documentation

◆ FluidDynamics()

chrono::fsi::sph::FluidDynamics::FluidDynamics ( FsiDataManager data_mgr,
BceManager bce_mgr,
bool  verbose,
bool  check_errors 
)

Constructor of the fluid/granular dynamics class.

  • Instantiate FsiForce, i.e. force system;
  • Copy the pointer to SPH particle data, parameters, and number of objects to member variables.
Parameters
data_mgrFSI data manager
bce_mgrBCE manager
verboseverbose output
check_errorscheck CUDA errors

Member Function Documentation

◆ DensityReinitialization()

void chrono::fsi::sph::FluidDynamics::DensityReinitialization ( )

Function to perform Shepard filtering.

It calculates the densities directly, not based on the derivative of the density. This function is used in addition to the density update in UpdateFluid.

◆ DoStepDynamics()

void chrono::fsi::sph::FluidDynamics::DoStepDynamics ( std::shared_ptr< SphMarkerDataD y,
Real  t,
Real  h,
IntegrationScheme  scheme 
)

Advance the dynamics of the SPH fluid system.

In a explicit scheme, the force system calculates the forces between the particles which are then used to update the particles position, velocity, and density; The density is then used, through the equation of state, to update pressure. For the implicit SPH scheme, the pressures are updated instead of density.

Parameters
ymarker state (in/out)
tcurrent simulation time
hsimulation stepsize
schemeintegration scheme

◆ Initialize()

void chrono::fsi::sph::FluidDynamics::Initialize ( )

Initialize the force and colision systems.

Synchronize data between device and host (parameters and counters).

◆ ProximitySearch()

void chrono::fsi::sph::FluidDynamics::ProximitySearch ( )

Perform proximity search.

Sort particles (broad-phase) and create neighbor lists (narrow-phase)

◆ UpdateActivity()

void chrono::fsi::sph::FluidDynamics::UpdateActivity ( std::shared_ptr< SphMarkerDataD sphMarkersD)

Update activity of SPH particles.

SPH particles which are in an active domain (e.g., close to a solid) are set as active particles.


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono_fsi/sph/physics/FluidDynamics.cuh