Cartesius Library
valence_approximation Module Reference

Module with functions used to extract semi-empirical parameters from the databases collected in the 'ValenceApproximation' module. More...

Data Types

type  user_atom_par
 Auxiliary type used to allow the User to provide custom parameters for a given atom (e.g. core charge). More...
 
type  user_orbital_par
 Auxiliary type used to allow the User to provide custom parameters for a given orbital (e.g. orbital exponents). More...
 
type  user_resonance_par
 Auxiliary type used to allow the User of our software to provide custom resonance parameters. More...
 
type  user_sc_par
 Auxiliary type used to allow the User to provide custom Slater-Condon parameters F^{k}_{n1 l1; n2 l2} for a given atom. More...
 

Functions/Subroutines

subroutine set_custom_resonance_from_file (io, filename)
 Reads section of the text file with the User defined resonance parameters and saves it in a public array "user_custom_resonance", which can then be accessed by subroutines calculating integrals. More...
 
subroutine set_custom_sto_exponents_from_file (io, filename)
 Reads section of the text file with the User defined STO exponents and saves it in a public array "user_custom_sto_exponents", which can then be accessed by subroutines of this module. More...
 
subroutine set_custom_core_attractions_from_file (io, filename)
 Reads section of the text file with the User defined core attractions and saves it in a public array "user_custom_core_attractions", which can then be accessed by subroutines of this module. More...
 
subroutine set_custom_core_charges_from_file (io, filename)
 Reads section of the text file with the User defined core charges and saves it in a public array "user_custom_core_charges", which can then be accessed by subroutines of this module. More...
 
subroutine set_custom_slater_condon_from_file (io, filename)
 Reads section of the text file with the User defined Slater-Condon parameters and saves them in a public array "user_custom_slater_condon", which can then be accessed by subroutines of this module. More...
 
subroutine set_dsk_rho_from_slater_condon ()
 Extracts MNDO/m DSK \(\rho\) parameters from equations in the one-center limit. More...
 
real function corecharge (atom)
 Returns semiempirical core charge from the database for the given atom depending on parameterization. Public varialbe "parametrization" must be defined for this function to work properly. More...
 
real function slaterexponent (someOrbital)
 Returns semiempirical Slater exponent from the database for the given orbital depending on parameterization. Public varialbe "parametrization" must be defined for this function to work properly. For the input orbital angular part must be defined. The function does not check whether this orbital is a STO primitive. This is a responsibility of the calling program to identify this. More...
 
real function get_interatomic_hopping_parameter_generic (atnum1, n1, l1, m1, atnum2, n2, l2, m2)
 Retrieves interatomic hopping parameter from stored values for given quantum numbers of a pair of orbitals. There are two sets of parameters, for SCF and SLG, which can be selected with the global variable va_ifslg. More...
 
real function get_interatomic_hopping_parameter (orbital1, orbital2)
 Wrapper for get_interatomic_hopping_parameter_generic with STO orbital arguments. More...
 
real function get_core_attraction_parameter_generic (atnum, n, l)
 Retrieves core attraction parameter from stored values for given quantum numbers of orbital. More...
 
real function get_core_attraction_parameter (orb)
 Wrapper for get_core_attraction_parameter_generic with STO orbital argument. More...
 
real function attractiontocore_sto (someOrbital)
 Wrapper for get_core_attraction_parameter_generic with STO orbital argument and additional checks. More...
 
real function attractiontocore_recfun (orbital1, orbital2)
 Wrapper to call attractionToCore_STO with oneElectronicMatrixElement More...
 
real function attractiontocore (orbital1, orbital2)
 Calculates attraction to core for given pair of orbitals. More...
 
real function get_slater_condon_parameter_generic (atnum, typ, k, n1, l1, n2, l2)
 Retrieves required Slater-Condon parameter from stored values for the given quantum numbers of orbitals and atomic number. Typ can take values "F" and "G". More...
 
integer function rho_radint_idx (k, l1, l2)
 Converts k, l1, l2 of DSK \(\rho^{l1,l2}_k \) paramters to index in first dimension of user_custom_dsk_rho. Indices in user_custom_radint are structured identically. If such combination of k, l1, l2 is not present, returns zero. More...
 
real function get_dsk_rho_parameter_generic (atnum, k, l1, l2)
 Returns DSK \( \rho \) parameter stored in user_custom_dsk_rho. More...
 
real function get_custom_radint_generic (atnum, k, l1, l2)
 Returns custom radial integral stored in user_custom_radint. More...
 
real function resonanceintegral (orbital1, orbital2, slg)
 Calculates semiempirical resonance integral \( \beta = \left<1\left|-\frac{1}{2}\Delta-V_{1}-V_{2}\right|2\right> \). More...
 
real function resonanceintegral_sto (orbital1, orbital2)
 Calculates semiempirical resonance integral for STO orbitals. More...
 
real function one_centre_two_electron_integral_gen (orbital1, orbital2, orbital3, orbital4)
 Calculates one-centre two-electron integrals from the Slater-Condon parameters. This is the most general procedure that works for any parameterization provided that SC parameters are defined according to this parameterization. It will also work for ab initio calculation provided that SC parameters are calculated analytically in advance. Custom SC parameters can be suplied through the text file and defined in the calling procedure using the subroutines of this module. If no custom SC parameters are defined, then the database values are used - collected in ValenceApproximation.f90 for five parameterizations: NDO, MINDO/3, MNDO, PM3, AM1. Satisfies the following order of orbitals: (1*(r1)2(r1)|3*(r2)4(r2)). More...
 
real function one_centre_two_electron_integral_atomic (orbital1, orbital2, orbital3, orbital4)
 Calculates one-centre two-electron integrals for pure atomic orbitals from the Slater-Condon parameters. Input orbitals must be purely atomic (with defined n,l,m quantum numbers) and belong to the same atom. Satisfies the following order of orbitals: (1*(r1)2(r1)|3*(r2)4(r2)). More...
 
real function get_generalised_slater_condon (atnum, k, n1, l1, n2, l2, n3, l3, n4, l4)
 This function returns generalised Slater-Condon parameter R^{k} from the database for given atomic number and a set of quantum numbers. For the time being it only returns F^{k} and G^{k} Slater-Condon parameters as they are the only ones that appear in the semi-empirical calculations. However, this function can be used in the future, if we consider general R^{k} parameters. More...
 
real function gaunt_product_cubic_harmonics (k, l1, m1, l2, m2, l3, m3, l4, m4)
 This function calculates the product of the Gaunt coefficients, that can be used to calculate one-centre two-electronic integrals over cubic (real) harmonics. More...
 
subroutine getatomicchargedistributionsparameters_mndo (atom, D, rho)
 
subroutine getonecenteredtwoelectronicparameters_mndo (atom, Gss, Gpp, Gp2, Gsp, Hsp, Hp2)
 
real function getspecificcorerepulsionparameter_mndo (atom)
 
real function slatercondonparameter (k, orbital1, orbital2, orbital3, orbital4)
 
subroutine getslatercondontable_f (atomicNumber, table)
 
subroutine getslatercondontable_g (atomicNumber, table)
 
integer function getnumberofdelectronsinsubshell (atomicNumber)
 
integer function getnumberoffelectronsinsubshell (atomicNumber)
 

Variables

character(len=6), pointer, public parametrization => NULL()
 
character(len=6), target, public mndo_name ='MNDO'
 
character(len=6), target, public ndo_name ='NDO'
 
character(len=6), target, public mindo3_name ='MINDO3'
 
character(len=6), target, public pm3_name ='PM3'
 
character(len=6), target, public am1_name ='AM1'
 
real, dimension(:,:,:,:), allocatable, public resonanceparameters
 
logical, public va_ifslg = .false.
 Selects type of parametrization, SLG or SCF, in get_interatomic_hopping_parameter_generic. More...
 
type(user_resonance_par), dimension(:), allocatable, public user_custom_resonance
 Array to store undefault (defined by the User) resonance parameters: More...
 
type(user_orbital_par), dimension(:), allocatable, public user_custom_sto_exponents
 Array to store undefault (defined by the User) orbital STO exponents: More...
 
type(user_orbital_par), dimension(:), allocatable, public user_custom_core_attractions
 Array to store undefault (defined by the User) core attractions: More...
 
type(user_atom_par), dimension(:), allocatable, public user_custom_core_charges
 Array to store undefault (defined by the User) core charges: More...
 
type(user_sc_par), dimension(:), allocatable, public user_custom_slater_condon
 Array to store undefault (defined by the User) Slater-Condon parameters: More...
 
integer, dimension(118), public va_atnum_idx = 0
 Stores correspondence between atomic number and second index in user_dsk_rho and user_mndo_radint. More...
 
integer, public va_max_atnum
 
real, dimension(:,:), allocatable, target, public user_custom_dsk_rho
 Stores \(rho\) parameters for DSK potential First index corresponds to [ 1 - 0ss, 2 - 0pp, 3 - 2pp, 4 - 1sp, 5 - 0dd, 6 - 2dd, 7 - 4dd, 8 - 2sd, 9 - 1pd, 10 - 3pd ]. More...
 
real, dimension(:,:), allocatable, target, public user_custom_radint
 Stores one-electronic radial integrals \(\left<\mu | r^k | \nu\right>\) for MNDO calculation. First index is same as for user_dsk_rho. More...
 
integer, dimension(0:3, 0:3), save, public sc_f0_cortab = reshape([ 1, 2, 4, 7, 2, 3, 5, 8, 4, 5, 6, 9, 7, 8, 9, 10 ], [4,4])
 Correspondence table between a pair of (l1,l2) quantum numbers and first index of arrays "SlaterCondonF0Parameters" saved in "ValenceApproximation.f90". Order in ValenceApproximation: 00, 10, 11, 20, 21, 22, 30, 31, 32, 33. More...
 
integer, dimension(1:3, 1:3), save, public sc_f2_cortab = reshape([ 1, 2, 4, 2, 3, 5, 4, 5, 6 ], [3,3])
 Correspondence table between a pair of (l1,l2) quantum numbers and first index of arrays "SlaterCondonF2Parameters" saved in "ValenceApproximation.f90". Order in ValenceApproximation: 11, 21, 22, 31, 32, 33. More...
 
integer, dimension(2:3, 2:3), save, public sc_f4_cortab = reshape([ 1, 2, 2, 3 ], [2,2])
 Correspondence table between a pair of (l1,l2) quantum numbers and first index of arrays "SlaterCondonF4Parameters" saved in "ValenceApproximation.f90". Order in ValenceApproximation: 22, 32, 33. More...
 
integer, dimension(0:3, 0:3), save, public sc_g1_cortab = reshape([ 0, 1, 0, 0, 1, 0, 2, 0, 0, 2, 0, 3, 0, 0, 3, 0 ], [4,4])
 Correspondence table between a pair of (l1,l2) quantum numbers and first index of arrays "SlaterCondonG1Parameters" saved in "ValenceApproximation.f90". If an element is equal to zero, then there is no G1 parameter for a given pair of (l1,l2). Order in ValenceApproximation: 10, 21, 23. More...
 

Detailed Description

Module with functions used to extract semi-empirical parameters from the databases collected in the 'ValenceApproximation' module.

Function/Subroutine Documentation

◆ attractiontocore()

real function valence_approximation::attractiontocore ( type(orbital), intent(in)  orbital1,
type(orbital), intent(in)  orbital2 
)

Calculates attraction to core for given pair of orbitals.

Here is the call graph for this function:

◆ attractiontocore_recfun()

real function valence_approximation::attractiontocore_recfun ( type(orbital), intent(inout)  orbital1,
type(orbital), intent(inout)  orbital2 
)

Wrapper to call attractionToCore_STO with oneElectronicMatrixElement

Here is the call graph for this function:

◆ attractiontocore_sto()

real function valence_approximation::attractiontocore_sto ( type(orbital), intent(in)  someOrbital)

Wrapper for get_core_attraction_parameter_generic with STO orbital argument and additional checks.

Here is the call graph for this function:

◆ corecharge()

real function valence_approximation::corecharge ( type(particle), intent(in)  atom)

Returns semiempirical core charge from the database for the given atom depending on parameterization. Public varialbe "parametrization" must be defined for this function to work properly.

Here is the call graph for this function:

◆ gaunt_product_cubic_harmonics()

real function valence_approximation::gaunt_product_cubic_harmonics ( integer, intent(in)  k,
integer, intent(in)  l1,
integer, intent(in)  m1,
integer, intent(in)  l2,
integer, intent(in)  m2,
integer, intent(in)  l3,
integer, intent(in)  m3,
integer, intent(in)  l4,
integer, intent(in)  m4 
)

This function calculates the product of the Gaunt coefficients, that can be used to calculate one-centre two-electronic integrals over cubic (real) harmonics.

◆ get_core_attraction_parameter()

real function valence_approximation::get_core_attraction_parameter ( type(orbital), intent(in)  orb)

Wrapper for get_core_attraction_parameter_generic with STO orbital argument.

Here is the call graph for this function:

◆ get_core_attraction_parameter_generic()

real function valence_approximation::get_core_attraction_parameter_generic ( integer, intent(in)  atnum,
integer, intent(in)  n,
integer, intent(in)  l 
)

Retrieves core attraction parameter from stored values for given quantum numbers of orbital.

◆ get_custom_radint_generic()

real function valence_approximation::get_custom_radint_generic ( integer, intent(in)  atnum,
integer, intent(in)  k,
integer, intent(in)  l1,
integer, intent(in)  l2 
)

Returns custom radial integral stored in user_custom_radint.

Here is the call graph for this function:

◆ get_dsk_rho_parameter_generic()

real function valence_approximation::get_dsk_rho_parameter_generic ( integer, intent(in)  atnum,
integer, intent(in)  k,
integer, intent(in)  l1,
integer, intent(in)  l2 
)

Returns DSK \( \rho \) parameter stored in user_custom_dsk_rho.

Here is the call graph for this function:

◆ get_generalised_slater_condon()

real function valence_approximation::get_generalised_slater_condon ( integer, intent(in)  atnum,
integer, intent(in)  k,
integer, intent(in)  n1,
integer, intent(in)  l1,
integer, intent(in)  n2,
integer, intent(in)  l2,
integer, intent(in)  n3,
integer, intent(in)  l3,
integer, intent(in)  n4,
integer, intent(in)  l4 
)

This function returns generalised Slater-Condon parameter R^{k} from the database for given atomic number and a set of quantum numbers. For the time being it only returns F^{k} and G^{k} Slater-Condon parameters as they are the only ones that appear in the semi-empirical calculations. However, this function can be used in the future, if we consider general R^{k} parameters.

of F^{k}(n1 l1; n1 l1).

Here is the call graph for this function:

◆ get_interatomic_hopping_parameter()

real function valence_approximation::get_interatomic_hopping_parameter ( type(orbital), intent(in)  orbital1,
type(orbital), intent(in)  orbital2 
)

Wrapper for get_interatomic_hopping_parameter_generic with STO orbital arguments.

Here is the call graph for this function:

◆ get_interatomic_hopping_parameter_generic()

real function valence_approximation::get_interatomic_hopping_parameter_generic ( integer, intent(in)  atnum1,
integer, intent(in)  n1,
integer, intent(in)  l1,
integer, intent(in)  m1,
integer, intent(in)  atnum2,
integer, intent(in)  n2,
integer, intent(in)  l2,
integer, intent(in)  m2 
)

Retrieves interatomic hopping parameter from stored values for given quantum numbers of a pair of orbitals. There are two sets of parameters, for SCF and SLG, which can be selected with the global variable va_ifslg.

See also
va_ifslg for proper use of this variable.
Note
All values are in atomic units.
At least one of the public parameters "parametrization" or "resonanceParameters" must be allocated for this function to work properly.

◆ get_slater_condon_parameter_generic()

real function valence_approximation::get_slater_condon_parameter_generic ( integer, intent(in)  atnum,
character(len=1), intent(in)  typ,
integer, intent(in)  k,
integer, intent(in)  n1,
integer, intent(in)  l1,
integer, intent(in)  n2,
integer, intent(in)  l2 
)

Retrieves required Slater-Condon parameter from stored values for the given quantum numbers of orbitals and atomic number. Typ can take values "F" and "G".

Note
: ValenceApproximation module contains only the following SC parameters: F0, F2, F4, G1. All other arrays are empty, therefore, we do not attempt to extract other parameters from the database.

◆ getatomicchargedistributionsparameters_mndo()

subroutine valence_approximation::getatomicchargedistributionsparameters_mndo ( type(particle), intent(inout)  atom,
real, dimension(2), intent(out)  D,
real, dimension(3), intent(out)  rho 
)
Here is the call graph for this function:

◆ getnumberofdelectronsinsubshell()

integer function valence_approximation::getnumberofdelectronsinsubshell ( integer, intent(in)  atomicNumber)
Here is the call graph for this function:

◆ getnumberoffelectronsinsubshell()

integer function valence_approximation::getnumberoffelectronsinsubshell ( integer, intent(in)  atomicNumber)
Here is the call graph for this function:

◆ getonecenteredtwoelectronicparameters_mndo()

subroutine valence_approximation::getonecenteredtwoelectronicparameters_mndo ( type(particle), intent(inout)  atom,
real, intent(out)  Gss,
real, intent(out)  Gpp,
real, intent(out)  Gp2,
real, intent(out)  Gsp,
real, intent(out)  Hsp,
real, intent(out)  Hp2 
)

◆ getslatercondontable_f()

subroutine valence_approximation::getslatercondontable_f ( integer, intent(in)  atomicNumber,
real, dimension(:,:,:), allocatable  table 
)

◆ getslatercondontable_g()

subroutine valence_approximation::getslatercondontable_g ( integer, intent(in)  atomicNumber,
real, dimension(:,:,:), allocatable  table 
)

◆ getspecificcorerepulsionparameter_mndo()

real function valence_approximation::getspecificcorerepulsionparameter_mndo ( type(particle), intent(inout)  atom)
Here is the call graph for this function:

◆ one_centre_two_electron_integral_atomic()

real function valence_approximation::one_centre_two_electron_integral_atomic ( type(orbital), intent(inout)  orbital1,
type(orbital), intent(inout)  orbital2,
type(orbital), intent(inout)  orbital3,
type(orbital), intent(inout)  orbital4 
)

Calculates one-centre two-electron integrals for pure atomic orbitals from the Slater-Condon parameters. Input orbitals must be purely atomic (with defined n,l,m quantum numbers) and belong to the same atom. Satisfies the following order of orbitals: (1*(r1)2(r1)|3*(r2)4(r2)).

Here is the call graph for this function:

◆ one_centre_two_electron_integral_gen()

real function valence_approximation::one_centre_two_electron_integral_gen ( type(orbital), intent(in), target  orbital1,
type(orbital), intent(in), target  orbital2,
type(orbital), intent(in), target  orbital3,
type(orbital), intent(in), target  orbital4 
)

Calculates one-centre two-electron integrals from the Slater-Condon parameters. This is the most general procedure that works for any parameterization provided that SC parameters are defined according to this parameterization. It will also work for ab initio calculation provided that SC parameters are calculated analytically in advance. Custom SC parameters can be suplied through the text file and defined in the calling procedure using the subroutines of this module. If no custom SC parameters are defined, then the database values are used - collected in ValenceApproximation.f90 for five parameterizations: NDO, MINDO/3, MNDO, PM3, AM1. Satisfies the following order of orbitals: (1*(r1)2(r1)|3*(r2)4(r2)).

Note
Input orbitals must be atomic (either pure atomic or hybrid) and belong to the same atom. Otherwise this function will return zero.

◆ resonanceintegral()

real function valence_approximation::resonanceintegral ( type(orbital), intent(in), target  orbital1,
type(orbital), intent(in), target  orbital2,
logical, intent(in), optional  slg 
)

Calculates semiempirical resonance integral \( \beta = \left<1\left|-\frac{1}{2}\Delta-V_{1}-V_{2}\right|2\right> \).

◆ resonanceintegral_sto()

real function valence_approximation::resonanceintegral_sto ( type(orbital), intent(inout)  orbital1,
type(orbital), intent(inout)  orbital2 
)

Calculates semiempirical resonance integral for STO orbitals.

Warning
Select local or laboratory frame calculation with operator_local.
Here is the call graph for this function:

◆ rho_radint_idx()

integer function valence_approximation::rho_radint_idx ( integer, intent(in)  k,
integer, intent(in)  l1,
integer, intent(in)  l2 
)

Converts k, l1, l2 of DSK \(\rho^{l1,l2}_k \) paramters to index in first dimension of user_custom_dsk_rho. Indices in user_custom_radint are structured identically. If such combination of k, l1, l2 is not present, returns zero.

Warning
Optimized for spd orbitals only. If f-orbitals are added to MNDOm, needs to be rewritten.

◆ set_custom_core_attractions_from_file()

subroutine valence_approximation::set_custom_core_attractions_from_file ( integer, intent(in)  io,
character(len=*), intent(in)  filename 
)

Reads section of the text file with the User defined core attractions and saves it in a public array "user_custom_core_attractions", which can then be accessed by subroutines of this module.

◆ set_custom_core_charges_from_file()

subroutine valence_approximation::set_custom_core_charges_from_file ( integer, intent(in)  io,
character(len=*), intent(in)  filename 
)

Reads section of the text file with the User defined core charges and saves it in a public array "user_custom_core_charges", which can then be accessed by subroutines of this module.

◆ set_custom_resonance_from_file()

subroutine valence_approximation::set_custom_resonance_from_file ( integer, intent(in)  io,
character(len=*), intent(in)  filename 
)

Reads section of the text file with the User defined resonance parameters and saves it in a public array "user_custom_resonance", which can then be accessed by subroutines calculating integrals.

◆ set_custom_slater_condon_from_file()

subroutine valence_approximation::set_custom_slater_condon_from_file ( integer, intent(in)  io,
character(len=*), intent(in)  filename 
)

Reads section of the text file with the User defined Slater-Condon parameters and saves them in a public array "user_custom_slater_condon", which can then be accessed by subroutines of this module.

Here is the call graph for this function:

◆ set_custom_sto_exponents_from_file()

subroutine valence_approximation::set_custom_sto_exponents_from_file ( integer, intent(in)  io,
character(len=*), intent(in)  filename 
)

Reads section of the text file with the User defined STO exponents and saves it in a public array "user_custom_sto_exponents", which can then be accessed by subroutines of this module.

◆ set_dsk_rho_from_slater_condon()

subroutine valence_approximation::set_dsk_rho_from_slater_condon

Extracts MNDO/m DSK \(\rho\) parameters from equations in the one-center limit.

Note
user_custom_slater_condon must be set - \(\rho\) are extracted from those.
Warning
Works only for spd elements. If f-elements are added to MNDO/m, this has to be rewritten.
Assumes only valence orbitals are present. If core orbitals are included, expect undefined behavior.
Todo:
Expand this idea to all params in module?
Here is the call graph for this function:

◆ slatercondonparameter()

real function valence_approximation::slatercondonparameter ( integer, intent(in)  k,
type(orbital), intent(in)  orbital1,
type(orbital), intent(in)  orbital2,
type(orbital), intent(in)  orbital3,
type(orbital), intent(in)  orbital4 
)
Here is the call graph for this function:

◆ slaterexponent()

real function valence_approximation::slaterexponent ( type(orbital), intent(in)  someOrbital)

Returns semiempirical Slater exponent from the database for the given orbital depending on parameterization. Public varialbe "parametrization" must be defined for this function to work properly. For the input orbital angular part must be defined. The function does not check whether this orbital is a STO primitive. This is a responsibility of the calling program to identify this.

Note
All values are in atomic units.
Note
This looks out strangely: l is not defined. Reply: l is defined in angular part of the orbital. See below: the function checks that "pY%l" is associated.
And again a generic interface must be used for such things
Here is the call graph for this function:

Variable Documentation

◆ am1_name

character(len=6), target, public valence_approximation::am1_name ='AM1'

◆ mindo3_name

character(len=6), target, public valence_approximation::mindo3_name ='MINDO3'

◆ mndo_name

character(len=6), target, public valence_approximation::mndo_name ='MNDO'

◆ ndo_name

character(len=6), target, public valence_approximation::ndo_name ='NDO'

◆ parametrization

character(len=6), pointer, public valence_approximation::parametrization => NULL()

◆ pm3_name

character(len=6), target, public valence_approximation::pm3_name ='PM3'

◆ resonanceparameters

real, dimension(:,:,:,:), allocatable, public valence_approximation::resonanceparameters

◆ sc_f0_cortab

integer, dimension(0:3,0:3), save, public valence_approximation::sc_f0_cortab = reshape([ 1, 2, 4, 7, 2, 3, 5, 8, 4, 5, 6, 9, 7, 8, 9, 10 ], [4,4])

Correspondence table between a pair of (l1,l2) quantum numbers and first index of arrays "SlaterCondonF0Parameters" saved in "ValenceApproximation.f90". Order in ValenceApproximation: 00, 10, 11, 20, 21, 22, 30, 31, 32, 33.

◆ sc_f2_cortab

integer, dimension(1:3,1:3), save, public valence_approximation::sc_f2_cortab = reshape([ 1, 2, 4, 2, 3, 5, 4, 5, 6 ], [3,3])

Correspondence table between a pair of (l1,l2) quantum numbers and first index of arrays "SlaterCondonF2Parameters" saved in "ValenceApproximation.f90". Order in ValenceApproximation: 11, 21, 22, 31, 32, 33.

◆ sc_f4_cortab

integer, dimension(2:3,2:3), save, public valence_approximation::sc_f4_cortab = reshape([ 1, 2, 2, 3 ], [2,2])

Correspondence table between a pair of (l1,l2) quantum numbers and first index of arrays "SlaterCondonF4Parameters" saved in "ValenceApproximation.f90". Order in ValenceApproximation: 22, 32, 33.

◆ sc_g1_cortab

integer, dimension(0:3,0:3), save, public valence_approximation::sc_g1_cortab = reshape([ 0, 1, 0, 0, 1, 0, 2, 0, 0, 2, 0, 3, 0, 0, 3, 0 ], [4,4])

Correspondence table between a pair of (l1,l2) quantum numbers and first index of arrays "SlaterCondonG1Parameters" saved in "ValenceApproximation.f90". If an element is equal to zero, then there is no G1 parameter for a given pair of (l1,l2). Order in ValenceApproximation: 10, 21, 23.

◆ user_custom_core_attractions

type(user_orbital_par), dimension(:), allocatable, public valence_approximation::user_custom_core_attractions

Array to store undefault (defined by the User) core attractions:

◆ user_custom_core_charges

type(user_atom_par), dimension(:), allocatable, public valence_approximation::user_custom_core_charges

Array to store undefault (defined by the User) core charges:

◆ user_custom_dsk_rho

real, dimension(:,:), allocatable, target, public valence_approximation::user_custom_dsk_rho

Stores \(rho\) parameters for DSK potential First index corresponds to [ 1 - 0ss, 2 - 0pp, 3 - 2pp, 4 - 1sp, 5 - 0dd, 6 - 2dd, 7 - 4dd, 8 - 2sd, 9 - 1pd, 10 - 3pd ].

◆ user_custom_radint

real, dimension(:,:), allocatable, target, public valence_approximation::user_custom_radint

Stores one-electronic radial integrals \(\left<\mu | r^k | \nu\right>\) for MNDO calculation. First index is same as for user_dsk_rho.

Note
In MNDO, these integrals are calculated with exponents extracted from F0 parameters. They will be different from the ones obtained with exponents defined explicitly in the MNDO formalism.

◆ user_custom_resonance

type(user_resonance_par), dimension(:), allocatable, public valence_approximation::user_custom_resonance

Array to store undefault (defined by the User) resonance parameters:

◆ user_custom_slater_condon

type(user_sc_par), dimension(:), allocatable, public valence_approximation::user_custom_slater_condon

Array to store undefault (defined by the User) Slater-Condon parameters:

◆ user_custom_sto_exponents

type(user_orbital_par), dimension(:), allocatable, public valence_approximation::user_custom_sto_exponents

Array to store undefault (defined by the User) orbital STO exponents:

◆ va_atnum_idx

integer, dimension(118), public valence_approximation::va_atnum_idx = 0

Stores correspondence between atomic number and second index in user_dsk_rho and user_mndo_radint.

◆ va_ifslg

logical valence_approximation::va_ifslg = .false.

Selects type of parametrization, SLG or SCF, in get_interatomic_hopping_parameter_generic.

Warning
Use cautiously. Always return this value to .false. after changing it.
See also
If possible, use resonanceIntegral(_prim(2)).

◆ va_max_atnum

integer, public valence_approximation::va_max_atnum