(git:34ef472)
qs_mo_types Module Reference

Definition and initialisation of the mo data type. More...

Functions/Subroutines

subroutine, public reassign_allocated_mos (mo_set_new, mo_set_old)
 reassign an already allocated mo_set More...
 
subroutine, public duplicate_mo_set (mo_set_new, mo_set_old)
 allocate a new mo_set, and copy the old data More...
 
subroutine, public allocate_mo_set (mo_set, nao, nmo, nelectron, n_el_f, maxocc, flexible_electron_count)
 Allocates a mo set and partially initializes it (nao,nmo,nelectron, and flexible_electron_count are valid). For the full initialization you need to call init_mo_set. More...
 
subroutine, public init_mo_set (mo_set, fm_pool, fm_ref, fm_struct, name)
 initializes an allocated mo_set. eigenvalues, mo_coeff, occupation_numbers are valid only after this call. More...
 
subroutine, public mo_set_restrict (mo_array, convert_dbcsr)
 make the beta orbitals explicitly equal to the alpha orbitals effectively copying the orbital data More...
 
subroutine, public deallocate_mo_set (mo_set)
 Deallocate a wavefunction data structure. More...
 
subroutine, public get_mo_set (mo_set, maxocc, homo, lfomo, nao, nelectron, n_el_f, nmo, eigenvalues, occupation_numbers, mo_coeff, mo_coeff_b, uniform_occupation, kTS, mu, flexible_electron_count)
 Get the components of a MO set data structure. More...
 
subroutine, public set_mo_set (mo_set, maxocc, homo, lfomo, nao, nelectron, n_el_f, nmo, eigenvalues, occupation_numbers, uniform_occupation, kTS, mu, flexible_electron_count)
 Set the components of a MO set data structure. More...
 
logical function, public has_uniform_occupation (mo_set, first_mo, last_mo, occupation, tolerance)
 Check if the set of MOs in mo_set specifed by the MO index range [first_mo,last_mo] an integer occupation within a tolerance. More...
 

Detailed Description

Definition and initialisation of the mo data type.

History
  • adapted to the new QS environment data structure (02.04.2002,MK)
  • set_mo_occupation added (17.04.02,MK)
  • correct_mo_eigenvalues added (18.04.02,MK)
  • calculate_density_matrix moved from qs_scf to here (22.04.02,MK)
  • mo_set_p_type added (23.04.02,MK)
  • PRIVATE attribute set for TYPE mo_set_type (23.04.02,MK)
  • started conversion to LSD (1.2003, Joost VandeVondele)
  • set_mo_occupation moved to qs_mo_occupation (11.12.14 MI)
  • correct_mo_eigenvalues moved to qs_scf_methods (03.2016, Sergey Chulkov)
Author
Matthias Krack (09.05.2001,MK)

Function/Subroutine Documentation

◆ reassign_allocated_mos()

subroutine, public qs_mo_types::reassign_allocated_mos ( type(mo_set_type), intent(inout)  mo_set_new,
type(mo_set_type), intent(inout)  mo_set_old 
)

reassign an already allocated mo_set

Parameters
mo_set_new...
mo_set_old...
Date
2019-05-16
History
Author
Soumya Ghosh

Definition at line 108 of file qs_mo_types.F.

Here is the caller graph for this function:

◆ duplicate_mo_set()

subroutine, public qs_mo_types::duplicate_mo_set ( type(mo_set_type), intent(out)  mo_set_new,
type(mo_set_type), intent(in)  mo_set_old 
)

allocate a new mo_set, and copy the old data

Parameters
mo_set_new...
mo_set_old...
Date
2009-7-19
History
Author
Joost VandeVondele

Definition at line 148 of file qs_mo_types.F.

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

◆ allocate_mo_set()

subroutine, public qs_mo_types::allocate_mo_set ( type(mo_set_type), intent(inout)  mo_set,
integer, intent(in)  nao,
integer, intent(in)  nmo,
integer, intent(in)  nelectron,
real(kind=dp), intent(in)  n_el_f,
real(kind=dp), intent(in)  maxocc,
real(kind=dp), intent(in)  flexible_electron_count 
)

Allocates a mo set and partially initializes it (nao,nmo,nelectron, and flexible_electron_count are valid). For the full initialization you need to call init_mo_set.

Parameters
mo_setthe mo_set to allocate
naonumber of atom orbitals
nmonumber of molecular orbitals
nelectronnumber of electrons
n_el_f...
maxoccmaximum occupation of an orbital (LDA: 2, LSD:1)
flexible_electron_countthe number of electrons can be changed
Date
15.05.2001
History
11.2002 splitted initialization in two phases [fawzi]
Author
Matthias Krack

Definition at line 204 of file qs_mo_types.F.

Here is the caller graph for this function:

◆ init_mo_set()

subroutine, public qs_mo_types::init_mo_set ( type(mo_set_type), intent(inout)  mo_set,
type(cp_fm_pool_type), intent(in), optional  fm_pool,
type(cp_fm_type), intent(in), optional  fm_ref,
type(cp_fm_struct_type), optional, pointer  fm_struct,
character(len=*), intent(in)  name 
)

initializes an allocated mo_set. eigenvalues, mo_coeff, occupation_numbers are valid only after this call.

Parameters
mo_setthe mo_set to initialize
fm_poola pool out which you initialize the mo_set
fm_refa reference matrix from which you initialize the mo_set
fm_struct...
name...
History
11.2002 rewamped [fawzi]
Author
Fawzi Mohamed

Definition at line 244 of file qs_mo_types.F.

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

◆ mo_set_restrict()

subroutine, public qs_mo_types::mo_set_restrict ( type(mo_set_type), dimension(2), intent(in)  mo_array,
logical, intent(in), optional  convert_dbcsr 
)

make the beta orbitals explicitly equal to the alpha orbitals effectively copying the orbital data

Parameters
mo_array...
convert_dbcsr...
History
10.2004 created [Joost VandeVondele]

Definition at line 314 of file qs_mo_types.F.

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

◆ deallocate_mo_set()

subroutine, public qs_mo_types::deallocate_mo_set ( type(mo_set_type), intent(inout)  mo_set)

Deallocate a wavefunction data structure.

Parameters
mo_set...
Date
15.05.2001
Author
MK
Version
1.0

Definition at line 351 of file qs_mo_types.F.

Here is the caller graph for this function:

◆ get_mo_set()

subroutine, public qs_mo_types::get_mo_set ( type(mo_set_type), intent(in)  mo_set,
real(kind=dp), intent(out), optional  maxocc,
integer, intent(out), optional  homo,
integer, intent(out), optional  lfomo,
integer, intent(out), optional  nao,
integer, intent(out), optional  nelectron,
real(kind=dp), intent(out), optional  n_el_f,
integer, intent(out), optional  nmo,
real(kind=dp), dimension(:), optional, pointer  eigenvalues,
real(kind=dp), dimension(:), optional, pointer  occupation_numbers,
type(cp_fm_type), optional, pointer  mo_coeff,
type(dbcsr_type), optional, pointer  mo_coeff_b,
logical, intent(out), optional  uniform_occupation,
real(kind=dp), intent(out), optional  kTS,
real(kind=dp), intent(out), optional  mu,
real(kind=dp), intent(out), optional  flexible_electron_count 
)

Get the components of a MO set data structure.

Parameters
mo_set...
maxocc...
homo...
lfomo...
nao...
nelectron...
n_el_f...
nmo...
eigenvalues...
occupation_numbers...
mo_coeff...
mo_coeff_b...
uniform_occupation...
kTS...
mu...
flexible_electron_count...
Date
22.04.2002
Author
MK
Version
1.0

Definition at line 394 of file qs_mo_types.F.

◆ set_mo_set()

subroutine, public qs_mo_types::set_mo_set ( type(mo_set_type), intent(inout)  mo_set,
real(kind=dp), intent(in), optional  maxocc,
integer, intent(in), optional  homo,
integer, intent(in), optional  lfomo,
integer, intent(in), optional  nao,
integer, intent(in), optional  nelectron,
real(kind=dp), intent(in), optional  n_el_f,
integer, intent(in), optional  nmo,
real(kind=dp), dimension(:), optional, pointer  eigenvalues,
real(kind=dp), dimension(:), optional, pointer  occupation_numbers,
logical, intent(in), optional  uniform_occupation,
real(kind=dp), intent(in), optional  kTS,
real(kind=dp), intent(in), optional  mu,
real(kind=dp), intent(in), optional  flexible_electron_count 
)

Set the components of a MO set data structure.

Parameters
mo_set...
maxocc...
homo...
lfomo...
nao...
nelectron...
n_el_f...
nmo...
eigenvalues...
occupation_numbers...
uniform_occupation...
kTS...
mu...
flexible_electron_count...
Date
22.04.2002
Author
MK
Version
1.0

Definition at line 449 of file qs_mo_types.F.

Here is the caller graph for this function:

◆ has_uniform_occupation()

logical function, public qs_mo_types::has_uniform_occupation ( type(mo_set_type), intent(in)  mo_set,
integer, intent(in), optional  first_mo,
integer, intent(in), optional  last_mo,
real(kind=dp), intent(in), optional  occupation,
real(kind=dp), intent(in), optional  tolerance 
)

Check if the set of MOs in mo_set specifed by the MO index range [first_mo,last_mo] an integer occupation within a tolerance.

Parameters
mo_set:: MO set for which the uniform occupation will be checked
first_mo:: Index of first MO for the checked MO range
last_mo:: Index of last MO for the checked MO range
occupation:: Requested uniform MO occupation with the MO range
tolerance:: Requested numerical tolerance for an integer occupation
Returns
has_uniform_occupation :: boolean, true if an integer occupation is found otherwise false
History
04.08.2021 Created (MK)
Author
Matthias Krack (MK)
Version
1.0

Definition at line 502 of file qs_mo_types.F.

Here is the caller graph for this function: