Quantum chemistry written with OCaml
Go to file
Anthony Scemama 7eba47e0a4 Cleaned localization 2024-02-28 11:17:20 +01:00
ao Remove org-mode 2024-01-17 10:30:24 +01:00
bin Removed org-html-themes 2024-02-28 11:03:41 +01:00
common Removing org-mode 2024-01-17 13:59:05 +01:00
docs Removed org-html-themes 2024-02-28 11:03:41 +01:00
examples Added Landmark profiler 2023-06-30 12:22:26 +02:00
gaussian Removing org-mode 2024-01-17 14:24:28 +01:00
gaussian_integrals Remove org-mode 2024-01-17 10:30:24 +01:00
linear_algebra Added Landmark profiler 2023-06-30 12:22:26 +02:00
mo Cleaned localization 2024-02-28 11:17:20 +01:00
operators Added Landmark profiler 2023-06-30 12:22:26 +02:00
particles Removing org-mode 2024-02-28 10:48:09 +01:00
perturbation Remove org-mode in mp2 2024-02-28 11:07:24 +01:00
qcaml Added Landmark profiler 2023-06-30 12:22:26 +02:00
simulation Cleaned localization 2024-02-28 11:17:20 +01:00
test Added Landmark profiler 2023-06-30 12:22:26 +02:00
top Fix printers 2024-02-28 10:57:22 +01:00
.gitignore Added opam package definition 2021-02-12 09:20:42 +01:00
.ocamlinit Initial new repo 2020-09-26 12:02:53 +02:00
.ocp-indent Initial new repo 2020-09-26 12:02:53 +02:00
DevInstructions.org Working on TREXIO basis 2023-04-24 19:31:51 +02:00
Makefile Removing org-mode source 2023-06-28 13:51:12 +02:00
README.md Working on TREXIO basis 2023-04-24 19:31:51 +02:00
dune-project Added Landmark profiler 2023-06-30 12:22:26 +02:00
gitlab-ci.yml.save Removed org-html-themes 2024-02-28 11:03:41 +01:00
qcaml.opam Added Landmark profiler 2023-06-30 12:22:26 +02:00

README.md

QCaml (Quantum Camel)

QCaml is a quantum chemistry software written in OCaml.

Requirements

  • BLAS/LAPACK : Linear algebra
  • LaCaml : LAPACK OCaml interface
  • gmp : GNU Multiple Precision arithmetic library
  • Zarith : Arbitrary-precision integers
  • GetOpt : Parsing of command-line
  • Alcotest : Lightweight testing framework
  • odoc-ltxhtml : https://github.com/akabe/odoc-ltxhtml
opam install dune lacaml getopt alcotest zarith camlp-streams

To use the Intel MKL library:

export  LACAML_LIBS="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_rt -lpthread -lm -ldl"
opam install --assume-depexts lacaml

How to build the project

Run make to compile the libraries and executables that are meant to be installed.

$ make -j

How to run tests

$ make test

How to use local libraries interactively

Use dune utop DIR where DIR if the folder contains the dune file for a library. For instance, our sub2 sample library can be used as follows:

$ dune utop sub2/lib
...
utop # Proj_sub2.A.do_something ();;
1525373137.245 seconds have elapsed since 1970-01-01T00:00:00.
- : unit = ()

Installation

The project can be installed with or without opam. Without opam, you can run the following which relies directly on dune:

$ make install

Similarly:

$ make uninstall

With opam, you can install the current development version of your project as a single opam package. It will override the currently installed package of the same name, if any:

$ opam pin add QCaml .

For more information on opam pin, please consult the opam documentation.

The advantage of the opam-based method is that other opam packages can depend on this one, and opam will recompile them automatically as necessary.