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