(git:6a2e663)
qs_loc_methods Module Reference

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. More...
 
subroutine, public optimize_loc_pipek (qs_env, method, qs_loc_env, vectors, zij_fm_set, ispin, print_loc_section)
 ... More...
 
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 More...
 
subroutine, public centers_spreads_berry (qs_loc_env, zij, nmoloc, cell, weights, ispin, print_loc_section, only_initial_out)
 ... More...
 
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 More...
 
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. More...
 
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. More...
 

Detailed Description

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.

History
01.2008 Teodoro Laino [tlaino] - University of Zurich
  • Merging the two localization codes and updating to new structures
Author
MI (04.2005)

Function/Subroutine Documentation

◆ optimize_loc_berry()

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.

Parameters
methodindicates localization algorithm
qs_loc_envnew environment for the localization calculations
vectorsselected mos to be localized
op_sm_setsparse matrices containing the integrals of the kind <mi e{iGr} nu>
zij_fm_setset 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...
History
04.2005 created [MI]
Author
MI
Note
This definition need the use of complex numbers, therefore the optimization routines are specific for this case The file for the centers and the spreads have a xyz format

Definition at line 158 of file qs_loc_methods.F.

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

◆ optimize_loc_pipek()

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 
)

...

Parameters
qs_env...
method...
qs_loc_env...
vectors...
zij_fm_set...
ispin...
print_loc_section...
History
04.2005 created [MI]
Author
MI

Definition at line 318 of file qs_loc_methods.F.

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

◆ jacobi_rotation_pipek()

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

Parameters
zij_fm_set...
vectors...
sweeps...
History
05-2005 created
Author
MI

Definition at line 439 of file qs_loc_methods.F.

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

◆ centers_spreads_berry()

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 
)

...

Parameters
qs_loc_env...
zij...
nmoloc...
cell...
weights...
ispin...
print_loc_section...
only_initial_out...
History
04.2005 created [MI]
Author
MI

Definition at line 574 of file qs_loc_methods.F.

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

◆ qs_print_cubes()

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

Parameters
qs_env...
mo_coeffset mos from which the states to be printed are extracted
nstatesnumber of states to be printed
state_listlist of the indexes of the states to be printed
centerscenters and spread, all=0 if they hva not been calculated
print_key...
rootinitial part of the cube file names
ispin...
idir...
state0...
file_position...
History
08.2005 created [MI]
Author
MI
Note
This routine should not be in this module

Definition at line 782 of file qs_loc_methods.F.

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

◆ centers_second_moments_loc()

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.

Parameters
qs_env...
qs_loc_env...
print_loc_section...
ispin...
History
07.2020 created [H. Elgabarty]
Author
Hossam Elgabarty

Definition at line 1041 of file qs_loc_methods.F.

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

◆ centers_second_moments_berry()

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

Parameters
qs_env...
qs_loc_env...
print_loc_section...
ispin...
History
08.2020 created [H. Elgabarty]
Author
Hossam Elgabarty

Definition at line 1185 of file qs_loc_methods.F.

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