1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612 |
- EXCALC
- A System for Doing Calculations in the Calculus
- of
- Modern Differential Geometry
- USER's MANUAL
- Eberhard Schruefer
- April 1986
- Acknowledgments
- This program was developed over several years. I would like to express
- my deep gratitude to Dr. Anthony Hearn for his continuous interest in
- this work, and especially for his hospitality and support during a
- visit in 1984/85 at the Rand Corporation, where substantial progress
- on this package could be achieved. The Heinrich Hertz-Stiftung sup-
- ported this visit. Many thanks are also due to Drs. F.W. Hehl, University
- of Cologne, and J.D. McCrea, University College Dublin, for their
- suggestions and work on testing this program.
- Table of Contents
- Introduction
- 1. Declarations
- 2. Exterior Multiplication
- 3. Partial Differentiation
- 4. Exterior Differentiation
- 5. Inner Product
- 6. Lie Derivative
- 7. Hodge-* Duality Operator
- 8. Variational Derivative
- 9. Handling of Indices
- 10. Metric Structures
- 11. Riemannian Connections
- 12. Ordering and Structuring
- 13. Appendix
- A1. Summary of Operators and Commands
- A2. Examples
-
- INTRODUCTION
- EXCALC is designed for easy use by all who are familiar with the
- calculus of Modern Differential Geometry. Its syntax is kept as close
- as possible to standard textbook notations. Therefore, no great
- experience in writing computer algebra programs is required. It is
- almost possible to input to the computer the same as what would have
- been written down for a handcalculation. For example, the statement
- f*x^y + u_|(y^z^x)
- would be recognized by the program as a formula involving exterior
- products and an inner product. The program is currently able to
- handle scalar-valued exterior forms, vectors and operations between
- them, as well as non-scalar valued forms (indexed forms). With this,
- it should be an ideal tool for studying differential equations,
- doing calculations in general relativity and field theories, or doing
- simple things as calculating the Laplacian of a tensor field for
- an arbitrary given frame. With the increasing popularity of this
- calculus, this program should have an application in almost any field
- of physics and mathematics.
- Since the program is completely embedded in REDUCE, all features and
- facilities of REDUCE are available in a calculation. Even for those
- who are not quite comfortable in this calculus, there is a good chance
- of learning it by just playing with the program.
- This is still a very experimental version, and changes of the syntax
- are to be expected. The performance of the program can still be
- increased considerably.
- Complaints and comments are appreciated and should be sent to:
- Dr. Eberhard Schruefer
- Institut fuer methodische Grundlagen (F1-P)
- Gesellschaft fuer Mathematik und Datenverarbeitung mbH
- Postfach 1240
- Schloss Birlinghoven
- D-5205 St. Augustin 1
- WEST GERMANY
- If the use of this program leads to a publication, this document should
- be cited, and a copy of the article should be sent to the above address.
-
- 1. Declarations
________________
- Geometrical objects like exterior forms or vectors are introduced to the
- system by declaration commands. The declarations can appear anywhere in
- a program, but must, of course, be made prior to the use of the object.
- Everything that has no declaration is treated as a constant; therefore
- zero-forms must also be declared.
- An exterior form is introduced by
- PFORM declaration1,declaration2,....;
- where
- declaration::=<name>=<number>|<identifier>|<expression>
- <name>::=<identifier>|<identifier>(<arguments>)
- For example
- PFORM U=K,V=4,F=0,W=DIM-1;
- would declare U to be an exterior form of degree K, V to be a form of
- degree 4, F to be a form of degree 0 (a function), and W to be a form of
- degree DIM-1.
- If the exterior form should have indices, the declaration would be
- PFORM CURV(A,B)=2,CHRIS(A,B)=1;
- The name of the indices is arbitrary.
- The declaration of vectors is similar. The command TVECTOR takes a list
- of names.
- Example:
- To declare X as a vector and COMM as a vector with two indices, one
- would say
- TVECTOR X,COMM(A,B);
- If a declaration of an already existing name is made, the old
- declaration is removed, and the new one is taken.
- 2. Exterior Multiplication
___________________________
- Exterior multiplication between exterior forms is carried out with the
- nary infix operator ^ (wedge). Factors are ordered according to the
- usual ordering in REDUCE using the commutation rule for exterior
- products.
-
- Examples:
- PFORM U=1,V=1,W=K;
- U^V;
- U^V
- V^U;
- - U^V
- U^U;
- 0
- W^U^V;
- K
- ( - 1) *U^V^W
- (3*U-A*W)^(W+5*V)^U;
- A*(5*U^V^W - U^W^W)
- It is possible to declare the dimension of the underlying space by
- SPACEDIM <number>|<identifier>;
- If an exterior product has a degree higher than the dimension of the
- space, it is replaced by 0:
- SPACEDIM 4;
- PFORM U=2,V=3;
- U^V;
- 0
- 3. Partial Differentiation
___________________________
- Partial differentiation is denoted by the operator @. Its capability is
- the same as the REDUCE DF operator.
- Examples:
-
- @(SIN X,X);
- COS(X)
- @(F,X);
- 0
- An identifier can be declared to be a function of certain variables.
- This is done with the command _F_D_O_M_A_I_N. The following would tell the
- partial differentiation operator that F is a function of the variables X
- and Y and that H is a function of X.
- FDOMAIN F=F(X,Y),H=H(X);
- Applying @ to F and H would result in
- @(F,X);
- @ F
- X
- @(X*F,X);
- F + X*@ F
- X
- @(H,Y);
- 0
- The partial derivative symbol can also be an operator with a single
- argument. It then represents a natural base element of a tangent
- vector.
- Example:
- A*@ X + B*@ Y;
- A*@ + B*@
- X Y
- 4. Exterior Differentiation
____________________________
- Exterior differentiation of exterior forms is carried out by the
- operator d. Products are normally differentiated out, i.e.
-
- PFORM X=0,Y=K,Z=M;
- D(X * Y);
- X*d Y + d X^Y
- D(R*Y);
- R*d Y
- D(X*Y^Z);
- K
- ( - 1) *X*Y^d Z + X*d Y^Z + d X^Y^Z
- This expansion can be suppressed by the command _N_O_X_P_N_D _D.
- NOXPND D;
- D(Y^Z);
- d(Y^Z)
- To obtain a canonical form for an exterior product when the expansion is
- switched off, the operator D is shifted to the right if it appears in
- the leftmost place.
- D Y ^ Z;
- K
- - ( - 1) *Y^d Z + d(Y^Z)
- Expansion is performed again when the command _X_P_N_D _D is executed.
- Functions which are implicitly defined by the FDOMAIN command are
- expanded into partial derivatives:
- PFORM X=0,Y=0,Z=0,F=0;
- FDOMAIN F=F(X,Y);
- D F;
- @ F*d X + @ F*d Y
- X Y
- If an argument of an implicitly defined function has further
- dependencies the chain rule will be applied e.g.
-
- FDOMAIN Y=Y(Z);
- D F;
- @ F*d X + @ F*@ Y*d Z
- X Y Z
- Expansion into partial derivatives can be inhibited by _N_O_X_P_N_D @ and
- enabled again by _X_P_N_D @.
- The operator is of course aware of the rules that a repeated application
- always leads to zero and that there is no exterior form of higher degree
- than the dimension of the space.
- D D X;
- 0
- PFORM U=K;
- SPACEDIM K;
- D U;
- 0
- 5. Inner Product
_________________
- The inner product between a vector and an exterior form is represented
- by the diphthong _| (underscore or-bar), which is the notation of many
- textbooks. If the exterior form is an exterior product, the inner
- product is carried through any factor
- Example:
- PFORM X=0,Y=K,Z=M;
- TVECTOR U,V;
- U_|(X*Y^Z);
- K
- X*(( - 1) *Y^U_|Z + U_|Y^Z)
- In repeated applications of the inner product to the same exterior form
- the vector arguments are ordered e.g.
- (U+X*V)_|(U_|(3*Z));
- - 3*U_|V_|Z
-
- The duality of natural base elements is also known by the system, i.e.
- PFORM X=0,Y=0;
- (A*@ X+B*@(Y))_|(3*D X-D Y);
- 3*A - B
- 6. Lie Derivative
__________________
- The Lie derivative can be taken between a vector and an exterior form or
- between two vectors. It is represented by the infix operator |_ . In
- the case of Lie differentiating, an exterior form by a vector, the Lie
- derivative is expressed through inner products and exterior
- differentiations, i. e.
- PFORM Z=K;
- TVECTOR U;
- U |_ Z;
- U_|d Z + d(U_|Z)
- If the arguments of the Lie derivative are vectors, the vectors are
- ordered using the anticommutivity property, and functions (zero forms)
- are differentiated out.
- Example:
- TVECTOR U,V;
- V |_ U;
- - U|_V
- PFORM X=0,Y=0;
- (X*U)|_(Y*V);
- - U*Y*V_|d X + V*X*U_|d Y + X*Y*U|_V
- 7. Hodge-* Duality Operator
____________________________
- The Hodge-* duality operator maps an exterior form of degree K to an
- exterior form of degree N-K, where N is the dimension of the space. The
- double application of the operator must lead back to the original
- exterior form up to a factor. The following example shows how the factor
- is chosen here
-
- SPACEDIM N;
- PFORM X=K;
- # # X;
- 2
- (K + K*N)
- ( - 1) *X*SGN
- The indeterminate SGN in the above example denotes the sign of the deter
- minant of the metric. It can be assigned a value or will be
- automatically set if more of the metric structure is specified (via
- COFRAME), i.e. it is then set to g/|g|, where g is the determinant of
- the metric. If the Hodge-* operator appears in an exterior product of
- maximal degree as the leftmost factor, the Hodge-* is shifted to the
- right according to
- PFORM X=K,Y=K;
- # X ^ Y;
- 2
- (K + K*N)
- ( - 1) *X^# Y
- More simplifications are performed if a coframe is defined.
- 8. Variational Derivative
__________________________
- The function VARDF returns as its value the variation of a given
- Lagrangian n-form with respect to a specified exterior form (a field of
- the Lagrangian). In the shared variable BNDEQ!*, the expression is
- stored that has to yield zero if integrated over the boundary.
- Syntax:
- VARDF(<Lagrangian n-form>,<exterior form>)
- Example:
-
- SPACEDIM 4;
- PFORM L=4,A=1,J=3;
- L:=-1/2*D A ^ # D A - A^# J$ %Lagrangian of the e.m. field
- VARDF(L,A);
- - (# J + d # d A) %Maxwell's equations
- BNDEQ!*;
- - 'A^# d A %Equation at the boundary
- Restrictions:
- In the current implementation, the Lagrangian must be built up by the
- fields and the operations d, #, and @. Variation with respect to indexed
- quantities is currently not allowed.
- For the calculation of the conserved currents induced by symmetry
- operators (vector fields), the function NOETHER is provided. It has the
- syntax:
- NOETHER(<Lagrangian n-form>,<field>,<symmetry generator>)
- Example:
- pform l=4,a=1,f=2;
- spacedim 4;
- l:= -1/2*d a^#d a; %Free Maxwell field;
- tvector x(k); %An unspecified generator;
- noether(l,a,x(-k));
- ( - 2*d(X _|A)^# d A - (X _|d A)^# d A + d A^(X _|# d A))/2
- K K K
- Comment:The above expression would be the canonical energy-momentum
- 3-forms of the Maxwell field, if X is interpreted as a translation;
- 9. Handling of Indices
_______________________
- Exterior forms and vectors may have indices. On input, the indices are
- given as arguments of the object. A positive argument denotes a
- superscript and a negative argument a subscript. On output, the indexed
- quantity is displayed two dimensionally if NAT is on. Indices may be
- identifiers or numbers. However, zero is currently not allowed to be an
- index.
-
- Example:
- PFORM OM(K,L)=M,E(K)=1;
- E(K)^E(-L);
- K
- E ^E
- L
- OM(4,-2);
- 4
- OM
- 2
- In the current release, full simplification is performed only if an
- index range is specified. It is hoped that this restriction can be re-
- moved soon. If the index range (the values that the indices can obtain)
- is specified, the given expression is evaluated for all possible index
- values, and the summation convention is understood.
- Example:
- INDEXRANGE T,R,PH,Z;
- PFORM E(K)=1,S(K,L)=2;
- W := E(K)*E(-K);
- T R PH Z
- W := E *E + E *E + E *E + E *E
- T R PH Z
- S(K,L):=E(K)^E(L);
- T T
- S := 0
- R T T R
- S := - E ^E
- PH T T PH
- S := - E ^E
- .
- .
- .
- If the expression to be evaluated is not an assignment, the values of
- the expression are displayed as an assignment to an indexed variable
-
- with name NS. This is done only on output, i.e. no actual binding to
- the variable NS occurs.
- E(K)^E(L);
- T T
- NS := 0
- R T T R
- NS := - E ^E
- .
- .
- .
- It should be noted, however, that the index positions on the variable NS
- can sometimes not be uniquely determined by the system (because of
- possible reorderings in the expression). Generally it is advisable to
- use assignments to display complicated expressions.
- In certain cases, one would like to inhibit the summation over specified
- index names, or at all. For this the command _N_O_S_U_M <indexname1>,..; and
- the switch NOSUM are available. The command NOSUM has the effect that
- summation is not performed over those indices which had been listed.
- The command _R_E_N_O_S_U_M enables summation again. The switch NOSUM, if on,
- inhibits any summation.
- It is possible to declare an indexed quantity completely antisymmetric
- or completely symmetric by the command _A_N_T_I_S_Y_M_M_E_T_R_I_C <name1>,..; or
- _S_Y_M_M_E_T_R_I_C <name1>,...;. If applicable, these commands should be issued,
- since great savings in memory and execution time result. Only strict
- components are printed.
- 10. Metric Structures
______________________
- A metric structure is defined in EXCALC by specifying a set of basis one-
- forms (the coframe) together with the metric.
- Syntax:
- COFRAME <identifier><(index1)>=<expression1>,
- <identifier><(index2)>=<expression2>,
- .
- .
- <identifier><(indexn)>=<expressionn>
- WITH METRIC <name>=<expression>;
- This statement automatically sets the dimension of the space and the
- index range. The clause WITH METRIC can be omitted if the metric is
- Euclidean and the shorthand _W_I_T_H _S_I_G_N_A_T_U_R_E <diagonal elements> can be
- used in the case of a pseudo-Euclidean metric. The splitting of a metric
- structure in its metric tensor coefficients and basis one-forms is
-
- completely arbitrary including the extrems of an orthonormal frame and a
- coordinate frame.
- Examples:
- COFRAME E R=D R, E(PH)=R*D PH
- WITH METRIC G=E(R)*E(R)+E(PH)*E(PH); %Polar coframe;
- COFRAME E(R)=D R,E(PH)=R*D(PH); %Same as before;
- COFRAME O(T)=D T, O X=D X
- WITH SIGNATURE -1,1; %A Lorentz coframe;
- COFRAME B(XI)=D XI, B(ETA)=D ETA
- WITH METRIC W=-1/2*(B(XI)*B(ETA)+B(ETA)*B(XI)); %A lightcone coframe;
- COFRAME E R=D R, E PH=D PH %Polar coordinate
- WITH METRIC G=E R*E R+R**2*E PH*E PH; %basis;
- Individual elements of the metric can be accessed just by calling them
- with the desired indices. The value of the determinant of the covariant
- metric is stored in the variable DETM!*. The metric is not needed for
- lowering or raising of indices as the system performs this
- automatically, i.e. no matter in what index position values were
- assigned to an indexed quantity, the values can be retrieved for any
- index position just by writing the indexed quantity with the desired
- indices.
- Example:
-
- COFRAME E T=D T,E X=D X,E Y=D Y
- WITH SIGNATURE -1,1,1;
- PFORM F(K,L)=0;
- ANTISYMMETRIC F;
- F(-T,-X):=EX$ F(-X,-Y):=B$ F(-T,-Y):=0$
- ON NERO;
- F(K,-L):=F(K,-L);
- X
- F := - EX
- T
- T
- F := - EX
- X
- Y
- F := - B
- X
- X
- F := B
- Y
- Any expression containing differentials of the coordinate functions will
- be transformed into an expression of the basis one-forms.The system also
- knows how to take the exterior derivative of the basis one-forms.
- Example (spherical coordinates):
- COFRAME E(R)=D(R), E(TH)=R*D(TH), E(PH)=R*SIN(TH)*D(PH);
- D R^D TH;
- R TH
- (E ^E )/R
- D(E(TH));
- R TH
- (E ^E )/R
-
- PFORM F=0;
- FDOMAIN F=F(R,TH,PH);
- FACTOR E;
- ON RAT;
- D F; %The "gradient" of F in spherical coordinates;
- R TH PH
- E *@ F + (E *@ F)/R + (E *@ F)/(R*SIN(TH))
- R TH PH
- The frame dual to the frame defined by the COFRAME command can be
- introduced by _F_R_A_M_E <identifier>. This command causes the dual property
- to be recognized, and the tangent vectors of the coordinate functions
- are replaced by the frame basis vectors.
- Example:
- COFRAME B R=D R,B PH=R*D PH,E Z=D Z; %Cylindrical coframe;
- FRAME X;
- ON NERO;
- X(-K)_|B(L);
- R
- NS := 1
- R
- PH
- NS := 1
- PH
- Z
- NS := 1
- Z
- X(-K) |_ X(-L); %The commutator of the dual frame;
- NS := X /R
- PH R PH
- NS := ( - X )/R %I. e. it is not a coordinate base;
- R PH PH
-
- As a convenience, the frames can be displayed at any point in a program
- by the command _D_I_S_P_L_A_Y_F_R_A_M_E; .
- The Hodge-* duality operator returns the explicitly constructed dual
- element if applied to coframe base elements. The metric is properly
- taken into account.
- The total antisymmetric Levi-Cevita tensor _E_P_S is also avaiable. The
- value of EPS with an even permutation of the indices in a covariant
- position is taken to be +1.
- 11. Riemannian Connections
___________________________
- The command RIEMANNCONX is provided for calculating the connection 1
- forms. The values are stored on the name given to RIEMANNCONX. This
- command is far more efficient than calculating the connection from the
- differential of the basis one-forms and using inner products.
- Example (Calculate the connection 1-form and curvature 2-form on S(2)):
- COFRAME E TH=R*D TH,E PH=R*SIN(TH)*D PH;
- RIEMANNCONX OM;
- OM(K,-L); %Display the connection forms;
- TH
- NS := 0
- TH
- PH PH
- NS := (E *COS(TH))/(SIN(TH)*R)
- TH
- TH PH
- NS := ( - E *COS(TH))/(SIN(TH)*R)
- PH
- PH
- NS := 0
- PH
-
- PFORM CURV(K,L)=2;
- CURV(K,-L):=D OM(K,-L) + OM(K,-M)^OM(M-L); %The curvature forms
- TH
- CURV := 0
- TH
- PH TH PH 2
- CURV := ( - E ^E )/R %Of course it was a sphere with
- TH %radius R.
- TH TH PH 2
- CURV := (E ^E )/R
- PH
- PH
- CURV := 0
- PH
- 12. Ordering and Structuring
_____________________________
- The ordering of an exterior form or vector can be changed by the command
- _F_O_R_D_E_R. In an expression, the first identifier or kernel in the
- arguments of FORDER is ordered ahead of the second, and so on, and
- ordered ahead of all not appearing as arguments. This ordering is done
- on the internal level and not only on output. The execution of this
- statement can therefore have tremendous effects on computation time and
- memory requirements. _R_E_M_F_O_R_D_E_R brings back standard ordering for those
- elements that are listed as arguments.
- Another ordering command is _I_S_O_L_A_T_E. It takes one argument. The system
- attempts to shift out this identifier or kernel to the leftmost
- position, utilizing commutation and derivative rules. _R_E_M_I_S_O_L_A_T_E
- restores normal ordering.
- Example:
- PFORM U=K,V=L,W=M;
- U^D(V)^W;
- U^d V^W
- FORDER V;
- U^D(V)^W;
- (K*L + K)
- ( - 1) *d V^U^W
-
- ISOLATE V;
- U^D(V);
- (K*L + K) L
- ( - 1) *(d(V^U) - ( - 1) *V^d U)
- An expression can be put in a more structured form by renaming a
- subexpression. This is done with the command KEEP which has the syntax
- KEEP <name1>=<expresson1>,<name2>=<expression2>,...
- The effect is that rules are set up for simplifying <name> without
- introducing its definition in an expression. In an expression the system
- also tries by reordering to generate as many instances of <name> as
- possible.
- Example:
- PFORM X=0,Y=0,Z=0,F=0,J=3;
- KEEP J=D X^D Y^D Z;
- J;
- J
- D J;
- 0
- J^D X;
- 0
- FDOMAIN F=F(X);
- D F^D Y^D Z;
- @ F*J
- X
- The capabilities of KEEP are currently very limited. Only exterior
- products should occur as righthand sides in KEEP.
-
- 13. Appendix
_____________
- A1. Summary of Operators and Commands
- ^ Exterior Multiplication 2
- @ Partial Differentiation 3
- @ Tangent Vector 3
- # Hodge-* Operator 7
- _| Inner Product 5
- |_ Lie Derivative 6
- ANTISYMMETRIC Declares completely antisymmetric indexed 9
- quantities
- COFRAME Declaration of a coframe 10
- d Exterior differentiation 2
- DISPLAYFRAME Displays the frame 10
- EPS Levi-Civita tensor 10
- FDOMAIN Declaration of implicit dependencies 3
- FORDER Ordering command 12
- FRAME Declares the frame dual to the coframe 10
- INDEXRANGE Declaration of indices 9
- ISOLATE Ordering command 12
- KEEP Structuring command 12
- METRIC Clause of COFRAME to specify a metric 10
- NOETHER Calculates the Noether current 8
- NOSUM Inhibits summation convention 9
- NOXPND d Inhibits the use of product rule for d 4
- NOXPND @ Inhibits expansion into partial derivatives 4
- PFORM Declaration of exterior forms 1
- REMFORDER Clears ordering 12
- REMISOLATE Clears ISOLATE command 12
- RENOSUM Enables summation convention 9
- RIEMANNCONX Calculation of a Riemannian Connection 11
- SIGNATURE Clause of COFRAME to specify a pseudo-
- Euclidean metric 10
- SPACEDIM Command to set the dimension of a space 2
- SYMMETRIC Declares completely symmetric indexed 9
- quantities
- TVECTOR Declaration of vectors 1
- VARDF Variational derivative 8
- XPND d Enables the use of product rule for d 4
- (is set on default)
- XPND @ Enables expansion into partial derivatives 4
- (is set on default)
- A2. Examples
- The following examples should illustrate the use of EXCALC. It is not
- intended to show the most efficient or most elegant way of stating the
- problems; rather the variety of syntactic constructs are exemplified.
- The examples are on a test file distributed with EXCALC.
-
- %Problem: Calculate the PDE's for the isovector of the heat equation.
- %--------
- % (c.f. B.K. Harrison, f.B. Estabrook, "Geometric Approach...",
- % J. Math. Phys. 12, 653, 1971);
- %The heat equation @ psi = @ psi is equivalent to the set of exterior
- % xx t
- %equations (with u=@ psi, y=@ psi):
- % T x
- pform psi=0,u=0,x=0,y=0,t=0,a=1,da=2,b=2;
- a:=d psi - u*d t - y*d x;
- da:=- d u^d t - d y^d x;
- b:=u*d x^d t - d y^d t;
- %Now calculate the PDE's for the isovector;
- tvector v;
- pform vpsi=0,vt=0,vu=0,vx=0,vy=0;
- fdomain vpsi=vpsi(psi,t,u,x,y),vt=vt(psi,t,u,x,y),vu=vu(psi,t,u,x,y),
- vx=vx(psi,t,u,x,y),vy=vy(psi,t,u,x,y);
- v:=vpsi*@ psi + vt*@ t + vu*@ u + vx*@ x + vy*@ y;
- factor d;
- on rat;
- i1:=v |_ a - l*a;
- pform o=1;
- o:=ot*d t + ox*d x + ou*d u + oy*d y;
- fdomain f=f(psi,t,u,x,y);
- i11:=v_|d a - l*a + d f;
- let vx=-@(f,y),vt=-@(f,u),vu=@(f,t)+u*@(f,psi),vy=@(f,x)+y*@(f,psi),
- vpsi=f-u*@(f,u)-y*@(f,y);
- factor ^;
- i2:=v |_ b - xi*b - o^a + zet*da;
-
- let ou=0,oy=@(f,u,psi),ox=-u*@(f,u,psi),
- ot=@(f,x,psi)+u*@(f,y,psi)+y*@(f,psi,psi);
- i2;
- let zet=-@(f,u,x)-@(f,u,y)*u-@(f,u,psi)*y;
- i2;
- let xi=-@(f,t,u)-u*@(f,u,psi)+@(f,x,y)+u*@(f,y,y)+y*@(f,y,psi)+@(f,psi);
- i2;
- let @(f,u,u)=0;
- i2; % These PDE's have to be solved;
- clear a,da,b,v,i1,i11,o,i2,xi,t;
- remfdomain f;
- clear @(f,u,u);
- %Problem:
- %--------
- %Calculate the integrability conditions for the system of PDE's:
- %(c.f. B.F. Schutz, "Geometrical Methods of Mathematical Physics"
- %Cambridge University Press, 1984, p. 156)
- % @ z /@ x + a1*z + b1*z = c1
- % 1 1 2
- % @ z /@ y + a2*z + b2*z = c2
- % 1 1 2
- % @ z /@ x + f1*z + g1*z = h1
- % 2 1 2
- % @ z /@ y + f2*z + g2*z = h2
- % 2 1 2 ;
- pform w(k)=1,integ(k)=4,z(k)=0,x=0,y=0,a=1,b=1,c=1,f=1,g=1,h=1,
- a1=0,a2=0,b1=0,b2=0,c1=0,c2=0,f1=0,f2=0,g1=0,g2=0,h1=0,h2=0;
- fdomain a1=a1(x,y),a2=a2(x,y),b1=b1(x,y),b2=b2(x,y),
- c1=c1(x,y),c2=c2(x,y),f1=f1(x,y),f2=f2(x,y),
- g1=g1(x,y),g2=g2(x,y),h1=h1(x,y),h2=h2(x,y);
- a:=a1*d x+a2*d y$
-
- b:=b1*d x+b2*d y$
- c:=c1*d x+c2*d y$
- f:=f1*d x+f2*d y$
- g:=g1*d x+g2*d y$
- h:=h1*d x+h2*d y$
- %The equivalent exterior system:;
- factor d;
- w(1) := d z(-1) + z(-1)*a + z(-2)*b - c;
- w(2) := d z(-2) + z(-1)*f + z(-2)*g - h;
- indexrange 1,2;
- factor z;
- %The integrability conditions:;
- integ(k) := d w(k) ^ w(1) ^ w(2);
- clear a,b,c,f,g,h,w(k),integ(k);
- %Problem:
- %--------
- %Calculate the PDE's for the generators of the d-theta symmetries of
- %the Lagrangian system of the planar Kepler problem.
- %c.f. W.Sarlet, F.Cantrijn, Siam Review 23, 467, 1981;
- %Verify that time translation is a d-theta symmetry and calculate the
- %corresponding integral;
- pform t=0,q(k)=0,v(k)=0,lam(k)=0,tau=0,xi(k)=0,et(k)=0,theta=1,f=0,
- l=0,glq(k)=0,glv(k)=0,glt=0;
- tvector gam,y;
- indexrange 1,2;
- fdomain tau=tau(t,q(k),v(k)),xi=xi(t,q(k),v(k)),f=f(t,q(k),v(k));
- l:=1/2*(v(1)**2+v(2)**2)+m/r$ %The Lagrangian;
- pform r=0;
- fdomain r=r(q(k));
- let @(r,q 1)=q(1)/r,@(r,q 2)=q(2)/r,q(1)**2+q(2)**2=r**2;
- lam(k):=-m*q(k)/r; %The force;
- gam:=@ t + v(k)*@(q(k)) + lam(k)*@(v(k))$
- et(k) := gam _| d xi(k) - v(k)*gam _| d tau$
- y :=tau*@ t + xi(k)*@(q(k)) + et(k)*@(v(k))$ %Symmetry generator;
- theta := l*d t + @(l,v(k))*(d q(k) - v(k)*d t)$
- factor @;
-
- s := y |_ theta - d f$
- glq(k):=@(q k)_|s;
- glv(k):=@(v k)_|s;
- glt:=@(t)_|s;
- %Translation in time must generate a symmetry;
- xi(k) := 0;
- tau := 1;
- glq k;
- glv k;
- glt;
- %The corresponding integral is of course the energy;
- integ := - y _| theta;
- clear l,lam k,gam,et k,y,theta,s,glq k,glv k,glt,t,q k,v k,tau,xi k;
- remfdomain r,f;
- %Problem:
- %--------
- %Calculate the "gradient" and "Laplacian" of a function and the "curl"
- %and "divergence" of a one-form in elliptic coordinates;
- coframe e u=sqrt(cosh(v)**2-sin(u)**2)*d u,
- e v=sqrt(cosh(v)**2-sin(u)**2)*d v,
- e ph=cos u*sinh v*d ph;
- pform f=0;
- fdomain f=f(u,v,ph);
- factor e,^;
- on rat,gcd;
- order cosh v, sin u;
- %The gradient:;
- d f;
- factor @;
- %The Laplacian:;
- # d # d f;
- %Another way of calculating the Laplacian:
- -#vardf(1/2*d f^#d f,f);
- remfac @;
- %Now calculate the "curl" and the "divergence" of a one-form;
-
- pform w=1,a(k)=0;
- fdomain a=a(u,v,ph);
- w:=a(-k)*e k;
- %The curl:;
- x := # d w;
- factor @;
- %The divergence;
- y := # d # w;
- remfac @;
- clear x,y,w,u,v,ph,e k,a k;
- remfdomain a,f;
- %Problem:
- %--------
- %Calculate in a spherical coordinate system the Navier Stokes equations;
- coframe e r=d r,e th=r*d th,e ph=r*sin th*d ph;
- frame x;
- fdomain v=v(t,r,th,ph),p=p(r,th,ph);
- pform v(k)=0,p=0,w=1;
- %We first calculate the convective derivative;
- w := v(-k)*e(k)$
- factor e; on rat;
- cdv := @(w,t) + (v(k)*x(-k)) |_ w - 1/2*d(v(k)*v(-k));
- %next we calculate the viscous terms;
- visc := nu*(d#d# w - #d#d w) + nus*d#d# w;
- %finally we add the pressure term and print the components of the
- %whole equation;
- pform nasteq=1,nast(k)=0;
- nasteq := cdv - visc + 1/rho*d p$
- factor @;
- nast(-k) := x(-k) _| nasteq;
-
- remfac @,e;
- clear v k,x k,nast k,cdv,visc,p,w,nasteq;
- remfdomain p,v;
- %Problem:
- %--------
- %Calculate from the Lagrangian of a vibrating rod the equation of
- % motion and show that the invariance under time translation leads
- % to a conserved current;
- pform y=0,x=0,t=0,q=0,j=0,lagr=2;
- fdomain y=y(x,t),q=q(x),j=j(x);
- factor ^;
- lagr:=1/2*(rho*q*@(y,t)**2-e*j*@(y,x,x)**2)*d x^d t;
- vardf(lagr,y);
- %The Lagrangian does not explicitly depend on time; therefore the
- %vector field @ t generates a symmetry. The conserved current is
- pform c=1;
- factor d;
- c := noether(lagr,y,@ t);
- %The exterior derivative of this must be zero or a multiple of the
- %equation of motion (weak conservation law) to be a conserved current;
- remfac d;
- d c;
- %i.e. it is a multiple of the equation of motion;
- clear lagr,c;
- %Problem:
- %--------
- %Show that the metric structure given by Eguchi and Hanson induces a
- %self-dual curvature.
- %c.f. T. Eguchi, P.B. Gilkey, A.J. Hanson, "Gravitation, Gauge Theories
- % and Differential Geometry", Physics Reports 66, 213, 1980;
- for all x let cos(x)**2=1-sin(x)**2;
- pform f=0,g=0;
-
- fdomain f=f(r), g=g(r);
- coframe o(r) =f*d r,
- o(theta) =(r/2)*(sin(psi)*d theta-sin(theta)*cos(psi)*d phi),
- o(phi) =(r/2)*(-cos(psi)*d theta-sin(theta)*sin(psi)*d phi),
- o(psi) =(r/2)*g*(d psi+cos(theta)*d phi);
- frame e;
- pform gamma1(a,b)=1,curv2(a,b)=2;
- antisymmetric gamma1,curv2;
- factor o;
- gamma1(-a,-b):=-(1/2)*( e(-a)_|(e(-c)_|(d o(-b)))
- -e(-b)_|(e(-a)_|(d o(-c)))
- +e(-c)_|(e(-b)_|(d o(-a))) )*o(c)$
- curv2(-a,b):=d gamma1(-a,b) + gamma1(-c,b)^gamma1(-a,c)$
- factor ^;
- curv2(a,b):= curv2(a,b)$
- let f=1/g;
- let g=sqrt(1-(a/r)**4);
- pform chck(k,l)=2;
- antisymmetric chck;
- %The following has to be zero for a self-dual curvature;
- chck(k,l):=1/2*eps(k,l,m,n)*curv2(-m,-n)+curv2(k,l);
- clear gamma1(a,b),curv2(a,b),f,g,chck(a,b),o(k),e(k);
- remfdomain f,g;
- %Problem:
- %--------
- %Calculate for a given coframe and given torsion the Riemannian part and
- %the torsion induced part of the connection. Calculate the curvature.
- %For a more elaborate example see E.Schruefer, F.W. Hehl, J.D. McCrea,
- %"Exterior Calculus on the Computer: The REDUCE-Package EXCALC Applied
- %to General Relativity and to the Poincare Gauge Theory", GRG, vol. 19,
- %1987, pp. 197-218
- pform ff=0, gg=0;
- fdomain ff=ff(r), gg=gg(r);
- coframe o(4)=d u+2*b0*cos(theta)*d phi,
- o(1)=ff*(d u+2*b0*cos(theta)*d phi)+ d r,
-
- o(2)=gg*d theta,
- o(3)=gg*sin(theta)*d phi
- with metric g=-o(4)*o(1)-o(4)*o(1)+o(2)*o(2)+o(3)*o(3);
- frame e;
- pform tor(a)=2,gwt(a)=2,gam(a,b)=1,
- u1=0,u3=0,u5=0;
- antisymmetric gam;
- fdomain u1=u1(r),u3=u3(r),u5=u5(r);
- tor(4):=0$
- tor(1):=-u5*o(4)^o(1)-2*u3*o(2)^o(3)$
- tor(2):=u1*o(4)^o(2)+u3*o(4)^o(3)$
- tor(3):=u1*o(4)^o(3)-u3*o(4)^o(2)$
- gwt(-a):=d o(-a)-tor(-a)$
- %The following is the combined connection;
- %The Riemannian part could have equally well been calculated by the
- %RIEMANNCONX statement;
- gam(-a,-b):=(1/2)*( e(-b)_|(e(-c)_|gwt(-a))
- +e(-c)_|(e(-a)_|gwt(-b))
- -e(-a)_|(e(-b)_|gwt(-c)) )*o(c);
- pform curv(a,b)=2;
- antisymmetric curv;
- factor ^;
- curv(-a,b):=d gam(-a,b) + gam(-c,b)^gam(-a,c);
- showtime;
- end;
|