target_link_libraries(${PROJECT_NAME} PhreeqcRM MPI::MPI_CXX)
#include <mpi.h>#include <PhreeqcRM.h>#include <stdlib.h>#include <iostream>int main(int argc, char* argv[]){ MPI_Init(&argc, &argv); PhreeqcRM *phreeqc_rm = new PhreeqcRM(24, MPI_COMM_WORLD); delete phreeqc_rm; return EXIT_SUCCESS;}
cmake_minimum_required(VERSION 3.15)project(simple CXX)find_package(MPI)add_executable(${PROJECT_NAME} main.cpp)target_compile_definitions(${PROJECT_NAME} PRIVATE USE_MPI)target_link_libraries(${PROJECT_NAME} PhreeqcRM MPI::MPI_CXX)
tar xzf phreeqcrm-3.7.3-15968-hotfix-2.tar.gzcd phreeqcrm-3.7.3-15968-hotfix-2mkdir _buildcd _build../configure --with-mpimake -j 8make checksudo make installsudo ldconfig
tar xzf phreeqcrm-3.7.3-15968-hotfix-2.tar.gzcd phreeqcrm-3.7.3-15968-hotfix-2mkdir _cmakecmake .. -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DPHREEQCRM_BUILD_MPI:BOOL=ON -Lcmake --build . --parallel 8ctestsudo cmake --install .sudo ldconfig
cmake_minimum_required(VERSION 3.15)project(simple CXX)find_package(MPI)add_executable(${PROJECT_NAME} main.cpp)target_compile_definitions(${PROJECT_NAME} PRIVATE USE_MPI)#target_link_libraries(${PROJECT_NAME} PhreeqcRM MPI::MPI_CXX) # cmaketarget_link_libraries(${PROJECT_NAME} phreeqcrm MPI::MPI_CXX) # autotools
std::vector<double> c;c.resize(nxyz*ph_ncomp); # where ph_ncomp is the number of components got from GetComponents()status = phreeqc_rm.GetConcentrations(c);