PeriDyno 1.2.1
Loading...
Searching...
No Matches
PoissionDiskPositionShifting.h
Go to the documentation of this file.
1
2#pragma once
4
5namespace dyno {
6 /*
7 *@brief The iterative solver for obtaining the Poisson-disk distribution on the GPU,
8 * which is derived from the SISPH/PBF method.
9 *
10 */
11
12
13 template<typename TDataType> class SummationDensity;
14 template<typename TDataType>
16 {
18 public:
19 typedef typename TDataType::Real Real;
20 typedef typename TDataType::Coord Coord;
21
24
25 public:
26 DEF_VAR_IN(Real, Delta, "");
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, 5, "Iteration number of the PBD solver");
51
52 DEF_VAR(Real, RestDensity, 1000, "Reference density");
53
54 DEF_VAR(Real, Kappa, Real(60), "");
55
56 protected:
57 void compute() override;
58
59 public:
61
62 //void updateVelocity();
63
64 private:
67 //DArray<Real> mDivergence;
69
70 private:
71 std::shared_ptr<SummationDensity<TDataType>> mSummation;
72 };
73
75}
#define DECLARE_TCLASS(name, T1)
Definition Object.h:87
#define IMPLEMENT_TCLASS(name, T1)
Definition Object.h:103
This is an implementation of the iterative density solver integrated into the Position Based Dynamics...
DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids")
Neighboring particles' ids.
DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input particle position")
Particle positions.
DEF_ARRAY_OUT(Real, Density, DeviceType::GPU, "Final particle density")
Final particle densities.
DEF_VAR(Real, Kappa, Real(60), "")
std::shared_ptr< SummationDensity< TDataType > > mSummation
DEF_VAR(Real, RestDensity, 1000, "Reference density")
DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity")
Particle velocities.
DEF_VAR(int, IterationNumber, 5, "Iteration number of the PBD solver")
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