Definition of basis in XFmolecules

32 views
Skip to first unread message

R.K.B. Bause

unread,
Mar 29, 2023, 11:00:18 AM3/29/23
to pylcp
Hello everybody,

I have found that the function XFmolecules.Xstate can return a basis which apparently does not correspond to the way in which the states are actually ordered. For example, I tried the following code:

H0_X, Bq_X, U_X, Xbasis = pylcp.hamiltonians.XFmolecules.Xstate(
    N=1, I=1/2, B=1, b=5, c=1, gamma=1,  q0=0, q2=0, gI=0., muB=0, return_basis=True)
print(np.diag(H0_X))
print(Xbasis)

This returns the following:

[-4.09807621e+00 -4.09807621e+00 -4.09807621e+00  5.55111512e-17
  1.09807621e+00  1.09807621e+00  1.09807621e+00  1.80000000e+00
  1.80000000e+00  1.80000000e+00  1.80000000e+00  1.80000000e+00]
[(0, 1, 0.5, 0., -0., -1) (0, 1, 0.5, 1., -1., -1)
 (0, 1, 0.5, 1.,  0., -1) (0, 1, 0.5, 1.,  1., -1)
 (0, 1, 1.5, 1., -1., -1) (0, 1, 1.5, 1.,  0., -1)
 (0, 1, 1.5, 1.,  1., -1) (0, 1, 1.5, 2., -2., -1)
 (0, 1, 1.5, 2., -1., -1) (0, 1, 1.5, 2.,  0., -1)
 (0, 1, 1.5, 2.,  1., -1) (0, 1, 1.5, 2.,  2., -1)]

If I understand correctly, the first three energies actually corresponds to the three mF sublevels of F=1, and the fourth one corresponds to F=0. However, the basis as returned by the function itself suggests that F=0 should be the first one. Looking at the code, it seems like the Hamiltonian is constructed such that the states are ordered by energy, but the basis is always sorted with the lowest F levels first.

Is this intended behavior? If so, it may be a good idea to clearly point that out somewhere, because it caused me quite some confusion over the past few days.

Best
Roman Bause

Eckel, Stephen P. (Fed)

unread,
Mar 29, 2023, 3:51:48 PM3/29/23
to R.K.B. Bause, pylcp
Hi Roman,

You are correct, the Xbasis does not correspond to the eigenstates of H0_X.  The Xbasis returned is the basis used to field-free Hamiltonian.  As the last step of the calculation, the field free Hamiltonian is diagonalized, which returns a diagonal H0_X and the unitary matrix U_X that transforms from the Xbasis into the eigenstates of H0_X. Thus, if you want the eigenstates of H0_X, you can form them by multiplying U_X and H0_X.

I’ll add an issue to update the documentation appropriately.

Best,

-Steve

--
Dr. Stephen Eckel
Physicist
Sensor Sciences Division
Thermodynamic Metrology Group
100 Bureau Drive, Stop 8364
Gaithersburg, MD 20899-8364
(301) 975-8571

--
You received this message because you are subscribed to the Google Groups "pylcp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pylcp+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pylcp/832042ae-da7c-4bdf-a2cf-3ed8dfb9b17dn%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
Message has been deleted
0 new messages