00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef OPM_SIMULATORCOMPRESSIBLEPOLYMER_HEADER_INCLUDED
00021 #define OPM_SIMULATORCOMPRESSIBLEPOLYMER_HEADER_INCLUDED
00022
00023 #include <opm/core/simulator/SimulatorReport.hpp>
00024 #include <boost/shared_ptr.hpp>
00025 #include <vector>
00026
00027 struct UnstructuredGrid;
00028 struct Wells;
00029 struct FlowBoundaryConditions;
00030
00031 namespace Opm
00032 {
00033 class ParameterGroup;
00034 class BlackoilPropertiesInterface;
00035 class PolymerProperties;
00036 class RockCompressibility;
00037 class WellsManager;
00038 class PolymerInflowInterface;
00039 class LinearSolverInterface;
00040 class SimulatorTimer;
00041 class PolymerBlackoilState;
00042 class WellState;
00043 struct SimulatorReport;
00044
00046 class SimulatorCompressiblePolymer
00047 {
00048 public:
00073 SimulatorCompressiblePolymer(const ParameterGroup& param,
00074 const UnstructuredGrid& grid,
00075 const BlackoilPropertiesInterface& props,
00076 const PolymerProperties& poly_props,
00077 const RockCompressibility* rock_comp_props,
00078 WellsManager& wells_manager,
00079 const PolymerInflowInterface& polymer_inflow,
00080 LinearSolverInterface& linsolver,
00081 const double* gravity);
00082
00091 SimulatorReport run(SimulatorTimer& timer,
00092 PolymerBlackoilState& state,
00093 WellState& well_state);
00094
00099 const SimulatorReport& failureReport() const
00100 { return failureReport_; }
00101
00102 private:
00103 class Impl;
00104
00105 SimulatorReport failureReport_;
00106
00107
00108 boost::shared_ptr<Impl> pimpl_;
00109 };
00110
00111 }
00112
00113 #endif // OPM_SIMULATORCOMPRESSIBLEPOLYMER_HEADER_INCLUDED