VPTStateMaker
A tiny but useful class to make states based on their quanta of excitation
Examples
Before we can run our examples we should get a bit of setup out of the way. Since these examples were harvested from the unit tests not all pieces will be necessary for all situations.
All tests are wrapped in a test class
class VPT2Tests(TestCase):
""" Threshold = 0
::> building ExpansionRepresentation<H(0)>
::> in Representation<T(0)>
> evaluating in BraKet space BraKetSpace(nstates=210)
> evaluating 210 elements over 21 unique indices sequentially
> took 0.127s
<::
::> in Representation<V(0)>
> evaluating in BraKet space BraKetSpace(nstates=210)
> evaluating 210 elements over 21 unique indices sequentially
> took 0.184s
<::
> took 0.520s
<::
::> building ExpansionRepresentation<H(1)>
::> in Representation<T(1)>
> evaluating in BraKet space BraKetSpace(nstates=1190)
> took 0.000s
<::
::> in Representation<V(1)>
> evaluating in BraKet space BraKetSpace(nstates=1190)
> evaluating 1190 elements over 56 unique indices sequentially
> took 0.204s
<::
> took 0.499s
<::
::> building ExpansionRepresentation<H(2)>
::> in Representation<T(2)>
> evaluating in BraKet space BraKetSpace(nstates=43)
> took 0.000s
<::
::> in Representation<V(2)>
> evaluating in BraKet space BraKetSpace(nstates=43)
> evaluating 43 elements over 126 unique indices sequentially
> took 0.657s
<::
::> in Representation<Coriolis(0)>
> evaluating in BraKet space BraKetSpace(nstates=43)
> evaluating 43 elements over 906 unique indices sequentially
> took 1.005s
<::
::> in Representation<V'(0)>
> evaluating in BraKet space BraKetSpace(nstates=43)
> evaluating identity tensor over 43 elements
> took 0.036s
<::
> took 2.244s
<::
<::
::> Energy Corrections
> State <0|dH(2)|0> <0|dH(1)|1>
0 0 0 0 0 0 -5.49879 -75.41416
0 0 0 0 0 1 48.22641 -294.08843
0 0 0 0 1 0 46.72377 -284.71337
0 0 0 1 0 0 2.02819 -114.86847
0 0 1 0 0 0 -32.88017 -81.93283
0 1 0 0 0 0 -34.90506 -66.80892
1 0 0 0 0 0 -46.81545 -55.50575
0 1 0 1 0 0 -25.19818 -114.53080
0 0 0 0 0 1 3061.70147 95.24194 2849.45769 63.44723
0 0 0 0 1 0 2977.64050 69.29750 2820.56385 64.99539
0 0 0 1 0 0 1727.08265 63.79277 1695.15532 65.08450
0 0 1 0 0 0 1527.04079 11.12160 1493.14075 9.28519
0 1 0 0 0 0 1252.16397 9.69252 1231.36294 10.18280
1 0 0 0 0 0 1188.11375 7.01998 1166.70551 7.08986
0 1 0 1 0 0 2979.24662 0.00000 2967.72530 43.44534
"""
""" Threshold = 0.05 cm^-1
0 0 0 0 0 1 3061.70147 95.24194 2849.45684 63.44730
0 0 0 0 1 0 2977.64050 69.29750 2820.56243 64.99418
0 0 0 1 0 0 1727.08265 63.79277 1695.15532 65.08644
0 0 1 0 0 0 1527.04080 11.12160 1493.14075 9.28423
0 1 0 0 0 0 1252.16397 9.69252 1231.36294 10.18282
1 0 0 0 0 0 1188.11376 7.01998 1166.70551 7.08986
0 1 0 1 0 0 2979.24662 0.00000 2967.72474 43.44434
::> building ExpansionRepresentation<H(0)>
::> in Representation<T(0)>
> evaluating in BraKet space BraKetSpace(nstates=144)
> evaluating 144 elements over 21 unique indices sequentially
> took 0.089s
<::
::> in Representation<V(0)>
> evaluating in BraKet space BraKetSpace(nstates=144)
> evaluating 144 elements over 21 unique indices sequentially
> took 0.176s
<::
> took 0.449s
<::
::> building ExpansionRepresentation<H(1)>
::> in Representation<T(1)>
> evaluating in BraKet space BraKetSpace(nstates=287)
> took 0.000s
<::
::> in Representation<V(1)>
> evaluating in BraKet space BraKetSpace(nstates=287)
> evaluating 287 elements over 56 unique indices sequentially
> took 0.238s
<::
> took 0.559s
<::
::> building ExpansionRepresentation<H(2)>
::> in Representation<T(2)>
> evaluating in BraKet space BraKetSpace(nstates=21)
> took 0.000s
<::
::> in Representation<V(2)>
> evaluating in BraKet space BraKetSpace(nstates=21)
> evaluating 21 elements over 126 unique indices sequentially
> took 0.415s
<::
::> in Representation<Coriolis(0)>
> evaluating in BraKet space BraKetSpace(nstates=21)
> evaluating 21 elements over 906 unique indices sequentially
> took 0.506s
<::
::> in Representation<V'(0)>
> evaluating in BraKet space BraKetSpace(nstates=21)
> evaluating identity tensor over 21 elements
> took 0.118s
<::
> took 1.760s
<::
"""
""" Threshold = 1.0 cm^-1
::> building ExpansionRepresentation<H(0)>
::> in Representation<T(0)>
> evaluating in BraKet space BraKetSpace(nstates=144)
> evaluating 144 elements over 21 unique indices sequentially
> took 0.063s
<::
::> in Representation<V(0)>
> evaluating in BraKet space BraKetSpace(nstates=144)
> evaluating 144 elements over 21 unique indices sequentially
> took 0.142s
<::
> took 0.582s
<::
::> building ExpansionRepresentation<H(1)>
::> in Representation<T(1)>
> evaluating in BraKet space BraKetSpace(nstates=287)
> took 0.000s
<::
::> in Representation<V(1)>
> evaluating in BraKet space BraKetSpace(nstates=287)
> evaluating 287 elements over 56 unique indices sequentially
> took 0.262s
<::
> took 0.901s
<::
::> building ExpansionRepresentation<H(2)>
::> in Representation<T(2)>
> evaluating in BraKet space BraKetSpace(nstates=19)
> took 0.000s
<::
::> in Representation<V(2)>
> evaluating in BraKet space BraKetSpace(nstates=19)
> evaluating 19 elements over 126 unique indices sequentially
> took 0.336s
<::
::> in Representation<Coriolis(0)>
> evaluating in BraKet space BraKetSpace(nstates=19)
> evaluating 19 elements over 906 unique indices sequentially
> took 0.601s
<::
::> in Representation<V'(0)>
> evaluating in BraKet space BraKetSpace(nstates=19)
> evaluating identity tensor over 19 elements
> took 0.064s
<::
> took 1.756s
<::
<::
0 0 0 0 0 0 -4.96621 -75.41416
0 0 0 0 0 1 48.17888 -294.08843
0 0 0 0 1 0 46.58555 -284.71337
0 0 0 1 0 0 1.52477 -114.86847
0 0 1 0 0 0 -33.06100 -81.93283
0 1 0 0 0 0 -34.75406 -66.80892
1 0 0 0 0 0 -47.74137 -55.50575
0 1 0 1 0 0 -26.31829 -114.53080
0 0 0 0 0 1 3061.70147 95.24194 2848.44632 62.90510
0 0 0 0 1 0 2977.64050 69.29750 2819.89305 64.85348
0 0 0 1 0 0 1727.08265 63.79277 1694.11932 65.38942
0 0 1 0 0 0 1527.04080 11.12160 1492.42734 9.04394
0 1 0 0 0 0 1252.16397 9.69252 1230.98136 10.06742
1 0 0 0 0 0 1188.11376 7.01998 1165.24700 7.08479
0 1 0 1 0 0 2979.24662 0.00000 2966.50387 43.86153
"""
ClHOClRunner
def test_ClHOClRunner(self):
file_name = "cl_hocl.fchk"
state = VPTStateMaker(6)
COM = -3
A = -2
C = -1
_ = 1000
O = 0
H = 1
Cl = 2
X = 3
VPTRunner.run_simple(
TestManager.test_data(file_name),
[
state(),
state([1, 1]),
state([1, 2]),
state([1, 3]),
state([1, 2], [5, 1]),
state([1, 1], [2, 2]),
],
logger=True,
handle_strong_couplings=True,
strong_coupling_test_modes=list(range(3, 6))
)
"""
> [[0 0 0 0 0 2]
> [1 0 0 0 0 2]
> [0 1 0 0 0 2]
> [0 0 0 0 2 1]
> [0 0 0 0 4 0]
> [0 2 0 0 0 2]
> [0 1 0 0 2 1]]
Harmonic Anharmonic
State Frequency Intensity Frequency Intensity
0 0 0 0 0 1 2709.16096 2782.25433 2285.38768 2611.96281
0 0 0 0 0 2 5418.32192 0.00000 4140.45935 19.13726
0 0 0 0 0 3 8127.48288 0.00000 5353.97008 0.16004
0 1 0 0 0 2 5699.88024 0.00000 4605.01290 3.93389
0 0 0 0 2 1 5592.48466 0.00000 5023.09956 7.99053
"""
VPTRunner.run_simple(
TestManager.test_data(file_name),
[
state(),
state([1, 1]),
state([1, 2]),
state([1, 3]),
state([1, 2], [5, 1]),
state([1, 1], [2, 2]),
],
logger=True,
handle_strong_couplings=True
)
"""
> [[0 0 0 0 0 2]
> [0 0 0 0 2 1]
> [0 0 0 0 4 0]]
Harmonic Anharmonic
State Frequency Intensity Frequency Intensity
0 0 0 0 0 1 2709.16096 2782.25433 2285.38768 2611.96281
0 0 0 0 0 2 5418.32192 0.00000 4096.10015 21.49976
0 0 0 0 0 3 8127.48288 0.00000 5353.97008 0.16004
0 1 0 0 0 2 5699.88024 0.00000 4374.63719 2.66632
0 0 0 0 2 1 5592.48466 0.00000 4964.16010 6.86648
"""
VPTRunner.run_simple(
TestManager.test_data(file_name),
[
state(),
state([1, 1]),
state([1, 2]),
state([1, 3]),
state([1, 2], [5, 1]),
state([1, 1], [2, 2]),
],
logger=True,
handle_strong_couplings=True
, strong_coupling_test_modes=list(range(3, 6))
, internals=[
[Cl, _, _, _],
[O, Cl, _, _],
[X, O, Cl, _],
[H, O, Cl, X],
]
)
"""
> [[0 0 0 0 0 2]
> [1 0 0 0 0 2]
> [0 1 0 0 0 2]
> [0 0 0 0 2 1]
> [0 0 0 0 4 0]
> [0 2 0 0 0 2]
> [0 1 0 0 2 1]]
Harmonic Anharmonic
State Frequency Intensity Frequency Intensity
0 0 0 0 0 1 2709.16096 2782.25433 2305.91708 2613.72238
0 0 0 0 0 2 5418.32192 0.00000 4174.53466 17.82679
0 0 0 0 0 3 8127.48288 0.00000 5353.97246 0.16004
0 1 0 0 0 2 5699.88024 0.00000 4645.21985 6.56429
0 0 0 0 2 1 5592.48466 0.00000 5114.27886 9.19226
"""
VPTRunner.run_simple(
TestManager.test_data(file_name),
[
state(),
state([1, 1]),
state([1, 2]),
state([1, 3]),
state([1, 2], [5, 1]),
state([1, 1], [2, 2]),
],
logger=True,
handle_strong_couplings=True
, internals=[
[Cl, _, _, _],
[O, Cl, _, _],
[X, O, Cl, _],
[H, O, Cl, X],
]
)
"""
> [[0 0 0 0 0 2]
> [0 0 0 0 2 1]
> [0 0 0 0 4 0]]
Harmonic Anharmonic
State Frequency Intensity Frequency Intensity
0 0 0 0 0 1 2709.16096 2782.25433 2305.91708 2613.72238
0 0 0 0 0 2 5418.32192 0.00000 4130.15930 22.20869
0 0 0 0 0 3 8127.48288 0.00000 5353.97246 0.16004
0 1 0 0 0 2 5699.88024 0.00000 4374.63638 2.66634
0 0 0 0 2 1 5592.48466 0.00000 5053.08138 7.79496
"""