mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-11-29 04:23:48 -06:00
Merge pull request #2236 from totto82/setMinimumChoppedTimeStep
at option to set the time step size for shutting problematic wells
This commit is contained in:
commit
f0bb49199a
@ -41,6 +41,7 @@ NEW_PROP_TAG(TimeStepControlTargetNewtonIterations);
|
||||
NEW_PROP_TAG(TimeStepControlDecayRate);
|
||||
NEW_PROP_TAG(TimeStepControlGrowthRate);
|
||||
NEW_PROP_TAG(TimeStepControlFileName);
|
||||
NEW_PROP_TAG(MinTimeStepBeforeShuttingProblematicWellsInDays);
|
||||
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, SolverRestartFactor, 0.33);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, SolverGrowthFactor, 2.0);
|
||||
@ -60,6 +61,8 @@ SET_INT_PROP(FlowTimeSteppingParameters, TimeStepControlTargetNewtonIterations,
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepControlDecayRate, 0.75);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepControlGrowthRate, 1.25);
|
||||
SET_STRING_PROP(FlowTimeSteppingParameters, TimeStepControlFileName, "timesteps");
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, MinTimeStepBeforeShuttingProblematicWellsInDays, 0.25);
|
||||
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
@ -111,6 +114,8 @@ namespace Opm {
|
||||
, fullTimestepInitially_(EWOMS_GET_PARAM(TypeTag, bool, FullTimeStepInitially)) // false
|
||||
, timestepAfterEvent_(EWOMS_GET_PARAM(TypeTag, double, TimeStepAfterEventInDays)*24*60*60) // 1e30
|
||||
, useNewtonIteration_(false)
|
||||
, minTimeStepBeforeShuttingProblematicWells_(EWOMS_GET_PARAM(TypeTag, double, MinTimeStepBeforeShuttingProblematicWellsInDays)*unit::day)
|
||||
|
||||
{
|
||||
init_();
|
||||
}
|
||||
@ -136,6 +141,7 @@ namespace Opm {
|
||||
, fullTimestepInitially_(EWOMS_GET_PARAM(TypeTag, bool, FullTimeStepInitially)) // false
|
||||
, timestepAfterEvent_(EWOMS_GET_PARAM(TypeTag, double, TimeStepAfterEventInDays)*24*60*60) // 1e30
|
||||
, useNewtonIteration_(false)
|
||||
, minTimeStepBeforeShuttingProblematicWells_(EWOMS_GET_PARAM(TypeTag, double, MinTimeStepBeforeShuttingProblematicWellsInDays)*unit::day)
|
||||
{
|
||||
init_();
|
||||
}
|
||||
@ -179,6 +185,8 @@ namespace Opm {
|
||||
"The growth rate of the time step size of the number of target iterations is undercut");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, TimeStepControlFileName,
|
||||
"The name of the file which contains the hardcoded time steps sizes");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, MinTimeStepBeforeShuttingProblematicWellsInDays,
|
||||
"The minimum time step size in days for which problematic wells are not shut");
|
||||
}
|
||||
|
||||
/** \brief step method that acts like the solver::step method
|
||||
@ -390,7 +398,7 @@ namespace Opm {
|
||||
++restarts;
|
||||
};
|
||||
|
||||
const double minimumChoppedTimestep = 0.25 * unit::day;
|
||||
const double minimumChoppedTimestep = minTimeStepBeforeShuttingProblematicWells_;
|
||||
if (newTimeStep > minimumChoppedTimestep) {
|
||||
chopTimestep();
|
||||
} else {
|
||||
@ -578,6 +586,7 @@ namespace Opm {
|
||||
bool fullTimestepInitially_; //!< beginning with the size of the time step from data file
|
||||
double timestepAfterEvent_; //!< suggested size of timestep after an event
|
||||
bool useNewtonIteration_; //!< use newton iteration count for adaptive time step control
|
||||
double minTimeStepBeforeShuttingProblematicWells_; //! < shut problematic wells when time step size in days are less than this
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user