Make BlackoilMultisegmentModel constructured from MultisegmentWells

Instead of being coustructed based StandardWells and having a
MultisegmentWells member.
This commit is contained in:
Kai Bao
2016-05-09 17:44:59 +02:00
parent 4254b48b57
commit 06775ee02c
22 changed files with 87 additions and 68 deletions

View File

@@ -79,7 +79,7 @@ namespace Opm {
const DerivedGeology& geo,
const RockCompressibility* rock_comp_props,
const PolymerPropsAd& polymer_props_ad,
const Wells* wells,
const StandardWells& well_model,
const NewtonIterationBlackoilInterface& linsolver,
EclipseStateConstPtr eclipse_state,
const bool has_disgas,

View File

@@ -80,7 +80,7 @@ namespace Opm {
const DerivedGeology& geo,
const RockCompressibility* rock_comp_props,
const PolymerPropsAd& polymer_props_ad,
const Wells* wells_arg,
const StandardWells& well_model,
const NewtonIterationBlackoilInterface& linsolver,
EclipseStateConstPtr eclipse_state,
const bool has_disgas,
@@ -92,7 +92,7 @@ namespace Opm {
const std::vector<double>& wells_perf_length,
const std::vector<double>& wells_bore_diameter,
const bool terminal_output)
: Base(param, grid, fluid, geo, rock_comp_props, wells_arg, linsolver, eclipse_state,
: Base(param, grid, fluid, geo, rock_comp_props, well_model, linsolver, eclipse_state,
has_disgas, has_vapoil, terminal_output),
polymer_props_ad_(polymer_props_ad),
has_polymer_(has_polymer),

View File

@@ -81,6 +81,8 @@ namespace Opm
template <class GridT>
class SimulatorFullyImplicitBlackoilPolymer;
class StandardWells;
template<class GridT>
struct SimulatorTraits<SimulatorFullyImplicitBlackoilPolymer<GridT> >
{
@@ -90,6 +92,7 @@ namespace Opm
typedef GridT Grid;
typedef BlackoilPolymerModel<Grid> Model;
typedef NonlinearSolver<Model> Solver;
typedef StandardWells WellModel;
};
/// Class collecting all necessary components for a blackoil simulation with polymer
@@ -103,6 +106,7 @@ namespace Opm
typedef SimulatorTraits<ThisType> Traits;
typedef typename Traits::Solver Solver;
typedef typename Traits::WellModel WellModel;
public:
SimulatorFullyImplicitBlackoilPolymer(const parameter::ParameterGroup& param,
@@ -123,7 +127,7 @@ namespace Opm
Opm::DeckConstPtr& deck,
const std::vector<double>& threshold_pressures_by_face);
std::unique_ptr<Solver> createSolver(const Wells* wells);
std::unique_ptr<Solver> createSolver(const WellModel& well_model);
void handleAdditionalWellInflow(SimulatorTimer& timer,

View File

@@ -62,7 +62,7 @@ namespace Opm
template <class GridT>
auto SimulatorFullyImplicitBlackoilPolymer<GridT>::
createSolver(const Wells* wells)
createSolver(const WellModel& well_model)
-> std::unique_ptr<Solver>
{
typedef typename Traits::Model Model;
@@ -74,7 +74,7 @@ namespace Opm
BaseType::geo_,
BaseType::rock_comp_props_,
polymer_props_,
wells,
well_model,
BaseType::solver_,
BaseType::eclipse_state_,
BaseType::has_disgas_,