ecterrab

14702 Reputation

24 Badges

20 years, 232 days

MaplePrimes Activity


These are replies submitted by ecterrab

@Rotcev 
g_ and D_. See the help page ?Physics,Tensors, everything is explained in an organized way there.
Best

@Hullzie16 
I see now. The whole problem, that also explains "if I go back to the setup line and execute, it will return the correct expression!" is that you set the spherical coordinates before having set any coordinates. For instance enter Coordinates(X) after with(Physics) and it will work as you expected. I.e. it is indeed a minor, however a bug.

That said, your question called my attention... There are several cases, more than what is implemented: 3 orthogonal systems of coordinates, from each one to the other one, cases of Euclidean and Minkowski, dimension = 2, 3, 4, and in fact it should work in a generic non-flat spacetime provided that the old and new coordinates are two of Cartesian, cylindrical, and spherical. I will take a look at fixing the problem you noticed.

Hi, just saw this one, I do not see the worksheet you mention; do you still have it?

Incidentally, after the fix, you see a remarkably large WARNING message, intended. Still, it is all in ASCII characters (typewriter, the design of this is is from ~1980) In this screenshot you see what happens when you redefine WARNING to use Physics:-Warning . (You need to input kernelopts(opaquemodules = false) before redefining WARNING.):

So not only the message becomes readable in more general terms (e.g. the math, but not only), but you can also copy and paste from the math into an input line. 

My question is whether people here consider this a valuable improvement to the display of WARNING messages? I can make it a Physics:-Setup option, as in Physics:-Setup(typesetwarningmessages = true) that one could have in the maple.ini (or .mapleinit) initialization file, or also have it true by default whenever Physics is loaded. Since years all WARNING messages that come from the Physics package have typestting, this suggestion I am doing is about all WARNING messages from any command to be displayed with typesetting.

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

@FDS 
The problem is that you don't have the Physics package installed, so the 'latest' keyword does not work. Please see this Mapleprimes post: The 2025 Maplesoft Physics Updates and its future, where installation instructions are presented.

Edgardo S. Cheb-Terrab
Physics, Differential Equations, and Mathematical Functions
Research and Education—passionate about all that.

 

@Jean-Michel,

I stopped working for Maplesoft at the end of 2024. That said, trying to help you, note first your screenshots are not inserted in your post as thought. Then, the problem you mention "seems to be" some sort of "rights problem" I guess in the Windows OS (I use Macintosh, cannot help you there) but clicking here "Download Physics Updates" you can download the "Physics Updates.maple" file directly from the Maplecloud; then open Maple, input "libname", and if you have already installed the Physics Updates at some point, you should see

> libname;

                       "/Users/ecterrab/maple/toolbox/2025/Physics Updates/lib", ....<whatever else>

where I am showing you what I see in my computer, the important part is the "..../toolbox/2025/Physics Updates/lib" directory, drop the "Physics Updates.maple" file in that directory, and you will have the Updates working for you; the rest of files are not relevant.

Best
Edgardo

Physics, Differential Equations and Mathematical Functions, Maplesoft.

@Hullzie16 

with(Physics)

g_[arb]

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

(1)

"CompactDisplay(Phi(X),?): "

f__9(x1, x2, x3, x4)*`will now be displayed as`*f__9

(2)

Let's see what you do from close:

Christoffel[`~alpha`, beta, nu, definition]

Physics:-Christoffel[`~alpha`, beta, nu] = (1/2)*Physics:-g_[`~alpha`, `~mu`]*(Physics:-d_[nu](Physics:-g_[mu, beta], [X])+Physics:-d_[beta](Physics:-g_[mu, nu], [X])-Physics:-d_[mu](Physics:-g_[beta, nu], [X]))

(3)

'eval(Physics[Christoffel][`~alpha`, beta, nu] = (1/2)*Physics[g_][`~alpha`, `~mu`]*(Physics[d_][nu](Physics[g_][mu, beta], [X])+Physics[d_][beta](Physics[g_][mu, nu], [X])-Physics[d_][mu](Physics[g_][beta, nu], [X])), [g_[mu, beta] = exp(2*Phi(X))*g_[mu, beta], g_[mu, nu] = exp(2*Phi(X))*g_[mu, nu], g_[beta, nu] = exp(2*Phi(X))*g_[beta, nu]])'

eval(Physics:-Christoffel[`~alpha`, beta, nu] = (1/2)*Physics:-g_[`~alpha`, `~mu`]*(Physics:-d_[nu](Physics:-g_[mu, beta], [X])+Physics:-d_[beta](Physics:-g_[mu, nu], [X])-Physics:-d_[mu](Physics:-g_[beta, nu], [X])), [Physics:-g_[mu, beta] = Physics:-`*`(exp(Physics:-`*`(2, Phi(X))), Physics:-g_[mu, beta]), Physics:-g_[mu, nu] = Physics:-`*`(exp(Physics:-`*`(2, Phi(X))), Physics:-g_[mu, nu]), Physics:-g_[beta, nu] = Physics:-`*`(exp(Physics:-`*`(2, Phi(X))), Physics:-g_[beta, nu])])

(4)

Simplify(eval(Physics[Christoffel][`~alpha`, beta, nu] = (1/2)*Physics[g_][`~alpha`, `~mu`]*(Physics[d_][nu](Physics[g_][mu, beta], [X])+Physics[d_][beta](Physics[g_][mu, nu], [X])-Physics[d_][mu](Physics[g_][beta, nu], [X])), [Physics[g_][mu, beta] = Physics[`*`](exp(Physics[`*`](2, Phi(X))), Physics[g_][mu, beta]), Physics[g_][mu, nu] = Physics[`*`](exp(Physics[`*`](2, Phi(X))), Physics[g_][mu, nu]), Physics[g_][beta, nu] = Physics[`*`](exp(Physics[`*`](2, Phi(X))), Physics[g_][beta, nu])]))

Physics:-Christoffel[`~alpha`, beta, nu] = exp(2*Phi(X))*(Physics:-d_[nu](Phi(X), [X])*Physics:-g_[beta, `~alpha`]+Physics:-d_[beta](Phi(X), [X])*Physics:-g_[nu, `~alpha`]-Physics:-d_[`~alpha`](Phi(X), [X])*Physics:-g_[beta, nu]+Physics:-Christoffel[`~alpha`, beta, nu])

(5)

My reading of this: you want to have a conformal metric set, but in addition you want to have everything expressed in terms of the non-conformal metric, and see the factor exp(2*Phi) explicitly. Note that if the idea were to only have everything expressed in terms of the conformal metric, then my previous response suffices:

g_[mu, nu] = exp(2*Phi(X))*rhs(g_[])

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

(6)

"Define(?)"

{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:-g_[mu, nu], Physics:-gamma_[i, j], Physics:-Christoffel[mu, nu, alpha], Physics:-Einstein[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], Physics:-SpaceTimeVector[mu](X)}

(7)

And this already gives you everything in terms of the conformal metric, but you will only see the factor exp(2*Phi) explicitly if you ask for components:

Christoffel[1, mu, nu, matrix]

Physics:-Christoffel[1, mu, nu] = Matrix(%id = 36893488152338995188)

(8)

while if you ask only for the definition, you see the right thing, but do not see the factor exp(2*Phi) explicitly, because it is embedded within the components of the metric in (6).

Christoffel[definition]

Physics:-Christoffel[alpha, mu, nu] = (1/2)*Physics:-d_[nu](Physics:-g_[alpha, mu], [X])+(1/2)*Physics:-d_[mu](Physics:-g_[alpha, nu], [X])-(1/2)*Physics:-d_[alpha](Physics:-g_[mu, nu], [X])

(9)

But of course it is there

subs(alpha = 1, Physics[Christoffel][alpha, mu, nu] = (1/2)*Physics[d_][nu](Physics[g_][alpha, mu], [X])+(1/2)*Physics[d_][mu](Physics[g_][alpha, nu], [X])-(1/2)*Physics[d_][alpha](Physics[g_][mu, nu], [X]))

Physics:-Christoffel[1, mu, nu] = (1/2)*Physics:-d_[nu](Physics:-g_[1, mu], [X])+(1/2)*Physics:-d_[mu](Physics:-g_[1, nu], [X])-(1/2)*Physics:-d_[1](Physics:-g_[mu, nu], [X])

(10)

lhs(Physics[Christoffel][1, mu, nu] = (1/2)*Physics[d_][nu](Physics[g_][1, mu], [X])+(1/2)*Physics[d_][mu](Physics[g_][1, nu], [X])-(1/2)*Physics[d_][1](Physics[g_][mu, nu], [X])) = TensorArray(rhs(Physics[Christoffel][1, mu, nu] = (1/2)*Physics[d_][nu](Physics[g_][1, mu], [X])+(1/2)*Physics[d_][mu](Physics[g_][1, nu], [X])-(1/2)*Physics[d_][1](Physics[g_][mu, nu], [X])))

Physics:-Christoffel[1, mu, nu] = Matrix(%id = 36893488152548017444)

(11)

OK. Is it possible to express everything in terms of the non-conformal metric and see the factor exp(2*Phi) explicitly even when you have set a conformal metric? Yes in some sense. Define a tensor that represents the non-conformal metric

"`g__0`[mu,nu] = rhs(?)"

g__0[mu, nu] = Matrix(%id = 36893488152339003020)

(12)

"Define(?)"

{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:-g_[mu, nu], g__0[mu, nu], Physics:-gamma_[i, j], Physics:-Christoffel[mu, nu, alpha], Physics:-Einstein[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], Physics:-SpaceTimeVector[mu](X)}

(13)

Redefine now the metric as a conformal metric, but this time in terms of this tensor just defined representing the non-conformal metric

g_[mu, nu] = exp(2*Phi(X))*g__0[mu, nu]

Physics:-g_[mu, nu] = exp(2*Phi(X))*g__0[mu, nu]

(14)

Define(Physics[g_][mu, nu] = exp(2*Phi(X))*g__0[mu, nu])

{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:-g_[mu, nu], g__0[mu, nu], Physics:-gamma_[i, j], Physics:-Christoffel[mu, nu, alpha], Physics:-Einstein[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], Physics:-SpaceTimeVector[mu](X)}

(15)

Consider again the Christoffel definition

Christoffel[definition]

Physics:-Christoffel[alpha, mu, nu] = (1/2)*Physics:-d_[nu](Physics:-g_[alpha, mu], [X])+(1/2)*Physics:-d_[mu](Physics:-g_[alpha, nu], [X])-(1/2)*Physics:-d_[alpha](Physics:-g_[mu, nu], [X])

(16)

This is how you express it in terms of the non-conformal metric and with the factor exp(2*Phi) explicit

Substitute(g_[definition], Physics[Christoffel][alpha, mu, nu] = (1/2)*Physics[d_][nu](Physics[g_][alpha, mu], [X])+(1/2)*Physics[d_][mu](Physics[g_][alpha, nu], [X])-(1/2)*Physics[d_][alpha](Physics[g_][mu, nu], [X]))

Physics:-Christoffel[alpha, mu, nu] = (1/2)*Physics:-d_[nu](exp(2*Phi(X))*g__0[alpha, mu], [X])+(1/2)*Physics:-d_[mu](exp(2*Phi(X))*g__0[alpha, nu], [X])-(1/2)*Physics:-d_[alpha](exp(2*Phi(X))*g__0[mu, nu], [X])

(17)

By design Physics:-Substitute  works like subs. If you want it to work as eval, go with

Substitute(g_[definition], Physics[Christoffel][alpha, mu, nu] = (1/2)*Physics[d_][nu](Physics[g_][alpha, mu], [X])+(1/2)*Physics[d_][mu](Physics[g_][alpha, nu], [X])-(1/2)*Physics[d_][alpha](Physics[g_][mu, nu], [X]), evaluate)

Physics:-Christoffel[alpha, mu, nu] = Physics:-d_[nu](Phi(X), [X])*exp(2*Phi(X))*g__0[alpha, mu]+(1/2)*exp(2*Phi(X))*Physics:-d_[nu](g__0[alpha, mu], [X])+Physics:-d_[mu](Phi(X), [X])*exp(2*Phi(X))*g__0[alpha, nu]+(1/2)*exp(2*Phi(X))*Physics:-d_[mu](g__0[alpha, nu], [X])-Physics:-d_[alpha](Phi(X), [X])*exp(2*Phi(X))*g__0[mu, nu]-(1/2)*exp(2*Phi(X))*Physics:-d_[alpha](g__0[mu, nu], [X])

(18)

To the side, you realize that both (16) and (18) have the same components, also the same as (10)

subs(alpha = 1, Physics[Christoffel][alpha, mu, nu] = (1/2)*Physics[d_][nu](Physics[g_][alpha, mu], [X])+(1/2)*Physics[d_][mu](Physics[g_][alpha, nu], [X])-(1/2)*Physics[d_][alpha](Physics[g_][mu, nu], [X]))

Physics:-Christoffel[1, mu, nu] = (1/2)*Physics:-d_[nu](Physics:-g_[1, mu], [X])+(1/2)*Physics:-d_[mu](Physics:-g_[1, nu], [X])-(1/2)*Physics:-d_[1](Physics:-g_[mu, nu], [X])

(19)

lhs(Physics[Christoffel][1, mu, nu] = (1/2)*Physics[d_][nu](Physics[g_][1, mu], [X])+(1/2)*Physics[d_][mu](Physics[g_][1, nu], [X])-(1/2)*Physics[d_][1](Physics[g_][mu, nu], [X])) = TensorArray(rhs(Physics[Christoffel][1, mu, nu] = (1/2)*Physics[d_][nu](Physics[g_][1, mu], [X])+(1/2)*Physics[d_][mu](Physics[g_][1, nu], [X])-(1/2)*Physics[d_][1](Physics[g_][mu, nu], [X])))

Physics:-Christoffel[1, mu, nu] = Matrix(%id = 36893488151897029076)

(20)

subs(alpha = 1, Physics[Christoffel][alpha, mu, nu] = Physics[d_][nu](Phi(X), [X])*exp(2*Phi(X))*g__0[alpha, mu]+(1/2)*exp(2*Phi(X))*Physics[d_][nu](g__0[alpha, mu], [X])+Physics[d_][mu](Phi(X), [X])*exp(2*Phi(X))*g__0[alpha, nu]+(1/2)*exp(2*Phi(X))*Physics[d_][mu](g__0[alpha, nu], [X])-Physics[d_][alpha](Phi(X), [X])*exp(2*Phi(X))*g__0[mu, nu]-(1/2)*exp(2*Phi(X))*Physics[d_][alpha](g__0[mu, nu], [X]))

Physics:-Christoffel[1, mu, nu] = Physics:-d_[nu](Phi(X), [X])*exp(2*Phi(X))*g__0[1, mu]+(1/2)*exp(2*Phi(X))*Physics:-d_[nu](g__0[1, mu], [X])+Physics:-d_[mu](Phi(X), [X])*exp(2*Phi(X))*g__0[1, nu]+(1/2)*exp(2*Phi(X))*Physics:-d_[mu](g__0[1, nu], [X])-Physics:-d_[1](Phi(X), [X])*exp(2*Phi(X))*g__0[mu, nu]-(1/2)*exp(2*Phi(X))*Physics:-d_[1](g__0[mu, nu], [X])

(21)

lhs(Physics[Christoffel][1, mu, nu] = Physics[d_][nu](Phi(X), [X])*exp(2*Phi(X))*g__0[1, mu]+(1/2)*exp(2*Phi(X))*Physics[d_][nu](g__0[1, mu], [X])+Physics[d_][mu](Phi(X), [X])*exp(2*Phi(X))*g__0[1, nu]+(1/2)*exp(2*Phi(X))*Physics[d_][mu](g__0[1, nu], [X])-Physics[d_][1](Phi(X), [X])*exp(2*Phi(X))*g__0[mu, nu]-(1/2)*exp(2*Phi(X))*Physics[d_][1](g__0[mu, nu], [X])) = TensorArray(rhs(Physics[Christoffel][1, mu, nu] = Physics[d_][nu](Phi(X), [X])*exp(2*Phi(X))*g__0[1, mu]+(1/2)*exp(2*Phi(X))*Physics[d_][nu](g__0[1, mu], [X])+Physics[d_][mu](Phi(X), [X])*exp(2*Phi(X))*g__0[1, nu]+(1/2)*exp(2*Phi(X))*Physics[d_][mu](g__0[1, nu], [X])-Physics[d_][1](Phi(X), [X])*exp(2*Phi(X))*g__0[mu, nu]-(1/2)*exp(2*Phi(X))*Physics[d_][1](g__0[mu, nu], [X])))

Physics:-Christoffel[1, mu, nu] = Matrix(%id = 36893488152338993508)

(22)

The goodness of this approach where you redefine the metric (either of the two forms presented above) is that everything comes correctly defined in terms of the conformal metric, although if you want to see it in terms of the non-conformal metric and that factor you will always first need to express in terms of the metric, then substitute as in (17). For example,

Ricci[scalarsdefinition]

Phi__00 = -(1/2)*Physics:-Ricci[`~mu`, `~nu`]*Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-l_[nu], Phi__01 = -(1/2)*Physics:-Ricci[`~mu`, `~nu`]*Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-m_[nu], Phi__02 = -(1/2)*Physics:-Ricci[`~mu`, `~nu`]*Physics:-Tetrads:-m_[mu]*Physics:-Tetrads:-m_[nu], Phi__11 = -(1/4)*Physics:-Ricci[`~mu`, `~nu`]*(Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-n_[nu]+Physics:-Tetrads:-m_[mu]*Physics:-Tetrads:-mb_[nu]), Phi__12 = -(1/2)*Physics:-Ricci[`~mu`, `~nu`]*Physics:-Tetrads:-m_[mu]*Physics:-Tetrads:-n_[nu], Phi__22 = -(1/2)*Physics:-Ricci[`~mu`, `~nu`]*Physics:-Tetrads:-n_[mu]*Physics:-Tetrads:-n_[nu], Lambda = (1/24)*Physics:-Ricci[mu, `~mu`]

(23)

Take the first one and rewrite in terms of g_

convert((Phi__00 = -(1/2)*Physics[Ricci][`~mu`, `~nu`]*Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-l_[nu], Phi__01 = -(1/2)*Physics[Ricci][`~mu`, `~nu`]*Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-m_[nu], Phi__02 = -(1/2)*Physics[Ricci][`~mu`, `~nu`]*Physics:-Tetrads:-m_[mu]*Physics:-Tetrads:-m_[nu], Phi__11 = -(1/4)*Physics[Ricci][`~mu`, `~nu`]*(Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-n_[nu]+Physics:-Tetrads:-m_[mu]*Physics:-Tetrads:-mb_[nu]), Phi__12 = -(1/2)*Physics[Ricci][`~mu`, `~nu`]*Physics:-Tetrads:-m_[mu]*Physics:-Tetrads:-n_[nu], Phi__22 = -(1/2)*Physics[Ricci][`~mu`, `~nu`]*Physics:-Tetrads:-n_[mu]*Physics:-Tetrads:-n_[nu], Lambda = (1/24)*Physics[Ricci][mu, `~mu`])[1], g_)

Phi__00 = -(1/2)*Physics:-g_[`~lambda`, `~nu`]*Physics:-g_[`~kappa`, `~mu`]*((1/2)*Physics:-d_[alpha](Physics:-g_[`~alpha`, `~chi`], [X])*(Physics:-d_[lambda](Physics:-g_[chi, kappa], [X])+Physics:-d_[kappa](Physics:-g_[chi, lambda], [X])-Physics:-d_[chi](Physics:-g_[kappa, lambda], [X]))+(1/2)*Physics:-g_[`~alpha`, `~chi`]*(Physics:-d_[alpha](Physics:-d_[lambda](Physics:-g_[chi, kappa], [X]), [X])+Physics:-d_[alpha](Physics:-d_[kappa](Physics:-g_[chi, lambda], [X]), [X])-Physics:-d_[alpha](Physics:-d_[chi](Physics:-g_[kappa, lambda], [X]), [X]))-(1/2)*Physics:-d_[lambda](Physics:-g_[`~alpha`, `~tau`], [X])*Physics:-d_[kappa](Physics:-g_[alpha, tau], [X])-(1/2)*Physics:-g_[`~alpha`, `~tau`]*Physics:-d_[kappa](Physics:-d_[lambda](Physics:-g_[alpha, tau], [X]), [X])+(1/4)*Physics:-g_[`~beta`, `~omega`]*(Physics:-d_[lambda](Physics:-g_[kappa, omega], [X])+Physics:-d_[kappa](Physics:-g_[lambda, omega], [X])-Physics:-d_[omega](Physics:-g_[kappa, lambda], [X]))*Physics:-g_[`~alpha`, `~sigma`]*Physics:-d_[beta](Physics:-g_[alpha, sigma], [X])-(1/4)*Physics:-g_[`~beta`, `~psi`]*(Physics:-d_[kappa](Physics:-g_[alpha, psi], [X])+Physics:-d_[alpha](Physics:-g_[kappa, psi], [X])-Physics:-d_[psi](Physics:-g_[alpha, kappa], [X]))*Physics:-g_[`~alpha`, `~upsilon`]*(Physics:-d_[lambda](Physics:-g_[beta, upsilon], [X])+Physics:-d_[beta](Physics:-g_[lambda, upsilon], [X])-Physics:-d_[upsilon](Physics:-g_[beta, lambda], [X])))*Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-l_[nu]

(24)

Substitute(g_[definition], Phi__00 = -(1/2)*Physics[g_][`~lambda`, `~nu`]*Physics[g_][`~kappa`, `~mu`]*((1/2)*Physics[d_][alpha](Physics[g_][`~alpha`, `~chi`], [X])*(Physics[d_][lambda](Physics[g_][chi, kappa], [X])+Physics[d_][kappa](Physics[g_][chi, lambda], [X])-Physics[d_][chi](Physics[g_][kappa, lambda], [X]))+(1/2)*Physics[g_][`~alpha`, `~chi`]*(Physics[d_][alpha](Physics[d_][lambda](Physics[g_][chi, kappa], [X]), [X])+Physics[d_][alpha](Physics[d_][kappa](Physics[g_][chi, lambda], [X]), [X])-Physics[d_][alpha](Physics[d_][chi](Physics[g_][kappa, lambda], [X]), [X]))-(1/2)*Physics[d_][lambda](Physics[g_][`~alpha`, `~tau`], [X])*Physics[d_][kappa](Physics[g_][alpha, tau], [X])-(1/2)*Physics[g_][`~alpha`, `~tau`]*Physics[d_][kappa](Physics[d_][lambda](Physics[g_][alpha, tau], [X]), [X])+(1/4)*Physics[g_][`~beta`, `~omega`]*(Physics[d_][lambda](Physics[g_][kappa, omega], [X])+Physics[d_][kappa](Physics[g_][lambda, omega], [X])-Physics[d_][omega](Physics[g_][kappa, lambda], [X]))*Physics[g_][`~alpha`, `~sigma`]*Physics[d_][beta](Physics[g_][alpha, sigma], [X])-(1/4)*Physics[g_][`~beta`, `~psi`]*(Physics[d_][kappa](Physics[g_][alpha, psi], [X])+Physics[d_][alpha](Physics[g_][kappa, psi], [X])-Physics[d_][psi](Physics[g_][alpha, kappa], [X]))*Physics[g_][`~alpha`, `~upsilon`]*(Physics[d_][lambda](Physics[g_][beta, upsilon], [X])+Physics[d_][beta](Physics[g_][lambda, upsilon], [X])-Physics[d_][upsilon](Physics[g_][beta, lambda], [X])))*Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-l_[nu])

Phi__00 = -(1/2)*(exp(2*Phi(X)))^2*g__0[`~lambda`, `~nu`]*g__0[`~kappa`, `~mu`]*((1/2)*Physics:-d_[alpha](exp(2*Phi(X))*g__0[`~alpha`, `~chi`], [X])*(Physics:-d_[lambda](exp(2*Phi(X))*g__0[chi, kappa], [X])+Physics:-d_[kappa](exp(2*Phi(X))*g__0[chi, lambda], [X])-Physics:-d_[chi](exp(2*Phi(X))*g__0[kappa, lambda], [X]))+(1/2)*exp(2*Phi(X))*g__0[`~alpha`, `~chi`]*(Physics:-d_[alpha](Physics:-d_[lambda](exp(2*Phi(X))*g__0[chi, kappa], [X]), [X])+Physics:-d_[alpha](Physics:-d_[kappa](exp(2*Phi(X))*g__0[chi, lambda], [X]), [X])-Physics:-d_[alpha](Physics:-d_[chi](exp(2*Phi(X))*g__0[kappa, lambda], [X]), [X]))-(1/2)*Physics:-d_[lambda](exp(2*Phi(X))*g__0[`~alpha`, `~tau`], [X])*Physics:-d_[kappa](exp(2*Phi(X))*g__0[alpha, tau], [X])-(1/2)*exp(2*Phi(X))*g__0[`~alpha`, `~tau`]*Physics:-d_[kappa](Physics:-d_[lambda](exp(2*Phi(X))*g__0[alpha, tau], [X]), [X])+(1/4)*(exp(2*Phi(X)))^2*g__0[`~beta`, `~omega`]*(Physics:-d_[lambda](exp(2*Phi(X))*g__0[kappa, omega], [X])+Physics:-d_[kappa](exp(2*Phi(X))*g__0[lambda, omega], [X])-Physics:-d_[omega](exp(2*Phi(X))*g__0[kappa, lambda], [X]))*g__0[`~alpha`, `~sigma`]*Physics:-d_[beta](exp(2*Phi(X))*g__0[alpha, sigma], [X])-(1/4)*(exp(2*Phi(X)))^2*g__0[`~beta`, `~psi`]*(Physics:-d_[kappa](exp(2*Phi(X))*g__0[alpha, psi], [X])+Physics:-d_[alpha](exp(2*Phi(X))*g__0[kappa, psi], [X])-Physics:-d_[psi](exp(2*Phi(X))*g__0[alpha, kappa], [X]))*g__0[`~alpha`, `~upsilon`]*(Physics:-d_[lambda](exp(2*Phi(X))*g__0[beta, upsilon], [X])+Physics:-d_[beta](exp(2*Phi(X))*g__0[lambda, upsilon], [X])-Physics:-d_[upsilon](exp(2*Phi(X))*g__0[beta, lambda], [X])))*Physics:-Tetrads:-l_[mu]*Physics:-Tetrads:-l_[nu]

(25)

  NULL

Download Redefine_the_metric_(2).mw

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

@acer 
I understand that you're presenting what you believe is the correct way to participate in this forum. But where are these supposed 'right rules' actually written? What about others who may think differently? 

Edgardo

@nm 
I saw your other post. And the problem. It is not at all the one you posted here. And it is indeed a bug, not noticed before, I voted up your evaporated question. I really wonder what is happening here, why people's posts/questions are deleted so easily.

From what I heard, this seems to be a problem in Maple's evalc; apparently there is already a fix being tested.

@nm 
The new `assuming/restore_previous_state` is not there in the current Maple nor in any of its Updates. So, no, you have no way to test it until it is included in an Updates. I could have included it in the Physics Updates, but I prefer to stick to the plan: fixes not related to Physics go into the Customer Support Updates. I understand that soon, perhaps even today, this touch in assuming implementing the idea described in my answer, it does resolve the problem, will be included in the next Maplesoft Customer Support Updates.

@nm
The problem, not related to Physics, is "fixed", as I described above, first item. So as said, (after the implementation is made available through some Updates) you will be able to adjust the scripts that you run adding the line mentioned, as in "try timelimit(...) catch: `assuming/restore_previous_state` end try" Ditto if you interrupt with the red button: input `assuming/restore_previous_state`; And in all cases that will restore the original state that assuming was unable to restore itself due to your manual interruption. The implementation of this idea is already in Maplesoft's library under development (not yet in the kernel - see the second item), so I'd imagine (the implementation of the first item) will appear in the next version of the Maplesoft Support Updates.

Best

@Art Kalb 

From the example you posted I wouldn't arrive at the same conclusion you are arriving. Maybe if you post a worksheet showing concretely your solving block matrix equations problem, e.g. showing the input, and what you expect for output?

 @nm, part of the problem is the way you reported this issue (which exists, no doubt). Here is how I'd suggest you to report it (feel free to recast your post editing the below as you prefer and delete this comment)

 

restart;

ode:=y(x)*sqrt(1 + diff(y(x), x)^2) - a*y(x)*diff(y(x), x) - a*x = 0:
sol:=-_C4^2 + (-y(x)*sqrt(_C4^2/y(x)^2) + a*x)^2/a^2 + y(x)^2 = 0:
ode_to_test:=y(x)*(1+diff(y(x),x)^2)^(1/2)-a*y(x)*diff(y(x),x)-a*x = 0:

 

Instead of calling Physics:-Setup, skip all that and go directly to what matters for assume and assuming

_Env_Physics_assumingusesAssume := true

true

(1)

All this setting does is: "when assuming calls assume, add the keyword 'renamevariables = false' " (BTW you can check that entering debug(assume, statements = false) to just see what arrives there)

 

OK. Try solve now

solve(ode_to_test,diff(y(x),x))

(-a^2*x+(y(x)^2*a^2+a^2*x^2-y(x)^2)^(1/2))/((a^2-1)*y(x)), -(a^2*x+(y(x)^2*a^2+a^2*x^2-y(x)^2)^(1/2))/((a^2-1)*y(x))

(2)

Excellent. Next your odetest call, having in mind that you are forcing a low-level interruption with timelimit (the problem with that is that caches - some of which are meant to be cleared before a command exits - don't get cleared at all, which may result in computational problems difficult to predict)

timelimit(30,(odetest(sol,ode,y(x)) assuming integer));

Error, (in getassumptions:-Do) time expired |lib/assume/src/getassumptions.mm:79|

 

 

OK, try now that solve line again, and you see it doesn't work anymore

solve(ode_to_test,diff(y(x),x))

Warning, solve may be ignoring assumptions on the input variables.

 

 

In summary: this is not related to the native Maple Physics package, the situation looks similar to another one you reported recently. I am not working for Maplesoft at this point, just looking, if I find some time later today or tomorrow I will suggest a fix to the Maplesoft team as the other time.

 

Independent of all the above, for me, the real question here is why odetest hangs (itself not a problem in odetest by in the library commands it calls, mainly the Maple simplifiers); I can't get it to terminate even with 240 seconds, and even commenting that _Env_Physics_assumingusesAssume input line; which seems to me clearly indicates a bug somewhere else.

 


Download How_to_reproduce.mw

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

Salim, you are more than welcome. Little things like that (pde versus pdes) happen all the time; it is one of the disadvantages of computers: they do not get the context "in mind", only the "literal-and-one-at-a-time" thing. It is changing though ... Let's see.

Best

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