8 template <
typename T,
typename ParticleType>
13 const ParticleType& Particles,
26 Particles.X(Constraint[0]),
27 Particles.X(Constraint[1]),
28 Particles.X(Constraint[2]),
29 Particles.X(Constraint[3]));
30 StiffnessArray[Idx] /= Volumes[Idx];
50 Energy += Dt * Dt * StiffnessArray[ConstraintIndex] / (T)2. * (
CurrentVol - Volumes[ConstraintIndex]) * (
CurrentVol - Volumes[ConstraintIndex]);
56 const int32 Index1 = Constraint[0];
57 const int32 Index2 = Constraint[1];
76 const T
C_Hessian = StiffnessArray[ConstraintIndex] * Dt * Dt;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition GaussSeidelUnilateralTetConstraints.h:10
TArray< TArray< int32 > > GetStaticConstraintArrays(TArray< TArray< int32 > > &InIncidentElements, TArray< TArray< int32 > > &InIncidentElementsLocal) const
Definition GaussSeidelUnilateralTetConstraints.h:82
void AddResidualAndHessian(const ParticleType &InParticles, const int32 ConstraintIndex, const int32 LocalIndex, const T Dt, TVec3< T > &ParticleResidual, Chaos::PMatrix< T, 3, 3 > &ParticleHessian) const
Definition GaussSeidelUnilateralTetConstraints.h:53
static T ComputeVolume(const TVec3< T > &P1, const TVec3< T > &P2, const TVec3< T > &P3, const TVec3< T > &P4)
Definition GaussSeidelUnilateralTetConstraints.h:34
void AddEnergy(const ParticleType &InParticles, const int32 ConstraintIndex, const T Dt, T &Energy) const
Definition GaussSeidelUnilateralTetConstraints.h:42
int32 NumConstraints() const
Definition GaussSeidelUnilateralTetConstraints.h:95
FGaussSeidelUnilateralTetConstraints(const ParticleType &Particles, TArray< TVector< int32, 4 > > &&InConstraints, TArray< T > InStiffnessArray)
Definition GaussSeidelUnilateralTetConstraints.h:12
Definition Constraints.Build.cs:6
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
void SetNumUninitialized(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2369
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
TArray< TArray< int > > ComputeIncidentElements(const TArray< TVector< int32, d > > &Mesh, TArray< TArray< int32 > > *LocalIndex=nullptr)
Definition Utilities.h:1013