Documentation for module pao_types

Types used by the PAO machinery

source: pao_types.F
Loading...

public Types:

pao_env_type
The PAO environment type
training_matrix_type
PAO machine learning data for one atomic kind

public Subroutines/Functions:

SUBROUTINE
pao_finalize (pao)
Finalize the PAO environment

public Types:

TYPE :: pao_env_type

The PAO environment type


REAL(dp)
:: eps_pao = 0.0_DP parsed input parameter
REAL(dp)
:: cg_reset_limit = 0.1_DP parsed input parameter
REAL(dp)
:: mixing = 0.0_DP parsed input parameter
REAL(dp)
:: regularization = 0.0_DP parsed input parameter
REAL(dp)
:: penalty_dist = 0.0_DP parsed input parameter
REAL(dp)
:: penalty_strength = 0.0_DP parsed input parameter
REAL(dp)
:: check_unitary_tol = 0.0_DP parsed input parameter
REAL(dp)
:: check_grad_tol = 0.0_DP parsed input parameter
REAL(dp)
:: num_grad_eps = 0.0_DP parsed input parameter
REAL(dp)
:: eps_pgf = 0.0_DP parsed input parameter
REAL(dp)
:: linpot_precon_delta = 0.0_DP parsed input parameter
REAL(dp)
:: linpot_init_delta = 0.0_DP parsed input parameter
REAL(dp)
:: linpot_regu_delta = 0.0_DP parsed input parameter
REAL(dp)
:: linpot_regu_strength = 0.0_DP parsed input parameter
INTEGER
:: num_grad_order = -1 parsed input parameter
INTEGER
:: max_pao = -1 parsed input parameter
INTEGER
:: max_cycles = -1 parsed input parameter
INTEGER
:: write_cycles = -1 parsed input parameter
INTEGER
:: parameterization = -1 parsed input parameter
INTEGER
:: optimizer = -1 parsed input parameter
INTEGER
:: cg_init_steps = -1 parsed input parameter
LOGICAL
:: precondition = .FALSE. parsed input parameter
:: preopt_dm_file = "" parsed input parameter
:: restart_file = "" parsed input parameter
DIMENSION(:), ALLOCATABLE :: ml_training_set parsed input parameter
INTEGER
:: ml_method = -1 parsed input parameter
INTEGER
:: ml_prior = -1 parsed input parameter
INTEGER
:: ml_descriptor = -1 parsed input parameter
REAL(dp)
:: ml_tolerance = 0.0_DP parsed input parameter
REAL(dp)
:: gp_noise_var = 0.0_DP parsed input parameter
REAL(dp)
:: gp_scale = 0.0_DP parsed input parameter
INTEGER
:: iw = -1 output unit for pao in general
INTEGER
:: iw_atoms = -1 output unit for one line summary for each atom
INTEGER
:: iw_gap = -1 output unit for gap of the fock matrix
INTEGER
:: iw_fockev = -1 output unit for eigenvalues of the fock matrix
INTEGER
:: iw_opt = -1 output unit for pao optimizer
INTEGER
:: iw_mlvar = -1 output unit for variances of machine learning predictions
INTEGER
:: iw_mldata = -1 output unit for dumping training data used for machine learning
INTEGER
:: istep = -1 counts pao iterations, ie. number of pao energy evaluations
REAL(dp)
:: energy_prev = 0.0_DP energy of previous pao step
REAL(dp)
:: step_start_time = 0.0_DP timestamp of when current pao step started
REAL(dp)
:: norm_g = 0.0_DP frobenius-norm of matrix_G or matrix_G_preconed
:: linesearch holds linesearch state
LOGICAL
:: matrix_x_ready = .FALSE. set when matrix_X is initialized
LOGICAL
:: matrix_p_ready = .FALSE. set when density matrix is initialized
LOGICAL
:: constants_ready = .FALSE. set when stuff, which does not depend of atomic positions is ready
LOGICAL
:: need_initial_scf = .FALSE. set when the initial density matrix is not self-consistend
:: matrix_x parameters of pao basis, which eventually determine matrix_U. Uses diag_distribution.
:: matrix_u roation matrix derived from matrix_X. Uses diag_distribution.
:: matrix_u0 constant pre-rotation which serves as initial guess for exp-parametrization. Uses diag_distribution.
:: matrix_h0 Diagonal blocks of core hamiltonian, uses diag_distribution
:: matrix_y selector matrix which translates between primary and pao basis. basically a block diagonal "rectangular identity matrix". Uses s_matrix-distribution.
:: matrix_n diagonal matrix filled with 1/sqrt(S) from primary overlap matrix. Uses s_matrix-distribution.
:: matrix_n_inv diagonal matrix filled with sqrt(S) from primary overlap matrix. Uses s_matrix-distribution.
:: matrix_n_diag copy of matrix_N using diag_distribution
:: matrix_x_orig copy made of matrix_X at beginning of optimization cylce, used for mixing. Uses diag_distribution.
:: matrix_g derivative of pao-energy wrt to matrix_X, ie. the pao-gradient. Uses diag_distribution.
:: matrix_g_prev copy of gradient from previous step, used for conjugate gradient method. Uses diag_distribution.
:: matrix_d Current line-search direction, used for conjugate gradient method. Uses diag_distribution.
:: matrix_d_preconed Current line-search direction with preconditioner applied. This copy is keept, because application of inverse preconditioner introduces too much numeric noise. Uses diag_distribution.
:: matrix_v_terms Potential terms, used by linpot and gth parametrization, Uses diag_distribution.
:: matrix_bfgs Approximate inverse hessian, used by BFGS optimizer, Uses diag_distribution.
:: matrix_precon preconditioner, uses diag_distribution.
:: matrix_precon_inv inverse of matrix_precon, uses diag_distribution.
:: matrix_r Rgularization, uses diag_distribution
ALLOCATABLE, DIMENSION(:) :: ml_training_matrices holds training data and trained machine learning model
:: diag_distribution DBCSR distribution to spreads diagonal blocks evenly across ranks

TYPE :: training_matrix_type

PAO machine learning data for one atomic kind


:: kindname = "" name of atomic kind
REAL(dp),
DIMENSION(:,:), ALLOCATABLE :: inputs training points
REAL(dp),
DIMENSION(:,:), ALLOCATABLE :: outputs training points
REAL(dp),
DIMENSION(:), ALLOCATABLE :: prior constant prior which is added to prediction
REAL(dp),
DIMENSION(:,:,:), ALLOCATABLE :: nn trained neural network
REAL(dp),
DIMENSION(:,:), ALLOCATABLE :: gp trained gaussian process

SUBROUTINEpao_finalize(pao)

Finalize the PAO environment

Arguments:
:: pao ...

private Parameters/Types:

private Types:

TYPE :: filename_type

...


:: fn ...