(git:62906da)
Loading...
Searching...
No Matches
qs_tddfpt2_operators Module Reference

Functions/Subroutines

subroutine, public tddfpt_apply_energy_diff (aop_evects, evects, s_evects, gs_mos, matrix_ks, tddfpt_control)
 Apply orbital energy difference term: Aop_evects(spin,state) += KS(spin) * evects(spin,state) - S * evects(spin,state) * diag(evals_occ(spin)).
subroutine, public tddfpt_apply_coulomb (a_ia_rspace, rho_ia_g, local_rho_set, hartree_local, qs_env, sub_env, gapw, work_v_gspace, work_v_rspace, tddfpt_mgrid)
 Update v_rspace by adding coulomb term.
subroutine, public tddfpt_apply_xc_potential (a_ia_rspace, fxc_rspace, rho_ia_struct, is_rks_triplets)
 Routine for applying fxc potential.
subroutine, public tddfpt_apply_hfx (aop_evects, evects, gs_mos, do_admm, qs_env, work_rho_ia_ao_symm, work_hmat_symm, work_rho_ia_ao_asymm, work_hmat_asymm, wfm_rho_orb)
 Update action of TDDFPT operator on trial vectors by adding exact-exchange term.
subroutine, public tddfpt_apply_hfxsr_kernel (aop_evects, evects, gs_mos, qs_env, admm_env, hfx_section, x_data, symmetry, recalc_integrals, work_rho_ia_ao, work_hmat, wfm_rho_orb)
 Update action of TDDFPT operator on trial vectors by adding exact-exchange term.
subroutine, public tddfpt_apply_hfxlr_kernel (qs_env, sub_env, rcut, hfx_scale, work, x, res)
 ...Calculate the HFXLR kernel contribution by contracting the Lowdin MO coefficients – transition charges with the exchange-type integrals using the sTDA approximation

Function/Subroutine Documentation

◆ tddfpt_apply_energy_diff()

subroutine, public qs_tddfpt2_operators::tddfpt_apply_energy_diff ( type(cp_fm_type), dimension(:, :), intent(inout) aop_evects,
type(cp_fm_type), dimension(:, :), intent(in) evects,
type(cp_fm_type), dimension(:, :), intent(in) s_evects,
type(tddfpt_ground_state_mos), dimension(:), intent(in) gs_mos,
type(dbcsr_p_type), dimension(:), intent(in) matrix_ks,
type(tddfpt2_control_type), intent(in), pointer tddfpt_control )

Apply orbital energy difference term: Aop_evects(spin,state) += KS(spin) * evects(spin,state) - S * evects(spin,state) * diag(evals_occ(spin)).

Parameters
Aop_evectsaction of TDDFPT operator on trial vectors (modified on exit)
evectstrial vectors C_{1,i}
S_evectsS * C_{1,i}
gs_mosmolecular orbitals optimised for the ground state (only occupied orbital energies [component evals_occ] are needed)
matrix_ksKohn-Sham matrix
tddfpt_control...
History
  • 05.2016 initialise all matrix elements in one go [Sergey Chulkov]
  • 03.2017 renamed from tddfpt_init_energy_diff(), altered prototype [Sergey Chulkov]
Note
Based on the subroutine p_op_l1() which was originally created by Thomas Chassaing on 08.2002.

Definition at line 100 of file qs_tddfpt2_operators.F.

Here is the call graph for this function:

◆ tddfpt_apply_coulomb()

subroutine, public qs_tddfpt2_operators::tddfpt_apply_coulomb ( type(pw_r3d_rs_type), dimension(:), intent(inout) a_ia_rspace,
type(pw_c1d_gs_type), intent(inout) rho_ia_g,
type(local_rho_type), pointer local_rho_set,
type(hartree_local_type), pointer hartree_local,
type(qs_environment_type), pointer qs_env,
type(tddfpt_subgroup_env_type), intent(in) sub_env,
logical, intent(in) gapw,
type(pw_c1d_gs_type), intent(inout) work_v_gspace,
type(pw_r3d_rs_type), intent(inout) work_v_rspace,
logical, intent(in) tddfpt_mgrid )

Update v_rspace by adding coulomb term.

Parameters
A_ia_rspaceaction of TDDFPT operator on the trial vector expressed in a plane wave representation (modified on exit)
rho_ia_gresponse density in reciprocal space for the given trial vector
local_rho_set...
hartree_local...
qs_env...
sub_envthe full sub_environment needed for calculation
gapwFlag indicating GAPW cacluation
work_v_gspacework reciprocal-space grid to store Coulomb potential (modified on exit)
work_v_rspacework real-space grid to store Coulomb potential (modified on exit)
tddfpt_mgrid...
History
  • 05.2016 compute all coulomb terms in one go [Sergey Chulkov]
  • 03.2017 proceed excited states sequentially; minimise the number of conversions between DBCSR and FM matrices [Sergey Chulkov]
  • 06.2018 return the action expressed in the plane wave representation instead of the one in the atomic basis set representation
Note
Based on the subroutine kpp1_calc_k_p_p1() which was originally created by Mohamed Fawzi on 10.2002.

Definition at line 185 of file qs_tddfpt2_operators.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tddfpt_apply_xc_potential()

subroutine, public qs_tddfpt2_operators::tddfpt_apply_xc_potential ( type(pw_r3d_rs_type), dimension(:), intent(inout) a_ia_rspace,
type(pw_r3d_rs_type), dimension(:), pointer fxc_rspace,
type(qs_rho_type), pointer rho_ia_struct,
logical, intent(in) is_rks_triplets )

Routine for applying fxc potential.

Parameters
A_ia_rspaceaction of TDDFPT operator on trial vectors expressed in a plane wave representation (modified on exit)
fxc_rspace...
rho_ia_structresponse density for the given trial vector
is_rks_triplets...

Definition at line 276 of file qs_tddfpt2_operators.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tddfpt_apply_hfx()

subroutine, public qs_tddfpt2_operators::tddfpt_apply_hfx ( type(cp_fm_type), dimension(:, :), intent(inout) aop_evects,
type(cp_fm_type), dimension(:, :), intent(in) evects,
type(tddfpt_ground_state_mos), dimension(:), intent(in) gs_mos,
logical, intent(in) do_admm,
type(qs_environment_type), pointer qs_env,
type(dbcsr_p_type), dimension(:), intent(inout) work_rho_ia_ao_symm,
type(dbcsr_p_type), dimension(:), intent(inout), target work_hmat_symm,
type(dbcsr_p_type), dimension(:), intent(inout) work_rho_ia_ao_asymm,
type(dbcsr_p_type), dimension(:), intent(inout), target work_hmat_asymm,
type(cp_fm_type), intent(in) wfm_rho_orb )

Update action of TDDFPT operator on trial vectors by adding exact-exchange term.

Parameters
Aop_evectsaction of TDDFPT operator on trial vectors (modified on exit)
evectstrial vectors
gs_mosmolecular orbitals optimised for the ground state (only occupied molecular orbitals [component mos_occ] are needed)
do_admmperform auxiliary density matrix method calculations
qs_envQuickstep environment
work_rho_ia_ao_symm...
work_hmat_symm...
work_rho_ia_ao_asymm...
work_hmat_asymm...
wfm_rho_orb...
History
  • 05.2016 compute all exact-exchange terms in one go [Sergey Chulkov]
  • 03.2017 code related to ADMM correction is now moved to tddfpt_apply_admm_correction() in order to compute this correction within parallel groups [Sergey Chulkov]
Note
Based on the subroutine kpp1_calc_k_p_p1() which was originally created by Mohamed Fawzi on 10.2002.

Definition at line 328 of file qs_tddfpt2_operators.F.

Here is the call graph for this function:

◆ tddfpt_apply_hfxsr_kernel()

subroutine, public qs_tddfpt2_operators::tddfpt_apply_hfxsr_kernel ( type(cp_fm_type), dimension(:, :), intent(in) aop_evects,
type(cp_fm_type), dimension(:, :), intent(in) evects,
type(tddfpt_ground_state_mos), dimension(:), intent(in) gs_mos,
type(qs_environment_type), pointer qs_env,
type(admm_type), pointer admm_env,
type(section_vals_type), pointer hfx_section,
type(hfx_type), dimension(:, :), pointer x_data,
integer, intent(in) symmetry,
logical, intent(in) recalc_integrals,
type(dbcsr_p_type), dimension(:), intent(inout) work_rho_ia_ao,
type(dbcsr_p_type), dimension(:), intent(inout), target work_hmat,
type(cp_fm_type), intent(in) wfm_rho_orb )

Update action of TDDFPT operator on trial vectors by adding exact-exchange term.

Parameters
Aop_evectsaction of TDDFPT operator on trial vectors (modified on exit)
evectstrial vectors
gs_mosmolecular orbitals optimised for the ground state (only occupied molecular orbitals [component mos_occ] are needed)
qs_envQuickstep environment
admm_env...
hfx_section...
x_data...
symmetry...
recalc_integrals...
work_rho_ia_ao...
work_hmat...
wfm_rho_orb...

Definition at line 495 of file qs_tddfpt2_operators.F.

Here is the call graph for this function:

◆ tddfpt_apply_hfxlr_kernel()

subroutine, public qs_tddfpt2_operators::tddfpt_apply_hfxlr_kernel ( type(qs_environment_type), pointer qs_env,
type(tddfpt_subgroup_env_type) sub_env,
real(kind=dp), intent(in) rcut,
real(kind=dp), intent(in) hfx_scale,
type(tddfpt_work_matrices) work,
type(cp_fm_type), dimension(:), intent(in) x,
type(cp_fm_type), dimension(:), intent(inout) res )

...Calculate the HFXLR kernel contribution by contracting the Lowdin MO coefficients – transition charges with the exchange-type integrals using the sTDA approximation

Parameters
qs_env...
sub_env...
rcut...
hfx_scale...
work...
X...
res... vector AX with A being the sTDA matrix and X the Davidson trial vector of the eigenvalue problem A*X = omega*X

Definition at line 579 of file qs_tddfpt2_operators.F.

Here is the call graph for this function:
Here is the caller graph for this function: