UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::Softs::FGaussSeidelNeohookeanConstraints< T, ParticleType > Class Template Reference

#include <GaussSeidelNeohookeanConstraints.h>

+ Inheritance diagram for Chaos::Softs::FGaussSeidelNeohookeanConstraints< T, ParticleType >:

Public Member Functions

 FGaussSeidelNeohookeanConstraints (const ParticleType &InParticles, const TArray< TVector< int32, 4 > > &InMesh, const TArray< T > &EMeshArray, const TArray< T > &NuMeshArray, TArray< T > &&AlphaJMeshArray, TArray< TArray< int32 > > &&IncidentElementsIn, TArray< TArray< int32 > > &&IncidentElementsLocalIn, const int32 ParticleStartIndexIn, const int32 ParticleEndIndexIn, const bool bDoQuasistaticsIn=false, const bool bDoSORIn=true, const T InOmegaSOR=(T) 1.6, const FDeformableXPBDCorotatedParams &InParams=FDeformableXPBDCorotatedParams(), const T &NuMesh=(T).3, const bool bRecordMetricIn=false)
 
virtual ~FGaussSeidelNeohookeanConstraints ()
 
- Public Member Functions inherited from Chaos::Softs::FGaussSeidelCorotatedConstraints< T, ParticleType >
 FGaussSeidelCorotatedConstraints (const ParticleType &InParticles, const TArray< TVector< int32, 4 > > &InMesh, const TArray< T > &EMeshArray, const TArray< T > &NuMeshArray, TArray< T > &&AlphaJMeshArray, TArray< TArray< int32 > > &&IncidentElementsIn, TArray< TArray< int32 > > &&IncidentElementsLocalIn, const int32 ParticleStartIndexIn, const int32 ParticleEndIndexIn, const bool bDoQuasistaticsIn=false, const bool bDoSORIn=true, const T InOmegaSOR=(T) 1.6, const FDeformableXPBDCorotatedParams &InParams=FDeformableXPBDCorotatedParams(), const T &NuMesh=(T).3, const bool bRecordMetricIn=false)
 
virtual ~FGaussSeidelCorotatedConstraints ()
 
void Apply (ParticleType &Particles, const T Dt) const
 
void Init (const T Dt, const ParticleType &Particles) const
 
void Init () const override
 
TArray< TArray< int32 > > & GetIncidentElements ()
 
TArray< TArray< int32 > > & GetIncidentElementsLocal ()
 
TArray< TVector< int32, 4 > > GetMeshConstraints () const
 
void SetParticlesPerColor (TArray< TArray< int32 > > &&InParticlesPerColor)
 
TArray< TArray< int32 > > GetMeshArray () const
 
void ApplySOR (ParticleType &Particles, const T Dt) const
 
Chaos::TVector< T, 3 > ComputePerParticleResidual (const int32 p, const int32 IncidentIndex, const ParticleType &Particles, const T Dt, const bool AddMass=true) const
 
Chaos::PMatrix< T, 3, 3 > ComputePerParticleCorotatedHessianSimple (const int32 p, const int32 IncidentIndex, const ParticleType &Particles, const T Dt, const bool AddMass=true) const
 
void AddHyperelasticResidualAndHessian (const ParticleType &Particles, const int32 ElementIndex, const int32 ElementIndexLocal, const T Dt, TVec3< T > &ParticleResidual, Chaos::PMatrix< T, 3, 3 > &ParticleHessian)
 
- Public Member Functions inherited from Chaos::Softs::FXPBDCorotatedConstraints< T, ParticleType >
 FXPBDCorotatedConstraints (const ParticleType &InParticles, const TArray< TVector< int32, 4 > > &InMesh, const bool bRecordMetricIn=true, const T &EMesh=(T) 10.0, const T &NuMesh=(T).3)
 
 FXPBDCorotatedConstraints (const ParticleType &InParticles, const TArray< TVector< int32, 4 > > &InMesh, const TArray< T > &EMeshArray, const T &NuMesh=(T).3, const bool bRecordMetricIn=false)
 
 FXPBDCorotatedConstraints (const ParticleType &InParticles, const TArray< TVector< int32, 4 > > &InMesh, const TArray< T > &EMeshArray, const TArray< T > &NuMeshArray, TArray< T > &&AlphaJMeshArray, const FDeformableXPBDCorotatedParams &InParams, const T &NuMesh=(T).3, const bool bRecordMetricIn=false, const bool bDoColoring=true)
 
 FXPBDCorotatedConstraints (const ParticleType &InParticles, const TArray< TVector< int32, 4 > > &InMesh, const T GridN=(T).1, const T &EMesh=(T) 10.0, const T &NuMesh=(T).3)
 
virtual ~FXPBDCorotatedConstraints ()
 
PMatrix< T, 3, 3 > DsInit (const int e, const ParticleType &InParticles) const
 
PMatrix< T, 3, 3 > Ds (const int e, const ParticleType &InParticles) const
 
PMatrix< T, 3, 3 > F (const int e, const ParticleType &InParticles) const
 
PMatrix< T, 3, 3 > ElementDmInv (const int e) const
 
PMatrix< T, 3, 3 > ElementDmInvSave (const int e) const
 
virtual void ApplyInSerial (ParticleType &Particles, const T Dt, const int32 ElementIndex) const
 
void ApplyInSerial (ParticleType &Particles, const T Dt) const
 
void ApplyInParallel (ParticleType &Particles, const T Dt) const
 
TVec4< TVector< T, 3 > > GetPolarGradient (const PMatrix< T, 3, 3 > &Fe, const PMatrix< T, 3, 3 > &Re, const PMatrix< T, 3, 3 > &DmInvT, const T C1) const
 
TVec4< TVector< T, 3 > > GetDeterminantGradient (const PMatrix< T, 3, 3 > &Fe, const PMatrix< T, 3, 3 > &DmInvT) const
 
void ModifyDmInverseFromMuscleLength (const int32 ElemIdx, const T FiberLengthRatio, const PMatrix< T, 3, 3 > &FiberDir, const T ContractionVolumeScale) const
 
void ModifyDmInverseSaveFromInflationVolumeScale (const int32 ElemIdx, const T InflationVolumeScale, const PMatrix< T, 3, 3 > &FiberDir)
 

Protected Member Functions

void InitializeNeohookeanLambdas ()
 
- Protected Member Functions inherited from Chaos::Softs::FGaussSeidelCorotatedConstraints< T, ParticleType >
void InitColor (const ParticleType &Particles)
 
void InitializeCorotatedLambdas ()
 
- Protected Member Functions inherited from Chaos::Softs::FXPBDCorotatedConstraints< T, ParticleType >
void InitColor (const ParticleType &Particles)
 
virtual TVec4< TVector< T, 3 > > GetDeterminantDelta (const ParticleType &Particles, const T Dt, const int32 ElementIndex, const T Tol=(T) 1e-3) const
 
virtual TVec4< TVector< T, 3 > > GetPolarDelta (const ParticleType &Particles, const T Dt, const int32 ElementIndex, const T Tol=(T) 1e-3) const
 

Additional Inherited Members

- Public Attributes inherited from Chaos::Softs::FGaussSeidelCorotatedConstraints< T, ParticleType >
TFunction< void(const ParticleType &, const int32, const T, TVec3< T > &)> AddAdditionalRes
 
TFunction< void(const ParticleType &, const int32, const T, Chaos::PMatrix< T, 3, 3 > &)> AddAdditionalHessian
 
TUniquePtr< TArray< int32 > > ParticleColors
 
- Protected Attributes inherited from Chaos::Softs::FGaussSeidelCorotatedConstraints< T, ParticleType >
TArray< int32Particle2Incident
 
TArray< TArray< int32 > > IncidentElements
 
TArray< TArray< int32 > > IncidentElementsLocal
 
LocalNewtonTol = T(1e-5)
 
TArray< TArray< int32 > > ParticlesPerColor
 
int32 ParticleStartIndex
 
int32 ParticleEndIndex
 
TArray< Chaos::TVector< T, 3 > > xtilde
 
TArray< Chaos::TVector< T, 3 > > X_k_1
 
TArray< Chaos::TVector< T, 3 > > X_k
 
bool bDoQuasistatics = false
 
bool bDoSOR = true
 
OmegaSOR = T(1.6)
 
int32 CurrentIt = 0
 
TFunction< void(const Chaos::PMatrix< T, 3, 3 > &, const T, const T, Chaos::PMatrix< T, 3, 3 > &)> ComputeStress
 
TFunction< void(const Chaos::PMatrix< T, 3, 3 > &, const Chaos::PMatrix< T, 3, 3 > &, const T, const T, const int32, const T, Chaos::PMatrix< T, 3, 3 > &)> ComputeHessianHelper
 
- Protected Attributes inherited from Chaos::Softs::FXPBDCorotatedConstraints< T, ParticleType >
TArray< T > LambdaArray
 
TArray< T > DmInverse
 
TArray< T > DmInverseSave
 
FDeformableXPBDCorotatedParams CorotatedParams
 
Mu
 
Lambda
 
TArray< T > MuElementArray
 
TArray< T > LambdaElementArray
 
TArray< T > AlphaJArray
 
HError
 
TArray< T > HErrorArray
 
bool bRecordMetric
 
bool VariableStiffness = false
 
TArray< TVector< int32, 4 > > MeshConstraints
 
TArray< T > Measure
 
ParticleType RestParticles
 
TArray< int32ConstraintsPerColorStartIndex
 
TArray< T > GError
 

Constructor & Destructor Documentation

◆ FGaussSeidelNeohookeanConstraints()

template<typename T , typename ParticleType >
Chaos::Softs::FGaussSeidelNeohookeanConstraints< T, ParticleType >::FGaussSeidelNeohookeanConstraints ( const ParticleType &  InParticles,
const TArray< TVector< int32, 4 > > &  InMesh,
const TArray< T > &  EMeshArray,
const TArray< T > &  NuMeshArray,
TArray< T > &&  AlphaJMeshArray,
TArray< TArray< int32 > > &&  IncidentElementsIn,
TArray< TArray< int32 > > &&  IncidentElementsLocalIn,
const int32  ParticleStartIndexIn,
const int32  ParticleEndIndexIn,
const bool  bDoQuasistaticsIn = false,
const bool  bDoSORIn = true,
const T  InOmegaSOR = (T)1.6,
const FDeformableXPBDCorotatedParams InParams = FDeformableXPBDCorotatedParams(),
const T &  NuMesh = (T).3,
const bool  bRecordMetricIn = false 
)
inline

◆ ~FGaussSeidelNeohookeanConstraints()

template<typename T , typename ParticleType >
virtual Chaos::Softs::FGaussSeidelNeohookeanConstraints< T, ParticleType >::~FGaussSeidelNeohookeanConstraints ( )
inlinevirtual

Member Function Documentation

◆ InitializeNeohookeanLambdas()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelNeohookeanConstraints< T, ParticleType >::InitializeNeohookeanLambdas ( )
inlineprotected

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