/* Copyright 2013, 2014, 2015, 2019 SINTEF Digital, Mathematics and Cybernetics. Copyright 2014 Dr. Blatt - HPC-Simulation-Software & Services Copyright 2015, 2017 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 "config.h" #include #include namespace Opm { namespace Properties { namespace TTag { struct EclFlowProblemSimple { using InheritsFrom = std::tuple; }; } template struct MatrixAddWellContributions { static constexpr bool value = true; }; template struct LinearSolverVerbosity { static constexpr int value = 0; }; template struct LinearSolverReduction { using type = GetPropType; static constexpr type value = 1e-2; }; template struct LinearSolverMaxIter { static constexpr int value = 100; }; template struct CprMaxEllIter { static constexpr int value = 1; }; template struct CprEllSolvetype { static constexpr int value = 3; }; template struct CprReuseSetup { static constexpr int value = 3; }; template struct Linsolver { static constexpr auto value = "ilu0"; }; template struct FluidSystem { private: using Scalar = GetPropType; using Evaluation = GetPropType; public: typedef Opm::BlackOilFluidSystem type; }; // namespace TTag { // struct EclFlowProblemSimple { // using InheritsFrom = std::tuple; // }; // } template struct IntensiveQuantities { using type = Opm::BlackOilIntensiveQuantities; }; // template // struct LinearSolverBackend { // using type = Opm::ISTLSolverEbos; // }; // template // struct LinearSolverSplice { // using type = TTag::ParallelBiCGStabLinearSolver; // }; // template // struct LinearSolverBackend { // using type = Opm::Linear::ParallelBiCGStabSolverBackend; // not work // }; // template // struct LinearSolverBackend { // using type = Opm::Linear::SuperLUBackend; // not work // }; // template // struct FluidState { // using type = Opm::BlackOilFluidState; // }; template struct LinearSolverBackend { using type = Opm::ISTLSolverEbosFlexible; }; template struct EnableStorageCache { static constexpr bool value = true; }; template struct EnableIntensiveQuantityCache { static constexpr bool value = true; }; // template // struct NumWellAdjoint { // static constexpr int value = 1; // }; // template // struct EnableStorageCache { // static constexpr bool value = true; // }; // template // struct EnableIntensiveQuantityCache { // static constexpr bool value = true; // }; } } int main(int argc, char** argv) { using TypeTag = Opm::Properties::TTag::EclFlowProblemSimple; auto mainObject = Opm::Main(argc, argv); return mainObject.runStatic(); }