Octopus
dm_propagation.F90 File Reference

Go to the source code of this file.

Modules

module  dm_propagation_oct_m
 

Data Types

type  dm_propagation_oct_m::dmp_t
 

Functions/Subroutines

subroutine dm_propagation_oct_m::dmp_init (this, namespace, st, space, hm)
 Initialise an instance of density matrix dissipation. More...
 
subroutine, public dm_propagation_oct_m::dm_propagation_init_run (dmp, namespace, space, gr, ions, st, hm, mc, from_scratch)
 Initialise the adiabatic states prior to running TD propagation. More...
 
subroutine, public dm_propagation_oct_m::dm_end_run (system_grp, dmp)
 
subroutine, public dm_propagation_oct_m::dm_propagation_run (dmp, namespace, space, gr, ions, st, mc, hm, ks, iter, dt, ext_partners, update_energy)
 Density matrix propagation. More...
 
subroutine dm_propagation_oct_m::total_population (ik, st, gr, nrm2, pop)
 Calculate total population. More...
 
subroutine dm_propagation_oct_m::population_in_adiabatic (ik, ad_st, st, overlap, pop)
 Calculate number of electrons in the adiabatic basis. More...
 
subroutine dm_propagation_oct_m::construct_residuals (gr, namespace, ad_st, st, ik, othn, overlap_ad_ks, nrm2_tdks, nresd, overlap_resd_ks, resd)
 Construct the residual basis and its overlap with TDKS wavefunctions. More...
 
subroutine dm_propagation_oct_m::construct_density_matrix (nresd, ik, st, overlap_ad_ks, overlap_resd_ks, rho_mat)
 Construct the full density matrix in the adiabatic and residual basis. More...
 
subroutine dm_propagation_oct_m::broadcast_occupation (occ, kpt, nst, parstate)
 
subroutine dm_propagation_oct_m::dissipation (hm, st, namespace, nresd_k, dt, dmp, rho_mat_k)
 Evolve the density matrix in time under dissipation. More...
 
subroutine dm_propagation_oct_m::lindblad_uniform (dmp, kpt, nresd_k, dt, rho_mat_k)
 Evolve the density matrix in time under uniform dissipation. More...
 
subroutine dm_propagation_oct_m::transition_rate_uniform (uniform, ad_st, ik, rtrans)
 Calculate state transition rates assuming uniform electron-phonon coupling. More...
 
subroutine dm_propagation_oct_m::lindblad_operator_uniform (nst, nresd, rtrans, den_mat, l_mat)
 Calculate the Lindblad dissipator matrix for uniform decay. More...
 
subroutine dm_propagation_oct_m::lindblad_2times (dmp, kpt, nresd_k, dt, rho_mat_k)
 Evolve the density matrix using the phenomenological two-time (T1/T2) relaxation model. More...
 
subroutine dm_propagation_oct_m::lindblad_from_epw (dmp, hm, kpt, system_grp, namespace, nresd_k, dt, rho_mat_k)
 Evolve the density matrix under EPW-derived Lindblad dissipation. More...
 
subroutine dm_propagation_oct_m::collision_from_epw (dmp, hm, kpt, system_grp, namespace, nresd_k, dt, rho_mat_k)
 Evolve the density matrix subject to the electron-phonon collision integral. More...
 
subroutine dm_propagation_oct_m::dm_propagation_update_trans_rate (this, hm, system_grp, namespace)
 Read and update the EPW transition matrix only when the vector field index changes. More...
 
subroutine dm_propagation_oct_m::iopar_open_trans_rate (namespace, ions, hm, system_grp, dmp)
 Read in metadata of transition rates, build intra/inter communicators and shared memory window. More...
 
subroutine dm_propagation_oct_m::iopar_read_trans_rate (ia, system_grp, namespace, dmp)
 Read in transition rates to the shared memory window and then broadcast via internode communicator. More...
 
subroutine dm_propagation_oct_m::iopar_close_trans_rate (system_grp, dmp)
 Finalize transition rate resources. More...
 
subroutine dm_propagation_oct_m::build_epw_kmap (namespace, kpoints, dmp)
 Map internal k-point indices to the 1D EPW Monkhorst-Pack grid and verify mesh compatibility. More...
 
integer function dm_propagation_oct_m::get_vector_field_index (dmp, hm, namespace)
 Get the flattened 1D index of the current vector potential on the discrete EPW vector field grid. More...
 
real(real64) function dm_propagation_oct_m::get_trans_rate (dmp, nik_mp, jbnd, ibnd, k, kq, p_block)
 Get transition rate from state (k, ibnd) to (kq, jbnd). More...
 
subroutine dm_propagation_oct_m::lindblad_operator_epw (dmp, ik, nik_skip, nresd, rho_diag, den_mat, l_mat)
 Calculate the Lindblad dissipator matrix using EPW electron-phonon scattering rates. More...
 
subroutine dm_propagation_oct_m::lifetime (dmp, ik, ibnd, nik_skip, gam)
 Calculate the total scattering rate (inverse lifetime) for a given state. More...
 
subroutine dm_propagation_oct_m::get_gamma (dmp, ik, ibnd, nik_skip, gam_in, gam_out)
 Calculate in/out scattering rates (Gamma) for a specific state (ik, ibnd). More...
 
subroutine dm_propagation_oct_m::update_st (dmp, ik, gr, namespace, nresd, overlap_ad_ks, overlap_resd_ks, nrm2_tdks, resd, st, rho_mat, pop)
 Diagonalize the density matrix to update occupations and wavefunctions. More...
 
subroutine dm_propagation_oct_m::update_wfc_occ (ik, ad_st, resd, gr, nresd, occ, v_mat, st, pop)
 Update states directly from diagonalization (no Procrustes). More...
 
subroutine dm_propagation_oct_m::update_wfc_occ_procrustes (ik, ad_st, resd, gr, nresd, overlap_ad_ks, overlap_resd_ks, nrm2_tdks, occ_tilde, v_mat, st, pop)
 Update states using Procrustes transformation to ensure time continuity. More...
 
logical function dm_propagation_oct_m::is_hermitian (n, mat)
 Check if a matrix is Hermitian. More...
 

Variables

real(real32), dimension(:), pointer, volatile dm_propagation_oct_m::ave_trans
 Average transition rates in shared memory. More...