diff options
| author | Sébastien Crozet <sebcrozet@dimforge.com> | 2024-04-14 15:53:35 +0200 |
|---|---|---|
| committer | Sébastien Crozet <sebastien@crozet.re> | 2024-04-30 23:10:46 +0200 |
| commit | 3ddf2441ea6c43aa98718e0ce8650c3b804062d4 (patch) | |
| tree | cb788bf95da707a683fd949d887d071c68934ae6 /src/dynamics/integration_parameters.rs | |
| parent | 15c07cfeb3d59f116b26eec32e4590dc45d6c26c (diff) | |
| download | rapier-3ddf2441ea6c43aa98718e0ce8650c3b804062d4.tar.gz rapier-3ddf2441ea6c43aa98718e0ce8650c3b804062d4.tar.bz2 rapier-3ddf2441ea6c43aa98718e0ce8650c3b804062d4.zip | |
feat: add exact mlcp solver for pais of 2 constraints
Diffstat (limited to 'src/dynamics/integration_parameters.rs')
| -rw-r--r-- | src/dynamics/integration_parameters.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dynamics/integration_parameters.rs b/src/dynamics/integration_parameters.rs index 13b3fde..2788349 100644 --- a/src/dynamics/integration_parameters.rs +++ b/src/dynamics/integration_parameters.rs @@ -1,6 +1,9 @@ use crate::math::Real; use std::num::NonZeroUsize; +pub(crate) static BLOCK_SOLVER_ENABLED: bool = cfg!(feature = "dim2"); +pub(crate) static DISABLE_FRICTION_LIMIT_REAPPLY: bool = false; + /// Parameters for a time-step of the physics engine. #[derive(Copy, Clone, Debug)] #[cfg_attr(feature = "serde-serialize", derive(Serialize, Deserialize))] @@ -50,6 +53,8 @@ pub struct IntegrationParameters { pub num_additional_friction_iterations: usize, /// Number of internal Project Gauss Seidel (PGS) iterations run at each solver iteration (default: `1`). pub num_internal_pgs_iterations: usize, + /// The maximum number of stabilization iterations run at each solver iterations (default: `10`). + pub max_internal_stabilization_iterations: usize, /// Minimum number of dynamic bodies in each active island (default: `128`). pub min_island_size: usize, /// Maximum number of substeps performed by the solver (default: `1`). @@ -194,7 +199,7 @@ impl Default for IntegrationParameters { Self { dt: 1.0 / 60.0, min_ccd_dt: 1.0 / 60.0 / 100.0, - erp: 0.6, + erp: 0.8, damping_ratio: 1.0, joint_erp: 1.0, joint_damping_ratio: 1.0, @@ -202,6 +207,7 @@ impl Default for IntegrationParameters { max_penetration_correction: Real::MAX, prediction_distance: 0.002, num_internal_pgs_iterations: 1, + max_internal_stabilization_iterations: 10, num_additional_friction_iterations: 4, num_solver_iterations: NonZeroUsize::new(4).unwrap(), // TODO: what is the optimal value for min_island_size? |
