chrono::fsi::sph::SphFluidDynamics 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 SphForce.

Public Member Functions

 SphFluidDynamics (FsiDataManager &data_mgr, SphBceManager &bce_mgr, bool verbose, bool check_errors)
 Constructor of the fluid/granular dynamics class. More...
 
 ~SphFluidDynamics ()
 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 SynchronizeCopyStream ()
 Synchronize the async copy stream (used for the copySortedToOriginal function)
 
void DensityReinitialization ()
 Function to perform Shepard filtering. More...
 
void Initialize ()
 Initialize the force and colision systems. More...
 
std::shared_ptr< SphForceGetForceSystem ()
 Return the SphForce type used in the simulation.
 
void UpdateActivity (std::shared_ptr< SphMarkerDataD > sphMarkersD, double time)
 Update activity of SPH particles. More...
 
bool CheckActivityArrayResize ()
 Check if arrays must be resized due to change in particle activity.
 
double computeTimeStep () const
 Compute the time step.
 

Constructor & Destructor Documentation

◆ SphFluidDynamics()

chrono::fsi::sph::SphFluidDynamics::SphFluidDynamics ( FsiDataManager data_mgr,
SphBceManager bce_mgr,
bool  verbose,
bool  check_errors 
)

Constructor of the fluid/granular dynamics class.

  • Instantiate SphForce, 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::SphFluidDynamics::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::SphFluidDynamics::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::SphFluidDynamics::Initialize ( )

Initialize the force and colision systems.

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

◆ ProximitySearch()

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

Perform proximity search.

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

◆ UpdateActivity()

void chrono::fsi::sph::SphFluidDynamics::UpdateActivity ( std::shared_ptr< SphMarkerDataD sphMarkersD,
double  time 
)

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/SphFluidDynamics.cuh