Welcome to Cadabra Q&A, where you can ask questions and receive answers from other members of the community.
+1 vote

Hi, I wanted to compute the metric of AdS{d+1} through its embedding in \mathbb{R}^{d+2}. When evaluating the components of the induced metric as below, it ends up with components that still contain derivatives, i.e. things like \partial{\phi}{\cos{\phi}}, whereas if I compute the derivative directly, e.g.

ll :=\partial_{\phi}{\cos{\phi}}
evaluate(ll);

it evaluates it correctly. So how do I evaluate these derivative if I have all the component together in an expression?

{t,\rho,\phi}::Coordinate;
{A,B}::Indices(higher,values={0,1,2,3}, position=fixed);
{\mu, \nu, \sigma, \kappa,\alpha,\beta,\gamma}::Indices(lower,values={t,\rho,\phi}, position=fixed);
X^{A}::Depends(t,\rho,\phi);

\partial{#}::PartialDerivative;

X^{A}::Depends(t,\rho,\phi,\partial_{\nu}{#});
g_{A B}::Metric(higher).
g^{A B}::InverseMetric(higher).

G_{\mu \nu}::Metric(lower).
G^{\mu \nu}::InverseMetric(lower).


metricRdp2 := [
g_{0 2} = 0, g_{0 3} = 0, g_{0 4} = 0,
g_{0 1} = 0, g_{1 2} = 0, g_{1 3} = 0,g_{1 4} = 0,
g_{2 3} = 0,g_{2 4} = 0,g_{3 4}= 0,  g_{4 4} = -1, g_{0 0} = -1, 
g_{1 1} = 1, g_{2 2} = 1, g_{3 3} = -1];

global2 := [ X^{0} = R \cosh{\rho} \cos{t}, 
X^{3} = R \cosh{\rho} \sin{t}, 
X^{1} = R \sinh{\rho} \sin{\phi},
X^{2} = R \sinh{\rho} \cos{\phi}];

cc := G_{\mu \nu} = \partial_{\mu}{X^{A}}\partial_{\nu}{X^{B}}g_{A B};

ex2 := G_{\mu \nu}:
substitute(ex2,cc);

evaluate(ex2)
canonicalise(ex2)
substitute(ex2,metricRdp2)
substitute(ex2,global2)
unwrap(ex2)
collect_factors(ex2);
in General questions by (240 points)

1 Answer

+2 votes
 
Best answer

After your substitute(ex2, cc), you should simply be able to do

evaluate(ex2, join(metricRdp2, global2));

This evaluates the components of the expression ex2 using the rules in metricRdp2 and global2.

by (84.7k points)
selected by

Oh I now only understood that rules written this way, are python lists of rules.. Thanks!!

Well, they are not, they are Cadabra lists. Both metricRdp2 and global2 are Cadabra Ex objects, containing a list. You can join these using join. There is no such thing as a join function for Python lists.

...