use a relaxed (but not too relaxed) well tolerance when iter>6

also shut unsolvable wells during iterations as default

Note however that getWellConvergence return false if a well is unsolvable
i.e. it will cut the timestep and redo the iteration if the well is unsolvable
and only shut it completly if the time step is below the
MinTimeStepBeforeShuttingProblematicWellsInDays (default 0.01 days)
This commit is contained in:
Tor Harald Sandve 2022-04-04 09:53:09 +02:00
parent 374b25639e
commit 52fca6c91d

View File

@ -267,7 +267,7 @@ struct MaxInnerIterWells<TypeTag, TTag::FlowModelParameters> {
}; };
template<class TypeTag> template<class TypeTag>
struct ShutUnsolvableWells<TypeTag, TTag::FlowModelParameters> { struct ShutUnsolvableWells<TypeTag, TTag::FlowModelParameters> {
static constexpr bool value = false; static constexpr bool value = true;
}; };
template<class TypeTag> template<class TypeTag>
struct AlternativeWellRateInit<TypeTag, TTag::FlowModelParameters> { struct AlternativeWellRateInit<TypeTag, TTag::FlowModelParameters> {
@ -275,7 +275,7 @@ struct AlternativeWellRateInit<TypeTag, TTag::FlowModelParameters> {
}; };
template<class TypeTag> template<class TypeTag>
struct StrictOuterIterWells<TypeTag, TTag::FlowModelParameters> { struct StrictOuterIterWells<TypeTag, TTag::FlowModelParameters> {
static constexpr int value = 99; static constexpr int value = 6;
}; };
template<class TypeTag> template<class TypeTag>
struct StrictInnerIterWells<TypeTag, TTag::FlowModelParameters> { struct StrictInnerIterWells<TypeTag, TTag::FlowModelParameters> {
@ -297,12 +297,12 @@ struct EnableWellOperabilityCheckIter<TypeTag, TTag::FlowModelParameters> {
template<class TypeTag> template<class TypeTag>
struct RelaxedWellFlowTol<TypeTag, TTag::FlowModelParameters> { struct RelaxedWellFlowTol<TypeTag, TTag::FlowModelParameters> {
using type = GetPropType<TypeTag, Scalar>; using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1; static constexpr type value = 1e-3;
}; };
template<class TypeTag> template<class TypeTag>
struct RelaxedPressureTolMsw<TypeTag, TTag::FlowModelParameters> { struct RelaxedPressureTolMsw<TypeTag, TTag::FlowModelParameters> {
using type = GetPropType<TypeTag, Scalar>; using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.5e5; static constexpr type value = 1.0e4;
}; };
template<class TypeTag> template<class TypeTag>
struct MaximumNumberOfWellSwitches<TypeTag, TTag::FlowModelParameters> { struct MaximumNumberOfWellSwitches<TypeTag, TTag::FlowModelParameters> {