15 template <
typename T,
typename ParticleType>
24 const T&
EMesh = (T)10.0,
66 for (
int32 i = 0; i < 3; i++)
68 for (
int32 c = 0; c < 3; c++)
120 for (
int32 j = 0; j < 3; j++)
134 for (
int32 j = 0; j < 3; j++)
199 t = T(1) / (
Tau + FMath::Sqrt((T)1. +
Tau *
Tau));
201 t = T(-1) / (-
Tau + FMath::Sqrt((T)1. +
Tau *
Tau));
202 c = T(1) / FMath::Sqrt((T)1. + t * t);
223 D = V.GetTransposed() *
B * V;
232 return Fe *
S.Inverse();
280 const T
J2 =
FTF.Determinant();
315 const T J = FMath::Sqrt(
FTF.Determinant());
325 for (
int32 c = 0; c < 3; c++)
332 for (
int32 c = 0; c < 3; c++)
334 for (
int32 h = 0; h < 2; h++)
354 for (
int32 nu = 0; nu < 2; nu++)
357 for (
int32 k = 0; k < 2; k++)
363 for (
int32 alpha = 0; alpha < 3; alpha++)
370 for (
int32 alpha = 0; alpha < 3; alpha++)
372 for (
int32 k = 0; k < 2; k++)
374 L[alpha] +=
dJDmInvT.M[3 * k + alpha];
377 for (
int32 alpha = 0; alpha < 3; alpha++)
385 for (
int32 nu = 0; nu < 2; nu++)
389 for (
int32 alpha = 0; alpha < 3; alpha++)
397 for (
int32 alpha = 0; alpha < 3; alpha++)
405 for (
int32 alpha = 0; alpha < 3; alpha++)
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
Definition GaussSeidelCorotatedCodimensionalConstraints.h:17
bool bRecordMetric
Definition GaussSeidelCorotatedCodimensionalConstraints.h:424
TArray< T > LambdaElementArray
Definition GaussSeidelCorotatedCodimensionalConstraints.h:422
static T SafeRecip(const T Len, const T Fallback)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:173
FGaussSeidelCorotatedCodimensionalConstraints(const ParticleType &InParticles, const TArray< TVector< int32, 3 > > &InMesh, const TArray< T > &EMeshArray, const T &NuMesh=(T).3)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:39
PMatrix< T, 3, 2 > Ds(const int32 E, const ParticleType &InParticles) const
Definition GaussSeidelCorotatedCodimensionalConstraints.h:76
void AddHyperelasticResidualAndHessian(const ParticleType &Particles, const int32 ElementIndex, const int32 ElementIndexLocal, const T Dt, TVec3< T > &ParticleResidual, Chaos::PMatrix< T, 3, 3 > &ParticleHessian)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:295
static void SymSchur2D(const T Aqq, const T App, const T Apq, T &c, T &s)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:182
T Mu
Definition GaussSeidelCorotatedCodimensionalConstraints.h:419
static PMatrix< T, 3, 2 > ComputeR(const PMatrix< T, 3, 2 > &Fe)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:226
TArray< T > MuElementArray
Definition GaussSeidelCorotatedCodimensionalConstraints.h:421
TArray< T > Measure
Definition GaussSeidelCorotatedCodimensionalConstraints.h:427
FGaussSeidelCorotatedCodimensionalConstraints(const ParticleType &InParticles, const TArray< TVector< int32, 3 > > &InMesh, const bool bRecordMetricIn=true, const T &EMesh=(T) 10.0, const T &NuMesh=(T).3)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:20
void ComputeNodalMass(const T InDensity, const int32 NumParticles, TArray< T > &NodalMass) const
Definition GaussSeidelCorotatedCodimensionalConstraints.h:128
static PMatrix< T, 3, 2 > ComputeRSimple(const PMatrix< T, 3, 2 > &InputMatrix)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:235
static PMatrix< T, 2, 2 > ComputeFTF(const PMatrix< T, 3, 2 > &InputMatrix)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:269
TArray< TVector< int32, 3 > > MeshConstraints
Definition GaussSeidelCorotatedCodimensionalConstraints.h:426
virtual ~FGaussSeidelCorotatedCodimensionalConstraints()
Definition GaussSeidelCorotatedCodimensionalConstraints.h:61
TArray< T > AlphaJArray
Definition GaussSeidelCorotatedCodimensionalConstraints.h:423
static void Jacobi(const PMatrix< T, 2, 2 > &B, PMatrix< T, 2, 2 > &D, PMatrix< T, 2, 2 > &V)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:213
static void dJdF32(const PMatrix< T, 3, 2 > &F, PMatrix< T, 3, 2 > &dJ)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:277
PMatrix< T, 3, 3 > DsInit(const int32 E, const ParticleType &InParticles)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:63
void InitializeCodimensionData(const ParticleType &Particles)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:145
T Lambda
Definition GaussSeidelCorotatedCodimensionalConstraints.h:420
TArray< TArray< int32 > > GetConstraintsArray() const
Definition GaussSeidelCorotatedCodimensionalConstraints.h:113
PMatrix< T, 3, 2 > F(const int32 E, const ParticleType &InParticles) const
Definition GaussSeidelCorotatedCodimensionalConstraints.h:99
TArray< FSolverMatrix22 > DmInverse
Definition GaussSeidelCorotatedCodimensionalConstraints.h:416
static Chaos::PMatrix< T, 3, 2 > GramSchmidt(const Chaos::PMatrix< T, 3, 2 > &InputMatrix)
Definition GaussSeidelCorotatedCodimensionalConstraints.h:256
Definition Constraints.Build.cs:6
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Init(const ElementType &Element, SizeType Number)
Definition Array.h:3043
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6