All Classes Namespaces Files Functions Variables Typedefs Enumerator Pages
BlackoilModel.hpp
1 /*
2  Copyright 2013, 2015 SINTEF ICT, Applied Mathematics.
3  Copyright 2014, 2015 Statoil ASA.
4  Copyright 2014, 2015 Dr. Markus Blatt - HPC-Simulation-Software & Services
5  Copyright 2015 NTNU
6 
7  This file is part of the Open Porous Media project (OPM).
8 
9  OPM is free software: you can redistribute it and/or modify
10  it under the terms of the GNU General Public License as published by
11  the Free Software Foundation, either version 3 of the License, or
12  (at your option) any later version.
13 
14  OPM is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with OPM. If not, see <http://www.gnu.org/licenses/>.
21 */
22 
23 #ifndef OPM_BLACKOILMODEL_HEADER_INCLUDED
24 #define OPM_BLACKOILMODEL_HEADER_INCLUDED
25 
26 #include <opm/autodiff/BlackoilModelBase.hpp>
27 #include <opm/core/simulator/BlackoilState.hpp>
28 #include <opm/autodiff/WellStateFullyImplicitBlackoil.hpp>
29 #include <opm/autodiff/StandardWells.hpp>
30 #include <opm/autodiff/BlackoilModelParameters.hpp>
31 
32 namespace Opm {
33 
43  template<class Grid>
44  class BlackoilModel : public BlackoilModelBase<Grid, StandardWells, BlackoilModel<Grid> >
45  {
46  public:
48 
63  BlackoilModel(const typename Base::ModelParameters& param,
64  const Grid& grid,
65  const BlackoilPropsAdFromDeck& fluid,
66  const DerivedGeology& geo,
67  const RockCompressibility* rock_comp_props,
68  const StandardWells& std_wells,
69  const NewtonIterationBlackoilInterface& linsolver,
70  std::shared_ptr< const Opm::EclipseState > eclState,
71  const bool has_disgas,
72  const bool has_vapoil,
73  const bool terminal_output)
74  : Base(param, grid, fluid, geo, rock_comp_props, std_wells, linsolver,
75  eclState, has_disgas, has_vapoil, terminal_output)
76  {
77  }
78  };
79 
80 
82  template <class Grid>
83  struct ModelTraits< BlackoilModel<Grid> >
84  {
85  typedef BlackoilState ReservoirState;
89  };
90 
91 } // namespace Opm
92 
93 
94 #endif // OPM_BLACKOILMODEL_HEADER_INCLUDED
A model implementation for three-phase black oil.
Definition: BlackoilModelBase.hpp:76
Solver parameters for the BlackoilModel.
Definition: BlackoilModelParameters.hpp:31
Class for handling the standard well model.
Definition: StandardWells.hpp:51
Traits to encapsulate the types used by classes using or extending this model.
Definition: BlackoilModelBase.hpp:60
BlackoilModel(const typename Base::ModelParameters &param, const Grid &grid, const BlackoilPropsAdFromDeck &fluid, const DerivedGeology &geo, const RockCompressibility *rock_comp_props, const StandardWells &std_wells, const NewtonIterationBlackoilInterface &linsolver, std::shared_ptr< const Opm::EclipseState > eclState, const bool has_disgas, const bool has_vapoil, const bool terminal_output)
Construct the model.
Definition: BlackoilModel.hpp:63
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition: WellStateFullyImplicitBlackoil.hpp:44
Struct for containing iteration variables.
Definition: DefaultBlackoilSolutionState.hpp:29
Class containing static geological properties that are derived from grid and petrophysical properties...
Definition: GeoProps.hpp:59
A model implementation for three-phase black oil.
Definition: BlackoilModel.hpp:44
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