10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-11-14 01:53:39 +01:00
Quantum chemistry written with OCaml
Go to file
2020-12-28 01:24:15 +01:00
ao Add MP2 2020-12-07 13:52:56 +01:00
bin Added build_doc 2020-12-27 16:36:25 +01:00
common Finished common in org-mode 2020-12-28 01:24:15 +01:00
docs Finished common in org-mode 2020-12-28 01:24:15 +01:00
examples Added a test for Hartree-Fock 2020-10-26 11:52:24 +01:00
gaussian Renamed Gaussian_basis into Gaussian 2020-10-10 10:59:09 +02:00
gaussian_integrals Provided example 2020-10-19 18:33:02 +02:00
linear_algebra Added exponential of matrix 2020-12-17 19:52:09 +01:00
mo Added exponential of matrix 2020-12-17 12:55:11 +01:00
operators/lib Removed Qcaml_ prefixes 2020-10-09 09:47:57 +02:00
particles Removed Qcaml_ prefixes 2020-10-09 09:47:57 +02:00
perturbation Better tests 2020-12-07 14:12:35 +01:00
qcaml/lib Add MP2 2020-12-07 13:52:56 +01:00
simulation/lib Merge branch 'dev' of gitlab.com:scemama/QCaml into dev 2020-10-18 01:59:47 +02:00
test Finished common in org-mode 2020-12-28 01:24:15 +01:00
.gitignore Provided example 2020-10-19 18:33:02 +02: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
dune-project Add Multipole.to_file 2020-10-12 08:57:00 +02:00
Makefile Added build_doc 2020-12-27 16:36:25 +01:00
README.md Added RR 2020-09-26 16:45:52 +02:00

QCaml (Quantum Camel)

QCaml is a quantum chemistry software written in OCaml.

Requirements

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

To use the Intel MKL library:

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


odoc-ltxhtml allows to embed equations in the documentation generated by Ocamldoc.
Download the source code [here](https://github.com/scemama/odoc-ltxhtml). 

```bash
git clone https://github.com/scemama/odoc-ltxhtml
cd odoc-ltxhtml
make install

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.