(git:6a2e663)
|
Utility functions for the perturbation calculations. More...
Functions/Subroutines | |
subroutine, public | p_env_create (p_env, qs_env, p1_option, p1_admm_option, orthogonal_orbitals, linres_control) |
allocates and initializes the perturbation environment (no setup) More... | |
subroutine, public | p_env_check_i_alloc (p_env, qs_env) |
checks that the intenal storage is allocated, and allocs it if needed More... | |
subroutine, public | p_env_update_rho (p_env, qs_env) |
... More... | |
subroutine, public | p_env_psi0_changed (p_env, qs_env) |
To be called after the value of psi0 has changed. Recalculates the quantities S_psi0 and m_epsilon. More... | |
subroutine, public | p_op_l1 (p_env, qs_env, v, res) |
Evaluates Fv (S_mo)^-1 - Sv(epsilon) and stores it in res. More... | |
subroutine, public | p_op_l2 (p_env, qs_env, p1, res, alpha, beta) |
evaluates res = alpha kpp1(v)*psi0 + beta res with kpp1 evaluated with p=qs_envrhorho_ao, p1=p1 More... | |
subroutine, public | p_preortho (p_env, qs_env, v, n_cols) |
does a preorthogonalization of the given matrix: v = (I-PS)v More... | |
subroutine, public | p_postortho (p_env, qs_env, v, n_cols) |
does a postorthogonalization on the given matrix vector: v = (I-SP) v More... | |
subroutine, public | p_env_finish_kpp1 (qs_env, p_env) |
... More... | |
Utility functions for the perturbation calculations.
subroutine, public qs_p_env_methods::p_env_create | ( | type(qs_p_env_type) | p_env, |
type(qs_environment_type), pointer | qs_env, | ||
type(dbcsr_p_type), dimension(:), optional, pointer | p1_option, | ||
type(dbcsr_p_type), dimension(:), optional, pointer | p1_admm_option, | ||
logical, intent(in), optional | orthogonal_orbitals, | ||
type(linres_control_type), optional, pointer | linres_control | ||
) |
allocates and initializes the perturbation environment (no setup)
p_env | the environment to initialize |
qs_env | the qs_environment for the system |
p1_option | ... |
p1_admm_option | ... |
orthogonal_orbitals | if the orbitals are orthogonal |
linres_control | ... |
Definition at line 131 of file qs_p_env_methods.F.
subroutine, public qs_p_env_methods::p_env_check_i_alloc | ( | type(qs_p_env_type) | p_env, |
type(qs_environment_type), pointer | qs_env | ||
) |
checks that the intenal storage is allocated, and allocs it if needed
p_env | the environment to check |
qs_env | the qs environment this p_env lives in |
Definition at line 316 of file qs_p_env_methods.F.
subroutine, public qs_p_env_methods::p_env_update_rho | ( | type(qs_p_env_type), intent(in) | p_env, |
type(qs_environment_type), intent(in), pointer | qs_env | ||
) |
...
p_env | ... |
qs_env | ... |
Definition at line 397 of file qs_p_env_methods.F.
subroutine, public qs_p_env_methods::p_env_psi0_changed | ( | type(qs_p_env_type) | p_env, |
type(qs_environment_type), pointer | qs_env | ||
) |
To be called after the value of psi0 has changed. Recalculates the quantities S_psi0 and m_epsilon.
p_env | the perturbation environment to set |
qs_env | ... |
Definition at line 481 of file qs_p_env_methods.F.
subroutine, public qs_p_env_methods::p_op_l1 | ( | type(qs_p_env_type) | p_env, |
type(qs_environment_type), pointer | qs_env, | ||
type(cp_fm_type), dimension(:), intent(in) | v, | ||
type(cp_fm_type), dimension(:), intent(inout) | res | ||
) |
Evaluates Fv (S_mo)^-1 - Sv(epsilon) and stores it in res.
p_env | perturbation calculation environment |
qs_env | the qs_env that is perturbed by this p_env |
v | the matrix to operate on |
res | the result |
Definition at line 679 of file qs_p_env_methods.F.
subroutine, public qs_p_env_methods::p_op_l2 | ( | type(qs_p_env_type) | p_env, |
type(qs_environment_type), pointer | qs_env, | ||
type(dbcsr_p_type), dimension(:), pointer | p1, | ||
type(cp_fm_type), dimension(:), intent(inout) | res, | ||
real(kind=dp), intent(in), optional | alpha, | ||
real(kind=dp), intent(in), optional | beta | ||
) |
evaluates res = alpha kpp1(v)*psi0 + beta res with kpp1 evaluated with p=qs_envrhorho_ao, p1=p1
p_env | the perturbation environment |
qs_env | the qs_env that is perturbed by this p_env |
p1 | direction in which evaluate the second derivative |
res | place where to store the result |
alpha | scale factor of the result (defaults to 1.0) |
beta | scale factor of the old values (defaults to 0.0) |
Definition at line 784 of file qs_p_env_methods.F.
subroutine, public qs_p_env_methods::p_preortho | ( | type(qs_p_env_type) | p_env, |
type(qs_environment_type), pointer | qs_env, | ||
type(cp_fm_type), dimension(:), intent(inout) | v, | ||
integer, dimension(:), intent(in), optional | n_cols | ||
) |
does a preorthogonalization of the given matrix: v = (I-PS)v
p_env | the perturbation environment |
qs_env | the qs_env that is perturbed by this p_env |
v | matrix to orthogonalize |
n_cols | the number of columns of C to multiply (defaults to size(v,2)) |
Definition at line 865 of file qs_p_env_methods.F.
subroutine, public qs_p_env_methods::p_postortho | ( | type(qs_p_env_type) | p_env, |
type(qs_environment_type), pointer | qs_env, | ||
type(cp_fm_type), dimension(:), intent(inout) | v, | ||
integer, dimension(:), intent(in), optional | n_cols | ||
) |
does a postorthogonalization on the given matrix vector: v = (I-SP) v
p_env | the perturbation environment |
qs_env | the qs_env that is perturbed by this p_env |
v | matrix to orthogonalize |
n_cols | the number of columns of C to multiply (defaults to size(v,2)) |
Definition at line 957 of file qs_p_env_methods.F.
subroutine, public qs_p_env_methods::p_env_finish_kpp1 | ( | type(qs_environment_type), intent(in), pointer | qs_env, |
type(qs_p_env_type), intent(in) | p_env | ||
) |
...
qs_env | ... |
p_env | ... |
Definition at line 1043 of file qs_p_env_methods.F.