Documentation for module admm_types

Types and set/get functions for auxiliary denisty matrix methods

source: admm_types.F
Loading...

public Types:

admm_type
stores some data used in wavefunction fitting

public Subroutines/Functions:

creates ADMM environment, initializes the basic types
releases the ADMM environment, cleans up all types

public Types:

TYPE :: admm_type

stores some data used in wavefunction fitting


TYPE(cp_fm_type),
POINTER :: s_inv => NULL() ...
TYPE(cp_fm_type),
POINTER :: s => NULL() overlap matrix for auxiliary fit basis set
TYPE(cp_fm_type),
POINTER :: q => NULL() ...
TYPE(cp_fm_type),
POINTER :: a => NULL() contains inv(S)*P
TYPE(cp_fm_type),
POINTER :: b => NULL() contains transpose(P)*inv(S)*P = transpose(P)*A
TYPE(cp_fm_type),
POINTER :: work_orb_orb => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_orb_orb2 => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_orb_orb3 => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_aux_orb => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_aux_orb2 => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_aux_orb3 => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_aux_aux => NULL() temporary matrix
TYPE(cp_fm_type),
POINTER :: work_aux_aux2 => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_aux_aux3 => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_aux_aux4 => NULL() ...
TYPE(cp_fm_type),
POINTER :: work_aux_aux5 => NULL() ...
DIMENSION(:), POINTER :: lambda => NULL() contains transpose(mo_coeff_aux_fit)*B*mo_coeff_aux_fit
DIMENSION(:), POINTER :: lambda_inv => NULL() ...
DIMENSION(:), POINTER :: lambda_inv_sqrt => NULL() contains inv(SQRT(lambda))
DIMENSION(:), POINTER :: r => NULL() contains eigenvectors of lambda
DIMENSION(:), POINTER :: r_purify => NULL() ...
DIMENSION(:), POINTER :: work_orb_nmo => NULL() temporary matrix
DIMENSION(:), POINTER :: work_nmo_nmo1 => NULL() temporary matrix
DIMENSION(:), POINTER :: r_schur_r_t => NULL() ...
DIMENSION(:), POINTER :: work_nmo_nmo2 => NULL() temporary matrix
DIMENSION(:), POINTER :: work_aux_nmo => NULL() temporary matrix
DIMENSION(:), POINTER :: work_aux_nmo2 => NULL() ...
DIMENSION(:), POINTER :: h => NULL() contains KS_matrix * mo_coeff for auxiliary basis set
DIMENSION(:), POINTER :: h_corr => NULL() ...
DIMENSION(:), POINTER :: mo_derivs_tmp => NULL() ...
DIMENSION(:), POINTER :: k => NULL() contains KS matrix for auxiliary basis set
DIMENSION(:), POINTER :: m => NULL() contains matrix holding the 2nd order residues
DIMENSION(:), POINTER :: m_purify => NULL() ...
DIMENSION(:), POINTER :: p_to_be_purified => NULL() ...
DIMENSION(:), POINTER :: lambda_inv2 => NULL() ...
DIMENSION(:), POINTER :: c_hat => NULL() ...
DIMENSION(:), POINTER :: p_tilde => NULL() ...
DIMENSION(:), POINTER :: ks_to_be_merged => NULL() ...
DIMENSION(:), POINTER :: eigvals_lambda => NULL() ...
DIMENSION(:), POINTER :: eigvals_p_to_be_purified => NULL() ...
POINTER :: xc_section_primary => NULL() ...
POINTER :: xc_section_aux => NULL() ...
REAL(dp)
:: gsi contains ratio N_dens_m/N_aux_dens_m
REAL(dp)
:: lambda_merlot ...
REAL(dp)
:: n_large_basis ...
INTEGER
:: nao_orb number of atomic orbitals in orb basis set
INTEGER
:: nao_aux_fit number of atomic orbitals in aux basis set
INTEGER
:: nmo number of molecular orbitals per spin
INTEGER
:: purification_method ...
LOGICAL
:: charge_constrain = .FALSE. ...
INTEGER
:: scaling_model ...
INTEGER
:: aux_exch_func ...
LOGICAL
:: aux_exch_func_param ...
REAL(dp),
DIMENSION(3) :: aux_x_param ...
LOGICAL
:: block_dm = .FALSE. ...
LOGICAL
:: block_fit = .FALSE. ...
INTEGER,
DIMENSION(:,:), POINTER :: block_map => NULL() ...

SUBROUTINEadmm_env_create(admm_env, admm_control, mos, mos_aux_fit, para_env, natoms)

creates ADMM environment, initializes the basic types

Arguments:
TYPE(admm_type),
POINTER
:: admm_env The ADMM env
POINTER
:: admm_control ...
POINTER
:: mos(:) the MO's of the orbital basis set
POINTER
:: mos_aux_fit(:) the MO's of the auxiliary fitting basis set
POINTER
:: para_env The parallel env
INTEGER,
INTENT(in)
:: natoms ...

SUBROUTINEadmm_env_release(admm_env)

releases the ADMM environment, cleans up all types

Arguments:
TYPE(admm_type),
POINTER
:: admm_env The ADMM env

private Parameters/Types:

private Types:

TYPE :: eigvals_p_type

...


POINTER :: eigvals ...

TYPE :: eigvals_type

...


REAL(dp),
DIMENSION(:), POINTER :: data ...