|
DiFfRG
|
A simple PI controller which adjusts time steps in a smooth fashion depending on how well the solver performs, taking into account the most recent time step, too. More...
#include <PI.hh>
Public Types | |
| using | Base = TC_Default<NEWT> |
Public Member Functions | |
| TC_PI (NEWT &newton_, unsigned int alg_order_, double t_, double max_t_, double dt_, double min_dt_, double max_dt_, double output_dt_) | |
Public Member Functions inherited from DiFfRG::TC_Default< NEWT > | |
| TC_Default (NEWT &newton_, unsigned int alg_order_, double t_, double max_t_, double dt_, double min_dt_, double max_dt_, double output_dt_) | |
| double | get_dt () const |
| double | get_t () const |
| unsigned int | get_stuck () const |
| Get how many times in succession the timestepper was at the same time step. | |
| bool | finished () const |
| template<typename F , typename OF > | |
| void | advance (F &f, OF &of) |
| Method to perform a single time step. | |
| void | print_step_info () |
Protected Member Functions | |
| void | get_q () |
| This method just updates q for the calculation of the next sug_dt. | |
| virtual void | step_success () override |
| Increment t and suggest a dt based on current error and previous error. | |
| virtual void | step_fail (const std::exception &) override |
| On a fail, decrease the timestep. | |
Protected Member Functions inherited from DiFfRG::TC_Default< NEWT > | |
Protected Attributes | |
| double | beta1 |
| double | beta2 |
| double | qsteady_min |
| double | qsteady_max |
| double | qmin |
| double | qmax |
| double | qoldinit |
| double | qold |
| double | q11 |
| double | q |
| double | gamma |
| double | t |
| NEWT & | newton |
| double | cur_dt |
| double | sug_dt |
| unsigned int | alg_order |
Protected Attributes inherited from DiFfRG::TC_Default< NEWT > | |
| NEWT & | newton |
| unsigned int | alg_order |
| double | t |
| double | max_t |
| double | sug_dt |
| double | min_dt |
| double | max_dt |
| double | output_dt |
| double | cur_dt |
| double | last_save |
| double | last_t |
| unsigned int | stuck |
| bool | fin |
A simple PI controller which adjusts time steps in a smooth fashion depending on how well the solver performs, taking into account the most recent time step, too.
| NEWT | the used solver type which should at least explose the methods set_ignore_nonconv(bool)->void and get_error()->double. |
| using DiFfRG::TC_PI< NEWT >::Base = TC_Default<NEWT> |
|
inline |
|
inlineprotected |
This method just updates q for the calculation of the next sug_dt.
|
inlineoverrideprotectedvirtual |
On a fail, decrease the timestep.
Reimplemented from DiFfRG::TC_Default< NEWT >.
|
inlineoverrideprotectedvirtual |
Increment t and suggest a dt based on current error and previous error.
Reimplemented from DiFfRG::TC_Default< NEWT >.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |