Holds adapt parameters and infos about the problem. More...
#include <AdaptInfo.hpp>
Classes | |
class | ScalContent |
Stores adapt infos for a scalar problem or for one component of a vector valued problem. More... | |
Public Types | |
using | Key = std::string |
Public Member Functions | |
AdaptInfo (std::string const &name) | |
Constructor. | |
virtual | ~AdaptInfo ()=default |
Destructor. | |
void | reset () |
Resets all variables to zero (or something equivalent) | |
virtual bool | spaceToleranceReached () const |
Returns whether space tolerance is reached. | |
virtual bool | spaceToleranceReached (Key key) const |
Returns whether space tolerance of component associated with key is reached. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
bool | spaceToleranceReached (const TP &tp) const |
virtual bool | timeToleranceReached () const |
Returns whether time tolerance is reached. | |
virtual bool | timeToleranceReached (Key key) const |
Returns whether time tolerance of component associated with key is reached. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
bool | timeToleranceReached (const TP &tp) const |
virtual bool | timeErrorLow () const |
Returns whether time error is under its lower bound. | |
double | timeEstCombined (Key key) const |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | timeEstCombined (const TP &tp) const |
void | printTimeErrorLowInfo () const |
Print debug information about time error and its bound. | |
int | spaceIteration () const |
Returns spaceIteration_. | |
void | setSpaceIteration (int it) |
Sets spaceIteration_. | |
int | maxSpaceIteration () const |
Returns maxSpaceIteration_. | |
void | maxSpaceIteration (int it) |
Sets maxSpaceIteration_. | |
void | incSpaceIteration () |
Increments spaceIteration_ by 1;. | |
void | setTimestepIteration (int it) |
Sets timestepIteration_. | |
int | timestepIteration () const |
Returns timestepIteration_. | |
void | incTimestepIteration () |
Increments timestepIteration_ by 1;. | |
int | maxTimestepIteration () const |
Returns maxTimestepIteration_. | |
void | setMaxTimestepIteration (int it) |
Sets maxTimestepIteration. | |
void | setTimeIteration (int it) |
Sets timeIteration_. | |
int | timeIteration () const |
Returns timeIteration_. | |
void | incTimeIteration () |
Increments timesIteration_ by 1;. | |
int | maxTimeIteration () const |
Returns maxTimeIteration_. | |
void | setMaxTimeIteration (int it) |
Sets maxTimeIteration_. | |
int | timestepNumber () const |
Returns timestepNumber_. | |
void | setTimestepNumber (int num) |
Sets timestepNumber. | |
int | numberOfTimesteps () const |
Returns nTimesteps_. | |
void | setNumberOfTimesteps (int num) |
Sets nTimesteps. | |
void | incTimestepNumber () |
Increments timestepNumber_ by 1;. | |
void | setEstSum (double e, Key key) |
Sets est_sum. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
void | setEstSum (double e, const TP &tp) |
void | setEstMax (double e, Key key) |
Sets est_max. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
void | setEstMax (double e, const TP &tp) |
void | setTimeEstMax (double e, Key key) |
Sets est_max. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
void | setTimeEstMax (double e, const TP &tp) |
void | setTimeEstSum (double e, Key key) |
Sets est_t_sum. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
void | setTimeEstSum (double e, const TP &tp) |
double | estSum (Key key) const |
Returns est_sum. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | estSum (const TP &tp) |
double | estTSum (Key key) const |
Returns est_t_sum. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | estTSum (const TP &tp) |
double | estMax (Key key) const |
Returns est_max. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | estMax (const TP &tp) |
double | timeEstMax (Key key) const |
Returns est_max. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | timeEstmax (const TP &tp) |
double | timeEstSum (Key key) const |
Returns est_t_sum. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | timeEstSum (const TP &tp) |
double | timeEst () const |
Returns timeEst_ the estimated overall time error. | |
void | setTimeEst (double value) |
double | spaceTolerance (Key key) const |
Returns spaceTolerance. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | spaceTolerance (const TP &tp) |
void | setSpaceTolerance (Key key, double tol) |
Sets spaceTolerance. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
void | setSpaceTolerance (const TP &tp, double tol) |
double | timeTolerance (Key key) const |
Returns timeTolerance. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | timeTolerance (const TP &tp) |
double | timeRelativeTolerance (Key key) const |
Returns timeRelativeTolerance. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | timeRelativeTolerance (const TP &tp) |
double | setTime (double t) |
Sets time_. | |
double const & | time () const |
Gets time_. | |
double | setTimestep (double t) |
Sets timestep_. | |
double const & | timestep () const |
Gets timestep_. | |
void | setLastProcessedTimestep (double t) |
double | lastProcessedTimestep () const |
bool | reachedEndTime () const |
void | setMinTimestep (double t) |
Sets minTimestep_. | |
double | minTimestep () const |
Gets minTimestep_. | |
void | setMaxTimestep (double t) |
Sets maxTimestep_. | |
double | maxTimestep () const |
Gets maxTimestep_. | |
void | setStartTime (double time) |
Sets startTime_ = time. | |
void | setEndTime (double time) |
Sets endTime_ = time. | |
double | startTime () const |
Returns startTime_. | |
double | endTime () const |
Returns endTime_. | |
double | timeErrLow (Key key) const |
Returns timeErrLow. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
double | timeErrLow (const TP &tp) |
bool | isCoarseningAllowed (Key key) const |
Returns whether coarsening is allowed or not. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
bool | isCoarseningAllowed (const TP &tp) |
bool | isRefinementAllowed (Key key) const |
Returns whether coarsening is allowed or not. | |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
bool | isRefinementAllowed (const TP &tp) |
void | allowRefinement (bool allow, Key key) |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
void | allowRefinement (bool allow, const TP &tp) |
void | allowCoarsening (bool allow, Key key) |
template<class TP , REQUIRES(Concepts::PreTreePath< TP >) > | |
void | allowCoarsening (bool allow, const TP &tp) |
int | size () const |
void | setSolverIterations (int it) |
int | solverIterations () const |
void | setMaxSolverIterations (int it) |
int | maxSolverIterations () const |
void | setSolverTolerance (double tol) |
double | solverTolerance () const |
void | setSolverResidual (double res) |
double | solverResidual () const |
void | setGlobalTimeTolerance (double tol) |
double | globalTimeTolerance () const |
void | resetTimeValues (double newTimeStep, double newStartTime, double newEndTime) |
Resets timestep, current time and time boundaries without any check. Is used by the parareal algorithm. | |
Protected Attributes | |
std::string | name_ |
Name. | |
int | spaceIteration_ = -1 |
Current space iteration. | |
int | maxSpaceIteration_ = -1 |
maximal allowed number of iterations of the adaptive procedure; if maxIteration <= 0, no iteration bound is used | |
int | timestepIteration_ = 0 |
Current timestep iteration. | |
int | maxTimestepIteration_ = 30 |
Maximal number of iterations for choosing a timestep. | |
int | timeIteration_ = 0 |
Current time iteration. | |
int | maxTimeIteration_ = 30 |
Maximal number of time iterations. | |
double | time_ = 0.0 |
Actual time, end of time interval for current time step. | |
double | startTime_ = 0.0 |
Initial time. | |
double | endTime_ = 1.0 |
Final time. | |
double | timestep_ = 0.0 |
Time step size to be used. | |
double | lastProcessedTimestep_ = 0.0 |
Last processed time step size of finished iteration. | |
double | minTimestep_ = std::sqrt(std::numeric_limits<double>::epsilon()) |
Minimal step size. | |
double | maxTimestep_ = std::sqrt(std::numeric_limits<double>::max()) |
Maximal step size. | |
int | timestepNumber_ = 0 |
Number of current time step. | |
int | nTimesteps_ = 0 |
Per default this value is 0 and not used. If it is set to a non-zero value, the computation of the stationary problem is done nTimesteps times with a fixed timestep. | |
int | solverIterations_ = 0 |
number of iterations needed of linear or nonlinear solver | |
int | maxSolverIterations_ = 0 |
maximal number of iterations needed of linear or nonlinear solver | |
double | solverTolerance_ = 1.e-8 |
double | solverResidual_ = 0.0 |
double | globalTimeTolerance_ = 1.0 |
tolerance for the overall time error | |
std::map< Key, ScalContent > | scalContents_ |
Scalar adapt infos. | |
double | timeEst_ = 0.0 |
overall time error estimate | |
Holds adapt parameters and infos about the problem.
|
inline |
Returns true, if the end time is reached and no more timestep computations must be done.
References AdaptInfo::nTimesteps_, and AdaptInfo::timestepNumber_.
Referenced by AdaptInstationary::adapt().
|
inline |
Returns the time estimation as a combination of maximal and integral time error
References AdaptInfo::ScalContent::est_t_max, AdaptInfo::ScalContent::est_t_sum, and AdaptInfo::ScalContent::fac_max.
Referenced by AdaptInfo::printTimeErrorLowInfo(), AdaptInfo::timeErrorLow(), and AdaptInfo::timeToleranceReached().