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