From: John P. <jwp...@gm...> - 2008-10-02 19:09:37
|
On Thu, Oct 2, 2008 at 1:41 PM, Nasser Mohieddin Abukhdeir <nas...@mc...> wrote: > Hello all: > After some enlightening conversations with Roy, I am going to be > implementing a predictor/corrector AdaptiveTimeSolver class that does > the following: > > 1) An explicit solve (just an EulerSolver step with theta=0) yields the > "predictor" which is stored. > > 2) The explicit solve solution is used as the starting iterate for a > full nonlinear implicit solve , which is done to the user's tolerances > or maximum step count. > > 3) The implicit solution is compared with the copy of the explicit > solution to get an error estimate and adapt the time step. While this algorithm will work in practice for certain problems, I have a few doubts about its robustness. In particular, the explicit solve step need not be 1.) a good initial guess for the implicit solve, or 2.) useful as an error estimate when compared with the implicit solve solution. You might be interested in ABTR (Adams-Bashforth/Trapezoidal Rule, though I have my doubts about it for the same reasons) or possibly the predictor-multicorrector methods suggested by Hughes et al (CMAME v. 17/18, 1979, p. 159-182) although these do not necessarily update the timestep. I think Ben may have also implemented some interesting adaptive timestep selection algorithms in his dissertation work on compressible flows, but I can't remember for sure. I don't want to discourage you from trying any particular algorithm, but I think we should be somewhat careful about what goes in the library. -- John |