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μ,ν, the Kronecker and Levi-Civita symmetric and antisymmetric δμ,ν and εμ,ν,ρ,..., the Pauli and Dirac matrices σμ and γμ, the spacetime differentiation operators ∂μ and d'Alembertian □, an n-dimensional δ Dirac function; a set of commands for working with general relativity as the covariant derivative ▿μ, the Christoffel, Einstein, Ricci, Riemann and Weyl tensors; Kets⁢⁢ψ⁢, 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 non-projected 3-D vectors, including inert and active representations for the non-projected differential operators nabla, gradient, divergent, curl and the Laplacian, as well as algebraic (non-matricial) representations for projected 3-D vectors in the cartesian, cylindrical and spherical vector basis. It is then possible to compute using coordinate-free vectorial formulations, exploring the coordinate-free 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, 3-D 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. Cheb-Terrab.
Mathematical notation: When Physics or Physics[Vectors] are loaded in the Standard Graphical User Interface, with Typesetting level set to Extended (default), anticommutative and noncommutative variables are displayed in different colors, non-projected vectors and unit vectors are respectively displayed with an arrow and a hat on top, the vectorial differential operators (Nabla, Laplacian, etc.) with an upside down triangle, and most of the other Physics commands are displayed as in textbooks.
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.
*
.
^
Annihilation
AntiCommutator
Antisymmetrize
Assume
Bra
Bracket
Check
Christoffel
Coefficients
Commutator
CompactDisplay
Coordinates
Creation
D_
d_
Dagger
dAlembertian
Decompose
Define
Dgamma
diff
diff[anticommutative]
DiracConjugate
Einstein
EnergyMomentum
Expand
ExteriorDerivative
Factor
FeynmanDiagrams
FeynmanIntegral
Fundiff
g_
gamma_
Geodesics
GrassmannParity
Gtaylor
Intc
Inverse
Ket
KillingVectors
KroneckerDelta
LagrangeEquations
LeviCivita
Library
LieBracket
LieDerivative
Normal
Parameters
PerformOnAnticommutativeSystem
Projector
Psigma
Redefine
Ricci
Riemann
Setup
Simplify
SortProducts
SpaceTimeVector
Substitute
SubstituteTensor
SubstituteTensorIndices
SumOverRepeatedIndices
Symmetrize
TensorArray
Tetrads
ThreePlusOne
ToContravariant
ToCovariant
ToFieldComponents
ToSuperfields
Trace
TransformCoordinates
types
Updates
Vectors
Weyl
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.
Further information relevant to the use of these commands is found under Conventions used in the Physics package (spacetime tensors, not commutative variables and functions, quantum states and Dirac notation), Physics examples, Physics Updates, DifferentialGeometry and Physics constants.
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, |⁢n−1> representing the same state but with one particle less.
Given two objects A and B, the AntiCommutator(A, B) command represents the quantity AB+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 A|B. 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⁢|⁢H⁢|⁢B>=<A⁢|⁢H⁢|⁢B> where H⁢|⁢B> is Ket, the same way as <A⁢|⁢H 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 AB−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 γμ 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.
For information on conversions between diff, D, and :diff, see conversions between differentiation notations.
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 3-D space metric (displayed as γ).
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 −∞ to ∞.
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 δ).
The LeviCivita command represents the Levi-Civita tensor (totally antisymmetric, displayed as ε) 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 parameters⁡m then m⁡t 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 σμ 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 left-hand 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.
The SumOverRepeatedIndices command performs summation over the repeated indices of a tensorial expression.
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 Newman-Penrose 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 infinite-dimensional operators in quantum theories. This command knows about the properties of the traces of the Dirac γ matrices.
The TransformCoordinates command transforms the coordinates in a tensorial expression.
The Weyl command is the computational representation for the Weyl tensor.
Vectors is a subpackage for performing basic abstract vector calculus with nonprojected 3-D 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.
See Also
Conventions used in the Physics package, Conversions between differentiation notations, PhysicalConstants, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Physics[Vectors], UsingPackages
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. Addison-Wesley, 1977.
Cohen-Tannoudji, 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. Cheb-Terrab.
Cheb-Terrab, E.S. "Maple procedures for partial and functional derivatives." Computer Physics Communications, Vol. 79, (1994): 409-424.
Cheb-Terrab, E.S. "Symbolic Computing with Anti-commutative and Non-commutative Variables." MapleTech Vol. 5, No. 1, (1998): 16-22.
Cheb-Terrab, 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.
Cheb-Terrab, 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.
Download Help Document