## 2238 Reputation

19 years, 90 days

## The Physics package and powers of Arrays...

Maple 2017

For an Array A, say, and some positive integer n, say, Maple interpretes A^n as raising each entry separately to the same power n. Without the Physics package loaded, A^n can also be written as A . A . ... . A (n times). But with the Physics package loaded, this equality is broken (at least in Maple 2017): If A is a 2D square Array, A . A all of a sudden is no longer equal to A^2, but rather to convert(A,Matrix)^2, i.e., to the square of the Array considered as a Matrix. The presence of the dot operator seems to make the Physics enviroment convert A to a Matrix. This seems to me to be a bug.

## Problem with Physics:-Define...

Maple 2017

Consider the following expression (omega being the socalled minimal spin connection in the vierbein formalism of general relativity):

```with(Physics):
+e_[~rho,c]*(d_[mu](e_[rho,d]) - d_[rho](e_[mu,d]))
-e_[~rho,d]*(d_[mu](e_[rho,c]) - d_[rho](e_[mu,c]))
)
-1/2*e_[~a,mu]*e_[~rho,c]*e_[~sigma,d]*(d_[rho](e_[sigma,a]) - d_[sigma](e_[rho,a]));

The Define command raises "Error, (in Physics:-Define) numeric exception: division by zero" in Schwarschild spacetime (loaded with g_[sc]), but not, say, in Tolman spacetime (loaded with g_[tolman]). Furthermore, if either the first two terms, or the last term, are/is removed in omega, then no error is raised in Schwarzschild spacetime. What is going on?

## Mixed type Levi-Civita's...

Maple 2017

I have two tensors, E_ and F_ below, that I believe should be equal. But they are not, and I cannot understand why. The problem does not appear in, say, Schwarschild spacetime, but it appears in Boyer-Lindquist spacetime, metric [5,29,1]; perhaps it appears only if the vierbein is nondiagonal?

```restart:
with(Physics):
g_[[5,29,1]];   # The Boyer-Lindquist metric```

Set up galilean and nongalilean Levi-Civita's, respectively, following the recipe given elsewhere:

```Define(varepsilon[a,b,c,d] = Array((1..4)\$4,rhs(LeviCivita[nonzero])),quiet):
Setup(levicivita = nongalilean):
# Checking that the Levi-Civita's are indeed different
varepsilon[1,2,3,4];   # The galilean case
LeviCivita[1,2,3,4];   # The nongalilean case```

Define the two tensors E_ and F_, using mixed type Levi-Civita's for the latter:

```Define(
E_[~a,mu] = varepsilon[~a,~b,~c,~d]*LeviCivita[mu,nu,rho,sigma]*e_[b,~nu]*e_[c,~rho]*e_[d,~sigma],
F_[~a,mu] = varepsilon[~a,b,c,d]*LeviCivita[mu,~nu,~rho,~sigma]*e_[~b,nu]*e_[~c,rho]*e_[~d,sigma]
,quiet):
E_[definition];
F_[definition];```

Compare the two expressions, which should be equal, I believe.

```expr := simplify(TensorArray(E_[~a,mu] - F_[~a,mu])) assuming a::real,theta > 0,theta < Pi;
eval(expr,{a = 1,m = 1,r = 2,theta = Pi/4});   # Just to make the difference completely obvious```

[I have trouble copy-pasting the output from these two lines, so you will have to execute the worksheet provided below to see it.]

However, they are not equal. Why not?

Maple 2017

In the realm of tetrads where both world indices and Lorentz indices are present, contractions, say, using simultaneously the Minkowskian (galilean) Levi-Civita symbol,

and the curvilinear Levi-Civita (pseudo-)tensor,

can be considered. Although each of the two types of Levi-Civitas can easily be obtained separately by specifying Setup(levicivita = galilean) or Setup(levicivita = nongalilean), I cannot figure out how to have them both available at the same time. Any suggestions?

PS: I am, of course, aware of the fact that the two Levi-Civitas are related by some appropiate square-root of the determinant of the metric, but I have no desire to fiddle around with explicit such determinants if they can be avoided.

`expand(gamma_[definition]);`