PeriDyno 1.0.0
Loading...
Searching...
No Matches
ProjectionBasedFluidModel.cpp
Go to the documentation of this file.
2
5#include "SummationDensity.h"
6
7#include "ImplicitViscosity.h"
8#include "Collision/NeighborPointQuery.h"
9
10namespace dyno
11{
13
14 template<typename TDataType>
16 : GroupModule()
17 {
18 auto integrator = std::make_shared<ParticleIntegrator<TDataType>>();
19 this->inTimeStep()->connect(integrator->inTimeStep());
20 this->inPosition()->connect(integrator->inPosition());
21 this->inVelocity()->connect(integrator->inVelocity());
22 this->inAttribute()->connect(integrator->inAttribute());
23 this->pushModule(integrator);
24
25 auto nbrQuery =std::make_shared<NeighborPointQuery<TDataType>>();
26 this->varSmoothingLength()->connect(nbrQuery->inRadius());
27 this->inPosition()->connect(nbrQuery->inPosition());
28 this->pushModule(nbrQuery);
29
30 auto density = std::make_shared<VariationalApproximateProjection<TDataType>>();
31 this->varSmoothingLength()->connect(density->inSmoothingLength());
32 this->varSamplingDistance()->connect(density->inSamplingDistance());
33 this->inTimeStep()->connect(density->inTimeStep());
34 this->inPosition()->connect(density->inPosition());
35 this->inVelocity()->connect(density->inVelocity());
36 this->inNormal()->connect(density->inNormal());
37 this->inAttribute()->connect(density->inAttribute());
38 nbrQuery->outNeighborIds()->connect(density->inNeighborIds());
39 this->pushModule(density);
40
41 auto viscosity = std::make_shared<ImplicitViscosity<TDataType>>();
42 viscosity->varViscosity()->setValue(Real(0.5));
43 this->inTimeStep()->connect(viscosity->inTimeStep());
44 this->varSmoothingLength()->connect(viscosity->inSmoothingLength());
45 this->inPosition()->connect(viscosity->inPosition());
46 this->inVelocity()->connect(viscosity->inVelocity());
47 nbrQuery->outNeighborIds()->connect(viscosity->inNeighborIds());
48 this->pushModule(viscosity);
49 }
50
52}
#define DEFINE_CLASS(name)
Definition Object.h:140
#define IMPLEMENT_TCLASS(name, T1)
Definition Object.h:103
void pushModule(std::shared_ptr< Module > m)
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25