10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-23 21:03:56 +01:00
This repository is version 1 of QP. This version is not supported any more. Version 2 is available here : https://github.com/QuantumPackage/qp2
Go to file
Anthony Scemama 873035e016 Squashed commit of the following:
commit 4b9c435dce0f3b3078d573e66fd32b40fca26497
Merge: 74e559c8 093e3fd0
Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
Date:   Tue Sep 4 16:58:51 2018 +0200

    Merge branch 'thesis' of git://github.com/garniron/quantum_package into garniron-thesis

commit 093e3fd021
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Tue Sep 4 16:13:00 2018 +0200

    removed ungodly hack

commit 8529a0f3f6
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Tue Sep 4 14:57:19 2018 +0200

    reduced prints in pt2_stoch

commit 03b8f353bd
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Tue Sep 4 14:41:46 2018 +0200

    teeth building check for pt2_stoch

commit 0d91b9310a
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Tue Sep 4 14:35:04 2018 +0200

    timestamp of first pull

commit 34d9fa0165
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Tue Sep 4 14:27:10 2018 +0200

    potential numerical precision bug

commit 9a0f900d8c
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Tue Sep 4 14:09:51 2018 +0200

    tests if teeth can be built

commit dda0dc34df
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Mon Sep 3 17:48:04 2018 +0200

    corrected pt2_find_sample

commit a521f0cb82
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Mon Sep 3 16:08:02 2018 +0200

    tasks get by batches of Nproc

commit 997a5a1265
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Mon Sep 3 14:18:04 2018 +0200

    buffered task_id send

commit 99ea7948e0
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Mon Sep 3 12:29:12 2018 +0200

    unbalanced fragmentation

commit abb3b7e08b
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Sun Sep 2 17:18:44 2018 +0200

    overflow of pt2_J

commit 8df49f394b
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Sun Sep 2 15:58:48 2018 +0200

    removed useless computation of intermediate checkpoints

commit 4ba5b79eb3
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Sun Sep 2 15:50:14 2018 +0200

    dressing only sent for chosen checkpoint

commit a4a6a69459
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Sat Sep 1 17:01:56 2018 +0200

    cumulative dot_F

commit 6a7f04cb79
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Sat Sep 1 16:58:07 2018 +0200

    simpler purge

commit 168ca2f2e2
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Fri Aug 31 21:07:01 2018 +0200

    task list optimized

commit de4a0d0caf
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Fri Aug 31 18:57:03 2018 +0200

    removed print

commit fee31d4e3e
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Fri Aug 31 18:56:23 2018 +0200

    dress fragmentation

commit 02893a419d
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Fri Aug 31 15:52:16 2018 +0200

    bug in blocked search - replaced with thesis version

commit bb6e073cf1
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Thu Aug 30 21:24:45 2018 +0200

    ungodly hack to prevent double providing

commit 0609e8c627
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Thu Aug 30 20:52:05 2018 +0200

    debugging

commit a254fdd7cf
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Thu Aug 30 15:24:07 2018 +0200

    parallel bug

commit 2a6c1941d4
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Thu Aug 30 11:43:11 2018 +0200

    corrected when relative_error=0d0

commit bac039bdf1
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Thu Aug 30 10:58:17 2018 +0200

    relative error 1d-5

commit aae9d203ec
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Thu Aug 30 10:07:02 2018 +0200

    potential fragmentation bug

commit ad69f39f99
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Wed Aug 29 20:54:58 2018 +0200

    dress_zmq re-implemented

commit d78f64732a
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Wed Aug 29 11:30:19 2018 +0200

    pt2_stoch re-implemented

commit 4b9b54e19a
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Tue Aug 28 10:24:38 2018 +0200

    removed test for phase_mask_bit

commit 3abccca5e3
Author: Yann Garniron <yann.garniron@yahoo.fr>
Date:   Fri Aug 3 23:44:05 2018 +0200

    phasemask_bit
2018-09-04 17:31:45 +02:00
bin Fixed gaspi_command 2017-07-22 13:16:12 +02:00
config Merge branch 'alpha_factory' of github.com:garniron/quantum_package 2018-02-26 19:06:11 +01:00
data Save MRCC WF 2018-07-24 17:59:14 +02:00
doc fix #169 2016-10-24 16:54:54 -05:00
include Updated install scripts 2016-12-02 12:04:38 +01:00
install Updated f77zmq install 2018-07-27 11:09:39 +02:00
lib Add Downloads and lib 2015-06-08 15:02:08 +02:00
ocaml EZFIO file in Bk 2018-06-27 15:42:44 +02:00
plugins Squashed commit of the following: 2018-09-04 17:31:45 +02:00
promela Promela model 2017-05-02 22:53:59 +02:00
scripts Restored convert_to_cartesian in resultsFile 2018-07-03 16:22:07 +02:00
src Squashed commit of the following: 2018-09-04 17:31:45 +02:00
tests Fixed mrcepa0 tests 2018-07-30 19:37:36 +02:00
.gitattributes Added gitattributes 2015-04-02 12:30:34 +02:00
.gitignore block config/ifort.cfg 2016-09-09 19:41:17 +02:00
.travis.yml Fixed travis 2018-02-08 22:16:58 +01:00
configure Save MRCC WF 2018-07-24 17:59:14 +02:00
LICENSE Initial commit 2014-04-01 02:24:45 -07:00
README.md Merge branch 'LCPQ-master' 2018-05-09 11:32:42 +02:00

IMPORTANT

If you have problems upgrading to the current version, first try qp_upgrade_ocaml.sh. If it fails, then consider re-installing everything from scratch including the OCaml compiler. To do this, you will have to remove the quantum_package directory and the $HOME/.opam directory as well.

QP
Build Status Gitter

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.

Demo

Full-CI energy of C2 in 2 minutes

Frozen-core Full-CI energy of Ti

Installation

Requirements

  • Fortran compiler (ifort and gfortran are tested)
  • Python >= 2.6
  • GNU make
  • Bash
  • Blas/Lapack
  • unzip
  • g++ (For ninja)

Standard installation

1) Configure

$ ./configure.py <config_file> 

For example you can type ./configure.py config/gfortran.cfg

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.
    Its not a Makefile, but a Ninja file (so dont type make its hopeless, type ninja 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.

2) Load environment variables

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.

Optional) Add some modules

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

3) Compiling the Fortran

Just type ninja if you are in $QP_ROOT. The compilation will take approximately 3 min.

5) Testing if all is ok

cd tests ; ./run_tests.sh

Note on EZFIO.cfg

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

My hartree-Fock segfault !

A old version of Lapack have a bug. Just relax your convergence criterium

Error: ezfio_* is already defined.

Why ?

You have two or more ezfio configuration files for the same variable. Check files in $QP_ROOT/install/EZFIO/config/ and the all the EZFIO.cfg.

Fix

- rm $QP_ROOT/install/EZFIO/config/*
- ninja 

Error: Seg Fault (139)

Segmentation fault (core dumped)
Program exited with code 139.

Why ?

Its caused when we call the DGEMM routine of LAPACK.

Fix

Set ulimit -s unlimited, before runing qp_run. It seems to fix the problem.

Error: f77zmq not symbol found

In the Makefile of the f77zmq, you should NOT use ar but libtool -static