Module containing procedures to construct and diagonalize rotational Hamiltonians
Construct the symmetric top rigid-rotor Hamiltonian
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | N |
The rotational quantum number |
||
| type(eigenH_type), | intent(out) | :: | eigenH |
The eigenvectors and eigenvalues of The angular momentum number |
||
| real(kind=dp), | intent(in) | :: | Bx |
Rotational constants |
||
| real(kind=dp), | intent(in) | :: | By |
Rotational constants |
||
| real(kind=dp), | intent(in) | :: | Bz |
Rotational constants |
||
| type(cd4_type), | intent(in), | optional | :: | cd4 |
The quartic centrifugal distortion parameters |
|
| type(cd6_type), | intent(in), | optional | :: | cd6 |
The sextic centrifugal distortion parameters |
Using the eigenvectors and energies from a diagonalized rotational Hamiltonian, determine which projection is maximal. The eigenvectors can be in the Ka or Kc basis. This routine will return the array Kvals which indicats the absolute value of the projection that contributes the most to a particular eigenvector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | N |
The rotational quantum number |
||
| complex(kind=dp), | intent(in) | :: | eigvecs(:,:) |
Eigenvectors |
||
| integer, | intent(out), | allocatable | :: | absKvals(:) |
Array of the absolte value of |K| that contributes the most to a particular eigenvector |
|
| logical, | intent(in), | optional | :: | sort_eigvecs |
Sort the eigenvectors ? |
Rotate the rigid rotor eigenvectors from one of the principal axes A,B,C to another principal axis A,B,C using the Wigner D-matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | N |
The rotational angular moment quantum number |
||
| character(len=1), | intent(inout) | :: | from_axis |
On input, the starting z-axis. On output, the new z-axis |
||
| character(len=1), | intent(in) | :: | to_axis |
The target z-axis to which we rotate |
||
| complex(kind=dp), | intent(inout) | :: | eigvecs(:,:) |
The eigenvectors |