cdb.core.component
Simple access to component expressions
This package contains helper functions to access components of tensors, as they are computed by e.g. evaluate
.get_component(ex: Ex, component: Ex) -> Ex
Extract a single component from an expression.
Gets a component of an expression including those from an evaluate
command.
The component
argument for vector-like objects should be e.g. $t$
,
and for higher-rank tensors like e.g. $x, t$
.{t,x}::Coordinate;
{i,j}::Indices(values={t,x});
ex:= b_{i} = a_{i};
evaluate(ex, $a_{t}=1, a_{x}=2$, rhsonly=True);
get_component(ex, $x$);
\(\displaystyle{}\text{Property Coordinate attached to }\left[t, x\right].\)
\(\displaystyle{}\text{Property Indices(position=free) attached to }\left[i, j\right].\)
\(\displaystyle{}b_{i} = a_{i}\)
b_{i} = a_{i}
\(\displaystyle{}b_{i} = \square{}_{i}\left\{\begin{aligned}\square{}_{t}& = 1\\[-.5ex]
\square{}_{x}& = 2\\[-.5ex]
\end{aligned}\right.
\)
b_{i} = \components_{i}({{t} = 1, {x} = 2})
\(\displaystyle{}b_{x} = 2\)
b_{x} = 2
ex := 0 =
6(\Phi)**1 a2 k_{\nu} k_{\mu}-
(\Phi)**1 b2 \eta^{\sigma \rho} \partial_{\rho}(z) \omega (c)**(-1) B_{\nu \sigma} k_{\mu}-
2(\Phi)**1 a2 k_{\mu} k_{\nu} +
(\Phi)**1 b2 \partial_{\sigma}(z) \omega (c)**(-1) B_{\nu \mu} k_{\rho} \eta^{\sigma \rho} +
(\Phi)**1 b2 \eta^{\sigma \rho} \partial_{\rho}(z) \omega (c)**(-1) B_{\nu \mu} k_{\sigma}-
(\Phi)**1 b2 \partial_{\alpha}(z) \omega (c)**(-1) B_{\rho \mu} k_{\nu} \eta^{\alpha \rho} -
1/2 A_{\rho \sigma} k_{\nu} A_{\beta \alpha} k_{\mu} \eta^{\beta \rho} \eta^{\sigma \alpha} -
1/2 A_{\rho \sigma} A_{\beta \alpha} k_{\nu} k_{\mu} \eta^{\beta \rho} \eta^{\sigma \alpha} +
1/4 A_{\alpha \beta} k_{\nu} A_{\sigma \rho} k_{\mu} \eta^{\beta \sigma} \eta^{\rho \alpha};
get_component(ex, $t, t$);
\(\displaystyle{}0 = 6{\Phi}^{1} {a_{2}} k_{\nu} k_{\mu}-{\Phi}^{1} {b_{2}} \eta^{\sigma \rho} \partial_{\rho}\left(z\right) \omega {c}^{-1} B_{\nu \sigma} k_{\mu}-2{\Phi}^{1} {a_{2}} k_{\mu} k_{\nu}+{\Phi}^{1} {b_{2}} \partial_{\sigma}\left(z\right) \omega {c}^{-1} B_{\nu \mu} k_{\rho} \eta^{\sigma \rho}+{\Phi}^{1} {b_{2}} \eta^{\sigma \rho} \partial_{\rho}\left(z\right) \omega {c}^{-1} B_{\nu \mu} k_{\sigma}-{\Phi}^{1} {b_{2}} \partial_{\alpha}\left(z\right) \omega {c}^{-1} B_{\rho \mu} k_{\nu} \eta^{\alpha \rho} - \frac{1}{2}A_{\rho \sigma} k_{\nu} A_{\beta \alpha} k_{\mu} \eta^{\beta \rho} \eta^{\sigma \alpha} - \frac{1}{2}A_{\rho \sigma} A_{\beta \alpha} k_{\nu} k_{\mu} \eta^{\beta \rho} \eta^{\sigma \alpha}+\frac{1}{4}A_{\alpha \beta} k_{\nu} A_{\sigma \rho} k_{\mu} \eta^{\beta \sigma} \eta^{\rho \alpha}\)
0 = 6(\Phi)**1 a2 k_{\nu} k_{\mu}-(\Phi)**1 b2 \eta^{\sigma \rho} \partial_{\rho}(z) \omega (c)**(-1) B_{\nu \sigma} k_{\mu}-2(\Phi)**1 a2 k_{\mu} k_{\nu} + (\Phi)**1 b2 \partial_{\sigma}(z) \omega (c)**(-1) B_{\nu \mu} k_{\rho} \eta^{\sigma \rho} + (\Phi)**1 b2 \eta^{\sigma \rho} \partial_{\rho}(z) \omega (c)**(-1) B_{\nu \mu} k_{\sigma}-(\Phi)**1 b2 \partial_{\alpha}(z) \omega (c)**(-1) B_{\rho \mu} k_{\nu} \eta^{\alpha \rho} - 1/2 A_{\rho \sigma} k_{\nu} A_{\beta \alpha} k_{\mu} \eta^{\beta \rho} \eta^{\sigma \alpha} - 1/2 A_{\rho \sigma} A_{\beta \alpha} k_{\nu} k_{\mu} \eta^{\beta \rho} \eta^{\sigma \alpha} + 1/4 A_{\alpha \beta} k_{\nu} A_{\sigma \rho} k_{\mu} \eta^{\beta \sigma} \eta^{\rho \alpha}
\(\displaystyle{}0 = 6{\Phi}^{1} {a_{2}} k_{t} k_{t}-{\Phi}^{1} {b_{2}} \eta^{\sigma \rho} \partial_{\rho}\left(z\right) \omega {c}^{-1} B_{t \sigma} k_{t}-2{\Phi}^{1} {a_{2}} k_{t} k_{t}+{\Phi}^{1} {b_{2}} \partial_{\sigma}\left(z\right) \omega {c}^{-1} B_{t t} k_{\rho} \eta^{\sigma \rho}+{\Phi}^{1} {b_{2}} \eta^{\sigma \rho} \partial_{\rho}\left(z\right) \omega {c}^{-1} B_{t t} k_{\sigma}-{\Phi}^{1} {b_{2}} \partial_{\alpha}\left(z\right) \omega {c}^{-1} B_{\rho t} k_{t} \eta^{\alpha \rho} - \frac{1}{2}A_{\rho \sigma} k_{t} A_{\beta \alpha} k_{t} \eta^{\beta \rho} \eta^{\sigma \alpha} - \frac{1}{2}A_{\rho \sigma} A_{\beta \alpha} k_{t} k_{t} \eta^{\beta \rho} \eta^{\sigma \alpha}+\frac{1}{4}A_{\alpha \beta} k_{t} A_{\sigma \rho} k_{t} \eta^{\beta \sigma} \eta^{\rho \alpha}\)
0 = 6(\Phi)**1 a2 k_{t} k_{t}-(\Phi)**1 b2 \eta^{\sigma \rho} \partial_{\rho}(z) \omega (c)**(-1) B_{t \sigma} k_{t}-2(\Phi)**1 a2 k_{t} k_{t} + (\Phi)**1 b2 \partial_{\sigma}(z) \omega (c)**(-1) B_{t t} k_{\rho} \eta^{\sigma \rho} + (\Phi)**1 b2 \eta^{\sigma \rho} \partial_{\rho}(z) \omega (c)**(-1) B_{t t} k_{\sigma}-(\Phi)**1 b2 \partial_{\alpha}(z) \omega (c)**(-1) B_{\rho t} k_{t} \eta^{\alpha \rho} - 1/2 A_{\rho \sigma} k_{t} A_{\beta \alpha} k_{t} \eta^{\beta \rho} \eta^{\sigma \alpha} - 1/2 A_{\rho \sigma} A_{\beta \alpha} k_{t} k_{t} \eta^{\beta \rho} \eta^{\sigma \alpha} + 1/4 A_{\alpha \beta} k_{t} A_{\sigma \rho} k_{t} \eta^{\beta \sigma} \eta^{\rho \alpha}
remove_zero_components(ex: Ex) -> Ex
Remove all components of an expression that are equal to zero.
{x, y, z}::Coordinate.
{i, j}::Indices(values={x, y, z}, position=fixed).
ex := a_{i}a_{j};
evaluate(ex, $a_{x} = k, a_{y} = l, a_{z} = m$)
substitute(ex, $k m -> 0$);
remove_zero_components(ex);
\(\displaystyle{}a_{i} a_{j}\)
a_{i} a_{j}
\(\displaystyle{}\square{}_{i}{}_{j}\left\{\begin{aligned}\square{}_{x}{}_{x}& = {k}^{2}\\[-.5ex]
\square{}_{x}{}_{y}& = k l\\[-.5ex]
\square{}_{x}{}_{z}& = 0\\[-.5ex]
\square{}_{y}{}_{x}& = k l\\[-.5ex]
\square{}_{y}{}_{y}& = {l}^{2}\\[-.5ex]
\square{}_{y}{}_{z}& = l m\\[-.5ex]
\square{}_{z}{}_{x}& = 0\\[-.5ex]
\square{}_{z}{}_{y}& = l m\\[-.5ex]
\square{}_{z}{}_{z}& = {m}^{2}\\[-.5ex]
\end{aligned}\right.
\)
\components_{i j}({{x, x} = (k)**2, {x, y} = k l, {x, z} = 0, {y, x} = k l, {y, y} = (l)**2, {y, z} = l m, {z, x} = 0, {z, y} = l m, {z, z} = (m)**2})
\(\displaystyle{}\square{}_{i}{}_{j}\left\{\begin{aligned}\square{}_{x}{}_{x}& = {k}^{2}\\[-.5ex]
\square{}_{x}{}_{y}& = k l\\[-.5ex]
\square{}_{y}{}_{x}& = k l\\[-.5ex]
\square{}_{y}{}_{y}& = {l}^{2}\\[-.5ex]
\square{}_{y}{}_{z}& = l m\\[-.5ex]
\square{}_{z}{}_{y}& = l m\\[-.5ex]
\square{}_{z}{}_{z}& = {m}^{2}\\[-.5ex]
\end{aligned}\right.
\)
\components_{i j}({{x, x} = (k)**2, {x, y} = k l, {y, x} = k l, {y, y} = (l)**2, {y, z} = l m, {z, y} = l m, {z, z} = (m)**2})
components_to_subrule(ex: Ex) -> Ex
Turn a component expression (the result of a \texttt{evaluate
command)
into a set of substitution rules}{x, y, z}::Coordinate.
{i, j}::Indices(values={x, y, z}, position=fixed).
ex := b_{i j} = a_{i}a_{j};
evaluate(ex, $a_{x} = k, a_{y} = l, a_{z} = m$, rhsonly=True);
# substitute(ex, $k m -> 0$);
components_to_subrule(ex);
\(\displaystyle{}b_{i j} = a_{i} a_{j}\)
b_{i j} = a_{i} a_{j}
\(\displaystyle{}b_{i j} = \square{}_{i}{}_{j}\left\{\begin{aligned}\square{}_{x}{}_{x}& = {k}^{2}\\[-.5ex]
\square{}_{x}{}_{y}& = k l\\[-.5ex]
\square{}_{x}{}_{z}& = k m\\[-.5ex]
\square{}_{y}{}_{x}& = k l\\[-.5ex]
\square{}_{y}{}_{y}& = {l}^{2}\\[-.5ex]
\square{}_{y}{}_{z}& = l m\\[-.5ex]
\square{}_{z}{}_{x}& = k m\\[-.5ex]
\square{}_{z}{}_{y}& = l m\\[-.5ex]
\square{}_{z}{}_{z}& = {m}^{2}\\[-.5ex]
\end{aligned}\right.
\)
b_{i j} = \components_{i j}({{x, x} = (k)**2, {x, y} = k l, {x, z} = k m, {y, x} = k l, {y, y} = (l)**2, {y, z} = l m, {z, x} = k m, {z, y} = l m, {z, z} = (m)**2})
\(\displaystyle{}\left[b_{x x} \rightarrow {k}^{2}, b_{x y} \rightarrow k l, b_{x z} \rightarrow k m, b_{y x} \rightarrow k l, b_{y y} \rightarrow {l}^{2}, b_{y z} \rightarrow l m, b_{z x} \rightarrow k m, b_{z y} \rightarrow l m, b_{z z} \rightarrow {m}^{2}\right]\)
{b_{x x} -> (k)**2, b_{x y} -> k l, b_{x z} -> k m, b_{y x} -> k l, b_{y y} -> (l)**2, b_{y z} -> l m, b_{z x} -> k m, b_{z y} -> l m, b_{z z} -> (m)**2}