Prerequisites

MARQOV is light on dependencies:

  • A C++14 compiler

  • HDF5

  • optionally MPI

  • optionally SWIG, and a recent enough version of cmake(3.18) for generating the foreign language bindings.

and cmake for executing the build and configure step. If you intend to build the documentation, then doxygen, breathe and sphinx are required.

Compiling the Examples

Assuming you have retrieved the most recent version of MARQOV the default way to compile is with the help of cmake .

The build step follows the basic cmake procedure:

1
2
3
4
cmake -E make_directory build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --target all --config Release

and you should find compiled examples in src. By executing the all target, we will greedily build as many tools as are supported on your system. Type make help after cmake has finished to see the available targets on your system.

What’s next?

You might want to include MARQOV in your own projects or solve your own Hamiltonian! A Good Start for this is e.g.

If you want to see more examples, or get deeper into it, have a look at the overview page of the Hamiltonians

If you want to learn more about lattices have a look into lattices

More information on the notion of an observable can be found at observables

Foreign Language Interface

MARQOV has a foreign language interface generated by SWIG . These bindings can be used to get a taste of marqov in a language of your choice and hence a limited hardcoded subset of the functionality of MARQOV is exposed in an easily portable manner. Of course the same output files are generated and can be analysed with pyMARQOV. This can be used if you want to use MARQOV together with Jupyter Notebooks for teaching purposes.

Our primary target language is python, but there are also experimental, unsupported bindings for Java, Lua, R and ocaml.