PeriDyno 1.0.0
Loading...
Searching...
No Matches
SemiAnalyticalIncompressibilityModule.h
Go to the documentation of this file.
1
8#pragma once
13
14namespace dyno
15{
16 class Attribute;
17 template <typename TDataType>
18 class SummationDensity;
19 template <typename TDataType>
20 class TriangleSet;
26
27 template <typename TDataType>
29 {
30 public:
31 typedef typename TDataType::Real Real;
32 typedef typename TDataType::Coord Coord;
34
37
43 void constrain() override;
44
46 {
47 return &m_particle_position;
48 } //override;
49
50 public:
53
55
58
61
66
71 DEF_ARRAYLIST_IN(int, NeighborParticleIds, DeviceType::GPU, "");// m_neighborhood_particles;
72 DEF_ARRAYLIST_IN(int, NeighborTriangleIds, DeviceType::GPU, "");
73
74 protected:
75 bool initializeImpl() override;
76
77 private:
78 bool m_bConfigured = false;
81 Real m_airPressure = 10000.0f;
82
87
88 int num_f;
89 int start_f = 0;
90 bool first_step = false;
91
92 //Refer to "A Nonlocal Variational Particle Framework for Incompressible Free Surface Flows" for their exact meanings
98
99 //DeviceArrayField<Real> m_density_field;
101
104 //Indicate whether a particle is near the free surface boundary.
106
107 //Used to solve the linear system of equations with a conjugate gradient method.
111
114
116
117 std::shared_ptr<SummationDensity<TDataType>> m_densitySum;
118 };
119} // namespace dyno
particle attribute 0x00000000: [31-30]material; [29]motion; [28]Dynamic; [27-8]undefined yet,...
Definition Attribute.h:26
std::shared_ptr< SummationDensity< TDataType > > m_densitySum
DEF_ARRAYLIST_IN(int, NeighborTriangleIds, DeviceType::GPU, "")
DEF_ARRAYLIST_IN(int, NeighborParticleIds, DeviceType::GPU, "")
Storing neighboring particles and triangles' ids.
The standard summation density.
Vector< PointType, 3 > Triangle
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Array< T, DeviceType::GPU > DArray
Definition Array.inl:89
FArray< T, DeviceType::GPU > DeviceArrayField
Definition Field.h:279