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