00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef OPM_BLACKOILMODEL_HEADER_INCLUDED
00024 #define OPM_BLACKOILMODEL_HEADER_INCLUDED
00025
00026 #include <opm/autodiff/BlackoilModelBase.hpp>
00027 #include <opm/core/simulator/BlackoilState.hpp>
00028 #include <opm/autodiff/WellStateFullyImplicitBlackoil.hpp>
00029 #include <opm/autodiff/StandardWells.hpp>
00030 #include <opm/autodiff/BlackoilModelParameters.hpp>
00031
00032 namespace Opm {
00033
00043 template<class Grid>
00044 class BlackoilModel : public BlackoilModelBase<Grid, StandardWells, BlackoilModel<Grid> >
00045 {
00046 public:
00047 typedef BlackoilModelBase<Grid, StandardWells, BlackoilModel<Grid> > Base;
00048
00063 BlackoilModel(const typename Base::ModelParameters& param,
00064 const Grid& grid,
00065 const BlackoilPropsAdFromDeck& fluid,
00066 const DerivedGeology& geo,
00067 const RockCompressibility* rock_comp_props,
00068 const StandardWells& std_wells,
00069 const NewtonIterationBlackoilInterface& linsolver,
00070 std::shared_ptr< const Opm::EclipseState > eclState,
00071 const bool has_disgas,
00072 const bool has_vapoil,
00073 const bool terminal_output)
00074 : Base(param, grid, fluid, geo, rock_comp_props, std_wells, linsolver,
00075 eclState, has_disgas, has_vapoil, terminal_output)
00076 {
00077 }
00078 };
00079
00080
00082 template <class Grid>
00083 struct ModelTraits< BlackoilModel<Grid> >
00084 {
00085 typedef BlackoilState ReservoirState;
00086 typedef WellStateFullyImplicitBlackoil WellState;
00087 typedef BlackoilModelParameters ModelParameters;
00088 typedef DefaultBlackoilSolutionState SolutionState;
00089 };
00090
00091 }
00092
00093
00094 #endif // OPM_BLACKOILMODEL_HEADER_INCLUDED