![]() |
(git:b77b4be)
|
Driver for the localization that should be general for all the methods available and all the definition of the spread functional Write centers, spread and cubes only if required and for the selected states The localized functions are copied in the standard mos array for the next use. More...
Functions/Subroutines | |
subroutine, public | optimize_loc_berry (method, qs_loc_env, vectors, op_sm_set, zij_fm_set, para_env, cell, weights, ispin, print_loc_section, restricted, nextra, nmo, vectors_2, guess_mos) |
Calculate and optimize the spread functional as calculated from the selected mos and by the definition using the berry phase as given by silvestrelli et al If required the centers and the spreads for each mos selected are calculated from z_ij and printed to file. The centers files is appended if already exists. | |
subroutine, public | optimize_loc_pipek (qs_env, method, qs_loc_env, vectors, zij_fm_set, ispin, print_loc_section) |
... | |
subroutine, public | jacobi_rotation_pipek (zij_fm_set, vectors, sweeps) |
2by2 rotation for the pipek operator in this case the z_ij numbers are reals | |
subroutine, public | centers_spreads_berry (qs_loc_env, zij, nmoloc, cell, weights, ispin, print_loc_section, only_initial_out) |
... | |
subroutine, public | qs_print_cubes (qs_env, mo_coeff, nstates, state_list, centers, print_key, root, ispin, idir, state0, file_position) |
write the cube files for a set of selected states | |
subroutine, public | centers_second_moments_loc (qs_env, qs_loc_env, print_loc_section, ispin) |
Compute the second moments of the centers using the local (non-periodic) pos operators. | |
subroutine, public | centers_second_moments_berry (qs_env, qs_loc_env, print_loc_section, ispin) |
Compute the second moments of the centers using a periodic quadrupole operator. | |
Driver for the localization that should be general for all the methods available and all the definition of the spread functional Write centers, spread and cubes only if required and for the selected states The localized functions are copied in the standard mos array for the next use.
subroutine, public qs_loc_methods::optimize_loc_berry | ( | integer, intent(in) | method, |
type(qs_loc_env_type), pointer | qs_loc_env, | ||
type(cp_fm_type), intent(in) | vectors, | ||
type(dbcsr_p_type), dimension(:, :), pointer | op_sm_set, | ||
type(cp_fm_type), dimension(:, :), intent(in) | zij_fm_set, | ||
type(mp_para_env_type), pointer | para_env, | ||
type(cell_type), pointer | cell, | ||
real(dp), dimension(:) | weights, | ||
integer, intent(in) | ispin, | ||
type(section_vals_type), pointer | print_loc_section, | ||
integer | restricted, | ||
integer, intent(in), optional | nextra, | ||
integer, intent(in), optional | nmo, | ||
type(cp_fm_type), intent(in), optional | vectors_2, | ||
type(cp_fm_type), intent(in), optional | guess_mos | ||
) |
Calculate and optimize the spread functional as calculated from the selected mos and by the definition using the berry phase as given by silvestrelli et al If required the centers and the spreads for each mos selected are calculated from z_ij and printed to file. The centers files is appended if already exists.
method | indicates localization algorithm |
qs_loc_env | new environment for the localization calculations |
vectors | selected mos to be localized |
op_sm_set | sparse matrices containing the integrals of the kind <mi e{iGr} nu> |
zij_fm_set | set of full matrix of size nmoloc x nmoloc, will contain the z_ij numbers as defined by Silvestrelli et al |
para_env | ... |
cell | ... |
weights | ... |
ispin | ... |
print_loc_section | ... |
restricted | ... |
nextra | ... |
nmo | ... |
vectors_2 | ... |
guess_mos | ... |
Definition at line 158 of file qs_loc_methods.F.
subroutine, public qs_loc_methods::optimize_loc_pipek | ( | type(qs_environment_type), pointer | qs_env, |
integer, intent(in) | method, | ||
type(qs_loc_env_type), pointer | qs_loc_env, | ||
type(cp_fm_type), intent(in) | vectors, | ||
type(cp_fm_type), dimension(:, :), intent(in) | zij_fm_set, | ||
integer, intent(in) | ispin, | ||
type(section_vals_type), pointer | print_loc_section | ||
) |
...
qs_env | ... |
method | ... |
qs_loc_env | ... |
vectors | ... |
zij_fm_set | ... |
ispin | ... |
print_loc_section | ... |
Definition at line 320 of file qs_loc_methods.F.
subroutine, public qs_loc_methods::jacobi_rotation_pipek | ( | type(cp_fm_type), dimension(:, :), intent(in) | zij_fm_set, |
type(cp_fm_type), intent(in) | vectors, | ||
integer | sweeps | ||
) |
2by2 rotation for the pipek operator in this case the z_ij numbers are reals
zij_fm_set | ... |
vectors | ... |
sweeps | ... |
Definition at line 441 of file qs_loc_methods.F.
subroutine, public qs_loc_methods::centers_spreads_berry | ( | type(qs_loc_env_type), pointer | qs_loc_env, |
type(cp_fm_type), dimension(:, :), intent(in) | zij, | ||
integer, intent(in) | nmoloc, | ||
type(cell_type), pointer | cell, | ||
real(dp), dimension(:) | weights, | ||
integer, intent(in) | ispin, | ||
type(section_vals_type), pointer | print_loc_section, | ||
logical, intent(in), optional | only_initial_out | ||
) |
...
qs_loc_env | ... |
zij | ... |
nmoloc | ... |
cell | ... |
weights | ... |
ispin | ... |
print_loc_section | ... |
only_initial_out | ... |
Definition at line 576 of file qs_loc_methods.F.
subroutine, public qs_loc_methods::qs_print_cubes | ( | type(qs_environment_type), pointer | qs_env, |
type(cp_fm_type), intent(in) | mo_coeff, | ||
integer, intent(in) | nstates, | ||
integer, dimension(:), pointer | state_list, | ||
real(dp), dimension(:, :), pointer | centers, | ||
type(section_vals_type), pointer | print_key, | ||
character(len=*) | root, | ||
integer, intent(in), optional | ispin, | ||
integer, intent(in), optional | idir, | ||
integer, optional | state0, | ||
character(len=default_string_length), optional | file_position | ||
) |
write the cube files for a set of selected states
qs_env | ... |
mo_coeff | set mos from which the states to be printed are extracted |
nstates | number of states to be printed |
state_list | list of the indexes of the states to be printed |
centers | centers and spread, all=0 if they hva not been calculated |
print_key | ... |
root | initial part of the cube file names |
ispin | ... |
idir | ... |
state0 | ... |
file_position | ... |
Definition at line 784 of file qs_loc_methods.F.
subroutine, public qs_loc_methods::centers_second_moments_loc | ( | type(qs_environment_type), pointer | qs_env, |
type(qs_loc_env_type), pointer | qs_loc_env, | ||
type(section_vals_type), pointer | print_loc_section, | ||
integer, intent(in) | ispin | ||
) |
Compute the second moments of the centers using the local (non-periodic) pos operators.
qs_env | ... |
qs_loc_env | ... |
print_loc_section | ... |
ispin | ... |
Definition at line 1043 of file qs_loc_methods.F.
subroutine, public qs_loc_methods::centers_second_moments_berry | ( | type(qs_environment_type), pointer | qs_env, |
type(qs_loc_env_type), pointer | qs_loc_env, | ||
type(section_vals_type), pointer | print_loc_section, | ||
integer, intent(in) | ispin | ||
) |
Compute the second moments of the centers using a periodic quadrupole operator.
c.f. Wheeler et al. PRB 100 245135 2019, and Kang et al. PRB 100 245134 2019
The calculation is based on a Taylor expansion of the exp(i k_i r_i r_j k_j) operator to
to first order in the cosine and the sine parts
qs_env | ... |
qs_loc_env | ... |
print_loc_section | ... |
ispin | ... |
Definition at line 1187 of file qs_loc_methods.F.