mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Merge pull request #1042 from andlaus/refactor_well_permeability
do not explicitly pass the permeability to the well model anymore
This commit is contained in:
@@ -252,7 +252,7 @@ try
|
||||
<< simtimer.numSteps() - step << ")\n\n" << std::flush;
|
||||
|
||||
// Create new wells, well_state
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid(), props->permeability());
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid());
|
||||
// @@@ HACK: we should really make a new well state and
|
||||
// properly transfer old well state to it every report step,
|
||||
// since number of wells may change etc.
|
||||
|
||||
@@ -273,7 +273,7 @@ try
|
||||
// << simtimer.numSteps() - step << ")\n\n" << std::flush;
|
||||
|
||||
// Create new wells, well_state
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid(), props->permeability());
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid());
|
||||
// @@@ HACK: we should really make a new well state and
|
||||
// properly transfer old well state to it every report step,
|
||||
// since number of wells may change etc.
|
||||
|
||||
@@ -262,7 +262,7 @@ try
|
||||
<< timeMap.numTimesteps() - reportStepIdx << ")\n\n" << std::flush;
|
||||
|
||||
// Create new wells, well_state
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid(), props->permeability());
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid());
|
||||
// @@@ HACK: we should really make a new well state and
|
||||
// properly transfer old well state to it every report step,
|
||||
// since number of wells may change etc.
|
||||
|
||||
@@ -286,7 +286,7 @@ try
|
||||
|
||||
// Create new wells, polymer inflow controls.
|
||||
eclipseState.reset( new EclipseState( deck ) );
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid(), props->permeability());
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid());
|
||||
boost::scoped_ptr<PolymerInflowInterface> polymer_inflow;
|
||||
if (use_wpolymer) {
|
||||
if (wells.c_wells() == 0) {
|
||||
|
||||
@@ -320,7 +320,7 @@ try
|
||||
<< simtimer.numSteps() - step << ")\n\n" << std::flush;
|
||||
|
||||
// Create new wells, polymer inflow controls.
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid(), props->permeability());
|
||||
WellsManager wells(*eclipseState , reportStepIdx , *grid->c_grid());
|
||||
boost::scoped_ptr<PolymerInflowInterface> polymer_inflow;
|
||||
if (use_wpolymer) {
|
||||
if (wells.c_wells() == 0) {
|
||||
|
||||
@@ -245,8 +245,7 @@ try
|
||||
::createEclipseGrid( cGrid ,
|
||||
eclipseState->getInputGrid())));
|
||||
Opm::BlackoilOutputWriter
|
||||
outputWriter(cGrid, param, *eclipseState, std::move(eclipseWriter), pu,
|
||||
new_props->permeability() );
|
||||
outputWriter(cGrid, param, *eclipseState, std::move(eclipseWriter), pu);
|
||||
|
||||
SimulatorReport fullReport;
|
||||
// Create and run simulator.
|
||||
|
||||
@@ -781,8 +781,7 @@ namespace Opm
|
||||
param_,
|
||||
*eclipse_state_,
|
||||
std::move(eclipse_writer_),
|
||||
Opm::phaseUsageFromDeck(*deck_),
|
||||
fluidprops_->permeability()));
|
||||
Opm::phaseUsageFromDeck(*deck_)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -556,15 +556,10 @@ namespace Opm
|
||||
// output_writer_
|
||||
void setupOutputWriter()
|
||||
{
|
||||
// create output writer after grid is distributed, otherwise the parallel output
|
||||
// won't work correctly since we need to create a mapping from the distributed to
|
||||
// the global view
|
||||
output_writer_.reset(new OutputWriter(grid(),
|
||||
param_,
|
||||
eclState(),
|
||||
std::move(eclIO_),
|
||||
Opm::phaseUsageFromDeck(deck()),
|
||||
fluidprops_->permeability()));
|
||||
std::move(eclIO_));
|
||||
}
|
||||
|
||||
// Run the simulator.
|
||||
|
||||
@@ -82,7 +82,6 @@ namespace Opm
|
||||
ParallelDebugOutput ( const GridImpl& grid,
|
||||
const EclipseState& /* eclipseState */,
|
||||
const int,
|
||||
const double*,
|
||||
const Opm::PhaseUsage& )
|
||||
: grid_( grid ) {}
|
||||
|
||||
@@ -245,11 +244,9 @@ namespace Opm
|
||||
ParallelDebugOutput( const Dune::CpGrid& otherGrid,
|
||||
const EclipseState& eclipseState,
|
||||
const int numPhases,
|
||||
const double* permeability,
|
||||
const Opm::PhaseUsage& phaseUsage)
|
||||
: grid_(),
|
||||
eclipseState_( eclipseState ),
|
||||
permeability_( permeability ),
|
||||
toIORankComm_( otherGrid.comm() ),
|
||||
globalCellData_(new data::Solution),
|
||||
isIORank_( otherGrid.comm().rank() == ioRank ),
|
||||
@@ -628,16 +625,14 @@ namespace Opm
|
||||
Opm::UgGridHelpers::dimensions( globalGrid ),
|
||||
Opm::UgGridHelpers::cell2Faces( globalGrid ),
|
||||
Opm::UgGridHelpers::beginFaceCentroids( globalGrid ),
|
||||
permeability_,
|
||||
dynamic_list_econ_limited,
|
||||
false
|
||||
false,
|
||||
// We need to pass the optionaly arguments
|
||||
// as we get the following error otherwise
|
||||
// with c++ (Debian 4.9.2-10) 4.9.2 and -std=c++11
|
||||
// converting to ‘const std::unordered_set<std::basic_string<char> >’ from initializer list would use explicit constructor
|
||||
, std::vector<double>(),
|
||||
std::unordered_set<std::string>()
|
||||
);
|
||||
std::vector<double>(),
|
||||
std::unordered_set<std::string>());
|
||||
|
||||
const Wells* wells = wells_manager.c_wells();
|
||||
globalWellState_.init(wells, *globalReservoirState_, globalWellState_ );
|
||||
@@ -693,7 +688,6 @@ namespace Opm
|
||||
protected:
|
||||
std::unique_ptr< Dune::CpGrid > grid_;
|
||||
const EclipseState& eclipseState_;
|
||||
const double* permeability_;
|
||||
P2PCommunicatorType toIORankComm_;
|
||||
IndexMapType globalIndex_;
|
||||
IndexMapType localIndexMap_;
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace Opm
|
||||
|
||||
if (output_writer_.isRestart()) {
|
||||
// This is a restart, populate WellState and ReservoirState state objects from restart file
|
||||
output_writer_.initFromRestartFile(props_.phaseUsage(), props_.permeability(), grid_, state, prev_well_state);
|
||||
output_writer_.initFromRestartFile(props_.phaseUsage(), grid_, state, prev_well_state);
|
||||
initHydroCarbonState(state, props_.phaseUsage(), Opm::UgGridHelpers::numCells(grid_), has_disgas_, has_vapoil_);
|
||||
}
|
||||
|
||||
@@ -170,7 +170,6 @@ namespace Opm
|
||||
Opm::UgGridHelpers::dimensions(grid_),
|
||||
Opm::UgGridHelpers::cell2Faces(grid_),
|
||||
Opm::UgGridHelpers::beginFaceCentroids(grid_),
|
||||
props_.permeability(),
|
||||
dynamic_list_econ_limited,
|
||||
is_parallel_run_,
|
||||
well_potentials,
|
||||
|
||||
@@ -145,7 +145,7 @@ public:
|
||||
|
||||
if (output_writer_.isRestart()) {
|
||||
// This is a restart, populate WellState and ReservoirState state objects from restart file
|
||||
output_writer_.initFromRestartFile(props_.phaseUsage(), props_.permeability(), grid(), state, prev_well_state);
|
||||
output_writer_.initFromRestartFile(props_.phaseUsage(), grid(), state, prev_well_state);
|
||||
initHydroCarbonState(state, props_.phaseUsage(), Opm::UgGridHelpers::numCells(grid()), has_disgas_, has_vapoil_);
|
||||
}
|
||||
|
||||
@@ -222,7 +222,6 @@ public:
|
||||
Opm::UgGridHelpers::dimensions(grid()),
|
||||
Opm::UgGridHelpers::cell2Faces(grid()),
|
||||
Opm::UgGridHelpers::beginFaceCentroids(grid()),
|
||||
props_.permeability(),
|
||||
dynamic_list_econ_limited,
|
||||
is_parallel_run_,
|
||||
well_potentials,
|
||||
|
||||
@@ -106,7 +106,6 @@ namespace Opm
|
||||
Opm::UgGridHelpers::dimensions(grid_),
|
||||
Opm::UgGridHelpers::cell2Faces(grid_),
|
||||
Opm::UgGridHelpers::beginFaceCentroids(grid_),
|
||||
props_.permeability(),
|
||||
dynamic_list_econ_limited,
|
||||
is_parallel_run_,
|
||||
// We need to pass the optionaly arguments
|
||||
|
||||
@@ -208,8 +208,7 @@ namespace Opm
|
||||
const parameter::ParameterGroup& param,
|
||||
const Opm::EclipseState& eclipseState,
|
||||
std::unique_ptr<EclipseIO>&& eclIO,
|
||||
const Opm::PhaseUsage &phaseUsage,
|
||||
const double* permeability );
|
||||
const Opm::PhaseUsage &phaseUsage);
|
||||
|
||||
/** \copydoc Opm::OutputWriter::writeInit */
|
||||
void writeInit(const data::Solution& simProps, const NNC& nnc);
|
||||
@@ -283,7 +282,6 @@ namespace Opm
|
||||
|
||||
template <class Grid>
|
||||
void initFromRestartFile(const PhaseUsage& phaseusage,
|
||||
const double* permeability,
|
||||
const Grid& grid,
|
||||
SimulationDataContainer& simulatorstate,
|
||||
WellStateFullyImplicitBlackoil& wellstate);
|
||||
@@ -323,10 +321,9 @@ namespace Opm
|
||||
const parameter::ParameterGroup& param,
|
||||
const Opm::EclipseState& eclipseState,
|
||||
std::unique_ptr<EclipseIO>&& eclIO,
|
||||
const Opm::PhaseUsage &phaseUsage,
|
||||
const double* permeability )
|
||||
const Opm::PhaseUsage &phaseUsage)
|
||||
: output_( param.getDefault("output", true) ),
|
||||
parallelOutput_( output_ ? new ParallelDebugOutput< Grid >( grid, eclipseState, phaseUsage.num_phases, permeability, phaseUsage ) : 0 ),
|
||||
parallelOutput_( output_ ? new ParallelDebugOutput< Grid >( grid, eclipseState, phaseUsage.num_phases, phaseUsage ) : 0 ),
|
||||
outputDir_( output_ ? param.getDefault("output_dir", std::string("output")) : "." ),
|
||||
output_interval_( output_ ? param.getDefault("output_interval", 1): 0 ),
|
||||
lastBackupReportStep_( -1 ),
|
||||
@@ -400,7 +397,6 @@ namespace Opm
|
||||
inline void
|
||||
BlackoilOutputWriter::
|
||||
initFromRestartFile( const PhaseUsage& phaseusage,
|
||||
const double* permeability,
|
||||
const Grid& grid,
|
||||
SimulationDataContainer& simulatorstate,
|
||||
WellStateFullyImplicitBlackoil& wellstate)
|
||||
@@ -422,7 +418,6 @@ namespace Opm
|
||||
Opm::UgGridHelpers::dimensions(grid),
|
||||
Opm::UgGridHelpers::cell2Faces(grid),
|
||||
Opm::UgGridHelpers::beginFaceCentroids(grid),
|
||||
permeability,
|
||||
dummy_list_econ_limited
|
||||
// We need to pass the optionaly arguments
|
||||
// as we get the following error otherwise
|
||||
|
||||
@@ -70,8 +70,7 @@ namespace Opm
|
||||
const parameter::ParameterGroup& param,
|
||||
const EclipseState& eclipseState,
|
||||
std::unique_ptr<EclipseIO>&& eclIO,
|
||||
const Opm::PhaseUsage &phaseUsage,
|
||||
const double* permeability );
|
||||
const Opm::PhaseUsage &phaseUsage);
|
||||
|
||||
/*!
|
||||
* \brief Write a blackoil reservoir state to disk for later inspection with
|
||||
@@ -142,7 +141,6 @@ namespace Opm
|
||||
|
||||
template <class Grid>
|
||||
void initFromRestartFile(const PhaseUsage& phaseusage,
|
||||
const double* permeability,
|
||||
const Grid& grid,
|
||||
SimulationDataContainer& simulatorstate,
|
||||
WellStateFullyImplicitBlackoilDense& wellstate);
|
||||
@@ -180,10 +178,9 @@ namespace Opm
|
||||
const parameter::ParameterGroup& param,
|
||||
const Opm::EclipseState& eclipseState,
|
||||
std::unique_ptr<EclipseIO>&& eclIO,
|
||||
const Opm::PhaseUsage &phaseUsage,
|
||||
const double* permeability )
|
||||
const Opm::PhaseUsage &phaseUsage)
|
||||
: output_( param.getDefault("output", true) ),
|
||||
parallelOutput_( output_ ? new ParallelDebugOutput< Grid >( grid, eclipseState, phaseUsage.num_phases, permeability, phaseUsage ) : 0 ),
|
||||
parallelOutput_( output_ ? new ParallelDebugOutput< Grid >( grid, eclipseState, phaseUsage.num_phases, phaseUsage ) : 0 ),
|
||||
outputDir_( output_ ? param.getDefault("output_dir", std::string("output")) : "." ),
|
||||
output_interval_( output_ ? param.getDefault("output_interval", 1): 0 ),
|
||||
lastBackupReportStep_( -1 ),
|
||||
@@ -233,7 +230,6 @@ namespace Opm
|
||||
inline void
|
||||
BlackoilOutputWriterEbos::
|
||||
initFromRestartFile( const PhaseUsage& phaseusage,
|
||||
const double* permeability,
|
||||
const Grid& grid,
|
||||
SimulationDataContainer& simulatorstate,
|
||||
WellStateFullyImplicitBlackoilDense& wellstate)
|
||||
@@ -255,7 +251,6 @@ namespace Opm
|
||||
Opm::UgGridHelpers::dimensions(grid),
|
||||
Opm::UgGridHelpers::cell2Faces(grid),
|
||||
Opm::UgGridHelpers::beginFaceCentroids(grid),
|
||||
permeability,
|
||||
dummy_list_econ_limited
|
||||
// We need to pass the optionaly arguments
|
||||
// as we get the following error otherwise
|
||||
@@ -278,13 +273,13 @@ namespace Opm
|
||||
|
||||
namespace detail {
|
||||
template<class Model>
|
||||
void getOutputDataEbos(data::Solution& output,
|
||||
const Opm::PhaseUsage& phaseUsage,
|
||||
const Model& model,
|
||||
const RestartConfig& restartConfig,
|
||||
const int reportStepNum,
|
||||
const bool log)
|
||||
{
|
||||
void getOutputDataEbos(data::Solution& output,
|
||||
const Opm::PhaseUsage& phaseUsage,
|
||||
const Model& model,
|
||||
const RestartConfig& restartConfig,
|
||||
const int reportStepNum,
|
||||
const bool log)
|
||||
{
|
||||
typedef typename Model::FluidSystem FluidSystem;
|
||||
|
||||
//Get the value of each of the keys
|
||||
|
||||
@@ -106,7 +106,6 @@ struct SetupMSW {
|
||||
Opm::UgGridHelpers::dimensions(grid),
|
||||
Opm::UgGridHelpers::cell2Faces(grid),
|
||||
Opm::UgGridHelpers::beginFaceCentroids(grid),
|
||||
fluidprops->permeability(),
|
||||
dummy_dynamic_list,
|
||||
false
|
||||
// We need to pass the optionaly arguments
|
||||
|
||||
Reference in New Issue
Block a user