sim.contact_solve.SapContactSolve#
- class sim.contact_solve.SapContactSolve(model: SapModel, *, max_rigid_contact: int = 128, contact_beta: float = 1.0, contact_sigma: float = 0.001, contact_tau_d: float = 0.1, block_size: int | None = None, diag_shift: float = 0.0, contact_assembly_tile_size: int = 256, solve_precision: str = 'fp64', linear_solve_precision: str = 'fp64')[source]#
Bases:
objectSAP SAP stage2 contact solve in SAP-order generalized velocities.
This class consumes SapContactJacobianResult buffers. Runtime collision detection stays outside this module and is adapted to SapContacts before entering the solver components.
- __init__(model: SapModel, *, max_rigid_contact: int = 128, contact_beta: float = 1.0, contact_sigma: float = 0.001, contact_tau_d: float = 0.1, block_size: int | None = None, diag_shift: float = 0.0, contact_assembly_tile_size: int = 256, solve_precision: str = 'fp64', linear_solve_precision: str = 'fp64')[source]#
Methods
__init__(model, *[, max_rigid_contact, ...])evaluate_itemwise(contact_result, state, ...)Evaluate itemwise SAP objective, gradient, and line-search quantities for diagnostics or solver internals.
prepare(contact_result, state, control, dt, ...)Prepare contact-solve buffers for the current active contact set before iterative solve evaluation.
solve(contact_result, state, control, dt, ...)Solve the SAP velocity objective for the active contacts and write the next generalized velocity in SAP order.