4#include "Topology/TriangleSet.h"
14 template<
typename TDataType>
20 typedef typename TDataType::Real
Real;
21 typedef typename TDataType::Coord
Coord;
22 typedef typename TDataType::Matrix
Matrix;
23 typedef typename ::dyno::TBond<TDataType>
Bond;
41 DEF_VAR(
bool, NeighborSearchingAdjacent,
true,
"");
63 this->
k_bend *= (k / k_old);
77 this->
k_bend *= (this->
E / E_old);
90 return 15 *
E / (4 * (1 + nv));
94 return 9 *
E * nv / (2 * (1 + nv) * (1 - 2 * nv));
#define DECLARE_TCLASS(name, T1)
particle attribute 0x00000000: [31-30]material; [29]motion; [28]Dynamic; [27-8]undefined yet,...
Reduction< Real > * m_reduce
DEF_ARRAY_IN(Attribute, Attribute, DeviceType::GPU, "Particle Attribute")
void setObjectVolume(Real volume)
::dyno::TBond< TDataType > Bond
void setParticleVolume(Real volume)
void setSelfContact(bool s_)
CoSemiImplicitHyperelasticitySolver()
DEF_VAR_IN(EnergyModels< Real >, EnergyModels, "")
DEF_VAR(bool, NeighborSearchingAdjacent, true, "")
DArray< Coord > y_current
DArray< bool > m_validOfF
DArray< Coord > m_eigenValues
void setAccelerated(bool acc_)
std::shared_ptr< ContactRule< TDataType > > mContactRule
DEF_VAR_IN(Real, Unit, "mesh unit")
Real getS0(Real E, Real nv)
Real getS1(Real E, Real nv)
DArray< Coord > y_residual
void setGrad_res_eps(Real r)
~CoSemiImplicitHyperelasticitySolver() override
DArray< Real > m_gradientMagnitude
std::shared_ptr< ContactRule< TDataType > > getContactRulePtr()
void solveElasticity() override
void setContactMaxIte(int ite)
Real getS(Real E, Real nv)
DEF_ARRAY_IN(Coord, OldPosition, DeviceType::GPU, "")
DArray< Coord > m_fixedPos
DArray< Coord > mEnergyGradient
DEF_ARRAY_IN(Coord, Norm, DeviceType::GPU, "Vertex Normal")
DArray< bool > m_validOfK
DEF_VAR_IN(EnergyType, EnergyType, "")
DArray< Coord > m_gradient
DEF_ARRAY_IN(Coord, RestNorm, DeviceType::GPU, "Vertex Rest Normal")
void enforceHyperelasticity()
DArray< Real > m_fraction
DArray< Coord > mPosBuf_March
DEF_INSTANCE_IN(TriangleSet< TDataType >, TriangularMesh, "")
This is an implementation of AdditiveCCD based on peridyno.
Array< T, DeviceType::GPU > DArray