13 USE dbcsr_api,
ONLY: dbcsr_distribution_release,&
14 dbcsr_distribution_type,&
21 #include "./base/base_uses.f90"
27 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'pao_types'
29 PUBLIC :: pao_env_type, training_matrix_type,
pao_finalize
32 CHARACTER(LEN=default_path_length) :: fn =
""
33 END TYPE filename_type
44 TYPE training_matrix_type
45 CHARACTER(LEN=default_string_length) :: kindname =
""
46 REAL(dp),
DIMENSION(:, :),
ALLOCATABLE :: inputs
47 REAL(dp),
DIMENSION(:, :),
ALLOCATABLE :: outputs
48 REAL(dp),
DIMENSION(:),
ALLOCATABLE :: prior
49 REAL(dp),
DIMENSION(:, :, :),
ALLOCATABLE :: NN
50 REAL(dp),
DIMENSION(:, :),
ALLOCATABLE :: GP
51 END TYPE training_matrix_type
128 REAL(KIND=
dp) :: eps_pao = 0.0_dp
129 REAL(KIND=
dp) :: cg_reset_limit = 0.1_dp
130 REAL(KIND=
dp) :: mixing = 0.0_dp
131 REAL(KIND=
dp) :: regularization = 0.0_dp
132 REAL(KIND=
dp) :: penalty_dist = 0.0_dp
133 REAL(KIND=
dp) :: penalty_strength = 0.0_dp
134 REAL(KIND=
dp) :: check_unitary_tol = 0.0_dp
135 REAL(KIND=
dp) :: check_grad_tol = 0.0_dp
136 REAL(KIND=
dp) :: num_grad_eps = 0.0_dp
137 REAL(KIND=
dp) :: eps_pgf = 0.0_dp
138 REAL(KIND=
dp) :: linpot_precon_delta = 0.0_dp
139 REAL(KIND=
dp) :: linpot_init_delta = 0.0_dp
140 REAL(KIND=
dp) :: linpot_regu_delta = 0.0_dp
141 REAL(KIND=
dp) :: linpot_regu_strength = 0.0_dp
142 INTEGER :: num_grad_order = -1
143 INTEGER :: max_pao = -1
144 INTEGER :: max_cycles = -1
145 INTEGER :: write_cycles = -1
146 INTEGER :: parameterization = -1
147 INTEGER :: optimizer = -1
148 INTEGER :: cg_init_steps = -1
149 LOGICAL :: precondition = .false.
150 CHARACTER(LEN=default_path_length) :: preopt_dm_file =
""
151 CHARACTER(LEN=default_path_length) :: restart_file =
""
152 TYPE(filename_type),
DIMENSION(:),
ALLOCATABLE :: ml_training_set
154 INTEGER :: ml_method = -1
155 INTEGER :: ml_prior = -1
156 INTEGER :: ml_descriptor = -1
157 REAL(KIND=
dp) :: ml_tolerance = 0.0_dp
158 REAL(KIND=
dp) :: gp_noise_var = 0.0_dp
159 REAL(KIND=
dp) :: gp_scale = 0.0_dp
163 INTEGER :: iw_atoms = -1
164 INTEGER :: iw_gap = -1
165 INTEGER :: iw_fockev = -1
166 INTEGER :: iw_opt = -1
167 INTEGER :: iw_mlvar = -1
168 INTEGER :: iw_mldata = -1
171 INTEGER :: istep = -1
172 REAL(KIND=
dp) :: energy_prev = 0.0_dp
173 REAL(KIND=
dp) :: step_start_time = 0.0_dp
174 REAL(KIND=
dp) :: norm_g = 0.0_dp
175 TYPE(linesearch_type) :: linesearch = linesearch_type()
176 LOGICAL :: matrix_X_ready = .false.
177 LOGICAL :: matrix_P_ready = .false.
178 LOGICAL :: constants_ready = .false.
179 LOGICAL :: need_initial_scf = .false.
182 TYPE(dbcsr_type) :: matrix_X
183 TYPE(dbcsr_type) :: matrix_U0
184 TYPE(dbcsr_type) :: matrix_H0
185 TYPE(dbcsr_type) :: matrix_Y
186 TYPE(dbcsr_type) :: matrix_N
187 TYPE(dbcsr_type) :: matrix_N_diag
188 TYPE(dbcsr_type) :: matrix_N_inv
189 TYPE(dbcsr_type) :: matrix_N_inv_diag
190 TYPE(dbcsr_type) :: matrix_X_orig
191 TYPE(dbcsr_type) :: matrix_G
192 TYPE(dbcsr_type) :: matrix_G_prev
193 TYPE(dbcsr_type) :: matrix_D
194 TYPE(dbcsr_type) :: matrix_D_preconed
195 TYPE(dbcsr_type) :: matrix_V_terms
196 TYPE(dbcsr_type) :: matrix_BFGS
197 TYPE(dbcsr_type) :: matrix_precon
198 TYPE(dbcsr_type) :: matrix_precon_inv
199 TYPE(dbcsr_type) :: matrix_R
201 TYPE(training_matrix_type),
ALLOCATABLE, &
202 DIMENSION(:) :: ml_training_matrices
204 TYPE(dbcsr_distribution_type) :: diag_distribution
214 TYPE(pao_env_type) :: pao
216 CHARACTER(len=*),
PARAMETER :: routinen =
'pao_finalize'
220 CALL timeset(routinen, handle)
222 CALL dbcsr_release(pao%matrix_X)
223 CALL dbcsr_release(pao%matrix_Y)
224 CALL dbcsr_release(pao%matrix_N)
225 CALL dbcsr_release(pao%matrix_N_diag)
226 CALL dbcsr_release(pao%matrix_N_inv)
227 CALL dbcsr_release(pao%matrix_N_inv_diag)
228 CALL dbcsr_release(pao%matrix_H0)
230 DEALLOCATE (pao%ml_training_set)
231 IF (
ALLOCATED(pao%ml_training_matrices)) &
232 DEALLOCATE (pao%ml_training_matrices)
234 CALL dbcsr_distribution_release(pao%diag_distribution)
238 CALL timestop(handle)
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
integer, parameter, public default_path_length
A generic framework to calculate step lengths for 1D line search.
Types used by the PAO machinery.
subroutine, public pao_finalize(pao)
Finalize the PAO environment.