# POET **NOTE: GFZ is migrating its domain from to . This should be finalized by the end of 2025. We adopt the NEW domain in all the links given below. If you encounter 'unreachable address' try the OLD domain.** [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/POET_scheme.svg) ## Parsed code documentiation A parsed version of POET's documentation can be found at [Gitlab pages](https://naaice.git-pages.gfz.de/poet). ## External Libraries The following external libraries are shipped with POET: - **CLI11** - - **litephreeqc**: IPhreeqc () with patches from GFZ/UP: - **tug** - ## Installation ### Requirements To compile POET you need following software to be installed: - C/C++ compiler (tested with GCC) - MPI-Implementation (tested with OpenMPI and MVAPICH) - CMake 3.20+ - Eigen3 3.4+ (required by `tug`) - *optional*: `doxygen` with `dot` bindings for documentation - R language and environment including headers or `-dev` packages (distro dependent) The following R packages (and their dependencies) must also be installed: - [Rcpp](https://cran.r-project.org/web/packages/Rcpp/index.html) - [RInside](https://cran.r-project.org/web/packages/RInside/index.html) - [qs](https://cran.r-project.org/web/packages/qs/index.html) - [qs2](https://cran.r-project.org/web/packages/qs2/index.html) This can be simply achieved by issuing the following commands: ```sh # start R environment $ R # install R dependencies (case sensitive!) > install.packages(c("Rcpp", "RInside","qs","qs2")) > q(save="no") ``` ### Clone the repository POET can be anonimously cloned from this repo over https. Make sure to also download the submodules: ```sh git clone --recurse-submodules https://git.gfz.de/naaice/poet.git ``` The `--recurse-submodules` option is a shorthand for: ```sh cd poet git submodule init && git submodule update ``` ### Compiling source code POET is built with CMake. You can generate Makefiles by running the usual: ```sh mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. ``` 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 executables at `build/src/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