PeriDyno 1.0.0
Loading...
Searching...
No Matches
ApproximateImplicitViscosity.h
Go to the documentation of this file.
1
16
17#pragma once
19#include "Algorithm/Reduction.h"
22#include "Collision/Attribute.h"
23
24namespace dyno {
25
26 template<typename TDataType>
28 {
30
31 public:
32 typedef typename TDataType::Real Real;
33 typedef typename TDataType::Coord Coord;
34 typedef typename TDataType::Matrix Matrix;
35
36
39
40 void constrain() override;
41
42 bool SetCross();
43
44 public:
45
46 DEF_VAR(Real, Viscosity, Real(10), "Dynamic Viscosity");
47
48 DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "");
49
50 DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input real particle position");
51
52 DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity");
53
54 DEF_ARRAY_IN(Attribute, Attribute, DeviceType::GPU, "Input particle velocity");
55
56 DEF_VAR(Real, LowerBoundViscosity, 1.0f, "Viscosity lower bound for Non-Newtonian fluid");
57
58 DEF_VAR(Real, CrossK, 1, "K for Non-Newtonian fluid (Cross model)");
59
60 DEF_VAR(Real, CrossN, -1, "N for Non-Newtonian fluid (Cross model)");
61
62 DECLARE_ENUM(FluidType,
63 NewtonianFluid = 0,
64 NonNewtonianFluid = 1
65 );
66
67 DEF_ENUM(FluidType, FluidType, FluidType::NewtonianFluid, "Fluid type.");
68
69 private:
71
72
73 /*
74 * @brief Important coefficients in the Cross model.
75 */
81
82 DEF_VAR(Real, SmoothingLength, Real(0.0125), "");
83
84 DEF_VAR(Real, RestDensity, Real(1000), "Reference density");
85
86 DEF_VAR(Real, SamplingDistance, Real(0.005), "");
87
88 DEF_VAR_IN(Real, TimeStep, "");
89
90 private:
91
92 bool IsCrossReady = false;
93
96
107 };
108
109
111}
#define DECLARE_TCLASS(name, T1)
Definition Object.h:87
#define IMPLEMENT_TCLASS(name, T1)
Definition Object.h:103
DEF_VAR(Real, CrossN, -1, "N for Non-Newtonian fluid (Cross model)")
DEF_ARRAY_IN(Attribute, Attribute, DeviceType::GPU, "Input particle velocity")
DEF_VAR(Real, SmoothingLength, Real(0.0125), "")
DEF_VAR(Real, RestDensity, Real(1000), "Reference density")
DEF_VAR(Real, Viscosity, Real(10), "Dynamic Viscosity")
DEF_VAR(Real, SamplingDistance, Real(0.005), "")
DEF_ARRAYLIST_IN(int, NeighborIds, DeviceType::GPU, "")
DEF_ARRAY_IN(Coord, Velocity, DeviceType::GPU, "Input particle velocity")
DECLARE_ENUM(FluidType, NewtonianFluid=0, NonNewtonianFluid=1)
DEF_ARRAY_IN(Coord, Position, DeviceType::GPU, "Input real particle position")
DEF_VAR(Real, LowerBoundViscosity, 1.0f, "Viscosity lower bound for Non-Newtonian fluid")
DEF_ENUM(FluidType, FluidType, FluidType::NewtonianFluid, "Fluid type.")
DEF_VAR(Real, CrossK, 1, "K for Non-Newtonian fluid (Cross model)")
particle attribute 0x00000000: [31-30]material; [29]motion; [28]Dynamic; [27-8]undefined yet,...
Definition Attribute.h:26
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Array< T, DeviceType::GPU > DArray
Definition Array.inl:89