SimulatorSequentialBlackoil.hpp
1 /*
2  Copyright 2013, 2015, 2016 SINTEF ICT, Applied Mathematics.
3  Copyright 2015 Andreas Lauser
4 
5  This file is part of the Open Porous Media project (OPM).
6 
7  OPM is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  OPM is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with OPM. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 #ifndef OPM_SIMULATORSEQUENTIALBLACKOIL_HEADER_INCLUDED
22 #define OPM_SIMULATORSEQUENTIALBLACKOIL_HEADER_INCLUDED
23 
24 #include <opm/autodiff/SimulatorBase.hpp>
25 #include <opm/autodiff/NonlinearSolver.hpp>
26 #include <opm/autodiff/BlackoilSequentialModel.hpp>
27 
28 namespace Opm {
29 
30 template <class GridT, class WellModelT,
31  template <class G, class W> class PressureModel,
32  template <class G, class W> class TransportModel>
34 
35 template <class GridT, class WellModelT,
36  template <class G, class W> class PressureModel,
37  template <class G, class W> class TransportModel>
38 struct SimulatorTraits<SimulatorSequentialBlackoil<GridT, WellModelT, PressureModel, TransportModel> >
39 {
41  typedef BlackoilState ReservoirState;
43  typedef GridT Grid;
46  typedef WellModelT WellModel;
47 };
48 
50 template <class GridT, class WellModelT,
51  template <class G, class W> class PressureModel,
52  template <class G, class W> class TransportModel>
54  : public SimulatorBase<SimulatorSequentialBlackoil<GridT, WellModelT, PressureModel, TransportModel> >
55 {
57 public:
58  // forward the constructor to the base class
59  SimulatorSequentialBlackoil(const ParameterGroup& param,
60  const typename Base::Grid& grid,
61  DerivedGeology& geo,
63  const RockCompressibility* rock_comp_props,
65  const double* gravity,
66  const bool disgas,
67  const bool vapoil,
68  std::shared_ptr<EclipseState> eclipse_state,
69  BlackoilOutputWriter& output_writer,
70  const std::vector<double>& threshold_pressures_by_face)
71  : Base(param, grid, geo, props, rock_comp_props, linsolver, gravity, disgas, vapoil,
72  eclipse_state, output_writer, threshold_pressures_by_face,
73  // names of deactivated wells in parallel run
74  std::unordered_set<std::string>())
75  {}
76 };
77 
78 } // namespace Opm
79 
80 #endif // OPM_SIMULATORSEQUENTIALBLACKOIL_HEADER_INCLUDED
A nonlinear solver class suitable for general fully-implicit models, as well as pressure, transport and sequential models.
Definition: NonlinearSolver.hpp:37
Class collecting all necessary components for a two-phase simulation.
Definition: SimulatorBase.hpp:85
Definition: AutoDiff.hpp:297
a simulator for the blackoil model
Definition: SimulatorSequentialBlackoil.hpp:33
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: AdditionalObjectDeleter.hpp:22
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition: WellStateFullyImplicitBlackoil.hpp:44
Class containing static geological properties that are derived from grid and petrophysical properties...
Definition: GeoProps.hpp:59
Wrapper class for VTK, Matlab, and ECL output.
Definition: SimulatorFullyImplicitBlackoilOutput.hpp:206
Interface class for (linear) solvers for the fully implicit black-oil system.
Definition: NewtonIterationBlackoilInterface.hpp:31
This class implements the AD-adapted fluid interface for three-phase black-oil.
Definition: BlackoilPropsAdFromDeck.hpp:61
A sequential splitting model implementation for three-phase black oil.
Definition: BlackoilSequentialModel.hpp:48
Definition: SimulatorBase.hpp:81