.. Copyright (c) 2021-2022, Manuel Schrauth, Florian Goth 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: .. code-block:: shell :linenos: 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. .. toctree:: examples/IsingSimple examples/HeisenbergSimpleThreaded If you want to see more examples, or get deeper into it, have a look at the overview page of the :doc:`Hamiltonians ` If you want to learn more about lattices have a look into :doc:`lattices ` More information on the notion of an observable can be found at :doc:`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.