PeriDyno 1.0.0
Loading...
Searching...
No Matches
Peridynamics.h
Go to the documentation of this file.
1
16#pragma once
17#include "ParticleSystem/ParticleSystem.h"
18
19#include "Bond.h"
20
21namespace dyno
22{
27 template<typename TDataType>
28 class Peridynamics : public ParticleSystem<TDataType>
29 {
30 public:
31 typedef typename TDataType::Real Real;
32 typedef typename TDataType::Coord Coord;
33 typedef typename ::dyno::TBond<TDataType> Bond;
34
36 ~Peridynamics() override;
37
38 std::string getNodeType() override;
39
40 public:
41 DEF_NODE_PORTS(ParticleSystem<TDataType>, SolidParticle, "Initial solid particles");
42
43 public:
44 DEF_VAR(Real, Horizon, 0.01, "Horizon");
45
46 DEF_VAR_STATE(Real, Horizon, Real(1), "A state field representing horizon");
47
48 DEF_ARRAY_STATE(Coord, ReferencePosition, DeviceType::GPU, "Reference position");
49
50 DEF_ARRAYLIST_STATE(Bond, Bonds, DeviceType::GPU, "Storing neighbors");
51
52 protected:
53 void resetStates() override;
54
55 private:
56 void loadSolidParticles();
57 };
58}
TDataType::Real Real
::dyno::TBond< TDataType > Bond
DEF_VAR(Real, Horizon, 0.01, "Horizon")
void resetStates() override
~Peridynamics() override
DEF_ARRAYLIST_STATE(Bond, Bonds, DeviceType::GPU, "Storing neighbors")
DEF_VAR_STATE(Real, Horizon, Real(1), "A state field representing horizon")
DEF_ARRAY_STATE(Coord, ReferencePosition, DeviceType::GPU, "Reference position")
std::string getNodeType() override
DEF_NODE_PORTS(ParticleSystem< TDataType >, SolidParticle, "Initial solid particles")
TDataType::Coord Coord
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25