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

#include <SemiImplicitHyperelasticitySolver.h>

Inheritance diagram for dyno::SemiImplicitHyperelasticitySolver< TDataType >:
Collaboration diagram for dyno::SemiImplicitHyperelasticitySolver< 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

 SemiImplicitHyperelasticitySolver ()
 
 ~SemiImplicitHyperelasticitySolver () override
 
void solveElasticity () override
 
 DEF_VAR (Real, StrainLimiting, 0.1, "")
 
 DEF_VAR_IN (EnergyType, EnergyType, "")
 
 DEF_VAR_IN (EnergyModels< Real >, EnergyModels, "")
 
 DEF_VAR (bool, IsAlphaComputed, true, "")
 
 DEF_ARRAY_IN (Attribute, Attribute, DeviceType::GPU, "Particle Attribute")
 
 DEF_ARRAY_IN (Real, Volume, DeviceType::GPU, "Particle volume")
 
 DEF_ARRAYLIST_IN (Real, VolumePair, DeviceType::GPU, "")
 
- 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 enforceHyperelasticity ()
 
void resizeAllFields ()
 
- 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< Realm_fraction
 
DArray< Realm_energy
 
DArray< Realm_alpha
 
DArray< Coordm_gradient
 
DArray< CoordmEnergyGradient
 
DArray< Coordm_eigenValues
 
DArray< Matrixm_F
 
DArray< Matrixm_invF
 
DArray< bool > m_validOfK
 
DArray< bool > m_validOfF
 
DArray< Matrixm_invK
 
DArray< Matrixm_matU
 
DArray< Matrixm_matV
 
DArray< Matrixm_matR
 
DArray< Coordy_current
 
DArray< Coordy_next
 
DArray< Coordy_pre
 
DArray< Coordy_residual
 
DArray< Coordy_gradC
 
DArray< Coordm_source
 
DArray< Matrixm_A
 
Reduction< Real > * m_reduce
 
bool m_alphaCompute = true
 

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::SemiImplicitHyperelasticitySolver< TDataType >

Definition at line 12 of file SemiImplicitHyperelasticitySolver.h.

Member Typedef Documentation

◆ Bond

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

Definition at line 20 of file SemiImplicitHyperelasticitySolver.h.

◆ Coord

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

Definition at line 18 of file SemiImplicitHyperelasticitySolver.h.

◆ Matrix

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

Definition at line 19 of file SemiImplicitHyperelasticitySolver.h.

◆ Real

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

Definition at line 17 of file SemiImplicitHyperelasticitySolver.h.

Constructor & Destructor Documentation

◆ SemiImplicitHyperelasticitySolver()

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

◆ ~SemiImplicitHyperelasticitySolver()

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

Member Function Documentation

◆ DEF_ARRAY_IN() [1/2]

template<typename TDataType>
dyno::SemiImplicitHyperelasticitySolver< TDataType >::DEF_ARRAY_IN ( Attribute ,
Attribute ,
DeviceType::GPU ,
"Particle Attribute"  )

◆ DEF_ARRAY_IN() [2/2]

template<typename TDataType>
dyno::SemiImplicitHyperelasticitySolver< TDataType >::DEF_ARRAY_IN ( Real ,
Volume ,
DeviceType::GPU ,
"Particle volume"  )

◆ DEF_ARRAYLIST_IN()

template<typename TDataType>
dyno::SemiImplicitHyperelasticitySolver< TDataType >::DEF_ARRAYLIST_IN ( Real ,
VolumePair ,
DeviceType::GPU ,
""  )

◆ DEF_VAR() [1/2]

template<typename TDataType>
dyno::SemiImplicitHyperelasticitySolver< TDataType >::DEF_VAR ( bool ,
IsAlphaComputed ,
true ,
""  )

◆ DEF_VAR() [2/2]

template<typename TDataType>
dyno::SemiImplicitHyperelasticitySolver< TDataType >::DEF_VAR ( Real ,
StrainLimiting ,
0. 1,
""  )

◆ DEF_VAR_IN() [1/2]

template<typename TDataType>
dyno::SemiImplicitHyperelasticitySolver< TDataType >::DEF_VAR_IN ( EnergyModels< Real > ,
EnergyModels ,
""  )

◆ DEF_VAR_IN() [2/2]

template<typename TDataType>
dyno::SemiImplicitHyperelasticitySolver< TDataType >::DEF_VAR_IN ( EnergyType ,
EnergyType ,
""  )

◆ enforceHyperelasticity()

template<typename TDataType>
void dyno::SemiImplicitHyperelasticitySolver< TDataType >::enforceHyperelasticity ( )
protected

◆ resizeAllFields()

template<typename TDataType>
void dyno::SemiImplicitHyperelasticitySolver< TDataType >::resizeAllFields ( )
protected

◆ solveElasticity()

template<typename TDataType>
void dyno::SemiImplicitHyperelasticitySolver< TDataType >::solveElasticity ( )
overridevirtual

Member Data Documentation

◆ m_A

template<typename TDataType>
DArray<Matrix> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_A
private

Definition at line 71 of file SemiImplicitHyperelasticitySolver.h.

◆ m_alpha

template<typename TDataType>
DArray<Real> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_alpha
private

Definition at line 49 of file SemiImplicitHyperelasticitySolver.h.

◆ m_alphaCompute

template<typename TDataType>
bool dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_alphaCompute = true
private

Definition at line 75 of file SemiImplicitHyperelasticitySolver.h.

◆ m_eigenValues

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_eigenValues
private

Definition at line 53 of file SemiImplicitHyperelasticitySolver.h.

◆ m_energy

template<typename TDataType>
DArray<Real> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_energy
private

Definition at line 48 of file SemiImplicitHyperelasticitySolver.h.

◆ m_F

template<typename TDataType>
DArray<Matrix> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_F
private

Definition at line 55 of file SemiImplicitHyperelasticitySolver.h.

◆ m_fraction

template<typename TDataType>
DArray<Real> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_fraction
private

Definition at line 46 of file SemiImplicitHyperelasticitySolver.h.

◆ m_gradient

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_gradient
private

Definition at line 50 of file SemiImplicitHyperelasticitySolver.h.

◆ m_invF

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

Definition at line 56 of file SemiImplicitHyperelasticitySolver.h.

◆ m_invK

template<typename TDataType>
DArray<Matrix> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_invK
private

Definition at line 59 of file SemiImplicitHyperelasticitySolver.h.

◆ m_matR

template<typename TDataType>
DArray<Matrix> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_matR
private

Definition at line 62 of file SemiImplicitHyperelasticitySolver.h.

◆ m_matU

template<typename TDataType>
DArray<Matrix> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_matU
private

Definition at line 60 of file SemiImplicitHyperelasticitySolver.h.

◆ m_matV

template<typename TDataType>
DArray<Matrix> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_matV
private

Definition at line 61 of file SemiImplicitHyperelasticitySolver.h.

◆ m_reduce

template<typename TDataType>
Reduction<Real>* dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_reduce
private

Definition at line 73 of file SemiImplicitHyperelasticitySolver.h.

◆ m_source

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_source
private

Definition at line 70 of file SemiImplicitHyperelasticitySolver.h.

◆ m_validOfF

template<typename TDataType>
DArray<bool> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_validOfF
private

Definition at line 58 of file SemiImplicitHyperelasticitySolver.h.

◆ m_validOfK

template<typename TDataType>
DArray<bool> dyno::SemiImplicitHyperelasticitySolver< TDataType >::m_validOfK
private

Definition at line 57 of file SemiImplicitHyperelasticitySolver.h.

◆ mEnergyGradient

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::mEnergyGradient
private

Definition at line 51 of file SemiImplicitHyperelasticitySolver.h.

◆ y_current

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::y_current
private

Definition at line 64 of file SemiImplicitHyperelasticitySolver.h.

◆ y_gradC

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::y_gradC
private

Definition at line 68 of file SemiImplicitHyperelasticitySolver.h.

◆ y_next

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::y_next
private

Definition at line 65 of file SemiImplicitHyperelasticitySolver.h.

◆ y_pre

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::y_pre
private

Definition at line 66 of file SemiImplicitHyperelasticitySolver.h.

◆ y_residual

template<typename TDataType>
DArray<Coord> dyno::SemiImplicitHyperelasticitySolver< TDataType >::y_residual
private

Definition at line 67 of file SemiImplicitHyperelasticitySolver.h.


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