PxMPMMaterial

Defined in include/PxMPMMaterial.h

class PxMPMMaterial : public PxParticleMaterial

Material class to represent a set of MPM particle material properties.

Public Functions

virtual void setStretchAndShearDamping(PxReal stretchAndShearDamping) = 0

Sets stretch and shear damping which dampens stretch and shear motion of MPM bodies.

The effect is comparable to viscosity for fluids.

Parameters

stretchAndShearDamping[in] The stretch and shear damping

virtual PxReal getStretchAndShearDamping() const = 0

Retrieves the stretch and shear damping.

Returns

The stretch and shear damping

virtual void setRotationalDamping(PxReal rotationalDamping) = 0

Sets the rotational damping which dampens rotations of mpm bodies.

Parameters

rotationalDamping[in] The rotational damping

virtual PxReal getRotationalDamping() const = 0

Retrieves the rotational damping.

Returns

The rotational damping

virtual void setDensity(PxReal density) = 0

Sets density which influences the body’s weight.

See also

getDensity()

Parameters

density[in] The material’s density

virtual PxReal getDensity() const = 0

Retrieves the density value.

See also

setDensity()

Returns

The density

virtual void setMaterialModel(PxMPMMaterialModel::Enum materialModel) = 0

Sets the material model which influences interaction between MPM particles.

Parameters

materialModel[in] The material model

virtual PxMPMMaterialModel::Enum getMaterialModel() const = 0

Retrieves the material model.

Returns

The material model

virtual void setCuttingFlags(PxMPMCuttingFlags cuttingFlags) = 0

Sets the cutting flags which can enable damage tracking or thin blade support.

Parameters

cuttingFlags[in] The cutting flags

virtual PxMPMCuttingFlags getCuttingFlags() const = 0

Retrieves the cutting flags.

Returns

The cutting flags

virtual void setSandFrictionAngle(PxReal sandFrictionAngle) = 0

Sets the sand friction angle, only applied if the material model is set to sand.

Parameters

sandFrictionAngle[in] The sand friction angle

virtual PxReal getSandFrictionAngle() const = 0

Retrieves the sand friction angle.

Returns

The sand friction angle

virtual void setYieldStress(PxReal yieldStress) = 0

Sets the yield stress, only applied if the material model is set to Von Mises.

See also

getYieldStress()

Parameters

yieldStress[in] The yield stress

virtual PxReal getYieldStress() const = 0

Retrieves the yield stress.

See also

setYieldStress()

Returns

The yield stress

virtual void setIsPlastic(bool isPlastic) = 0

Set material to plastic.

See also

getIsPlastic()

Parameters

isPlastic[in] True if plastic

virtual bool getIsPlastic() const = 0

Returns true if material is plastic.

See also

setIsPlastic()

Returns

True if plastic

virtual void setYoungsModulus(PxReal young) = 0

Sets Young’s modulus which defines the body’s stiffness.

Parameters

young[in] Young’s modulus. Range: [0, PX_MAX_F32)

virtual PxReal getYoungsModulus() const = 0

Retrieves the Young’s modulus value.

Returns

The Young’s modulus value.

virtual void setPoissons(PxReal poisson) = 0

Sets Poisson’s ratio defines the body’s volume preservation.

Completely incompressible materials have a Poisson ratio of 0.5 which will lead to numerical problems.

See also

getPoissons()

Parameters

poisson[in] Poisson’s ratio. Range: [0, 0.5)

virtual PxReal getPoissons() const = 0

Retrieves the Poisson’s ratio.

See also

setPoissons()

Returns

The Poisson’s ratio.

virtual void setHardening(PxReal hardening) = 0

Sets material hardening coefficient.

Tendency to get more rigid under compression. Range: [0, PX_MAX_F32)

See also

getHardening

Parameters

hardening[in] Material hardening coefficient.

virtual PxReal getHardening() const = 0

Retrieves the hardening coefficient.

See also

setHardening()

Returns

The hardening coefficient.

virtual void setCriticalCompression(PxReal criticalCompression) = 0

Sets material critical compression coefficient.

Compression clamping threshold (higher means more compression is allowed before yield). Range: [0, 1)

Parameters

criticalCompression[in] Material critical compression coefficient.

virtual PxReal getCriticalCompression() const = 0

Retrieves the critical compression coefficient.

Returns

The criticalCompression coefficient.

virtual void setCriticalStretch(PxReal criticalStretch) = 0

Sets material critical stretch coefficient.

Stretch clamping threshold (higher means more stretching is allowed before yield). Range: [0, 1]

Parameters

criticalStretch[in] Material critical stretch coefficient.

virtual PxReal getCriticalStretch() const = 0

Retrieves the critical stretch coefficient.

Returns

The criticalStretch coefficient.

virtual void setTensileDamageSensitivity(PxReal tensileDamageSensitivity) = 0

Sets material tensile damage sensitivity coefficient.

Sensitivity to tensile loads. The higher the sensitivity, the quicker damage will occur under tensile loads. Range: [0, PX_MAX_U32)

Parameters

tensileDamageSensitivity[in] Material tensile damage sensitivity coefficient.

virtual PxReal getTensileDamageSensitivity() const = 0

Retrieves the tensile damage sensitivity coefficient.

Returns

The tensileDamageSensitivity coefficient.

virtual void setCompressiveDamageSensitivity(PxReal compressiveDamageSensitivity) = 0

Sets material compressive damage sensitivity coefficient.

Sensitivity to compressive loads. The higher the sensitivity, the quicker damage will occur under compressive loads Range: [0, PX_MAX_U32)

Parameters

compressiveDamageSensitivity[in] Material compressive damage sensitivity coefficient.

virtual PxReal getCompressiveDamageSensitivity() const = 0

Retrieves the compressive damage sensitivity coefficient.

Returns

The compressiveDamageSensitivity coefficient.

virtual void setAttractiveForceResidual(PxReal attractiveForceResidual) = 0

Sets material attractive force residual coefficient.

Relative amount of attractive force a fully damaged particle can exert on other particles compared to an undamaged one. Range: [0, 1]

Parameters

attractiveForceResidual[in] Material attractive force residual coefficient.

virtual PxReal getAttractiveForceResidual() const = 0

Retrieves the attractive force residual coefficient.

Returns

The attractiveForceResidual coefficient.

inline virtual const char *getConcreteTypeName() const

Returns string name of dynamic type.

Returns

Class name of most derived type of this object.

virtual void setFriction(PxReal friction) = 0

Sets friction.

See also

getFriction()

Parameters

friction[in] Friction. Range: [0, PX_MAX_F32)

virtual PxReal getFriction() const = 0

Retrieves the friction value.

See also

setFriction()

Returns

The friction value.

virtual void setDamping(PxReal damping) = 0

Sets velocity damping term.

See also

getDamping

Parameters

damping[in] Velocity damping term. Range: [0, PX_MAX_F32)

virtual PxReal getDamping() const = 0

Retrieves the velocity damping term.

See also

setDamping()

Returns

The velocity damping term.

virtual void setAdhesion(PxReal adhesion) = 0

Sets adhesion term.

See also

getAdhesion

Parameters

adhesion[in] adhesion coefficient. Range: [0, PX_MAX_F32)

virtual PxReal getAdhesion() const = 0

Retrieves the adhesion term.

See also

setAdhesion()

Returns

The adhesion term.

virtual void setGravityScale(PxReal scale) = 0

Sets gravity scale term.

See also

getAdhesion

Parameters

scale[in] gravity scale coefficient. Range: (-PX_MAX_F32, PX_MAX_F32)

virtual PxReal getGravityScale() const = 0

Retrieves the gravity scale term.

See also

setAdhesion()

Returns

The gravity scale term.

virtual void setAdhesionRadiusScale(PxReal scale) = 0

Sets material adhesion radius scale.

This is multiplied by the particle rest offset to compute the fall-off distance at which point adhesion ceases to operate.

Parameters

scale[in] Material adhesion radius scale. Range: [0, PX_MAX_F32)

virtual PxReal getAdhesionRadiusScale() const = 0

Retrieves the adhesion radius scale.

Returns

The adhesion radius scale.

virtual void release() = 0

Decrements the reference count of the object and releases it if the new reference count is zero.

virtual PxU32 getReferenceCount() const = 0

Returns the reference count of the object.

At creation, the reference count of the object is 1. Every other object referencing this object increments the count by 1. When the reference count reaches 0, and only then, the object gets destroyed automatically.

Returns

the current reference count.

virtual void acquireReference() = 0

Acquires a counted reference to this object.

This method increases the reference count of the object by 1. Decrement the reference count by calling release()

template<class T>
inline T *is()
template<class T>
inline const T *is() const
inline PxType getConcreteType() const

Returns concrete type of object.

See also

PxConcreteType

Returns

PxConcreteType::Enum of serialized object

inline void setBaseFlag(PxBaseFlag::Enum flag, bool value)

Set PxBaseFlag

Parameters
  • flag[in] The flag to be set

  • value[in] The flags new value

inline void setBaseFlags(PxBaseFlags inFlags)

Set PxBaseFlags

See also

PxBaseFlags

Parameters

inFlags[in] The flags to be set

inline PxBaseFlags getBaseFlags() const

Returns PxBaseFlags.

See also

PxBaseFlags

Returns

PxBaseFlags

inline virtual bool isReleasable() const

Whether the object is subordinate.

A class is subordinate, if it can only be instantiated in the context of another class.

Returns

Whether the class is subordinate

Public Members

void *userData

user can assign this to whatever, usually to create a 1:1 relationship with a user object.

Protected Functions

inline PxMPMMaterial(PxType concreteType, PxBaseFlags baseFlags)
inline PxMPMMaterial(PxBaseFlags baseFlags)
inline virtual ~PxMPMMaterial()
inline virtual bool isKindOf(const char *name) const

Returns whether a given type name matches with the type of this instance.

inline virtual void onRefCountZero()
template<class T>
inline bool typeMatch() const

Protected Attributes

PxType mConcreteType
PxBaseFlags mBaseFlags
PxU32 mBuiltInRefCount