PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
Loading...
Searching...
No Matches
Config.h
Go to the documentation of this file.
1
8
9#ifndef PBAT_SIM_ALGORITHM_NEWTON_CONFIG_H
10#define PBAT_SIM_ALGORITHM_NEWTON_CONFIG_H
11
12#include "pbat/Aliases.h"
13
14// Forward declarations
15namespace pbat::io {
16 class Archive;
17} // namespace pbat::io
18
20
24struct Config
25{
26 int nSubsteps{1};
27
30
32 Scalar gtol{1e-4};
34 Scalar rtol{1e-6};
35
39
40 Scalar muC{1e6};
41
47 Config& WithSubsteps(int substeps);
58 int maxAugmentedLagrangianIterations,
59 int maxNewtonIterations,
61 int maxLinearSolverIterations,
62 Scalar rtol);
70 Config& WithLineSearch(int maxLineSearchIterations, Scalar tauArmijo, Scalar cArmijo);
83
88 void Serialize(io::Archive& archive) const;
93 void Deserialize(io::Archive const& archive);
94};
95
96} // namespace pbat::sim::algorithm::newton
97
98#endif // PBAT_SIM_ALGORITHM_NEWTON_CONFIG_H
Archive class for reading and writing data to HDF5 files.
Definition Archive.h:29
Namespace for I/O.
Definition Archive.cpp:7
Namespace for Newton simulation algorithms.
Definition Config.cpp:8
double Scalar
Scalar type.
Definition Aliases.h:18
Newton integrator configuration.
Definition Config.h:25
void Deserialize(io::Archive const &archive)
Deserialize from HDF5 group.
Definition Config.cpp:108
int nMaxNewtonIterations
Maximum number of iterations for the Newton integrator.
Definition Config.h:31
Scalar tauArmijo
Armijo step size decrease factor.
Definition Config.h:37
Scalar muC
Uniform collision penalty.
Definition Config.h:40
int nSubsteps
Number of substeps for the Newton integrator.
Definition Config.h:26
int nMaxLineSearchIterations
Maximum number of iterations for the line search.
Definition Config.h:36
Config & WithLineSearch(int maxLineSearchIterations, Scalar tauArmijo, Scalar cArmijo)
Set the line search parameters for the Newton integrator.
Definition Config.cpp:31
Config & WithSubsteps(int substeps)
Set the number of substeps for the Newton integrator.
Definition Config.cpp:10
int nMaxAugmentedLagrangianIterations
Number of dual iterations for the augmented Lagrangian method.
Definition Config.h:28
Scalar cArmijo
Armijo slope scale.
Definition Config.h:38
Scalar rtol
Relative tolerance for the linear solver.
Definition Config.h:34
Scalar gtol
Gradient norm threshold for convergence.
Definition Config.h:32
Config & WithContactParameters(Scalar muC)
Set the contact parameters for the Newton integrator.
Definition Config.cpp:39
Config & WithConvergence(int maxAugmentedLagrangianIterations, int maxNewtonIterations, Scalar gtol, int maxLinearSolverIterations, Scalar rtol)
Set the convergence parameters for the Newton integrator.
Definition Config.cpp:16
int nMaxLinearSolverIterations
Maximum number of iterations for the linear solver.
Definition Config.h:33
void Serialize(io::Archive &archive) const
Serialize to HDF5 group.
Definition Config.cpp:93
Config & Construct()
Finalize construction of the configuration.
Definition Config.cpp:45