![]() |
(git:6344619)
|
collects routines that perform operations directly related to MOs More...
Data Types | |
| interface | calculate_subspace_eigenvalues |
| interface | make_basis_sv |
Functions/Subroutines | |
| subroutine, public | make_basis_sm (vmatrix, ncol, matrix_s) |
| returns an S-orthonormal basis v (v^T S v ==1) | |
| subroutine, public | make_basis_cholesky (vmatrix, ncol, ortho) |
| return a set of S orthonormal vectors (C^T S C == 1) where the cholesky decomposed form of S is passed as an argument | |
| subroutine, public | make_basis_lowdin (vmatrix, ncol, matrix_s) |
| return a set of S orthonormal vectors (C^T S C == 1) where a Loedwin transformation is applied to keep the rotated vectors as close as possible to the original ones | |
| subroutine, public | make_basis_simple (vmatrix, ncol) |
| given a set of vectors, return an orthogonal (C^T C == 1) set spanning the same space (notice, only for cases where S==1) | |
| subroutine, public | calculate_orthonormality (orthonormality, mo_array, matrix_s) |
| ... | |
| subroutine, public | calculate_magnitude (mo_array, mo_mag_min, mo_mag_max) |
| ... | |
| subroutine, public | make_mo_eig (mos, nspins, ks_rmpv, scf_control, mo_derivs, admm_env, hairy_probes, probe) |
| Calculate KS eigenvalues starting from OF MOS. | |
| subroutine, public | calculate_orbital_fock_elements (orbitals, ks_matrix, orbital_energies, max_offdiag) |
| Orbital energies <phi_i|F|phi_i> of a set of orbitals and the largest off-diagonal Fock matrix element max_{i/=j} |<phi_i|F|phi_j>| within the set. Unlike calculate_subspace_eigenvalues, the orbitals are not rotated and the energies belong to the given orbitals. The orbitals are canonical if the off-diagonal elements vanish. | |
| subroutine, public | make_mo_set_canonical (mo_set, ks_matrix, eps_canonical, rotated, max_offdiag, mo_derivs) |
| Rotates the orbitals of an MO set into canonical orbitals (eigenvectors of the Fock matrix in the space of the orbitals), separately within the occupied and within the unoccupied orbitals, so that the occupied space (the determinant) is unchanged. The orbitals are rotated in place: the eigenvalues, the DBCSR copy of the coefficients (if used) and the orbital derivatives (if given) are rotated consistently, C' = C U and D' = D U. Nothing is done if the orbitals are already canonical, i.e. if no off-diagonal Fock matrix element exceeds eps_canonical; orbitals of a converged diagonalization SCF are therefore never changed. Requires integer occupations (0 or the maximum occupation); fractionally occupied orbitals and ROKS orbitals must not be mixed this way. | |
collects routines that perform operations directly related to MOs
| subroutine, public qs_mo_methods::make_basis_sm | ( | type(cp_fm_type), intent(in) | vmatrix, |
| integer, intent(in) | ncol, | ||
| type(dbcsr_type), pointer | matrix_s ) |
returns an S-orthonormal basis v (v^T S v ==1)
| vmatrix | ... |
| ncol | ... |
| matrix_s | ... |
Definition at line 90 of file qs_mo_methods.F.
| subroutine, public qs_mo_methods::make_basis_cholesky | ( | type(cp_fm_type), intent(in) | vmatrix, |
| integer, intent(in) | ncol, | ||
| type(cp_fm_type), intent(in) | ortho ) |
return a set of S orthonormal vectors (C^T S C == 1) where the cholesky decomposed form of S is passed as an argument
| vmatrix | ... |
| ncol | ... |
| ortho | cholesky decomposed S matrix |
Definition at line 250 of file qs_mo_methods.F.
| subroutine, public qs_mo_methods::make_basis_lowdin | ( | type(cp_fm_type), intent(in) | vmatrix, |
| integer, intent(in) | ncol, | ||
| type(dbcsr_type) | matrix_s ) |
return a set of S orthonormal vectors (C^T S C == 1) where a Loedwin transformation is applied to keep the rotated vectors as close as possible to the original ones
| vmatrix | ... |
| ncol | ... |
| matrix_s | ... |
par History 05.2009 created [MI]
Definition at line 301 of file qs_mo_methods.F.
| subroutine, public qs_mo_methods::make_basis_simple | ( | type(cp_fm_type), intent(in) | vmatrix, |
| integer, intent(in) | ncol ) |
given a set of vectors, return an orthogonal (C^T C == 1) set spanning the same space (notice, only for cases where S==1)
| vmatrix | ... |
| ncol | ... |
Definition at line 357 of file qs_mo_methods.F.
| subroutine, public qs_mo_methods::calculate_orthonormality | ( | real(kind=dp) | orthonormality, |
| type(mo_set_type), dimension(:), intent(in) | mo_array, | ||
| type(dbcsr_type), optional, pointer | matrix_s ) |
...
| orthonormality | ... |
| mo_array | ... |
| matrix_s | ... |
Definition at line 690 of file qs_mo_methods.F.
| subroutine, public qs_mo_methods::calculate_magnitude | ( | type(mo_set_type), dimension(:), intent(in) | mo_array, |
| real(kind=dp) | mo_mag_min, | ||
| real(kind=dp) | mo_mag_max ) |
...
| mo_array | ... |
| mo_mag_min | ... |
| mo_mag_max | ... |
Definition at line 769 of file qs_mo_methods.F.
| subroutine, public qs_mo_methods::make_mo_eig | ( | type(mo_set_type), dimension(:), intent(inout) | mos, |
| integer, intent(in) | nspins, | ||
| type(dbcsr_p_type), dimension(:), pointer | ks_rmpv, | ||
| type(scf_control_type), pointer | scf_control, | ||
| type(dbcsr_p_type), dimension(:), pointer | mo_derivs, | ||
| type(admm_type), optional, pointer | admm_env, | ||
| logical, optional | hairy_probes, | ||
| type(hairy_probes_type), dimension(:), optional, pointer | probe ) |
Calculate KS eigenvalues starting from OF MOS.
| mos | ... |
| nspins | ... |
| ks_rmpv | ... |
| scf_control | ... |
| mo_derivs | ... |
| admm_env | ... |
| hairy_probes | ... |
| probe | ... |
Definition at line 824 of file qs_mo_methods.F.
| subroutine, public qs_mo_methods::calculate_orbital_fock_elements | ( | type(cp_fm_type), intent(in) | orbitals, |
| type(dbcsr_type), pointer | ks_matrix, | ||
| real(kind=dp), dimension(:), intent(out) | orbital_energies, | ||
| real(kind=dp), intent(out) | max_offdiag ) |
Orbital energies <phi_i|F|phi_i> of a set of orbitals and the largest off-diagonal Fock matrix element max_{i/=j} |<phi_i|F|phi_j>| within the set. Unlike calculate_subspace_eigenvalues, the orbitals are not rotated and the energies belong to the given orbitals. The orbitals are canonical if the off-diagonal elements vanish.
| orbitals | S-orthonormal orbitals (columns) |
| ks_matrix | Kohn-Sham or Fock matrix |
| orbital_energies | diagonal elements; filled up to MIN(SIZE, number of orbitals) |
| max_offdiag | largest off-diagonal element in absolute value |
Definition at line 911 of file qs_mo_methods.F.
| subroutine, public qs_mo_methods::make_mo_set_canonical | ( | type(mo_set_type), intent(inout) | mo_set, |
| type(dbcsr_type), pointer | ks_matrix, | ||
| real(kind=dp), intent(in) | eps_canonical, | ||
| logical, intent(out) | rotated, | ||
| real(kind=dp), intent(out) | max_offdiag, | ||
| type(dbcsr_type), optional, pointer | mo_derivs ) |
Rotates the orbitals of an MO set into canonical orbitals (eigenvectors of the Fock matrix in the space of the orbitals), separately within the occupied and within the unoccupied orbitals, so that the occupied space (the determinant) is unchanged. The orbitals are rotated in place: the eigenvalues, the DBCSR copy of the coefficients (if used) and the orbital derivatives (if given) are rotated consistently, C' = C U and D' = D U. Nothing is done if the orbitals are already canonical, i.e. if no off-diagonal Fock matrix element exceeds eps_canonical; orbitals of a converged diagonalization SCF are therefore never changed. Requires integer occupations (0 or the maximum occupation); fractionally occupied orbitals and ROKS orbitals must not be mixed this way.
| mo_set | the MO set (e.g. the SCF orbitals after an OT optimization) |
| ks_matrix | Kohn-Sham or Fock matrix |
| eps_canonical | largest off-diagonal Fock matrix element accepted as canonical |
| rotated | whether the orbitals were rotated |
| max_offdiag | largest off-diagonal Fock matrix element before the rotation |
| mo_derivs | derivatives of the energy with respect to the orbitals (OT), rotated as well |
Definition at line 979 of file qs_mo_methods.F.