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

#include <GaussSeidelMainConstraint.h>

Public Member Functions

 FGaussSeidelMainConstraint (const ParticleType &InParticles, const bool bDoQuasistaticsIn=false, const bool bDoSORIn=true, const T InOmegaSOR=(T) 1.6, const int32 ParallelMaxIn=1000, const T MaxDxRatioIn=T(1), const FDeformableXPBDCorotatedParams &InParams=FDeformableXPBDCorotatedParams())
 
virtual ~FGaussSeidelMainConstraint ()
 
void Resize (const int32 NewSize)
 
const TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & StaticConstraintResidualAndHessian () const
 
TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & StaticConstraintResidualAndHessian ()
 
const TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & TransientConstraintResidualAndHessian () const
 
TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & TransientConstraintResidualAndHessian ()
 
const TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & DynamicConstraintResidualAndHessian () const
 
TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & DynamicConstraintResidualAndHessian ()
 
const TArray< TFunction< void(const int32, const T, Chaos::PMatrix< T, 3, 3 > &)> > & PerNodeHessian () const
 
TArray< TFunction< void(const int32, const T, Chaos::PMatrix< T, 3, 3 > &)> > & PerNodeHessian ()
 
const TArray< TFunction< void(const ParticleType &, const TArray< TVec3< T > > &, TArray< TVec3< T > > &)> > & InternalForceDifferentials () const
 
TArray< TFunction< void(const ParticleType &, const TArray< TVec3< T > > &, TArray< TVec3< T > > &)> > & InternalForceDifferentials ()
 
int32 AddStaticConstraintResidualAndHessianRange (int32 NumConstraints)
 
int32 AddTransientConstraintResidualAndHessianRange (int32 NumConstraints)
 
int32 AddDynamicConstraintResidualAndHessianRange (int32 NumConstraints)
 
int32 AddPerNodeHessianRange (int32 NumConstraints)
 
int32 AddAddInternalForceDifferentialsRange (int32 NumConstraints)
 
CHAOS_API void AddStaticConstraints (const TArray< TArray< int32 > > &ExtraConstraints, TArray< TArray< int32 > > &ExtraIncidentElements, TArray< TArray< int32 > > &ExtraIncidentElementsLocal)
 
CHAOS_API void AddTransientConstraints (const TArray< TArray< int32 > > &ExtraConstraints, TArray< TArray< int32 > > &ExtraIncidentElements, TArray< TArray< int32 > > &ExtraIncidentElementsLocal, bool CheckIncidentElements=false)
 
CHAOS_API void AddDynamicConstraints (const TArray< TArray< int32 > > &ExtraConstraints, TArray< TArray< int32 > > &ExtraIncidentElements, TArray< TArray< int32 > > &ExtraIncidentElementsLocal, bool CheckIncidentElements=false)
 
void ResetDynamicConstraints ()
 
void Apply (ParticleType &Particles, const T Dt, const int32 MaxWriteIters=10, const bool Write2File=false, const TPBDActiveView< FSolverParticles > *InParticleActiveView=nullptr)
 
void InitStaticColor (const ParticleType &Particles, const TPBDActiveView< FSolverParticles > *InParticleActiveView=nullptr)
 
void InitTransientColor (const ParticleType &Particles)
 
void InitDynamicColor (const ParticleType &Particles)
 
void Init (const T Dt, const ParticleType &Particles)
 
CHAOS_API TArray< TVec3< T > > ComputeNewtonResiduals (const ParticleType &Particles, const T Dt, const bool Write2File=false, TArray< PMatrix< T, 3, 3 > > *AllParticleHessian=nullptr)
 
CHAOS_API void ApplyCG (ParticleType &Particles, const T Dt)
 
void AddExternalAcceleration (const TVec3< T > &Acceleration)
 
void ResetExternalAcceleration ()
 

Static Public Member Functions

static bool IsClean (const TArray< TArray< int32 > > &ConstraintsIn, const TArray< TArray< int32 > > &IncidentElementsIn, const TArray< TArray< int32 > > &IncidentElementsLocalIn)
 

Public Attributes

bool DebugResidual = false
 
bool IsFirstFrame = true
 
int32 PassedIters = 0
 
TVec3< T > ExternalAcceleration = TVec3<T>((T)0.)
 

Constructor & Destructor Documentation

◆ FGaussSeidelMainConstraint()

template<typename T , typename ParticleType >
Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::FGaussSeidelMainConstraint ( const ParticleType &  InParticles,
const bool  bDoQuasistaticsIn = false,
const bool  bDoSORIn = true,
const T  InOmegaSOR = (T)1.6,
const int32  ParallelMaxIn = 1000,
const T  MaxDxRatioIn = T(1),
const FDeformableXPBDCorotatedParams InParams = FDeformableXPBDCorotatedParams() 
)
inline

◆ ~FGaussSeidelMainConstraint()

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

Member Function Documentation

◆ AddAddInternalForceDifferentialsRange()

template<typename T , typename ParticleType >
int32 Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddAddInternalForceDifferentialsRange ( int32  NumConstraints)
inline

◆ AddDynamicConstraintResidualAndHessianRange()

template<typename T , typename ParticleType >
int32 Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddDynamicConstraintResidualAndHessianRange ( int32  NumConstraints)
inline

◆ AddDynamicConstraints()

template<typename T , typename ParticleType >
template CHAOS_API void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddDynamicConstraints ( const TArray< TArray< int32 > > &  ExtraConstraints,
TArray< TArray< int32 > > &  ExtraIncidentElements,
TArray< TArray< int32 > > &  ExtraIncidentElementsLocal,
bool  CheckIncidentElements = false 
)

◆ AddExternalAcceleration()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddExternalAcceleration ( const TVec3< T > &  Acceleration)
inline

◆ AddPerNodeHessianRange()

template<typename T , typename ParticleType >
int32 Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddPerNodeHessianRange ( int32  NumConstraints)
inline

◆ AddStaticConstraintResidualAndHessianRange()

template<typename T , typename ParticleType >
int32 Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddStaticConstraintResidualAndHessianRange ( int32  NumConstraints)
inline

◆ AddStaticConstraints()

template<typename T , typename ParticleType >
template CHAOS_API void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddStaticConstraints ( const TArray< TArray< int32 > > &  ExtraConstraints,
TArray< TArray< int32 > > &  ExtraIncidentElements,
TArray< TArray< int32 > > &  ExtraIncidentElementsLocal 
)

◆ AddTransientConstraintResidualAndHessianRange()

template<typename T , typename ParticleType >
int32 Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddTransientConstraintResidualAndHessianRange ( int32  NumConstraints)
inline

◆ AddTransientConstraints()

template<typename T , typename ParticleType >
template CHAOS_API void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::AddTransientConstraints ( const TArray< TArray< int32 > > &  ExtraConstraints,
TArray< TArray< int32 > > &  ExtraIncidentElements,
TArray< TArray< int32 > > &  ExtraIncidentElementsLocal,
bool  CheckIncidentElements = false 
)

◆ Apply()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::Apply ( ParticleType &  Particles,
const T  Dt,
const int32  MaxWriteIters = 10,
const bool  Write2File = false,
const TPBDActiveView< FSolverParticles > *  InParticleActiveView = nullptr 
)
inline

◆ ApplyCG()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::ApplyCG ( ParticleType &  Particles,
const T  Dt 
)

◆ ComputeNewtonResiduals()

template<typename T , typename ParticleType >
TArray< TVec3< T > > Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::ComputeNewtonResiduals ( const ParticleType &  Particles,
const T  Dt,
const bool  Write2File = false,
TArray< PMatrix< T, 3, 3 > > *  AllParticleHessian = nullptr 
)

◆ DynamicConstraintResidualAndHessian() [1/2]

template<typename T , typename ParticleType >
TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::DynamicConstraintResidualAndHessian ( )
inline

◆ DynamicConstraintResidualAndHessian() [2/2]

template<typename T , typename ParticleType >
const TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::DynamicConstraintResidualAndHessian ( ) const
inline

◆ Init()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::Init ( const T  Dt,
const ParticleType &  Particles 
)
inline

◆ InitDynamicColor()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::InitDynamicColor ( const ParticleType &  Particles)
inline

◆ InitStaticColor()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::InitStaticColor ( const ParticleType &  Particles,
const TPBDActiveView< FSolverParticles > *  InParticleActiveView = nullptr 
)
inline

◆ InitTransientColor()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::InitTransientColor ( const ParticleType &  Particles)
inline

◆ InternalForceDifferentials() [1/2]

template<typename T , typename ParticleType >
TArray< TFunction< void(const ParticleType &, const TArray< TVec3< T > > &, TArray< TVec3< T > > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::InternalForceDifferentials ( )
inline

◆ InternalForceDifferentials() [2/2]

template<typename T , typename ParticleType >
const TArray< TFunction< void(const ParticleType &, const TArray< TVec3< T > > &, TArray< TVec3< T > > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::InternalForceDifferentials ( ) const
inline

◆ IsClean()

template<typename T , typename ParticleType >
static bool Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::IsClean ( const TArray< TArray< int32 > > &  ConstraintsIn,
const TArray< TArray< int32 > > &  IncidentElementsIn,
const TArray< TArray< int32 > > &  IncidentElementsLocalIn 
)
inlinestatic

◆ PerNodeHessian() [1/2]

template<typename T , typename ParticleType >
TArray< TFunction< void(const int32, const T, Chaos::PMatrix< T, 3, 3 > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::PerNodeHessian ( )
inline

◆ PerNodeHessian() [2/2]

template<typename T , typename ParticleType >
const TArray< TFunction< void(const int32, const T, Chaos::PMatrix< T, 3, 3 > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::PerNodeHessian ( ) const
inline

◆ ResetDynamicConstraints()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::ResetDynamicConstraints ( )
inline

◆ ResetExternalAcceleration()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::ResetExternalAcceleration ( )
inline

◆ Resize()

template<typename T , typename ParticleType >
void Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::Resize ( const int32  NewSize)
inline

◆ StaticConstraintResidualAndHessian() [1/2]

template<typename T , typename ParticleType >
TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::StaticConstraintResidualAndHessian ( )
inline

◆ StaticConstraintResidualAndHessian() [2/2]

template<typename T , typename ParticleType >
const TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::StaticConstraintResidualAndHessian ( ) const
inline

◆ TransientConstraintResidualAndHessian() [1/2]

template<typename T , typename ParticleType >
TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::TransientConstraintResidualAndHessian ( )
inline

◆ TransientConstraintResidualAndHessian() [2/2]

template<typename T , typename ParticleType >
const TArray< TFunction< void(const ParticleType &, const int32, const int32, const T, TVec3< T > &, Chaos::PMatrix< T, 3, 3 > &)> > & Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::TransientConstraintResidualAndHessian ( ) const
inline

Member Data Documentation

◆ DebugResidual

template<typename T , typename ParticleType >
bool Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::DebugResidual = false

◆ ExternalAcceleration

template<typename T , typename ParticleType >
TVec3<T> Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::ExternalAcceleration = TVec3<T>((T)0.)

◆ IsFirstFrame

template<typename T , typename ParticleType >
bool Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::IsFirstFrame = true

◆ PassedIters

template<typename T , typename ParticleType >
int32 Chaos::Softs::FGaussSeidelMainConstraint< T, ParticleType >::PassedIters = 0

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