ecterrab

14540 Reputation

24 Badges

20 years, 21 days

MaplePrimes Activity


These are answers submitted by ecterrab

See Workaround for the problem of installing MapleCloud packages in the Windows platform; probably that is your case.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

 

For reasons A and B that I skip here, in cases like this one, I coded to try a particular solution using symmetries, a computationally not-expensive and conceptually simple approach, however not well known by most people. See ?dsolve,details. In Maple, this approach is coded within DEtools[particularsols] for nonlinear equations. I don't have the books with me right now, but it may be explained in the symmetry books by George Bluman or the one by Peter Olver.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

Textbook notation shows "sin^2 x", not "sin^2 (x)" as Mathematica does. I understand the lack of parenthesis in textbook notation is the reason for showing the exponent right after the function's name.

In the DLMF, arguably the main reference for mathematical functions, basically all functions of one argument are displayed without parenthesis. For all of them, one could expect the exponent right after the function's name. On the other hand, in Mathematica, only Log and trig (not arctrig) functions are displayed that way.

This topic you bring is thus more about a convention for displaying powers of trig functions only - shall they be displayed differently than other functions Y/N?

The answer is debatable. I think the relevant things to keep in mind are:

  1. standard notation
  2. consistency
  3. non-ambiguous notation
  4. keep an eye on possible confusion with input notation

That said, consider these images:

These three expressions are mathematically different, the third one actually is a wrong representation of sin(x)^2, but of course valid input that makes sense in some (operator) contexts. So we want a representation for the three of them. In Maple, the second one in the input is actually equal to sin(x)^2.Textbook notation, however, represents the second one in the input, as the third one in the output - mixing these two, against item 3. If we go with what you suggest, we would also have no notation for the first expression in the input unless you suggest that sin^(2) <> sin^2, which for me would be against items 1. and 3. Complicated.

Next two images tell the same, just focusing closer:

These two are different expressions, that also look different in the input and the output. Your suggestion would make the two sides of the inequality look the same. Likewise, consider:

Here again, two different objects are displayed differently in the output - that is good, but your suggestion would make them look the same when translated to LaTeX.

So I see merit in what you say, the habit of writing "sin x" and, therefore, "sin^2 x" (not sin^2 (x)) is a compelling argument towards tex-translating sin(x)^2 to \sin^2 x. However, the computer still handles (sin@@2)(x) and also the (operator form) "sin^2 * x" and we need a representation for those too.

Taking all into account, what do you suggest?

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

Hi
I use TexShop, which is official CTAN standard latex, and having \\ before \end{array} does not tell the compiler to insert a newline. From the image you present, maybe you are using non-CTAN software.

In any case, \\ at the end of the last row is not necessary. I added a line of code to remove it, so what you ask is there in v.859 of the Maplesoft Physics Updates.

Regarding "ps. if the Latex conversion source code could be made public, ..." note Maple code is 100% readable (is that what you call public?). By the way, that is one of the big advantages of Maple with regards to Mathematica; all the library code is readable. In the case of modules (as is the case of Latex), to see it, remember to enter kernelopts(opaquemodules = false). Then, print or showstat will show you any subroutine. If you know what you are doing (Maple and LaTeX knowledge) you can change it to behave the way you prefer.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

To handle non-rational constants using the DifferentialAlgebra package, use the PDEtools:-casesplit command with the diffalg keyword; for details, see casesplit's help page.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

There are several ways of doing vector computations using Dirac's "Bra & Ket" notation. Note first that, whether you use the Vectors package or Dirac's notation directly, if you use unit vectors (e.g. `#mover(mi("i"),mo("&and;"))`, `#mover(mi("j"),mo("&and;"))`, `#mover(mi("k"),mo("&and;"))`), a vector is expressed as the sum of projections onto each axis multiplied by the corresponding unit vectors, not as a sequence of components separated by commas.

 

Load the two related packages

with(Physics); with(Vectors)

 

Set the imaginaryunit as you show

interface(imaginaryunit = I)

I

(1)

One way of accomplishing what you want is to set alias for the unit vectors of the Vectors package, so that they are displayed using Dirac's notation, for example as in

Ket(_i) = _i, Ket(_j) = _j, Ket(_k) = _k

Physics:-Ket(_i) = _i, Physics:-Ket(_j) = _j, Physics:-Ket(_k) = _k

(2)

alias(Physics[Ket](_i) = _i, Physics[Ket](_j) = _j, Physics[Ket](_k) = _k)

 

Input now your Ket(a) and Ket(b) expressions

Ket(a) = (1+I)*_i+_j+I*_k

Physics:-Ket(a) = (1+I)*Physics:-Ket(_i)+Physics:-Ket(_j)+I*Physics:-Ket(_k)

(3)

Ket(b) = 3*_i+(2-2*I)*_k

Physics:-Ket(b) = 3*Physics:-Ket(_i)+(2-2*I)*Physics:-Ket(_k)

(4)

Compute their inner product (for that, you use the dot `.` operator, not the star`*`)

LinearAlgebra:-Transpose(Physics[Ket](b) = 3*Physics[Ket](_i)+(2-2*I)*Physics[Ket](_k)).(Physics[Ket](a) = (1+I)*Physics[Ket](_i)+Physics[Ket](_j)+I*Physics[Ket](_k))

Physics:-Bracket(Physics:-Bra(b), Physics:-Ket(a)) = 5+5*I

(5)

In the above, LinearAlgebra:-Transpose(Physics[Ket](b) = 3*Physics[Ket](_i)+(2-2*I)*Physics[Ket](_k)) = Dagger(Physics[Ket](b) = 3*Physics[Ket](_i)+(2-2*I)*Physics[Ket](_k)), you need this since you are working with complex vectors, and you can use both notations to represent the same thing.

_______________________________________________________________________________

 

Another way to accomplish the same is to use Dirac's notation directly, without using the Vectors package, by setting a discrete basis of dimension 3 - see Physics,Setup  

Setup(quantumbasisdimension = {A = 1 .. 3})

[quantumbasisdimension = {A = 1 .. 3}]

(6)

So this is a projector onto the A basis

Projector(Ket(A))

Sum(Physics:-`*`(Physics:-Ket(A, n), Physics:-Bra(A, n)), n = 1 .. 3)

(7)

and the equivalence between kets of this basis and the input vectors `#mover(mi("i"),mo("&and;"))`, `#mover(mi("j"),mo("&and;"))`, `#mover(mi("k"),mo("&and;"))`, is

_i = Ket(A, 1), _j = Ket(A, 2), _k = Ket(A, 3)

Physics:-Ket(_i) = Physics:-Ket(A, 1), Physics:-Ket(_j) = Physics:-Ket(A, 2), Physics:-Ket(_k) = Physics:-Ket(A, 3)

(8)

To input your expressions you can use

subs(Physics[Ket](_i) = Physics[Ket](A, 1), Physics[Ket](_j) = Physics[Ket](A, 2), Physics[Ket](_k) = Physics[Ket](A, 3), Physics[Ket](a) = (1+I)*Physics[Ket](_i)+Physics[Ket](_j)+I*Physics[Ket](_k))

Physics:-Ket(a) = (1+I)*Physics:-Ket(A, 1)+Physics:-Ket(A, 2)+I*Physics:-Ket(A, 3)

(9)

subs(Physics[Ket](_i) = Physics[Ket](A, 1), Physics[Ket](_j) = Physics[Ket](A, 2), Physics[Ket](_k) = Physics[Ket](A, 3), Physics[Ket](b) = 3*Physics[Ket](_i)+(2-2*I)*Physics[Ket](_k))

Physics:-Ket(b) = 3*Physics:-Ket(A, 1)+(2-2*I)*Physics:-Ket(A, 3)

(10)

The inner product

LinearAlgebra:-Transpose(Physics[Ket](b) = 3*Physics[Ket](A, 1)+(2-2*I)*Physics[Ket](A, 3)).(Physics[Ket](a) = (1+I)*Physics[Ket](A, 1)+Physics[Ket](A, 2)+I*Physics[Ket](A, 3))

Physics:-Bracket(Physics:-Bra(b), Physics:-Ket(a)) = 5+5*I

(11)

_______________________________________________________________________________

 

Finally, a third way to do the same but with the Ket(A, n) vectors looking like the left-hand sides of (8), is to combine both ideas above. For that purpose first undo the alias done in (2)

alias(Ket(_i) = Ket(_i), Ket(_j) = Ket(_j), Ket(_k) = Ket(_k))

 

Next set new alias as in

Ket(_i) = Ket(A, 1), Ket(_j) = Ket(A, 2), Ket(_k) = Ket(A, 3)

Physics:-Ket(_i) = Physics:-Ket(A, 1), Physics:-Ket(_j) = Physics:-Ket(A, 2), Physics:-Ket(_k) = Physics:-Ket(A, 3)

(12)

alias(Physics[Ket](_i) = Physics[Ket](A, 1), Physics[Ket](_j) = Physics[Ket](A, 2), Physics[Ket](_k) = Physics[Ket](A, 3))

 

Entering your vectorial expressions

Ket(a) = (1+I)*Ket(_i)+Ket(_j)+I*Ket(_k)

Physics:-Ket(a) = (1+I)*Physics:-Ket(_i)+Physics:-Ket(_j)+I*Physics:-Ket(_k)

(13)

Ket(b) = 3*Ket(_i)+(2-2*I)*Ket(_k)

Physics:-Ket(b) = 3*Physics:-Ket(_i)+(2-2*I)*Physics:-Ket(_k)

(14)

LinearAlgebra:-Transpose(Physics[Ket](b) = 3*Physics[Ket](_i)+(2-2*I)*Physics[Ket](_k)).(Physics[Ket](a) = (1+I)*Physics[Ket](_i)+Physics[Ket](_j)+I*Physics[Ket](_k))

Physics:-Bracket(Physics:-Bra(b), Physics:-Ket(a)) = 5+5*I

(15)

This third way looks like the first one (equations (2) to (5)) but it is not. In (2) to (5), the operations are actually performed by the Physics:-Vectors package and the dot product of the unit vectors `#mover(mi("i"),mo("&and;"))`, `#mover(mi("j"),mo("&and;"))`, `#mover(mi("k"),mo("&and;"))` while in equations (12) to (15) the operations are performed by the Physics package (top-level) directly using Dirac's notation, just with Kets of the A basis looking like you see in (12).


 

Download Inner_product_of_vectors_using_Dirac_notation.mw

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

hastype(expr, radical) will answer your question. See also ?type,radical; there are other types of this sort, including composite types like type(expr, 'anything^fraction')

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

I'm not sure I understand your question. The definition of an ODE solution is that it satisfies the ODE. In Maple, you have a command to verify that. Try odetest(sol, ode2) and you receive 0. Therefore the solution you got from particularsol is a solution, indeed. If you are not comfortable with using odetest you can try eval(ode2, sol). You get the same feedback, the output by particularsols is indeed a solution as expected.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

You can get a slightly better solution, sill in implicit form or with RootOf, exploring the options of the symmetry integrators (see ?dsolve,Lie):

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft 

Good reminder; the option, dropmultiplicity::truefalse := true, the same one exists in solve with the opposite default value, is missing in PDEtools:-Solve at user level. I will add it today within the next Maplesoft Physics Updates.

UPDATE: the option is already implemented, in v.842 of the Physics Updates. Its use is as expected: dropmultiplicity = false to indicate that you want all the roots, not just those that are different.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Matheatical Functions, Maplesoft.

Therefore, the following does what you want to do:

foo := proc(expr, x)
local previous_values;

try
    previous_values := Typesetting:-Settings('prime' = x, 'typesetprime' = true);
    return((Physics:-Latex(expr)));
finally:
    Physics:-Latex:-Forget();
    Typesetting:-Settings('prime' = previous_values[1], 'typesetprime' = previous_values[2]);
end
end proc;

To the side: if you are using current Maplesoft Physics Updates, you do not need to prefix Latex with Physics:-; the package also includes a user-level Latex command that is a replica of Physics:-Latex.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft


Hi

I took a look at the metric of Chapter 27 that you brought, mainly revising carefully the notation and checking the way that metric is found in the database of solutions to Einstein equations. What follows shows how to enter this problem in a Maple worksheet, what are the subtleties to pay attention regarding notation, and verifies that the tetrad proposed by the book is correct.

with(Physics)

Physics:-Version()

`The "Physics Updates" version in the MapleCloud is 846 and is the same as the version installed in this computer, created 2020, October 17, 15:10 hours Pacific Time.`

(1)

First, there is the coordinates. Their ordering is relevant since the tetrad suggested by the book on page 421, formulas (27.37), include ordering:

 

Scanning carefully, you see on page 418, formula (27.18) that r is "the third, real coordinate" and that it is positive (the affine parameter along the rays). In that formula, I see that r is also in position 3, so the timelike component can only be the one in position 4. The ordering for the coordinates of this problem used in the book is thus

Coordinates(X = [z, zb, r, u])

`Systems of spacetime coordinates are:`*{X = (z, zb, r, u)}

 

{X}

(2)

In the text you also read that P does not depend on r and that it is real; I will assume here that it is also positive to make simplifications easier. Also H is real, so the assumptions are

Assume(P(z, zb, u) > 0, (H(X))::real, r >= 0)

{r::(RealRange(0, infinity)), u::real, z::real, zb::real, (H(X))::real, (P(z, zb, u))::(RealRange(Open(0), infinity))}, {u::real}, {z::real}, {zb::real}

(3)

The line element is shown there in the second line of (27.37) pasted above

line_element := 2*r^2*d(z)*d(zb)/P(z, zb, u)^2-2*d(r)*d(u)-2*H(X)*d(u)^2

2*r^2*Physics:-d_(z)*Physics:-d_(zb)/P(z, zb, u)^2-2*Physics:-d_(r)*Physics:-d_(u)-2*H(X)*Physics:-d_(u)^2

(4)

CompactDisplay(2*r^2*Physics[d_](z)*Physics[d_](zb)/P(z, zb, u)^2-2*Physics[d_](r)*Physics[d_](u)-2*H(X)*Physics[d_](u)^2)

H(X)*`will now be displayed as`*H

 

P(z, zb, u)*`will now be displayed as`*P

(5)

Set this metric with the signature (+++-) used by default in the book (see  page xxvii)

Setup(metric = line_element, signature = "+++-")

_______________________________________________________

 

`Coordinates: `*[z, zb, r, u]*`. Signature: `*`+ + + -`

 

_______________________________________________________

 

Physics:-g_[mu, nu] = Matrix(%id = 18446744078409269366)

 

_______________________________________________________

 

`Setting `*lowercaselatin_is*` letters to represent `*space*` indices`

 

[metric = {(1, 2) = r^2/P(z, zb, u)^2, (3, 4) = -1, (4, 4) = -2*H(X)}, signature = `+ + + -`, spaceindices = lowercaselatin_is]

(6)

Load Tetrads

with(Tetrads)

_______________________________________________________

 

`Setting `*lowercaselatin_ah*` letters to represent `*tetrad*` indices`

 

((`Defined as tetrad tensors `*`see ?Physics,tetrads`*`, `*`&efr;`[a, mu]*`, `)*eta[a, b]*`, `*gamma[a, b, c]*`, `)*lambda[a, b, c]

 

((`Defined as spacetime tensors representing the NP null vectors of the tetrad formalism `*`see ?Physics,tetrads`*`, `*l[mu]*`, `)*n[mu]*`, `*m[mu]*`, `)*conjugate(m[mu])

 

_______________________________________________________

(7)

From the text of Chapter 27, all the formulas are set having the Newman-Penrose formalism, i.e. working with a null tetrad. Set that

Setup(tetrad = null)

e_[]

Physics:-Tetrads:-e_[a, mu] = Matrix(%id = 18446744078551160822)

(8)

 

At this point I am interested in verifying the tetrad they suggest in (27.37) (see the image on top), which if I underestand correctly is what motivated your question here in Mapleprimes. With that in mind, I want to see first how is the tetrad related to the null vectors, for this ordering of coordinates and signature. So take, one by one, the lines of the null tetrad automatically computed when you set the metric, then recomputed when you indicated you want to work with a null tetrad, and compare with the null vectors.

 

This is the first line of the tetrad

e_[1, mu, matrix]

Physics:-Tetrads:-e_[1, mu] = Vector[row](%id = 18446744078572549174)

(9)

And this is n[mu]

n_[]

Physics:-Tetrads:-n_[mu] = Vector[row](%id = 18446744078572540742)

(10)

In the same way I see the following correspondence between the lines of  `&efr;`[a, mu] and the null vectors

e_[2, mu, matrix]

Physics:-Tetrads:-e_[2, mu] = Vector[row](%id = 18446744078572527854)

(11)

m_[]

Physics:-Tetrads:-m_[mu] = Vector[row](%id = 18446744078572526758)

(12)

e_[3, mu, matrix]

Physics:-Tetrads:-e_[3, mu] = Vector[row](%id = 18446744078572518566)

(13)

mb_[]

Physics:-Tetrads:-mb_[mu] = Vector[row](%id = 18446744078572442078)

(14)

e_[4, mu, matrix]

Physics:-Tetrads:-e_[4, mu] = Vector[row](%id = 18446744078572441342)

(15)

l_[]

Physics:-Tetrads:-l_[mu] = Vector[row](%id = 18446744078572429550)

(16)

So the ordering is n[mu], m[mu], conjugate(m[mu]), l[mu]. The book uses `k__&mu;` instead of n[mu]; that is just notation. More important, in (27.37) the components shown are all contravariant. So start defining four new vectors

Define(l[mu], k[mu], m[mu], mb[mu])

`Defined objects with tensor properties`

 

{Physics:-D_[mu], Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-Ricci[mu, nu], Physics:-Riemann[mu, nu, alpha, beta], Physics:-Weyl[mu, nu, alpha, beta], Physics:-d_[mu], Physics:-Tetrads:-e_[a, mu], Physics:-Tetrads:-eta_[a, b], Physics:-g_[mu, nu], Physics:-Tetrads:-gamma_[a, b, c], Physics:-gamma_[i, j], k[mu], l[mu], Physics:-Tetrads:-l_[mu], Physics:-Tetrads:-lambda_[a, b, c], m[mu], Physics:-Tetrads:-m_[mu], mb[mu], Physics:-Tetrads:-mb_[mu], Physics:-Tetrads:-n_[mu], Physics:-Christoffel[mu, nu, alpha], Physics:-Einstein[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], Physics:-SpaceTimeVector[mu](X)}

(17)

Enter now their contravariant components shown in (27.37), as you see in the image pasted at the top of this worksheet, and use these formulas to redefine the components of these null vectors

l[`~mu`] = [0, 0, -H(X), 1], k[`~mu`] = [0, 0, 1, 0], m[`~mu`] = [P(z, zb, u)/r, 0, 0, 0], mb[`~mu`] = [0, P(z, zb, u)/r, 0, 0]

l[`~mu`] = [0, 0, -H(X), 1], k[`~mu`] = [0, 0, 1, 0], m[`~mu`] = [P(z, zb, u)/r, 0, 0, 0], mb[`~mu`] = [0, P(z, zb, u)/r, 0, 0]

(18)

Define(l[`~mu`] = [0, 0, -H(X), 1], k[`~mu`] = [0, 0, 1, 0], m[`~mu`] = [P(z, zb, u)/r, 0, 0, 0], mb[`~mu`] = [0, P(z, zb, u)/r, 0, 0])

`Defined objects with tensor properties`

 

{Physics:-D_[mu], Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-Ricci[mu, nu], Physics:-Riemann[mu, nu, alpha, beta], Physics:-Weyl[mu, nu, alpha, beta], Physics:-d_[mu], Physics:-Tetrads:-e_[a, mu], Physics:-Tetrads:-eta_[a, b], Physics:-g_[mu, nu], Physics:-Tetrads:-gamma_[a, b, c], Physics:-gamma_[i, j], k[mu], l[mu], Physics:-Tetrads:-l_[mu], Physics:-Tetrads:-lambda_[a, b, c], m[mu], Physics:-Tetrads:-m_[mu], mb[mu], Physics:-Tetrads:-mb_[mu], Physics:-Tetrads:-n_[mu], Physics:-Christoffel[mu, nu, alpha], Physics:-Einstein[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], Physics:-SpaceTimeVector[mu](X)}

(19)

Check now the covariant components:

l[]; k[]; m[]; mb[]

l[mu] = (Vector[row](4, {(1) = 0, (2) = 0, (3) = -1, (4) = -H(z, zb, r, u)}))

 

k[mu] = (Vector[row](4, {(1) = 0, (2) = 0, (3) = 0, (4) = -1}))

 

m[mu] = (Vector[row](4, {(1) = 0, (2) = r/P(z, zb, u), (3) = 0, (4) = 0}))

 

mb[mu] = Array(%id = 18446744078254540430)

(20)

As expected, they are different from the contravariant ones used in their definitions (18).

 

Now that the notational issues are understood, construct the tetrad matrix implicit in (27.37) in the book, what I asked you in my first reply. Note you do that using the covariant components, and in the ordering deduced when comparing the lines of the tetrad with the null vectors, with the ordering of coordinates set at the beginning, so using

k[mu], m[mu], mb[mu], l[mu]

k[mu], m[mu], mb[mu], l[mu]

(21)

E := Matrix(4, map(Library:-TensorComponents, [k[mu], m[mu], mb[mu], l[mu]]))

Matrix(%id = 18446744078409293206)

(22)

Verify whether E is or not a tetrad, and of what kind:

IsTetrad(E)

`Type of tetrad: `*null

 

true

(23)

So we got the verification we wanted, the tetrad suggested by the book in (27.37) is correct. Set now this tetrad to be the current tetrad to then compute the Weyl scalars

Setup(tetrad = E)

[tetrad = {(1, 4) = -1, (2, 2) = r/P(z, zb, u), (3, 1) = r/P(z, zb, u), (4, 3) = -1, (4, 4) = -H(X)}]

(24)

This is the matrix all covariant form

e_[]

Physics:-Tetrads:-e_[a, mu] = Matrix(%id = 18446744078409254302)

(25)

And these are the scalars

Weyl[scalars]

psi__0 = P(z, zb, u)*(P(z, zb, u)*(diff(diff(H(X), z), z))+2*(diff(H(X), z))*(diff(P(z, zb, u), z)))/r^2, psi__1 = (1/2)*((diff(diff(H(X), r), z))*P(z, zb, u)^2*r-2*P(z, zb, u)^2*(diff(H(X), z))-(diff(diff(P(z, zb, u), u), z))*r*P(z, zb, u)+(diff(P(z, zb, u), u))*(diff(P(z, zb, u), z))*r)/(r^2*P(z, zb, u)), psi__2 = (1/6)*((diff(diff(H(X), r), r))*r^2-2*(diff(diff(P(z, zb, u), z), zb))*P(z, zb, u)-2*(diff(H(X), r))*r+2*(diff(P(z, zb, u), z))*(diff(P(z, zb, u), zb))+2*H(X))/r^2, psi__3 = 0, psi__4 = 0

(26)

To perform transformations of this tetrad in order to get different scalars equal to 0 or 1 please see the help page TransformTetrad .


 

Download The_metric_[27_37_1].mw

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

First, recall that the tetrad, represented in Maple by Tetrads:-e_, is defined up to a Lorentz rotation of the tetrad system of references, so you can write it in infinitely many different ways. There are also orthonormal and null tetrads, related to the form of the tetrad metric, represented in Maple by Tetrads:-eta_.

So answering your questions, yes, when you load Physics:-Tetrads a tetrad is automatically computed on background, and by default it is an orthonormal tetrad, to which corresponds a Minkowski form of the tetrad metric. By entering Setup(tetradmetric = null), a null tetrad is automatically computed (this is easy, you can construct it directly from the orthonormal one).

Then suppose E is a 4x4 matrix and you want this matrix to be the tetrad: input Setup(tetrad = E). and the tetrad metric will be automatically computed following your definition of the tetrad. But suppose that, in addition, you want to also specify the tetrad metric in any particular form, say a 4x4 matrix Eta (it needs to be symmetric, you know): input Setup(tetradmetric = Eta).

So you can work with any tetrad and tetrad metric you want. When you set both the tetrad and the tetrad metric manually, however, you need to be careful with one thing: input e_[definition] and you see the relationship between the tetrad e_ and tetrad metric eta_. So after setting both the tetrad and the tetrad metric manually, input TensorArray(e_[definition]) and see if you do have a matrix of equalities (i.e. whether you defined these two consistent with each other).

Also important, the Tetrads commands OrthonormalTetrad and NullTetrad will compute tetrads of the respective kinds for you, with options (see their help page), the command IsTetrad will tell you whether your matrix E is or not a tetrad and of which kind, and the command TransformTetrad allows you to rotate the tetrad in independent ways; you can make it be whatever you want, including transforming automatically into a canonical form (that implies on a canonical form of the Weyl scalars - see the help page ?TransformTetrad).

On multiple tetrad systems: you can have only one tetrad system, the so-called local system of references, where the Christoffel symbols are all equal to 0, in an infinitesimal neighbourhood of that point the spacetime is flat. Given a point in spacetime, you have one tetrad system, not many. The fact that you can Lorentz-rotate this system arbitrarily doesn't make it be many systems. I don't understand what do you mean by multiple tetrad systems.

Finally, on the conditions for beta(t, r) < 1, input Assume(beta(t, r) < 1). On the type of letter to input different kinds of indices, you can set that as you prefer, for instance, you can swap the Physics default entering Setup(spacetimeindices = lowercase, tetradindices=greek).

I suggest you take these comments into account and hopefully they help you to move forward in your worksheet - then post again. Other people will probably find your development useful for their work.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

The different behavior is related to the history of these two commands ... PDEtools:-Solve works using differential elimination (whatever that means is not relevant here) that requires every single variable to be classified according to its role, while solve uses a different approach (details skipped).

For PDEtools:-Solve, the question you wanted to ask is 

PDEtools:-Solve(eq, [a1, a2, a3, {eta1, eta2}]);
                    {a1 = -a3, a2 = eta2 - 2*a3, a3 = a3, eta1 = -2*eta2, eta2 = eta2}

In this call, you indicate that the main variables are the aj, while the etaj are parameters, meaning you expect the solution with the aj isolated as functions of the parameters, with possibly some further conditions for the parameters (last two equations). 

You do not have that distinction between main variables and parameters witinin solve, where the question would be

solve(eq, {a1, a2, a3, eta1, eta2});
            {a1 = -a3, a2 = eta2 - 2*a3, a3 = a3, eta1 = -2*eta2, eta2 = eta2}

The output by PDEtools:-Solve can be improved, but this example is not a good one, since passing your input to solve you also don't get what you expect (I am assuming that) - somehow the question is not properly possed, precissely for the reasons mentioned in the error message by PDEtools:-Solve.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

Download plot_complex_expression.mw

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

First 18 19 20 21 22 23 24 Last Page 20 of 59