Documentation for module qs_loc_types

New version of the module for the localization of the molecular orbitals This should be able to use different definition of the spread functional It should also calculate the integrals analytically so that it can be used irrespective of the pw_env and the collocation of wfn on the grids It should also work with a selected set of states, instead than all of them, in this case one should check that the selected states have the same occupation number The spread functional can be only estimated, or also optimized by minimization and in principle also maximization should be available. This operations can be required irrespective of the printing requirements It would be highly desirable to do all this along a MD run every N steps, and have a trajectory of the centeroids of the localized wfn In addition these functions can be used for properties calculations like NMR and XAS. Therefore it is necessary that the rotated wfn are then copied in the mos fm matrix to be available for next use.

source: qs_loc_types.F
Loading...

public Types:

qs_loc_env_new_type
contains all the info needed by quickstep to calculate the spread of a selected set of orbitals and if required to minimize or maximize the spread by rotation of the orbitals
localized_wfn_control_type
A type that holds controling information for the calculation of the spread of wfn and the optimization of the spread functional

public Subroutines/Functions:

...
create the localized_wfn_control_type
release the localized_wfn_control_type
...
...
...
...
...

public Types:

TYPE :: localized_wfn_control_type

A type that holds controling information for the calculation of the spread of wfn and the optimization of the spread functional


INTEGER
:: ref_count ...
INTEGER
:: min_or_max ...
INTEGER
:: localization_method which algorithm is used for the optimization
INTEGER
:: operator_type how the spread is defined
INTEGER,
DIMENSION(2) :: nloc_states number of states on which the spread is computed
INTEGER
:: set_of_states how to choose the states
INTEGER,
DIMENSION(2,2) :: lu_bound_states lower and upper bounds of the set of states print_cubes: print_centers: print_spreads:
INTEGER
:: max_iter ...
INTEGER
:: out_each ...
REAL(dp)
:: eps_localization ...
REAL(dp)
:: max_crazy_angle ...
REAL(dp)
:: crazy_scale ...
REAL(dp)
:: eps_occ ...
REAL(dp),
DIMENSION(2) :: lu_ene_bound ...
LOGICAL
:: crazy_use_diag ...
LOGICAL
:: print_cubes ...
LOGICAL
:: jacobi_fallback ...
LOGICAL
:: print_centers ...
LOGICAL
:: print_spreads ...
LOGICAL
:: do_homo ...
LOGICAL
:: loc_restart ...
LOGICAL
:: use_history ...
INTEGER,
POINTER, DIMENSION(:,:) :: loc_states list of states on which the spread is computed
DIMENSION(2) :: centers_set arrais containing centers and spreads of the selected wfn

TYPE :: qs_loc_env_new_type

contains all the info needed by quickstep to calculate the spread of a selected set of orbitals and if required to minimize or maximize the spread by rotation of the orbitals


INTEGER
:: ref_count ...
LOGICAL
:: molecular_states ...
LOGICAL
:: do_localize ...
LOGICAL
:: first_time ...
LOGICAL
:: wannier_states ...
:: tag_mo ...
POINTER :: para_env info for the distribution of the calculations
DIMENSION(:), POINTER :: moloc_coeff ...
DIMENSION(:,:), POINTER :: op_fm_set set of full matrices used to define the spread operator when the functional has to be defined directly using the products of MOS as in the case of the Pipek-Mezek definition.
POINTER :: local_molecules molecules distributed
TYPE(cell_type),
POINTER :: cell box that contains the system
POINTER :: localized_wfn_control variables and parameter that define the spread functional and the optimization algorithm
DIMENSION(:), POINTER :: particle_set position, type, ao_indexes etc for each atom
DIMENSION(:,:), POINTER :: op_sm_set set of sparse matrices used to define the spread operator when the functional is defined by the use operator acting on the basis functions, e.g. the Berry phase definition The matrix element of the type are computed in initialization of qs_loc_env
REAL(dp)
:: start_time ...
REAL(dp)
:: target_time ...
REAL(dp)
:: weights for a spread defined as extension of the orbitral in the box, these factors renormalize with respect to the box size
INTEGER
:: dim_op ...

SUBROUTINEget_qs_loc_env(qs_loc_env, cell, local_molecules, localized_wfn_control, moloc_coeff, op_sm_set, op_fm_set, para_env, particle_set, weights, dim_op)

...

Arguments:
POINTER
:: qs_loc_env ...
TYPE(cell_type),
OPTIONAL, POINTER
:: cell ...
OPTIONAL, POINTER
:: local_molecules ...
OPTIONAL, POINTER
:: localized_wfn_control ...
OPTIONAL, POINTER
:: moloc_coeff(:) ...
OPTIONAL, POINTER
:: op_sm_set(:,:) ...
OPTIONAL, POINTER
:: op_fm_set(:,:) ...
OPTIONAL, POINTER
:: para_env ...
OPTIONAL, POINTER
:: particle_set(:) ...
REAL(dp),
OPTIONAL
:: weights(6) ...
INTEGER,
OPTIONAL
:: dim_op ...

SUBROUTINElocalized_wfn_control_create(localized_wfn_control)

create the localized_wfn_control_type

Arguments:
POINTER
:: localized_wfn_control ...

SUBROUTINElocalized_wfn_control_release(localized_wfn_control)

release the localized_wfn_control_type

Arguments:
POINTER
:: localized_wfn_control ...

SUBROUTINEqs_loc_env_create(qs_loc_env)

...

Arguments:
POINTER
:: qs_loc_env ...

SUBROUTINEqs_loc_env_destroy(qs_loc_env)

...

Arguments:
POINTER
:: qs_loc_env ...

SUBROUTINEqs_loc_env_release(qs_loc_env)

...

Arguments:
POINTER
:: qs_loc_env ...

SUBROUTINEqs_loc_env_retain(qs_loc_env)

...

Arguments:
POINTER
:: qs_loc_env ...

SUBROUTINEset_qs_loc_env(qs_loc_env, cell, local_molecules, localized_wfn_control, moloc_coeff, op_sm_set, op_fm_set, para_env, particle_set, weights, dim_op)

...

Arguments:
POINTER
:: qs_loc_env ...
TYPE(cell_type),
OPTIONAL, POINTER
:: cell ...
OPTIONAL, POINTER
:: local_molecules ...
OPTIONAL, POINTER
:: localized_wfn_control ...
OPTIONAL, POINTER
:: moloc_coeff(:) ...
OPTIONAL, POINTER
:: op_sm_set(:,:) ...
OPTIONAL, POINTER
:: op_fm_set(:,:) ...
OPTIONAL, POINTER
:: para_env ...
OPTIONAL, POINTER
:: particle_set(:) ...
REAL(dp),
OPTIONAL
:: weights(6) ...
INTEGER,
OPTIONAL
:: dim_op ...