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< SphForce > | GetForceSystem () |
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_mgr FSI data manager bce_mgr BCE manager verbose verbose output check_errors check 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
-
y marker state (in/out) t current simulation time h simulation stepsize scheme integration 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