22    template<
typename TDataType>
 
   27        typedef typename TDataType::Real 
Real;
 
   28        typedef typename TDataType::Coord 
Coord;
 
   61        DEF_VAR(
bool, DivergenceSolverDisabled, 
false, 
"Disable the Divergence solver in the DFSPH method");
 
   66        DEF_VAR(
bool, DensitySolverDisabled, 
false, 
"Disable the Density solver in the DFSPH method");
 
   76        DEF_VAR(
Real, DivergenceErrorThreshold, 0.1, 
"Error Thershold for the Divergence solver");
 
   81        DEF_VAR(
Real, DensityErrorThreshold, 0.001, 
"Error Thershold for the Divergence solver");
 
   87        DEF_VAR(
Real, MaxIterationNumber, 50, 
"Maximum number of iteration of each solver");
 
 
#define DECLARE_TCLASS(name, T1)
 
#define IMPLEMENT_TCLASS(name, T1)
 
DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input particle position")
Particle positions.
 
DEF_VAR(bool, DensitySolverDisabled, false, "Disable the Density solver in the DFSPH method")
Disable the density solver.
 
Real takeOneDivergenIteration()
 
DEF_VAR(Real, DivergenceErrorThreshold, 0.1, "Error Thershold for the Divergence solver")
Error Threshold for the Divergence solver.
 
DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity")
Particle velocities.
 
DEF_ARRAY_OUT(Real, Density, DeviceType::GPU, "Final particle density")
Final particle densities.
 
std::shared_ptr< SummationDensity< TDataType > > mSummation
 
DArray< Real > mDivergence
 
DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids")
Neighboring particles' ids.
 
DEF_VAR(Real, MaxIterationNumber, 50, "Maximum number of iteration of each solver")
Maximum number of iteration of each solver.
 
DEF_VAR(bool, DivergenceSolverDisabled, false, "Disable the Divergence solver in the DFSPH method")
Disable the divergence solver.
 
DArray< Real > mPredictDensity
 
DEF_VAR_IN(Real, TimeStep, "Time Step")
 
DEF_VAR(Real, DensityErrorThreshold, 0.001, "Error Thershold for the Divergence solver")
Error Threshold for the Density solver.
 
DivergenceFreeSphSolver()
 
DEF_VAR(Real, RestDensity, 1000, "Reference density")
Rest density.
 
Real takeOneDensityIteration()
 
~DivergenceFreeSphSolver() override
 
The standard summation density.
 
This is an implementation of AdditiveCCD based on peridyno.
 
Array< T, DeviceType::GPU > DArray