29#ifndef PX_MPM_MATERIAL_H
30#define PX_MPM_MATERIAL_H
35#include "PxParticleMaterial.h"
83 typedef PxFlags<PxMPMCuttingFlag::Enum,PxU16> PxMPMCuttingFlags;
406 PX_INLINE PxMPMMaterial(PxBaseFlags baseFlags) : PxParticleMaterial(baseFlags) {}
407 virtual ~PxMPMMaterial() {}
Material class to represent a set of MPM particle material properties.
Definition PxMPMMaterial.h:94
virtual PxReal getYieldStress() const =0
Retrieves the yield stress.
virtual PxReal getCriticalCompression() const =0
Retrieves the critical compression coefficient.
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition PxMPMMaterial.h:408
virtual PxReal getYoungsModulus() const =0
Retrieves the Young's modulus value.
virtual PxReal getHardening() const =0
Retrieves the hardening coefficient.
virtual void setStretchAndShearDamping(PxReal stretchAndShearDamping)=0
Sets stretch and shear damping which dampens stretch and shear motion of MPM bodies....
virtual void setHardening(PxReal hardening)=0
Sets material hardening coefficient.
virtual void setCriticalCompression(PxReal criticalCompression)=0
Sets material critical compression coefficient.
virtual void setCompressiveDamageSensitivity(PxReal compressiveDamageSensitivity)=0
Sets material compressive damage sensitivity coefficient.
virtual PxReal getPoissons() const =0
Retrieves the Poisson's ratio.
virtual void setTensileDamageSensitivity(PxReal tensileDamageSensitivity)=0
Sets material tensile damage sensitivity coefficient.
virtual void setPoissons(PxReal poisson)=0
Sets Poisson's ratio defines the body's volume preservation. Completely incompressible materials have...
virtual PxReal getCriticalStretch() const =0
Retrieves the critical stretch coefficient.
virtual void setCuttingFlags(PxMPMCuttingFlags cuttingFlags)=0
Sets the cutting flags which can enable damage tracking or thin blade support.
virtual PxMPMMaterialModel::Enum getMaterialModel() const =0
Retrieves the material model.
virtual PxReal getStretchAndShearDamping() const =0
Retrieves the stretch and shear damping.
virtual PxReal getTensileDamageSensitivity() const =0
Retrieves the tensile damage sensitivity coefficient.
virtual PxReal getCompressiveDamageSensitivity() const =0
Retrieves the compressive damage sensitivity coefficient.
virtual bool getIsPlastic() const =0
Returns true if material is plastic.
virtual void setYieldStress(PxReal yieldStress)=0
Sets the yield stress, only applied if the material model is set to Von Mises.
virtual const char * getConcreteTypeName() const
Returns string name of dynamic type.
Definition PxMPMMaterial.h:402
virtual void setYoungsModulus(PxReal young)=0
Sets Young's modulus which defines the body's stiffness.
virtual void setRotationalDamping(PxReal rotationalDamping)=0
Sets the rotational damping which dampens rotations of mpm bodies.
virtual void setDensity(PxReal density)=0
Sets density which influences the body's weight.
virtual PxReal getAttractiveForceResidual() const =0
Retrieves the attractive force residual coefficient.
virtual PxMPMCuttingFlags getCuttingFlags() const =0
Retrieves the cutting flags.
virtual void setAttractiveForceResidual(PxReal attractiveForceResidual)=0
Sets material attractive force residual coefficient.
virtual void setMaterialModel(PxMPMMaterialModel::Enum materialModel)=0
Sets the material model which influences interaction between MPM particles.
virtual void setSandFrictionAngle(PxReal sandFrictionAngle)=0
Sets the sand friction angle, only applied if the material model is set to sand.
virtual PxReal getSandFrictionAngle() const =0
Retrieves the sand friction angle.
virtual void setIsPlastic(bool isPlastic)=0
Set material to plastic.
virtual PxReal getDensity() const =0
Retrieves the density value.
virtual void setCriticalStretch(PxReal criticalStretch)=0
Sets material critical stretch coefficient.
virtual PxReal getRotationalDamping() const =0
Retrieves the rotational damping.
Material class to represent a set of particle material properties.
Definition PxParticleMaterial.h:50
virtual bool isKindOf(const char *name) const
Returns whether a given type name matches with the type of this instance.
Definition PxParticleMaterial.h:144
#define PX_INLINE
Definition PxPreprocessor.h:320
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Optional MPM modes that improve the quality of fracture and/or cutting.
Definition PxMPMMaterial.h:75
Enum
Definition PxMPMMaterial.h:77
@ eENABLE_DAMAGE_TRACKING
A damage value will get updated on every particle to simulate material weakening to get more realisti...
Definition PxMPMMaterial.h:80
@ eNONE
No special processing to support cutting will be performed.
Definition PxMPMMaterial.h:78
@ eSUPPORT_THIN_BLADES
Special collision detection will be performed to improve support for blade like objects that are thin...
Definition PxMPMMaterial.h:79
MPM material models.
Definition PxMPMMaterial.h:46
Enum
Definition PxMPMMaterial.h:48
@ eSNOW
A corotaional cauchy strain based material model with strain limiting and hardening will be used.
Definition PxMPMMaterial.h:52
@ eVON_MISES
A von Mises material model will be used.
Definition PxMPMMaterial.h:54
@ eATTACHED
Marker to indicate that all particles with an attached material should be treated as attached to what...
Definition PxMPMMaterial.h:49
@ eSAND
A Ducker-Prager elastoplasticity material model will be used.
Definition PxMPMMaterial.h:53
@ eNEO_HOOKEAN
A Neo-Hookean material model will be used.
Definition PxMPMMaterial.h:50
@ eELASTIC
A corotaional cauchy strain based material model will be used.
Definition PxMPMMaterial.h:51
MPM surface types that influence interaction between particles and obstacles.
Definition PxMPMMaterial.h:62
Enum
Definition PxMPMMaterial.h:64
@ eSTICKY
Surface will always have friction in the tangential and the normal direction.
Definition PxMPMMaterial.h:66
@ eDEFAULT
Normal surface with friction in tangential direction.
Definition PxMPMMaterial.h:65
@ eSLIPPERY
Surface will not cause any friction.
Definition PxMPMMaterial.h:67