ao | ||
common | ||
examples | ||
gaussian | ||
gaussian_integrals | ||
linear_algebra | ||
mo | ||
operators/lib | ||
particles | ||
qcaml/lib | ||
simulation/lib | ||
test | ||
.gitignore | ||
.ocamlinit | ||
.ocp-indent | ||
dune-project | ||
Makefile | ||
README.md |
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.