gs.options.SAPCouplerOptions#

Configures the inter-solver coupler built on the Semi-Analytic Primal (SAP) contact solver, including its solver iteration counts and convergence tolerances.

class genesis.options.solvers.SAPCouplerOptions(*, n_sap_iterations: int = 5, n_pcg_iterations: int = 100, n_linesearch_iterations: int = 10, sap_convergence_atol: float = 1e-06, sap_convergence_rtol: float = 1e-05, sap_taud: float = 0.1, sap_beta: float = 1.0, sap_sigma: float = 0.001, pcg_threshold: float = 1e-06, linesearch_ftol: float = 1e-06, linesearch_max_step_size: float = 1.5, hydroelastic_stiffness: float = 100000000.0, point_contact_stiffness: float = 100000000.0, fem_floor_contact_type: Literal['tet', 'vert', 'none'] = 'tet', enable_fem_self_tet_contact: bool = True, rigid_floor_contact_type: Literal['tet', 'vert', 'none'] = 'tet', enable_rigid_fem_contact: bool = True, rigid_rigid_contact_type: Literal['tet', 'vert', 'none'] = 'tet') None[source]#

Options configuring the inter-solver coupling for the Semi-Analytic Primal (SAP) contact solver used in Drake.

Parameters:
  • n_sap_iterations (int, optional) – Number of iterations for the SAP solver. Defaults to 5.

  • n_pcg_iterations (int, optional) – Number of iterations for the Preconditioned Conjugate Gradient solver. Defaults to 100.

  • n_linesearch_iterations (int, optional) – Max number of iterations for the line search solver. Defaults to 10.

  • sap_convergence_atol (float, optional) – Absolute tolerance for SAP convergence. Defaults to 1e-6.

  • sap_convergence_rtol (float, optional) – Relative tolerance for SAP convergence. Defaults to 1e-5.

  • sap_taud (float, optional) – Dissipation time scale for SAP. Defaults to 0.1.

  • sap_beta (float, optional) – Normal regularization parameter for SAP. Defaults to 1.0.

  • sap_sigma (float, optional) – Friction regularization parameter for SAP. Defaults to 1e-3.

  • pcg_threshold (float, optional) – Threshold for the Preconditioned Conjugate Gradient solver. Defaults to 1e-6.

  • linesearch_ftol (float, optional) – Line search sufficient value close to zero for exact linesearch. Defaults to 1e-6.

  • linesearch_max_step_size (float, optional) – Maximum step size for exact linesearch. Defaults to 1.5.

  • hydroelastic_stiffness (float, optional) – Stiffness for hydroelastic contact. Defaults to 1e8.

  • point_contact_stiffness (float, optional) – Stiffness for point contact. Defaults to 1e8.

  • fem_floor_contact_type (str, optional) – Type of contact against the floor. Defaults to “tet”. Can be “tet”, “vert”, or “none”. TET would be the default choice for most cases. VERT would be preferable when the mesh is very coarse, such as a single cube or a tetrahedron.

  • enable_fem_self_tet_contact (bool, optional) – Whether to use tetrahedral based self-contact. Defaults to True.

  • rigid_rigid_type (str, optional) – Type of contact between rigid bodies. Defaults to “tet”. Can be “tet”, “vert”, or “none”.

  • rigid_floor_contact_type (str, optional) – Type of contact against the floor. Defaults to “tet”. Can be “tet”, “vert”, or “none”. Tet would be the default choice for most cases. Vert would be preferable when the mesh is very coarse, such as a single cube or a tetrahedron.

  • enable_rigid_fem_contact (bool, optional) – Whether to enable coupling between rigid and FEM solvers. Defaults to True.