PeriDyno 1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ImplicitISPH.h
Go to the documentation of this file.
1#pragma once
4namespace dyno {
5
6 template<typename TDataType> class SummationDensity;
7
14 template<typename TDataType>
15 class ImplicitISPH : public ParticleApproximation<TDataType>
16 {
18 public:
19 typedef typename TDataType::Real Real;
20 typedef typename TDataType::Coord Coord;
21
23 ~ImplicitISPH() override;
24
25 public:
26 DEF_VAR_IN(Real, TimeStep, "Time Step");
27
31 DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input particle position");
32
36 DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity");
37
42 DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids");
43
47 DEF_ARRAY_OUT(Real, Density, DeviceType::GPU, "Final particle density");
48
49 public:
50 DEF_VAR(int, IterationNumber, 30, "Iteration number of the PBD solver");
51
52 DEF_VAR(Real, RestDensity, 1000, "Reference density");
53
54 DEF_VAR(Real, Kappa, Real(1), "");
55
56 DEF_VAR(Real, RelaxedOmega, Real(0.5f), "");
57
58 protected:
59 void compute() override;
60
61 public:
63
65
67
68 private:
69
71
73
75
77
79
81
83
85
87
89
90
92
93
94 private:
95 std::shared_ptr<SummationDensity<TDataType>> mSummation;
96 };
97
99}
#define DECLARE_TCLASS(name, T1)
Definition Object.h:87
#define IMPLEMENT_TCLASS(name, T1)
Definition Object.h:103
This is an implementation of the Implicit Incompressible SPH (IISPH) solver based on PeriDyno....
DEF_VAR(Real, RestDensity, 1000, "Reference density")
DArray< Coord > mSumDijPj
DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity")
Particle velocities.
Arithmetic< Real > * m_arithmetic
DArray< Real > mSourceTerm
DArray< Real > mDensityAdv
DArray< Real > mOldPressrue
DEF_VAR_IN(Real, TimeStep, "Time Step")
void compute() override
DArray< Real > mAii
DEF_ARRAY_OUT(Real, Density, DeviceType::GPU, "Final particle density")
Final particle densities.
DEF_VAR(Real, Kappa, Real(1), "")
DArray< Real > mAnPn
void PreIterationCompute()
DArray< Real > mPredictDensity
DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input particle position")
Particle positions.
DArray< Real > m_Residual
DEF_VAR(Real, RelaxedOmega, Real(0.5f), "")
~ImplicitISPH() override
DEF_VAR(int, IterationNumber, 30, "Iteration number of the PBD solver")
TDataType::Coord Coord
DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids")
Neighboring particles' ids.
DArray< Real > mPressrue
DArray< Coord > mDii
TDataType::Real Real
std::shared_ptr< SummationDensity< TDataType > > mSummation
The standard summation density.
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Array< T, DeviceType::GPU > DArray
Definition Array.inl:89