![]() |
(git:9754b87)
|
Definition and initialisation of the mo data type. More...
Data Types | |
type | mo_set_p_type |
type | mo_set_type |
Functions/Subroutines | |
subroutine, public | reassign_allocated_mos (mo_set_new, mo_set_old) |
reassign an already allocated mo_set | |
subroutine, public | duplicate_mo_set (mo_set_new, mo_set_old) |
allocate a new mo_set, and copy the old data | |
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. | |
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. | |
subroutine, public | mo_set_restrict (mo_array, convert_dbcsr) |
make the beta orbitals explicitly equal to the alpha orbitals effectively copying the orbital data | |
subroutine, public | deallocate_mo_set (mo_set) |
Deallocate a wavefunction data structure. | |
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. | |
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. | |
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. | |
Definition and initialisation of the mo data type.
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
mo_set_new | ... |
mo_set_old | ... |
Definition at line 108 of file qs_mo_types.F.
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
mo_set_new | ... |
mo_set_old | ... |
Definition at line 148 of file qs_mo_types.F.
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.
mo_set | the mo_set to allocate |
nao | number of atom orbitals |
nmo | number of molecular orbitals |
nelectron | number of electrons |
n_el_f | ... |
maxocc | maximum occupation of an orbital (LDA: 2, LSD:1) |
flexible_electron_count | the number of electrons can be changed |
Definition at line 204 of file qs_mo_types.F.
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.
mo_set | the mo_set to initialize |
fm_pool | a pool out which you initialize the mo_set |
fm_ref | a reference matrix from which you initialize the mo_set |
fm_struct | ... |
name | ... |
Definition at line 244 of file qs_mo_types.F.
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
mo_array | ... |
convert_dbcsr | ... |
Definition at line 314 of file qs_mo_types.F.
subroutine, public qs_mo_types::deallocate_mo_set | ( | type(mo_set_type), intent(inout) | mo_set | ) |
Deallocate a wavefunction data structure.
mo_set | ... |
Definition at line 351 of file qs_mo_types.F.
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.
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 | ... |
Definition at line 394 of file qs_mo_types.F.
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.
mo_set | ... |
maxocc | ... |
homo | ... |
lfomo | ... |
nao | ... |
nelectron | ... |
n_el_f | ... |
nmo | ... |
eigenvalues | ... |
occupation_numbers | ... |
uniform_occupation | ... |
kTS | ... |
mu | ... |
flexible_electron_count | ... |
Definition at line 449 of file qs_mo_types.F.
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.
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 |
Definition at line 502 of file qs_mo_types.F.