changed: rename FlowMain.cpp to FlowUtils.cpp

and add a dedicated header.

this way we don't need to pull in FlowMain.hpp for the prototypes,
avoiding pulling in the entire simulator machinery just to build
some simple utility functions.
This commit is contained in:
Arne Morten Kvarving
2024-03-01 14:22:52 +01:00
parent 9f13a25ebc
commit fdb285c03a
4 changed files with 64 additions and 26 deletions

View File

@@ -22,15 +22,16 @@
#ifndef OPM_FLOW_MAIN_HEADER_INCLUDED
#define OPM_FLOW_MAIN_HEADER_INCLUDED
#include <opm/simulators/flow/Banners.hpp>
#include <opm/simulators/flow/SimulatorFullyImplicitBlackoil.hpp>
#include <opm/input/eclipse/EclipseState/EclipseState.hpp>
#include <opm/input/eclipse/EclipseState/IOConfig/IOConfig.hpp>
#include <opm/input/eclipse/EclipseState/InitConfig/InitConfig.hpp>
#include <opm/models/utils/start.hh>
#include <opm/simulators/flow/Banners.hpp>
#include <opm/simulators/flow/FlowUtils.hpp>
#include <opm/simulators/flow/SimulatorFullyImplicitBlackoil.hpp>
#if HAVE_DUNE_FEM
#include <dune/fem/misc/mpimanager.hh>
#else
@@ -39,7 +40,6 @@
#include <cstddef>
#include <memory>
#include <string_view>
namespace Opm::Properties {
@@ -74,21 +74,6 @@ struct OutputInterval<TypeTag, TTag::FlowProblem> {
} // namespace Opm::Properties
namespace Opm {
namespace detail {
void checkAllMPIProcesses();
void mergeParallelLogFiles(std::string_view output_dir,
std::string_view deck_filename,
bool enableLoggingFalloutWarning);
void handleExtraConvergenceOutput(SimulatorReport& report,
std::string_view option,
std::string_view optionName,
std::string_view output_dir,
std::string_view base_name);
}
class Deck;

View File

@@ -21,21 +21,29 @@
*/
#include <config.h>
#include <opm/simulators/flow/FlowMain.hpp>
#include <opm/simulators/flow/FlowUtils.hpp>
#include <opm/common/OpmLog/OpmLog.hpp>
#include <opm/common/utility/String.hpp>
#include <opm/simulators/flow/ConvergenceOutputConfiguration.hpp>
#include <opm/simulators/timestepping/SimulatorReport.hpp>
#include <opm/simulators/utils/ParallelFileMerger.hpp>
#if HAVE_MPI
#include <ebos/eclgenericvanguard.hh>
#endif
#include <fmt/format.h>
#include <algorithm>
#include <filesystem>
#include <fstream>
#include <string>
#include <unistd.h>
#include <vector>
namespace Opm {
namespace detail {
namespace Opm::detail {
void mergeParallelLogFiles(std::string_view output_dir,
std::string_view deckFilename,
@@ -156,5 +164,4 @@ void checkAllMPIProcesses()
#endif
}
} // namespace detail
} // namespace Opm
} // namespace Opm::detail

View File

@@ -0,0 +1,45 @@
/*
Copyright 2013, 2014, 2015 SINTEF ICT, Applied Mathematics.
Copyright 2014 Dr. Blatt - HPC-Simulation-Software & Services
Copyright 2015 IRIS AS
Copyright 2014 STATOIL ASA.
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 <http://www.gnu.org/licenses/>.
*/
#ifndef OPM_FLOW_UTILS_HEADER_INCLUDED
#define OPM_FLOW_UTILS_HEADER_INCLUDED
#include <string_view>
namespace Opm { struct SimulatorReport; }
namespace Opm::detail {
void checkAllMPIProcesses();
void mergeParallelLogFiles(std::string_view output_dir,
std::string_view deck_filename,
bool enableLoggingFalloutWarning);
void handleExtraConvergenceOutput(SimulatorReport& report,
std::string_view option,
std::string_view optionName,
std::string_view output_dir,
std::string_view base_name);
} // namespace Opm::detail
#endif // OPM_FLOW_UTILS_HEADER_INCLUDED