This module contains the necessary functions and subroutines to use the Meyer-Miller mapping model which maps \(|\alpha\rangle \rightarrow \hat{a}_\alpha^\dagger = \frac{1}{\sqrt{2}}(\hat{x}_\alpha - i\hat{p}_\alpha) \).
More...
|
subroutine | initialize_pldm_map |
| Allocate the mapping variable arrays for PLDM calculation. More...
|
|
subroutine | finalize_pldm_map |
| Deallocate the mapping variable arrays for PLDM calculation. More...
|
|
subroutine | initialize_twa_map |
| Allocate the mapping variable arrays for TWA or SQC calculation. More...
|
|
subroutine | finalize_twa_map |
| Deallocate the mapping variable arrays for TWA or SQC calculation. More...
|
|
subroutine | sample_pldm_map (x_init, p_init, xt_init, pt_init) |
| Sample the initial distribution of mapping variables for PLDM from gaussian distributions. More...
|
|
subroutine | pldm_map_hop (c_f, c_b, x, p, xt, pt, islice) |
| Subroutine that takes the current density matrix and uses it for coefficients in a linear combination of new initial Hermite polynomials. More...
|
|
subroutine | sample_twa_map (x_init, p_init) |
| Sample the initial distribution of mapping variables for truncated wigner approximation in action-angle variables. More...
|
|
complex(dp) function, dimension(nstate, nstate) | pldm_redmat (x, p, xt, pt) |
| Calculate the reduced density matrix using PLDM with the mapping variables from the product of "Hermite polynomials". More...
|
|
complex(dp) function, dimension(nstate, nstate) | twa_redmat (x, p) |
| Calculate the reduced density matrix using TWA with the mapping variables. More...
|
|
subroutine | verlet_mapping_variables (x, p, H, dt) |
| propagates x and p mapping variables using the Hamiltonian by integrating Hamilton's equations with the Verlet integrator. More...
|
|
|
real(dp), dimension(:), allocatable | x_map |
|
real(dp), dimension(:), allocatable | p_map |
|
real(dp), dimension(:), allocatable | xt_map |
|
real(dp), dimension(:), allocatable | pt_map |
|
complex(dp) | prod |
|
complex(dp) | weight_f |
|
complex(dp) | weight_b |
|
This module contains the necessary functions and subroutines to use the Meyer-Miller mapping model which maps \(|\alpha\rangle \rightarrow \hat{a}_\alpha^\dagger = \frac{1}{\sqrt{2}}(\hat{x}_\alpha - i\hat{p}_\alpha) \).
◆ finalize_pldm_map()
subroutine mapping_variables::finalize_pldm_map |
( |
| ) |
|
Deallocate the mapping variable arrays for PLDM calculation.
◆ finalize_twa_map()
subroutine mapping_variables::finalize_twa_map |
( |
| ) |
|
Deallocate the mapping variable arrays for TWA or SQC calculation.
◆ initialize_pldm_map()
subroutine mapping_variables::initialize_pldm_map |
( |
| ) |
|
Allocate the mapping variable arrays for PLDM calculation.
◆ initialize_twa_map()
subroutine mapping_variables::initialize_twa_map |
( |
| ) |
|
Allocate the mapping variable arrays for TWA or SQC calculation.
◆ pldm_map_hop()
subroutine mapping_variables::pldm_map_hop |
( |
complex(dp), dimension( nstate ), intent(in) |
c_f, |
|
|
complex(dp), dimension( nstate ), intent(in) |
c_b, |
|
|
real(dp), dimension( nstate ), intent(out) |
x, |
|
|
real(dp), dimension( nstate ), intent(out) |
p, |
|
|
real(dp), dimension( nstate ), intent(out) |
xt, |
|
|
real(dp), dimension( nstate ), intent(out) |
pt, |
|
|
integer |
islice |
|
) |
| |
Subroutine that takes the current density matrix and uses it for coefficients in a linear combination of new initial Hermite polynomials.
◆ pldm_redmat()
complex(dp) function, dimension( nstate, nstate ) mapping_variables::pldm_redmat |
( |
real(dp), dimension(nstate), intent(in) |
x, |
|
|
real(dp), dimension(nstate), intent(in) |
p, |
|
|
real(dp), dimension(nstate), intent(in) |
xt, |
|
|
real(dp), dimension(nstate), intent(in) |
pt |
|
) |
| |
Calculate the reduced density matrix using PLDM with the mapping variables from the product of "Hermite polynomials".
◆ sample_pldm_map()
subroutine mapping_variables::sample_pldm_map |
( |
real(dp), dimension(nstate), intent(out) |
x_init, |
|
|
real(dp), dimension(nstate), intent(out) |
p_init, |
|
|
real(dp), dimension(nstate), intent(out) |
xt_init, |
|
|
real(dp), dimension(nstate), intent(out) |
pt_init |
|
) |
| |
Sample the initial distribution of mapping variables for PLDM from gaussian distributions.
◆ sample_twa_map()
subroutine mapping_variables::sample_twa_map |
( |
real(dp), dimension(nstate), intent(out) |
x_init, |
|
|
real(dp), dimension(nstate), intent(out) |
p_init |
|
) |
| |
Sample the initial distribution of mapping variables for truncated wigner approximation in action-angle variables.
◆ twa_redmat()
complex(dp) function, dimension( nstate, nstate ) mapping_variables::twa_redmat |
( |
real(dp), dimension(nstate), intent(in) |
x, |
|
|
real(dp), dimension(nstate), intent(in) |
p |
|
) |
| |
Calculate the reduced density matrix using TWA with the mapping variables.
◆ verlet_mapping_variables()
subroutine mapping_variables::verlet_mapping_variables |
( |
real(dp), dimension(nstate), intent(inout) |
x, |
|
|
real(dp), dimension(nstate), intent(inout) |
p, |
|
|
real(dp), dimension(nstate, nstate), intent(in) |
H, |
|
|
real(dp), intent(in) |
dt |
|
) |
| |
propagates x and p mapping variables using the Hamiltonian by integrating Hamilton's equations with the Verlet integrator.
◆ p_map
real(dp), dimension(:), allocatable mapping_variables::p_map |
◆ prod
complex(dp) mapping_variables::prod |
◆ pt_map
real(dp), dimension(:), allocatable mapping_variables::pt_map |
◆ weight_b
complex(dp) mapping_variables::weight_b |
◆ weight_f
complex(dp) mapping_variables::weight_f |
◆ x_map
real(dp), dimension(:), allocatable mapping_variables::x_map |
◆ xt_map
real(dp), dimension(:), allocatable mapping_variables::xt_map |