Documentation for module qs_kind_types

Define the quickstep kind type and their sub types

source: qs_kind_types.F
Loading...

public Types:

pao_descriptor_type
Holds information about a PAO descriptor
qs_kind_type
Provides all information about a quickstep kind
pao_potential_type
Holds information about a PAO potential

public Subroutines/Functions:

...
Read an atomic kind set data set from the input file.
Destructor routine for a set of qs kinds
Get attributes of an atomic kind.
Get attributes of an atomic kind set.
FUNCTION
LOGICAL
has_nlcc (qs_kind_set)
finds if a given qs run needs to use nlcc
...
...
...
Initialise an atomic kind set data set.
...
Set the components of an atomic kind data set.
Write all the GTO basis sets of an atomic kind set to the output unit (for the printing of the unnormalized basis sets as read from database).
Write an atomic kind set data set to the output unit.

public Types:

TYPE :: pao_descriptor_type

Holds information about a PAO descriptor


REAL(dp)
:: beta = 0.0_DP ...
REAL(dp)
:: beta_radius = HUGE(DP) ...
REAL(dp)
:: weight = 0.0_DP ...
REAL(dp)
:: screening = 0.0_DP ...
REAL(dp)
:: screening_radius = HUGE(DP) ...

TYPE :: pao_potential_type

Holds information about a PAO potential


INTEGER
:: maxl = -1 ...
REAL(dp)
:: beta = 0.0_DP ...
REAL(dp)
:: weight = 0.0_DP ...
INTEGER
:: max_projector = -1 ...
REAL(dp)
:: beta_radius = HUGE(DP) ...

TYPE :: qs_kind_type

Provides all information about a quickstep kind


:: name = "" ...
CHARACTER(2)
:: element_symbol = "" ...
INTEGER
:: natom = -1 ...
POINTER :: all_potential => NULL() ...
POINTER :: tnadd_potential => NULL() ...
POINTER :: gth_potential => NULL() ...
POINTER :: sgp_potential => NULL() ...
POINTER :: se_parameter => NULL() ...
POINTER :: dftb_parameter => NULL() ...
POINTER :: soft_basis_set => NULL() ...
POINTER :: hard_basis_set => NULL() ...
DIMENSION(20) :: basis_sets ...
POINTER :: paw_proj_set => NULL() ...
REAL(dp)
:: hard_radius = 0.8_DP*BOHR ...
REAL(dp)
:: hard0_radius = 0.8_DP*BOHR ...
REAL(dp)
:: max_rad_local = 13.2_DP*BOHR ...
LOGICAL
:: paw_atom = .FALSE. ...
LOGICAL
:: gpw_type_forced = .FALSE. ...
LOGICAL
:: ghost = .FALSE. ...
LOGICAL
:: floating = .FALSE. ...
INTEGER
:: lmax_dftb = -1 ...
REAL(dp)
:: dudq_dftb3 = 0.0_DP ...
REAL(dp)
:: magnetization = 0.0_DP ...
INTEGER,
DIMENSION(:,:), POINTER :: addel => NULL() ...
INTEGER,
DIMENSION(:,:), POINTER :: laddel => NULL() ...
INTEGER,
DIMENSION(:,:), POINTER :: naddel => NULL() ...
POINTER :: harmonics => NULL() ...
POINTER :: grid_atom => NULL() ...
INTEGER
:: ngrid_rad = 50 ...
INTEGER
:: ngrid_ang = 50 ...
INTEGER
:: lmax_rho0 = 0 ...
INTEGER
:: mao = -1 ...
INTEGER,
DIMENSION(:), POINTER :: elec_conf => NULL() ...
LOGICAL
:: bs_occupation = .FALSE. ...
POINTER :: dft_plus_u => NULL() ...
LOGICAL
:: no_optimize = .TRUE. ...
REAL(dp),
DIMENSION(:,:), POINTER :: nlcc_pot => NULL() ...
POINTER :: dispersion => NULL() ...
REAL(dp),
DIMENSION(:,:), POINTER :: reltmat => NULL() ...
INTEGER
:: pao_basis_size = -1 ...
DIMENSION(:), POINTER :: pao_potentials => NULL() ...
DIMENSION(:), POINTER :: pao_descriptors => NULL() ...

SUBROUTINEcheck_qs_kind_set(qs_kind_set, dft_control, subsys_section)

...

Arguments:
POINTER
:: qs_kind_set(:) ...
INTENT(in)
:: dft_control ...
POINTER
:: subsys_section ...

SUBROUTINEcreate_qs_kind_set(qs_kind_set, atomic_kind_set, kind_section, para_env, force_env_section)

Read an atomic kind set data set from the input file.

Arguments:
POINTER
:: qs_kind_set(:) ...
POINTER
:: atomic_kind_set(:) ...
POINTER
:: kind_section ...
POINTER
:: para_env ...
POINTER
:: force_env_section ...

SUBROUTINEdeallocate_qs_kind_set(qs_kind_set)

Destructor routine for a set of qs kinds

Arguments:
POINTER
:: qs_kind_set(:) ...

SUBROUTINEget_qs_kind(qs_kind, basis_set, basis_type, ncgf, nsgf, all_potential, tnadd_potential, gth_potential, sgp_potential, se_parameter, dftb_parameter, dftb3_param, zeff, elec_conf, mao, lmax_dftb, alpha_core_charge, ccore_charge, core_charge, core_charge_radius, soft_basis_set, hard_basis_set, paw_proj_set, softb, paw_atom, hard_radius, hard0_radius, max_rad_local, gpw_type_forced, harmonics, max_iso_not0, max_s_harm, grid_atom, ngrid_ang, ngrid_rad, lmax_rho0, dft_plus_u_atom, l_of_dft_plus_u, u_minus_j, dispersion, bs_occupation, magnetization, no_optimize, addel, laddel, naddel, orbitals, max_scf, eps_scf, smear, u_ramping, u_minus_j_target, eps_u_ramping, init_u_ramping_each_scf, reltmat, ghost, floating, name, element_symbol, pao_basis_size, pao_potentials, pao_descriptors)

Get attributes of an atomic kind.

Arguments:
:: qs_kind ...
OPTIONAL, POINTER
:: basis_set ...
CHARACTER(*),
OPTIONAL
:: basis_type ...
INTEGER,
INTENT(out),
OPTIONAL
:: ncgf ...
INTEGER,
INTENT(out),
OPTIONAL
:: nsgf ...
OPTIONAL, POINTER
:: all_potential ...
OPTIONAL, POINTER
:: tnadd_potential ...
OPTIONAL, POINTER
:: gth_potential ...
OPTIONAL, POINTER
:: sgp_potential ...
OPTIONAL, POINTER
:: se_parameter ...
OPTIONAL, POINTER
:: dftb_parameter ...
REAL(dp),
INTENT(out),
OPTIONAL
:: dftb3_param ...
REAL(dp),
INTENT(out),
OPTIONAL
:: zeff ...
INTEGER,
OPTIONAL, POINTER
:: elec_conf(:) ...
INTEGER,
INTENT(out),
OPTIONAL
:: mao ...
INTEGER,
INTENT(out),
OPTIONAL
:: lmax_dftb ...
REAL(dp),
INTENT(out),
OPTIONAL
:: alpha_core_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: ccore_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: core_charge ...
REAL(dp),
INTENT(out),
OPTIONAL
:: core_charge_radius ...
OPTIONAL, POINTER
:: soft_basis_set ...
OPTIONAL, POINTER
:: hard_basis_set ...
OPTIONAL, POINTER
:: paw_proj_set ...
LOGICAL,
INTENT(in),
OPTIONAL
:: softb ...
LOGICAL,
INTENT(out),
OPTIONAL
:: paw_atom ...
REAL(dp),
INTENT(out),
OPTIONAL
:: hard_radius ...
REAL(dp),
INTENT(out),
OPTIONAL
:: hard0_radius ...
REAL(dp),
INTENT(out),
OPTIONAL
:: max_rad_local ...
LOGICAL,
INTENT(out),
OPTIONAL
:: gpw_type_forced ...
OPTIONAL, POINTER
:: harmonics ...
INTEGER,
INTENT(out),
OPTIONAL
:: max_iso_not0 ...
INTEGER,
INTENT(out),
OPTIONAL
:: max_s_harm ...
OPTIONAL, POINTER
:: grid_atom ...
INTEGER,
INTENT(out),
OPTIONAL
:: ngrid_ang ...
INTEGER,
INTENT(out),
OPTIONAL
:: ngrid_rad ...
INTEGER,
INTENT(out),
OPTIONAL
:: lmax_rho0 ...
LOGICAL,
INTENT(out),
OPTIONAL
:: dft_plus_u_atom ...
INTEGER,
INTENT(out),
OPTIONAL
:: l_of_dft_plus_u ...
REAL(dp),
INTENT(out),
OPTIONAL
:: u_minus_j ...
OPTIONAL, POINTER
:: dispersion ...
LOGICAL,
INTENT(out),
OPTIONAL
:: bs_occupation ...
REAL(dp),
INTENT(out),
OPTIONAL
:: magnetization ...
LOGICAL,
INTENT(out),
OPTIONAL
:: no_optimize ...
INTEGER,
OPTIONAL, POINTER
:: addel(:,:) ...
INTEGER,
OPTIONAL, POINTER
:: laddel(:,:) ...
INTEGER,
OPTIONAL, POINTER
:: naddel(:,:) ...
INTEGER,
OPTIONAL, POINTER
:: orbitals(:) ...
INTEGER,
OPTIONAL
:: max_scf ...
REAL(dp),
OPTIONAL
:: eps_scf ...
LOGICAL,
OPTIONAL
:: smear ...
REAL(dp),
INTENT(out),
OPTIONAL
:: u_ramping ...
REAL(dp),
INTENT(out),
OPTIONAL
:: u_minus_j_target ...
REAL(dp),
INTENT(out),
OPTIONAL
:: eps_u_ramping ...
LOGICAL,
OPTIONAL
:: init_u_ramping_each_scf ...
REAL(dp),
OPTIONAL, POINTER
:: reltmat(:,:) ...
LOGICAL,
OPTIONAL
:: ghost ...
LOGICAL,
OPTIONAL
:: floating ...
INTENT(out),
OPTIONAL
:: name ...
CHARACTER(2),
INTENT(out),
OPTIONAL
:: element_symbol ...
INTEGER,
INTENT(out),
OPTIONAL
:: pao_basis_size ...
OPTIONAL, POINTER
:: pao_potentials(:) ...
OPTIONAL, POINTER
:: pao_descriptors(:) ...

SUBROUTINEget_qs_kind_set(qs_kind_set, all_potential_present, tnadd_potential_present, gth_potential_present, sgp_potential_present, paw_atom_present, dft_plus_u_atom_present, maxcgf, maxsgf, maxco, maxco_proj, maxgtops, maxlgto, maxlprj, maxnset, maxsgf_set, ncgf, npgf, nset, nsgf, nshell, maxpol, maxlppl, maxlppnl, maxppnl, nelectron, maxder, max_ngrid_rad, max_sph_harm, maxg_iso_not0, lmax_rho0, basis_type)

Get attributes of an atomic kind set.

Arguments:
POINTER
:: qs_kind_set(:) ...
LOGICAL,
INTENT(out),
OPTIONAL
:: all_potential_present ...
LOGICAL,
INTENT(out),
OPTIONAL
:: tnadd_potential_present ...
LOGICAL,
INTENT(out),
OPTIONAL
:: gth_potential_present ...
LOGICAL,
INTENT(out),
OPTIONAL
:: sgp_potential_present ...
LOGICAL,
INTENT(out),
OPTIONAL
:: paw_atom_present ...
LOGICAL,
INTENT(out),
OPTIONAL
:: dft_plus_u_atom_present ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxcgf ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxsgf ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxco ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxco_proj ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxgtops ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxlgto ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxlprj ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxnset ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxsgf_set ...
INTEGER,
INTENT(out),
OPTIONAL
:: ncgf ...
INTEGER,
INTENT(out),
OPTIONAL
:: npgf ...
INTEGER,
INTENT(out),
OPTIONAL
:: nset ...
INTEGER,
INTENT(out),
OPTIONAL
:: nsgf ...
INTEGER,
INTENT(out),
OPTIONAL
:: nshell ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxpol ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxlppl ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxlppnl ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxppnl ...
INTEGER,
INTENT(out),
OPTIONAL
:: nelectron ...
INTEGER,
INTENT(in),
OPTIONAL
:: maxder ...
INTEGER,
INTENT(out),
OPTIONAL
:: max_ngrid_rad ...
INTEGER,
INTENT(out),
OPTIONAL
:: max_sph_harm ...
INTEGER,
INTENT(out),
OPTIONAL
:: maxg_iso_not0 ...
INTEGER,
INTENT(out),
OPTIONAL
:: lmax_rho0 ...
CHARACTER(*),
OPTIONAL
:: basis_type ...

FUNCTIONhas_nlcc(qs_kind_set)

finds if a given qs run needs to use nlcc

Return Value ::
LOGICAL
Arguments:
:: qs_kind_set(:) ...

SUBROUTINEinit_atom_electronic_state(atomic_kind, qs_kind, ncalc, ncore, nelem, edelta)

...

Arguments:
INTENT(in)
:: atomic_kind ...
INTENT(in)
:: qs_kind ...
INTEGER,
INTENT(out)
:: ncalc(0:lmat,10) ...
INTEGER,
INTENT(out)
:: ncore(0:lmat,10) ...
INTEGER,
INTENT(out)
:: nelem(0:lmat,10) ...
REAL(dp),
INTENT(out)
:: edelta(0:lmat,10,2) ...

SUBROUTINEinit_gapw_basis_set(qs_kind_set, qs_control, force_env_section)

...

Arguments:
POINTER
:: qs_kind_set(:) ...
POINTER
:: qs_control ...
POINTER
:: force_env_section ...

SUBROUTINEinit_gapw_nlcc(qs_kind_set)

...

Arguments:
POINTER
:: qs_kind_set(:) ...

SUBROUTINEinit_qs_kind_set(qs_kind_set)

Initialise an atomic kind set data set.

Arguments:
POINTER
:: qs_kind_set(:) ...

SUBROUTINEset_pseudo_state(econf, z, ncalc, ncore, nelem)

...

Arguments:
INTEGER,
POINTER
:: econf(:) ...
INTEGER,
INTENT(in)
:: z ...
INTEGER,
INTENT(out)
:: ncalc(0:lmat,10) ...
INTEGER,
INTENT(out)
:: ncore(0:lmat,10) ...
INTEGER,
INTENT(out)
:: nelem(0:lmat,10) ...

SUBROUTINEset_qs_kind(qs_kind, paw_atom, ghost, floating, hard_radius, hard0_radius, soft_basis_set, hard_basis_set, lmax_rho0, zeff, no_optimize, dispersion, u_minus_j, reltmat, dftb_parameter, elec_conf, pao_basis_size)

Set the components of an atomic kind data set.

Arguments:
INTENT(inout)
:: qs_kind ...
LOGICAL,
INTENT(in),
OPTIONAL
:: paw_atom ...
LOGICAL,
INTENT(in),
OPTIONAL
:: ghost ...
LOGICAL,
INTENT(in),
OPTIONAL
:: floating ...
REAL(dp),
INTENT(in),
OPTIONAL
:: hard_radius ...
REAL(dp),
INTENT(in),
OPTIONAL
:: hard0_radius ...
OPTIONAL, POINTER
:: soft_basis_set ...
OPTIONAL, POINTER
:: hard_basis_set ...
INTEGER,
INTENT(in),
OPTIONAL
:: lmax_rho0 ...
REAL(dp),
INTENT(in),
OPTIONAL
:: zeff ...
LOGICAL,
INTENT(in),
OPTIONAL
:: no_optimize ...
OPTIONAL, POINTER
:: dispersion ...
REAL(dp),
INTENT(in),
OPTIONAL
:: u_minus_j ...
REAL(dp),
OPTIONAL, POINTER
:: reltmat(:,:) ...
OPTIONAL, POINTER
:: dftb_parameter ...
INTEGER,
INTENT(in),
OPTIONAL
:: elec_conf(:) ...
INTEGER,
INTENT(in),
OPTIONAL
:: pao_basis_size ...

SUBROUTINEwrite_gto_basis_sets(qs_kind_set, subsys_section)

Write all the GTO basis sets of an atomic kind set to the output unit (for the printing of the unnormalized basis sets as read from database).

Arguments:
POINTER
:: qs_kind_set(:) ...
POINTER
:: subsys_section ...

SUBROUTINEwrite_qs_kind_set(qs_kind_set, subsys_section)

Write an atomic kind set data set to the output unit.

Arguments:
POINTER
:: qs_kind_set(:) ...
POINTER
:: subsys_section ...

private Parameters/Types:

private Types:

TYPE :: dft_plus_u_type

Input parameters for the DFT+U method


INTEGER
:: l ...
INTEGER
:: max_scf ...
REAL(dp)
:: eps_u_ramping ...
REAL(dp)
:: eps_scf ...
REAL(dp)
:: u_minus_j_target ...
REAL(dp)
:: u_minus_j ...
REAL(dp)
:: u_ramping ...
INTEGER,
DIMENSION(:), POINTER :: orbitals ...
LOGICAL
:: init_u_ramping_each_scf ...
LOGICAL
:: smear ...