00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef OPM_SIMULATORFULLYIMPLICITBLACKOIL_HEADER_INCLUDED
00022 #define OPM_SIMULATORFULLYIMPLICITBLACKOIL_HEADER_INCLUDED
00023
00024 #include <opm/autodiff/SimulatorBase.hpp>
00025 #include <opm/autodiff/BlackoilModel.hpp>
00026 #include <opm/autodiff/NonlinearSolver.hpp>
00027
00028 namespace Opm {
00029
00030 template <class GridT>
00031 class SimulatorFullyImplicitBlackoil;
00032 class StandardWells;
00033
00034 template <class GridT>
00035 struct SimulatorTraits<SimulatorFullyImplicitBlackoil<GridT> >
00036 {
00037 typedef WellStateFullyImplicitBlackoil WellState;
00038 typedef BlackoilState ReservoirState;
00039 typedef BlackoilOutputWriter OutputWriter;
00040 typedef GridT Grid;
00041 typedef BlackoilModel<Grid> Model;
00042 typedef NonlinearSolver<Model> Solver;
00043 typedef StandardWells WellModel;
00044 };
00045
00047 template <class GridT>
00048 class SimulatorFullyImplicitBlackoil
00049 : public SimulatorBase<SimulatorFullyImplicitBlackoil<GridT> >
00050 {
00051 typedef SimulatorBase<SimulatorFullyImplicitBlackoil<GridT> > Base;
00052 public:
00053
00054 SimulatorFullyImplicitBlackoil(const ParameterGroup& param,
00055 const typename Base::Grid& grid,
00056 DerivedGeology& geo,
00057 BlackoilPropsAdFromDeck& props,
00058 const RockCompressibility* rock_comp_props,
00059 NewtonIterationBlackoilInterface& linsolver,
00060 const double* gravity,
00061 const bool disgas,
00062 const bool vapoil,
00063 std::shared_ptr<EclipseState> eclipse_state,
00064 BlackoilOutputWriter& output_writer,
00065 const std::vector<double>& threshold_pressures_by_face,
00066 const std::unordered_set<std::string>& defunct_well_names)
00067 : Base(param, grid, geo, props, rock_comp_props, linsolver, gravity, disgas, vapoil,
00068 eclipse_state, output_writer, threshold_pressures_by_face, defunct_well_names)
00069 {}
00070 };
00071
00072 }
00073
00074 #endif // OPM_SIMULATORFULLYIMPLICITBLACKOIL_HEADER_INCLUDED