EZFIO

EZFIO.cfg

The simplest way to add control parameters in the EZFIO directory is to create a EZFIO.cfg file in the module. An example can be found in existing modules such as hartree_fock:

[max_dim_diis]
type: integer
doc: Maximum size of the |DIIS| extrapolation procedure
interface: ezfio,provider,ocaml
default: 15

[threshold_diis]
type: Threshold
doc: Threshold on the convergence of the |DIIS| error vector during a Hartree-Fock calculation. If 0. is chosen, the square root of thresh_scf will be used.
interface: ezfio,provider,ocaml
default: 0.

[thresh_scf]
type: Threshold
doc: Threshold on the convergence of the Hartree Fock energy.
interface: ezfio,provider,ocaml
default: 1.e-10

The syntax obeys the following rules:

Required

[<provider_name>]

The name of the provider in irp.f90 and in the EZFIO lib

doc:<str>

The plain text documentation

type:<str>

A type supported by the OCaml modules. The complete list of supported types can be obtained by:

ei_handler.py list_supported_types
interface:<str>

The interface is a list of strings sepeared by “,” which can contain :

  • ezfio : to build the EZFIO API
  • provider : to build the corresponding providers
  • ocaml : to build the corresponding bindings in OCaml

If an EZFIO.cfg file is used, the compilation of the module will generate the ezfio_interface.irp.f file which contains the generated providers. This file should not be added to the repository

Optional

default:<str>

The default value needed if ocaml is in interface list. No default can be set for arrays.

size:<str>

The size of the variable, which is one by default (scalar).

Examples : 1; =sum(ao_num); (ao_basis.ao_num,3)

Warning

The module and the value are separed by a . not a _. For example (determinants.n_det)

ezfio_name:<str>

The name in the EZFIO API (by default is <provider_name>)

*.ezfio_config

It is possible to directly add to the current module EZFIO configuration files, named with the .ezfio_config suffix. An example is in the bitmask module.

bitmasks
   N_int         integer
   bit_kind      integer
   N_mask_gen    integer
   generators    integer*8 (bitmasks_N_int*bitmasks_bit_kind/8,2,6,bitmasks_N_mask_gen)
   N_mask_cas    integer
   cas           integer*8 (bitmasks_N_int*bitmasks_bit_kind/8,2,bitmasks_N_mask_cas)