mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
listing the function prototype need to update.
This commit is contained in:
parent
da6d88707c
commit
00d9a57cc2
@ -178,6 +178,63 @@ namespace Opm {
|
|||||||
using Base::wells;
|
using Base::wells;
|
||||||
|
|
||||||
const std::vector<WellMultiSegmentConstPtr>& wellsMultiSegment() const { return wells_multi_segment_; }
|
const std::vector<WellMultiSegmentConstPtr>& wellsMultiSegment() const { return wells_multi_segment_; }
|
||||||
|
|
||||||
|
SolutionState
|
||||||
|
variableState(const ReservoirState& x,
|
||||||
|
const WellState& xw) const {};
|
||||||
|
|
||||||
|
|
||||||
|
void updateWellControls(WellState& xw) const {};
|
||||||
|
|
||||||
|
void updateWellState(const V& dwells,
|
||||||
|
WellState& well_state) {};
|
||||||
|
|
||||||
|
std::vector<V>
|
||||||
|
variableStateInitials(const ReservoirState& x,
|
||||||
|
const WellState& xw) const {};
|
||||||
|
|
||||||
|
void
|
||||||
|
variableWellStateInitials(const WellState& xw,
|
||||||
|
std::vector<V>& vars0) const {};
|
||||||
|
|
||||||
|
void computeWellConnectionPressures(const SolutionState& state,
|
||||||
|
const WellState& xw) {};
|
||||||
|
|
||||||
|
void
|
||||||
|
computeWellFlux(const SolutionState& state,
|
||||||
|
const std::vector<ADB>& mob_perfcells,
|
||||||
|
const std::vector<ADB>& b_perfcells,
|
||||||
|
V& aliveWells,
|
||||||
|
std::vector<ADB>& cq_s);
|
||||||
|
|
||||||
|
void
|
||||||
|
solveWellEq(const std::vector<ADB>& mob_perfcells,
|
||||||
|
const std::vector<ADB>& b_perfcells,
|
||||||
|
SolutionState& state,
|
||||||
|
WellState& well_state);
|
||||||
|
|
||||||
|
void
|
||||||
|
updatePerfPhaseRatesAndPressures(const std::vector<ADB>& cq_s,
|
||||||
|
const SolutionState& state,
|
||||||
|
WellState& xw) {};
|
||||||
|
|
||||||
|
void
|
||||||
|
addWellFluxEq(const std::vector<ADB>& cq_s,
|
||||||
|
const SolutionState& state) {};
|
||||||
|
|
||||||
|
void
|
||||||
|
addWellContributionToMassBalanceEq(const std::vector<ADB>& cq_s,
|
||||||
|
const SolutionState& state,
|
||||||
|
const WellState& xw) {};
|
||||||
|
|
||||||
|
void
|
||||||
|
addWellControlEq(const SolutionState& state,
|
||||||
|
const WellState& xw,
|
||||||
|
const V& aliveWells) {};
|
||||||
|
|
||||||
|
std::vector<int>
|
||||||
|
variableWellStateIndices() const {};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
const Grid& grid_;
|
const Grid& grid_;
|
||||||
@ -209,52 +266,6 @@ namespace Opm {
|
|||||||
V isRv_;
|
V isRv_;
|
||||||
V isSg_;
|
V isSg_;
|
||||||
|
|
||||||
// For the non-segmented well, it should be the density with AVG or SEG way.
|
|
||||||
// while usually SEG way
|
|
||||||
V well_perforation_densities_; //Density of each well perforation
|
|
||||||
|
|
||||||
// ADB version, when using AVG way, the calculation of the density and hydrostatic head
|
|
||||||
// is implicit
|
|
||||||
ADB well_perforation_densities_adb_;
|
|
||||||
|
|
||||||
// Diff to the pressure of the related segment.
|
|
||||||
// When the well is a usual well, the bhp will be the pressure of the top segment
|
|
||||||
// For mutlti-segmented wells, only AVG is allowed.
|
|
||||||
// For non-segmented wells, typically SEG is used. AVG way might not have been
|
|
||||||
// implemented yet.
|
|
||||||
|
|
||||||
// Diff to bhp for each well perforation. only for usual wells.
|
|
||||||
// For segmented wells, they are zeros.
|
|
||||||
V well_perforation_pressure_diffs_; // Diff to bhp for each well perforation.
|
|
||||||
|
|
||||||
// ADB version. Eventually, only ADB version will be kept.
|
|
||||||
ADB well_perforation_pressure_diffs_adb_;
|
|
||||||
|
|
||||||
// Pressure correction due to the different depth of the perforation
|
|
||||||
// and the cell center of the grid block
|
|
||||||
// For the non-segmented wells, since the perforation are forced to be
|
|
||||||
// at the center of the grid cell, it should be ZERO.
|
|
||||||
// It should only apply to the mutli-segmented wells.
|
|
||||||
V well_perforation_pressure_cell_diffs_;
|
|
||||||
ADB well_perforation_pressure_cell_diffs_adb_;
|
|
||||||
|
|
||||||
// Pressure correction due to the depth differennce between segment depth and perforation depth.
|
|
||||||
// TODO: It should be able to be merge as a part of the perforation_pressure_diffs_.
|
|
||||||
ADB well_perforations_segment_pressure_diffs_;
|
|
||||||
|
|
||||||
// the average of the fluid densities in the grid block
|
|
||||||
// which is used to calculate the hydrostatic head correction due to the depth difference of the perforation
|
|
||||||
// and the cell center of the grid block
|
|
||||||
V well_perforation_cell_densities_;
|
|
||||||
ADB well_perforation_cell_densities_adb_;
|
|
||||||
|
|
||||||
V well_perforatoin_cell_pressure_diffs_;
|
|
||||||
|
|
||||||
LinearisedBlackoilResidual residual_;
|
|
||||||
|
|
||||||
/// \brief Whether we print something to std::cout
|
|
||||||
bool terminal_output_;
|
|
||||||
|
|
||||||
std::vector<int> primalVariable_;
|
std::vector<int> primalVariable_;
|
||||||
V pvdt_;
|
V pvdt_;
|
||||||
|
|
||||||
@ -283,40 +294,13 @@ namespace Opm {
|
|||||||
void
|
void
|
||||||
makeConstantState(SolutionState& state) const;
|
makeConstantState(SolutionState& state) const;
|
||||||
|
|
||||||
SolutionState
|
|
||||||
variableState(const ReservoirState& x,
|
|
||||||
const WellState& xw) const;
|
|
||||||
|
|
||||||
SolutionState
|
|
||||||
variableState(const ReservoirState& x,
|
|
||||||
const WellStateMultiSegment& xw) const;
|
|
||||||
|
|
||||||
std::vector<V>
|
|
||||||
variableStateInitials(const ReservoirState& x,
|
|
||||||
const WellState& xw) const;
|
|
||||||
std::vector<V>
|
|
||||||
variableStateInitials(const ReservoirState& x,
|
|
||||||
const WellStateMultiSegment& xw) const;
|
|
||||||
void
|
void
|
||||||
variableReservoirStateInitials(const ReservoirState& x,
|
variableReservoirStateInitials(const ReservoirState& x,
|
||||||
std::vector<V>& vars0) const;
|
std::vector<V>& vars0) const;
|
||||||
void
|
|
||||||
variableWellStateInitials(const WellState& xw,
|
|
||||||
std::vector<V>& vars0) const;
|
|
||||||
|
|
||||||
void variableWellStateInitials(const WellStateMultiSegment& xw,
|
|
||||||
std::vector<V>& vars0) const;
|
|
||||||
|
|
||||||
void
|
|
||||||
variableWellState(const WellStateMultiSegment& xw,
|
|
||||||
std::vector<V>& vars0) const;
|
|
||||||
|
|
||||||
std::vector<int>
|
std::vector<int>
|
||||||
variableStateIndices() const;
|
variableStateIndices() const;
|
||||||
|
|
||||||
std::vector<int>
|
|
||||||
variableWellStateIndices() const;
|
|
||||||
|
|
||||||
SolutionState
|
SolutionState
|
||||||
variableStateExtractVars(const ReservoirState& x,
|
variableStateExtractVars(const ReservoirState& x,
|
||||||
const std::vector<int>& indices,
|
const std::vector<int>& indices,
|
||||||
@ -331,73 +315,12 @@ namespace Opm {
|
|||||||
computeAccum(const SolutionState& state,
|
computeAccum(const SolutionState& state,
|
||||||
const int aix );
|
const int aix );
|
||||||
|
|
||||||
void computeWellConnectionPressures(const SolutionState& state,
|
|
||||||
const WellState& xw);
|
|
||||||
|
|
||||||
void computeWellConnectionPressures(const SolutionState& state,
|
|
||||||
const WellStateMultiSegment& xw);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
assembleMassBalanceEq(const SolutionState& state);
|
assembleMassBalanceEq(const SolutionState& state);
|
||||||
|
|
||||||
void
|
|
||||||
solveWellEq(const std::vector<ADB>& mob_perfcells,
|
|
||||||
const std::vector<ADB>& b_perfcells,
|
|
||||||
SolutionState& state,
|
|
||||||
WellState& well_state);
|
|
||||||
|
|
||||||
void
|
|
||||||
computeWellFlux(const SolutionState& state,
|
|
||||||
const std::vector<ADB>& mob_perfcells,
|
|
||||||
const std::vector<ADB>& b_perfcells,
|
|
||||||
V& aliveWells,
|
|
||||||
std::vector<ADB>& cq_s);
|
|
||||||
|
|
||||||
void
|
|
||||||
computeWellFlux(const MultiSegmentBlackoilSolutionState& state,
|
|
||||||
const std::vector<ADB>& mob_perfcells,
|
|
||||||
const std::vector<ADB>& b_perfcells,
|
|
||||||
V& aliveWells,
|
|
||||||
std::vector<ADB>& cq_s);
|
|
||||||
void
|
|
||||||
updatePerfPhaseRatesAndPressures(const std::vector<ADB>& cq_s,
|
|
||||||
const SolutionState& state,
|
|
||||||
WellState& xw);
|
|
||||||
|
|
||||||
void
|
|
||||||
updatePerfPhaseRatesAndPressures(const std::vector<ADB>& cq_s,
|
|
||||||
const MultiSegmentBlackoilSolutionState& state,
|
|
||||||
WellStateMultiSegment& xw);
|
|
||||||
|
|
||||||
void
|
|
||||||
addWellFluxEq(const std::vector<ADB>& cq_s,
|
|
||||||
const SolutionState& state);
|
|
||||||
|
|
||||||
void
|
|
||||||
addWellFluxEq(const std::vector<ADB>& cq_s,
|
|
||||||
const MultiSegmentBlackoilSolutionState& state);
|
|
||||||
|
|
||||||
void
|
|
||||||
addWellContributionToMassBalanceEq(const std::vector<ADB>& cq_s,
|
|
||||||
const SolutionState& state,
|
|
||||||
const WellState& xw);
|
|
||||||
|
|
||||||
void
|
|
||||||
addWellControlEq(const SolutionState& state,
|
|
||||||
const WellState& xw,
|
|
||||||
const V& aliveWells);
|
|
||||||
|
|
||||||
void
|
|
||||||
addWellControlEq(const MultiSegmentBlackoilSolutionState& state,
|
|
||||||
const WellStateMultiSegment& xw,
|
|
||||||
const V& aliveWells);
|
|
||||||
|
|
||||||
|
|
||||||
void updateWellControls(WellState& xw) const;
|
|
||||||
void updateWellControls(WellStateMultiSegment& xw) const;
|
|
||||||
|
|
||||||
void updateWellState(const V& dwells,
|
|
||||||
WellState& well_state);
|
|
||||||
|
|
||||||
bool getWellConvergence(const int iteration);
|
bool getWellConvergence(const int iteration);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user