PeriDyno 1.0.0
Loading...
Searching...
No Matches
SemiImplicitDensitySolver.h
Go to the documentation of this file.
1
16#pragma once
18
19#include "Collision/Attribute.h"
20
21namespace dyno {
22
23 template<typename TDataType> class SummationDensity;
24
30 template<typename TDataType>
32 {
34 public:
35 typedef typename TDataType::Real Real;
36 typedef typename TDataType::Coord Coord;
37
40
41 public:
42 DEF_VAR_IN(Real, TimeStep, "Time Step");
43
47 DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input particle position");
48
52 DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity");
53
58 DEF_ARRAY_IN(Attribute, Attribute, DeviceType::GPU, "Particle attribute");
59
64 DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids");
65
69 DEF_ARRAY_OUT(Real, Density, DeviceType::GPU, "Final particle density");
70
71 public:
72 DEF_VAR(int, IterationNumber, 5, "Iteration number of the PBD solver");
73
74 DEF_VAR(Real, RestDensity, 1000, "Reference density");
75
76 DEF_VAR(Real, Kappa, Real(1), "");
77
78 protected:
79 void compute() override;
80
81 public:
83
85
86 private:
89
91
92 private:
93 std::shared_ptr<SummationDensity<TDataType>> mSummation;
94 };
95
97}
#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...
This class implements a semi-implicit successive substitution method to solve incompressibility....
DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity")
Particle velocities.
DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input particle position")
Particle positions.
DEF_ARRAY_IN(Attribute, Attribute, DeviceType::GPU, "Particle attribute")
Attribute Particle attribute.
DEF_ARRAY_OUT(Real, Density, DeviceType::GPU, "Final particle density")
Final particle densities.
DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids")
Neighboring particles' ids.
DEF_VAR(Real, Kappa, Real(1), "")
std::shared_ptr< SummationDensity< TDataType > > mSummation
DEF_VAR_IN(Real, TimeStep, "Time Step")
DEF_VAR(int, IterationNumber, 5, "Iteration number of the PBD solver")
DEF_VAR(Real, RestDensity, 1000, "Reference density")
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