![]() |
(git:b77b4be)
|
Contains ADMM methods which require molecular orbitals. More...
Functions/Subroutines | |
subroutine, public | admm_mo_calc_rho_aux (qs_env) |
... | |
subroutine, public | admm_mo_calc_rho_aux_kp (qs_env) |
... | |
subroutine, public | admm_update_ks_atom (qs_env, calculate_forces) |
Adds the GAPW exchange contribution to the aux_fit ks matrices. | |
subroutine, public | admm_mo_merge_ks_matrix (qs_env) |
... | |
subroutine, public | admm_mo_merge_derivs (ispin, admm_env, mo_set, mo_coeff, mo_coeff_aux_fit, mo_derivs, mo_derivs_aux_fit, matrix_ks_aux_fit) |
... | |
subroutine, public | admm_fit_mo_coeffs (admm_env, matrix_s_aux_fit, matrix_s_mixed, mos, mos_aux_fit, geometry_did_change) |
... | |
subroutine, public | scale_dm (qs_env, rho_ao_orb, scale_back) |
Scale density matrix by gsi(ispin), is needed for force scaling in ADMMP. | |
subroutine, public | calc_admm_mo_derivatives (qs_env, mo_derivs) |
Calculate the derivative of the AUX_FIT mo, based on the ORB mo_derivs. | |
subroutine, public | calc_admm_ovlp_forces (qs_env) |
Calculate the forces due to the AUX/ORB basis overlap in ADMM. | |
subroutine, public | calc_admm_ovlp_forces_kp (qs_env) |
Calculate the forces due to the AUX/ORB basis overlap in ADMM, in the KP case. | |
subroutine, public | admm_projection_derivative (qs_env, matrix_hz, matrix_pz, fval) |
Calculate derivatives terms from overlap matrices. | |
subroutine, public | calc_mixed_overlap_force (qs_env) |
Calculates contribution of forces due to basis transformation. | |
subroutine, public | admm_aux_response_density (qs_env, dm, dm_admm) |
Calculate ADMM auxiliary response density. | |
subroutine, public | kpoint_calc_admm_matrices (qs_env, calculate_forces) |
Fill the ADMM overlp and basis change matrices in the KP env based on the real-space array. | |
Contains ADMM methods which require molecular orbitals.
subroutine, public admm_methods::admm_mo_calc_rho_aux | ( | type(qs_environment_type), pointer | qs_env | ) |
...
qs_env | ... |
Definition at line 148 of file admm_methods.F.
subroutine, public admm_methods::admm_mo_calc_rho_aux_kp | ( | type(qs_environment_type), pointer | qs_env | ) |
...
qs_env | ... |
Definition at line 284 of file admm_methods.F.
subroutine, public admm_methods::admm_update_ks_atom | ( | type(qs_environment_type), pointer | qs_env, |
logical, intent(in) | calculate_forces | ||
) |
Adds the GAPW exchange contribution to the aux_fit ks matrices.
qs_env | ... |
calculate_forces | ... |
Definition at line 714 of file admm_methods.F.
subroutine, public admm_methods::admm_mo_merge_ks_matrix | ( | type(qs_environment_type), pointer | qs_env | ) |
...
qs_env | ... |
Definition at line 777 of file admm_methods.F.
subroutine, public admm_methods::admm_mo_merge_derivs | ( | integer, intent(in) | ispin, |
type(admm_type), pointer | admm_env, | ||
type(mo_set_type), intent(in) | mo_set, | ||
type(cp_fm_type), intent(in) | mo_coeff, | ||
type(cp_fm_type), intent(in) | mo_coeff_aux_fit, | ||
type(cp_fm_type), dimension(:), intent(in) | mo_derivs, | ||
type(cp_fm_type), dimension(:), intent(in) | mo_derivs_aux_fit, | ||
type(dbcsr_p_type), dimension(:), pointer | matrix_ks_aux_fit | ||
) |
...
ispin | ... |
admm_env | ... |
mo_set | ... |
mo_coeff | ... |
mo_coeff_aux_fit | ... |
mo_derivs | ... |
mo_derivs_aux_fit | ... |
matrix_ks_aux_fit | ... |
Definition at line 826 of file admm_methods.F.
subroutine, public admm_methods::admm_fit_mo_coeffs | ( | type(admm_type), pointer | admm_env, |
type(dbcsr_p_type), dimension(:), pointer | matrix_s_aux_fit, | ||
type(dbcsr_p_type), dimension(:), pointer | matrix_s_mixed, | ||
type(mo_set_type), dimension(:), intent(in) | mos, | ||
type(mo_set_type), dimension(:), intent(in) | mos_aux_fit, | ||
logical, intent(in) | geometry_did_change | ||
) |
...
admm_env | ... |
matrix_s_aux_fit | ... |
matrix_s_mixed | ... |
mos | ... |
mos_aux_fit | ... |
geometry_did_change | ... |
Definition at line 868 of file admm_methods.F.
subroutine, public admm_methods::scale_dm | ( | type(qs_environment_type), pointer | qs_env, |
type(dbcsr_p_type), dimension(:, :), pointer | rho_ao_orb, | ||
logical, intent(in) | scale_back | ||
) |
Scale density matrix by gsi(ispin), is needed for force scaling in ADMMP.
qs_env | ... |
rho_ao_orb | ... |
scale_back | ... |
Definition at line 2531 of file admm_methods.F.
subroutine, public admm_methods::calc_admm_mo_derivatives | ( | type(qs_environment_type), pointer | qs_env, |
type(dbcsr_p_type), dimension(:), pointer | mo_derivs | ||
) |
Calculate the derivative of the AUX_FIT mo, based on the ORB mo_derivs.
qs_env | ... |
mo_derivs | the MO derivatives in the orbital basis |
Definition at line 2708 of file admm_methods.F.
subroutine, public admm_methods::calc_admm_ovlp_forces | ( | type(qs_environment_type), pointer | qs_env | ) |
Calculate the forces due to the AUX/ORB basis overlap in ADMM.
qs_env | ... |
Definition at line 2753 of file admm_methods.F.
subroutine, public admm_methods::calc_admm_ovlp_forces_kp | ( | type(qs_environment_type), pointer | qs_env | ) |
Calculate the forces due to the AUX/ORB basis overlap in ADMM, in the KP case.
qs_env | ... |
Definition at line 2794 of file admm_methods.F.
subroutine, public admm_methods::admm_projection_derivative | ( | type(qs_environment_type), pointer | qs_env, |
type(dbcsr_p_type), dimension(:), intent(in) | matrix_hz, | ||
type(dbcsr_p_type), dimension(:), intent(in) | matrix_pz, | ||
real(kind=dp), intent(in), optional | fval | ||
) |
Calculate derivatives terms from overlap matrices.
qs_env | ... |
matrix_hz | Fock matrix part using the response density in admm basis |
matrix_pz | response density in orbital basis |
fval | ... |
Definition at line 3238 of file admm_methods.F.
subroutine, public admm_methods::calc_mixed_overlap_force | ( | type(qs_environment_type), pointer | qs_env | ) |
Calculates contribution of forces due to basis transformation.
dE/dR = dE/dC'*dC'/dR dE/dC = Ks'*c'*occ = H' dC'/dR = - tr(A*lambda^(-1/2)*H'^(T)*S^(-1) * dS'/dR) - tr(A*C*Y^(T)*C^(T)*Q^(T)*A^(T) * dS'/dR) + tr(C*lambda^(-1/2)*H'^(T)*S^(-1) * dQ/dR) + tr(A*C*Y^(T)*c^(T) * dQ/dR) + tr(C*Y^(T)*C^(T)*A^(T) * dQ/dR) where A = S'^(-1)*Q lambda = C^(T)*B*C B = Q^(T)*A Y = R*[ (R^(T)*C^(T)*A^(T)*H'*R) xx M ]*R^(T) lambda = R*D*R^(T) Mij = Poles-Matrix (see above) xx = schur product
qs_env | the QS environment |
Definition at line 3356 of file admm_methods.F.
subroutine, public admm_methods::admm_aux_response_density | ( | type(qs_environment_type), intent(in), pointer | qs_env, |
type(dbcsr_p_type), dimension(:), intent(in) | dm, | ||
type(dbcsr_p_type), dimension(:), intent(inout) | dm_admm | ||
) |
Calculate ADMM auxiliary response density.
qs_env | ... |
dm | ... |
dm_admm | ... |
Definition at line 3815 of file admm_methods.F.
subroutine, public admm_methods::kpoint_calc_admm_matrices | ( | type(qs_environment_type), pointer | qs_env, |
logical | calculate_forces | ||
) |
Fill the ADMM overlp and basis change matrices in the KP env based on the real-space array.
qs_env | ... |
calculate_forces | ... |
Definition at line 3858 of file admm_methods.F.