[petsc-dev] Any substitute for -ts_theta_adapt

Jed Brown jedbrown at mcs.anl.gov
Wed May 8 09:05:12 CDT 2013


Lulu Liu <lulu.liu at kaust.edu.sa> writes:

> [0]PETSC ERROR: TSEvaluateStep_Theta() line 135 in
> /Users/liul/soft/petsc/src/ts/impls/implicit/theta/theta.c
> [0]PETSC ERROR: TSEvaluateStep() line 2508 in
> /Users/liul/soft/petsc/src/ts/interface/ts.c
> [0]PETSC ERROR: TSAdaptChoose_Lulu() line 30 in
> src/ts/examples/tutorials/aspin/adaptlulu.c

This is called from your controller.
>> Why not use '-ts_type arkimex -ts_arkimex_type 1bee', which uses an
>> extrapolation-based error estimator?  If you want something else, just
>> write it as a Runge-Kutta method like '1bee'.
>
> If I use  '-ts_type arkimex -ts_arkimex_type 1bee', the time-step becomes
> too small, and I need too many iterations for the nonlinear system, so I
> can not accept it.

When you use _your_ controller, _you_ are choosing the step size.
'1bee' provides an error estimator based on extrapolation.  If it takes
short time steps, it may well be that the error is large.  Note that you
can set min/max steps and adjust the rejection criteria.

> My adaptive scheme :
>
> If local or global snes ( nonlinear preconditioners includes a subsnes for
> each subdomain) does not converge within 15 steps or diverge, the time-step
> will be half, and time step will be doubled if the previous two time steps
> are not reduced.

Your controller doesn't estimate error at all?  Then don't call TSEvaluateStep().



More information about the petsc-dev mailing list