Items tagged with physics physics Tagged Items Feed

Hi, 

I am a college student that is aspiring to become a theoretical theorist. I have postulates that are not in mathematical form yet, and I would like to use a program that can help with this process. I am new to the usage of Maple products, and I have questions. Is it possible to use Maple in this way, before getting to the difficult calculus steps? Can MapleSim or Maple Physics, perform simulations, or models of physics calculations?

Thank you,

Roi

 

Hi

On Thursday, at 10 AM Waterloo time, I’m giving a webinar about the Physics package, broadcasted by the “Institute Of Physics” (England, through physicsconnect). Attending is of course for free but requires registration. In case someone is interested, here is the link (Note: 3 pm BST = 10 AM EST): Applying the power of computer algebra to theoretical physics

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


Formulating and solving the equivalence problem for Schwarzschild metric in a simple case

 

In connection with the digitizing in Maple 2016 of the database of solutions to Einstein's equations of the book Exact Solutions to Einstein Field Equations. I was recently asked about a statement found in the "What is new in Physics in Maple 2016" page:

  

In the Maple PDEtools package, you have the mathematical tools - including a complete symmetry approach - to work with the underlying [Einstein’s] partial differential equations. [By combining that functionality with the one in the Physics and Physics:-Tetrads package] you can also formulate and, depending on the metrics also resolve, the equivalence problem; that is: to answer whether or not, given two metrics, they can be obtained from each other by a transformation of coordinates, as well as compute the transformation.

This question posed is a reasonable one: "could you please provide one example?" This post provides that example.

 

First of all the existing science behind: in my opinion, the main reference regarding the equivalence problem is at the paper "A Review of the Geometrical Equivalence of Metrics in General Relativity", General Relativity and Gravitation, Vol. 12, No. 9, 1980, by A. Karlhede (University of Stockholm). This approach got refined later by others and, generally speaking, it is currently know as the Cartan-Karlhede method, summarized in chapter 9.2 of the book Exact Solutions to Einstein Field Equations. whose solutions were all digitized within the Physics and DifferentialGeometry packages for Maple 2016. This method of Chapter 9.2, however, is not the only approach to the problem, and sometimes simpler methods can handle the problem faster, or just in simpler forms.

 

The example worked out below is actually the example from Karlhede's paper just mentioned, on pages 704 - 706: "Show that the Schwarzschild metric and its form written in terms of isotropic spherical coordinates are equivalent, and derive the transformation that relates them". Because this problem happens to be simple for nowadays computer algebra, below I also tackle it modified, slightly more difficult variants of it. The approach shown works for more complicated cases as well.

 

Below we tackle Karlhede's paper-problem using: one PDEtools command, the Physics:-TransformCoordinates, the Physics:-Weyl command to compute the Weyl scalars and the Physics:-Tetrads:-PetrovType to see the Petrov type of the metrics involved. The transformation resolving the equivalence is explicitly derived.

 

Start loading the Physics and Tetrads package. To reproduce the computations below, as usual, update your Physics library with the one available for download at the Maplesoft R&D Physics webpage

with(Physics); with(Tetrads); Setup(auto = true, tetradmetric = null, signature = `+---`)

`Setting lowercaselatin letters to represent tetrad indices `

 

0, "%1 is not a command in the %2 package", Tetrads, Physics

 

0, "%1 is not a command in the %2 package", Tetrads, Physics

 

`* Partial match of  'auto' against keyword 'automaticsimplification'`

 

[automaticsimplification = true, signature = `+ - - -`, tetradmetric = {(1, 2) = 1, (3, 4) = -1}]

(1)

To formulate the problem, set first some symbols to represent the changed metric, changed mass and changed coordinates - no mathematics at this point

gt, mt, tt, rt, thetat, phit := `𝔤`, `𝔪`, `𝔱`, `𝔯`, `ϑ`, `ϕ`

`𝔤`, `𝔪`, `𝔱`, `𝔯`, vartheta, varphi

(2)

Set now a new coordinates system, call it Y, involving the new coordinates (in the paper they are represented with a tilde on top of the letters)

Coordinates(Y = [tt, rt, thetat, phit])

`Default differentiation variables for d_, D_ and dAlembertian are: `*{Y = (`𝔱`, `𝔯`, `ϑ`, `ϕ`)}

 

`Systems of spacetime Coordinates are: `*{Y = (`𝔱`, `𝔯`, `ϑ`, `ϕ`)}

 

{Y}

(3)

According to eq.(7.6) of the paper, the line element of Schwarzschild solution in isotropic spherical coordinates is given by

`#msup(mi("ds"),mn("2"))` := ((1-mt/(2*rt))/(1+mt/(2*rt)))^2*d_(tt)^2-(1+mt/(2*rt))^4*(d_(rt)^2+rt^2*d_(thetat)^2+rt^2*sin(thetat)^2*d_(phit)^2)

(-2*`𝔯`+`𝔪`)^2*Physics:-d_(`𝔱`)^2/(2*`𝔯`+`𝔪`)^2-(1/16)*(2*`𝔯`+`𝔪`)^4*(Physics:-d_(`𝔯`)^2+`𝔯`^2*Physics:-d_(vartheta)^2+`𝔯`^2*sin(vartheta)^2*Physics:-d_(varphi)^2)/`𝔯`^4

(4)

Set this to be the metric

Setup(metric = `#msup(mi("ds"),mn("2"))`)

Check it out

g_[]

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

(5)

In connection with the transformation used further below, compute now the Petrov type and the Weyl scalars for this metric, just to have an idea of what is behind this metric.

PetrovType()

"D"

(6)

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = -64*`𝔯`^3*`𝔪`/(2*`𝔯`+`𝔪`)^6, psi__3 = 0, psi__4 = 0

(7)

We see that the Weyl scalars are already in canonical form (see post in Mapleprimes about canonical forms): only `&Psi;__2` <> 0 and the important thing: it depends on only one coordinate, `&rfr;` .

 

Now: we want to see if this metric (5) is equivalent to Schwarzschild metric in standard spherical coordinates

g_[sc]

`Systems of spacetime Coordinates are: `*{X = (t, r, theta, phi), Y = (`&tfr;`, `&rfr;`, `&vartheta;`, `&varphi;`)}

 

`Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (t, r, theta, phi)}

 

`The Schwarzschild metric in coordinates `[t, r, theta, phi]

 

`Parameters: `[m]

 

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

(8)

The equivalence we want to resolve is regarding an arbitrary relationship `&mfr;`(m)between the masses used in (5) and (8) and a generic change of variables from X to Y

TR := {phi = Phi(Y), r = R(Y), t = Tau(Y), theta = Theta(Y)}

{phi = Phi(Y), r = R(Y), t = Tau(Y), theta = Theta(Y)}

(9)

Using a differential equation mindset, the formulation of the equivalence between (8) and (5) under the transformation (9) is actually simple: change variables in (8), using (9) and the Physics:-TransformCoordinates command (this is the command that changes variables in tensorial expressions), then equate the result to (5), then try to solve the problem for the unknowns `&mfr;`(m), Phi(Y), R(Y), Theta(Y) and Tau(Y).

 

We note at this point, however, that the Weyl scalars for Schwarzschild metric in this standard form (8) are also in canonical form of Petrov type D and also depend on only one variable, r 

PetrovType()

"D"

(10)

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = -m/r^3, psi__3 = 0, psi__4 = 0

(11)

The fact that the Weyl scalars in both cases ((7) and (11)) are in canonical form (only `&Psi;__2` <> 0 ) and in both cases this scalar depends on only one coordinate is already an indicator that the transformation involved changes only one variable in terms of the other one. So one could just search for a transformation of the form r = R(`&rfr;`) and resolve the problem instantly. Still, to make the problem slightly more general, consider instead a generic transformation for r in terms of all of Y = (`&tfr;`, `&rfr;`, `&vartheta;`, `&varphi;`)

tr := r = R(Y)

r = R(Y)

(12)

PDEtools:-declare(r = R(Y))

R(`&tfr;`, `&rfr;`, vartheta, varphi)*`will now be displayed as`*R

(13)

Transform the  coordinates in the metric (because of having used PDEtools:-declare, derivatives of the unknowns R are displayed indexed, for compact notation)

TransformCoordinates(tr, g_[mu, nu])

Matrix(%id = 18446744078873927542)

(14)

Proceed equating (14) to (5) to obtain a set of equations that entirely formulates the problem

"convert(rhs(?)=? ,setofequations)"

{0 = (diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), (-2*`&rfr;`+`&mfr;`)^2/(2*`&rfr;`+`&mfr;`)^2 = ((diff(R(Y), `&tfr;`))^2*R(Y)^2-4*(-(1/2)*R(Y)+m)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+`&mfr;`)^4/`&rfr;`^4 = (diff(R(Y), `&rfr;`))^2*R(Y)/(-R(Y)+2*m), -(1/16)*(2*`&rfr;`+`&mfr;`)^4/`&rfr;`^2 = -(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+`&mfr;`)^4*sin(vartheta)^2/`&rfr;`^2 = 2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)/(-R(Y)+2*m)}

(15)

This problem, shown in Karlhede's paper as the example of the approach he summarized, is solvable using the differential equation commands of PDEtools (in this case casesplit) in one go and no time, obtaining the same solution shown in the paper with equation number (7.10), the problem actually admits two solutions

PDEtools:-casesplit({0 = (diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), (-2*`&rfr;`+`&mfr;`)^2/(2*`&rfr;`+`&mfr;`)^2 = ((diff(R(Y), `&tfr;`))^2*R(Y)^2-4*(-(1/2)*R(Y)+m)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+`&mfr;`)^4/`&rfr;`^4 = (diff(R(Y), `&rfr;`))^2*R(Y)/(-R(Y)+2*m), -(1/16)*(2*`&rfr;`+`&mfr;`)^4/`&rfr;`^2 = -(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+`&mfr;`)^4*sin(vartheta)^2/`&rfr;`^2 = 2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)/(-R(Y)+2*m)}, [R, mt])

`casesplit/ans`([R(Y) = -(1/4)*(m-2*`&rfr;`)^2/`&rfr;`, `&mfr;` = -m], []), `casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;` = m], [])

(16)

By all means this does not mean this differential equation approach is better than the general approach mentioned in the paper (also in section 9.2 of the Exact Solutions book). This presentation above only makes the point of the paragraph mentioned at the beginning of this worksheet "... [in Maple 2016] you can also formulate and, depending on the the metrics also resolve, the equivalence problem; that is: to answer whether or not, given two metrics, they can be obtained from each other by a transformation of coordinates, as well as compute the transformation." 

 

In any case this problem above is rather easy for the computer. Consider a slightly more difficult problem, where `&mfr;` <> m. For example:

"subs(mt = 1/(mt^(2)),?)"

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

(17)

Tackle now the same problem

"convert(rhs(?)=? ,setofequations)"

{0 = (diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), (-2*`&rfr;`+1/`&mfr;`^2)^2/(2*`&rfr;`+1/`&mfr;`^2)^2 = ((diff(R(Y), `&tfr;`))^2*R(Y)^2-4*(-(1/2)*R(Y)+m)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^4 = (diff(R(Y), `&rfr;`))^2*R(Y)/(-R(Y)+2*m), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^2 = -(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4*sin(vartheta)^2/`&rfr;`^2 = 2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)/(-R(Y)+2*m)}

(18)

The solutions to the equivalence between (17) and (5) are then given by

PDEtools:-casesplit({0 = (diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)/(-R(Y)+2*m), 0 = (diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)/(-R(Y)+2*m), (-2*`&rfr;`+1/`&mfr;`^2)^2/(2*`&rfr;`+1/`&mfr;`^2)^2 = ((diff(R(Y), `&tfr;`))^2*R(Y)^2-4*(-(1/2)*R(Y)+m)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^4 = (diff(R(Y), `&rfr;`))^2*R(Y)/(-R(Y)+2*m), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^2 = -(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4*sin(vartheta)^2/`&rfr;`^2 = 2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)/(-R(Y)+2*m)}, [R, mt])

`casesplit/ans`([R(Y) = -(1/4)*(m-2*`&rfr;`)^2/`&rfr;`, `&mfr;`^2 = -1/m], [`&mfr;` <> 0]), `casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m], [`&mfr;` <> 0])

(19)

Moreover, despite that the Weyl scalars suggest that a transformation of only one variable is sufficient to solve the problem, one could also consider a more general transformation, of more variables. Provided we exclude theta (because there is cos(theta) around and that would take us to solve differential equations for Theta(theta), that involve things like cos(Theta(theta))), and also to speed up matters let's remove the change in phi, consider an arbitrary change in r and t

TR := select(has, {phi = Phi(Y), r = R(Y), t = Tau(Y), theta = Theta(Y)}, {r, t})

{r = R(Y), t = Tau(Y)}

(20)

PDEtools:-declare({r = R(Y), t = Tau(Y)})

R(`&tfr;`, `&rfr;`, vartheta, varphi)*`will now be displayed as`*R

 

Tau(`&tfr;`, `&rfr;`, vartheta, varphi)*`will now be displayed as`*Tau

(21)

So our transformation now involve two arbitrary variables, each one depending on all the four coordinates, and a more complicated function `&mfr;`(m). Change variables (because of having used PDEtools:-declare, derivatives of the unknowns R and Tau are displayed indexed, for compact notation)

TransformCoordinates(TR, g_[mu, nu])

Matrix(%id = 18446744078309268046)

(22)

Construct the set of Partial Differential Equations to be tackled

"convert(rhs(?)=?,setofequations)"

{0 = (-4*(diff(Tau(Y), `&rfr;`))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))+(diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), vartheta))+(diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), vartheta))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))+(diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), vartheta))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), (-2*`&rfr;`+1/`&mfr;`^2)^2/(2*`&rfr;`+1/`&mfr;`^2)^2 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))^2+(diff(R(Y), `&tfr;`))^2*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^4 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))^2+(diff(R(Y), `&rfr;`))^2*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^2 = (diff(Tau(Y), vartheta))^2*(R(Y)-2*m)/R(Y)-(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4*sin(vartheta)^2/`&rfr;`^2 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), varphi))^2+2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)^2)/(R(Y)*(-R(Y)+2*m))}

(23)

Solve the problem running a differential elimination (actually without solving any differential equations): there are more than two solutions

sol := PDEtools:-casesplit({0 = (-4*(diff(Tau(Y), `&rfr;`))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), `&rfr;`))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))+(diff(R(Y), varphi))*(diff(R(Y), `&rfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), varphi))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), varphi))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), vartheta))+(diff(R(Y), varphi))*(diff(R(Y), vartheta))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), vartheta))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))+(diff(R(Y), vartheta))*(diff(R(Y), `&rfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), 0 = (-4*(diff(Tau(Y), vartheta))*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))+(diff(R(Y), vartheta))*(diff(R(Y), `&tfr;`))*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), (-2*`&rfr;`+1/`&mfr;`^2)^2/(2*`&rfr;`+1/`&mfr;`^2)^2 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&tfr;`))^2+(diff(R(Y), `&tfr;`))^2*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^4 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), `&rfr;`))^2+(diff(R(Y), `&rfr;`))^2*R(Y)^2)/(R(Y)*(-R(Y)+2*m)), -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4/`&rfr;`^2 = (diff(Tau(Y), vartheta))^2*(R(Y)-2*m)/R(Y)-(diff(R(Y), vartheta))^2*R(Y)/(R(Y)-2*m)-R(Y)^2, -(1/16)*(2*`&rfr;`+1/`&mfr;`^2)^4*sin(vartheta)^2/`&rfr;`^2 = (-4*(-(1/2)*R(Y)+m)^2*(diff(Tau(Y), varphi))^2+2*((1/2)*(diff(R(Y), varphi))^2+(cos(vartheta)-1)*R(Y)*(cos(vartheta)+1)*(-(1/2)*R(Y)+m))*R(Y)^2)/(R(Y)*(-R(Y)+2*m))}, [R, mt])

`casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m, diff(Tau(Y), `&tfr;`) = -1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0]), `casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m, diff(Tau(Y), `&tfr;`) = 1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0]), `casesplit/ans`([R(Y) = -(1/4)*(m-2*`&rfr;`)^2/`&rfr;`, `&mfr;`^2 = -1/m, diff(Tau(Y), `&tfr;`) = -1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0]), `casesplit/ans`([R(Y) = -(1/4)*(m-2*`&rfr;`)^2/`&rfr;`, `&mfr;`^2 = -1/m, diff(Tau(Y), `&tfr;`) = 1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0])

(24)

Consider for instance the first one

sol[1]

`casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m, diff(Tau(Y), `&tfr;`) = -1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0])

(25)

Compute the actual solution behind this case :

pdsolve(`casesplit/ans`([R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, `&mfr;`^2 = 1/m, diff(Tau(Y), `&tfr;`) = -1, diff(Tau(Y), `&rfr;`) = 0, diff(Tau(Y), vartheta) = 0, diff(Tau(Y), varphi) = 0], [`&mfr;` <> 0]), {R, Tau, mt})

{`&mfr;` = -1/m^(1/2), R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, Tau(Y) = -`&tfr;`+_C1}, {`&mfr;` = 1/m^(1/2), R(Y) = (1/4)*(2*`&rfr;`+m)^2/`&rfr;`, Tau(Y) = -`&tfr;`+_C1}

(26)

The fact that the time t appears defined in terms of the transformed time Tau(Y) = -`&tfr;`+_C1 involving an arbitrary constant is expected: the time does not enter the metric, it only enters through derivatives of Tau(Y) entering the Jacobian of the transformation used to change variables in tensorial expressions (the metric) in (22).

 

Summary: the approach shown above, based on formulating the problem for the transformation functions of the equivalence and solving for them the differential equations using the commands in PDEtools, after restricting the generality of the transformation functions by looking at the form of the Weyl scalars, works well for other cases too, specially now that, in Maple 2016, the Weyl scalars can be expressed also in canonical form in one go (see previous Mapleprimes post on "Tetrads and Weyl scalars in canonical form").  Also important: in Maple 2016 it is present the functionality necessary to implement the approach of section 9.2 of the Exact solutions book as well.

  

 


Download Equivalence_-_Schwarzschild.mw

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


Tetrads and Weyl scalars in canonical form

 

The material below is about a new development that didn't arrive in time for the launch of Maple 2016 (March) and that complements in a relevant way the ones introduced in Physics in Maple 2016. It is at topic in general relativity, the computation of a canonical form of a tetrad, so that, generally speaking (skipping a technical description) the Weyl scalars are fixed as much as possible (either equal to 0 or to 1) regarding transformations that leave invariant the tetrad metric in a tetrad system of references. Bringing a tetrad in canonical form is a relevant step in the tackling of the equivalence problem between two spacetime metrics, and it is relevant in connection with the digitizing in Maple 2016 of the database of solutions to Einstein's equations of the book Exact Solutions to Einstein Field Equations.

The reference for this development is the book "General Relativity, an Einstein century survey", edited by S.W. Hawking (Cambridge) and W. Israel (U. Alberta, Canada), specifically Chapter 7 written by S. Chandrasekhar, and more specifically exploring what is said in page 388 about the Petrov classification.


A canonical form for the tetrad and Weyl scalars admits alternate forms; the implementation is as implicit in page 388:

 

`&Psi;__0`

`&Psi;__1`

`&Psi;__2`

`&Psi;__3`

`&Psi;__4`

Residual invariance

Petrov type I

0

"<>0"

"<>0"

1

0

none

Petrov type II

0

0

"<>0"

1

0

none

Petrov type III

0

0

0

1

0

none

Petrov type D

0

0

"<>0"

0

0

`&Psi;__2`  remains invariant under rotations of Class III

Petrov type N

0

0

0

0

1

`&Psi;__4` remains invariant under rotations of Class II

 

The transformations (rotations of the tetrad system of references) used are of Class I, II and III as defined in Chandrasekar's chapter - equations (7.79) in page 384, (7.83) and (7.84) in page 385. Transformations of Class I can be performed with the command Physics:-Tetrads:-TransformTetrad using the optional argument nullrotationwithfixedl_, of Class II using nullrotationwithfixedn_ and of Class III by calling TransformTetrad(spatialrotationsm_mb_plan, boostsn_l_plane), so with the two optional arguments simultaneously.

 

In this development, a new optional argument, canonicalform got implemented to TransformTetrad so that the whole sequence of three transformations of Classes I, II and III is performed automatically, in one go. Regarding the canonical form of the tetrad, the main idea is that from the change in the Weyl scalars one can derive the parameters entering tetrad transformations that result in a canonical form of the tetrad. 

 

with(Physics); with(Tetrads)

`Setting lowercaselatin letters to represent tetrad indices `

 

0, "%1 is not a command in the %2 package", Tetrads, Physics

 

0, "%1 is not a command in the %2 package", Tetrads, Physics

 

[IsTetrad, NullTetrad, OrthonormalTetrad, PetrovType, SimplifyTetrad, TransformTetrad, e_, eta_, gamma_, l_, lambda_, m_, mb_, n_]

(1)

(Note the Tetrads:-PetrovType command, unfinished in the first release of Maple 2016.) To run the following computations you need to update your Physics library to the latest version from the Maplesoft R&D Physics webpage, so with this datestamp or newer:

Physics:-Version()

"/Users/ecterrab/Maple/lib/Physics2016.mla", `2016, April 20, 12:56 hours`

(2)

An Example of Petrov type I

There are six Petrov types: I, II, III, D, N and O. Start with a spacetime metric of Petrov type "I"  (the numbers always refer to the equation number in the "Exact solutions to Einstein's field equations" textbook)

g_[[12, 21, 1]]

`Systems of spacetime Coordinates are: `*{X = (t, x, y, phi)}

 

`Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (t, x, y, phi)}

 

`The McLenaghan, Tariq (1975), Tupper (1976) metric in coordinates `[t, x, y, phi]

 

`Parameters: `[a, k, kappa0]

 

"`Comments: `_k parametrizes the most general electromagnetic invariant with respect to the last 3 Killing vectors"

 

`Resetting the signature of spacetime from "+ - - -" to \`- + + +\` in order to match the signature in the database of metrics:`

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = -1, (1, 2) = 0, (1, 3) = 0, (1, 4) = 2*y, (2, 1) = 0, (2, 2) = a^2/x^2, (2, 3) = 0, (2, 4) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = a^2/x^2, (3, 4) = 0, (4, 1) = 2*y, (4, 2) = 0, (4, 3) = 0, (4, 4) = x^2-4*y^2}))

(3)

The Weyl scalars

Weyl[scalars]

psi__0 = (1/4)*((4*I)*x^3*abs(x)^3-abs(x)^6+abs(x)^4*x^2+abs(x)^2*x^4-x^6)/(a^2*abs(x)^4*x^2), psi__1 = 0, psi__2 = -(1/4)*(x^2+abs(x)^2)*(x^4+abs(x)^4)/(a^2*abs(x)^4*x^2), psi__3 = 0, psi__4 = (1/4)*((4*I)*x^3*abs(x)^3-abs(x)^6+abs(x)^4*x^2+abs(x)^2*x^4-x^6)/(a^2*abs(x)^4*x^2)

(4)

... there is abs around. Let's assume everything is positive to simplify formulas, use Capital Physics:-Assume  (the lower case assume  command redefines the assumed variables, so it is not compatible with Physics, DifferentialGeometry and VectorCalculus among others).

Assume(x > 0, y > 0, a > 0)

{a::(RealRange(Open(0), infinity))}, {x::(RealRange(Open(0), infinity))}, {y::(RealRange(Open(0), infinity))}

(5)

The scalars are now simpler, although still not in "canonical form" because `&Psi;__4` <> 0 and `&Psi;__3` <> 1.

Weyl[scalars]

psi__0 = I/a^2, psi__1 = 0, psi__2 = -1/a^2, psi__3 = 0, psi__4 = I/a^2

(6)

The Petrov type

PetrovType()

"I"

(7)

The  call to Tetrads:-TransformTetrad two lines below transforms the current tetrad ,

e_[]

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

(8)

into another tetrad such that the Weyl scalars are in canonical form, which for Petrov "I" type happens when `&Psi;__0` = 0, `&Psi;__4` = 0 and `&Psi;__3` = 1.

TransformTetrad(canonicalform)

Matrix(%id = 18446744078500192254)

(9)

Despite the fact that the result is a much more complicated tetrad, this is an amazing result in that the resulting Weyl scalars are all fixed (see below).  Let's first verify that this is indeed a tetrad, and that now the Weyl scalars are in canonical form

"IsTetrad(?)"

`Type of tetrad: null `

 

true

(10)

Set (9) to be the tetrad in use and recompute the Weyl scalars

"Setup(tetrad = ?):"

Inded we now have `&Psi;__0` = 0, `&Psi;__4` = 0 and `&Psi;__3` = 1 

simplify([Weyl[scalars]])

[psi__0 = 0, psi__1 = (-1/2-(3/2)*I)/a^4, psi__2 = (-1+I)/a^2, psi__3 = 1, psi__4 = 0]

(11)

So Weyl scalars computed after setting the canonical tetrad (9) to be the tetrad in use are in canonical form. Great! NOTE: computing the canonicalWeyl scalars is not really the difficult part, and within the code, these scalars (11) are computed before arriving at the tetrad (9). What is really difficult (from the point of view of computational complexity and simplifications) is to compute the actual canonical form of the tetrad (9).

 

An Example of Petrov type II

Consider this other solution to Einstein's equation (again, the numbers in g_[[24,37,7]] always refer to the equation number in the "Exact solutions to Einstein's field equations" textbook)

g_[[24, 37, 7]]

`Systems of spacetime Coordinates are: `*{X = (u, v, x, y)}

 

`Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (u, v, x, y)}

 

`The Stephani metric in coordinates `[u, v, x, y]

 

`Parameters: `[f(x), a, Psi1(u, x, y)]

 

"`Comments: `Case 6 from Table 24.1:_Psi1(u,x,y): diff(_Psi1(u,x,y),x,x)+diff(_Psi1(u,x,y),y,y)=0, diff(x*diff(_M(u,x,y),x),x)+x*diff(_M(u,x,y),y,y)=_kappa0*(diff(_Psi(u,x,y),x)^2+diff(_Psi(u,x,y),y)^2)"

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = -2*x*(f(x)+y*a), (1, 2) = -x, (1, 3) = 0, (1, 4) = 0, (2, 2) = 0, (2, 3) = 0, (2, 4) = 0, (3, 3) = 1/x^(1/2), (3, 4) = 0, (4, 4) = 1/x^(1/2)}, storage = triangular[upper], shape = [symmetric]))

(12)

Check the Petrov type

PetrovType()

"II"

(13)

The starting tetrad

e_[]

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

(14)

results in Weyl scalars not in canonical form:

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = (1/8)/x^(3/2), psi__3 = 0, psi__4 = -((3*I)*a-2*x*(diff(diff(f(x), x), x))-3*(diff(f(x), x)))/(x^(1/2)*(4*y*a+4*f(x)))

(15)

For Petrov type "II", the canonical form is as for type "I" but in addition `&Psi;__1` = 0. Again let's assume positive, not necessary, but to get simpler formulas around

Assume(f(x) > 0, x > 0, y > 0, a > 0)

{a::(RealRange(Open(0), infinity))}, {x::(RealRange(Open(0), infinity)), (-f(x))::(RealRange(-infinity, Open(0))), (f(x))::(RealRange(Open(0), infinity))}, {y::(RealRange(Open(0), infinity))}

(16)

Compute now a canonical form for the tetrad, to be used instead of (14)

TransformTetrad(canonicalform)

Matrix(%id = 18446744078835949430)

(17)

Set this tetrad and check the Weyl scalars again

"Setup(tetrad = ?):"

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = (1/8)/x^(3/2), psi__3 = 1, psi__4 = 0

(18)

This result (18) is fantastic. Compare these Weyl scalars with the ones (15) before transforming the tetrad.

 

An Example of Petrov type III

g_[[12, 35, 1]]

`Systems of spacetime Coordinates are: `*{X = (u, x, y, z)}

 

`Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (u, x, y, z)}

 

`The Kaigorodov (1962), Cahen (1964), Siklos (1981), Ozsvath (1987) metric in coordinates `[u, x, y, z]

 

`Parameters: `[Lambda]

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = 0, (1, 2) = exp(-2*z), (1, 3) = 0, (1, 4) = 0, (2, 2) = exp(4*z), (2, 3) = 2*exp(z), (2, 4) = 0, (3, 3) = 2*exp(-2*z), (3, 4) = 0, (4, 4) = 3/abs(Lambda)}, storage = triangular[upper], shape = [symmetric]))

(19)

Assume(z > 0, Lambda > 0)

{Lambda::(RealRange(Open(0), infinity))}, {z::(RealRange(Open(0), infinity))}

(20)

The Petrov type and the original tetrad

PetrovType()

"III"

(21)

e_[]

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

(22)

This tetrad results in the following scalars

Weyl[scalars]

psi__0 = -2*Lambda*2^(1/2)+(11/4)*Lambda, psi__1 = -(1/2)*Lambda*2^(1/2)+(3/4)*Lambda, psi__2 = (1/4)*Lambda, psi__3 = -(1/2)*Lambda*2^(1/2)-(3/4)*Lambda, psi__4 = 2*Lambda*2^(1/2)+(11/4)*Lambda

(23)

that are not in canonical form, which for Petrov type III is as in Petrov type II but in addition we should have `&Psi;__2` = 0.

Compute now a canonical form for the tetrad

TransformTetrad(canonicalform)

Matrix(%id = 18446744078500057566)

(24)

Set this one to be the tetrad in use and recompute the Weyl scalars

"Setup(tetrad = ?):"

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = 0, psi__3 = 1, psi__4 = 0

(25)

Great!``

An Example of Petrov type N

g_[[12, 6, 1]]

`Systems of spacetime Coordinates are: `*{X = (u, v, y, z)}

 

`Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (u, v, y, z)}

 

`The Defrise (1969) metric in coordinates `[u, v, y, z]

 

`Parameters: `[Lambda, kappa0]

 

"`Comments: `_Lambda < 0 required for a pure radiation solution"

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = 0, (1, 2) = -(3/2)/(y^2*Lambda), (1, 3) = 0, (1, 4) = 0, (2, 2) = -3/(y^4*Lambda), (2, 3) = 0, (2, 4) = 0, (3, 3) = 3/(y^2*Lambda), (3, 4) = 0, (4, 4) = 3/(y^2*Lambda)}, storage = triangular[upper], shape = [symmetric]))

(26)

Assume(y > 0, Lambda > 0)

{Lambda::(RealRange(Open(0), infinity))}, {y::(RealRange(Open(0), infinity))}

(27)

PetrovType()

"N"

(28)

The original tetrad and related Weyl scalars are not in canonical form:

e_[]

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

(29)

Weyl[scalars]

psi__0 = -(1/4)*Lambda, psi__1 = -((1/4)*I)*Lambda, psi__2 = (1/4)*Lambda, psi__3 = ((1/4)*I)*Lambda, psi__4 = -(1/4)*Lambda

(30)

For Petrov type "N", the canonical form has `&Psi;__4` <> 0 and all the other `&Psi;__n` = 0.

Compute a canonical form, set it to be the tetrad in use and recompute the Weyl scalars

TransformTetrad(canonicalform)

Matrix(%id = 18446744078518486190)

(31)

"Setup(tetrad = ?):"

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = 0, psi__3 = 0, psi__4 = 1

(32)

All as expected.

An Example of Petrov type D

 

g_[[12, 8, 4]]

`Systems of spacetime Coordinates are: `*{X = (t, x, y, z)}

 

`Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (t, x, y, z)}

 

`The  metric in coordinates `[t, x, y, z]

 

`Parameters: `[A, B]

 

"`Comments: `k = 0, kprime = 1, not an Einstein metric"

 

g[mu, nu] = (Matrix(4, 4, {(1, 1) = -B^2*sin(z)^2, (1, 2) = 0, (1, 3) = 0, (1, 4) = 0, (2, 2) = A^2, (2, 3) = 0, (2, 4) = 0, (3, 3) = A^2*x^2, (3, 4) = 0, (4, 4) = B^2}, storage = triangular[upper], shape = [symmetric]))

(33)

Assume(A > 0, B > 0, x > 0, 0 <= z and z <= (1/4)*Pi)

{A::(RealRange(Open(0), infinity))}, {B::(RealRange(Open(0), infinity))}, {x::(RealRange(Open(0), infinity))}, {z::(RealRange(0, (1/4)*Pi))}

(34)

PetrovType()

"D"

(35)

The default tetrad and related Weyl scalars are not in canonical form, which for Petrov type "D" is with `&Psi;__2` <> 0 and all the other `&Psi;__n` = 0

e_[]

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

(36)

Weyl[scalars]

psi__0 = (1/4)/B^2, psi__1 = 0, psi__2 = (1/12)/B^2, psi__3 = 0, psi__4 = (1/4)/B^2

(37)

Transform the  tetrad, set it and recompute the Weyl scalars

TransformTetrad(canonicalform)

Matrix(%id = 18446744078814996830)

(38)

"Setup(tetrad=?):"

Weyl[scalars]

psi__0 = 0, psi__1 = 0, psi__2 = -(1/6)/B^2, psi__3 = 0, psi__4 = 0

(39)

Again the expected canonical form of the Weyl scalars, and `&Psi;__2` <> 0 remains invariant under transformations of Class III.

 

An Example of Petrov type O

 

Finally an example of type "O". This corresponds to a conformally flat spacetime, for which the Weyl tensor (and with it all the Weyl scalars) vanishes. So the code just interrupts with "not implemented for conformally flat spactimes of Petrov type O"

g_[[8, 33, 1]]

`Systems of spacetime Coordinates are: `*{X = (t, x, y, z)}

 

`Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (t, x, y, z)}

 

`The  metric in coordinates `[t, x, y, z]

 

`Parameters: `[K]

 

"`Comments: `_K=3*_Lambda, _K>0 de Sitter, _K<0 anti-de Sitte"

 

g[mu, nu] = z

(40)

PetrovType()

"O"

(41)

The Weyl tensor and its scalars all vanish:

Weyl[nonzero]

Physics:-Weyl[mu, nu, alpha, beta] = {}

(42)

simplify(evala([Weyl[scalars]]))

[psi__0 = 0, psi__1 = 0, psi__2 = 0, psi__3 = 0, psi__4 = 0]

(43)

TransformTetrad(canonicalform)

Error, (in Tetrads:-CanonicalForm) canonical form is not implemented for flat or conformally flat spacetimes of Petrov type "O"

 

NULL


Download TetradsAndWeylScalarsInCanonicalForm.mw

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

Hey all,

I want to symbolically differentiate a function and recalculate the result later. Here is what I have tried so far:


restart;

myexp:=dfdb+sthlong

dfdb+sthlong

(1)

b:=<b1(t),b2(t)>;

b := Vector(2, {(1) = b1(t), (2) = b2(t)})

(2)

dfdb:=Physics[diff]~(f(b),b)

dfdb := Vector(2, {(1) = (D(f))(Vector(2, {(1) = b1(t), (2) = b2(t)})), (2) = (D(f))(Vector(2, {(1) = b1(t), (2) = b2(t)}))})

(3)

f:=b->b(1)^2+b(2)

proc (b) options operator, arrow; b(1)^2+b(2) end proc

(4)

eval(myexp);  #actual result

 

 

sthlong+(Vector(2, {(1) = (D(f))(Vector(2, {(1) = b1(t), (2) = b2(t)})), (2) = (D(f))(Vector(2, {(1) = b1(t), (2) = b2(t)}))}))

(5)

dfdb:=Physics[diff]~(f(b),b):

eval(myexp); #expected result

sthlong+(Vector(2, {(1) = 2*b1(t), (2) = 1}))

(6)

 


Download physics_diff.mw

I wonder if this is even possible, or if I missunderstand something. Can you please help me?

 

Thanks

 

Honigmelone

hello dear,

I was intersted in finding Weyl scalars for a given metric, would be really helpful if anyone can give me an example of how to find a Weyl Scalar for a given metric or set of null tetrads using Debever formalism in Tensor package(more specifically, how to define h in debever formalism for a given set of null tetrad or for a given metric).

Regards,
Suresh

if three particles set into 3 energy states ( each values of energy states 0 , e, 2e)

 

  

 

 

how to calculate P in each configuration by a particle that follows boson and f-b

 

 

 

thank you

You, I, and others like us, are the beneficiaries of decades of software evolution.

From its genesis as a research project at the University of Waterloo in the early 80s, Maple has continually evolved to meet the challenges of technical computing.

Non dimensionalisation is a vary common task, and I was suprised that I couldn't find a maple tool to automate it . Has anyone developed their own package for it?

I want to automatically do it to the system equations for some Dynamical systems to make some of the other processing I do with them easier.

I was hoping to start with somehting in the form of 

Diff(x[1],t)=f[1](p[1]....p[n],x[1]...x[m])

...

Diff(x[m],t)=f[m](p[1]....p[n],x[1]...x[m])

where each f[i] is some kind of quotient of multivariate polynomials in the variables and parameters:
and end up with something like

Diff(y[1],s)=f[1](q[1]....q[p],y[1]...y[m])

...

Diff(y[m],s)=f[m](q[1]....q[p],y[1]...y[m])

where p<n

Hi,

I'm trying to work out whether or not Maple will be able to help me out with some algebra involving lots of indices, but I can't seem to work out how the gauge indices features work in the Physics package. For example I would like to define a gauge field carrying an SU(3) index and a spacetime index. The SU(3) index should run from 1 to 8 and the spacetime index from 1 to 5. I think I have worked out how it works with spacetime indices but I can't seem to find any documentation on the gauge indices.

Is there are a way to set the "dimension" of the gauge index, like we can set the space time dimension?

 

Cheers


The year 2015 has been one with interesting and relevant developments in the MathematicalFunctions  and FunctionAdvisor projects.

• 

Gaps were filled regarding mathematical formulas, with more identities for all of BesselI, BesselK, BesselY, ChebyshevT, ChebyshevU, Chi, Ci, FresnelC, FresnelS, GAMMA(z), HankelH1, HankelH2, InverseJacobiAM, the twelve InverseJacobiPQ for P, Q in [C,D,N,S], KelvinBei, KelvinBer, KelvinKei, KelvinKer, LerchPhi, arcsin, arcsinh, arctan, ln;

• 

Developments happened in the Mathematical function package, to both compute with symbolic sequences and symbolic nth order derivatives of algebraic expressions and functions;

• 

The input FunctionAdvisor(differentiate_rule, mathematical_function) now returns both the first derivative (old behavior) and the nth symbolic derivative (new behavior) of a mathematical function;

• 

A new topic, plot, used as FunctionAdvisor(plot, mathematical_function), now returns 2D and 3D plots for each mathematical function, following the NIST Digital Library of Mathematical Functions;

• 

The previously existing FunctionAdvisor(display, mathematical_function) got redesigned, so that it now displays more information about any mathematical function, and organized into a Section with subsections for each of the different topics, making it simpler to find the information one needs without getting distracted by a myriad of formulas that are not related to what one is looking for.

More mathematics

 

More mathematical knowledge is in place, more identities, differentiation rules of special functions with respect to their parameters, differentiation of functions whose arguments involve symbolic sequences with an indeterminate number of operands, and sum representations for special functions under different conditions on the functions' parameters.

Examples

   

More powerful symbolic differentiation (nth order derivative)

 

Significative developments happened in the computation of the nth order derivative of mathematical functions and algebraic expressions involving them.

Examples

   

Mathematical handling of symbolic sequences

 

Symbolic sequences enter various formulations in mathematics. Their computerized mathematical handling, however, was never implemented - only a representation for them existed in the Maple system. In connection with this, a new subpackage, Sequences , within the MathematicalFunctions package, has been developed.

Examples

   

Visualization of mathematical functions

 

When working with mathematical functions, it is frequently desired to have a rapid glimpse of the shape of the function for some sampled values of their parameters. Following the NIST Digital Library of Mathematical Functions, a new option, plot, has now been implemented.

Examples

   

Section and subsections displaying properties of mathematical functions

 

Until recently, the display of a whole set of mathematical information regarding a function was somehow cumbersome, appearing all together on the screen. That display was and is still available via entering, for instance for the sin function, FunctionAdvisor(sin) . That returns a table of information that can be used programmatically.

With time however, the FunctionAdvisor evolved into a consultation tool, where a better organization of the information being displayed is required, making it simpler to find the information we need without being distracted by a screen full of complicated formulas.

To address this requirement, the FunctionAdvisor now returns the information organized into a Section with subsections, built using the DocumentTools package. This enhances the presentation significantly.

Examples

   

These developments can be installed in Maple 2015 as usual, by downloading the updates (bundled with the Physics and Differential Equations updates) from the Maplesoft R&D webpage for Mathematical Functions and Differential Equations


Download MathematicalFunctionsAndFunctionAdvisor.mw

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

I am tryng to write and solve within Maple the equations of movement for a single body subject to a gravitatinal field, F_=-GMm/r2

But I get an error message when trying to define the Angular Momentum which doesn't make sense for me.

Thank you for any help on this topíc.


restart; with(Physics[Vectors]); conventions, Setup(mathematicalnotation = true);
conventions, [mathematicalnotation = true]
r_ := rho*_rho;
r_ := rho _rho
_rho(t);
_rho(t)
rho(t);
rho(t)
v_ := diff(rho(t)*_rho(t), t);
/ d \ / d \
v_ := |--- rho(t)| _rho(t) + rho(t) |--- phi(t)| _phi(t)
\ dt / \ dt /
a_ := diff(%, t);
/ 2 \
| d | / d \ / d \
a_ := |---- rho(t)| _rho(t) + 2 |--- rho(t)| |--- phi(t)| _phi(t)
| 2 | \ dt / \ dt /
\ dt /

/ 2 \ 2
| d | / d \
+ rho(t) |---- phi(t)| _phi(t) - rho(t) |--- phi(t)| _rho(t)
| 2 | \ dt /
\ dt /

eq[1] := -G*M*_rho(t)/r^2-a_ = 0;
/ / 2 \ 2\
| G M | d | / d \ |
eq[1] := _rho(t) |- --- - |---- rho(t)| + rho(t) |--- phi(t)| |
| 2 | 2 | \ dt / |
\ r \ dt / /

/ / 2 \
| / d \ / d \ | d |
+ _phi(t) |-2 |--- rho(t)| |--- phi(t)| - rho(t) |---- phi(t)|
| \ dt / \ dt / | 2 |
\ \ dt /

\
|
| = 0
|
/
Eq[1, 2] := seq(Component(lhs(eq[1]), n) = 0, n = 1 .. 2);
/ 2 \ 2
G M | d | / d \
Eq[1, 2] := - --- - |---- rho(t)| + rho(t) |--- phi(t)| = 0,
2 | 2 | \ dt /
r \ dt /

/ 2 \
/ d \ / d \ | d |
-2 |--- rho(t)| |--- phi(t)| - rho(t) |---- phi(t)| = 0
\ dt / \ dt / | 2 |
\ dt /
NULL;

L_ := `&x`(r_, m*v_);
Error, (in Physics:-Vectors:-&x) found the unit vector _rho present also as a function _rho(t); either one form or the other - not both - can be present in an algebraic expression

 

http://www.maplesoft.com/support/help/Maple/view.aspx?path=Physics/.

i see bra and ket expression are so beautiful,

however,

how do real valued eigenvectors involve in calculation of bra and ket style computation?

m1 := <Old_Asso_eigenvector[2][1][1],Old_Asso_eigenvector[2][1][2],Old_Asso_eigenvector[2][1][3]>;
m2 := <Old_Asso_eigenvector[2][2][1],Old_Asso_eigenvector[2][2][2],Old_Asso_eigenvector[2][2][3]>;
m3 := <Old_Asso_eigenvector[2][3][1],Old_Asso_eigenvector[2][3][2],Old_Asso_eigenvector[2][3][3]>;

m1 := <Old_Asso_eigenvector[2][1][1],Old_Asso_eigenvector[2][2][1],Old_Asso_eigenvector[2][3][1]>;
m2 := <Old_Asso_eigenvector[2][1][2],Old_Asso_eigenvector[2][2][2],Old_Asso_eigenvector[2][3][2]>;
m3 := <Old_Asso_eigenvector[2][1][3],Old_Asso_eigenvector[2][2][3],Old_Asso_eigenvector[2][3][3]>;
ord := GramSchmidt([m1, m2, m3]);
ord := Basis([m1, m2, m3]);

ord[1].ord[2];  # expect = 1
ord[1].ord[3];  # expect = 1
ord[2].ord[1];  # expect = 1
ord[2].ord[3];  # expect = 1
ord[3].ord[1];  # expect = 1
ord[3].ord[2];  # expect = 1

is there a function get orthonormal basis ?

On the Physics Research and development page there are only 3 versions of the Physics package available.  What happened to the earlier final updates for Maple 16, 15 etc...

What is the latest one that can work on Maple12?  Was there one for M12?  What is the earliest versions of Maple the Research & Development Physics packages can work on?

1 2 3 4 5 6 7 Last Page 1 of 13