On this page

expand_metrics

symbolica.community.idenso Function

expand_metrics(expression: Expression) -> list[tuple[Expression, Expression]]

Expand products around registered metric tensors.

This is a structural expansion only. It neither contracts the metrics nor substitutes a dimension or signature; call simplify_metrics() separately for supported contractions.

Arguments

  • expression: a factorized Spenso-compatible expression.

Returns

(structure, coefficient) pairs distributed around metric factors.

Examples

from symbolica.community.idenso import expand_metrics
from symbolica.community.spenso import Representation, TensorExpression
# Built-in representations are registered automatically on import.
minkowski = Representation.mink(4)
metric = TensorExpression.g(minkowski)
g_mn = metric(minkowski("mu"), minkowski("nu")).to_expression()
g_rs = metric(minkowski("rho"), minkowski("sigma")).to_expression()
g_ab = metric(minkowski("alpha"), minkowski("beta")).to_expression()
factorized = g_mn * (g_rs + g_ab)
terms = expand_metrics(factorized)
sum(structure * coefficient for structure, coefficient in terms) == g_mn * g_rs + g_mn * g_ab