Maple 18 Questions and Posts

These are Posts and Questions associated with the product, Maple 18

restart;
Eq1 := diff(T1(t), t) = (W*Cp*(To-T1(t))+UA*(Ts-T1(t)))/(M*Cp);
Eq2 := diff(T2(t), t) = (W*Cp*(T1(t)-T2(t))+UA*(Ts-T2(t)))/(M*Cp);
Eq3 := diff(T3(t), t) = (W*Cp*(T2(t)-T3(t))+UA*(Ts-T3(t)))/(M*Cp);
sys := Eq1, Eq2, Eq3;

Operational Veriables

W := 100;
UA := 10;
Cp := 2;
M := 1000;
To := 20;
Ts := 250;

Initial Conditions

sys1 := {Eq1, Eq2, Eq3};

nsys := nops(sys1);

ics := {T1(0) = 20, T2(0) = 20, T3(0) = 20};
{T1(0) = 20, T2(0) = 20, T3(0) = 20}
nics := nops(ics);
for i from 1 to nics do Sol ||i:=dsolve({sys1, ics[i]},{T1(t),T2(t),T3(t)},numeric)od;
Error, unable to match delimiters
Typesetting:-mambiguous(Typesetting:-mambiguous( for i from 1 to

nics do Sol verbarverbariAssigndsolvelpar(sys1comma ics(i))

commalcubT1(t)commaT2(t)commaT3(t)rcubcommanumericrparod,

Typesetting:-merror("unable to match delimiters")))

 

I was running some wav files through the spectrogram increasing the fft window size.  Generally just playing around.

I have run into an issue.  After running a few times the mem usage for maple.exe starts to run high.  I get it up to 600,000 K and still seems to run okay - ie able to produce a spectrogram.  However running it again at a higher window size of course eats up more memory and right around 1,000,000 K mem usage everything slows down and it appears to freeze.  The spectrogram is not displayed, after a short while CPU usage drops to zero the heartbeat circle (evaluating symbol - bottom left corner) stays solid and everything appears to stop. 

It is possible to close the worksheet in the same maple session after some time and open a new one.

Another note.  After one worksheet has ramped up the mem usage to a large value say 800,000 K (it doesn't really matter) .. when I close the worksheet (in the same maple session) the mem usage remains high even after a restart;gc():   I not sure if this has been normal throughout the ages, but I thought after closing a high mem usage worksheet in the same maple session the mem usage in the windows task manager would have updated back down under 100,000 K at least. 

The system Maple is running on right now is a P4 3Ghz Windows XP at 2.50 GB RAM Maple 18.00 stnd GUI 32 bit.  Using the spectrograms example in the application center for start.

Any insight as to why the computer starts to freeze up around 1,000,000 K mem usage would be helpful.  Also why closing a worksheet had no effect on the mem usage.  Would be interesting to know if this occurs on other machines as well.

As I stated in an earlier post, I'm new at this.

I'm trying to write a procedure to calculate what is called a "crescent latitude". The full formula can be seen here: https://db.tt/QAUzH5i0.

b is equal to 0.081819221; it takes a single parameter φ (latitude of a location in degrees)

 

I normally get errors like unable to parse, unable to match delimters, etc. and the result is the name of the procedure and whatevere value of the parameter I put in parenthesis, not the calculated value.

Anybody can help?

 

Thanlk you

Martina

Please see the link below of the screen shot from Maple

https://www.dropbox.com/s/r7xn2uqnn4qfbp7/Screenshot%202014-05-12%2015.21.07.png

This is an addition to the following post:

http://www.mapleprimes.com/questions/141795-Unit-Conversion-Problem

 

But I use the clickable facilities of Maple.  Here is the problem:

>32[[degC]];

                         32[[degC]]
right-click -> Units -> Replace units -> degF

                         288           
                         --- [[degF]]
                          5            

>evalf[5]( (2) );
                       57.600[[degF]]

but if I do that:


>convert(32, 'temperature', 'degC', 'degF');

                              448
                              ---
                               5
                           
>evalf[5]( (4) );
                             89.600

Why the conversion is bad when you try to do it by the clickable way????????????

 

--------------------------------------
Mario Lemelin
Maple 18 Ubuntu 13.10 - 64 bits
Maple 18 Win 7 - 64 bits messagerie : mario.lemelin@cgocable.ca téléphone :  (819) 376-0987

ode := diff(sqrt(U(t)), t) = sqrt(U__0)-sqrt(U(t))

ics := U(0) = 0

dsolve({ics, ode})

 

And the result maple returns is U(t)=0 !

 

 

Diff_EQ_sample_questions.pdf

 

This is a link to two sample questions I am trying to learn how to solve using maple. I am using maple student edition of maple. Any help would be great. Thank you.

 

 

im solving 6 ODE which is the equations are unsteady with boundary conditions.. the program can be run when A=0 but when A=0.2 or others value .. its cannot be run... A means for unsteadiness... before this i solve for steady equations.. this is first time i solve for unsteady using maple.. anyone know where i am wrong??? thanks for helping :)

 

restart; with(plots); n := 2; Ec := 2.0; Pr := .72; N := .2; M := .1; l := 1; Nr := 1; y := 1; blt := 2.5; B := .1; a1 := 1; rho := .5

Eq1 := diff(f(eta), eta, eta, eta)+f(eta)*(diff(f(eta), eta, eta))-(diff(f(eta), eta))^2+l*B*H(eta)*(F(eta)-(diff(f(eta), eta)))-M*(diff(f(eta), eta))-A*(diff(f(eta), eta)+.5*eta*(diff(f(eta), eta, eta))) = 0;

diff(diff(diff(f(eta), eta), eta), eta)+f(eta)*(diff(diff(f(eta), eta), eta))-(diff(f(eta), eta))^2+.1*H(eta)*(F(eta)-(diff(f(eta), eta)))-.1*(diff(f(eta), eta))-A*(diff(f(eta), eta)+.5*eta*(diff(diff(f(eta), eta), eta))) = 0

(1)

Eq2 := A*(F(eta)+.5*eta*(diff(F(eta), eta)))+G(eta)*(diff(F(eta), eta))+F(eta)^2+B*(F(eta)-(diff(f(eta), eta))) = 0;

A*(F(eta)+.5*eta*(diff(F(eta), eta)))+G(eta)*(diff(F(eta), eta))+F(eta)^2+.1*F(eta)-.1*(diff(f(eta), eta)) = 0

(2)

Eq3 := .5*A*(G(eta)+.5*eta*(diff(G(eta), eta)))+G(eta)*(diff(G(eta), eta))+B*(f(eta)+G(eta)) = 0;

.5*A*(G(eta)+.5*eta*(diff(G(eta), eta)))+G(eta)*(diff(G(eta), eta))+.1*f(eta)+.1*G(eta) = 0

(3)

Eq4 := G(eta)*(diff(H(eta), eta))+H(eta)*(diff(G(eta), eta))+F(eta)*H(eta) = 0;

G(eta)*(diff(H(eta), eta))+H(eta)*(diff(G(eta), eta))+F(eta)*H(eta) = 0

(4)

Eq5 := (1+Nr)*(diff(theta(eta), eta, eta))+Pr*((diff(theta(eta), eta))*f(eta)-2*(diff(f(eta), eta))*theta(eta))+N*Pr*a1*(theta1(eta)-theta(eta))/rho+N*Pr*Ec*B*(F(eta)-(diff(f(eta), eta)))^2/rho+Pr*Ec*(diff(f(eta), eta))^2-.5*A*Pr*(4*theta(eta)+eta*(diff(theta(eta), eta))) = 0;

2*(diff(diff(theta(eta), eta), eta))+.72*(diff(theta(eta), eta))*f(eta)-1.44*(diff(f(eta), eta))*theta(eta)+.2880000000*theta1(eta)-.2880000000*theta(eta)+0.5760000000e-1*(F(eta)-(diff(f(eta), eta)))^2+1.440*(diff(f(eta), eta))^2-.360*A*(4*theta(eta)+eta*(diff(theta(eta), eta))) = 0

(5)

Eq6 := 2*F(eta)*theta1(eta)+G(eta)*(diff(theta1(eta), eta))+a1*y*(theta1(eta)-theta(eta))+.5*A*(4*theta1(eta)+eta*(diff(theta1(eta), eta))) = 0;

2*F(eta)*theta1(eta)+G(eta)*(diff(theta1(eta), eta))+theta1(eta)-theta(eta)+.5*A*(4*theta1(eta)+eta*(diff(theta1(eta), eta))) = 0

(6)

bcs1 := f(0) = 0, (D(f))(0) = 1, (D(f))(blt) = 0, F(blt) = 0, G(blt) = -f(blt), H(blt) = n, theta(0) = 1, theta(blt) = 0, theta1(blt) = 0;

f(0) = 0, (D(f))(0) = 1, (D(f))(2.5) = 0, F(2.5) = 0, G(2.5) = -f(2.5), H(2.5) = 2, theta(0) = 1, theta(2.5) = 0, theta1(2.5) = 0

(7)

L := [0., .2, .5];

[0., .2, .5]

(8)

for k to 3 do R := dsolve(eval({Eq1, Eq2, Eq3, Eq4, Eq5, Eq6, bcs1}, A = L[k]), [f(eta), F(eta), G(eta), H(eta), theta(eta), theta1(eta)], numeric, output = listprocedure); Y || k := rhs(R[3]); YP || k := rhs(R[5]); YR || k := rhs(R[6]); YQ || k := rhs(R[7]); YA || k := rhs(R[9]); YB || k := rhs(R[8]) end do

Error, (in dsolve/numeric/bvp) initial Newton iteration is not converging

 

P1 := plot([Y || (1 .. 3)], 0 .. 10, labels = [eta, (D(f))(eta)])

P2 := plot([YP || (1 .. 3)], 0 .. 10, labels = [eta, F(eta)])

plots:-display([P1, P2])

Error, (in plots:-display) expecting plot structures but received: [P1, P2]

 

``

 

Download unsteadyManjunatha.mw

Several years ago, I used to plot, in Maple 7 I think, 3D scalar functions by using procedures to create a 3D mesh and populate the data points before I could use plot3d.

I wonder if there is a more convenient (least coding) way to do it today? Consider for example f(x,y,z) = x^2 + y^2+z^2

A way to visualize a number of concentric isosurfaces of f is to loop with (is there a tag to write this in code block?): 

 

for i to 10 do iso[i] := implicitplot3d( f = i, x = -10 .. 10, y = -10 .. 10, z = -10 .. 10) end do

display(seq(iso[j], j = 1 .. 10))

 

Of course, visualizing the output is another issue.  I wish for an app to explore 3D data like Paraview. It does not have to be as sophisticated, but to display standard elements like isosurfaces and arbitrary cutting plane views would suffice.

If you know a package/app/procedure in Maple of this nature, please share it here. Thank you

 

Sorry if this has been already posted.

 

When print() is invoked from a proc into a module, non-English characters are not properly displayed with Maple 18.

It works ok if it is invoked from within the workbook.

 

Example:
print("Están en perspectiva")

Put this sentence in a proc into a module and the character "á" wont be displayed

Output: "Est�n en perspectiva"

Any hint about how to treat this issue?

Thank you very much.

César Lozada 

 

 

Some years ago member William Fish started a long discussion in part about a numeric integral involving high parameter (high oscillation) Bessel J0. That numeric integration task appeared in a Bitwise Magazine article.

At that time even obtaining numeric results involved extra effort such as handling real and imaginary components of the integrand separately, and requesting particular methods (sometimes hacked, to bump up the subinterval limit, for very high parameter values).

That led to a post where I showed that the result could be obtained quickly by using a fast compiled BesselJ (J0) from an external library along with a modified low-level call to a particular evalf/Int solver.

And sometime after that a numeric result for the real & imaginary split integrand became much more readily (if not quickly) available by using a new `maxintervals` option of evalf/Int to specify the maximal number of subintervals for the particular solver.

Maple 18 has its own compiled implementations of the Bessel functions for "hardware" (double) precision arguments. So now the numeric evaluations of the integrand are computed much faster.

Using Maple 18.00 on 64bit Windows 7 the same numeric results obtain in under a second, in a simple, single call to evalf,Int.

restart:

CodeTools:-Usage(
  evalf(Int(BesselJ(0, 50001*x)*x*exp(I*(355*x^2*1/2)), x = .35 .. 1))
                 );
memory used=9.28MiB, alloc change=32.00MiB, cpu time=437.00ms, real time=441.00ms, gc time=0ns

                           -8                 -8  
             3.181753502 10   - 7.798301124 10   I

restart:

CodeTools:-Usage(
  evalf(Int(BesselJ(0, 10000*x)*x*exp(I*(355*x^2*1/2)), x = .35 .. 1))
                 );
memory used=6.83MiB, alloc change=32.00MiB, cpu time=218.00ms, real time=211.00ms, gc time=15.60ms

                            -7                 -7  
             -2.007752340 10   + 4.275388462 10   I

 

Of course the ramifications of fast, compiled Bessel functions at double precision extend much farther than just this one example. But I like seeing the speed improvement in terms of a concrete example.

acer

For solving problem sets, I have a pdf template I created for myself that has a header with a blank for the class name, TA, professor, date, etc. In addition to this header, I had a margin on the left to scribble questions I had and to holepunch. 

 

I used to print out the template and write on the template and turn in that as my pset.

 

I am nowthinking of doing everything on the computer. Writing out all of the problem set on the computer. Combining stuff from maple, combining handwritten stuff from the computer using a digitizer. However I want to write it all on top of the my template that I created, which is a pdf file. I can turn the pdf into an image file if need be. 

 

What would be the easiest way to do what I want? To open a program that automatically sets that pdf as the template and easily lets me handwrite stuff I want and paste in maple code? 

 

Right now if I tried my idea, I would basically be constantly copying and pasting stuff from maple and my digitizer drawn pictures/equations into one file and it would be very clumsy.

 

Basically there are problems that I do partially on maple and I just want to unify all my work into one easy, printable file. 

Hello,

I am a student and using Maple to type homework assignments because of the math symbols available.  I was using Maple 17 but upgraded to 18, and its not as easy to use as 17.  For right now I am using it in text mode, because that is what I need.  But I can't figure out an easy way to do subscripts and superscripts in text mode.  Also, the "element symbol," where is it?  I feel like a lot of stuff is missing.  For instance, the arrows, the sideways triangle, lots of symbols I used before the upgrade I cant find.  Can someone help please???

After using Simplify the indices are are arranged in the tensor.  I am using the April 14th update from the Physics R&D page.

 


restart

with(Physics):

Setup(mathematicalnotation = true, coordinatesystems = X)

[coordinatesystems = {X}, mathematicalnotation = true]

(1)

Define(l[mu], eta[mu, nu] = -rhs(g_[Minkowski]))

{Physics:-Dgamma[mu], Physics:-Psigma[mu], Physics:-d_[mu], eta[mu, nu], Physics:-g_[mu, nu], l[mu], Physics:-KroneckerDelta[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], Physics:-SpaceTimeVector[mu](X)}

(2)

declare(l(X))

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

(3)

InitialMetric := g_[mu, nu] = eta[mu, nu]+Physics:-`*`(l[mu](X), l[nu](X)); 1; Define(G[mu, nu] = rhs(InitialMetric))

{Physics:-Dgamma[mu], G[mu, nu], Physics:-Psigma[mu], Physics:-d_[mu], eta[mu, nu], Physics:-g_[mu, nu], l[mu], Physics:-KroneckerDelta[mu, nu], Physics:-LeviCivita[alpha, beta, mu, nu], Physics:-SpaceTimeVector[mu](X)}

(4)

Setup(metric = rhs(G[]))

[metric = {(1, 1) = 1+l[1](X)^2, (1, 2) = l[1](X)*l[2](X), (1, 3) = l[1](X)*l[3](X), (1, 4) = l[1](X)*l[4](X), (2, 2) = 1+l[2](X)^2, (2, 3) = l[2](X)*l[3](X), (2, 4) = l[2](X)*l[4](X), (3, 3) = 1+l[3](X)^2, (3, 4) = l[3](X)*l[4](X), (4, 4) = -1+l[4](X)^2}]

(5)

NULL

We first define the Christoffel symbol in terms of the metric,   `g__μ,ν`.

``

Christoffel[`~rho`, mu, nu] = convert(Christoffel[`~rho`, mu, nu], g_)

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

(6)

SubstituteTensor(g_[mu, nu] = eta[mu, nu]+Physics:-`*`(l[mu](X), l[nu](X)), Physics:-Christoffel[`~rho`, mu, nu] = (1/2)*Physics:-g_[`~alpha`, `~rho`]*(Physics:-d_[nu](Physics:-g_[alpha, mu], [X])+Physics:-d_[mu](Physics:-g_[alpha, nu], [X])-Physics:-d_[alpha](Physics:-g_[mu, nu], [X])), evaluateexpression)

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

(7)

Simplify(SubstituteTensor(Physics:-`*`(l[`~alpha`](X), l[`~rho`](X)) = -Physics:-`*`(l[`~alpha`](X), l[`~rho`](X)), Physics:-Christoffel[`~rho`, mu, nu] = (1/2)*(eta[`~alpha`, `~rho`]+l[`~alpha`](X)*l[`~rho`](X))*(Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)+l[alpha](X)*Physics:-d_[nu](l[mu](X), [X])+Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)+l[alpha](X)*Physics:-d_[mu](l[nu](X), [X])-Physics:-d_[alpha](l[mu](X), [X])*l[nu](X)-l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])), evaluateexpression))

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

(8)

SubstituteTensor(Physics:-`*`(l[alpha](X), eta[`~alpha`, `~rho`]) = l[`~rho`](X), Physics:-Christoffel[`~rho`, mu, nu] = (1/2)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[alpha](X)*Physics:-d_[nu](l[mu](X), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[alpha](X)*Physics:-d_[mu](l[nu](X), [X])*eta[`~alpha`, `~rho`]+(1/2)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X])*eta[`~alpha`, `~rho`]-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)+(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[alpha](X)*Physics:-d_[nu](l[mu](X), [X])-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[alpha](X)*Physics:-d_[mu](l[nu](X), [X])-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)+(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X]))

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

(9)

SubstituteTensor(Physics:-`*`(l[`~alpha`](X), l[alpha](X)) = 0, Physics:-Christoffel[`~rho`, mu, nu] = (1/2)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[`~rho`](X)*Physics:-d_[nu](l[mu](X), [X])+(1/2)*l[`~rho`](X)*Physics:-d_[mu](l[nu](X), [X])+(1/2)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X])*eta[`~alpha`, `~rho`]-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)+(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[alpha](X)*Physics:-d_[nu](l[mu](X), [X])-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[alpha](X)*Physics:-d_[mu](l[nu](X), [X])-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)+(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X]))

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

(10)

NULL

NULL

Now we can substitute into the null condition for the Ricci tensor, `R__μν`*`#mi("l")`^mu*l^nu = 0.

convert(Physics:-`*`(Physics:-`*`(Ricci[mu, nu], l[`~mu`](X)), l[`~nu`](X)), Christoffel)

(Physics:-d_[alpha](Physics:-Christoffel[`~alpha`, mu, nu], [X])-Physics:-d_[nu](Physics:-Christoffel[`~alpha`, alpha, mu], [X])+Physics:-Christoffel[`~beta`, mu, nu]*Physics:-Christoffel[`~alpha`, alpha, beta]-Physics:-Christoffel[`~beta`, alpha, mu]*Physics:-Christoffel[`~alpha`, beta, nu])*l[`~mu`](X)*l[`~nu`](X)

(11)

NULL

SubstituteTensorIndices(alpha = rho, (Physics:-d_[alpha](Physics:-Christoffel[`~alpha`, mu, nu], [X])-Physics:-d_[nu](Physics:-Christoffel[`~alpha`, alpha, mu], [X])+Physics:-Christoffel[`~beta`, mu, nu]*Physics:-Christoffel[`~alpha`, alpha, beta]-Physics:-Christoffel[`~beta`, alpha, mu]*Physics:-Christoffel[`~alpha`, beta, nu])*l[`~mu`](X)*l[`~nu`](X))

(Physics:-d_[rho](Physics:-Christoffel[`~rho`, mu, nu], [X])-Physics:-d_[nu](Physics:-Christoffel[`~rho`, mu, rho], [X])+Physics:-Christoffel[`~beta`, mu, nu]*Physics:-Christoffel[`~rho`, beta, rho]-Physics:-Christoffel[`~beta`, mu, rho]*Physics:-Christoffel[`~rho`, beta, nu])*l[`~mu`](X)*l[`~nu`](X)

(12)

  Do the first term

 

expand(Physics:-`*`(Physics:-`*`(d_[rho](Physics:-Christoffel[`~rho`, mu, nu] = (1/2)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[`~rho`](X)*Physics:-d_[nu](l[mu](X), [X])+(1/2)*l[`~rho`](X)*Physics:-d_[mu](l[nu](X), [X])+(1/2)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X])*eta[`~alpha`, `~rho`]-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)+(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)+(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X])), l[`~mu`](X)), l[`~nu`](X)))

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

(13)

NULL

SubstituteTensor(Physics:-`*`(l[`~nu`](X), l[nu](X)) = 0, Physics:-d_[rho](Physics:-Christoffel[`~rho`, mu, nu], [X])*l[`~mu`](X)*l[`~nu`](X) = (1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[`~rho`](X), [X])*Physics:-d_[mu](l[nu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~rho`](X)*Physics:-d_[rho](Physics:-d_[mu](l[nu](X), [X]), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[`~rho`](X), [X])*Physics:-d_[nu](l[mu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~rho`](X)*Physics:-d_[rho](Physics:-d_[nu](l[mu](X), [X]), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[`~alpha`](X), [X])*l[`~rho`](X)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*Physics:-d_[rho](l[`~rho`](X), [X])*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[rho](l[nu](X), [X])*Physics:-d_[alpha](l[mu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*l[`~rho`](X)*l[nu](X)*Physics:-d_[rho](Physics:-d_[alpha](l[mu](X), [X]), [X])-(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[`~alpha`](X), [X])*l[`~rho`](X)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)-(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*Physics:-d_[rho](l[`~rho`](X), [X])*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)-(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[rho](Physics:-d_[mu](l[alpha](X), [X]), [X])*l[nu](X)-(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[mu](l[alpha](X), [X])*Physics:-d_[rho](l[nu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[`~alpha`](X), [X])*l[`~rho`](X)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*Physics:-d_[rho](l[`~rho`](X), [X])*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[rho](l[mu](X), [X])*Physics:-d_[alpha](l[nu](X), [X])+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*l[`~rho`](X)*l[mu](X)*Physics:-d_[rho](Physics:-d_[alpha](l[nu](X), [X]), [X])-(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[`~alpha`](X), [X])*l[`~rho`](X)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)-(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*Physics:-d_[rho](l[`~rho`](X), [X])*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)-(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[rho](Physics:-d_[nu](l[alpha](X), [X]), [X])*l[mu](X)-(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[nu](l[alpha](X), [X])*Physics:-d_[rho](l[mu](X), [X])-(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](Physics:-d_[alpha](l[mu](X), [X]), [X])*l[nu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[alpha](l[mu](X), [X])*Physics:-d_[rho](l[nu](X), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[nu](X)*Physics:-d_[rho](Physics:-d_[mu](l[alpha](X), [X]), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[nu](X), [X])*Physics:-d_[mu](l[alpha](X), [X])*eta[`~alpha`, `~rho`]-(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[mu](X), [X])*Physics:-d_[alpha](l[nu](X), [X])*eta[`~alpha`, `~rho`]-(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[mu](X)*Physics:-d_[rho](Physics:-d_[alpha](l[nu](X), [X]), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[`~mu`](X)*l[`~nu`](X)*Physics:-d_[rho](l[mu](X), [X])*Physics:-d_[nu](l[alpha](X), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[`~mu`](X)*l[`~nu`](X)*l[mu](X)*Physics:-d_[rho](Physics:-d_[nu](l[alpha](X), [X]), [X])*eta[`~alpha`, `~rho`])

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

(14)

 

 

Do same thing with the first term but use the Simplify command

 

Simplify(Physics:-`*`(Physics:-`*`(d_[rho](Physics:-Christoffel[`~rho`, mu, nu] = (1/2)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])*eta[`~alpha`, `~rho`]+(1/2)*l[`~rho`](X)*Physics:-d_[nu](l[mu](X), [X])+(1/2)*l[`~rho`](X)*Physics:-d_[mu](l[nu](X), [X])+(1/2)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)*eta[`~alpha`, `~rho`]-(1/2)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X])*eta[`~alpha`, `~rho`]-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[nu](l[alpha](X), [X])*l[mu](X)+(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[mu](X)*Physics:-d_[alpha](l[nu](X), [X])-(1/2)*l[`~alpha`](X)*l[`~rho`](X)*Physics:-d_[mu](l[alpha](X), [X])*l[nu](X)+(1/2)*l[`~alpha`](X)*l[`~rho`](X)*l[nu](X)*Physics:-d_[alpha](l[mu](X), [X])), l[`~mu`](X)), l[`~nu`](X)))

Physics:-d_[rho](Physics:-Christoffel[`~rho`, mu, nu], [X])*l[`~mu`](X)*l[`~nu`](X) = -Physics:-d_[alpha2](l[`~alpha3`](X), [X])*Physics:-d_[alpha5](l[alpha3](X), [X])*l[`~alpha2`](X)*l[`~alpha5`](X)*l[`~rho`](X)*l[rho](X)+Physics:-d_[alpha4](l[`~alpha5`](X), [X])*Physics:-d_[alpha5](l[alpha3](X), [X])*l[`~alpha2`](X)*l[alpha2](X)*l[`~alpha3`](X)*l[`~alpha4`](X)-Physics:-d_[alpha](l[alpha3](X), [X])*eta[`~alpha`, `~alpha1`]*Physics:-d_[alpha1](l[alpha2](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+eta[`~alpha`, `~alpha5`]*Physics:-d_[alpha2](l[alpha](X), [X])*Physics:-d_[alpha5](l[alpha3](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)-eta[`~alpha5`, `~alpha3`]*Physics:-d_[alpha3](Physics:-d_[alpha5](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[alpha2](X)*l[`~alpha6`](X)+eta[`~alpha6`, `~alpha5`]*Physics:-d_[alpha3](Physics:-d_[alpha5](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[alpha2](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](l[alpha3](X), [X])*Physics:-d_[rho](l[`~rho`](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](Physics:-d_[alpha3](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)*l[`~alpha6`](X)

(15)

SubstituteTensor(Physics:-`*`(l[`~nu`](X), l[nu](X)) = 0, Physics:-d_[rho](Physics:-Christoffel[`~rho`, mu, nu], [X])*l[`~mu`](X)*l[`~nu`](X) = -Physics:-d_[alpha2](l[`~alpha3`](X), [X])*Physics:-d_[alpha5](l[alpha3](X), [X])*l[`~alpha2`](X)*l[`~alpha5`](X)*l[`~rho`](X)*l[rho](X)+Physics:-d_[alpha4](l[`~alpha5`](X), [X])*Physics:-d_[alpha5](l[alpha3](X), [X])*l[`~alpha2`](X)*l[alpha2](X)*l[`~alpha3`](X)*l[`~alpha4`](X)-Physics:-d_[alpha](l[alpha3](X), [X])*eta[`~alpha`, `~alpha1`]*Physics:-d_[alpha1](l[alpha2](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+eta[`~alpha`, `~alpha5`]*Physics:-d_[alpha2](l[alpha](X), [X])*Physics:-d_[alpha5](l[alpha3](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)-eta[`~alpha5`, `~alpha3`]*Physics:-d_[alpha3](Physics:-d_[alpha5](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[alpha2](X)*l[`~alpha6`](X)+eta[`~alpha6`, `~alpha5`]*Physics:-d_[alpha3](Physics:-d_[alpha5](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[alpha2](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](l[alpha3](X), [X])*Physics:-d_[rho](l[`~rho`](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](Physics:-d_[alpha3](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)*l[`~alpha6`](X))

Physics:-d_[rho](Physics:-Christoffel[`~rho`, mu, nu], [X])*l[`~mu`](X)*l[`~nu`](X) = -Physics:-d_[alpha](l[alpha3](X), [X])*eta[`~alpha`, `~alpha1`]*Physics:-d_[alpha1](l[alpha2](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+eta[`~alpha`, `~alpha5`]*Physics:-d_[alpha2](l[alpha](X), [X])*Physics:-d_[alpha5](l[alpha3](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](l[alpha3](X), [X])*Physics:-d_[rho](l[`~rho`](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](Physics:-d_[alpha3](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)*l[`~alpha6`](X)

(16)

 

Simplify command does make the algebra easier, but the indices are not the same. Now, equation 16 should correspond to equation 14, but there is no combination of alphas that is consistent.  The variables alpha1 and alpha5 must be rho. One term is always wrong when I try to change the other indices.

alpha2 and alpha3 must be either mu or nu based on the first term.  But alpha6 should also be either mu or nu based on the last term, however that will make alpha2 and alpha3 either (nu and rho) or (mu and rho).  Neither combination makes all of the terms consistent with (14).  Very frustrating.

 

SubstituteTensorIndices({alpha1 = rho, alpha5 = rho}, Physics:-d_[rho](Physics:-Christoffel[`~rho`, mu, nu], [X])*l[`~mu`](X)*l[`~nu`](X) = -Physics:-d_[alpha](l[alpha3](X), [X])*eta[`~alpha`, `~alpha1`]*Physics:-d_[alpha1](l[alpha2](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+eta[`~alpha`, `~alpha5`]*Physics:-d_[alpha2](l[alpha](X), [X])*Physics:-d_[alpha5](l[alpha3](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](l[alpha3](X), [X])*Physics:-d_[rho](l[`~rho`](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](Physics:-d_[alpha3](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)*l[`~alpha6`](X))

Physics:-d_[rho](Physics:-Christoffel[`~rho`, mu, nu], [X])*l[`~mu`](X)*l[`~nu`](X) = -Physics:-d_[alpha](l[alpha3](X), [X])*eta[`~alpha`, `~rho`]*Physics:-d_[rho](l[alpha2](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+eta[`~alpha`, `~rho`]*Physics:-d_[alpha2](l[alpha](X), [X])*Physics:-d_[rho](l[alpha3](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](l[alpha3](X), [X])*Physics:-d_[rho](l[`~rho`](X), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)+Physics:-d_[alpha2](Physics:-d_[alpha3](l[alpha6](X), [X]), [X])*l[`~alpha2`](X)*l[`~alpha3`](X)*l[`~alpha6`](X)

(17)

``

 

``

``

``

``

``


Download Vacuum_Solutions_(Kerr-Schild)_3.mw

I have just begun thinking of trying to make some mathematically defined objects using a 3d printer. I would be happy to hear from anyone who has done this using Maple to prepare input. Pointers for a novice in 3d printing would be appreciated.  I have access to a MakerBot Replicator 2. But the people who have it have only used it to scan objects and make 3d copies of them. 

---Edwin

First 58 59 60 61 62 Page 60 of 62