![]() |
(git:f56c6e3)
|
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.