mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-01-24 05:06:25 -06:00
write ECL summary files for wells
so far, the units of the values written to disk are always what Eclipse calls METRIC and the number of supported quantities is somewhat limited...
This commit is contained in:
parent
138512cac2
commit
49061f879f
@ -25,6 +25,7 @@
|
|||||||
#define EWOMS_ECL_WELL_MANAGER_HH
|
#define EWOMS_ECL_WELL_MANAGER_HH
|
||||||
|
|
||||||
#include <ewoms/wells/eclpeacemanwell.hh>
|
#include <ewoms/wells/eclpeacemanwell.hh>
|
||||||
|
#include <ewoms/disc/common/fvbaseproperties.hh>
|
||||||
|
|
||||||
#include <opm/parser/eclipse/Deck/Deck.hpp>
|
#include <opm/parser/eclipse/Deck/Deck.hpp>
|
||||||
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
|
#include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
|
||||||
@ -90,21 +91,6 @@ public:
|
|||||||
// specified by the updateWellCompletions_() method
|
// specified by the updateWellCompletions_() method
|
||||||
well->beginSpec();
|
well->beginSpec();
|
||||||
well->setName(wellName);
|
well->setName(wellName);
|
||||||
|
|
||||||
|
|
||||||
// overwrite the automatically computed effective
|
|
||||||
// permeability by the one specified in the deck. Note: this
|
|
||||||
// is not implemented by opm-parser yet...
|
|
||||||
//Scalar Kh = completion->getEffectivePermeability();
|
|
||||||
Scalar Kh = 0.0;
|
|
||||||
if (Kh > 0.0)
|
|
||||||
well->setEffectivePermeability(elemCtx, dofIdx, Kh);
|
|
||||||
|
|
||||||
// overwrite the automatically computed connection
|
|
||||||
// transmissibilty factor by the one specified in the deck.
|
|
||||||
Scalar ctf = completion->getConnectionTransmissibilityFactor();
|
|
||||||
if (ctf > 0.0)
|
|
||||||
well->setConnectionTransmissibilityFactor(elemCtx, dofIdx, ctf);
|
|
||||||
well->endSpec();
|
well->endSpec();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include <ewoms/models/blackoil/blackoilmodel.hh>
|
#include <ewoms/models/blackoil/blackoilmodel.hh>
|
||||||
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
|
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
|
||||||
#include <ewoms/io/eclgridmanager.hh>
|
#include <ewoms/io/eclgridmanager.hh>
|
||||||
|
#include <ewoms/io/eclipsesummarywriter.hh>
|
||||||
#include <ewoms/wells/eclwellmanager.hh>
|
#include <ewoms/wells/eclwellmanager.hh>
|
||||||
|
|
||||||
#include <opm/material/fluidmatrixinteractions/PiecewiseLinearTwoPhaseMaterial.hpp>
|
#include <opm/material/fluidmatrixinteractions/PiecewiseLinearTwoPhaseMaterial.hpp>
|
||||||
@ -139,6 +140,9 @@ SET_BOOL_PROP(EclBaseProblem, EnableVtkOutput, false);
|
|||||||
// ... but enable the Eclipse output by default
|
// ... but enable the Eclipse output by default
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableEclipseOutput, true);
|
SET_BOOL_PROP(EclBaseProblem, EnableEclipseOutput, true);
|
||||||
|
|
||||||
|
// also enable the summary output.
|
||||||
|
SET_BOOL_PROP(EclBaseProblem, EnableEclipseSummaryOutput, true);
|
||||||
|
|
||||||
// The default DGF file to load
|
// The default DGF file to load
|
||||||
SET_STRING_PROP(EclBaseProblem, GridFile, "data/ecl.DATA");
|
SET_STRING_PROP(EclBaseProblem, GridFile, "data/ecl.DATA");
|
||||||
}} // namespace Properties, Opm
|
}} // namespace Properties, Opm
|
||||||
@ -181,6 +185,8 @@ class EclProblem : public GET_PROP_TYPE(TypeTag, BaseProblem)
|
|||||||
typedef typename GET_PROP_TYPE(TypeTag, Simulator) Simulator;
|
typedef typename GET_PROP_TYPE(TypeTag, Simulator) Simulator;
|
||||||
typedef typename GET_PROP_TYPE(TypeTag, MaterialLawParams) MaterialLawParams;
|
typedef typename GET_PROP_TYPE(TypeTag, MaterialLawParams) MaterialLawParams;
|
||||||
|
|
||||||
|
typedef Ewoms::EclipseSummaryWriter<TypeTag> EclipseSummaryWriter;
|
||||||
|
|
||||||
typedef Dune::FieldMatrix<Scalar, dimWorld, dimWorld> DimMatrix;
|
typedef Dune::FieldMatrix<Scalar, dimWorld, dimWorld> DimMatrix;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -204,6 +210,7 @@ public:
|
|||||||
EclProblem(Simulator &simulator)
|
EclProblem(Simulator &simulator)
|
||||||
: ParentType(simulator)
|
: ParentType(simulator)
|
||||||
, wellManager_(simulator)
|
, wellManager_(simulator)
|
||||||
|
, summaryWriter_(simulator)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -290,6 +297,10 @@ public:
|
|||||||
*/
|
*/
|
||||||
void endEpisode()
|
void endEpisode()
|
||||||
{
|
{
|
||||||
|
// first, write the summary information ...
|
||||||
|
summaryWriter_.write(wellManager_);
|
||||||
|
|
||||||
|
// ... then proceed to the next report step
|
||||||
Simulator &simulator = this->simulator();
|
Simulator &simulator = this->simulator();
|
||||||
Opm::EclipseStateConstPtr eclipseState = this->simulator().gridManager().eclipseState();
|
Opm::EclipseStateConstPtr eclipseState = this->simulator().gridManager().eclipseState();
|
||||||
Opm::TimeMapConstPtr timeMap = eclipseState->getSchedule()->getTimeMap();
|
Opm::TimeMapConstPtr timeMap = eclipseState->getSchedule()->getTimeMap();
|
||||||
@ -960,6 +971,7 @@ private:
|
|||||||
Scalar temperature_;
|
Scalar temperature_;
|
||||||
|
|
||||||
EclWellManager<TypeTag> wellManager_;
|
EclWellManager<TypeTag> wellManager_;
|
||||||
|
EclipseSummaryWriter summaryWriter_;
|
||||||
};
|
};
|
||||||
} // namespace Ewoms
|
} // namespace Ewoms
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user