Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | conv_none | = | 1 | |
integer, | public, | parameter | :: | conv_cdiis | = | 2 | |
integer, | public, | parameter | :: | conv_ediis | = | 3 | |
integer, | public, | parameter | :: | conv_adiis | = | 4 | |
integer, | public, | parameter | :: | conv_dtype_fock | = | 1 | |
integer, | public, | parameter | :: | conv_dtype_err | = | 2 | |
integer, | public, | parameter | :: | conv_dtype_density | = | 3 | |
integer, | public, | parameter | :: | conv_dtype_energy | = | 4 | |
integer, | public, | parameter | :: | conv_state_not_initialized | = | 0 | |
integer, | public, | parameter | :: | conv_state_initialized | = | 1 | |
integer, | public, | parameter | :: | conv_name_maxlen | = | 32 |
@brief Base type for SCF converger results
@detail It is used by main SCF convergence driver scf_conv
The extending type should provide the following interfaces:
init : preliminary initialization of internal subconverger data
clean : destructor
setup : setting-up of the sub-converger equations, taking into the account the new data
added in main SCF driver
run : solving the equations, returns scf_conv_result
datatype. Multiple subsequent calls to
this procedure without re-running setup
should not change internal state and have to give same results
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | ierr | = | 5 | ||
real(kind=dp), | public | :: | error | = | 1.0e99_dp | ||
type(converger_data), | public, | pointer | :: | dat | => | null() | |
character(len=conv_name_maxlen), | public | :: | active_converger_name | = | '' |
procedure, public, pass :: get_fock => conv_result_dummy_get_fock | |
procedure, public, pass :: get_density => conv_result_dummy_get_density |
@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 |
procedure, public, pass :: init => scf_conv_init | |
procedure, public, pass :: clean => scf_conv_clean | |
procedure, public, pass :: add_data => scf_conv_add_data | |
procedure, public, pass :: run => scf_conv_run |