Overview of the Physics Package

Description


•

Physics is a package that implements computational representations and related operations for most of the objects used in mathematical physics computations. These include, for instance, the spacetime metrics ${g}_{\mathrm{\mu},\mathrm{\nu}}$, the Kronecker and LeviCivita symmetric and antisymmetric ${\mathrm{\delta}}_{\mathrm{\mu},\mathrm{\nu}}$ and ${\mathrm{\epsilon}}_{\mathrm{\mu},\mathrm{\nu},\mathrm{\rho},\mathrm{...}}$, the Pauli and Dirac matrices ${\mathrm{\sigma}}_{\mathrm{\mu}}$ and ${\mathrm{\gamma}}_{\mathrm{\mu}}$, the spacetime differentiation operators ${\partial}_{\mathrm{\mu}}$ and d'Alembertian $\square$, an ndimensional $\mathrm{\delta}$ Dirac function; a set of commands for working with general relativity as the covariant derivative ${\u25bf}_{\mathrm{\mu}}$, the Christoffel, Einstein, Ricci, Riemann and Weyl tensors; Kets$\left\mathrm{\psi}\right.\u27e9$, Bras and commands for performing Vector Calculus in a space of quantum states, a command for computing the Scattering matrix for a model in coordinates and momentum representation, including drawing the corresponding Feynman Diagrams, etc.

•

Besides the Physics commands listed further below, Physics includes 8 subpackages: Vectors with 20 commands for vector analysis, Tetrads with 15 commands for working with tetrads, ThreePlusOne with 12 commands for working with a 3 + 1 split description of gravity and the ADM formalism, StandardModel with 42 commands including computational representations for the fields entering the standard model, NumericalRelativity with 3 commands for generating the files necessary for numerical simulations using the Cactus framework, FeynmanIntegral with 11 commands for computing Feynman integrals and related operations, Library with 173 specialized commands for programming in Physics, and Library:PhysicsType with 114 specialized types for working with Physics.

•

The Physics package extends the standard computational domain and operations introducing anticommutative and noncommutative variables and functions, appropriate for quantum physics formulations, tensor indices of spacetime, space, tetrad, spinor, su2 and su3 in the fundamental or adjoint representations, and/or gauge types, functional differentiation, differentiation with respect to anticommutative variables, and differentiation and simplification of tensorial expressions using the Einstein summation convention for repeated indices. In this way, you can take advantage of the computational power of the Maple environment with the same flexible notation used when computing with paper and pencil.

•

The extension of the computational domain includes a Physics subpackage, Vectors, to perform standard abstract differential and integral vector calculus, implementing representations for nonprojected 3D vectors, including inert and active representations for the nonprojected differential operators nabla, gradient, divergent, curl and the Laplacian, as well as algebraic (nonmatricial) representations for projected 3D vectors in the cartesian, cylindrical and spherical vector basis. It is then possible to compute using coordinatefree vectorial formulations, exploring the coordinatefree properties of the vectors and vectorial operations involved, without specifying the vector basis until that is desired, and to input /work with vectorial expressions involving both nonprojected and projected vectors using essentially the same notation found in textbooks, that you use when computing by hand.

•

In order to perform this extension of the computational domain, a set of conventions for distinguishing between commutative, anticommutative and noncommutative variables, 3D vectors, tensors, etc. are automatically established when you load the package. To change these conventions about notation to your preferred ones see Setup or launch the setup applet by using Physics[Setup]().

•

After setting the computational environment, the Physics package can be used to study and tackle problems from classical mechanics to quantum physics and relativistic quantum field theory up to the Standard Model of particle physics. Physics is based upon previous work by E.S. ChebTerrab.

•

Examples illustrating the use of the package's commands in Analytical Geometry, Mechanics, Electrodynamics, Special and General Relativity, Classical and Quantum Field Theory, and Quantum Mechanics are found in Physics examples.



List of Physics Package Commands


•

The following is a list of available commands.

•

Inert forms of these commands, representing the operations, having the same display and mathematical properties under differentiation, simplification etc., but holding the computations, consist of the same commands' names prefixed by the % character. The inert computations constructed with these commands can be activated when desired using the value command.



Brief description of each command


•

The * command performs generalized products that may simultaneously involve commutative, anticommutative and noncommutative operands.

•

The `.` command performs the scalar or inner product between Bras, Kets, and linear quantum operators defined as such using the Setup command or returned by the Annihilation and Creation commands.

•

The ^ command performs generalized exponentiation.

•

The Annihilation command constructs the annihilation or lowering operator for a given discrete space of states: when applied to a Ket, say $\n>$, representing the state of a system of n particles, the operator constructed by Annihilation returns another Ket, $\n1>$ representing the same state but with one particle less.

•

Given two objects $A$ and $B$, the AntiCommutator($A$, $B$) command represents the quantity $\mathrm{AB}+\mathrm{BA}$, denoted in textbooks as {A, B} and in the Maple worksheet as [A, B][+].

•

The Antisymmetrize and Symmetrize commands receive a tensorial expression with some free indices and return another one respectively totally antisymmetric or totally symmetric with respect to permutations of those free indices.

•

The Assume combines the functionality of the assume and additionally but, unlike assume, Assume does not redefine the variables receiving assumptions, appropriate for working with global variables having geometrical meaning as done when using the Physics package.

•

Bra and Ket are the dual of each other and represent vectors in a complex Hilbert space, frequently used to denote the state of a physical system in quantum mechanics.

•

The Bracket command represents the inner product between a Bra, say $<A\$ and a Ket $\B>$, that is $\u27e8AB\u27e9$. When acting on three arguments, say $A,H,B$, where $H$ is a linear operator, Bracket(A, H, B) represents the object $<A\H\B>=<A\\left(H\B>\right)=\left(<A\H\right)\B>$ where $\left(H\B>\right)$ is Ket, the same way as $\left(<A\H\right)$ is a Bra.

•

The Check command checks the correctness of commutative products regarding the presence of anticommutative or noncommutative objects and the correctness of the (tensor, spinor or gauge) free and repeated indices found in a mathematical expression regarding the summation convention for repeated indices.

•

The Christoffel command is the computational representation for the Christoffel symbols.

•

The Coefficients command extracts all the coefficients of a multivariate polynomial involving commutative and anticommutative variables.

•

Given two objects $A$ and $B$, the Commutator($A$, $B$) command represents the quantity $\mathrm{AB}\mathrm{BA}$, denoted in textbooks as [A, B] and in the Maple worksheet as [A, B][].

•

The CompactDisplay command declares a function for compact display, useful to avoid redundant display of coordinates and have derivatives displayed indexed by differentiation variables.

•

The Coordinates command sets aliases for the spacetime coordinates used by the Physics commands, used also as default differentiation variables by the Physics d_ and dAlembertian differentiation commands.

•

The Creation command constructs the creation or raising operator for a given discrete space of states: when applied to a Ket, say $\n>$, representing the state of a system of n particles, the operator constructed by Creation returns another Ket, $\n+1>$, that is, it increases the number of particles in a given state by one.

•

The d_ command is the indexed differential operator w.r.t the spacetime variables.

•

The D_ command is the covariant derivative indexed differential operator w.r.t the spacetime variables  the generalization of d_ to curvilinear coordinates.

•

The Dagger(A) command returns the Hermitian adjoint of the linear operator $A$; if $A$ is represented by a square matrix, Dagger(A) represents the complex conjugate of the transpose of $A$

•

The dAlembertian command is the d'Alembertian differential operator (w.r.t the spacetime parameters).

•

The Decompose command decomposes a 4D tensorial expression into 3 + 1, regarding both its free and contracted (repeated) indices.

•

The Define command is used to define an object as a Physics tensor object, as well as its structure (number of indices and variables on which the object depends) and (anti)symmetry properties under permutation of some or all of of their indices.

•

The Dgamma command represents the Dirac ${\mathrm{\gamma}}_{\mathrm{\mu}}$ matrices.

•

The DiracConjugate(A) command returns the DiracConjugate of an expression typically involving spinors or spinorial expressions.

•

The diff command is a differentiation command that works with commutative and anticommutative (AC) differentiation variables. This command is an extension of the global :diff (note the :) in that it works as :diff concerning syntax and display and when the differentiation variable is not AC. The Physics version of diff understands tensor notation and computes using the summation convention for repeated indices regarding tensor objects defined as such using the Define command. This command can also differentiate "with respect to functions" (e.g. differentiate with respect to the "velocity"), and it can compute true partial derivatives (i.e.: at fixed values of some functions also depending on the differentiation variable), not possible to compute with the global :diff.

•

The Einstein command is the computational representation for the Einstein tensor.

•

The EnergyMomentum command is the computational representation for the EnergyMomentum tensor.

•

The Expand command is available only by using the long form Physics[Expand] and normalizes and recursively expands noncommutative products over sums. Note: after loading Physics, this functionality is also provided through the standard expand command.

•

The ExteriorDerivative command computes the exterior product (that is a totally antisymmetrized product) between the covariant derivative operator and a covariant totally antisymmetric tensor.

•

The Factor command generalizes the standard factor command to be able to factor expressions involving noncommutative variables.

•

The FeynmanDiagrams command computes an expansion of the scattering matrix of a model in coordinates representation, or the scattering matrix elements in momentum representation, including the drawing of the corresponding Feynman diagrams.

•

The FeynmanIntegral is both a package and a command; as the latter, it represents (in inert form) and computes (in active form) the Feynman integrals in coordinates and momentum representation returned by the FeynmanDiagrams command

•

The Fundiff command evaluates functional derivatives. This command takes into account the summation convention for repeated indices and computes both with commutative and anticommutative variables and functions.

•

The g_ command represents the spacetime metric (displayed as g).

•

The gamma_ command represents the 3D space metric (displayed as $\mathrm{\gamma}$).

•

The Geodesics command computes and solves the geodesic equations corresponding to the spacetime metric set, optionally returning the equations themselves.

•

The GrassmannParity command computes the Grassmannian parity, as 0, 1 or undefined, according to whether an expression is commutative, anticommutative or noncommutative.

•

The Gtaylor command computes Taylor series expansion of expressions involving anticommutative variables.

•

The Intc command permits the quick input of (possibly multiple) definite integrals from $\mathrm{\infty}$ to $\mathrm{\infty}$.

•

The Inverse command is used to represent the inverse (with respect to noncommutative products) of expressions involving commutative, anticommutative, and/or noncommutative objects.

•

Ket: see Bra at the beginning of this itemization.

•

The KillingVectors computes and solves the Killing equations corresponding to the spacetime metric set, optionally returning the equations themselves.

•

The KroneckerDelta command represents the Kronecker delta (totally symmetric tensor of 2 indices displayed as $\mathrm{\delta}$).

•

The LeviCivita command represents the LeviCivita tensor (totally antisymmetric, displayed as $\mathrm{\epsilon}$) symbols.

•

The Library is a programming language for Physics containing 96 programming commands plus 58 specialized types (noncommutative variables, tensor notation, vectors, etc.); this is a selected subset of the routines with which Physics is constructed.

•

The LieBracket command computes the Lie bracket of two vector fields using algebraic tensor notation.

•

The LieDerivative command computes the Lie derivative of a tensorial expression using algebraic tensor notation.

•

The Normal command is a generalization of normal to work on expressions simultaneously involving commutative, anticommutative, and noncommutative variables.

•

The Parameters command permits the definition of the parameters of a theory in such a way that no functionality can be attached to them. For example, if m is defined as a parameter through $\mathrm{parameters}\left(m\right)$ then $m\left(t\right)$ will return just m (without any functionality) and not m(t).

•

The PerformOnAnticommutativeSystem command performs, in a system of equations with anticommutative variables, an operation (Maple command) originally programmed to work only with commutative variables.

•

The Projector command returns the projector operator onto a space of states constructed with Bras and Kets of its basis.

•

The Psigma command represents the Pauli ${\mathrm{\sigma}}_{\mathrm{\mu}}$ matrices.

•

The Redefine command is used to redefine the spacetime metric and list of coordinates according to a change in the signature, from any of the four possible signatures (+), (+), (+++) and (+++) to any of the other ones.

•

The Ricci command is the computational representation for the Ricci tensor.

•

The Riemann command is the computational representation for the Riemann tensor.

•

The Setup command permits querying about or setting the computational environment regarding conventions for distinguishing between anticommutative, noncommutative and commutative variables, vectors, the dimension of the spacetime, etc. A graphical interface (applet) for setting theses conventions can be launched by using Physics[Setup]();

•

The Simplify command simplifies noncommutative products and tensorial expressions taking into account the summation convention for repeated indices and the (anti)symmetry properties of the indices of the tensorial objects involved according to how these objects were defined using the Define command.

•

The SortProducts command sorts the operands of the products of a given expression according to an indicated ordering.

•

The SpaceTimeVector command is a representation for spacetime indexed vectors related to spacetime coordinate systems defined using Coordinates or Setup.

•

The StandardModel package implements computational representations for the fields and mathematical objects entering the Standard Model of particle physics.

•

The SubstituteTensor command substitutes into ee equations EQ having tensors, or products or sums of them, on the lefthand sides, taking care of free and repeated indices of both ee and the equations EQ such that: 1) equations in EQ are interpreted as mappings having the free indices as parameters, 2) repeated indices in EQ do not clash with repeated indices in ee.

•

The SubstituteTensorIndices command performs substitution of covariant/contravariant tensor indices in tensorial expressions.

•

Symmetrize and Antisymmetrize receive a tensorial expression with some free indices and return another one respectively totally symmetric or totally antisymmetric with respect to permutations of those free indices.

•

The TensorArray command constructs an Array that can be indexed to return the values of a tensorial expression.

•

Tetrads is a subpackage with commands for performing computations in a local system of references (tetrad system) in addition to the global (spacetime) system of references, including commands to compute using the NewmanPenrose formalism.

•

ThreePlusOne is a subpackage with commands implementing a 3 + 1 split description of gravity and the ADM formalism.

•

The ToContravariant command rewrites in contravariant form the indices of the tensors of a given expression, with several options.

•

The ToCovariant command rewrites in covariant form the indices of the tensors of a given expression, with several options.

•

The ToFieldComponents command rewrites functions of anticommutative variables (superfields) in terms of functions of commutative variables (field components).

•

The ToSuperfields command rewrites expressions with field components in terms of the corresponding superfields.

•

The Trace command is used to represent the trace of an object of abstract dimension or (possibly noncommutative) product of them, typically representing infinitedimensional operators in quantum theories. This command knows about the properties of the traces of the Dirac $\mathrm{\gamma}$ matrices.

•

The Weyl command is the computational representation for the Weyl tensor.

•

Vectors is a subpackage for performing basic abstract vector calculus with nonprojected 3D vectors and related differential operators that can be formed combining the nabla operator and the scalar and cross products for vectors.



Customer Feedback



You are very welcome to contribute ideas for improvements. There is a great deal of scope for changing and improving things; let us know your suggestions by writing to physics@maplesoft.com.



References



Textbooks



Landau, L.D., and Lifshitz, E.M. Course of Theoretical Physics. Elsevier, 1975.


Feynman, R.P.; Leighton, R.B.; and Sands, M. The Feynman Lectures on Physics. AddisonWesley, 1977.


CohenTannoudji, C.; Diu, B.; and Laloe, F. Quantum Mechanics. Paris, France: Hermann, 1977.


Bogoliubov, N.N., and Shirkov, D.V. Quantum Fields. Benjamin Cummings, 1982.


Weinberg, S., The Quantum Theory Of Fields. Cambridge University Press, 2005.


Smirnov. A Course of Higher Mathematics. Addison Wesley, 1964.



Computational implementation



Physics is based upon previous work by E.S. ChebTerrab.

–

ChebTerrab, E.S. "Maple procedures for partial and functional derivatives." Computer Physics Communications, Vol. 79, (1994): 409424.

–

ChebTerrab, E.S. "Symbolic Computing with Anticommutative and Noncommutative Variables." MapleTech Vol. 5, No. 1, (1998): 1622.

–

ChebTerrab, E.S.; da Mota, L.; and Vazques, E.C. "A symbolic computing environment for doing calculations in quantum field theories." XVI Brazilian Meeting for Fields and Particle Physics, ENFP. Brazil, 1995.

–

ChebTerrab, E.S., and Nisembaum, M. "Vector Analysis and Symbolic Computation in Physics Education." Workshop: Computers in Education, EDAI  UERJ. Rio de Janeiro, Brazil, 1995.




Compatibility


•

The Physics package was updated in Maple 2021.


