Set of quantum chemistry programs and libraries. (under GNU GENERAL PUBLIC LICENSE v2)
For more information, you can visit the wiki of the project, or below for the installation instructions.
- Fortran compiler (
ifort
andgfortran
are tested) - Python >= 2.6
- GNU make
- Bash
- Blast/Lapack
- unzip
- g++ (For ninja)
$ ./configure <config_file> (--production | --development)
For example you can type ./configure config/gfortran.cfg --production
This command has two purposes :
- Download and install all the requirements. Installing OCaml and the Core library may take some time (up to 20min on an old machine).
- Create the file which contains all the dependencies for the binaries.
It's not a Makefile, but a Ninja file (so don't typemake
is hopeless, typeninja
instead)
####Compilation Flags (<config_file>
)
<config_file>
is the path to the file which contains all the compilation flags (optimization flags, Lapack libary, etc). There are two example configure files in $QP_ROOT/config
: ifort.cfg
and gfortran.cfg
. You can copy these files to create a new file adapted to your architecture.
- If you only want the binaries (for production workflow) use the flag
--production
. It compiles faster. - Else if you are a developer and you want to be able to compile specific modules use:
--development
. It will create thebuild.ninja
in each module.
source quantum_package.rc
This file contains all the environment variables needed by the quantum package both to compile and run. This should also be done before running calculations.
Usage:
qp_module.py create -n <name> [<children_modules>...]
qp_module.py download -n <name> [<path_folder>...]
qp_module.py install <name>...
qp_module.py list (--installed | --available-local)
qp_module.py uninstall <name>
For exemple you can type :
qp_module.py install Full_CI
Just type ninja
if you are in $QP_ROOT
(or ninja -f $QP_ROOT/build.ninja
elsewhere). The compilation will take approximately 3 min.
If you have set the --developement
flag you can go in any module directory and run ninja
to build only this particular module. You can type ninja all
in a module to compile all the submodules.
make -C ocaml
cd tests ; bats bats/qp.bats
##Format specification :
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.
type `ei_handler.py get_supported_type` for a list
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
Optional:
default: <str> The default value,
needed if 'ocaml' is in interface list.
! No list is allowed for now !
size: <str> The size information.
(by default is one)
Example : 1; =sum(ao_num); (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_dir: <str> Will be the directory of EZFIO.
(by default is <module_lower>)
##Example of EZFIO.cfg:
[thresh_SCF]
doc: Threshold on the convergence of the Hartree Fock energy
type: Threshold
default: 1.e-10
interface: provider,ezfio,ocaml
size: 1
[energy]
type: Strictly_negative_float
doc: Calculated HF energy
interface: ezfio
#FAQ
You have two or more ezfio configuration files for the same variable. Check files in $QP_ROOT/install/EZFIO/config/
- rm $QP_ROOT/install/EZFIO/config/*
- ninja
Segmentation fault (core dumped)
Program exited with code 139.
It's caused when we call the DGEM routine of LAPACK.
Set ulimit -s unlimited
, before runing qp_run
. It seem to fix the problem.