Octopus
em_resp_calc.F90 File Reference

Go to the source code of this file.

Modules

module  em_resp_calc_oct_m
 

Data Types

type  em_resp_calc_oct_m::matrix_t
 

Functions/Subroutines

subroutine, public em_resp_calc_oct_m::lr_calc_current (st, space, gr, lr, lr_m)
 
character(len=12) function, public em_resp_calc_oct_m::freq2str (freq)
 
character(len=100) function, public em_resp_calc_oct_m::em_rho_tag (freq, dir, dir2, ipert)
 
character(len=100) function, public em_resp_calc_oct_m::em_wfs_tag (idir, ifactor, idir2, ipert)
 
integer pure function, public em_resp_calc_oct_m::magn_dir (dir, ind)
 
character(len=2) pure function em_resp_calc_oct_m::index2pert (ipert)
 
subroutine, public em_resp_calc_oct_m::dlr_calc_elf (st, space, gr, kpoints, lr, lr_m)
 
subroutine, public em_resp_calc_oct_m::dcalc_polarizability_periodic (space, mesh, symm, st, em_lr, kdotp_lr, nsigma, zpol, ndir, zpol_k)
 alpha_ij(w) = -e sum(m occ, k) [(<u_mk(0)|-id/dk_i)|u_mkj(1)(w)> + <u_mkj(1)(-w)|(-id/dk_i|u_mk(0)>)] More...
 
subroutine, public em_resp_calc_oct_m::dcalc_polarizability_finite (namespace, space, gr, st, hm, lr, nsigma, pert, zpol, doalldirs, ndir)
 alpha_ij(w) = - sum(m occ) [<psi_m(0)|r_i|psi_mj(1)(w)> + <psi_mj(1)(-w)|r_i|psi_m(0)>] minus sign is from electronic charge -e More...
 
subroutine, public em_resp_calc_oct_m::dlr_calc_susceptibility (namespace, space, gr, st, hm, lr, nsigma, pert, chi_para, chi_dia)
 
subroutine, public em_resp_calc_oct_m::dlr_calc_beta (sh, namespace, space, gr, st, hm, xc, em_lr, dipole, beta, kdotp_lr, kdotp_em_lr, occ_response, dl_eig)
 See (16) in X Andrade et al., J. Chem. Phys. 126, 184106 (2006) for finite systems and (10) in A Dal Corso et al., Phys. Rev. B 15, 15638 (1996) for periodic systems Supply only em_lr for finite systems, and both kdotp_lr and kdotp_em_lr for periodic em_lr(dir, sigma, omega) = electric perturbation of ground-state wavefunctions kdotp_lr(dir) = kdotp perturbation of ground-state wavefunctions kdotp_em_lr(dir1, dir2, sigma, omega) = kdotp perturbation of electric-perturbed wfns. More...
 
subroutine get_permutation (ii, pp)
 
subroutine get_matrix_elements ()
 
subroutine, public em_resp_calc_oct_m::dpost_orthogonalize (space, mesh, st, nfactor, nsigma, freq_factor, omega, eta, em_lr, kdotp_em_lr)
 
subroutine, public em_resp_calc_oct_m::dem_resp_calc_eigenvalues (space, mesh, latt, st, dl_eig)
 
subroutine, public em_resp_calc_oct_m::dlr_calc_magneto_optics_finite (sh, sh_mo, namespace, space, gr, st, hm, ions, nsigma, nfactor, lr_e, lr_b, chi)
 
subroutine em_resp_calc_oct_m::dcalc_kvar_energy (sh_mo, mesh, st, lr1, lr2, lr3, hpol_density)
 
subroutine, public em_resp_calc_oct_m::dlr_calc_magneto_optics_periodic (sh, sh2, namespace, space, gr, st, hm, ions, nsigma, nfactor, nfactor_ke, freq_factor, lr_e, lr_b, lr_k, lr_ke, lr_kb, frequency, zpol, zpol_kout)
 
subroutine apply_v (add_hartree, add_fxc, nsigma_h, nsigma_in, dir, ist0, ik0, frequency0, hvar_in, lr_in, psi_out)
 
subroutine, public em_resp_calc_oct_m::dlr_calc_magnetization_periodic (namespace, space, mesh, st, hm, lr_k, magn)
 
subroutine, public em_resp_calc_oct_m::dlr_calc_susceptibility_periodic (namespace, space, symm, mesh, st, hm, lr_k, lr_b, lr_kk, lr_kb, magn)
 
subroutine em_resp_calc_oct_m::dinhomog_per_component (namespace, space, gr, st, hm, ions, idir, ik, psi_k2, psi_out, factor_tot, factor_k, factor_second)
 
subroutine em_resp_calc_oct_m::dinhomog_per_component_2nd_order (namespace, space, gr, st, hm, ions, idir, ik, psi_k2, psi_e, psi_out, factor_tot, factor_k, factor_e)
 
subroutine, public em_resp_calc_oct_m::dinhomog_b (sh, namespace, space, gr, st, hm, ions, idir1, idir2, lr_k1, lr_k2, psi_out)
 
subroutine em_resp_calc_oct_m::dinhomog_eb (mesh, st, ik, add_hartree, add_fxc, hvar, psi_b, psi_kb, factor_b, psi_out, psi_k1, psi_k2)
 
subroutine calc_hvar_lr2 (tlr_k1, tlr_k2, hvar_e, factor_tot)
 
subroutine em_resp_calc_oct_m::dinhomog_be (namespace, space, gr, st, hm, ions, idir1, idir2, ik, add_hartree, add_fxc, hvar, psi_e1, psi_e2, psi_ek1, psi_ek2, psi_k1, psi_k2, factor_e1, factor_e2, psi_out)
 
subroutine em_resp_calc_oct_m::dinhomog_ke (namespace, space, gr, st, hm, ions, idir, ik, psi_e, psi_out)
 
subroutine em_resp_calc_oct_m::dinhomog_k2 (namespace, space, gr, st, hm, ions, idir1, idir2, ik, psi_k2, psi_out)
 
subroutine em_resp_calc_oct_m::dinhomog_kb (namespace, gr, space, st, hm, ions, idir, idir1, idir2, ik, psi_b, psi_k1, psi_k2, psi_out)
 
subroutine, public em_resp_calc_oct_m::dinhomog_kb_tot (sh, namespace, space, gr, st, hm, ions, idir, idir1, idir2, lr_k, lr_b, lr_k1, lr_k2, lr_kk1, lr_kk2, psi_out)
 
subroutine, public em_resp_calc_oct_m::dinhomog_ke_tot (sh, namespace, space, gr, st, hm, ions, idir, nsigma, lr_k, lr_e, lr_kk, psi_out)
 
subroutine, public em_resp_calc_oct_m::dinhomog_k2_tot (namespace, space, gr, st, hm, ions, idir1, idir2, lr_k1, lr_k2, psi_out)
 
subroutine em_resp_calc_oct_m::dcalc_rho (mesh, st, factor, factor_sum, factor_e, factor_k, lr_e, lr_k, lr0)
 
subroutine em_resp_calc_oct_m::dcalc_hvar_psi (mesh, st, ik, hvar, psi_out)
 
subroutine em_resp_calc_oct_m::dcalc_hvar_lr (mesh, st, ik, hvar, psi_in, factor1, factor2, psi_out)
 
subroutine em_resp_calc_oct_m::dmf_dotp_matrix (mesh, nst, dim, psi1, psi2, res, factor)
 Multiplication of two blocks of states. More...
 
subroutine, public em_resp_calc_oct_m::zlr_calc_elf (st, space, gr, kpoints, lr, lr_m)
 
subroutine, public em_resp_calc_oct_m::zcalc_polarizability_periodic (space, mesh, symm, st, em_lr, kdotp_lr, nsigma, zpol, ndir, zpol_k)
 alpha_ij(w) = -e sum(m occ, k) [(<u_mk(0)|-id/dk_i)|u_mkj(1)(w)> + <u_mkj(1)(-w)|(-id/dk_i|u_mk(0)>)] More...
 
subroutine, public em_resp_calc_oct_m::zcalc_polarizability_finite (namespace, space, gr, st, hm, lr, nsigma, pert, zpol, doalldirs, ndir)
 alpha_ij(w) = - sum(m occ) [<psi_m(0)|r_i|psi_mj(1)(w)> + <psi_mj(1)(-w)|r_i|psi_m(0)>] minus sign is from electronic charge -e More...
 
subroutine, public em_resp_calc_oct_m::zlr_calc_susceptibility (namespace, space, gr, st, hm, lr, nsigma, pert, chi_para, chi_dia)
 
subroutine, public em_resp_calc_oct_m::zlr_calc_beta (sh, namespace, space, gr, st, hm, xc, em_lr, dipole, beta, kdotp_lr, kdotp_em_lr, occ_response, dl_eig)
 See (16) in X Andrade et al., J. Chem. Phys. 126, 184106 (2006) for finite systems and (10) in A Dal Corso et al., Phys. Rev. B 15, 15638 (1996) for periodic systems Supply only em_lr for finite systems, and both kdotp_lr and kdotp_em_lr for periodic em_lr(dir, sigma, omega) = electric perturbation of ground-state wavefunctions kdotp_lr(dir) = kdotp perturbation of ground-state wavefunctions kdotp_em_lr(dir1, dir2, sigma, omega) = kdotp perturbation of electric-perturbed wfns. More...
 
subroutine, public em_resp_calc_oct_m::zpost_orthogonalize (space, mesh, st, nfactor, nsigma, freq_factor, omega, eta, em_lr, kdotp_em_lr)
 
subroutine, public em_resp_calc_oct_m::zem_resp_calc_eigenvalues (space, mesh, latt, st, dl_eig)
 
subroutine, public em_resp_calc_oct_m::zlr_calc_magneto_optics_finite (sh, sh_mo, namespace, space, gr, st, hm, ions, nsigma, nfactor, lr_e, lr_b, chi)
 
subroutine em_resp_calc_oct_m::zcalc_kvar_energy (sh_mo, mesh, st, lr1, lr2, lr3, hpol_density)
 
subroutine, public em_resp_calc_oct_m::zlr_calc_magneto_optics_periodic (sh, sh2, namespace, space, gr, st, hm, ions, nsigma, nfactor, nfactor_ke, freq_factor, lr_e, lr_b, lr_k, lr_ke, lr_kb, frequency, zpol, zpol_kout)
 
subroutine apply_v (add_hartree, add_fxc, nsigma_h, nsigma_in, dir, ist0, ik0, frequency0, hvar_in, lr_in, psi_out)
 
subroutine, public em_resp_calc_oct_m::zlr_calc_magnetization_periodic (namespace, space, mesh, st, hm, lr_k, magn)
 
subroutine, public em_resp_calc_oct_m::zlr_calc_susceptibility_periodic (namespace, space, symm, mesh, st, hm, lr_k, lr_b, lr_kk, lr_kb, magn)
 
subroutine em_resp_calc_oct_m::zinhomog_per_component (namespace, space, gr, st, hm, ions, idir, ik, psi_k2, psi_out, factor_tot, factor_k, factor_second)
 
subroutine em_resp_calc_oct_m::zinhomog_per_component_2nd_order (namespace, space, gr, st, hm, ions, idir, ik, psi_k2, psi_e, psi_out, factor_tot, factor_k, factor_e)
 
subroutine, public em_resp_calc_oct_m::zinhomog_b (sh, namespace, space, gr, st, hm, ions, idir1, idir2, lr_k1, lr_k2, psi_out)
 
subroutine em_resp_calc_oct_m::zinhomog_eb (mesh, st, ik, add_hartree, add_fxc, hvar, psi_b, psi_kb, factor_b, psi_out, psi_k1, psi_k2)
 
subroutine calc_hvar_lr2 (tlr_k1, tlr_k2, hvar_e, factor_tot)
 
subroutine em_resp_calc_oct_m::zinhomog_be (namespace, space, gr, st, hm, ions, idir1, idir2, ik, add_hartree, add_fxc, hvar, psi_e1, psi_e2, psi_ek1, psi_ek2, psi_k1, psi_k2, factor_e1, factor_e2, psi_out)
 
subroutine em_resp_calc_oct_m::zinhomog_ke (namespace, space, gr, st, hm, ions, idir, ik, psi_e, psi_out)
 
subroutine em_resp_calc_oct_m::zinhomog_k2 (namespace, space, gr, st, hm, ions, idir1, idir2, ik, psi_k2, psi_out)
 
subroutine em_resp_calc_oct_m::zinhomog_kb (namespace, gr, space, st, hm, ions, idir, idir1, idir2, ik, psi_b, psi_k1, psi_k2, psi_out)
 
subroutine, public em_resp_calc_oct_m::zinhomog_kb_tot (sh, namespace, space, gr, st, hm, ions, idir, idir1, idir2, lr_k, lr_b, lr_k1, lr_k2, lr_kk1, lr_kk2, psi_out)
 
subroutine, public em_resp_calc_oct_m::zinhomog_ke_tot (sh, namespace, space, gr, st, hm, ions, idir, nsigma, lr_k, lr_e, lr_kk, psi_out)
 
subroutine, public em_resp_calc_oct_m::zinhomog_k2_tot (namespace, space, gr, st, hm, ions, idir1, idir2, lr_k1, lr_k2, psi_out)
 
subroutine em_resp_calc_oct_m::zcalc_rho (mesh, st, factor, factor_sum, factor_e, factor_k, lr_e, lr_k, lr0)
 
subroutine em_resp_calc_oct_m::zcalc_hvar_psi (mesh, st, ik, hvar, psi_out)
 
subroutine em_resp_calc_oct_m::zcalc_hvar_lr (mesh, st, ik, hvar, psi_in, factor1, factor2, psi_out)
 
subroutine em_resp_calc_oct_m::zmf_dotp_matrix (mesh, nst, dim, psi1, psi2, res, factor)
 Multiplication of two blocks of states. More...
 

Function/Subroutine Documentation

◆ get_permutation()

subroutine get_permutation ( integer, intent(in)  ii,
integer, dimension(1:3), intent(out)  pp 
)
private

Definition at line 1089 of file em_resp_calc.F90.

◆ get_matrix_elements()

subroutine get_matrix_elements
private

Definition at line 1128 of file em_resp_calc.F90.

◆ apply_v() [1/2]

subroutine dlr_calc_magneto_optics_periodic::apply_v ( logical, intent(in)  add_hartree,
logical, intent(in)  add_fxc,
integer, intent(in)  nsigma_h,
integer, intent(in)  nsigma_in,
integer, intent(in)  dir,
integer, intent(in)  ist0,
integer, intent(in)  ik0,
complex(real64), intent(in)  frequency0,
real(real64), dimension(:, :), intent(in)  hvar_in,
type(lr_t), dimension(:), intent(in)  lr_in,
real(real64), dimension(:, :, :), intent(out), contiguous  psi_out 
)
private

Definition at line 1978 of file em_resp_calc.F90.

◆ calc_hvar_lr2() [1/2]

subroutine dinhomog_eb::calc_hvar_lr2 ( real(real64), dimension(:,:,:), intent(inout), contiguous  tlr_k1,
real(real64), dimension(:,:,:), intent(inout), contiguous  tlr_k2,
real(real64), dimension(:), intent(inout), contiguous  hvar_e,
real(real64), intent(in)  factor_tot 
)
private

Definition at line 2702 of file em_resp_calc.F90.

◆ apply_v() [2/2]

subroutine zlr_calc_magneto_optics_periodic::apply_v ( logical, intent(in)  add_hartree,
logical, intent(in)  add_fxc,
integer, intent(in)  nsigma_h,
integer, intent(in)  nsigma_in,
integer, intent(in)  dir,
integer, intent(in)  ist0,
integer, intent(in)  ik0,
complex(real64), intent(in)  frequency0,
complex(real64), dimension(:, :), intent(in)  hvar_in,
type(lr_t), dimension(:), intent(in)  lr_in,
complex(real64), dimension(:, :, :), intent(out), contiguous  psi_out 
)
private

Definition at line 4947 of file em_resp_calc.F90.

◆ calc_hvar_lr2() [2/2]

subroutine zinhomog_eb::calc_hvar_lr2 ( complex(real64), dimension(:,:,:), intent(inout), contiguous  tlr_k1,
complex(real64), dimension(:,:,:), intent(inout), contiguous  tlr_k2,
complex(real64), dimension(:), intent(inout), contiguous  hvar_e,
complex(real64), intent(in)  factor_tot 
)
private

Definition at line 5671 of file em_resp_calc.F90.