QHD-2, QHD-3 and QHD-4 decay from a metastable...
Transcript of QHD-2, QHD-3 and QHD-4 decay from a metastable...
QHD-2, QHD-3 and QHD-4 decay
from a metastable potentialby José Luis Gómez-Muñoz
http://homepage.cem.itesm.mx/lgomez/quantum/
Introduction
Higher Order Quantized Hamilton Dynamics (QHD) is applied to the decay from a metastable potential. QHD gives an
approximation to the Heisenberg Equations of Motion (EOM). The QHD commands used in this document are included in
QUANTUM, which is a free Mathematica add-on that can be downloaded from
http://homepage.cem.itesm.mx/lgomez/quantum/
This tutorial shows how to use the QUANTUM Mathematica add-on to reproduce the results and graphs from Pahl and Prezhdo
in J. Chem Phys. Vol 116 No. 20, May 2002, Pages 8704-8712
http://homepage.cem.itesm.mx/lgomez/quantum/QHDHigherOrders.pdf
Load the Package
First load the Quantum`QHD` package. Write:
Needs["Quantum`QHD`"]
then press at the same time the keys ˜-Û to evaluate. Mathematica will load the package and print a welcome message:
Needs@"Quantum`QHD`"D
Quantum`QHD`
A Mathematica package for Quantized Hamilton
Dynamics approximation to Heisenberg Equations of Motion
by José Luis Gómez−Muñoz
based on the original idea of Kirill Igumenshchev
This add−on does NOT work properly with the debugger turned on. Therefore
the debugger must NOT be checked in the Evaluation menu of Mathematica.
Execute SetQHDAliases@D in order to use the keyboard to enter QHD objects
SetQHDAliases@D must be executed again in each new notebook that is created
In order to use the keyboard to enter quantum objects write:
SetQHDAliases[ ];
then press at the same time the keys ˜-Û to evaluate. Remember that SetQuantumAliases[ ] must be evaluated again in each
new notebook:
SetQHDAliases@D
ALIASES:
@ESCDon@ESCD ⋅ Quantum concatenation symbol
@ESCDtime@ESCD � Time symbol
@ESCDhb@ESCD — Reduced Planck's constant Hh barL@ESCDii@ESCD � Imaginary I symbol
@ESCDinf@ESCD ∞ Infinity symbol
@ESCD−>@ESCD → Option HRuleL symbol
@ESCDave@ESCD X�\ Quantum average template
@ESCDexpec@ESCD X�\ Quantum average template
@ESCDsymm@ESCD H�⋅�L� Symmetrized quantum product template
@ESCDcomm@ESCD P�,�T− Commutator template
@ESCDpo@ESCD H�L� Power template
@ESCDsu@ESCD �� Subscripted variable template
@ESCDposu@ESCD ��� Power of a subscripted variable template
@ESCDfra@ESCD�
�Fraction template
@ESCDeva@ESCD �ê.8�→�,�→�< Evaluation HReplaceAllL template
SetQHDAliases@D must be executed again in each
new notebook that is created, only one time per notebook.
Commutation Relationships and Hamiltonian
This Hamiltoninan and commutation relationships are those used by Pahl and Prezhdo in their paper.
In order to enter the templates and symbols P�, �T−, ��,  and Ñ you can either use the QHD palette (toolbar) or, if the com-
mand SetQHDAliases[] has been executed in this Mathematica notebook, then press the keys [ESC]comm[ESC], [ESC]su[ESC],
[ESC]ii[ESC] and [ESC]hb[ESC] respectively:
SetQuantumObject@q, pD;Pq, pT− = � ∗ —;
mh =p2
2 m+a2
2q2 +
a3
3q3
p2
2 m+q2 a2
2+q3 a3
3
Heisenberg Equations of Motion
The evolution of the expected value of an observable A in the Heisenberg representation is given by the equation of motion
(EOM):
� —d
dtXA\ = X@A, HD\
2 v8qhdhigher.nb
dtX \ X@ D\
The Heisenberg EOM can be calculated using the QHD-Mathematica command QHDEOM, as shown below. The first argument
specifies the QHD-order, which is set below to ¶ so that no QHD approximation is made in this first example. The second
argument is the observable, which is set to p in the example below. The third argument is the Hamiltonian, remember that it was
stored in variable mh above in this document. Finally options can be included, for example QHDHBarØ1 specifies that reduced
Planck’s constant (Dirac constant) will take the value of 1 (The Ø symbol can be entered by pressing the keys [ESC]->[ESC],
that is [ESC][MINUS][GREATERTHAN][ESC]). The output of QHDEOM can be stored in a variable; it is stored in meom
below:
meom = QHDEOM@∞, p, mhD
98QHDLabel, No closure was applied<, 9Xp\, −a2 Xq\ − a3 Yq2]==
The output of QHDEOM can be shown in a nicer format using QHDForm. The output meom that was stored above is formated
that way below:
QHDForm@meomD
No closure was applied
d Xp\d �
= −a2 Xq\ − a3 Yq2]
On the other hand, the command QHDDifferentialEquations formats the output of QHDEOM as a standard Mathematica
equation, as those that can be part of the input of standard Mathematica commands like DSolve and NDSolve. The output meom
that was stored above is formated that way below:
QHDDifferentialEquations@meomD
9Xp\′@�D � −a2 Xq\@�D − a3 Yq2]@�D=
A different symbol for time can be specified. The operator Ø can be entered pressing the keys
[ESC][MINUS][GREATERTHAN][ESC], see the equations below:
QHDDifferentialEquations@meom, QHDSymbolForTime → zD
9Xp\′@zD � −a2 Xq\@zD − a3 Yq2]@zD=
The EOM for Xp\ depends on Xq\ and Yq2] (please remember that YA2] is NOT the same as XA\2). Next, the EOMs of Xq\and Yq2] can generate new expectation values, such as Xp ⋅ q\s = Y p⋅q+q⋅p
2]. Regarding each expectation value as a dynami-
cal variable, we can generate a hierarchy of EOMs, which in general is an infinite hierarchy. We can obtain some of the EOM’s
of that infinite hierarchy using the QHD-Mathematica command QHDHierarchy, which has the same syntax as the command
QHDEOM that was used above. Likewise, the output of QHDHierarchy can be stored in a variable (mhie in the example below)
and shown using the command QHDForm below:
v8qhdhigher.nb 3
mhie = QHDHierarchy@∞, p, mhD;QHDForm@mhieD
Calculations were stopped at order QHDMaxOrder→2
d Xp\d �
= −a2 Xq\ − a3 Yq2]d Xq\d �
=Xp\m
d Xq2\d �
=2 Xpq\
�
m
d Xpq\�
d �=
Xp2\m
− a2 Yq2] − a3 Yq3]d Xp2\d �
= −2 a2 Xpq\�− 2 a3 Ypq2]
�
A EOM hierarchy can be shown in a graph using the command QHDGraphPlot on the output of QHDHierachy. Arrows point
from a first dynamical variable to a second dynamical variable that includes the first one in its EOM; please compare the table
above with the graph below:
QHDGraphPlot@mhieD
Xq\
Xp\
Yq2]
Xpq\�
Yp2]
Yq3]
Ypq2]
�
Calculations were stopped at order QHDMaxOrderØ2
QHD-2 Closure Approximation
4 v8qhdhigher.nb
QHDHierarchy stops calculating infinite hierarchies as specified by its option QHDMaxOrder, which takes a default value of 2.
Some of the dynamical variables (expectation values) in the truncated hierarchy will not have their equation of motion (EOM)
included, as it was shown above by the colors in the ouput of QHDGraphPlot. A closure procedure has to be applied in order to
approximate those dynamical variables in terms of those other variables that do have their EOMs included in the hierarchy. For
instance, the approximation
XABC\ºXAB\XC\+XAC\XB\+XBC\XA\-2XA\XB\XC\is used to approximate the third-order dynamical variables Yq3] and Ypq2]
� in terms of the firts and second order variables
Xp\, Xq\, Yp2], Yq2] and Xp ⋅ q\s = Y p⋅q+q⋅p
2], thus we obtain a second order QHD finite hierarchy of equations, QHD-2.
The QHD-2 hierarchy is obtained as the output of the command QHDHierarchy with the first argument set to 2. Same as above,
the second argument is the first variable in the hierarchy, the third argument is the hamiltonian, and optional arguments can be
given after that. The output of QHDHierarchy is stored in the variable mhier2, and it is shown using the QHDForm command
below:
mhier2 = QHDHierarchy@2, p, mhD;QHDForm@mhier2D
Closure procedure was applied to order 2
d Xp\d �
= −a2 Xq\ − a3 Yq2]d Xq\d �
=Xp\m
d Xq2\d �
=2 Xpq\
�
m
d Xpq\�
d �=
Xp2\m
+ 2 a3 Xq\3 − a2 Yq2] − 3 a3 Xq\ Yq2]d Xp2\d �
= 4 a3 Xp\ Xq\2 − 2 a3 Xp\ Yq2] − 2 a2 Xpq\�− 4 a3 Xq\ Xpq\
�
The closed QHD-2 hierarchy can be shown using the QHDGraphPlot command, compare the table above and the graph below:
v8qhdhigher.nb 5
QHDGraphPlot@mhier2D
Xq\
Xp\
Yq2]
Xpq\�
Yp2]
Closure procedure was applied to order 2
Solution of the QHD-2 Equations: Decay from Metastable Potential
Next we evaluate the hierarchy when the parameters tkes the numerical values used by Pahl and Prezhdo in their paper, and the
result of that evaluation is stored in the variable mnumhier2:
mnumhier2 = mhier2 ê. :m → 1, a2 → 1, a3 →1
2, — → 1>;
QHDForm@mnumhier2D
Closure procedure was applied to order 2
d Xp\d �
= −Xq\ −Xq2\2
d Xq\d �
= Xp\d Xq2\d �
= 2 Xpq\�
d Xpq\�
d �= Yp2] + Xq\3 − Yq2] −
3
2Xq\ Yq2]
d Xp2\d �
= 2 Xp\ Xq\2 − Xp\ Yq2] − 2 Xpq\�− 2 Xq\ Xpq\
�
6 v8qhdhigher.nb
The command QHDInitialConditionsTemplate generates an initial conditions template for the hierarchy:
QHDInitialConditionsTemplate@mnumhier2, 0D
9Xp\@0D � �, Xq\@0D � �, Yq2]@0D � �, XHp ⋅ qL�\@0D � �, Yp2]@0D � �=
Copy-paste the output of the previous command as input in the next one. Fill in the placeholders (É) with the appropiate initial
values. Those initial values can be numbers. On the other hand, in the calculation below they are symbols like po, and then these
symbols are evaluated at the desired numerical values. These initial conditions correspond to a Gaussian wavepacket, J. Chem
Phys. Vol 113 No. 20, May 2002, Pages 8704-8712
http://homepage.cem.itesm.mx/lgomez/quantum/QHDHigherOrders.pdf
The initial conditions are stored in the variable minicond2 below:
minicond2 =
:Xp\@0D � po, Xq\@0D � qo, Yq2]@0D � qo2 +—
2 m ∗ ω, XHp ⋅ qL
�\@0D � po ∗ qo,
Yp2]@0D � po2 +— ∗ m ∗ ω
2> ê. 8qo → 0, po → 0, ω → 1, m → 1, — → 1<
:Xp\@0D � 0, Xq\@0D � 0, Yq2]@0D �1
2, XHp ⋅ qL
�\@0D � 0, Yp2]@0D �
1
2>
The command QHDNDSolve takes as arguments the numerical version of the hierarchy (which was stored in the variable
mnumhier2), the initial conditions (which were stored in minicond2), the initial time and the final time. The output of this
command is the numerical solution of the differential equations, in the form of InterpolatingFunction objects. This output can be
used to plot (graph) the dynamical variables as functions of time, as it will be shown below in this document. The output is stored
in the variable msol2 in the calculation below:
msol2 = QHDNDSolve@mnumhier2, minicond2, 0, 6.4D
99Xp\ → InterpolatingFunction@880., 6.4<<, <>D,Xq\ → InterpolatingFunction@880., 6.4<<, <>D,Yq2] → InterpolatingFunction@880., 6.4<<, <>D,XHp ⋅ qL
�\ → InterpolatingFunction@880., 6.4<<, <>D,
Yp2] → InterpolatingFunction@880., 6.4<<, <>D==
The command command QHDPlot takes as its second argument the output of QHDNDSolve, which was stored in the variable
msol2. The first argument specifies the dynamical variables or expression that we want to plot (graph) as a function of time, see
the plot below:
v8qhdhigher.nb 7
QHDPlot@q, msol2D
0 1 2 3 4 5 6
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
QHDPlot accepts the same Options as the standard Mathematica command Plot. Some of those options are used, and the plot
stored in the variable mgraph2, it will be used later in this document, see the commands below:
mgraph2 =
QHDPlot@q, msol2, PlotStyle → Directive@Thick, DotDashed, Darker@MagentaDDD
0 1 2 3 4 5 6
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
QHD-3 Closure Approximation
The QHD-3 hierarchy for this problem can be obtained with the first argument of QHDHierarchy set to 3. This calculation takes
several seconds in a laptop computer, the result is stored in the variable mhier3 below:
8 v8qhdhigher.nb
mhier3 = QHDHierarchy@3, p, mhD;QHDForm@mhier3D
Closure procedure was applied to order 3
d Xp\d �
= −a2 Xq\ − a3 Yq2]d Xq\d �
=Xp\m
d Xq2\d �
=2 Xpq\
�
m
d Xpq\�
d �=
Xp2\m
− a2 Yq2] − a3 Yq3]d Xp2\d �
= −2 a2 Xpq\�− 2 a3 Ypq2]
�
d Xq3\d �
=3 Xpq2\
�
m
d Xpq2\�
d �= −6 a3 Xq\4 + 12 a3 Xq\2 Yq2] − 3 a3 Yq2]2 − a2 Yq3] − 4 a3 Xq\ Yq3] +
2 Xp2q\�
m
d Xp2q\�
d �=
Xp3\m
− 12 a3 Xp\ Xq\3 + 12 a3 Xp\ Xq\ Yq2] − 2 a3 Xp\ Yq3] +
12 a3 Xq\2 Xpq\�− 6 a3 Yq2] Xpq\
�− 2 a2 Ypq2]
�− 6 a3 Xq\ Ypq2]
�
d Xp3\d �
=—2 a3
2− 18 a3 Xp\2 Xq\2 + 6 a3 Yp2] Xq\2 + 6 a3 Xp\2 Yq2] − 3 a3 Yp2] Yq2] +
24 a3 Xp\ Xq\ Xpq\�− 6 a3 Xpq\�
2 − 3 a2 Yp2q]�− 6 a3 Xq\ Yp2q]
�− 6 a3 Xp\ Ypq2]
�
The products above are symmetrized, for instance Yp ⋅ q2]s= Z p⋅q2+q2⋅p
2^
The QHD-3 hierarchy can be shown using the QHDGraphPlot command, compare the table above and the graph below:
v8qhdhigher.nb 9
QHDGraphPlot@mhier3D
Xq\
Xp\
Yq2]
Xpq\�
Yp2]
Yq3]
Ypq2]�
Yp2q]�
Yp3]
Closure procedure was applied to order 3
Solution of the QHD-3 Equations
Next we evaluate the hierarchy when the parameters tkes the numerical values used by Pahl and Prezhdo in their paper, and the
result of that evaluation is stored in the variable mnumhier3:
10 v8qhdhigher.nb
mnumhier3 = mhier3 ê. :m → 1, a2 → 1, a3 →1
2, — → 1>;
QHDForm@mnumhier3D
Closure procedure was applied to order 3
d Xp\d �
= −Xq\ −Xq2\2
d Xq\d �
= Xp\d Xq2\d �
= 2 Xpq\�
d Xpq\�
d �= Yp2] − Yq2] −
Xq3\2
d Xp2\d �
= −2 Xpq\�− Ypq2]
�
d Xq3\d �
= 3 Ypq2]�
d Xpq2\�
d �= −3 Xq\4 + 6 Xq\2 Yq2] −
3 Xq2\22
− Yq3] − 2 Xq\ Yq3] + 2 Yp2q]�
d Xp2q\�
d �= Yp3] − 6 Xp\ Xq\3 + 6 Xp\ Xq\ Yq2] −
Xp\ Yq3] + 6 Xq\2 Xpq\�− 3 Yq2] Xpq\
�− 2 Ypq2]
�− 3 Xq\ Ypq2]
�
d Xp3\d �
=1
4− 9 Xp\2 Xq\2 + 3 Yp2] Xq\2 + 3 Xp\2 Yq2] −
3
2Yp2] Yq2] +
12 Xp\ Xq\ Xpq\�− 3 Xpq\
�
2 − 3 Yp2q]�− 3 Xq\ Yp2q]
�− 3 Xp\ Ypq2]
�
The command QHDInitialConditionsTemplate generates an initial conditions template for the hierarchy:
QHDInitialConditionsTemplate@mnumhier3, 0D
9Xp\@0D � �, Xq\@0D � �, Yq2]@0D � �, XHp ⋅ qL�\@0D � �, Yp2]@0D � �,
Yq3]@0D � �, YIp ⋅ q2M�]@0D � �, YIp2 ⋅ qM
�]@0D � �, Yp3]@0D � �=
Copy-paste the output of the previous command as input in the next one. Fill in the placeholders (É) with the appropiate initial
values. Those initial values can be numbers. On the other hand, in the calculation below they are symbols like po, and then these
symbols are evaluated at the desired numerical values. These initial conditions correspond to a Gaussian wavepacket, J. Chem
Phys. Vol 113 No. 20, May 2002, Pages 8704-8712
http://homepage.cem.itesm.mx/lgomez/quantum/QHDHigherOrders.pdf
The initial conditions are stored in the variable minicond3 below:
v8qhdhigher.nb 11
minicond3 =
:Xp\@0D � po, Xq\@0D � qo, Yq2]@0D � qo2 +—
2 m ∗ ω,
XHp ⋅ qL�\@0D � po ∗ qo, Yp2]@0D � po2 +
— ∗ m ∗ ω
2, Yq3]@0D � qo3 +
3
2qo
—
m ∗ ω,
YIp ⋅ q2M�]@0D � po ∗ qo2 +
1
2po
—
m ∗ ω, YIp2 ⋅ qM
�]@0D � po2 ∗ qo +
1
2qo ∗ — ∗ m ∗ ω,
Yp3]@0D � po3 +3
2po ∗ — ∗ m ∗ ω> ê. 8qo → 0, po → 0, ω → 1, m → 1, — → 1<
:Xp\@0D � 0, Xq\@0D � 0, Yq2]@0D �1
2, XHp ⋅ qL
�\@0D � 0, Yp2]@0D �
1
2,
Yq3]@0D � 0, YIp ⋅ q2M�]@0D � 0, YIp2 ⋅ qM
�]@0D � 0, Yp3]@0D � 0>
The command QHDNDSolve takes as arguments the numerical version of the hierarchy (which was stored in the variable
mnumhier3), the initial conditions (which were stored in minicond3), the initial time and the final time. The output of this
command is the numerical solution of the differential equations, in the form of InterpolatingFunction objects. This output can be
used to plot (graph) the dynamical variables as functions of time, as it will be shown below in this document. The output is stored
in the variable msol3 in the calculation below:
msol3 = QHDNDSolve@mnumhier3, minicond3, 0, 4.6D
99Xp\ → InterpolatingFunction@880., 4.6<<, <>D,Xq\ → InterpolatingFunction@880., 4.6<<, <>D,Yq2] → InterpolatingFunction@880., 4.6<<, <>D,XHp ⋅ qL
�\ → InterpolatingFunction@880., 4.6<<, <>D,
Yp2] → InterpolatingFunction@880., 4.6<<, <>D,Yq3] → InterpolatingFunction@880., 4.6<<, <>D,YIp ⋅ q2M
�] → InterpolatingFunction@880., 4.6<<, <>D,
YIp2 ⋅ qM�] → InterpolatingFunction@880., 4.6<<, <>D,
Yp3] → InterpolatingFunction@880., 4.6<<, <>D==
The command command QHDPlot takes as its second argument the output of QHDNDSolve, which was stored in the variable
msol3. The first argument specifies the dynamical variables or expression that we want to plot (graph) as a function of time, see
the plot below:
12 v8qhdhigher.nb
QHDPlot@q, msol3D
0 1 2 3 4
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
QHDPlot accepts the same Options as the standard Mathematica command Plot. Some of those options are used, and the plot
stored in the variable mgraph3, it will be used later in this document, see the commands below:
mgraph3 = QHDPlot@q, msol3, PlotStyle → Directive@Thick, Dashed, Darker@BrownDDD
0 1 2 3 4
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
The standard Mathematica command Show can be used to compare mgraph3, which was stored above, and mgraph2, which was
stored in a previous section. The paper by Pahl and Prezhdo shows that QHD-3 is a better approximation to Quantum Mechanics
than QHD-2, see the graph below:
v8qhdhigher.nb 13
Show@mgraph2, mgraph3D
0 1 2 3 4 5 6
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
QHD-4 Closure Approximation
The QHD-4 hierarchy for this problem can be obtained with the first argument of QHDHierarchy set to 4. This calculation takes
several minutes in a laptop computer; the result is stored in the variable mhier4 below:
14 v8qhdhigher.nb
mhier4 = QHDHierarchy@4, p, mhD;QHDForm@mhier4D
Closure procedure was applied to order 4
d Xp\d �
= −a2 Xq\ − a3 Yq2]d Xq\d �
=Xp\m
d Xq2\d �
=2 Xpq\
�
m
d Xpq\�
d �=
Xp2\m
− a2 Yq2] − a3 Yq3]d Xp2\d �
= −2 a2 Xpq\�− 2 a3 Ypq2]
�
d Xq3\d �
=3 Xpq2\
�
m
d Xpq2\�
d �= −a2 Yq3] − a3 Yq4] +
2 Xp2q\�
m
d Xq4\d �
=4 Xpq3\
�
m
d Xp2q\�
d �=
Xp3\m
− 2 a2 Ypq2]�− 2 a3 Ypq3]
�
d Xpq3\�
d �=
3 —2
2 m+ 24 a3 Xq\5 − 60 a3 Xq\3 Yq2] + 30 a3 Xq\ Yq2]2 +
20 a3 Xq\2 Yq3] − 10 a3 Yq2] Yq3] − a2 Yq4] − 5 a3 Xq\ Yq4] +3 Xp2q2\
�
m
d Xp3\d �
= −—2 a3 − 3 a2 Yp2q]�− 3 a3 Yp2q2]
�
d Xp2q2\�
d �= 48 a3 Xp\ Xq\4 − 72 a3 Xp\ Xq\2 Yq2] + 12 a3 Xp\ Yq2]2 + 16 a3 Xp\ Xq\ Yq3] −
2 a3 Xp\ Yq4] − 48 a3 Xq\3 Xpq\�+ 48 a3 Xq\ Yq2] Xpq\
�− 8 a3 Yq3] Xpq\
�+
2 Xp3q\�
m+ 24 a3 Xq\2 Ypq2]
�− 12 a3 Yq2] Ypq2]
�− 2 a2 Ypq3]
�− 8 a3 Xq\ Ypq3]
�
d Xp3q\�
d �= −
3
2—2 a2 +
Xp4\m
− 4 —2 a3 Xq\ + 72 a3 Xp\2 Xq\3 −18 a3 Yp2] Xq\3 − 54 a3 Xp\2 Xq\ Yq2] + 18 a3 Yp2] Xq\ Yq2] + 6 a3 Xp\2 Yq3] −
3 a3 Yp2] Yq3] − 108 a3 Xp\ Xq\2 Xpq\�+ 36 a3 Xp\ Yq2] Xpq\
�+
36 a3 Xq\ Xpq\�
2 + 18 a3 Xq\2 Yp2q]�− 9 a3 Yq2] Yp2q]
�+ 36 a3 Xp\ Xq\ Ypq2]
�−
18 a3 Xpq\�Ypq2]
�− 3 a2 Yp2q2]
�− 9 a3 Xq\ Yp2q2]
�− 6 a3 Xp\ Ypq3]
�
d Xp4\d �
= −4 —2 a3 Xp\ + 96 a3 Xp\3 Xq\2 − 72 a3 Xp\ Yp2] Xq\2 + 8 a3 Yp3] Xq\2 −24 a3 Xp\3 Yq2] + 24 a3 Xp\ Yp2] Yq2] − 4 a3 Yp3] Yq2] − 144 a3 Xp\2 Xq\ Xpq\
�+
48 a3 Yp2] Xq\ Xpq\�+ 48 a3 Xp\ Xpq\
�
2 + 48 a3 Xp\ Xq\ Yp2q]�− 24 a3 Xpq\
�Yp2q]
�−
4 a2 Yp3q]�− 8 a3 Xq\ Yp3q]
�+ 24 a3 Xp\2 Ypq2]
�− 12 a3 Yp2] Ypq2]
�− 12 a3 Xp\ Yp2q2]
�
The products above are symmetrized, for instance Yp ⋅ q2]s= Z p⋅q2+q2⋅p
2^
The QHD-4 hierarchy can be shown using the QHDGraphPlot command, compare the table above and the graph below:
v8qhdhigher.nb 15
QHDGraphPlot@mhier4D
Xq\
Xp\
Yq2]
Xpq\�
Yp2]
Yq3]
Ypq2]�
Yq4]
Yp2q]�
Ypq3]�
Yp3] Yp2q2]�
Yp3q]�
Yp4]
Closure procedure was applied to order 4
Solution of the QHD-4 Equations
Next we evaluate the hierarchy when the parameters tkes the numerical values used by Pahl and Prezhdo in their paper, and the
result of that evaluation is stored in the variable mnumhier4:
16 v8qhdhigher.nb
mnumhier4 = mhier4 ê. :m → 1, a2 → 1, a3 →1
2, — → 1>;
QHDForm@mnumhier4D
Closure procedure was applied to order 4
d Xp\d �
= −Xq\ −Xq2\2
d Xq\d �
= Xp\d Xq2\d �
= 2 Xpq\�
d Xpq\�
d �= Yp2] − Yq2] −
Xq3\2
d Xp2\d �
= −2 Xpq\�− Ypq2]
�
d Xq3\d �
= 3 Ypq2]�
d Xpq2\�
d �= −Yq3] −
Xq4\2
+ 2 Yp2q]�
d Xq4\d �
= 4 Ypq3]�
d Xp2q\�
d �= Yp3] − 2 Ypq2]
�− Ypq3]
�
d Xpq3\�
d �=
3
2+ 12 Xq\5 − 30 Xq\3 Yq2] + 15 Xq\ Yq2]2 +
10 Xq\2 Yq3] − 5 Yq2] Yq3] − Yq4] −5
2Xq\ Yq4] + 3 Yp2q2]
�
d Xp3\d �
= −1
2− 3 Yp2q]
�−
3
2Yp2q2]
�
d Xp2q2\�
d �= 24 Xp\ Xq\4 − 36 Xp\ Xq\2 Yq2] + 6 Xp\ Yq2]2 +
8 Xp\ Xq\ Yq3] − Xp\ Yq4] − 24 Xq\3 Xpq\�+ 24 Xq\ Yq2] Xpq\
�− 4 Yq3] Xpq\
�+
2 Yp3q]�+ 12 Xq\2 Ypq2]
�− 6 Yq2] Ypq2]
�− 2 Ypq3]
�− 4 Xq\ Ypq3]
�
d Xp3q\�
d �= −
3
2+ Yp4] − 2 Xq\ + 36 Xp\2 Xq\3 − 9 Yp2] Xq\3 − 27 Xp\2 Xq\ Yq2] +
9 Yp2] Xq\ Yq2] + 3 Xp\2 Yq3] −3
2Yp2] Yq3] − 54 Xp\ Xq\2 Xpq\
�+
18 Xp\ Yq2] Xpq\�+ 18 Xq\ Xpq\
�
2 + 9 Xq\2 Yp2q]�−
9
2Yq2] Yp2q]
�+
18 Xp\ Xq\ Ypq2]�− 9 Xpq\
�Ypq2]
�− 3 Yp2q2]
�−
9
2Xq\ Yp2q2]
�− 3 Xp\ Ypq3]
�
d Xp4\d �
= −2 Xp\ + 48 Xp\3 Xq\2 − 36 Xp\ Yp2] Xq\2 + 4 Yp3] Xq\2 −12 Xp\3 Yq2] + 12 Xp\ Yp2] Yq2] − 2 Yp3] Yq2] − 72 Xp\2 Xq\ Xpq\
�+
24 Yp2] Xq\ Xpq\�+ 24 Xp\ Xpq\
�
2 + 24 Xp\ Xq\ Yp2q]�− 12 Xpq\
�Yp2q]
�−
4 Yp3q]�− 4 Xq\ Yp3q]
�+ 12 Xp\2 Ypq2]
�− 6 Yp2] Ypq2]
�− 6 Xp\ Yp2q2]
�
The command QHDInitialConditionsTemplate generates an initial conditions template for the hierarchy:
v8qhdhigher.nb 17
QHDInitialConditionsTemplate@mnumhier4, 0D
9Xp\@0D � �, Xq\@0D � �, Yq2]@0D � �, XHp ⋅ qL�\@0D � �, Yp2]@0D � �, Yq3]@0D � �,
YIp ⋅ q2M�]@0D � �, Yq4]@0D � �, YIp2 ⋅ qM
�]@0D � �, YIp ⋅ q3M
�]@0D � �,
Yp3]@0D � �, YIp2 ⋅ q2M�]@0D � �, YIp3 ⋅ qM
�]@0D � �, Yp4]@0D � �=
Copy-paste the output of the previous command as input in the next one. Fill in the placeholders (É) with the appropiate initial
values. Those initial values can be numbers. On the other hand, in the calculation below they are symbols like po, and then these
symbols are evaluated at the desired numerical values. These initial conditions correspond to a Gaussian wavepacket, J. Chem
Phys. Vol 113 No. 20, May 2002, Pages 8704-8712
http://homepage.cem.itesm.mx/lgomez/quantum/QHDHigherOrders.pdf
The initial conditions are stored in the variable minicond4 below:
minicond4 =
:Xp\@0D � po, Xq\@0D � qo, Yq2]@0D � qo2 +—
2 m ∗ ω,
XHp ⋅ qL�\@0D � po ∗ qo, Yp2]@0D � po2 +
— ∗ m ∗ ω
2,
Yq3]@0D � qo3 +3
2qo
—
m ∗ ω, YIp ⋅ q2M
�]@0D � po ∗ qo2 +
1
2po
—
m ∗ ω,
Yq4]@0D � qo4 + 3 qo2—
m ∗ ω+3
4
—
m ∗ ω
2
, YIp2 ⋅ qM�]@0D � po2 ∗ qo +
1
2qo ∗ — ∗ m ∗ ω,
YIp ⋅ q3M�]@0D � po ∗ qo3 +
3
2po ∗ qo ∗
—
m ∗ ω, Yp3]@0D � po3 +
3
2po ∗ — ∗ m ∗ ω,
YIp2 ⋅ q2M�]@0D � po2 ∗ qo2 +
1
2po2
—
m ∗ ω+qo2 ∗ — ∗ m ∗ ω
2−—2
4,
YIp3 ⋅ qM�]@0D � po3 ∗ qo +
3
2po ∗ qo ∗ — ∗ m ∗ ω,
Yp4]@0D � po4 + 3 po2 ∗ — ∗ m ∗ ω +3
4H— ∗ m ∗ ωL2> ê. 8qo → 0, po → 0, ω → 1, m → 1, — → 1<
:Xp\@0D � 0, Xq\@0D � 0, Yq2]@0D �1
2, XHp ⋅ qL
�\@0D � 0, Yp2]@0D �
1
2, Yq3]@0D � 0,
YIp ⋅ q2M�]@0D � 0, Yq4]@0D �
3
4, YIp2 ⋅ qM
�]@0D � 0, YIp ⋅ q3M
�]@0D � 0,
Yp3]@0D � 0, YIp2 ⋅ q2M�]@0D � −
1
4, YIp3 ⋅ qM
�]@0D � 0, Yp4]@0D �
3
4>
The command QHDNDSolve takes as arguments the numerical version of the hierarchy (which was stored in the variable
mnumhier4), the initial conditions (which were stored in minicond4), the initial time and the final time. The output of this
command is the numerical solution of the differential equations, in the form of InterpolatingFunction objects. This output can be
used to plot (graph) the dynamical variables as functions of time, as it will be shown below in this document. The output is stored
in the variable msol4 in the calculation below:
18 v8qhdhigher.nb
msol4 = QHDNDSolve@mnumhier4, minicond4, 0, 4D
99Xp\ → InterpolatingFunction@880., 4.<<, <>D,Xq\ → InterpolatingFunction@880., 4.<<, <>D,Yq2] → InterpolatingFunction@880., 4.<<, <>D,XHp ⋅ qL
�\ → InterpolatingFunction@880., 4.<<, <>D,
Yp2] → InterpolatingFunction@880., 4.<<, <>D,Yq3] → InterpolatingFunction@880., 4.<<, <>D,YIp ⋅ q2M
�] → InterpolatingFunction@880., 4.<<, <>D,
Yq4] → InterpolatingFunction@880., 4.<<, <>D,YIp2 ⋅ qM
�] → InterpolatingFunction@880., 4.<<, <>D,
YIp ⋅ q3M�] → InterpolatingFunction@880., 4.<<, <>D,
Yp3] → InterpolatingFunction@880., 4.<<, <>D,YIp2 ⋅ q2M
�] → InterpolatingFunction@880., 4.<<, <>D,
YIp3 ⋅ qM�] → InterpolatingFunction@880., 4.<<, <>D,
Yp4] → InterpolatingFunction@880., 4.<<, <>D==
The command command QHDPlot takes as its second argument the output of QHDNDSolve, which was stored in the variable
msol4. The first argument specifies the dynamical variables or expression that we want to plot (graph) as a function of time, see
the plot below:
QHDPlot@q, msol4D
0 1 2 3 4
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
The command command QHDPlot takes as its second argument the output of QHDNDSolve, which was stored in the variable
msol4. The first argument specifies the dynamical variables or expression that we want to plot (graph) as a function of time, see
the plot below:
v8qhdhigher.nb 19
mgraph4 = QHDPlot@q, msol4, PlotStyle → Darker@OrangeDD
0 1 2 3 4
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
The standard Mathematica command Show can be used to compare mgraph4, which was stored above, with mgraph3 and
mgraph2, which were calculated in previous sections. The paper by Pahl and Prezhdo shows that QHD-4 is a better approxima-
tion to Quantum Mechanics than QHD-3 and QHD-2, see the graph below:
Show@mgraph2, mgraph3, mgraph4D
0 1 2 3 4 5 6
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
Standard Mathematica options can be used so that the graph looks like the corresponding graph in Pahl and Prezhdo paper, see
the result below:
20 v8qhdhigher.nb
Show@mgraph2, mgraph3, mgraph4,
Axes → True, AxesOrigin → 80, −2<, PlotLabel →
"Decay from Metastable Potential\n Compare with Pahl and Prezhdo\n
J.Chem.Phys., Vol 116, No. 20, May 2002\n Pages 8704−8712 Fig 3"D
0 1 2 3 4 5 6
-2.5
-2.0
-1.5
-1.0
-0.5
0.0
�
Xq\
Decay from Metastable Potential
Compare with Pahl and Prezhdo
J.Chem.Phys., Vol 116, No. 20, May 2002
Pages 8704-8712 Fig 3
Saving the QHD hierarchies for future use
The calculation QHD hierarchies is time consuming, therefore it is a good idea to save them for future use. The simplest way to
do it is using the standard Mathematica command Put. The QHD-2 hierarchy is stored in the file qhd2.m, see the command
below:
Put@mhier2, "qhd2.m"D
The QHD-3 hierarchy is stored in the file qhd3.m, see the command below:
Put@mhier3, "qhd3.m"D
The QHD-4 hierarchy is stored in the file qhd4.m, see the command below:
Put@mhier4, "qhd4.m"D
The command FileNames[“*.m”] can be used to see the files that were created by the command Put (together with any other
preexisting file with .m extension), see the command below:
v8qhdhigher.nb 21
FileNames@"∗.m"D
8hier4.m, HierarchyWater.m, qhd2.m, qhd3.m, qhd4.m, schrodingersolbarrier.m<
Dependence of Decay Time on Ñ
Next commands have been written as they would be used in a different Mathematica session, using the command Get to load the
hierarchy that was saved above (instead of calculating it again). Notice that the commutation relation and the Hamiltonian are
defined again, and its important to use those that correspond to the hierarchy that is loaded. Next commands calculate and graph
the dependence of decay time on Ñ, the result is stored in the variable data2, which will be used later to reproduce a graph of the
paper by Pahl and Prezhdo, see the graph below:
22 v8qhdhigher.nb
Needs@"Quantum`QHD`"D;SetQuantumObject@q, pD;Pq, pT− = � ∗ —;
mh =p2
2 m+a2
2q2 +
a3
3q3;
hhier2 = Get@"qhd2.m"D;iniguess = 15;
data2 = TableB
hnumhier2 = hhier2 ê. :m → 1, a2 → 1, a3 →1
2, — → h>;
hinicond2 =
:Xp\@0D � po, Xq\@0D � qo, Yq2]@0D � qo2 +—
2 m ∗ ω, XHp ⋅ qL
�\@0D � po ∗ qo,
Yp2]@0D � po2 +— ∗ m ∗ ω
2> ê. 8qo → 0, po → 0, ω → 1, m → 1, — → h<;
hsol2 = QHDNDSolve@hnumhier2, hinicond2, 0, iniguess + 0.5D;hqf2 = QHDFunction@q, hsol2D;htime = Hht ê. FindRoot@hqf2@htD � −2, 8ht, iniguess<,
AccuracyGoal → 3, PrecisionGoal → 3, MaxIterations → 1000DL;iniguess = htime;
8h, htime<,8h, 0.85, 2, 0.025<F;
ListLinePlot@data2, AxesLabel −> 8Style@—, LargeD, "crossing time τ"<D
1.2 1.4 1.6 1.8 2.0 Ñ
5
6
7
8
9
crossing time t
Below we have the same calculation as above, but with QHD-3 instead of QHD-2, using the “qhd3.m” file, and storing the result
in data3:
v8qhdhigher.nb 23
Needs@"Quantum`QHD`"D;SetQuantumObject@q, pD;Pq, pT− = � ∗ —;
mh =p2
2 m+a2
2q2 +
a3
3q3;
hhier3 = Get@"qhd3.m"D;iniguess = 8;
data3 = TableB
hnumhier3 = hhier3 ê. :m → 1, a2 → 1, a3 →1
2, — → h>;
hinicond3 = :Xp\@0D � po, Xq\@0D � qo, Yq2]@0D � qo2 +—
2 m ∗ ω,
XHp ⋅ qL�\@0D � po ∗ qo, Yp2]@0D � po2 +
— ∗ m ∗ ω
2, Yq3]@0D � qo3 +
3
2qo
—
m ∗ ω,
YIp ⋅ q2M�]@0D � po ∗ qo2 +
1
2po
—
m ∗ ω, YIp2 ⋅ qM
�]@0D � po2 ∗ qo +
1
2qo ∗ — ∗ m ∗ ω,
Yp3]@0D � po3 +3
2po ∗ — ∗ m ∗ ω> ê. 8qo → 0, po → 0, ω → 1, m → 1, — → h<;
hsol3 = QHDNDSolve@hnumhier3, hinicond3, 0, iniguess + 0.5D;hqf3 = QHDFunction@q, hsol3D;htime = Hht ê. FindRoot@hqf3@htD � −2, 8ht, iniguess<,
AccuracyGoal → 3, PrecisionGoal → 3, MaxIterations → 1000DL;iniguess = htime;
8h, htime<,8h, 0.6, 2, 0.025<F;
ListLinePlot@data3, AxesLabel −> 8Style@—, LargeD, "crossing time τ"<D
0.8 1.0 1.2 1.4 1.6 1.8 2.0 Ñ
4
5
6
7
crossing time t
Below we have the same calculation as above, but with QHD-4 instead of QHD-3 or QHD-2, using the “qhd4.m” file, and storing
the result in data4:
24 v8qhdhigher.nb
Needs@"Quantum`QHD`"D;SetQuantumObject@q, pD;Pq, pT− = � ∗ —;
mh =p2
2 m+a2
2q2 +
a3
3q3;
hhier4 = Get@"qhd4.m"D;iniguess = 6;
data4 = TableB
hnumhier4 = hhier4 ê. :m → 1, a2 → 1, a3 →1
2, — → h>;
hinicond4 = :Xp\@0D � po, Xq\@0D � qo,
Yq2]@0D � qo2 +—
2 m ∗ ω, XHp ⋅ qL
�\@0D � po ∗ qo, Yp2]@0D � po2 +
— ∗ m ∗ ω
2,
Yq3]@0D � qo3 +3
2qo
—
m ∗ ω, YIp ⋅ q2M
�]@0D � po ∗ qo2 +
1
2po
—
m ∗ ω,
Yq4]@0D � qo4 + 3 qo2—
m ∗ ω+3
4
—
m ∗ ω
2
, YIp2 ⋅ qM�]@0D � po2 ∗ qo +
1
2qo ∗ — ∗ m ∗ ω,
YIp ⋅ q3M�]@0D � po ∗ qo3 +
3
2po ∗ qo ∗
—
m ∗ ω, Yp3]@0D � po3 +
3
2po ∗ — ∗ m ∗ ω,
YIp2 ⋅ q2M�]@0D � po2 ∗ qo2 +
1
2po2
—
m ∗ ω+qo2 ∗ — ∗ m ∗ ω
2−—2
4,
YIp3 ⋅ qM�]@0D � po3 ∗ qo +
3
2po ∗ qo ∗ — ∗ m ∗ ω, Yp4]@0D �
po4 + 3 po2 ∗ — ∗ m ∗ ω +3
4H— ∗ m ∗ ωL2> ê. 8qo → 0, po → 0, ω → 1, m → 1, — → h<;
hsol4 = QHDNDSolve@hnumhier4, hinicond4, 0, iniguess + 0.5D;hqf4 = QHDFunction@q, hsol4D;htime = Hht ê. FindRoot@hqf4@htD � −2, 8ht, iniguess<,
AccuracyGoal → 3, PrecisionGoal → 3, MaxIterations → 1000DL;iniguess = htime;
8h, htime<,8h, 0.6, 2, 0.025<F;
ListLinePlot@data4, AxesLabel −> 8Style@—, LargeD, "crossing time τ"<D
v8qhdhigher.nb 25
0.8 1.0 1.2 1.4 1.6 1.8 2.0 Ñ
3.5
4.0
4.5
5.0
5.5
crossing time t
Standard Mathematica options can be used so that the graph looks like the corresponding graph in Pahl and Prezhdo paper, see
the result below:
ListLinePlot@8data2, data3, data4<, Frame → True,
FrameLabel → 8Style@—, LargeD, "crossing time τ"<,PlotRange → 880.6, 2<, 82, 10<<, PlotLabel →
"Decay from Metastable Potential\n Compare with Pahl and Prezhdo\n
J.Chem.Phys., Vol 116, No. 20, May 2002\n Pages 8704−8712 Fig 2"D
0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.02
4
6
8
10
Ñ
cro
ssin
gti
met
Decay from Metastable Potential
Compare with Pahl and Prezhdo
J.Chem.Phys., Vol 116, No. 20, May 2002
Pages 8704-8712 Fig 2
Dependence of Decay Time on po
Next commands have been written as they would be used in a different Mathematica session, using the command Get to load the
hierarchy that was saved above (instead of calculating it again). Notice that the commutation relation and the Hamiltonian are
26 v8qhdhigher.nb
hierarchy that was saved above (instead of calculating it again). Notice that the commutation relation and the Hamiltonian are
defined again, and its important to use those that correspond to the hierarchy that is loaded. Next commands calculate and graph
the dependence of decay time on p0, the initial momentum, the result is used to reproduce part of a graph of the paper by Pahl
and Prezhdo, see the graph below:
Needs@"Quantum`QHD`"D;SetQuantumObject@q, pD;Pq, pT− = � ∗ —;
mh =p2
2 m+a2
2q2 +
a3
3q3;
hhier2 = Get@"qhd2.m"D;
hnumhier2 = hhier2 ê. :m → 1, a2 → 1, a3 →1
2, — → 1>;
iniguess = 1;
pdata2 = TableBhinicond2 =
:Xp\@0D � po, Xq\@0D � qo, Yq2]@0D � qo2 +—
2 m ∗ ω, XHp ⋅ qL
�\@0D � po ∗ qo,
Yp2]@0D � po2 +— ∗ m ∗ ω
2> ê. 8qo → 0, ω → 1, m → 1, — → 1<;
hsol2 = QHDNDSolve@hnumhier2, hinicond2, 0, iniguess + 0.5D;hqf2 = QHDFunction@q, hsol2D;htime = Hht ê. FindRoot@hqf2@htD � −2, 8ht, iniguess<,
AccuracyGoal → 3, PrecisionGoal → 3, MaxIterations → 1000DL;iniguess = htime;
8po, htime<,8po, −2, 5, 0.05<F;
ListLinePlot@pdata2, Frame → True, Axes → False,
FrameLabel → 8Style@p0, LargeD, "crossing time τ"<,PlotLabel → "Decay from Metastable
Potential\nCompare with Pahl and Prezhdo\nJ.Chem.Phys.,
Vol 116, No. 20, May 2002\nPages 8704−8712 Fig 4HbL"D
v8qhdhigher.nb 27
-2 -1 0 1 2 3 4 5
1
2
3
4
5
6
p0
cro
ssin
gti
met
Decay from Metastable Potential
Compare with Pahl and Prezhdo
J.Chem.Phys., Vol 116, No. 20, May 2002
Pages 8704-8712 Fig 4HbL
This tutorial shows how to use the QUANTUM Mathematica add-on to reproduce the results and graphs from Pahl and Prezhdo
in J. Chem Phys. Vol 116 No. 20, May 2002, Pages 8704-8712
http://homepage.cem.itesm.mx/lgomez/quantum/QHDHigherOrders.pdf
by José Luis Gómez-Muñoz
http://homepage.cem.itesm.mx/lgomez/quantum/
28 v8qhdhigher.nb