15#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.
bool isFreeSurface(const Particle &pi)
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
void setBoundaryCondition()
set boundary condition of pressure Poisson equation
RefValues refValuesForNumberDensity
Reference values for the simulation ( , )
void calCourant()
calculate Courant number
void collision()
calculate collision between particles when they are too close
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 ( , )
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.
Struct for settings of calculation.