10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2025-04-17 22:10:09 +02:00
2024-09-06 11:05:54 +02:00
2024-02-28 11:03:41 +01:00
2024-09-11 17:02:51 +02:00
2024-06-20 15:38:37 +02:00
2024-02-28 11:03:41 +01:00
2024-09-10 17:01:55 +02:00
2024-09-13 18:22:45 +02:00
2024-06-20 15:38:37 +02:00
2024-09-13 18:22:45 +02:00
2024-06-20 15:38:37 +02:00
2024-06-20 15:38:37 +02:00
2024-06-20 15:38:37 +02:00
2024-09-10 17:01:55 +02:00
2024-06-20 15:38:37 +02:00
2024-09-10 17:01:55 +02:00
2024-09-06 15:55:04 +02:00
2021-02-12 09:20:42 +01:00
2020-09-26 12:02:53 +02:00
2020-09-26 12:02:53 +02:00
2024-06-20 15:38:37 +02:00
2024-06-20 15:38:37 +02:00
2024-02-28 11:03:41 +01:00
2024-09-05 14:48:58 +02:00
2024-06-20 15:38:37 +02:00
2024-06-20 15:38:37 +02:00

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

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.

Profiling

The Landmarks memory profiler can be used.

Description
Quantum chemistry written with OCaml
Readme GPL-3.0 14 MiB
Languages
Jupyter Notebook 53.1%
OCaml 46.6%
CSS 0.2%