feynlag.vacuum.diagonalize.Rotation¶
- class feynlag.vacuum.diagonalize.Rotation(old_fields, new_fields, matrix, kind='orthogonal')[source]¶
A change of basis
new = R · old.- Parameters:
old_fields – weak-basis symbols.
new_fields – physical-basis symbols (created by the caller — physics names like
h,H,G0,A0).matrix – the rotation
Rwithnew_i = Σ_j R[i,j] old_j.kind – ‘orthogonal’ (default), ‘unitary’ or ‘general’ — selects how the inverse is computed (
Rᵀ,R†,R⁻¹).
Methods
__init__(old_fields, new_fields, matrix[, kind])apply(M)R M R⁻¹-conjugated matrix in the new basis (for symmetric M and orthogonal R this isR M Rᵀ).check(M[, simplifier])Verify that this rotation diagonalizes
M.masses_squared(M[, simplifier])Diagonal entries of
R M R⁻¹(physical masses², new-field order).substitution()Dict rewriting old (weak) fields in terms of new (physical) ones:
old_i → Σ_j (R⁻¹)[i,j] new_j.Attributes
inverse