mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Merge pull request #2092 from totto82/wellOp
Add well operability param
This commit is contained in:
commit
d6181a4a06
@ -48,6 +48,7 @@ NEW_PROP_TAG(SolveWelleqInitially);
|
|||||||
NEW_PROP_TAG(UpdateEquationsScaling);
|
NEW_PROP_TAG(UpdateEquationsScaling);
|
||||||
NEW_PROP_TAG(UseUpdateStabilization);
|
NEW_PROP_TAG(UseUpdateStabilization);
|
||||||
NEW_PROP_TAG(MatrixAddWellContributions);
|
NEW_PROP_TAG(MatrixAddWellContributions);
|
||||||
|
NEW_PROP_TAG(EnableWellOperabilityCheck);
|
||||||
|
|
||||||
// parameters for multisegment wells
|
// parameters for multisegment wells
|
||||||
NEW_PROP_TAG(TolerancePressureMsWells);
|
NEW_PROP_TAG(TolerancePressureMsWells);
|
||||||
@ -75,6 +76,7 @@ SET_SCALAR_PROP(FlowModelParameters, TolerancePressureMsWells, 0.01 *1e5);
|
|||||||
SET_SCALAR_PROP(FlowModelParameters, MaxPressureChangeMsWells, 1e6);
|
SET_SCALAR_PROP(FlowModelParameters, MaxPressureChangeMsWells, 1e6);
|
||||||
SET_BOOL_PROP(FlowModelParameters, UseInnerIterationsMsWells, true);
|
SET_BOOL_PROP(FlowModelParameters, UseInnerIterationsMsWells, true);
|
||||||
SET_INT_PROP(FlowModelParameters, MaxInnerIterMsWells, 100);
|
SET_INT_PROP(FlowModelParameters, MaxInnerIterMsWells, 100);
|
||||||
|
SET_BOOL_PROP(FlowModelParameters, EnableWellOperabilityCheck, true);
|
||||||
|
|
||||||
// if openMP is available, determine the number threads per process automatically.
|
// if openMP is available, determine the number threads per process automatically.
|
||||||
#if _OPENMP
|
#if _OPENMP
|
||||||
@ -202,6 +204,7 @@ namespace Opm
|
|||||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UpdateEquationsScaling, "Update scaling factors for mass balance equations during the run");
|
EWOMS_REGISTER_PARAM(TypeTag, bool, UpdateEquationsScaling, "Update scaling factors for mass balance equations during the run");
|
||||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UseUpdateStabilization, "Try to detect and correct oscillations or stagnation during the Newton method");
|
EWOMS_REGISTER_PARAM(TypeTag, bool, UseUpdateStabilization, "Try to detect and correct oscillations or stagnation during the Newton method");
|
||||||
EWOMS_REGISTER_PARAM(TypeTag, bool, MatrixAddWellContributions, "Explicitly specify the influences of wells between cells in the Jacobian and preconditioner matrices");
|
EWOMS_REGISTER_PARAM(TypeTag, bool, MatrixAddWellContributions, "Explicitly specify the influences of wells between cells in the Jacobian and preconditioner matrices");
|
||||||
|
EWOMS_REGISTER_PARAM(TypeTag, bool, EnableWellOperabilityCheck, "Enable the well operability checking");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
@ -1910,6 +1910,12 @@ namespace Opm
|
|||||||
const WellState& well_state,
|
const WellState& well_state,
|
||||||
Opm::DeferredLogger& deferred_logger)
|
Opm::DeferredLogger& deferred_logger)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
const bool checkOperability = EWOMS_GET_PARAM(TypeTag, bool, EnableWellOperabilityCheck);
|
||||||
|
if (!checkOperability) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// focusing on PRODUCER for now
|
// focusing on PRODUCER for now
|
||||||
if (well_type_ == INJECTOR) {
|
if (well_type_ == INJECTOR) {
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user