PeriDyno 1.0.0
Loading...
Searching...
No Matches
SemiAnalyticalParticleShifting.h
Go to the documentation of this file.
1
20
21
22#pragma once
23#include "Topology/TriangleSet.h"
24
25#include "Collision/Attribute.h"
27
28namespace dyno
29{
30 template<typename TDataType> class SemiAnalyticalSummationDensity;
31
32 template<typename TDataType>
33 class SemiAnalyticalParticleShifting : public virtual ParticleApproximation<TDataType>
34 {
36 public:
37 typedef typename TDataType::Real Real;
38 typedef typename TDataType::Coord Coord;
40
43
44 public:
45 DEF_VAR(uint, InterationNumber, 10, "");
46
47 DEF_VAR(Real, Inertia, Real(0.1), "inertia");
48
49 DEF_VAR(Real, Bulk, Real(0.5), "bulk");
50
51 DEF_VAR(Real, SurfaceTension, Real(0.03), "surface tension");
52
53 DEF_VAR(Real, AdhesionIntensity, Real(30.0), "adhesion");
54
55 DEF_VAR(Real, RestDensity, Real(1000.0), "Rest Density");
56
57 public:
58 DEF_VAR_IN(Real, TimeStep, "Time step size");
59
60 DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Particle position");
61
62 DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Particle velocity");
63
64 DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "");
65
66 DEF_ARRAYLIST_IN(int, NeighborTriIds, DeviceType::GPU, "triangle neighbors");
67
69
70 protected:
71 void compute()override;
72
73 private:
81 std::shared_ptr<SemiAnalyticalSummationDensity<TDataType>> mCalculateDensity;
82 };
83}
#define DECLARE_TCLASS(name, T1)
Definition Object.h:87
DEF_VAR(Real, Inertia, Real(0.1), "inertia")
DEF_VAR(Real, Bulk, Real(0.5), "bulk")
DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Particle position")
DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "")
DEF_VAR(Real, RestDensity, Real(1000.0), "Rest Density")
DEF_VAR_IN(Real, TimeStep, "Time step size")
DEF_ARRAYLIST_IN(int, NeighborTriIds, DeviceType::GPU, "triangle neighbors")
std::shared_ptr< SemiAnalyticalSummationDensity< TDataType > > mCalculateDensity
DEF_VAR(Real, SurfaceTension, Real(0.03), "surface tension")
DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Particle velocity")
DEF_INSTANCE_IN(TriangleSet< TDataType >, TriangleSet, "")
DEF_VAR(Real, AdhesionIntensity, Real(30.0), "adhesion")
DEF_VAR(uint, InterationNumber, 10, "")
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
unsigned int uint
Definition VkProgram.h:14