16#include <Eigen/Sparse>
represents the domain of the simulation
bool isParticleDistributionBiased(const Particle &pi)
check if particle distribution is biased.
void setMinimumPressure(const double &re)
set minimum pressure for pressure gradient calculation
void calViscosity(const double &re)
calculate viscosity term of Navier-Stokes equation
std::unique_ptr< PressureCalculator::Interface > pressureCalculator
Interface for pressure calculation.
void moveParticleUsingPressureGradient()
move particles in correction step
Settings settings
Settings for the simulation.
Weight weightGrad
Weight function instance for the gradient calculation.
double courant
Maximum courant number among all particles.
void calPressureGradient(const double &re)
calculate pressure gradient term
RefValues refValuesForLaplacian
Reference values for the simulation ( , )
void moveParticle()
move particles in prediction step
RefValues refValuesForNumberDensity
Reference values for the simulation ( , )
void calCourant()
calculate Courant number
void collision()
calculate collision between particles when they are too close
Eigen::Vector3d gravity
Gravity vector for the simulation.
NeighborSearcher neighborSearcher
Neighbor searcher for neighbor search.
std::unique_ptr< SurfaceDetector::Interface > surfaceDetector
Interface for free surface detection.
void calNumberDensity(const double &re)
calculate number density of each particle
RefValues refValuesForGradient
Reference values for the simulation ( , )
Weight weight
Weight function instance except for gradient calculation.
void calGravity()
calculate gravity term
Particles particles
Particles in the simulation.
Domain domain
Domain of the simulation.
Class for particle in MPS method.
A collection of particles.
Struct for reference values of MPS method.
Provides a weight function.
Struct for settings of calculation.