Physics
Maple provides a state-of-the-art environment for algebraic computations in physics, with emphasis on ensuring the computational experience is as natural as possible. The theme of the Physics project for Maple 18 has been the consolidation and integration of the Physics package with the rest of the Maple library, making it even easier to combine standard Maple commands and techniques with Physics-specific computations. With more than 500 enhancements throughout the entire package to increase robustness and versatility, an extension of its typesetting capabilities to support even more standard notation, as well 17 new Physics:-Library commands to support further explorations and extensions, Maple 18 extends the range of physics-related algebraic formulations that can be done in a natural way inside Maple. The impact of these changes is across the board, from vector analysis to quantum mechanics, relativity and field theory.
As part of its commitment to providing the best possible environment for algebraic computations in physics, Maplesoft has launched a Maple Physics: Research and Development web site, where users can download research versions, ask questions, and provide feedback. The results from this accelerated exchange with people around the world have been incorporated into the Physics package in Maple 18.
Simplify
4-Vectors, Substituting Tensors
Functional Differentiation
More Metrics in the Database of Solutions to Einstein's Equations
Commutators, AntiCommutators
Expand and Combine
New Enhanced Modes in Physics Setup
Dagger
Vectors Package
Library
Miscellaneous
Simplification is perhaps the most common operation performed in a computer algebra system. In Physics, this typically entails simplifying tensorial expressions, or expressions involving noncommutative operators that satisfy certain commutator/anticommutator rules, or sums and integrals involving quantum operators and Dirac delta functions in the summands and integrands. Relevant enhancements were introduced in Maple 18 for all these cases.
Examples
restart; withPhysics: Setupmathematicalnotation = true;
mathematicalnotation=true
Simplification of sums when the summand is linear in KroneckerDeltas:
Sumsqrtn+1 KroneckerDeltam,n+1+sqrtn KroneckerDeltam,n−1,n = 0 .. infinity
∑n=0∞⁡n+1⁢δm,n+1+n⁢δm,n−1
m+m+1
Simplification of tensorial expressions. To facilitate typing, set the spacetime indices to be lowercaselatin:
Setupspacetimeindices = lowercaselatin
spacetimeindices=lowercaselatin
Define a tensor Fa:
DefineFa
Defined objects with tensor properties
γμ,Fa,σμ,∂μ,gμ,ν,δμ,ν,εα,β,μ,ν
The following tensorial expression,
−1010921950548⁢Ff2⁢Fd2⁢Fj2⁢Fa⁢Fb⁢Fc−2023081095744⁢Ff2⁢Fd2⁢Fa⁢Fb⁢Fc+1701⁢Fc⁢Fe⁢Ff⁢ge,f−81⁢Fe⁢Ff2⁢δc,e−1350⁢Fe⁢δc,f⁢δe,f⁢81⁢Fd⁢Fi⁢Fj⁢gi,j−162⁢Fj⁢δd,i⁢δi,j+108⁢Fj⁢δd,j⁢2511⁢Fa⁢Fh⁢gd,h+27⁢Fd⁢Fh⁢ga,h+324⁢Fd⁢Fh⁢δa,h⁢432⁢Fb⁢Fn2+27⁢Fb⁢gl,n2+6156⁢Fn⁢δb,n−81⁢Fa⁢Fd⁢Fk2+81⁢Fd⁢Fk⁢δa,j⁢δj,k+8100⁢Fj⁢Fk⁢ga,k⁢δd,j⁢81⁢Fb⁢Fd⁢Fi2−5832⁢Fb⁢Fd⁢δh,i2+135⁢Fi2⁢δb,d⁢−642978⁢Fe2⁢Ff⁢gc,f+8748⁢Ff⁢gc,f+128755884390192⁢Fe2⁢Fh2⁢Fa⁢Fb⁢Fc−25470904248⁢Fh2⁢Fn2⁢Fi2⁢Fa⁢Fb⁢Fc−148090286178⁢Fe2⁢Fn2⁢Fh2⁢Fi2⁢Fa⁢Fb⁢Fc−−5022⁢Fc⁢Fi⁢gh,i⁢δd,h−1458⁢Fd⁢Fh⁢gc,i⁢δh,i+81⁢Fh⁢Fi⁢δc,i⁢δd,h⁢−5994⁢Fe⁢Fg⁢gb,e⁢δa,g−2700⁢Fa⁢Fg⁢δb,g−9396⁢Fg2⁢ga,b⁢−7695⁢Fd⁢Fk⁢Fm⁢δk,m−30780⁢Fm⁢δd,k⁢δk,m+500455863936⁢Fd2⁢Fa⁢Fb⁢Fc−1850647623120⁢ga,b⁢Fh2⁢Fg2⁢Fc−18366600960⁢Fe2⁢Fn2⁢Fi2⁢Fd2⁢Fa⁢Fb⁢Fc−355087618560⁢Fe2⁢Fd2⁢Fa⁢Fb⁢Fc−5179618847700⁢Fh2⁢Fa⁢Fb⁢Fc−290804515200⁢Fe2⁢Fd2⁢Fj2⁢Fa⁢Fb⁢Fc−462661905780⁢ga,b⁢Fh2⁢Fg2⁢Fk2⁢Fc−1378008798300⁢Fh2⁢Fn2⁢Fa⁢Fb⁢Fc
−1010921950548⁢Fd⁢F⁢d⁢d⁢Ff⁢F⁢f⁢f⁢Fj⁢F⁢j⁢j⁢Fa⁢Fb⁢Fc−2023081095744⁢Fd⁢F⁢d⁢d⁢Ff⁢F⁢f⁢f⁢Fa⁢Fb⁢Fc+1701⁢ge,f⁢Fc⁢F⁢e⁢e⁢F⁢f⁢f−81⁢Ff⁢F⁢f⁢f⁢Fe⁢δcece−1350⁢Fe⁢δc,f⁢δ⁢e,f⁢e,f⁢81⁢gi,j⁢Fd⁢F⁢i⁢i⁢F⁢j⁢j−162⁢Fj⁢δd,i⁢δ⁢i,j⁢i,j+108⁢Fj⁢δdjdj⁢2511⁢Fa⁢F⁢h⁢h⁢g⁢dh⁢dh+324⁢Fh⁢F⁢d⁢d⁢δahah+27⁢F⁢d⁢d⁢F⁢h⁢h⁢ga,h⁢432⁢Fn⁢F⁢n⁢n⁢Fb+27⁢gl,n⁢g⁢l,n⁢l,n⁢Fb+6156⁢Fn⁢δbnbn−81⁢Fk⁢F⁢k⁢k⁢Fa⁢Fd+81⁢Fd⁢Fk⁢δa,j⁢δ⁢j,k⁢j,k+8100⁢ga,k⁢Fj⁢F⁢k⁢k⁢δdjdj⁢81⁢Fb⁢Fi⁢F⁢d⁢d⁢F⁢i⁢i−5832⁢Fb⁢F⁢d⁢d⁢δh,i⁢δ⁢h,i⁢h,i+135⁢Fi⁢F⁢i⁢i⁢δbdbd⁢−642978⁢Fe⁢F⁢e⁢e⁢gc,f⁢F⁢f⁢f+8748⁢gc,f⁢F⁢f⁢f+128755884390192⁢Fe⁢F⁢e⁢e⁢Fh⁢F⁢h⁢h⁢Fa⁢Fb⁢Fc−25470904248⁢Fh⁢F⁢h⁢h⁢Fi⁢F⁢i⁢i⁢Fn⁢F⁢n⁢n⁢Fa⁢Fb⁢Fc−148090286178⁢Fe⁢F⁢e⁢e⁢Fh⁢F⁢h⁢h⁢Fi⁢F⁢i⁢i⁢Fn⁢F⁢n⁢n⁢Fa⁢Fb⁢Fc−−5022⁢gh,i⁢Fc⁢F⁢i⁢i⁢δdhdh−1458⁢gc,i⁢Fd⁢Fh⁢δ⁢h,i⁢h,i+81⁢Fh⁢Fi⁢δcici⁢δdhdh⁢−5994⁢gb,e⁢F⁢e⁢e⁢Fg⁢δagag−2700⁢Fa⁢Fg⁢δbgbg−9396⁢Fg⁢F⁢g⁢g⁢ga,b⁢−7695⁢Fk⁢Fm⁢F⁢d⁢d⁢δ⁢k,m⁢k,m−30780⁢Fm⁢δ⁢dk⁢dk⁢δ⁢k,m⁢k,m+500455863936⁢Fd⁢F⁢d⁢d⁢Fa⁢Fb⁢Fc−1850647623120⁢Fg⁢F⁢g⁢g⁢Fh⁢F⁢h⁢h⁢ga,b⁢Fc−18366600960⁢Fd⁢F⁢d⁢d⁢Fe⁢F⁢e⁢e⁢Fi⁢F⁢i⁢i⁢Fn⁢F⁢n⁢n⁢Fa⁢Fb⁢Fc−355087618560⁢Fd⁢F⁢d⁢d⁢Fe⁢F⁢e⁢e⁢Fa⁢Fb⁢Fc−5179618847700⁢Fh⁢F⁢h⁢h⁢Fa⁢Fb⁢Fc−290804515200⁢Fd⁢F⁢d⁢d⁢Fe⁢F⁢e⁢e⁢Fj⁢F⁢j⁢j⁢Fa⁢Fb⁢Fc−462661905780⁢Fg⁢F⁢g⁢g⁢Fh⁢F⁢h⁢h⁢Fk⁢F⁢k⁢k⁢ga,b⁢Fc−1378008798300⁢Fh⁢F⁢h⁢h⁢Fn⁢F⁢n⁢n⁢Fa⁢Fb⁢Fc
has various terms with contracted indices. In each term, {a,b,c} are free indices:
Check, all
The repeated indices per term are: ...,...,...; the free indices are: ...
d,f,j,d,f,d,e,f,h,i,j,l,n,d,e,f,h,i,j,k,e,h,h,i,n,e,h,i,n,d,e,g,h,i,k,m,d,g,h,d,e,i,n,d,e,h,d,e,j,g,h,k,h,n,a,b,c
Taking into account Einstein's sum rule for contracted (repeated) indices, the symmetry properties of gi,j and δi,j, this tensorial expression is equal to zero:
0
The simplification of integrals and sums involving quantum operators that satisfy algebra rules is now more powerful, both in the continuous and discrete case. Consider a field, ψ, and its expansion in terms in a basis of functions, φ using operators, a and a†, that satisfy:an,a⁡p†−=δ⁡n−p
Setupop = a, psi, algebrarules = %Commutatoran, %Daggerap = Diracn−p, %Commutatoran, ap = 0
* Partial match of 'op' against keyword 'quantumoperators'
algebrarules=a⁡n,a⁡p−=0,a⁡n,a⁡p†−=δ⁡n−p,quantumoperators=a,ψ
The expansion of terms ψ and ψ†is given by:
ψr=∫−∞∞φn,r⁢anⅆn
ψ⁡r=∫−∞∞φ⁡n,r⁢a⁡nⅆn
subsn=p,r=s,Dagger
ψ⁡s†=∫−∞∞φ⁡p,s&conjugate0;⁢a⁡p†ⅆp
The commutator ψr,ψ†s is equal to:
Commutator,
ψ⁡r,ψ⁡s†−=∫−∞∞φ⁡n,r⁢a⁡nⅆn,∫−∞∞φ⁡p,s&conjugate0;⁢a⁡p†ⅆp−
expand
ψ⁡r⁢ψ⁡s†−ψ⁡s†⁢ψ⁡r=∫−∞∞φ⁡n,r⁢a⁡nⅆn⁢∫−∞∞φ⁡p,s&conjugate0;⁢a⁡p†ⅆp−∫−∞∞φ⁡p,s&conjugate0;⁢a⁡p†ⅆp⁢∫−∞∞φ⁡n,r⁢a⁡nⅆn
The products of integrals on the right-hand side can both be combined into double integrals, then recombined into a single integral and simplified taking into account the algebra rule stated: an,a⁡p†−= δn−p.
ψ⁡r⁢ψ⁡s†−ψ⁡s†⁢ψ⁡r=∫−∞∞φ⁡p,s&conjugate0;⁢φ⁡p,rⅆp
The step involving only the combination of the integrals can now also be performed separately:
combine
ψ⁡r⁢ψ⁡s†−ψ⁡s†⁢ψ⁡r=∫−∞∞∫−∞∞−φ⁡p,s&conjugate0;⁢φ⁡n,r⁢a⁡p†⁢a⁡n+φ⁡n,r⁢φ⁡p,s&conjugate0;⁢a⁡n⁢a⁡p†ⅆnⅆp
The extended capabilities in Simplify regarding integration also work in the discrete case, over sums. Redo the algebra rule now considering the same relations but in the discrete case.
Setupredo, quantumoperators = a, psi, algebrarules=%Commutatoran,%Daggerap=KroneckerDeltan,p,%Commutatoran,ap=0, spacetimeindices = greek
algebrarules=an,ap−=0,an,ap†−=δn,p,quantumoperators=a,ψ,spacetimeindices=greek
The following sum can now be simplified by combining the sums and taking into account the new (discrete) algebra rules, or just performing the combination step:
ψ⁡r=Sum⁡φn⁡r⁢an,n=−∞..∞
ψ⁡r=∑n=−∞∞⁡φn⁡r⁢an
ψ⁡s†=∑p=−∞∞⁡φp⁡s&conjugate0;⁢ap†
expandCommutator,
ψ⁡r⁢ψ⁡s†−ψ⁡s†⁢ψ⁡r=∑n=−∞∞⁡φn⁡r⁢an⁢∑p=−∞∞⁡φp⁡s&conjugate0;⁢ap†−∑p=−∞∞⁡φp⁡s&conjugate0;⁢ap†⁢∑n=−∞∞⁡φn⁡r⁢an
ψ⁡r⁢ψ⁡s†−ψ⁡s†⁢ψ⁡r=∑p=−∞∞⁡φp⁡s&conjugate0;⁢φp⁡r
ψ⁡r⁢ψ⁡s†−ψ⁡s†⁢ψ⁡r=∑p=−∞∞⁡∑n=−∞∞⁡−φp⁡s&conjugate0;⁢φn⁡r⁢ap†⁢an+φn⁡r⁢φp⁡s&conjugate0;⁢an⁢ap†
Improvements in the simplification of annihilation and the creation of fermionic operators, as well as the related occupation number operator:
Setupanticommutativeprefix = psi
anticommutativeprefix=_λ,ψ
am ≔ Annihilationpsi, notation = explicit
am≔a−ψ1
ap ≔ Creationpsi, notation = explicit
ap≔a+ψ1
The related occupation number operator:
N ≔ ap . am
N≔a+ψ1⁢a−ψ1
Consider the application of these fermionic operators to a related state vector:
Ketpsi, 1
ψ1
am .
ψ0
Increasing the occupation number,
ap .
In other words, powers of annihilation and creation fermionic operators are equal to zero:
am2
a−ψ12
Simplifyam2
Simplifyap2
The occupation number operator is also idempotent:
N N N = N
a+ψ1⁢a−ψ1⁢a+ψ1⁢a−ψ1⁢a+ψ1⁢a−ψ1=a+ψ1⁢a−ψ1
These expressions can now be simplified:
Simplify%
a+ψ1⁢a−ψ1=a+ψ1⁢a−ψ1
The simplification of vectorial expressions was also enhanced. For example:
withVectors :
B0→·v→&xB0→+B1→
B0→·v→×B0→+B1→
B0→·v→×B1→
In Maple 17, it is possible to define a tensor with a tensorial equation, where the tensor being defined is on the left-hand side. Then, on the right-hand side, you write either a tensorial expression with free and repeated indices, or a Matrix or Array with the components themselves. In Maple 18, you can also define a 4-Vector with a tensorial equation, where you indicate the vector's components on the right-hand side as a list.
One new Library routine specialized for tensor substitutions was added to the Maple library: SubstituteTensor, which substitutes the equation(s) Eqs into an expression, taking care of the free and repeated indices, such that: 1) equations in Eqs are interpreted as mappings having the free indices as parameters, and 2) repeated indices in Eqs do not clash with repeated indices in the expression. This new routine can also substitute algebraic sub-expressions of type product or sum within the expression, generalizing and unifying the functionality of the subs and algsubs commands for algebraic tensor expressions.
Define a contravariant 4-vector with components p__x, p__y, p__z,p__t:
Definep~mu = p__x, p__y, p__z,p__t
γμ,σμ,∂μ,gμ,ν,p⁢μ⁢μ,δμ,ν,εα,β,μ,ν
You can retrieve the components in different ways:
p~mu = Library:-TensorComponentsp~mu
p⁢μ⁢μ=p__x,p__y,p__z,p__t
pmu = Library:-TensorComponentspmu
pμ=−p__x,−p__y,−p__z,p__t
Or, indexing p with a contravariant or covariant integer value of the index:
p~1≠p1
p__x≠−p__x
You can compute with p⁢μ⁢μ algebraically; p[~mu] will return its components only when the index assumes integer values 0≤μ ≤4.
pmu pnu ep_mu,nu,alpha,beta
εα,β,μ,ν⁢p⁢μ⁢μ⁢p⁢ν⁢ν
pmu2
pμ⁢p⁢μ⁢μ
SumOverRepeatedIndices
p__t2−p__x2−p__y2−p__z2
Define some tensors for experimentation with the new Library:-SubstituteTensor command:
DefineA,B,F,G
A,B,F,G,γμ,σμ,∂μ,gμ,ν,p⁢μ⁢μ,δμ,ν,εα,β,μ,ν
A substitution equation:
Aμ=Gν,α⁢Aα⁢Fμ,ν
Aμ=Gν,α⁢A⁢α⁢α⁢Fμνμν
Substitute into Aν⁢A⁢ν⁢ν: the free indices of (48) are taken as parameters, repeated indices in the substitution equation do not repeat more than once in the result:
Library:-SubstituteTensor, Aν⁢A⁢ν⁢ν
Gβ,α⁢A⁢α⁢α⁢Fνβνβ⁢Gλ,κ⁢A⁢κ⁢κ⁢F⁢ν,λ⁢ν,λ
When the left-hand side of the substitution equation is a tensor function, the functionality is also taken as a parameter,
Library:-SubstituteTensorAμ⁡X=Bμ⁡X,Aν⁡Y
Bν⁡Y
SubstituteTensor can also substitute sub-expressions of type product or sum, similar to what algsubs does, so for example substitute:
Amu Bnu = Gmu,nu
Aμ⁢Bν=Gμ,ν
into,
Aalpha Fmu,nu Bbeta Arho Brho Gmu,nu
Aα⁢Fμ,ν⁢G⁢μ,ν⁢μ,ν⁢Bβ⁢Aρ⁢B⁢ρ⁢ρ
Library:-SubstituteTensor,
Gα,β⁢Gρρρρ⁢Fμ,ν⁢G⁢μ,ν⁢μ,ν
Check the free and repeated indices of this result and verify that the free indices of (52) are the same:
Check,all
μ,ν,ρ,α,β
Check,free
The free indices are: ...
α,β
The Physics:-Fundiff command for functional differentiation has been extended to handle all the complex components (abs, argument, conjugate, Im, Re, signum) and vectorial differential operators in order to compute field equations using variational principles when the field function enters the Lagrangian together with its conjugate. For an example illustrating the use of the new capabilities in the context of a more general problem, see the MaplePrimes™ post Quantum Mechanics using Computer Algebra.
restart; withPhysics:Setupmathematicalnotation = true
A function and its conjugate are considered independent from each other regarding functional differentiation:
%Fundiff = Fundiffconjugatefx, fy
δδ⁢f⁡y⁡f⁡x&conjugate0;=0
Fundiff can now compute functional derivatives of expressions involving vectorial differential operators and the corresponding conjugate functions.
withVectors:
%Fundiff = Fundiff%Gradientfx, fy
δδ⁢f⁡y⁡∇f⁡x=δ′⁡x−y⁢i∧
Set a system of coordinates for functional differentiation with many variables:
CoordinatesQ = X, Y, Z, T
Default differentiation variables for d_, D_ and dAlembertian are: Q=X,Y,Z,T
Systems of spacetime Coordinates are: Q=X,Y,Z,T
Q
The Action for a system:
S ≔ IntcNorm%GradientPhix,y,z,t2, x,y,z,t
S≔∫−∞∞∫−∞∞∫−∞∞∫−∞∞∇Φ⁡x,y,z,t2ⅆxⅆyⅆzⅆt
The equations of motion through functional differentiation:
%Fundiff = FundiffS, PhiX,Y,Z,T
δδ⁢Φ⁡Q⁡∫−∞∞∫−∞∞∫−∞∞∫−∞∞∇Φ⁡x,y,z,t2ⅆxⅆyⅆzⅆt=−ⅆ2ⅆZ2Φ⁡Q&conjugate0;−ⅆ2ⅆY2Φ⁡Q&conjugate0;−ⅆ2ⅆX2Φ⁡Q&conjugate0;
The Action for a complex scalar field with a Lagrangian quadratic in the derivatives: note that abs now automatically maps into the Norm of the vector.
S≔Intc−12absGradientΦx,y,z,t2, x,y,z,t
S≔∫−∞∞∫−∞∞∫−∞∞∫−∞∞−ⅆⅆxΦ⁡x,y,z,t&conjugate0;⁢∂∂xΦ⁡x,y,z,t2−ⅆⅆyΦ⁡x,y,z,t&conjugate0;⁢∂∂yΦ⁡x,y,z,t2−ⅆⅆzΦ⁡x,y,z,t&conjugate0;⁢∂∂zΦ⁡x,y,z,t2ⅆxⅆyⅆzⅆt
The corresponding field equation:
FundiffS, Φ⁡X,Y,Z,T = 0
ⅆ2ⅆZ2Φ⁡Q&conjugate0;2+ⅆ2ⅆY2Φ⁡Q&conjugate0;2+ⅆ2ⅆX2Φ⁡Q&conjugate0;2=0
A database of solutions to Einstein's equations was added to the Maple library in Maple 15 with a selection of metrics from "Stephani, H.; Kramer, D.; MacCallum, M.; Hoenselaers, C.; and Herlt, E., Exact Solutions to Einstein's Field Equations" and "Hawking, Stephen; and Ellis, G. F. R., The Large Scale Structure of Space-Time". More metrics from these two books were added for Maple 16 and Maple 17. These metrics can be searched using the command DifferentialGeometry:-Library:-MetricSearch, or directly using g_ (the Physics command representing the spacetime metric that also sets the metric to your choice).
For Maple 18, fifty more metrics were added to the database from Chapter 28 of the aforementioned book entitled "Exact Solutions to Einstein's Field Equations".
It is now possible to list all the metrics of a chapter by indexing the metric command with the chapter's number, for example, entering g_["28"].
By default, the metric is a Minkowski type:
g_
You can query about metrics directly from the metric command g_
g_Bajer
____________________________________________________________
28,58.2,1=Authors=Bajer, Kowalezynski (1985),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=All tensor components given with respect to the anholonomic frame,The coordinates xi and xi1 are complex conjugates
28,58.3,1=Authors=Bajer, Kowalezynski (1985),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Stationary,Comments=Case 1 of 2,The coordinates xi and xi1 are complex conjugates, the parameters _Q0 and _Q01 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,58.3,2=Authors=Bajer, Kowalezynski (1985),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=Case 1 of 2,The coordinates xi and xi1 are complex conjugates, the parameters _Q0 and _Q01 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,58.4,1=Authors=Bajer, Kowalezynski (1985),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
Warning, found more than one match for the keyword 'Bajer', as seen above. Please refine your 'keyword' or re-enter the metric 'g_[...]' with the list of three numbers identifying the metric, for example as in g_[[28, 58.2, 1]] or Setup(metric = [28, 58.2, 1])
When you identified the metric, you can set it directly from g_ (alternatively, you can do that using Setup):
g_28, 58.2, 1
Systems of spacetime Coordinates are: X=r,ξ,ξ1,u
Default differentiation variables for d_, D_ and dAlembertian are: X=r,ξ,ξ1,u
The Bajer, Kowalezynski (1985) metric in coordinates r,ξ,ξ1,u
Parameters: κ0,Q0,Q01,m0,b,Q
Comments: All tⅇnsor componⅇnts gⅈvⅇn wⅈth rⅇspⅇct to thⅇ anholonomⅈc framⅇ
New in Maple 18, you can now also list all the metrics of a chapter. For example, for the metrics of Chapter 28,
g_28
28,16,1=Authors=Robinson-Trautman (1962),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=The coordinate zeta is changed to xi,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,17,1=Authors=Robinson (1975),Foster, Newman (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=The coordinate zeta is changed to xi,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence
28,21,1=Authors=Robinson (1975),Foster, Newman (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=The coordinate zeta is changed to xi
28,21,2=Authors=Robinson (1975),Foster, Newman (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=The coordinate zeta is changed to xi
28,21,3=Authors=Robinson (1975),Foster, Newman (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Static,Comments=The coordinate zeta is changed to xi
28,21,4=Authors=Robinson (1975),Foster, Newman (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=The coordinate zeta is changed to xi,This is _a special case of Kasner spacetime Stephani [13, 51,1], [13, 53,1]
28,21,5=Authors=Robinson (1975),Foster, Newman (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Static,Comments=The coordinate zeta is changed to xi
28,21,6=Authors=Robinson (1975),Foster, Newman (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=The coordinate zeta is changed to xi
28,21,7=Authors=Robinson (1975),Foster, Newman (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Static,Comments=The coordinate zeta is changed to xi
28,24,1=Authors=Collinson, French (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=Stephani claims this metric is static which is false since the orbit type is generically Riemannian,The assumption _b >0 and _c >0 is made so that the given base point is in the domain
28,25,1=Authors=Collinson, French (1967),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,26,1=Authors=Robinson, Trautman (1962),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=One can use the diffeo r -> -r and u -> -u to make the assumption r > 0,The case _m = 0 is Stephani, [28, 16,1],The metric is type D at points where r = 3*_m/(xi1+xi2) and type II on either side of this hypersurface. For convenience, it is assumed that 3*_m - r*(xi1 + xi2) > 0,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,26,2=Authors=Robinson, Trautman (1962),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=One can use the diffeo r -> -r and u -> -u to make the assumption r > 0,The case _m = 0 is Stephani, [28, 16,1].,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,26,3=Authors=Robinson, Trautman (1962),PrimaryDescription=Vacuum,SecondaryDescription=RobinsonTrautman,Comments=One can use the diffeo r -> -r and u -> -u to make the assumption r > 0,The case _m = 0 is Stephani, [28, 16,1].,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,41,1=Authors= Bartrum (1967),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=PureRadiation,RobinsonTrautman,Comments=AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,43,1=Authors=Robinson, Trautman (1962),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=PureRadiation,RobinsonTrautman,Comments=h1(u) is the conjugate of h(u)
28,44,1=Authors=Leroy (1976),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=Case 1 of 6. K = 1, Riemmannian Orbits,_Q1 is the conjugate of Q,The metric is defined for all r > 0. The restriction 2*r^2 - 4*_m*r +_kappa0*_Q*_Q1 < 0 gives Riemannian orbits for the isometry group
28,44,2=Authors=Leroy (1976),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Static,Comments=Case 2 of 6 K = 1, PseudoRiemmannian Orbits,_Q1 is the conjugate of Q,The metric is defined for all r > 0. The restriction 2*r^2 - 4*_m*r +_kappa0*_Q*_Q1 > 0 gives PseudoRiemannian orbits for the isometry group
28,44,3=Authors=Leroy (1976),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=Case 3 of 6 K = 0, Riemmannian Orbits,_Q1 is the conjugate of Q,The metric is defined for all r > 0. The restriction _Q*_Q1*_kappa0-4*_m*r < 0 gives Riemannian orbits for the isometry group
28,44,4=Authors=Leroy (1976),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Static,Comments=Case 4 of 6 K = 0, Pseudo-Riemmannian Orbits,_Q1 is the conjugate of Q,The metric is defined for all r > 0. The restriction _Q*_Q1*_kappa0-4*_m*r > 0 gives Pseudo-Riemannian orbits for the isometry group
28,44,5=Authors=Leroy (1976),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=Case of 6. K = 1, Riemmannian Orbits,_Q1 is the conjugate of _Q,The metric is defined for all r > 0. The restriction _Q*_Q1*_kappa0 - 4*m*r- 2*r^2 < 0 gives Riemannian orbits for the isometry group
28,44,6=Authors=Leroy (1976),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Static,Comments=Case 6 of 6. K = 1, Pseudo-Riemmannian Orbits,_Q1 is the conjugate of _Q,The metric is defined for all r > 0. The restriction 2*r^2 - 4*_m*r +_kappa0*_Q*_Q1 > 0 gives Pseudo-Riemannian orbits for the isometry group
28,45,1=Authors=Leroy (1976),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=Static,Comments=Case 1 of 2,Note that the metric only depends on the square of the function P. If the funtion P^(-2) is negative, then the solution is static.,The parameter _q determines _a duality rotation on the electromagnetic field.
28,45,2=Authors=Leroy (1976),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=,Comments=Case 2 of 2,Note that the metric only depends on the square of the function P. If the funtion P^(-2) is negative, then the solution is static.,The parameter _q determines _a duality rotation on the electromagnetic field.
28,46,1=PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=Case 1 of 2
28,46,2=PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Stationary,Comments=Case 2 of 2
28,53,1=Authors=Bartrum (1967),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,PureRadiation,Stationary,Comments=Case 1 of 2. We take _m > 0 for simplicity. AlternativeNullTetrad1 is the standard Robinson Trautman null tetrad. The orbit type is pseudo-Riemannian at the given base point if _f1(0)^2*_f2(0)^2 > 2_m. If alpha = constant then the electromagnetic field is inheriting.
28,53,2=Authors=Bartrum (1967),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,PureRadiation,Comments=Case 2 of 2. We take _m > 0 for simplicity. AlternativeNullTetrad1 is the standard Robinson Trautman null tetrad. The orbit type is pseudo-Riemannian at the given base point if _f1(0)^2*_f2(0)^2 < 2_m. If alpha = constant then the electromagnetic field is inheriting.
28,55,1=PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Stationary,Comments=Case 1 of 2. We choose _A > 0 and u > 0 for simplicity. AlternativeNullTetrad1 is the standard Robinson Trautman null tetrad.
28,55,2=PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=Case 2 of 2. We choose _A > 0 and u > 0 for simplicity. AlternativeNullTetrad1 is the standard Robinson Trautman null tetrad.
28,60,1=Authors=Kowalczynski (1978),Kowalczynski (1985),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates, the parameters _Q0 and _Q01 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,61,1=Authors=Kowalczynski (1978),Kowalczynski (1985),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates, the parameters _Q0 and _Q01 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,64,1=Authors=Herlt and Stephani (1984),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,66,1=Authors=Herlt and Stephani (1984),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,67,1=Authors=Herlt and Stephani (1984),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,68,1=Authors=Herlt and Stephani (1984),PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,72,1=PrimaryDescription=PureRadiation,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,73,1=Authors=Frolov and Khlebnikov (1975),PrimaryDescription=PureRadiation,SecondaryDescription=RobinsonTrautman,Comments=The coordinates xi and xi1 are complex conjugates
28,74,1=Authors=Frolov and Khlebnikov (1975),PrimaryDescription=PureRadiation,SecondaryDescription=RobinsonTrautman,Comments=With _m(u) = constant, the metric is Ricci flat and becomes 28.24 in Stephani.
28,56.1,1=Authors=Leroy, 1976,PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Stationary,Comments=Case 1 of 3, epsilon = 0, stationary,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,56.2,2=Authors=Leroy, 1976,PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=Case 2 of 3, epsilon = 0,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,56.2,3=Authors=Leroy, 1976,PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=Case 3 of 3, epsilon = 1,AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,56.3,1=Authors=Leroy, 1976,PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,56.4,1=Authors=Leroy, 1976,PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,56.5,1=Authors=Leroy, 1976,PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
28,56.6,1=Authors=Leroy, 1976,PrimaryDescription=EinsteinMaxwell,SecondaryDescription=RobinsonTrautman,Comments=AlternativeOrthonormalTetrad1 and AlternativeNullTetrad1 are adapted to the shear-free null geodesic congruence (Robinson-Trautman tetrads)
Warning, found more than one match for the keyword '28', as seen above. Please refine your 'keyword' or re-enter the metric 'g_[...]' with the list of three numbers identifying the metric, for example as in g_[[28, 16, 1]] or Setup(metric = [28, 16, 1])
When computing with products of noncommutative operators, the results depend on the algebra of commutators and anticommutators that you previously set. Besides that, in Physics, various mathematical objects themselves satisfy specific commutation rules. You can query about these rules using the Library commands Commute and Anticommute. Previously existing functionality and enhancements in this area were refined and implemented in Maple 18. Among them:
Both Commutator and AntiCommutator now accept matrices as arguments.
The AntiCommutator of products of fermionic operators - for instance annihilation and creation operators - is now derived automatically from the intrinsic anticommutation rules they satisfy.
Commutators and Anticommutators of vectorial quantum operators A→,B→, are now implemented and expressed using the dot (scalar) product, as in A→,B→−=A→·B→−B→·A→
If two noncommutative operators a and S satisfy a†,S−=0 , then the commutator a,S†− is automatically taken equal to 0; if in addition S is Hermitian, then a,S−is also automatically taken equal to zero.
Commutator and AntiCommutator now also operate on matrices:
M__1≔ Matrix2,2,a,b,c,d
M__1≔abcd
M__2≔ Matrix2,2,alpha,beta,gamma,delta
M__2≔αβγδ
%Commutator = CommutatorM__1, M__2
abcd,αβγδ−=b⁢γ−c⁢βa⁢β−α⁢b+b⁢δ−β⁢d−γ⁢a+c⁢α−δ⁢c+d⁢γ−b⁢γ+c⁢β
Commutators of vectorial operators were implemented, expressed using the scalar (dot) product:
withVectors: Setupop = A_, B_
quantumoperators=A→,B→
Commutator = expand@CommutatorA_, B_
A→,B→−=A→·B→−B→·A→
Define 4 pairs of annihilation/creation operators for fermionic particles:
for j to 4 do apj ≔ Creationpsi, j, notation = explicit; amj ≔ Annihilationpsi, j, notation = explicit end do;
ap1≔a+ψ1
am1≔a−ψ1
ap2≔a+ψ2
am2≔a−ψ2
ap3≔a+ψ3
am3≔a−ψ3
ap4≔a+ψ4
am4≔a−ψ4
For these operators, the system knows about the anticommutator rules satisfied between any two of them, the algebra is set on the fly when you define them.
Setupalgebra
* Partial match of 'algebra' against keyword 'algebrarules'
algebrarules=a−ψ1,a+ψ1+=1,a−ψ2,a+ψ2+=1,a−ψ3,a+ψ3+=1,a−ψ4,a+ψ4+=1
Using that information, the system now also knows about the anticommutator of products of these fermionic operators. For example, on the left-hand side: inert, on the right-hand side: computed.
%AntiCommutator = AntiCommutatorap1,am1⁢am2⁢ap2
a+ψ1,a−ψ1⁢a−ψ2⁢a+ψ2+=a−ψ2⁢a+ψ2
This new functionality is automatically used when sorting products of non-commutative operators according to a specified ordering using the new Library:-SortProducts routine; let P be a product:
P ≔ ap2 am2 am1 ap1
P≔a+ψ2⁢a−ψ2⁢a−ψ1⁢a+ψ1
Rewrite this product using the following ordering: with the creation operators to the left, using the anticommutator relations between them.
ApAm ≔ seqapj, j = 1 .. 2, seqamj, j = 1 .. 2
ApAm≔a+ψ1,a+ψ2,a−ψ1,a−ψ2
Library:-SortProductsP, ApAm, useanticommutator
a+ψ1⁢a+ψ2⁢a−ψ1⁢a−ψ2+a+ψ2⁢a−ψ2
Changes in design:
F⁡a,b, ... is now considered noncommutative when any of the arguments a,b, ... is noncommutative, regardless of the character of F itself;
Fa automatically commutes with a whenever F is a known mathematical function (understanding that in these cases F can be represented as a combination of sums and products of its arguments)
Unless indicated otherwise through commutation rules set using Setup, the commutation between quantum operators, Bras and Kets is now as follows:
Quantum operators do not commute with Kets or Bras.
Kets do not commute with Bras.
Kets commute with Kets and Bras commute with Bras only when they are eigenvectors of operators that commute (i.e.: their labels commute).
Set some operators for experimentation, two of which commute:
Setupop = A, B, C, %CommutatorA,B=0
algebrarules=A,B−=0,a−ψ1,a+ψ1+=1,a−ψ2,a+ψ2+=1,a−ψ3,a+ψ3+=1,a−ψ4,a+ψ4+=1,quantumoperators=A,A→,B,B→,C
A, KetC
A,C
Library:-Commute
false
Library:-CommuteA, KetB
Library:-CommuteKetA, KetB
true
Library:-CommuteKetA, KetC
In the context of Physics, the expansion and recombination of algebraic expressions requires additional care: products may involve non-commutative operators and then some of the standard expansion and combination rules do not apply, or apply differently. Similarly, the expansion of vectorial operators also follows special rules. In Maple 18, many of these algebraic operations were reviewed and related special formulas (such as Glauber's and Hausdorff's) were implemented.
restart; withPhysics: Setupnotation = true
* Partial match of 'notation' against keyword 'mathematicalnotation'
Set three quantum operators to illustrate ideas:
Setupop = A,B,C
quantumoperators=A,B,C
The exponential of a sum of noncommutative operators and Glauber's formula:
expA +B
ⅇA+B
This exponential cannot be expanded into a product of two exponentials because A and B do not commute with their commutator.
However, an expansion is possible when A and B commute with their commutator; this is Glauber's formula. For instance, set A and B to commute with C, while C represents their commutator:
Setup%CommutatorA, B = C, %CommutatorA, C = 0, %CommutatorB, C = 0
algebrarules=A,B−=C,A,C−=0,B,C−=0
Now,
= expand
ⅇA+B=ⅇA⁢ⅇB⁢ⅇ−C2
The combination of a product of exponentials of noncommutative exponents using combine.
You can recombine back the right-hand side using combine:
ⅇA+B=ⅇA+B
Expanding the logarithm of a product of exponentials of noncommutative operands.
An expansion is possible depending on the value of the commutator of the exponents, as in:
ln⁡ⅇA⁢ⅇB=A+B+12⁢A,B−+112⁢A,A,B−−B,A,B−−+...
This is Hausdorff's formula. It is implemented now for the more frequent case where the commutator A,B−=C, such that C is commutative and A and B are real, so that all but the first three terms on the right-hand side remain. Clear C from the set of quantum operators:
Setupclear, quantumoperators = C
quantumoperators=A,B
lnexpA expB
ln⁡ⅇA⁢ⅇB
So, for nonreal A and B, the expansion of this logarithm is not possible in closed form:
Assuming they are real:
expand assuming A,real, B,real
A+B+C2
Alternatively, setting A and B as real objects, using the new realobjects option of Setup, this operation can soon after be performed without using assuming:
Setupreal = A, B
* Partial match of 'real' against keyword 'realobjects'
realobjects=A,B
ln⁡ⅇA⁢ⅇB=A+B+C2
Powers of the same noncommutative base can be combined when the exponents commute, but not otherwise.
Setupop = n,m
quantumoperators=A,B,m,n
An Am
An⁢Am
Library:-Commuten, m
So, this product cannot be combined as "powers of the same base":
Am⁢An
However, if the exponents commute:
Setup%Commutatorm,n=0
algebrarules=A,C−=0,A,B−=C,B,C−=0,m,n−=0
Am+n
The combined exponential can then be expanded:
Also A⁢B⁢Ck is expanded into A⁢Bk⁢Ck whenever C commutes with A⁢B, even if none of A,B and C are commutative (they may commute through user-defined algebra rules).
Setupop = C
quantumoperators=A,B,C,m,n
From the algebra rules already set:
Setupalg
* Partial match of 'alg' against keyword 'algebrarules'
algebrarules=A,B−=C,A,C−=0,B,C−=0,m,n−=0
The product A⁢B commutes with C.
Library:-CommuteA B, C
Hence, when k is a nonnegative integer, the product A⁢B⁢Ck can be rewritten as A⁢Bk⁢Ck=Ck⁢A⁢Bk. As a result:
A⁢B Ck
A⁢B⁢Ck
expand assuming k∷nonnegint
Ck⁢A⁢Bk
A new option in Expand is to not sort noncommutative operands in products. This permits an expansion without further automatic simplifications, which therefore allows more control over the steps.
Suppose there are two objects, A and B, both noncommutative, which commute between themselves:
Setupredo, %CommutatorA, B = 0
algebrarules=A,B−=0
By default, Expand will expand products and normalize noncommutative products by rewriting them in a unique way. For instance, because A and B commute, then the product B⁢A is automatically rewritten as A⁢B.
A+B2
Expand
A2+2⁢A⁢B+B2
It is sometimes preferred to keep the ordering visible. That is, to not perform this sorting of operands in noncommutative products taking into account their commutability. The new option, sortnoncommutative, (the same option described in the help page of Physics:-Normal) allows for that:
Expand, sortnoncommutative = false
A2+A⁢B+B⁢A+B2
Expansion of inert brackets.
For convenience, brackets are automatically expanded:
BracketA, B+C, A
A|B|A+A|C|A
However, inert brackets are not automatically expanded. An expansion rule for the inert case is now available. This allows one to take more control over the operations when computing with brackets and only perform the expansion when desired.
%BracketA, B+C, A
A|B+C|A
It is now possible to re-combine inert brackets.
Algebraic vectorial expressions can also be expanded in different ways.
B0_ . v_ &x B0_ + B1_;
You can use expand, Expand, or – in the case of Vectors expandable commands as this one – Simplify.
Expansion of inert vectorial operators:
%Curl%CurlA_
∇×∇×A→
∇∇·A→−∇2A→
%Divergence%CurlA_
∇·∇×A→
%Curl%GradientFx,y,z
∇×∇F⁡x,y,z
Four enhanced modes were added to the Physics setup. With these modes, you can:
Indicate the real objects of a computation.
Automatically combine powers of the same base.
Set Maple to take z and its conjugate, z&conjugate0;, as independent variables and in equal footing; this is Wirtinger calculus.
Redefine the sum command in order to perform multi-index summation.
In Maple 18, these options combined provide flexibility, subsequently making the Physics environment more expressive.
Real Objects
In almost any mathematical formulation in Physics, there are objects that are real; for example: Planck's constant, time, the mass and position of particles, etc. Independent of the Physics package, there are two standard ways to indicate that a variable is real. First, by using assuming, where the real character is valid only for one computation. Second, by using assume, where the real character is taken into account only after the assumption is placed, and so you cannot reuse previous expressions with the new assumption meaning.
In Maple 18, there is now a third way, so that:
You can turn the real character of selected variables ON and OFF at any moment, without restarting.
You can reuse computations found anywhere on the worksheet, which take the indicated real character of variables and functions into account (including expressions entered before saying which are the real objects).
You can query about the real objects set at any moment.
You can indicate algebraic non-projected vectors to be real.
All of the geometrical coordinates, Cartesian, cylindrical and spherical, including the related unit vectors, as well as any 4-D coordinate system defined using Coordinates or Setup are automatically taken as real.
The real variables and functions that you set to be real are automatically recognized by the is and coulditbe commands and through them, by the rest of the Maple library.
As with everything else in Physics, you set the realobjects involved in your computation in Physics:-Setup, either entering the information in the Maple worksheet or using the Physics setup visual-applet.
This development is integrated with the commands is and coulditbe, and by extension, with the whole Maple library (conjugate, simplify, int, series, etc.), such that the real objects specified using Physics:-Setup are considered real by the whole system.
To query about the real objects at any moment,
Setuprealobjects
realobjects=
Define a coordinate system:
Setupcoordinates = X
* Partial match of 'coordinates' against keyword 'coordinatesystems'
Default differentiation variables for d_, D_ and dAlembertian are: X=x1,x2,x3,x4
Systems of spacetime Coordinates are: X=x1,x2,x3,x4
coordinatesystems=X
realobjects=X
X1
x1
isx1, real
Imx1
conjugatex1
Load the vector package:
realobjects=i∧,j∧,k∧,φ∧,r∧,ρ∧,θ∧,φ,r,ρ,θ,x,x1,x2,x3,x4,y,z
The norm of the sum of two vectors:
NormA_ + B_
A→+B→
A→2+A→·B→&conjugate0;+B→·A→&conjugate0;+B→2
Above, we see the norm computed in a general domain where vectors are complex. Frequently, however, vectors in Physics assume real values:
Setupreal = A_, B_
realobjects=A→,B→,i∧,j∧,k∧,φ∧,r∧,ρ∧,θ∧,φ,r,ρ,θ,x,x1,x2,x3,x4,y,z
Expand now (135)
A→2+2⁢A→·B→+B→2
You can unset real objects the same way as every other Physics setting, using the clear keyword of Setup:
Setupclear, real = B_
realobjects=A→,i∧,j∧,k∧,φ∧,r∧,ρ∧,θ∧,φ,r,ρ,θ,x,x1,x2,x3,x4,y,z
isA_, real, isB_, real
true,false
A→2+A→·B→&conjugate0;+A→·B→+B→2
Combining Powers of the Same Base
In Maple, if you enter xn⁢xm, in order to receive xn+m, you need to use the combine command and the same happens with products of exponentials. The idea is to give you more control over the steps. On the other hand, depending on your problem, this level of control may be too elementary and an automatic combination of powers of the same base may be preferred. This combination of powers, for example, ⅇA⁢ⅇB, is invalid when the exponents A and B do not commute (if A and B are matrices); unless A and B commute with their commutator AB−BA. In this case, the combination can be done using Glauber's formula, which is related to Hausdorff's formula. These have both been implemented in Physics for Maple 18.
To address this situation and its nuances, Maple 18 allows you to turn the automatic combination of powers of the same base ON and OFF. This can be done without having to restart and includes the correct combination rules for noncommutative bases or exponents.
The starting value of combinepowersofsamebase is false:
Setupcombinepowersofsamebase
combinepowersofsamebase=false
Activate the feature:
Setupcombine = true
* Partial match of 'combine' against keyword 'combinepowersofsamebase'
combinepowersofsamebase=true
From here on, powers of the same base are automatically combined when it is mathematically correct:
Am An
The combination is valid for noncommutative A provided that n and m commute:
Setupquantumoperators = A
quantumoperators=A
Library:-Commutem, n
You can turn this feature ON and OFF at any moment and continue computing:
Setupcombine = false
Setupop = m, n
quantumoperators=A,m,n
Now, the combination cannot be performed.
Setup%Commutatorm, n = 0
algebrarules=m,n−=0
For exponentials, Glauber's formula is automatically taken into account. For instance, set B and C to be noncommutative operators, A and B to commute with C , and C equal to the commutator of A and B :
Setupop = B, C, %CommutatorA, C = 0, %CommutatorB, C = 0, %CommutatorA, B = C
algebrarules=A,B−=C,A,C−=0,B,C−=0,m,n−=0,quantumoperators=A,B,C,m,n
Automatic combination of exponentials using Glauber's formula:
expA expB
ⅇA+B+C2
Turn the feature OFF and expand the previous result:
ⅇA⁢ⅇB
You can recombine this result as usual using combine:
Complex variables: z and z&conjugate0; in equal footing
Generally speaking, there are two contexts for differentiating complex functions with respect to complex variables. In the first context, called the classical complex analysis, the derivatives of the complex components (abs, argument, conjugate, Im, Re, signum) with respect to complex variables do not exist (do not satisfy the Cauchy-Riemann conditions), with the exception of special cases. In the second context, first introduced by Poincare (also called Wirtinger calculus), z and its conjugate z&conjugate0; are taken as independent variables, and all the six derivatives (Wirtinger derivatives) of the complex components are computable. In the first context, differentiation can only be performed on holomorphic functions. However, Wirtinger calculus permits extending complex differentiation to non-holomorphic functions provided that they are =-differentiable (i.e. differentiable functions of real and imaginary parts, taking fz=fx,y as a mapping ℝ2→ℝ). Correspondingly, Physics in Maple 18 implements:
Redefinition of the differentiation rules of the complex components: without loading Physics, these six derivatives are returned expressed in terms of the uncomputed higher order derivatives of abs and signum, as in previous Maple releases. After loading Physics, they return uncomputed, but the derivative of each complex component is expressed in terms of itself instead of abs and signum. This permits working with complex functions and their derivatives in a more natural way.
A new set of conversion routines allows for the six complex components and their derivatives in terms of any of the other components to be rewritten.
Optional work with d/dz and d/dz&conjugate0; as classical complex analysis differentiation operators (context 1), or Wirtinger differentiation operators (context 2), depending on the value of a new Physics Setup setting: usewirtingerderivatives.
The six complex components are:
complex_components ≔ abs, argument, conjugate, Re, Im, signumz
complex_components≔z,arg⁡z,z&conjugate0;,ℜ⁡z,ℑ⁡z,signum⁡z
New conversion routines to express any complex component in terms of the other ones:
mapu → u = convertu, abs,complex_components
z=z,arg⁡z=−I⁢ln⁡zz,z&conjugate0;=z2z,ℜ⁡z=z2+z22⁢z,ℑ⁡z=−I2⁢z−z2z,signum⁡z=zz
mapu → u = convertu, conjugate,complex_components
z=z⁢z&conjugate0;,arg⁡z=−I⁢ln⁡zz⁢z&conjugate0;,z&conjugate0;=z&conjugate0;,ℜ⁡z=z2+z&conjugate0;2,ℑ⁡z=I2⁢−z+z&conjugate0;,signum⁡z=zz⁢z&conjugate0;
mapu → u = convertu, argument,complex_components
z=zⅇI⁢arg⁡z,arg⁡z=arg⁡z,z&conjugate0;=zⅇ2⁢I⁢arg⁡z,ℜ⁡z=z⁢1+1ⅇ2⁢I⁢arg⁡z2,ℑ⁡z=−I2⁢z−zⅇ2⁢I⁢arg⁡z,signum⁡z=ⅇI⁢arg⁡z
The derivatives of these complex components return unevaluated. However, after loading Physics, they are expressed in terms of themselves (not in terms of unevaluated derivatives of abs and signum). The left-hand side is the inert representation for the derivative and the right-hand side is the actual derivative after being computed:
dcc ≔ map%diff = diff, complex_components, z
dcc≔ⅆⅆzz=abs⁡1,z,ⅆⅆzarg⁡z=ⅆⅆzarg⁡z,ⅆⅆzz&conjugate0;=ⅆⅆzz&conjugate0;,ⅆⅆzℜ⁡z=ⅆⅆzℜ⁡z,ⅆⅆzℑ⁡z=ⅆⅆzℑ⁡z,ⅆⅆzsignum⁡z=signum⁡1,z
New: the same way we have ⅆⅆzz&conjugate0;≠0, we now also have ⅆⅆz&conjugate0; z≠0.
diffz, conjugatez ≠ 0
∂∂z&conjugate0;z≠0
With these changes, it is possible to compute field equations naturally. For instance, consider the following Lagrangian of a complex scalar field. For readability, make Φ⁡x,y,z,t have a compact display and derivatives be displayed indexed (see PDEtools:-declare)
PDEtools:-declarePhix, y, z, t
Φ⁡x,y,z,t⁢will now be displayed as⁢Φ
The Lagrangian:
L ≔ I/2 conjugatePhix, y, z, t diffPhix, y, z, t, t−diffconjugatePhix, y, z, t, t Phix, y, z, t;
L≔I2⁢Φ&conjugate0;⁢Φt−Φ&conjugate0;t⁢Φ
The corresponding action:
S ≔ IntcL,x,y,z,t;
S≔∫−∞∞∫−∞∞∫−∞∞∫−∞∞I2⁢Φ&conjugate0;⁢Φt−Φ&conjugate0;t⁢Φⅆxⅆyⅆzⅆt
The field equation is computed in a natural way, taking the functional derivative of the action with respect to the field Φ:
%Fundiff = FundiffS, Φ⁡X,Y,Z,T
δδ⁢Φ⁡X,Y,Z,T⁡∫−∞∞∫−∞∞∫−∞∞∫−∞∞I2⁢Φ&conjugate0;⁢Φt−Φ&conjugate0;t⁢Φⅆxⅆyⅆzⅆt=−I⁢Φ⁡X,Y,Z,T&conjugate0;T
Higher derivatives of signum are not anymore equal to signum⁡1,z for all differentiation orders. They now also take into account the chain rule.
ⅆⅆzsignum⁡f⁡z
fz⁢signum⁡1,f⁡z
ⅆⅆz
fz,z⁢signum⁡1,f⁡z+fz2⁢signum⁡2,f⁡z
This is relevant in connection with the relationship between the derivative of signum and the Dirac delta function. The derivative of z is now computable when ℜ⁡z=0.
abs1, I
−I
Derivatives of complex components can also be converted using the new convert routines.
diffargumentz,z
arg⁡zz
convert, conjugate
−I⁢1z⁢z&conjugate0;−z⁢z&conjugate0;+z⁢z&conjugate0;z2⁢z⁢z&conjugate0;32⁢z⁢z&conjugate0;z
diffsignumz,z
signum⁡1,z
convert, argument
−2⁢I⁢arg⁡zz−z⁢arg⁡zz2−I⁢z⁢arg⁡zz,zⅇI⁢arg⁡z
Wirtinger calculus, with z and z&conjugate0; in equal footing: this is perhaps the most important part of the changes performed regarding complex components. You can switch between using or not using Wirtinger derivatives in the middle of a worksheet without restarting Maple 18. Simply use the usewirtingerderivatives keyword of Setup.
Setupwir=true
* Partial match of 'wir' against keyword 'usewirtingerderivatives'
usewirtingerderivatives=true
In this Wirtinger context, the six derivatives of the non-holomorphic complex components are now computed as: (compare with (167))
dcc≔ⅆⅆzz=z&conjugate0;2⁢z,ⅆⅆzarg⁡z=−I2z,ⅆⅆzz&conjugate0;=0,ⅆⅆzℜ⁡z=12,ⅆⅆzℑ⁡z=−I2,ⅆⅆzsignum⁡z=12⁢z
Note that in this context ⅆⅆzz&conjugate0;=0 (this is the third derivative in the list (181)). Likewise, when usewirtingerderivatives=true,
%diff = diffz,z&conjugate0;
∂∂z&conjugate0;z=0
Redefine Sum for Multi-Index Summation
A new option, redefinesum, permits redefining the sum command, such that:
The sum command can now perform multi-index summation. For example, ∑1≤i+j≤n⁡fi,j
The sum command avoids premature evaluation of its arguments.
Without redefining the sum command, both features are also available by using the new Add command of the Physics:-Library.
By default, the sum command is not redefined. Therefore, the value of redefinesum is:
restart; withPhysics:Setupredefinesum
redefinesum=false
Multi-index summation is a summation performed over various indices at the same time for a pre-established value of the sum of these indices (lower and upper values). The multi-index summation functionality is new in Maple 18 and available through the Physics:-Library:-Add command:
Library:-Addfi,j, 1≤i+j≤n
∑1≤i+j≤n⁡fi,j
For instance, for n = 2,
eval, n=2
f0,1+f1,0+f0,2+f1,1+f2,0
This functionality can be plugged directly into the sum command. For that purpose, set redefinesum to true:
Setupredefinesum = true
redefinesum=true
You can now perform multi-index summation directly from sum. The left-hand side is inert while the right-hand side is computed:
%sum = sumfi,j, i+j ≤ 2
∑i+j≤2⁡fi,j=f0,0+f0,1+f1,0+f0,2+f1,1+f2,0
value
f0,0+f0,1+f1,0+f0,2+f1,1+f2,0=f0,0+f0,1+f1,0+f0,2+f1,1+f2,0
Indicate a lower value for the sum of the indices:
%sum = sumfi,j, 1 ≤ i+j ≤ 2
∑1≤i+j≤2⁡fi,j=f0,1+f1,0+f0,2+f1,1+f2,0
The formula for the integer power of a sum:
a+b+cn = sumn!/p! q! r! ap bq cr, p+q+r = n;
a+b+cn=∑p+q+r=n⁡n!⁢1p!⁢q!⁢r!⁢ap⁢bq⁢cr
a+b+c2=a2+2⁢a⁢b+2⁢a⁢c+b2+2⁢b⁢c+c2
eval, n=3
a+b+c3=a3+3⁢a2⁢b+3⁢a2⁢c+3⁢a⁢b2+6⁢a⁢b⁢c+3⁢a⁢c2+b3+3⁢b2⁢c+3⁢b⁢c2+c3
Verify whether this equation is true
evalb@expand
Besides this new function, the redefined sum accomplishes a more modern/convenient handling of its arguments, consider:
a ≔ 1; b ≔ 2; j ≔ 3;
a≔1
b≔2
j≔3
In the following summation, j is a dummy summation index. As a result, the value assigned above, j≔3, is not expected to interfere with the summation. This is the case with the redefined sum:
sumfj, j=a..b
f⁡1+f⁡2
Without redefining sum, the input above is interrupted with an error message due to the premature evaluation of the summation index. Similarly, in this other case:
g ≔ j→if j∷odd then Gj else 0 fi
g≔j↦ifj::oddthenGjelse0endif
The following two summations can be performed after having a redefined sum:
sumgi, i = 1 .. f;
∑i=1f⁡g⁡i
eval, f=3
G1+G3
For the summation (197), without redefining sum, it returns 0 instead of unevaluated. This is because of a premature evaluation of the function g⁡i with an unassigned index i, before performing the summation. Returning unevaluated as (197) permits evaluating the sum at a later moment, for instance attributing a value to f as in (198).
Physics:-Dagger now has the same shortcut notation of Hermitian transpose, which acts on Vectors, vector products, equations, and automatically maps over the arguments of derivatives when the differentiation variables are real.
PDEtools:-declarex,y,zt
x⁡t⁢will now be displayed as⁢x
y⁡t⁢will now be displayed as⁢y
z⁡t⁢will now be displayed as⁢z
Handling Vector structures, Matrices and equations:
V ≔ Vectordiffx,y,zt,t=Matrix3,i,j → fi,j . Vectorcolumnx,y,zt
V≔xtytzt=f1,1⁢x+f1,2⁢y+f1,3⁢zf2,1⁢x+f2,2⁢y+f2,3⁢zf3,1⁢x+f3,2⁢y+f3,3⁢z
Indicate that t is real:
Setupreal = t
realobjects=t
Computing the Dagger (Hermitian conjugate) automatically maps Dagger on both sides of the equation:
x&conjugate0;ty&conjugate0;tz&conjugate0;t=f1,1&conjugate0;⁢x&conjugate0;+f1,2&conjugate0;⁢y&conjugate0;+f1,3&conjugate0;⁢z&conjugate0;f2,1&conjugate0;⁢x&conjugate0;+f2,2&conjugate0;⁢y&conjugate0;+f2,3&conjugate0;⁢z&conjugate0;f3,1&conjugate0;⁢x&conjugate0;+f3,2&conjugate0;⁢y&conjugate0;+f3,3&conjugate0;⁢z&conjugate0;
A new shortcut notation is available: V^* for Dagger⁡V:
V*
Load the Vectors package to compute with algebraic vectors instead of Matrix structures:
Dagger recognizes Vectorial differential operators from Physics:-Vectors, and because the differentiation variables of these operators are always real, it automatically maps over the operands.
%DivergenceA_
∇·A→
%Dagger = Dagger
∇·A→†=∇·A→&conjugate0;
Setupreal = A_
realobjects=A→,i∧,j∧,k∧,φ∧,r∧,ρ∧,θ∧,φ,r,ρ,t,θ,x,y,z
∇·A→†=∇·A→
Set two vectorial quantum operators:
Setupop = A_, B_
A_ . B_
A→·B→
B→†·A→†
Set an anticommutative prefix to eta,
Setupanticommutativeprefix = eta
anticommutativeprefix=_λ,η
eta1 eta2
η1⁢η2
−η1†⁢η2†
Indicate that these anticommutative objects are scalars; set the system to display assumed variables without trailing tilde:
interfaceshowassumed = 0;
1
assumeeta1, scalar; assumeeta2, scalar
Compute the dagger of the product (213) again:
−η1&conjugate0;⁢η2&conjugate0;
Furthermore, indicate that these numbers are real and compute the Dagger again:
Setupreal = eta1, eta2
realobjects=A→,i∧,j∧,k∧,φ∧,r∧,ρ∧,θ∧,φ,r,ρ,t,θ,x,y,z,η1,η2
−η1⁢η2
A number of changes were performed in the Vectors subpackage to make the computations more natural and versatile:
You can now use geometrical coordinates indexed, as in rj, to represent mathematical objects unrelated to the coordinates themselves (in this case the spherical coordinate r). This is a more appropriate mimicry of the way we compute with paper and pencil.
Integrate the Vectors package commands with assuming and accept a tensor with 1 index (of type Library:-PhysicsType:-Tensor, defined using Define) as a possible abstract representation of the kth component of a vector.
When V is a vector of the Physics:-Vectors package, make its absolute value V, compute automatically using Physics:-Vectors:-Norm
For an arbitrary vector A→, make its Norm A→ = A→·A→&conjugate0;, and introduce a new option conjugate to Norm, to specify whether to use A→·A→&conjugate0; or A→·A→ when computing A→.
When A→ is a quantum operator, Norm returns using Dagger instead of conjugate.
Commutators and Anticommutators of vectorial quantum operators A→,B→, are now implemented and expressed using the dot (scalar) product, as in A→,B→−=A→·B→−B→·A→ .
New PhysicsVectors type in the Library of types Library:-PhysicsTypes, in order to programmatically identify vectors of the Physics:-Vectors package.
Two examples illustrating the use of the new capabilities in the context of a more general problem are found in the MaplePrimes posts Quantum Mechanics using Computer Algebra and Quantum Mechanics (II).
restart; withPhysics:withVectors:Setupmathematicalnotation = true
In previous releases, the geometrical coordinates, Cartesian (x,y,z), cylindrical (ρ,φ,z) or spherical (r,θ,φ) could not be used or indexed to represent anything other than geometrical coordinates. In Maple 18, that restriction is removed. For example, you can use x1, x2 and x3 to represent the components of a vector in the directions x,y,z.
r__1_ ≔ x1 _i + x2 _j + x3 _k
r__1→≔x1⁢i∧+x2⁢j∧+x3⁢k∧
r__2_ ≔ y1 _i + y2 _j + y3 _k
r__2→≔y1⁢i∧+y2⁢j∧+y3⁢k∧
r__1_ &x r__2_
x2⁢y3−x3⁢y2⁢i∧+−x1⁢y3+x3⁢y1⁢j∧+x1⁢y2−x2⁢y1⁢k∧
f_ ≔ z1x,y,z _i + z2x,y,z _j + z3x,y,z _k
f→≔z1⁡x,y,z⁢i∧+z2⁡x,y,z⁢j∧+z3⁡x,y,z⁢k∧
%Divergence = Divergence
∇·z1⁡x,y,z⁢i∧+z2⁡x,y,z⁢j∧+z3⁡x,y,z⁢k∧=∂∂xz1⁡x,y,z+∂∂yz2⁡x,y,z+∂∂zz3⁡x,y,z
When Vectors is loaded, all geometrical coordinates and related unit vectors are automatically considered real. New in Maple 18, you can also query about the real objects directly from Setup:
realobjects=i∧,j∧,k∧,φ∧,r∧,ρ∧,θ∧,φ,r,ρ,θ,x,y,z
istheta, real
Dagger recognizes Vectorial differential operators from Physics:-Vectors, and because the differentiation variables of these operators are always real, it automatically maps over the operands:
realobjects=A→,i∧,j∧,k∧,φ∧,r∧,ρ∧,θ∧,φ,r,ρ,θ,x,y,z
The jthcomponent of a vector is now automatically considered a tensor:
ComponentA_, j
A→j
type,Library:-PhysicsType:−Tensor
The absolute value of a vector is now automatically interpreted as its norm (on the left-hand side, the inert form of the absolute value; on the right-hand side, the active form)
%abs = absA_
A→=A→
The Norm of an arbitrary vector is now computed as its scalar product with its conjugate, so for instance for r__1→ in (220),
%Norm = Normr__1_
x1⁢i∧+x2⁢j∧+x3⁢k∧=x1&conjugate0;⁢x1+x2&conjugate0;⁢x2+x3&conjugate0;⁢x3
You can specify that you are working with real vectors (and want to compute the Norm without using conjugate) in two different ways:
Using the new optional argument of Norm.
Normr__1_, conjugate = false
x12+x22+x32
Indicating that the components are real.
Setupreal = x1, x2, x3
realobjects=A→,i∧,j∧,k∧,φ∧,r∧,ρ∧,θ∧,φ,r,ρ,θ,x,y,z,x1,x2,x3
Normr__1_
The same applies for vectorial quantum operators, but in that case Norm uses Dagger instead of conjugate, and the expression is symmetrized with respect to the Dagger operation. Consider,
and compare the following four different situations:
expand assuming real
A→2+A→·B→&conjugate0;+B→·A→+B→2
Now, set A_ and B_ to be quantum operators:
A→2+A→·B→+B→·A→+B→2
A→·A→†2+A→·B→†2+B→·A→†2+B→·B→†2+A→†·A→2+A→†·B→2+B→†·A→2+B→†·B→2
Commutators and Anticommutators of vectorial quantum operators A→,B→, are now implemented and expressed using the dot (scalar) product
CommutatorA_,B_
A→,B→−
A→·B→−B→·A→
New PhysicsVectors type in the Library of types Library:-PhysicsTypes, in order to programmatically identify vectors of the Physics:-Vectors package
typeA_, Library:-PhysicsType:-PhysicsVectors
r__1_
x1⁢i∧+x2⁢j∧+x3⁢k∧
type, Library:-PhysicsType:-PhysicsVectors
Seventeen new commands, useful for programming and interactive computation, were added to the Physics:-Library package. These are:
Add unifies the standard add and sum commands using a more modern handling of arguments, free of premature evaluation problems, and brings new multi-index functionality.
ApplyCommandUsingImplicitAssumptions applies any command to expressions containing sums, integrals or products such that the command is applied to the summand (integrand or 1st argument of the product) taking into account the assumptions implicit in the summation (integration or product) range.
CombinePowersOfSameBase combines powers of the same base in products correctly handling the case of noncommutative products and powers, using Glauber's formula.
FromTensorFunctionalForm is a generalization of the former FromGeneralRelativityTensorFunctionalForm command, that also handles user defined tensor functions.
GetFAndDifferentiationVariables receives a derivative and returns a sequence with derivand and all the differentiation variables.
GetReplacementIndices receives a list of indices of different kinds (spacetime, space, spinor, etc) and any other arguments and returns a list with new indices of the same kinds - useful for replacements - not present in the rest of the arguments.
GetSymbolsWithSameType receives an expression x, of type commutative, anticommutative or noncommutative, and any other arguments, and returns symbols of the same type as x, and not present in the rest of arguments.
GetTensorDependency gets the dependency of a given tensor; this dependency typically depends of the spacetime metric or on the way you defined the tensor using Define.
GetTensorFunctionalForm is a generalization of the former GetGeneralRelativityTensorFunctionalForm command, that also handles user defined tensor functions.
IsLiteralSubscript returns true or false according to whether a symbol s is of the form x__y, that is, it has the substring __ after the first or next characters and before the last one.
IsRealObject returns true or false according to whether a mathematical expression, function or variable passed is known to be real, either because it was assumed to be real, or because it was set to be real using Setup and its realobjects keyword.
RealObjects sets and unsets mathematical variables and functions as real, and answers queries about them.
SortProducts sorts the operands of noncommutative products into any particular desired ordering while taking into account commutator and anticommutator algebra rules, such that the returned product is mathematically equivalent to the one received.
SubstituteTensor substitutes equations into an expression, taking care of the free and repeated indices such that: 1) the substitution equations are interpreted as mappings having the free indices as parameters, and 2) repeated indices in the substitution equations do not clash with existing repeated indices in the target expression.
ToContravariant and ToCovariant rewrite a given expression multiplying by the spacetime metric so that all of its free indices become respectively contravariant or covariant.
ToTensorFunctionalForm reverses the operation performed by the new FromTensorFunctionalForm described above.
Examples for all these new routines are provided in the corresponding sections of the Physics Library help page.
Implement formulas for abstract k, n both nonnegint entering a+k·An and a−k·An, where a+ and a− are Creation and Annihilation operators, respectively, acting on the 1st quantum number of the space of quantum states labeled A.
Implement new PDEtools:-dchange rules for changing variables in Bras Kets and Brackets of the Physics package
Library:-Degree can now compute the degree for noncommutative products Enhance PDEtools:-Library:-Degree and PDEtools:-Coefficients, to work with Physics:-`.` the same way it does with Physics:-`*`
When the spacetime is Euclidean, there is no difference in value between the covariant and contravariant components of a tensor. Therefore, represent both with covariant indices making simplification and all manipulations simpler. This change affects the display of indices on the screen as well as the output of SumOverRepeatedIndices.
The dot product A . B of quantum operators A and B now returns as a (noncommutative) product A * B when neither A nor B involve Bras or Kets.
When A is a quantum operator (generic, Hermitian or unitary), the literal subscript object A__x is now considered an operator of the same kind.
Normal normalizes powers of the same base (including exponentials) by combining them. For example, An⁢Am ↦An+m.
Normal normalizes noncommutative products by sorting objects that commute between themselves putting those that involve Dagger and conjugate to the left, more aligned with normal ordering in quantum field theories.
FeynmanDiagrams does not return any crossed propagators unless explicitly requested using the new option includecrossedpropagators. The former option, normalproducts, was renamed as externallegs.
restart;withPhysics: Setupmathematicalnotation = true
Construct Annihilation and Creation operators related to a quantum operator A:
Setupquantumoperator = A
* Partial match of 'quantumoperator' against keyword 'quantumoperators'
am ≔ AnnihilationA;
am≔a−
ap ≔ CreationA;
ap≔a+
Consider the action of a+k on the ket An:
K ≔ KetA,n
K≔An
apk. K
a+k·An
However, if both k and n are nonnegative integers,
% = % assuming k∷nonnegint, n∷nonnegint
a+k·An=n+k!n!⁢An+k
The action of the annihilation operator am can also be expressed using an exact formula for arbitrary nonnegative k.
amk . K:
a−k·An=n−k+1k⁢An−k
The expression above is expressed using Pochhammer symbols to handle the case where n=0,0<k . It can, however, be expressed in more familiar form using factorial:
convert%, factorial
a−k·An=n!n−k!⁢An−k
New rules for changing variables in Bras, Kets and Brackets were implemented:
∑n=1p+1⁢fn αn−1⁢KetA,n−1⁢n−1!
∑n=1p+1⁡f⁡n⁢αn−1⁢An−1n−1!
PDEtools:-dchangen=k+1, fn = gk,
∑k=0p⁡g⁡k⁢αk⁢Akk!
Library:-Degree can now operate on noncommutative dot and star products when the operation is not ambiguous.
withVectors: Setupop = A, B, r_, p_
quantumoperators=A,B,p→,r→
Library:-DegreeA B, A
You can also, formally, compute the degree "with respect to a vector" in a vector scalar product.
Library:-Degreer→·p→,r→
When the spacetime is Euclidean, there is no difference in value between the covariant and contravariant components of a tensor. Therefore, represent both with covariant indices making simplification and all manipulations simpler. To illustrate this, define a couple of tensors
DefineV,S
S,V,γμ,σμ,∂μ,gμ,ν,δμ,ν,εα,β,μ,ν
The default metric is not Euclidean.
Correspondingly, as distinction between covariant and contravariant indices is relevant, and although in algebraic contracted products of tensors it is not relevant which tensor is contravariant, the display shows one contracted index covariant, the other one contravariant:
Vmu Smu
Sμ⁢V⁢μ⁢μ
Now set the spacetime metric to be Euclidean:
g_Euclidean
The Euclidean metric in cartesian coordinates
Contracted indices are now shown all covariant.
Vμ⁢Sμ
The "scalar" (dot) product of two operators, A and B, is now represented with the noncommutative product operator `*` when neither A nor B involve Bras or Kets.
A . B
A⁢B
A . KetB
A·B
When A is a quantum operator (generic, Hermitian or unitary) the literal subscript object A__x for any x is now considered an operator of the same kind. The same happens when using anticommutative and noncommutative prefixes, or tensor indices - although in these cases the subscript should be an integer. So now this convention regarding the literal subscripted variables applies in general in the Physics package .
A, A__1,A__x,A__operator
A,A__1,A__x,A__operator
lprint
[A, A__1, A__x, A__operator]
type, listLibrary:-PhysicsType:-QuantumOperator
Setupnoncommutativeprefix = Z, spaceindices = lowercaselatin
noncommutativeprefix=Z,spaceindices=lowercaselatin
Z,Z__1
lprint%
[Z, Z__1]
type, listnoncommutative
The Normal command now automatically combines powers of the same base when normalizing expressions:
Normal
The normalization of noncommutative products when some of their operands commute and involve Dagger or conjugate is performed, such that these involving Dagger or conjugate are located to the left, more aligned with normal ordering in quantum field theories.
A DaggerA
A⁢A†
For an arbitrary operator A,⁢nothing is known about A,A†, so the normal form of the product (275) is the product itself.
However, if these two operands commute, that is A,A†=0, then the product is normalized putting A† to the left.
Setup%CommutatorA, DaggerA = 0
algebrarules=A,A†−=0,a−,a+−=1
= Normal
A⁢A†=A†⁢A
See Also
Index of New Maple 18 Features
The Physics project
Download Help Document