PeriDyno 1.0.0
Loading...
Searching...
No Matches
IterativeDensitySolver.h
Go to the documentation of this file.
1
16#pragma once
19
20#include "Collision/Attribute.h"
21
22namespace dyno {
23
24 template<typename TDataType> class SummationDensity;
25
32 template<typename TDataType>
34 {
36 public:
37 typedef typename TDataType::Real Real;
38 typedef typename TDataType::Coord Coord;
39
42
43 public:
44 DEF_VAR_IN(Real, TimeStep, "Time Step");
45
49 DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input particle position");
50
54 DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity");
55
60 DEF_ARRAY_IN(Attribute, Attribute, DeviceType::GPU, "Particle attribute");
61
66 DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids");
67
71 DEF_ARRAY_OUT(Real, Density, DeviceType::GPU, "Final particle density");
72
73 public:
74 DEF_VAR(int, IterationNumber, 5, "Iteration number of the PBD solver");
75
76 DEF_VAR(Real, RestDensity, 1000, "Reference density");
77
78 DEF_VAR(Real, Kappa, Real(1), "");
79
80 protected:
81 void compute() override;
82
83 public:
85
87
88 private:
92
93
95
96
97 private:
98 std::shared_ptr<SummationDensity<TDataType>> mSummation;
99 };
100
102}
#define DECLARE_TCLASS(name, T1)
Definition Object.h:87
#define IMPLEMENT_TCLASS(name, T1)
Definition Object.h:103
particle attribute 0x00000000: [31-30]material; [29]motion; [28]Dynamic; [27-8]undefined yet,...
Definition Attribute.h:26
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_VAR(Real, RestDensity, 1000, "Reference density")
DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input particle position")
Particle positions.
DEF_VAR(int, IterationNumber, 5, "Iteration number of the PBD solver")
DEF_ARRAY_IN(Attribute, Attribute, DeviceType::GPU, "Particle attribute")
Attribute Particle attribute.
DEF_VAR(Real, Kappa, Real(1), "")
std::shared_ptr< SummationDensity< TDataType > > mSummation
DEF_ARRAY_OUT(Real, Density, DeviceType::GPU, "Final particle density")
Final particle densities.
DEF_VAR_IN(Real, TimeStep, "Time Step")
DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity")
Particle velocities.
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