Documentation for module cp_eri_mme_interface

Interface to Minimax-Ewald method for periodic ERI's to be used in CP2K.

source: cp_eri_mme_interface.F
Loading...

public Types:

cp_eri_mme_param
...

Generic procedures:

cp_eri_mme_set_params

public Subroutines/Functions:

Release eri mme data. Prints some statistics on summation methods chosen.
Read input and initialize parameter type
...
Update local counters to gather statistics on different paths taken in MME algorithm (each Ewald sum can be performed over direct or reciprocal lattice vectors)
Create main input section
Create input section for unit testing

public Types:

TYPE :: cp_eri_mme_param

...


POINTER :: logger ...
:: par ...
POINTER :: mme_section => NULL() ...
INTEGER
:: g_count_2c ...
INTEGER
:: r_count_2c ...
INTEGER
:: gg_count_3c ...
INTEGER
:: gr_count_3c ...
INTEGER
:: rr_count_3c ...
REAL(dp),
DIMENSION(3,3) :: hmat ...
REAL(dp)
:: zet_err_minimax ...
REAL(dp),
DIMENSION(:), ALLOCATABLE :: zet_err_cutoff ...
INTEGER,
DIMENSION(:), ALLOCATABLE :: l_err_cutoff ...
INTEGER
:: l_max ...
LOGICAL
:: do_calib ...


Generic procedure cp_eri_mme_set_params

...

INTENT(inout)
:: param × ×
TYPE(cell_type),
INTENT(in)
:: cell ×
INTENT(in),
POINTER
:: qs_kind_set(:) ×
CHARACTER(*),
INTENT(in)
:: basis_type_1 ×
CHARACTER(*),
INTENT(in),
OPTIONAL
:: basis_type_2 ×
INTENT(in),
POINTER
:: para_env × ×
REAL(dp),
INTENT(in)
:: hmat(3,3) ×
LOGICAL,
INTENT(in)
:: is_ortho ×
REAL(dp),
INTENT(in)
:: zet_err_minimax ×
REAL(dp),
INTENT(in)
:: zet_err_cutoff(:) ×
INTEGER,
INTENT(in)
:: l_err_cutoff(:) ×
INTEGER,
INTENT(in)
:: l_max ×

SUBROUTINEcp_eri_mme_finalize(param)

Release eri mme data. Prints some statistics on summation methods chosen.

Arguments:
INTENT(inout)
:: param ...

SUBROUTINEcp_eri_mme_init_read_input(mme_section, param)

Read input and initialize parameter type

Arguments:
POINTER
:: mme_section ...
INTENT(inout)
:: param ...

SUBROUTINEcp_eri_mme_perf_acc_test(para_env, iw, eri_mme_test_section)

...

Arguments:
INTENT(in),
POINTER
:: para_env ...
INTEGER,
INTENT(in)
:: iw ...
POINTER
:: eri_mme_test_section ...

SUBROUTINEcp_eri_mme_update_local_counts(param, para_env, g_count_2c, r_count_2c, gg_count_3c, gr_count_3c, rr_count_3c)

Update local counters to gather statistics on different paths taken in MME algorithm (each Ewald sum can be performed over direct or reciprocal lattice vectors)

Arguments:
INTENT(inout)
:: param ...
INTENT(in),
POINTER
:: para_env ...
INTEGER,
INTENT(inout),
OPTIONAL
:: g_count_2c ...
INTEGER,
INTENT(inout),
OPTIONAL
:: r_count_2c ...
INTEGER,
INTENT(inout),
OPTIONAL
:: gg_count_3c ...
INTEGER,
INTENT(inout),
OPTIONAL
:: gr_count_3c ...
INTEGER,
INTENT(inout),
OPTIONAL
:: rr_count_3c ...

SUBROUTINEcreate_eri_mme_section(section, default_n_minimax)

Create main input section

Arguments:
POINTER
:: section ...
INTEGER,
INTENT(in),
OPTIONAL
:: default_n_minimax ...

SUBROUTINEcreate_eri_mme_test_section(section)

Create input section for unit testing

Arguments:
INTENT(inout),
POINTER
:: section ...

SUBROUTINEeri_mme_set_params_from_basis(param, cell, qs_kind_set, basis_type_1, basis_type_2, para_env)

Set parameters for MME method by deriving basis info from basis set. Cutoff can be auto-calibrated to minimize total error.

Arguments:
INTENT(inout)
:: param ...
TYPE(cell_type),
INTENT(in)
:: cell ...
INTENT(in),
POINTER
:: qs_kind_set(:) ...
CHARACTER(*),
INTENT(in)
:: basis_type_1 ...
CHARACTER(*),
INTENT(in),
OPTIONAL
:: basis_type_2 ...
INTENT(in),
POINTER
:: para_env ...

SUBROUTINEeri_mme_set_params_custom(param, hmat, is_ortho, zet_err_minimax, zet_err_cutoff, l_err_cutoff, l_max, para_env)

Wrapper for eri_mme_set_params

Arguments:
INTENT(inout)
:: param ...
REAL(dp),
INTENT(in)
:: hmat(3,3) ...
LOGICAL,
INTENT(in)
:: is_ortho ...
REAL(dp),
INTENT(in)
:: zet_err_minimax ...
REAL(dp),
INTENT(in)
:: zet_err_cutoff(:) ...
INTEGER,
INTENT(in)
:: l_err_cutoff(:) ...
INTEGER,
INTENT(in)
:: l_max ...
INTENT(in),
POINTER
:: para_env ...