diff --git a/CMakeLists_files.cmake b/CMakeLists_files.cmake index ac8d45a4c..c7b8e8db1 100644 --- a/CMakeLists_files.cmake +++ b/CMakeLists_files.cmake @@ -40,6 +40,7 @@ list (APPEND MAIN_SOURCE_FILES opm/autodiff/BlackoilModelParameters.cpp opm/autodiff/WellDensitySegmented.cpp opm/autodiff/LinearisedBlackoilResidual.cpp + opm/autodiff/MPIUtilities.cpp opm/autodiff/VFPProperties.cpp opm/autodiff/VFPProdProperties.cpp opm/autodiff/VFPInjProperties.cpp diff --git a/opm/autodiff/ISTLSolverEbos.hpp b/opm/autodiff/ISTLSolverEbos.hpp index 73cd91d7f..dba525f10 100644 --- a/opm/autodiff/ISTLSolverEbos.hpp +++ b/opm/autodiff/ISTLSolverEbos.hpp @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/opm/autodiff/MPIUtilities.cpp b/opm/autodiff/MPIUtilities.cpp new file mode 100644 index 000000000..97ee15c5e --- /dev/null +++ b/opm/autodiff/MPIUtilities.cpp @@ -0,0 +1,44 @@ +/* + Copyright 2014 SINTEF ICT, Applied Mathematics. + Copyright 2014 IRIS AS + + This file is part of the Open Porous Media project (OPM). + + OPM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OPM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OPM. If not, see . +*/ + +#include +#include +#include + +namespace Opm +{ + /// Return true if this is a serial run, or rank zero on an MPI run. + bool isIORank(const boost::any& parallel_info) + { +#if HAVE_MPI + if (parallel_info.type() == typeid(ParallelISTLInformation)) { + const ParallelISTLInformation& info = + boost::any_cast(parallel_info); + return info.communicator().rank() == 0; + } else { + return true; + } +#else + static_cast(parallel_info); // Suppress unused argument warning. + return true; +#endif + } +} // namespace Opm + diff --git a/opm/autodiff/MPIUtilities.hpp b/opm/autodiff/MPIUtilities.hpp new file mode 100644 index 000000000..7c7dc61bb --- /dev/null +++ b/opm/autodiff/MPIUtilities.hpp @@ -0,0 +1,30 @@ +/* + Copyright 2015 SINTEF ICT, Applied Mathematics. + + This file is part of the Open Porous Media project (OPM). + + OPM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OPM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OPM. If not, see . +*/ + +#ifndef OPM_MPIUTILITIES_HEADER_INCLUDED +#define OPM_MPIUTILITIES_HEADER_INCLUDED + +namespace Opm +{ + /// Return true if this is a serial run, or rank zero on an MPI run. + bool isIORank(const boost::any& parallel_info); + +} // namespace Opm + +#endif // OPM_MPIUTILITIES_HEADER_INCLUDED diff --git a/opm/autodiff/NewtonIterationUtilities.cpp b/opm/autodiff/NewtonIterationUtilities.cpp index 7f374ef7e..cb2528d5e 100644 --- a/opm/autodiff/NewtonIterationUtilities.cpp +++ b/opm/autodiff/NewtonIterationUtilities.cpp @@ -22,7 +22,6 @@ #include #include -#include #include #include @@ -288,25 +287,5 @@ namespace Opm } - - - /// Return true if this is a serial run, or rank zero on an MPI run. - bool isIORank(const boost::any& parallel_info) - { -#if HAVE_MPI - if (parallel_info.type() == typeid(ParallelISTLInformation)) { - const ParallelISTLInformation& info = - boost::any_cast(parallel_info); - return info.communicator().rank() == 0; - } else { - return true; - } -#else - static_cast(parallel_info); // Suppress unused argument warning. - return true; -#endif - } - - } // namespace Opm diff --git a/opm/autodiff/NewtonIterationUtilities.hpp b/opm/autodiff/NewtonIterationUtilities.hpp index b27106854..eb80f115a 100644 --- a/opm/autodiff/NewtonIterationUtilities.hpp +++ b/opm/autodiff/NewtonIterationUtilities.hpp @@ -21,7 +21,6 @@ #define OPM_NEWTONITERATIONUTILITIES_HEADER_INCLUDED #include -#include #include namespace Opm @@ -58,10 +57,6 @@ namespace Opm const std::vector< AutoDiffBlock >& eqs, Eigen::SparseMatrix& A, AutoDiffBlock::V& b); - - /// Return true if this is a serial run, or rank zero on an MPI run. - bool isIORank(const boost::any& parallel_info); - } // namespace Opm #endif // OPM_NEWTONITERATIONUTILITIES_HEADER_INCLUDED