Documentation for module qs_mo_types

Definition and initialisation of the mo data type.

source: qs_mo_types.F
Loading...

public Types:

mo_set_p_type
...
mo_set_type
...

public Subroutines/Functions:

Allocates a mo set and partially initializes it (nao,nmo,nelectron, and flexible_electron_count are vaild). For the full initialization you need to call init_mo_set
Deallocate a wavefunction data structure.
allocate a new mo_set, and copy the old data
Get the components of a MO set data structure.
initializes an allocated mo_set. eigenvalues, mo_coeff, occupation_numbers are valid only after this call.
make the beta orbitals explicitly equal to the alpha orbitals effectively copying the orbital data
Set the components of a MO set data structure.

public Types:

TYPE :: mo_set_p_type

...


POINTER :: mo_set ...

TYPE :: mo_set_type

...


TYPE(cp_fm_type),
POINTER :: mo_coeff ...
TYPE(dbcsr_type),
POINTER :: mo_coeff_b ...
LOGICAL
:: use_mo_coeff_b ...
INTEGER
:: nmo ...
INTEGER
:: nao ...
REAL(dp),
DIMENSION(:), POINTER :: eigenvalues ...
REAL(dp),
DIMENSION(:), POINTER :: occupation_numbers ...
REAL(dp)
:: maxocc ...
INTEGER
:: nelectron ...
REAL(dp)
:: n_el_f ...
INTEGER
:: homo ...
INTEGER
:: lfomo ...
LOGICAL
:: uniform_occupation ...
REAL(dp)
:: kts ...
REAL(dp)
:: mu ...
REAL(dp)
:: flexible_electron_count ...

SUBROUTINEallocate_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 vaild). For the full initialization you need to call init_mo_set

Arguments:
POINTER
:: mo_set the mo_set to allocate
INTEGER,
INTENT(in)
:: nao number of atom orbitals
INTEGER,
INTENT(in)
:: nmo number of molecular orbitals
INTEGER,
INTENT(in)
:: nelectron number of electrons
REAL(dp),
INTENT(in)
:: n_el_f ...
REAL(dp),
INTENT(in)
:: maxocc maximum occupation of an orbital (LDA: 2, LSD:1)
REAL(dp),
INTENT(in)
:: flexible_electron_count the number of electrons can be changed

SUBROUTINEdeallocate_mo_set(mo_set)

Deallocate a wavefunction data structure.

Arguments:
POINTER
:: mo_set ...

SUBROUTINEduplicate_mo_set(mo_set_new, mo_set_old)

allocate a new mo_set, and copy the old data

Arguments:
POINTER
:: mo_set_new ...
POINTER
:: mo_set_old ...

SUBROUTINEget_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.

Arguments:
POINTER
:: mo_set ...
REAL(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(dp),
INTENT(out),
OPTIONAL
:: n_el_f ...
INTEGER,
INTENT(out),
OPTIONAL
:: nmo ...
REAL(dp),
OPTIONAL, POINTER
:: eigenvalues(:) ...
REAL(dp),
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(dp),
INTENT(out),
OPTIONAL
:: kts ...
REAL(dp),
INTENT(out),
OPTIONAL
:: mu ...
REAL(dp),
INTENT(out),
OPTIONAL
:: flexible_electron_count ...

SUBROUTINEinit_mo_set(mo_set, fm_pool, fm_ref, name)

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

Arguments:
POINTER
:: mo_set the mo_set to initialize
OPTIONAL, POINTER
:: fm_pool a pool out which you initialize the mo_set
TYPE(cp_fm_type),
OPTIONAL, POINTER
:: fm_ref a reference matrix from which you initialize the mo_set
CHARACTER(*),
INTENT(in)
:: name ...

SUBROUTINEmo_set_restrict(mo_array, convert_dbcsr)

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

Arguments:
POINTER
:: mo_array(:) ...
LOGICAL,
INTENT(in),
OPTIONAL
:: convert_dbcsr ...

SUBROUTINEset_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.

Arguments:
POINTER
:: mo_set ...
REAL(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(dp),
INTENT(in),
OPTIONAL
:: n_el_f ...
INTEGER,
INTENT(in),
OPTIONAL
:: nmo ...
REAL(dp),
OPTIONAL, POINTER
:: eigenvalues(:) ...
REAL(dp),
OPTIONAL, POINTER
:: occupation_numbers(:) ...
LOGICAL,
INTENT(in),
OPTIONAL
:: uniform_occupation ...
REAL(dp),
INTENT(in),
OPTIONAL
:: kts ...
REAL(dp),
INTENT(in),
OPTIONAL
:: mu ...
REAL(dp),
INTENT(in),
OPTIONAL
:: flexible_electron_count ...