constraints.types.base.Constraint

constraints.types.base.Constraint(weight=1.0)

Base class for geometric constraints.

Constraints are represented as residual equations c(x) = 0. The Jacobian ∂c/∂x is computed via AD over the flat residual function in dof.py, not per-constraint.

Subclasses must implement: - compute_residual(): Returns constraint violation c(x) - dof_reduction(): Number of DOF this constraint removes - get_parameters(): List of parameters involved in this constraint

Attributes

Name Type Description
weight float Scalar applied to this constraint’s residuals in penalty-based optimization. Use to normalize across types or scales — e.g. weight=1/distance makes a DistanceConstraint residual dimensionless. Defaults to 1.0.

Methods

Name Description
compute_residual Compute constraint residual c(x).
dof_reduction Number of degrees of freedom this constraint removes.
get_parameters Get list of parameters involved in this constraint.

compute_residual

constraints.types.base.Constraint.compute_residual(param_values)

Compute constraint residual c(x).

Parameters

Name Type Description Default
param_values dict[str, Array] Dictionary mapping parameter names to their current values required

Returns

Name Type Description
Array Constraint residual (scalar or array). Zero means constraint is satisfied.

dof_reduction

constraints.types.base.Constraint.dof_reduction()

Number of degrees of freedom this constraint removes.

Returns

Name Type Description
int Number of independent constraint equations (typically 1)

get_parameters

constraints.types.base.Constraint.get_parameters()

Get list of parameters involved in this constraint.

Returns

Name Type Description
list[Parameter] List of Parameter objects that this constraint depends on