PeriDyno 1.0.0
Loading...
Searching...
No Matches
dyno::ElastoplasticityModule< TDataType > Class Template Reference

#include <ElastoplasticityModule.h>

Inheritance diagram for dyno::ElastoplasticityModule< TDataType >:
Collaboration diagram for dyno::ElastoplasticityModule< TDataType >:

Public Types

typedef TDataType::Real Real
 
typedef TDataType::Coord Coord
 
typedef TDataType::Matrix Matrix
 
typedef ::dyno::TBond< TDataType > Bond
 
- Public Types inherited from dyno::LinearElasticitySolver< TDataType >
typedef TDataType::Real Real
 
typedef TDataType::Coord Coord
 
typedef TDataType::Matrix Matrix
 
typedef ::dyno::TBond< TDataType > Bond
 
- Public Types inherited from dyno::OBase
typedef std::vector< FBase * > FieldVector
 
typedef std::map< FieldID, FBase * > FieldMap
 

Public Member Functions

 ElastoplasticityModule ()
 
 ~ElastoplasticityModule () override
 
 DEF_VAR (Real, Cohesion, 0.0, "Cohesion between particles")
 
 DEF_VAR (Real, FrictionAngle, Real(1.0f/3.0f), "Cohesion between particles")
 
 DEF_VAR (bool, Incompressible, true, "Incompressible or not")
 
 DEF_VAR (bool, RenewNeighborhood, false, "Whether to renew particle neighbors every time step")
 
 DEF_ARRAYLIST_IN (int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids")
 
- Public Member Functions inherited from dyno::LinearElasticitySolver< TDataType >
 LinearElasticitySolver ()
 
 ~LinearElasticitySolver () override
 
 DEF_VAR_IN (Real, Horizon, "")
 Horizon A positive number represents the radius of neighborhood for each point.
 
 DEF_VAR_IN (Real, TimeStep, "")
 
 DEF_ARRAY_IN (Coord, X, DeviceType::GPU, "Rest Pos")
 Reference position.
 
 DEF_ARRAY_IN (Coord, Y, DeviceType::GPU, "Particle position")
 Deformed position.
 
 DEF_ARRAY_IN (Coord, Velocity, DeviceType::GPU, "Particle velocity")
 Particle velocity.
 
 DEF_ARRAYLIST_IN (Bond, Bonds, DeviceType::GPU, "Peridynamic bonds")
 Neighboring bonds.
 
 DEF_VAR (Real, Mu, 0.001, "Lame parameters: mu")
 Lame parameters m_lambda controls the isotropic part while mu controls the deviatoric part.
 
 DEF_VAR (Real, Lambda, 0.01, "Lame parameters: lambda")
 
 DEF_VAR (uint, IterationNumber, 30, "Iteration number")
 
- Public Member Functions inherited from dyno::ConstraintModule
 ConstraintModule ()
 
 ~ConstraintModule () override
 
std::string getModuleType () override
 
- Public Member Functions inherited from dyno::Module
 Module (std::string name="default")
 
 ~Module (void) override
 
bool initialize ()
 
void update ()
 
void setName (std::string name)
 
std::string getName () override
 
virtual void setParentNode (Node *node)
 Set the parent node.
 
NodegetParentNode ()
 
SceneGraphgetSceneGraph ()
 
bool isInitialized ()
 
bool attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true) override
 Attach a field to Base.
 
bool isInputComplete ()
 Check the completeness of input fields.
 
bool isOutputCompete ()
 
 DEF_VAR (bool, ForceUpdate, false, "")
 
void setUpdateAlways (bool b)
 Set the update strategy for the module.
 
- Public Member Functions inherited from dyno::OBase
 OBase ()
 
 ~OBase () override
 
virtual std::string caption ()
 Return the caption.
 
virtual bool captionVisible ()
 Whether to hide the caption in the GUI.
 
virtual std::string description ()
 Return a description for the node or module, override this function to support user-defined description.
 
bool addField (FBase *data)
 Add a field to Base FieldID will be set to the name of Field by default.
 
bool addField (FieldID name, FBase *data)
 Add a field to Base.
 
bool addFieldAlias (FieldID name, FBase *data)
 
bool addFieldAlias (FieldID name, FBase *data, FieldMap &fieldAlias)
 
bool findField (FBase *data)
 Find a field by its pointer.
 
bool findFieldAlias (const FieldID name)
 Find a field by its name.
 
bool findFieldAlias (const FieldID name, FieldMap &fieldAlias)
 Find a field in fieldAlias by its name This function is typically called by other functions.
 
bool removeField (FBase *data)
 Remove a field by its pointer.
 
bool removeFieldAlias (const FieldID name)
 Remove a field by its name.
 
bool removeFieldAlias (const FieldID name, FieldMap &fieldAlias)
 
FBasegetField (const FieldID name)
 Return a field by its name.
 
std::vector< FBase * > & getAllFields ()
 
template<typename T>
TgetField (FieldID name)
 
bool isAllFieldsReady ()
 Check the completeness of all required fields.
 
std::vector< FieldIDgetFieldAlias (FBase *data)
 
int getFieldAliasCount (FBase *data)
 
void setBlockCoord (float x, float y)
 
float bx ()
 
float by ()
 
bool findInputField (FBase *field)
 
bool addInputField (FBase *field)
 
bool removeInputField (FBase *field)
 
std::vector< FBase * > & getInputFields ()
 
bool findOutputField (FBase *field)
 
bool addOutputField (FBase *field)
 
bool addToOutput (FBase *field)
 
bool removeOutputField (FBase *field)
 
bool removeFromOutput (FBase *field)
 
std::vector< FBase * > & getOutputFields ()
 
bool findParameter (FBase *field)
 
bool addParameter (FBase *field)
 
bool removeParameter (FBase *field)
 
std::vector< FBase * > & getParameters ()
 
- Public Member Functions inherited from dyno::Object
 Object ()
 
virtual ~Object ()
 
ObjectId objectId ()
 

Protected Member Functions

void constrain () override
 
void solveElasticity () override
 
virtual void applyPlasticity ()
 
void applyYielding ()
 
void rotateRestShape ()
 
void reconstructRestShape ()
 
Real computeA ()
 
Real computeB ()
 
- Protected Member Functions inherited from dyno::LinearElasticitySolver< TDataType >
void constrain () override
 
void preprocess () override
 
virtual void enforceElasticity ()
 Correct the particle position with one iteration Be sure computeInverseK() is called as long as the rest shape is changed.
 
virtual void computeMaterialStiffness ()
 
void updateVelocity ()
 
void computeInverseK ()
 
- Protected Member Functions inherited from dyno::ConstraintModule
void updateImpl () override
 
- Protected Member Functions inherited from dyno::Module
virtual bool initializeImpl ()
 
virtual void postprocess ()
 
virtual bool validateInputs ()
 
virtual bool validateOutputs ()
 
virtual bool requireUpdate ()
 
virtual void updateStarted ()
 Two functions called at the beginning and end of update() used for debug.
 
virtual void updateEnded ()
 

Private Attributes

DArray< bool > m_bYield
 
DArray< Matrixm_invF
 
DArray< Realm_yiled_I1
 
DArray< Realm_yield_J2
 
DArray< Realm_I1
 
std::shared_ptr< IterativeDensitySolver< TDataType > > mDensityPBD
 

Additional Inherited Members

- Static Public Member Functions inherited from dyno::Object
static bool registerClass (ClassInfo *ci)
 
static ObjectcreateObject (std::string name)
 
static std::map< std::string, ClassInfo * > * getClassMap ()
 
static ObjectId baseId ()
 Base Id.
 
- Protected Attributes inherited from dyno::LinearElasticitySolver< TDataType >
DArray< RealmBulkStiffness
 
DArray< RealmWeights
 
DArray< CoordmDisplacement
 
DArray< CoordmPosBuf
 
DArray< MatrixmF
 
DArray< MatrixmInvK
 
- Protected Attributes inherited from dyno::OBase
std::vector< FBase * > fields_input
 
std::vector< FBase * > fields_output
 
std::vector< FBase * > fields_param
 

Detailed Description

template<typename TDataType>
class dyno::ElastoplasticityModule< TDataType >

Definition at line 20 of file ElastoplasticityModule.h.

Member Typedef Documentation

◆ Bond

template<typename TDataType>
typedef ::dyno::TBond<TDataType> dyno::ElastoplasticityModule< TDataType >::Bond

Definition at line 27 of file ElastoplasticityModule.h.

◆ Coord

template<typename TDataType>
typedef TDataType::Coord dyno::ElastoplasticityModule< TDataType >::Coord

Definition at line 25 of file ElastoplasticityModule.h.

◆ Matrix

template<typename TDataType>
typedef TDataType::Matrix dyno::ElastoplasticityModule< TDataType >::Matrix

Definition at line 26 of file ElastoplasticityModule.h.

◆ Real

template<typename TDataType>
typedef TDataType::Real dyno::ElastoplasticityModule< TDataType >::Real

Definition at line 24 of file ElastoplasticityModule.h.

Constructor & Destructor Documentation

◆ ElastoplasticityModule()

template<typename TDataType>
dyno::ElastoplasticityModule< TDataType >::ElastoplasticityModule ( )

◆ ~ElastoplasticityModule()

template<typename TDataType>
dyno::ElastoplasticityModule< TDataType >::~ElastoplasticityModule ( )
override

Member Function Documentation

◆ applyPlasticity()

template<typename TDataType>
virtual void dyno::ElastoplasticityModule< TDataType >::applyPlasticity ( )
protectedvirtual

◆ applyYielding()

template<typename TDataType>
void dyno::ElastoplasticityModule< TDataType >::applyYielding ( )
protected

◆ computeA()

template<typename TDataType>
Real dyno::ElastoplasticityModule< TDataType >::computeA ( )
inlineprotected

Definition at line 56 of file ElastoplasticityModule.h.

Here is the call graph for this function:

◆ computeB()

template<typename TDataType>
Real dyno::ElastoplasticityModule< TDataType >::computeB ( )
inlineprotected

Definition at line 63 of file ElastoplasticityModule.h.

Here is the call graph for this function:

◆ constrain()

template<typename TDataType>
void dyno::ElastoplasticityModule< TDataType >::constrain ( )
overrideprotectedvirtual

◆ DEF_ARRAYLIST_IN()

template<typename TDataType>
dyno::ElastoplasticityModule< TDataType >::DEF_ARRAYLIST_IN ( int ,
NeighborIds ,
DeviceType::GPU ,
"Neighboring particles' ids"  )

◆ DEF_VAR() [1/4]

template<typename TDataType>
dyno::ElastoplasticityModule< TDataType >::DEF_VAR ( bool ,
Incompressible ,
true ,
"Incompressible or not"  )

◆ DEF_VAR() [2/4]

template<typename TDataType>
dyno::ElastoplasticityModule< TDataType >::DEF_VAR ( bool ,
RenewNeighborhood ,
false ,
"Whether to renew particle neighbors every time step"  )

◆ DEF_VAR() [3/4]

template<typename TDataType>
dyno::ElastoplasticityModule< TDataType >::DEF_VAR ( Real ,
Cohesion ,
0. 0,
"Cohesion between particles"  )

◆ DEF_VAR() [4/4]

template<typename TDataType>
dyno::ElastoplasticityModule< TDataType >::DEF_VAR ( Real ,
FrictionAngle ,
Real(1.0f/3.0f) ,
"Cohesion between particles"  )

◆ reconstructRestShape()

template<typename TDataType>
void dyno::ElastoplasticityModule< TDataType >::reconstructRestShape ( )
protected

◆ rotateRestShape()

template<typename TDataType>
void dyno::ElastoplasticityModule< TDataType >::rotateRestShape ( )
protected

◆ solveElasticity()

template<typename TDataType>
void dyno::ElastoplasticityModule< TDataType >::solveElasticity ( )
overrideprotectedvirtual

Member Data Documentation

◆ m_bYield

template<typename TDataType>
DArray<bool> dyno::ElastoplasticityModule< TDataType >::m_bYield
private

Definition at line 70 of file ElastoplasticityModule.h.

◆ m_I1

template<typename TDataType>
DArray<Real> dyno::ElastoplasticityModule< TDataType >::m_I1
private

Definition at line 74 of file ElastoplasticityModule.h.

◆ m_invF

template<typename TDataType>
DArray<Matrix> dyno::ElastoplasticityModule< TDataType >::m_invF
private

Definition at line 71 of file ElastoplasticityModule.h.

◆ m_yield_J2

template<typename TDataType>
DArray<Real> dyno::ElastoplasticityModule< TDataType >::m_yield_J2
private

Definition at line 73 of file ElastoplasticityModule.h.

◆ m_yiled_I1

template<typename TDataType>
DArray<Real> dyno::ElastoplasticityModule< TDataType >::m_yiled_I1
private

Definition at line 72 of file ElastoplasticityModule.h.

◆ mDensityPBD

template<typename TDataType>
std::shared_ptr<IterativeDensitySolver<TDataType> > dyno::ElastoplasticityModule< TDataType >::mDensityPBD
private

Definition at line 76 of file ElastoplasticityModule.h.


The documentation for this class was generated from the following file: