11#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
35 int32 NumNewtonIterations = 5,
98 MConstraintInits.Reset();
99 MConstraintRules.Reset();
100 MPostCollisionConstraintRules.Reset();
101 MConstraintInitsActiveView.Reset();
102 MConstraintRulesActiveView.Reset();
103 MPostCollisionConstraintRulesActiveView.Reset();
168 template <
typename Func1,
typename Func2>
169 void ComputeNegativeBackwardEulerResidual(
const FSolverParticles&
InParticles,
const TArray<
TArray<
TVector<int32, 2>>>&
IncidentElements,
const TArray<FSolverReal>&
NodalMass,
const TArray<FSolverVec3>&
Vn,
const FSolverParticles&
Xn,
Func1 P, Func2
AddExternalForce,
const FSolverReal Time,
const FSolverReal Dt,
TArray<FSolverVec3>&
Residual);
171 template<
typename Func1,
typename Func2,
typename Func3,
typename Func4,
typename Func5,
typename Func6>
172 void DoNewtonStep(
const int32 max_it_newton,
const FSolverReal newton_tol,
const int32 max_it_cg,
const FSolverReal cg_tol,
Func1 P, Func2
dP,
const FSolverReal time,
const FSolverReal dt,
const TArray<
TArray<
TVector<int32, 2>>>&
incident_elements,
const TArray<FSolverReal>&
nodal_mass,
Func3 set_bcs,
Func4 project_bcs,
Func5 add_external_force,
Func6 update_position_based_state,
FSolverParticles&
InParticles,
TArray<FSolverReal>&
residual_norm,
bool use_cg =
false,
FSolverReal cg_prctg_reduce = 0,
bool no_verbose =
false);
184 template<
bool bForceRule,
bool bVelocityField,
bool bDampVelocityRule>
227 int32 MNumNewtonIterations;
228 int32 MNumCGIterations;
251 bool NoVerbose =
false;
255 bool bWriteDebugInfo;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
EGLSurface EGLnsecsANDROID time
Definition AndroidOpenGLFunctions.h:9
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition NewtonEvolution.h:26
CHAOS_API void ResetParticles()
Definition NewtonEvolution.cpp:214
void SetKinematicUpdateFunction(TFunction< void(FSolverParticles &, const FSolverReal, const FSolverReal, const int32)> KinematicUpdate)
Definition NewtonEvolution.h:129
const FSolverCollisionParticles & CollisionParticles() const
Definition NewtonEvolution.h:89
void SetNewtonIterations(const int32 Iterations)
Definition NewtonEvolution.h:142
CHAOS_API int32 AddPostCollisionConstraintRuleRange(int32 NumConstraints, bool bActivate)
Definition NewtonEvolution.cpp:301
void SetDamping(const FSolverReal Damping, const uint32 GroupId=0)
Definition NewtonEvolution.h:151
CHAOS_API int32 AddCollisionParticleRange(int32 NumParticles, uint32 GroupId, bool bActivate)
Definition NewtonEvolution.cpp:261
void ActivateParticleRange(int32 Offset, bool bActivate)
Definition NewtonEvolution.h:64
int32 GetParticleRangeSize(int32 Offset) const
Definition NewtonEvolution.h:61
int32 GetCollisionParticleRangeSize(int32 Offset) const
Definition NewtonEvolution.h:86
const FVelocityAndPressureField & GetVelocityAndPressureField(const uint32 GroupId=0) const
Definition NewtonEvolution.h:139
FSolverReal GetCollisionThickness(const uint32 GroupId=0) const
Definition NewtonEvolution.h:144
FSolverReal GetLocalDamping(const uint32 GroupId=0) const
Definition NewtonEvolution.h:153
void ActivatePostCollisionConstraintRuleRange(int32 Offset, bool bActivate)
Definition NewtonEvolution.h:119
TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintInits()
Definition NewtonEvolution.h:123
const FSolverVec3 & GetGravity(const uint32 GroupId=0) const
Definition NewtonEvolution.h:135
TArray< TArray< TVector< int32, 2 > > > & IncidentElements()
Definition NewtonEvolution.h:71
int32 GetConstraintRuleRangeSize(int32 Offset) const
Definition NewtonEvolution.h:113
int32 GetNewtonIterations() const
Definition NewtonEvolution.h:141
void SetUseCCD(const bool bUseCCD, const uint32 GroupId=0)
Definition NewtonEvolution.h:157
TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintRules()
Definition NewtonEvolution.h:125
void DoNewtonStep(const int32 max_it_newton, const FSolverReal newton_tol, const int32 max_it_cg, const FSolverReal cg_tol, Func1 P, Func2 dP, const FSolverReal time, const FSolverReal dt, const TArray< TArray< TVector< int32, 2 > > > &incident_elements, const TArray< FSolverReal > &nodal_mass, Func3 set_bcs, Func4 project_bcs, Func5 add_external_force, Func6 update_position_based_state, FSolverParticles &InParticles, TArray< FSolverReal > &residual_norm, bool use_cg=false, FSolverReal cg_prctg_reduce=0, bool no_verbose=false)
Definition NewtonEvolution.cpp:342
const TPBDActiveView< FSolverCollisionParticles > & CollisionParticlesActiveView()
Definition NewtonEvolution.h:92
const bool Collided(int32 index)
Definition NewtonEvolution.h:160
TFunction< void(FSolverParticles &, const FSolverReal, const int32)> & GetForceFunction(const uint32 GroupId=0)
Definition NewtonEvolution.h:132
const FSolverParticles & Particles() const
Definition NewtonEvolution.h:67
const TArray< FSolverVec3 > & GetCollisionNormals() const
Definition NewtonEvolution.h:164
int32 GetPostCollisionConstraintRuleRangeSize(int32 Offset) const
Definition NewtonEvolution.h:114
FVelocityAndPressureField & GetVelocityAndPressureField(const uint32 GroupId=0)
Definition NewtonEvolution.h:138
CHAOS_API void InitFEM()
Definition NewtonEvolution.cpp:198
void ActivateConstraintRuleRange(int32 Offset, bool bActivate)
Definition NewtonEvolution.h:118
void SetCoefficientOfFriction(const FSolverReal CoefficientOfFriction, const uint32 GroupId=0)
Definition NewtonEvolution.h:148
const TPBDActiveView< FSolverParticles > & ParticlesActiveView()
Definition NewtonEvolution.h:69
TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & PostCollisionConstraintRules()
Definition NewtonEvolution.h:127
const TFunction< void(FSolverParticles &, const FSolverReal, const int32)> & GetForceFunction(const uint32 GroupId=0) const
Definition NewtonEvolution.h:133
const TArray< FSolverVec3 > & GetCollisionContacts() const
Definition NewtonEvolution.h:163
CHAOS_API int32 AddParticleRange(int32 NumParticles, uint32 GroupId, bool bActivate)
Definition NewtonEvolution.cpp:224
~FNewtonEvolution()
Definition NewtonEvolution.h:49
FSolverReal GetDamping(const uint32 GroupId=0) const
Definition NewtonEvolution.h:150
const TArray< uint32 > & CollisionParticleGroupIds() const
Definition NewtonEvolution.h:91
int32 GetConstraintInitRangeSize(int32 Offset) const
Definition NewtonEvolution.h:112
FSolverParticles & Particles()
Definition NewtonEvolution.h:68
const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintRules() const
Definition NewtonEvolution.h:124
CHAOS_API void ResetCollisionParticles(int32 NumParticles=0)
Definition NewtonEvolution.cpp:255
CHAOS_API int32 AddConstraintRuleRange(int32 NumConstraints, bool bActivate)
Definition NewtonEvolution.cpp:292
void ActivateCollisionParticleRange(int32 Offset, bool bActivate)
Definition NewtonEvolution.h:83
void ActivateConstraintInitRange(int32 Offset, bool bActivate)
Definition NewtonEvolution.h:117
FSolverCollisionParticles & CollisionParticles()
Definition NewtonEvolution.h:90
CHAOS_API int32 AddConstraintInitRange(int32 NumConstraints, bool bActivate)
Definition NewtonEvolution.cpp:283
const TArray< uint32 > & ParticleGroupIds() const
Definition NewtonEvolution.h:73
FSolverReal GetTime() const
Definition NewtonEvolution.h:166
const TArray< bool > & GetCollisionStatus()
Definition NewtonEvolution.h:162
bool GetUseCCD(const uint32 GroupId=0) const
Definition NewtonEvolution.h:156
CHAOS_API void AdvanceOneTimeStep(const FSolverReal Dt, const bool bSmoothDt=true)
Definition NewtonEvolution.cpp:684
void SetCollisionThickness(const FSolverReal CollisionThickness, const uint32 GroupId=0)
Definition NewtonEvolution.h:145
void ResetConstraintRules()
Definition NewtonEvolution.h:96
void SetGravity(const FSolverVec3 &Acceleration, const uint32 GroupId=0)
Definition NewtonEvolution.h:136
FSolverReal GetCoefficientOfFriction(const uint32 GroupId=0) const
Definition NewtonEvolution.h:147
const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & PostCollisionConstraintRules() const
Definition NewtonEvolution.h:126
CHAOS_API void WriteOutputLog(const int32 Frame)
Definition NewtonEvolution.cpp:204
void SetLocalDamping(const FSolverReal LocalDamping, const uint32 GroupId=0)
Definition NewtonEvolution.h:154
void SetCollisionKinematicUpdateFunction(TFunction< void(FSolverCollisionParticles &, const FSolverReal, const FSolverReal, const int32)> KinematicUpdate)
Definition NewtonEvolution.h:130
void ComputeNegativeBackwardEulerResidual(const FSolverParticles &InParticles, const TArray< TArray< TVector< int32, 2 > > > &IncidentElements, const TArray< FSolverReal > &NodalMass, const TArray< FSolverVec3 > &Vn, const FSolverParticles &Xn, Func1 P, Func2 AddExternalForce, const FSolverReal Time, const FSolverReal Dt, TArray< FSolverVec3 > &Residual)
Definition NewtonEvolution.cpp:311
const TArray< TFunction< void(FSolverParticles &, const FSolverReal)> > & ConstraintInits() const
Definition NewtonEvolution.h:122
Definition SoftsSolverCollisionParticles.h:10
Definition PBDSoftsSolverParticles.h:20
Definition VelocityField.h:17
Definition ArrayCollectionArray.h:15
Definition ArrayCollection.h:10
uint32 Size() const
Definition ArrayCollection.h:66
Definition PBDActiveView.h:47
Definition AndroidPlatformMisc.h:14
Definition UniquePtr.h:107
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
Definition NewtonEvolution.h:20
TArray< Chaos::Softs::CorotatedCache< FSolverReal > > CorotatedCache
Definition NewtonEvolution.h:21