AdaptiveTimeStepping.hpp
Go to the documentation of this file.
194struct MinTimeStepBeforeShuttingProblematicWellsInDays<TypeTag, TTag::FlowTimeSteppingParameters> {
260 , maxTimeStep_(Parameters::get<TypeTag, Properties::SolverMaxTimeStepInDays>() * 24 * 60 * 60) // 365.25
261 , minTimeStep_(unitSystem.to_si(UnitSystem::measure::time, Parameters::get<TypeTag, Properties::SolverMinTimeStep>())) // 1e-12;
262 , ignoreConvergenceFailure_(Parameters::get<TypeTag, Properties::SolverContinueOnConvergenceFailure>()) // false;
264 , solverVerbose_(Parameters::get<TypeTag, Properties::SolverVerbosity>() > 0 && terminalOutput) // 2
265 , timestepVerbose_(Parameters::get<TypeTag, Properties::TimeStepVerbosity>() > 0 && terminalOutput) // 2
266 , suggestedNextTimestep_((max_next_tstep <= 0 ? Parameters::get<TypeTag, Properties::InitialTimeStepInDays>() : max_next_tstep) * 24 * 60 * 60) // 1.0
267 , fullTimestepInitially_(Parameters::get<TypeTag, Properties::FullTimeStepInitially>()) // false
268 , timestepAfterEvent_(Parameters::get<TypeTag, Properties::TimeStepAfterEventInDays>() * 24 * 60 * 60) // 1e30
270 , minTimeStepBeforeShuttingProblematicWells_(Parameters::get<TypeTag, Properties::MinTimeStepBeforeShuttingProblematicWellsInDays>() * unit::day)
293 , solverVerbose_(Parameters::get<TypeTag, Properties::SolverVerbosity>() > 0 && terminalOutput) // 2
294 , timestepVerbose_(Parameters::get<TypeTag, Properties::TimeStepVerbosity>() > 0 && terminalOutput) // 2
295 , suggestedNextTimestep_(max_next_tstep <= 0 ? Parameters::get<TypeTag, Properties::InitialTimeStepInDays>() * 24 * 60 * 60 : max_next_tstep) // 1.0
296 , fullTimestepInitially_(Parameters::get<TypeTag, Properties::FullTimeStepInitially>()) // false
299 , minTimeStepBeforeShuttingProblematicWells_(Parameters::get<TypeTag, Properties::MinTimeStepBeforeShuttingProblematicWellsInDays>() * unit::day)
421 OpmLog::debug("Overall linear iterations used: " + std::to_string(substepReport.total_linear_iterations));
601 std::set<std::string> failing_wells = detail::consistentlyFailingWells(solver.model().stepReports());
609 bool was_shut = solver.model().wellModel().forceShutWellByName(well, substepTimer.simulationTimeElapsed());
642 ss << "Suggested next step size = " << unit::convert::to(suggestedNextTimestep_, unit::day) << " (days)" << std::endl;
673 // \Note Only update next suggested step if TSINIT was explicitly set in TUNING or NEXTSTEP is active.
826 const int iterations = Parameters::get<TypeTag, Properties::TimeStepControlTargetIterations>(); // 30
827 const double decayDampingFactor = Parameters::get<TypeTag, Properties::TimeStepControlDecayDampingFactor>(); // 1.0
828 const double growthDampingFactor = Parameters::get<TypeTag, Properties::TimeStepControlGrowthDampingFactor>(); // 3.2
829 timeStepControl_ = std::make_unique<PIDAndIterationCountTimeStepControl>(iterations, decayDampingFactor, growthDampingFactor, tol);
833 const int iterations = Parameters::get<TypeTag, Properties::TimeStepControlTargetNewtonIterations>(); // 8
834 const double decayDampingFactor = Parameters::get<TypeTag, Properties::TimeStepControlDecayDampingFactor>(); // 1.0
835 const double growthDampingFactor = Parameters::get<TypeTag, Properties::TimeStepControlGrowthDampingFactor>(); // 3.2
836 const double nonDimensionalMinTimeStepIterations = Parameters::get<TypeTag, Properties::MinTimeStepBasedOnNewtonIterations>(); // 0.0 by default
838 double minTimeStepReducedByIterations = unitSystem.to_si(UnitSystem::measure::time, nonDimensionalMinTimeStepIterations);
839 timeStepControl_ = std::make_unique<PIDAndIterationCountTimeStepControl>(iterations, decayDampingFactor,
845 const int iterations = Parameters::get<TypeTag, Properties::TimeStepControlTargetIterations>(); // 30
846 const double decayrate = Parameters::get<TypeTag, Properties::TimeStepControlDecayRate>(); // 0.75
847 const double growthrate = Parameters::get<TypeTag, Properties::TimeStepControlGrowthRate>(); // 1.25
848 timeStepControl_ = std::make_unique<SimpleIterationCountTimeStepControl>(iterations, decayrate, growthrate);
852 const int iterations = Parameters::get<TypeTag, Properties::TimeStepControlTargetNewtonIterations>(); // 8
853 const double decayrate = Parameters::get<TypeTag, Properties::TimeStepControlDecayRate>(); // 0.75
854 const double growthrate = Parameters::get<TypeTag, Properties::TimeStepControlGrowthRate>(); // 1.25
855 timeStepControl_ = std::make_unique<SimpleIterationCountTimeStepControl>(iterations, decayrate, growthrate);
860 const std::string filename = Parameters::get<TypeTag, Properties::TimeStepControlFileName>(); // "timesteps"
Simulation timer for adaptive time stepping. Definition: AdaptiveSimulatorTimer.hpp:41 Definition: AdaptiveTimeStepping.hpp:223 double minTimeStep_ minimal allowed time step size before throwing Definition: AdaptiveTimeStepping.hpp:880 double suggestedNextTimestep_ suggested size of next timestep Definition: AdaptiveTimeStepping.hpp:885 bool solverVerbose_ solver verbosity Definition: AdaptiveTimeStepping.hpp:883 void init_(const UnitSystem &unitSystem) Definition: AdaptiveTimeStepping.hpp:815 void setSuggestedNextStep(const double x) Definition: AdaptiveTimeStepping.hpp:658 double suggestedNextStep() const Returns the simulator report for the failed substeps of the last report step. Definition: AdaptiveTimeStepping.hpp:655 double growthFactor_ factor to multiply time step when solver recovered from failed convergence Definition: AdaptiveTimeStepping.hpp:877 AdaptiveTimeStepping(const UnitSystem &unitSystem, const double max_next_tstep=-1.0, const bool terminalOutput=true) contructor taking parameter object Definition: AdaptiveTimeStepping.hpp:253 void serializeOp(Serializer &serializer) Definition: AdaptiveTimeStepping.hpp:680 void updateTUNING(double max_next_tstep, const Tuning &tuning) Definition: AdaptiveTimeStepping.hpp:661 static void registerParameters() Definition: AdaptiveTimeStepping.hpp:304 TimeStepController timeStepControl_ time step control object Definition: AdaptiveTimeStepping.hpp:875 static AdaptiveTimeStepping< TypeTag > serializationTestObjectSimple() Definition: AdaptiveTimeStepping.hpp:728 bool fullTimestepInitially_ beginning with the size of the time step from data file Definition: AdaptiveTimeStepping.hpp:886 AdaptiveTimeStepping(double max_next_tstep, const Tuning &tuning, const UnitSystem &unitSystem, const bool terminalOutput=true) contructor taking parameter object Definition: AdaptiveTimeStepping.hpp:281 std::unique_ptr< TimeStepControlInterface > TimeStepController Definition: AdaptiveTimeStepping.hpp:872 double timestepAfterEvent_ suggested size of timestep after an event Definition: AdaptiveTimeStepping.hpp:887 bool useNewtonIteration_ use newton iteration count for adaptive time step control Definition: AdaptiveTimeStepping.hpp:888 bool timestepVerbose_ timestep verbosity Definition: AdaptiveTimeStepping.hpp:884 int solverRestartMax_ how many restart of solver are allowed Definition: AdaptiveTimeStepping.hpp:882 TimeStepControlType timeStepControlType_ type of time step control object Definition: AdaptiveTimeStepping.hpp:874 double minTimeStepBeforeShuttingProblematicWells_ Definition: AdaptiveTimeStepping.hpp:889 bool operator==(const AdaptiveTimeStepping< TypeTag > &rhs) Definition: AdaptiveTimeStepping.hpp:733 SimulatorReport step(const SimulatorTimer &simulatorTimer, Solver &solver, const bool isEvent, const std::vector< int > *fipnum=nullptr, const std::function< bool()> tuningUpdater=[](){return false;}) step method that acts like the solver::step method in a sub cycle of time steps Definition: AdaptiveTimeStepping.hpp:365 static AdaptiveTimeStepping< TypeTag > serializationTestObjectPIDIt() Definition: AdaptiveTimeStepping.hpp:723 void updateNEXTSTEP(double max_next_tstep) Definition: AdaptiveTimeStepping.hpp:671 AdaptiveTimeStepping()=default bool ignoreConvergenceFailure_ continue instead of stop when minimum time step is reached Definition: AdaptiveTimeStepping.hpp:881 double maxTimeStep_ maximal allowed time step size in days Definition: AdaptiveTimeStepping.hpp:879 static AdaptiveTimeStepping< TypeTag > serializationTestObjectHardcoded() Definition: AdaptiveTimeStepping.hpp:713 double restartFactor_ factor to multiply time step with when solver fails to converge Definition: AdaptiveTimeStepping.hpp:876 double maxGrowth_ factor that limits the maximum growth of a time step Definition: AdaptiveTimeStepping.hpp:878 static AdaptiveTimeStepping< TypeTag > serializationTestObjectPID() Definition: AdaptiveTimeStepping.hpp:718 Definition: TimeStepControlInterface.hpp:32 Definition: SimulatorTimer.hpp:39 double currentStepLength() const override Definition: AluGridVanguard.hpp:57 void logTimer(const AdaptiveSimulatorTimer &substepTimer) std::set< std::string > consistentlyFailingWells(const std::vector< StepReport > &sr) Definition: BlackoilPhases.hpp:27 std::string to_string(const ConvergenceReport::ReservoirFailure::Type t) @ PIDAndIterationCount @ SimpleIterationCount @ HardCodedTimeStep Definition: AdaptiveTimeStepping.hpp:79 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:80 GetPropType< TypeTag, Scalar > type Definition: AdaptiveTimeStepping.hpp:145 Definition: AdaptiveTimeStepping.hpp:75 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:76 GetPropType< TypeTag, Scalar > type Definition: AdaptiveTimeStepping.hpp:201 Definition: AdaptiveTimeStepping.hpp:123 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:124 GetPropType< TypeTag, Scalar > type Definition: AdaptiveTimeStepping.hpp:195 Definition: AdaptiveTimeStepping.hpp:119 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:120 Definition: AdaptiveTimeStepping.hpp:59 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:60 Definition: AdaptiveTimeStepping.hpp:63 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:64 Definition: AdaptiveTimeStepping.hpp:67 Definition: AdaptiveTimeStepping.hpp:53 std::tuple< EclTimeSteppingParameters > InheritsFrom Definition: AdaptiveTimeStepping.hpp:54 GetPropType< TypeTag, Scalar > type Definition: AdaptiveTimeStepping.hpp:181 Definition: AdaptiveTimeStepping.hpp:107 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:108 GetPropType< TypeTag, Scalar > type Definition: AdaptiveTimeStepping.hpp:171 Definition: AdaptiveTimeStepping.hpp:99 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:100 Definition: AdaptiveTimeStepping.hpp:115 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:116 GetPropType< TypeTag, Scalar > type Definition: AdaptiveTimeStepping.hpp:186 Definition: AdaptiveTimeStepping.hpp:111 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:112 GetPropType< TypeTag, Scalar > type Definition: AdaptiveTimeStepping.hpp:176 Definition: AdaptiveTimeStepping.hpp:103 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:104 Definition: AdaptiveTimeStepping.hpp:83 Definition: AdaptiveTimeStepping.hpp:91 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:92 Definition: AdaptiveTimeStepping.hpp:95 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:96 GetPropType< TypeTag, Scalar > type Definition: AdaptiveTimeStepping.hpp:158 Definition: AdaptiveTimeStepping.hpp:87 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:88 Definition: AdaptiveTimeStepping.hpp:71 UndefinedProperty type Definition: AdaptiveTimeStepping.hpp:72 Definition: SimulatorReport.hpp:100 double output_write_time Definition: SimulatorReport.hpp:45 Definition: ConvergenceReport.hpp:225 |