Octopus
|
Data Types | |
type | matrix_t |
Functions/Subroutines | |
subroutine, public | lr_calc_current (st, space, gr, lr, lr_m) |
character(len=12) function, public | freq2str (freq) |
character(len=100) function, public | em_rho_tag (freq, dir, dir2, ipert) |
character(len=100) function, public | em_wfs_tag (idir, ifactor, idir2, ipert) |
integer pure function, public | magn_dir (dir, ind) |
character(len=2) pure function | index2pert (ipert) |
subroutine, public | dlr_calc_elf (st, space, gr, kpoints, lr, lr_m) |
subroutine, public | 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 | 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 | dlr_calc_susceptibility (namespace, space, gr, st, hm, lr, nsigma, pert, chi_para, chi_dia) |
subroutine, public | 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, public | dpost_orthogonalize (space, mesh, st, nfactor, nsigma, freq_factor, omega, eta, em_lr, kdotp_em_lr) |
subroutine, public | dem_resp_calc_eigenvalues (space, mesh, latt, st, dl_eig) |
subroutine, public | dlr_calc_magneto_optics_finite (sh, sh_mo, namespace, space, gr, st, hm, ions, nsigma, nfactor, lr_e, lr_b, chi) |
subroutine | dcalc_kvar_energy (sh_mo, mesh, st, lr1, lr2, lr3, hpol_density) |
subroutine, public | 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, public | dlr_calc_magnetization_periodic (namespace, space, mesh, st, hm, lr_k, magn) |
subroutine, public | dlr_calc_susceptibility_periodic (namespace, space, symm, mesh, st, hm, lr_k, lr_b, lr_kk, lr_kb, magn) |
subroutine | dinhomog_per_component (namespace, space, gr, st, hm, ions, idir, ik, psi_k2, psi_out, factor_tot, factor_k, factor_second) |
subroutine | 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 | dinhomog_b (sh, namespace, space, gr, st, hm, ions, idir1, idir2, lr_k1, lr_k2, psi_out) |
subroutine | dinhomog_eb (mesh, st, ik, add_hartree, add_fxc, hvar, psi_b, psi_kb, factor_b, psi_out, psi_k1, psi_k2) |
subroutine | 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 | dinhomog_ke (namespace, space, gr, st, hm, ions, idir, ik, psi_e, psi_out) |
subroutine | dinhomog_k2 (namespace, space, gr, st, hm, ions, idir1, idir2, ik, psi_k2, psi_out) |
subroutine | dinhomog_kb (namespace, gr, space, st, hm, ions, idir, idir1, idir2, ik, psi_b, psi_k1, psi_k2, psi_out) |
subroutine, public | 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 | dinhomog_ke_tot (sh, namespace, space, gr, st, hm, ions, idir, nsigma, lr_k, lr_e, lr_kk, psi_out) |
subroutine, public | dinhomog_k2_tot (namespace, space, gr, st, hm, ions, idir1, idir2, lr_k1, lr_k2, psi_out) |
subroutine | dcalc_rho (mesh, st, factor, factor_sum, factor_e, factor_k, lr_e, lr_k, lr0) |
subroutine | dcalc_hvar_psi (mesh, st, ik, hvar, psi_out) |
subroutine | dcalc_hvar_lr (mesh, st, ik, hvar, psi_in, factor1, factor2, psi_out) |
subroutine | dmf_dotp_matrix (mesh, nst, dim, psi1, psi2, res, factor) |
Multiplication of two blocks of states. More... | |
subroutine, public | zlr_calc_elf (st, space, gr, kpoints, lr, lr_m) |
subroutine, public | 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 | 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 | zlr_calc_susceptibility (namespace, space, gr, st, hm, lr, nsigma, pert, chi_para, chi_dia) |
subroutine, public | 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 | zpost_orthogonalize (space, mesh, st, nfactor, nsigma, freq_factor, omega, eta, em_lr, kdotp_em_lr) |
subroutine, public | zem_resp_calc_eigenvalues (space, mesh, latt, st, dl_eig) |
subroutine, public | zlr_calc_magneto_optics_finite (sh, sh_mo, namespace, space, gr, st, hm, ions, nsigma, nfactor, lr_e, lr_b, chi) |
subroutine | zcalc_kvar_energy (sh_mo, mesh, st, lr1, lr2, lr3, hpol_density) |
subroutine, public | 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, public | zlr_calc_magnetization_periodic (namespace, space, mesh, st, hm, lr_k, magn) |
subroutine, public | zlr_calc_susceptibility_periodic (namespace, space, symm, mesh, st, hm, lr_k, lr_b, lr_kk, lr_kb, magn) |
subroutine | zinhomog_per_component (namespace, space, gr, st, hm, ions, idir, ik, psi_k2, psi_out, factor_tot, factor_k, factor_second) |
subroutine | 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 | zinhomog_b (sh, namespace, space, gr, st, hm, ions, idir1, idir2, lr_k1, lr_k2, psi_out) |
subroutine | zinhomog_eb (mesh, st, ik, add_hartree, add_fxc, hvar, psi_b, psi_kb, factor_b, psi_out, psi_k1, psi_k2) |
subroutine | 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 | zinhomog_ke (namespace, space, gr, st, hm, ions, idir, ik, psi_e, psi_out) |
subroutine | zinhomog_k2 (namespace, space, gr, st, hm, ions, idir1, idir2, ik, psi_k2, psi_out) |
subroutine | zinhomog_kb (namespace, gr, space, st, hm, ions, idir, idir1, idir2, ik, psi_b, psi_k1, psi_k2, psi_out) |
subroutine, public | 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 | zinhomog_ke_tot (sh, namespace, space, gr, st, hm, ions, idir, nsigma, lr_k, lr_e, lr_kk, psi_out) |
subroutine, public | zinhomog_k2_tot (namespace, space, gr, st, hm, ions, idir1, idir2, lr_k1, lr_k2, psi_out) |
subroutine | zcalc_rho (mesh, st, factor, factor_sum, factor_e, factor_k, lr_e, lr_k, lr0) |
subroutine | zcalc_hvar_psi (mesh, st, ik, hvar, psi_out) |
subroutine | zcalc_hvar_lr (mesh, st, ik, hvar, psi_in, factor1, factor2, psi_out) |
subroutine | zmf_dotp_matrix (mesh, nst, dim, psi1, psi2, res, factor) |
Multiplication of two blocks of states. More... | |
subroutine, public em_resp_calc_oct_m::lr_calc_current | ( | type(states_elec_t), intent(inout) | st, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(lr_t), intent(inout) | lr, | ||
type(lr_t), intent(inout), optional | lr_m | ||
) |
Definition at line 201 of file em_resp_calc.F90.
character(len=12) function, public em_resp_calc_oct_m::freq2str | ( | real(real64), intent(in) | freq | ) |
Definition at line 286 of file em_resp_calc.F90.
character(len=100) function, public em_resp_calc_oct_m::em_rho_tag | ( | real(real64), intent(in) | freq, |
integer, intent(in) | dir, | ||
integer, intent(in), optional | dir2, | ||
integer, intent(in), optional | ipert | ||
) |
Definition at line 308 of file em_resp_calc.F90.
character(len=100) function, public em_resp_calc_oct_m::em_wfs_tag | ( | integer, intent(in) | idir, |
integer, intent(in) | ifactor, | ||
integer, intent(in), optional | idir2, | ||
integer, intent(in), optional | ipert | ||
) |
Definition at line 331 of file em_resp_calc.F90.
integer pure function, public em_resp_calc_oct_m::magn_dir | ( | integer, intent(in) | dir, |
integer, intent(in) | ind | ||
) |
Definition at line 353 of file em_resp_calc.F90.
|
private |
Definition at line 384 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dlr_calc_elf | ( | type(states_elec_t), intent(inout) | st, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(kpoints_t), intent(in) | kpoints, | ||
type(lr_t), intent(inout) | lr, | ||
type(lr_t), intent(inout), optional | lr_m | ||
) |
[in,out] | lr_m | when this argument is present, we are doing dynamical response |
Definition at line 473 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dcalc_polarizability_periodic | ( | class(space_t), intent(in) | space, |
class(mesh_t), intent(in) | mesh, | ||
type(symmetries_t), intent(in) | symm, | ||
type(states_elec_t), intent(in) | st, | ||
type(lr_t), dimension(:,:), intent(inout) | em_lr, | ||
type(lr_t), dimension(:), intent(inout) | kdotp_lr, | ||
integer, intent(in) | nsigma, | ||
complex(real64), dimension(:, :), intent(out) | zpol, | ||
integer, intent(in), optional | ndir, | ||
complex(real64), dimension(:, :, :), intent(out), optional | 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)>)]
[out] | zpol | (spacedim, spacedim) |
Definition at line 715 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dcalc_polarizability_finite | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(lr_t), dimension(:,:), intent(inout) | lr, | ||
integer, intent(in) | nsigma, | ||
class(perturbation_t), intent(inout) | pert, | ||
complex(real64), dimension(1:space%dim, 1:space%dim), intent(out) | zpol, | ||
logical, intent(in), optional | doalldirs, | ||
integer, intent(in), optional | 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
Definition at line 786 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dlr_calc_susceptibility | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(lr_t), dimension(:,:), intent(inout) | lr, | ||
integer, intent(in) | nsigma, | ||
class(perturbation_t), intent(inout) | pert, | ||
complex(real64), dimension(:,:), intent(out) | chi_para, | ||
complex(real64), dimension(:,:), intent(out) | chi_dia | ||
) |
Definition at line 836 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dlr_calc_beta | ( | type(sternheimer_t), intent(inout) | sh, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(xc_t), intent(in) | xc, | ||
type(lr_t), dimension(:,:,:), intent(inout) | em_lr, | ||
class(perturbation_t), intent(inout) | dipole, | ||
complex(real64), dimension(1:space%dim, 1:space%dim, 1:space%dim), intent(out) | beta, | ||
type(lr_t), dimension(:), intent(in), optional | kdotp_lr, | ||
type(lr_t), dimension(:,:,:,:), intent(in), optional | kdotp_em_lr, | ||
logical, intent(in), optional | occ_response, | ||
real(real64), dimension(:,:,:), intent(in), optional | 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.
[in] | kdotp_em_lr | kdotp dir, em dir, sigma, factor |
[in] | occ_response | do the wfns include the occ subspace? occ_response = yes is based on Baroni et al., RMP 73, 515 (2001), eqn 122 occ_response = no is based on Baroni et al., RMP 73, 515 (2001), eqn 123 The occ_response = no version can be used even if the wfns do include the occupied subspace, it is just more efficient to use the other formula. |
[in] | dl_eig | state, kpt, dir |
Definition at line 903 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dpost_orthogonalize | ( | class(space_t), intent(in) | space, |
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_t), intent(in) | st, | ||
integer, intent(in) | nfactor, | ||
integer, intent(in) | nsigma, | ||
real(real64), dimension(:), intent(in) | freq_factor, | ||
real(real64), intent(in) | omega, | ||
real(real64), intent(in) | eta, | ||
type(lr_t), dimension(:,:,:), intent(inout) | em_lr, | ||
type(lr_t), dimension(:,:,:,:), intent(inout) | kdotp_em_lr | ||
) |
[in] | eta | should be zero when wfns are real |
[in,out] | em_lr | em dir, sigma, factor |
[in,out] | kdotp_em_lr | kdotp dir, em dir, sigma, factor |
Definition at line 1235 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dem_resp_calc_eigenvalues | ( | class(space_t), intent(in) | space, |
class(mesh_t), intent(in) | mesh, | ||
type(lattice_vectors_t), intent(in) | latt, | ||
type(states_elec_t), intent(in) | st, | ||
real(real64), dimension(:,:,:), intent(out), contiguous | dl_eig | ||
) |
[out] | dl_eig | (ist, ik, idir) |
Definition at line 1286 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dlr_calc_magneto_optics_finite | ( | type(sternheimer_t), intent(inout) | sh, |
type(sternheimer_t), intent(inout) | sh_mo, | ||
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | nsigma, | ||
integer, intent(in) | nfactor, | ||
type(lr_t), dimension(:,:,:), intent(inout) | lr_e, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_b, | ||
complex(real64), dimension(:,:,:), intent(out), contiguous | chi | ||
) |
Definition at line 1336 of file em_resp_calc.F90.
|
private |
Definition at line 1577 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dlr_calc_magneto_optics_periodic | ( | type(sternheimer_t), intent(inout) | sh, |
type(sternheimer_t), intent(inout) | sh2, | ||
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | nsigma, | ||
integer, intent(in) | nfactor, | ||
integer, intent(in) | nfactor_ke, | ||
real(real64), dimension(:), intent(in) | freq_factor, | ||
type(lr_t), dimension(:,:,:), intent(inout) | lr_e, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_b, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_k, | ||
type(lr_t), dimension(:,:,:,:), intent(inout) | lr_ke, | ||
type(lr_t), dimension(:,:,:), intent(inout) | lr_kb, | ||
complex(real64), intent(in) | frequency, | ||
complex(real64), dimension(:,:,:), intent(inout), contiguous | zpol, | ||
complex(real64), dimension(:,:,:,:), intent(inout), optional, contiguous | zpol_kout | ||
) |
Definition at line 1604 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dlr_calc_magnetization_periodic | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(lr_t), dimension(:), intent(inout) | lr_k, | ||
complex(real64), dimension(:), intent(out), contiguous | magn | ||
) |
Definition at line 2041 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dlr_calc_susceptibility_periodic | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
type(symmetries_t), intent(in) | symm, | ||
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(lr_t), dimension(:), intent(inout) | lr_k, | ||
type(lr_t), dimension(:), intent(inout) | lr_b, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_kk, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_kb, | ||
complex(real64), dimension(:,:), intent(out), contiguous | magn | ||
) |
Definition at line 2106 of file em_resp_calc.F90.
|
private |
Definition at line 2437 of file em_resp_calc.F90.
|
private |
Definition at line 2517 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dinhomog_b | ( | type(sternheimer_t), intent(inout) | sh, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | idir1, | ||
integer, intent(in) | idir2, | ||
type(lr_t), dimension(:), intent(inout) | lr_k1, | ||
type(lr_t), dimension(:), intent(inout) | lr_k2, | ||
real(real64), dimension(:,:,:,:,:), intent(out), contiguous | psi_out | ||
) |
Definition at line 2593 of file em_resp_calc.F90.
|
private |
Definition at line 2661 of file em_resp_calc.F90.
|
private |
Definition at line 2770 of file em_resp_calc.F90.
|
private |
Definition at line 2824 of file em_resp_calc.F90.
|
private |
Definition at line 2845 of file em_resp_calc.F90.
|
private |
Definition at line 2897 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dinhomog_kb_tot | ( | type(sternheimer_t), intent(inout) | sh, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | idir, | ||
integer, intent(in) | idir1, | ||
integer, intent(in) | idir2, | ||
type(lr_t), dimension(:), intent(inout) | lr_k, | ||
type(lr_t), dimension(:), intent(inout) | lr_b, | ||
type(lr_t), dimension(:), intent(inout) | lr_k1, | ||
type(lr_t), dimension(:), intent(inout) | lr_k2, | ||
type(lr_t), dimension(:), intent(inout) | lr_kk1, | ||
type(lr_t), dimension(:), intent(inout) | lr_kk2, | ||
real(real64), dimension(:,:,:,:,:), intent(out), contiguous | psi_out | ||
) |
Definition at line 3015 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dinhomog_ke_tot | ( | type(sternheimer_t), intent(inout) | sh, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | idir, | ||
integer, intent(in) | nsigma, | ||
type(lr_t), dimension(:), intent(inout) | lr_k, | ||
type(lr_t), dimension(:), intent(inout) | lr_e, | ||
type(lr_t), dimension(:), intent(inout) | lr_kk, | ||
real(real64), dimension(:,:,:,:,:), intent(out), contiguous | psi_out | ||
) |
Definition at line 3096 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::dinhomog_k2_tot | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | idir1, | ||
integer, intent(in) | idir2, | ||
type(lr_t), dimension(:), intent(inout) | lr_k1, | ||
type(lr_t), dimension(:), intent(inout) | lr_k2, | ||
real(real64), dimension(:,:,:,:,:), intent(out), contiguous | psi_out | ||
) |
Definition at line 3152 of file em_resp_calc.F90.
|
private |
Definition at line 3188 of file em_resp_calc.F90.
|
private |
Definition at line 3253 of file em_resp_calc.F90.
|
private |
Definition at line 3287 of file em_resp_calc.F90.
|
private |
Multiplication of two blocks of states.
Definition at line 3344 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zlr_calc_elf | ( | type(states_elec_t), intent(inout) | st, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(kpoints_t), intent(in) | kpoints, | ||
type(lr_t), intent(inout) | lr, | ||
type(lr_t), intent(inout), optional | lr_m | ||
) |
[in,out] | lr_m | when this argument is present, we are doing dynamical response |
Definition at line 3449 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zcalc_polarizability_periodic | ( | class(space_t), intent(in) | space, |
class(mesh_t), intent(in) | mesh, | ||
type(symmetries_t), intent(in) | symm, | ||
type(states_elec_t), intent(in) | st, | ||
type(lr_t), dimension(:,:), intent(inout) | em_lr, | ||
type(lr_t), dimension(:), intent(inout) | kdotp_lr, | ||
integer, intent(in) | nsigma, | ||
complex(real64), dimension(:, :), intent(out) | zpol, | ||
integer, intent(in), optional | ndir, | ||
complex(real64), dimension(:, :, :), intent(out), optional | 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)>)]
[out] | zpol | (spacedim, spacedim) |
Definition at line 3691 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zcalc_polarizability_finite | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(lr_t), dimension(:,:), intent(inout) | lr, | ||
integer, intent(in) | nsigma, | ||
class(perturbation_t), intent(inout) | pert, | ||
complex(real64), dimension(1:space%dim, 1:space%dim), intent(out) | zpol, | ||
logical, intent(in), optional | doalldirs, | ||
integer, intent(in), optional | 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
Definition at line 3762 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zlr_calc_susceptibility | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(lr_t), dimension(:,:), intent(inout) | lr, | ||
integer, intent(in) | nsigma, | ||
class(perturbation_t), intent(inout) | pert, | ||
complex(real64), dimension(:,:), intent(out) | chi_para, | ||
complex(real64), dimension(:,:), intent(out) | chi_dia | ||
) |
Definition at line 3812 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zlr_calc_beta | ( | type(sternheimer_t), intent(inout) | sh, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(xc_t), intent(in) | xc, | ||
type(lr_t), dimension(:,:,:), intent(inout) | em_lr, | ||
class(perturbation_t), intent(inout) | dipole, | ||
complex(real64), dimension(1:space%dim, 1:space%dim, 1:space%dim), intent(out) | beta, | ||
type(lr_t), dimension(:), intent(in), optional | kdotp_lr, | ||
type(lr_t), dimension(:,:,:,:), intent(in), optional | kdotp_em_lr, | ||
logical, intent(in), optional | occ_response, | ||
real(real64), dimension(:,:,:), intent(in), optional | 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.
[in] | kdotp_em_lr | kdotp dir, em dir, sigma, factor |
[in] | occ_response | do the wfns include the occ subspace? occ_response = yes is based on Baroni et al., RMP 73, 515 (2001), eqn 122 occ_response = no is based on Baroni et al., RMP 73, 515 (2001), eqn 123 The occ_response = no version can be used even if the wfns do include the occupied subspace, it is just more efficient to use the other formula. |
[in] | dl_eig | state, kpt, dir |
Definition at line 3879 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zpost_orthogonalize | ( | class(space_t), intent(in) | space, |
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_t), intent(in) | st, | ||
integer, intent(in) | nfactor, | ||
integer, intent(in) | nsigma, | ||
real(real64), dimension(:), intent(in) | freq_factor, | ||
real(real64), intent(in) | omega, | ||
real(real64), intent(in) | eta, | ||
type(lr_t), dimension(:,:,:), intent(inout) | em_lr, | ||
type(lr_t), dimension(:,:,:,:), intent(inout) | kdotp_em_lr | ||
) |
[in] | eta | should be zero when wfns are real |
[in,out] | em_lr | em dir, sigma, factor |
[in,out] | kdotp_em_lr | kdotp dir, em dir, sigma, factor |
Definition at line 4211 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zem_resp_calc_eigenvalues | ( | class(space_t), intent(in) | space, |
class(mesh_t), intent(in) | mesh, | ||
type(lattice_vectors_t), intent(in) | latt, | ||
type(states_elec_t), intent(in) | st, | ||
real(real64), dimension(:,:,:), intent(out), contiguous | dl_eig | ||
) |
[out] | dl_eig | (ist, ik, idir) |
Definition at line 4255 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zlr_calc_magneto_optics_finite | ( | type(sternheimer_t), intent(inout) | sh, |
type(sternheimer_t), intent(inout) | sh_mo, | ||
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | nsigma, | ||
integer, intent(in) | nfactor, | ||
type(lr_t), dimension(:,:,:), intent(inout) | lr_e, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_b, | ||
complex(real64), dimension(:,:,:), intent(out), contiguous | chi | ||
) |
Definition at line 4305 of file em_resp_calc.F90.
|
private |
Definition at line 4546 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zlr_calc_magneto_optics_periodic | ( | type(sternheimer_t), intent(inout) | sh, |
type(sternheimer_t), intent(inout) | sh2, | ||
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(inout) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | nsigma, | ||
integer, intent(in) | nfactor, | ||
integer, intent(in) | nfactor_ke, | ||
real(real64), dimension(:), intent(in) | freq_factor, | ||
type(lr_t), dimension(:,:,:), intent(inout) | lr_e, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_b, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_k, | ||
type(lr_t), dimension(:,:,:,:), intent(inout) | lr_ke, | ||
type(lr_t), dimension(:,:,:), intent(inout) | lr_kb, | ||
complex(real64), intent(in) | frequency, | ||
complex(real64), dimension(:,:,:), intent(inout), contiguous | zpol, | ||
complex(real64), dimension(:,:,:,:), intent(inout), optional, contiguous | zpol_kout | ||
) |
Definition at line 4573 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zlr_calc_magnetization_periodic | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(lr_t), dimension(:), intent(inout) | lr_k, | ||
complex(real64), dimension(:), intent(out), contiguous | magn | ||
) |
Definition at line 5010 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zlr_calc_susceptibility_periodic | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
type(symmetries_t), intent(in) | symm, | ||
class(mesh_t), intent(in) | mesh, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(lr_t), dimension(:), intent(inout) | lr_k, | ||
type(lr_t), dimension(:), intent(inout) | lr_b, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_kk, | ||
type(lr_t), dimension(:,:), intent(inout) | lr_kb, | ||
complex(real64), dimension(:,:), intent(out), contiguous | magn | ||
) |
Definition at line 5075 of file em_resp_calc.F90.
|
private |
Definition at line 5406 of file em_resp_calc.F90.
|
private |
Definition at line 5486 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zinhomog_b | ( | type(sternheimer_t), intent(inout) | sh, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | idir1, | ||
integer, intent(in) | idir2, | ||
type(lr_t), dimension(:), intent(inout) | lr_k1, | ||
type(lr_t), dimension(:), intent(inout) | lr_k2, | ||
complex(real64), dimension(:,:,:,:,:), intent(out), contiguous | psi_out | ||
) |
Definition at line 5562 of file em_resp_calc.F90.
|
private |
Definition at line 5630 of file em_resp_calc.F90.
|
private |
Definition at line 5739 of file em_resp_calc.F90.
|
private |
Definition at line 5793 of file em_resp_calc.F90.
|
private |
Definition at line 5814 of file em_resp_calc.F90.
|
private |
Definition at line 5866 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zinhomog_kb_tot | ( | type(sternheimer_t), intent(inout) | sh, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | idir, | ||
integer, intent(in) | idir1, | ||
integer, intent(in) | idir2, | ||
type(lr_t), dimension(:), intent(inout) | lr_k, | ||
type(lr_t), dimension(:), intent(inout) | lr_b, | ||
type(lr_t), dimension(:), intent(inout) | lr_k1, | ||
type(lr_t), dimension(:), intent(inout) | lr_k2, | ||
type(lr_t), dimension(:), intent(inout) | lr_kk1, | ||
type(lr_t), dimension(:), intent(inout) | lr_kk2, | ||
complex(real64), dimension(:,:,:,:,:), intent(out), contiguous | psi_out | ||
) |
Definition at line 5984 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zinhomog_ke_tot | ( | type(sternheimer_t), intent(inout) | sh, |
type(namespace_t), intent(in) | namespace, | ||
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | idir, | ||
integer, intent(in) | nsigma, | ||
type(lr_t), dimension(:), intent(inout) | lr_k, | ||
type(lr_t), dimension(:), intent(inout) | lr_e, | ||
type(lr_t), dimension(:), intent(inout) | lr_kk, | ||
complex(real64), dimension(:,:,:,:,:), intent(out), contiguous | psi_out | ||
) |
Definition at line 6065 of file em_resp_calc.F90.
subroutine, public em_resp_calc_oct_m::zinhomog_k2_tot | ( | type(namespace_t), intent(in) | namespace, |
class(space_t), intent(in) | space, | ||
type(grid_t), intent(in) | gr, | ||
type(states_elec_t), intent(in) | st, | ||
type(hamiltonian_elec_t), intent(in) | hm, | ||
type(ions_t), intent(in) | ions, | ||
integer, intent(in) | idir1, | ||
integer, intent(in) | idir2, | ||
type(lr_t), dimension(:), intent(inout) | lr_k1, | ||
type(lr_t), dimension(:), intent(inout) | lr_k2, | ||
complex(real64), dimension(:,:,:,:,:), intent(out), contiguous | psi_out | ||
) |
Definition at line 6121 of file em_resp_calc.F90.
|
private |
Definition at line 6157 of file em_resp_calc.F90.
|
private |
Definition at line 6222 of file em_resp_calc.F90.
|
private |
Definition at line 6256 of file em_resp_calc.F90.
|
private |
Multiplication of two blocks of states.
Definition at line 6313 of file em_resp_calc.F90.