# POET [POET](https://doi.org/10.5281/zenodo.4757913) is a coupled reactive transport simulator implementing a parallel architecture and a fast, original MPI-based Distributed Hash Table. ![POET's Coupling Scheme](./docs/Scheme_POET_en.svg) ## Parsed code documentiation A parsed version of POET's documentiation can be found at [Gitlab pages](https://naaice.git-pages.gfz-potsdam.de/poet). ## External Libraries The following external header library is shipped with POET: - **argh** - https://github.com/adishavit/argh (BSD license) - **IPhreeqc** with patches from GFZ - https://github.com/usgs-coupled/iphreeqc - https://git.gfz-potsdam.de/naaice/iphreeqc - **tug** - https://git.gfz-potsdam.de/naaice/tug ## Installation ### Requirements To compile POET you need several software to be installed: - C/C++ compiler (tested with GCC) - MPI-Implementation (tested with OpenMPI and MVAPICH) - R language and environment - CMake 3.9+ - Eigen3 3.4+ (required by `tug`) - *optional*: `doxygen` with `dot` bindings for documentiation The following R libraries must then be installed, which will get the needed dependencies automatically: - [Rcpp](https://cran.r-project.org/web/packages/Rcpp/index.html) - [RInside](https://cran.r-project.org/web/packages/RInside/index.html) ### Compiling source code The generation of makefiles is done with CMake. You should be able to generate Makefiles by running: ```sh mkdir build && cd build cmake .. ``` This will create the directory `build` and processes the CMake files and generate Makefiles from it. You're now able to run `make` to start build process. If everything went well you'll find the executable at `build/app/poet`, but it is recommended to install the POET project structure to a desired `CMAKE_INSTALL_PREFIX` with `make install`. During the generation of Makefiles, various options can be specified via `cmake -D