conatus.expert.symmetry_breaking_check

conatus.expert.symmetry_breaking_check(solver, sol, *, dense_max=2000, unstable_tol, coupling_tol, symmetry_tol=1e-10)[source]

Stability of a reflection-symmetric equilibrium (R u = u) in each isotypic component of the reflection R: the Jacobian commutes with R, so its spectrum splits into the symmetric block (R v = v, what a subspace computation sees) and the antisymmetric block (R v = −v, invisible there). Both blocks are computed (dense, size ≤ dense_max, explicit). The cross blocks (sym → anti and anti → sym) are measured; the check is refused if their norm relative to the diagonal blocks exceeds coupling_tol. An eigenvalue counts as unstable if Re λ > unstable_tol (explicit, reported). The antisymmetric block holds the marginal translation mode ∂x u (λ ≈ 0): it is not identified and removed; it stays out of the count only because its Re λ is below unstable_tol (so unstable_tol must exceed its numerical |Re λ|). The solution must satisfy max|R u − u| <= symmetry_tol · max|u| (declared, returned).

Parameters:
  • sol (ECSSolution)

  • dense_max (int)

  • unstable_tol (float)

  • coupling_tol (float)

  • symmetry_tol (float)

Return type:

dict