@brief Main driver for converging SCF problems @detail Manages and runs different real convergers depending on the current state of SCF optimization
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | step | ||||
real(kind=dp), | public, | pointer | :: | overlap(:,:) | => | null() | |
real(kind=dp), | public, | pointer | :: | overlap_sqrt(:,:) | => | null() | |
type(converger_data), | public | :: | dat | ||||
type(subconverger_), | public, | allocatable | :: | sconv(:) | |||
real(kind=dp), | public, | allocatable | :: | thresholds(:) | |||
integer, | public | :: | iter_space_size | = | 10 | ||
integer, | public | :: | verbose | = | 0 | ||
integer, | public | :: | state | = | 0 | ||
real(kind=dp), | public | :: | current_error | = | 1.0e99_dp |
@brief Initializes the SCF converger driver @param[in] ldim Number of orbitals @param[in] maxvec Size of SCF converger linear space, e.g. number of DIIS vectors @param[in] subconvergers Array of SCF subconverger codes @param[in] thresholds Thresholds to initate subconverger subconvergers[i] runs when current error is less than thresholds[i] @param[in] overlap overlap matrix (S) in full format @param[in] overlap_sqrt S^(1/2) matrix in full format @param[in] num_focks 1 if R/ROHF, 2 if UHF @param[in] verbose sets verbosity
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scf_conv) | :: | self | ||||
integer, | intent(in) | :: | ldim | |||
integer, | intent(in), | optional | :: | maxvec | ||
integer, | intent(in), | optional | :: | subconvergers(:) | ||
real(kind=dp), | intent(in), | optional | :: | thresholds(:) | ||
real(kind=dp), | intent(in), | optional, | target | :: | overlap(:,:) | |
real(kind=dp), | intent(in), | optional, | target | :: | overlap_sqrt(:,:) | |
integer, | intent(in), | optional | :: | num_focks | ||
integer, | intent(in), | optional | :: | verbose |
@brief Finalize scf_conv datatype
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scf_conv) | :: | self |
@brief Store the data from the new SCF iteration @param[in] f Fock matrix/matrices @param[in] dens Density matrix/matrices @param[in] e SCF energy
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scf_conv), | intent(inout) | :: | self | |||
real(kind=dp), | intent(in) | :: | f(:,:) | |||
real(kind=dp), | intent(in) | :: | dens(:,:) | |||
real(kind=dp), | intent(in), | optional | :: | e |
@brief Computes the new guess to the SCF wavefunction @param[out] conv_result results of the calculation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(scf_conv), | target | :: | self | |||
class(scf_conv_result), | allocatable | :: | conv_result |