On 24 March 2015 at 01:34, Jed Brown <j...@jedbrown.org> wrote: > Lisandro Dalcin <dalc...@gmail.com> writes: > >> On 21 March 2015 at 17:32, Emil Constantinescu <emcon...@mcs.anl.gov> wrote: >>> When -ts_theta_adapt is used, then it detects the instability as an error >>> and reduces the step by a lot! wlte=1.24e+03 which means that the reduction >>> should be severe but the controller tries 0.1*dt and that seems to pass but >>> it "jig-saws" (take a look at the next attempted step), which means that it >>> is likely unstable. >> >> I think -ts_theta_adapt is seriously broken, I cannot make sense of >> the way the error estimator is computed. > > This was Shri's implementation. TSEvaluateStep_Theta looks wrong to me, > both using U as an input and assuming that Xdot is set. I don't even > know what the intended math is for a first-order embedded estimate in > midpoint (theta=0.5).
Pease note that -ts_adapt_tetha errors for midpoint. You actually need -ts_theta_endpoint to use adaptivity. But it is there, in the endpoint version, that I cannot make sense of the implementation. The trapezoidal rule is second-order, thus the LTE is O(dt^3). The computed error estimator should be O(dt^2), but the current code seems to compute an estimator O(dt), and that's the root of all evil. -- Lisandro Dalcin ============ Research Scientist Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) Numerical Porous Media Center (NumPor) King Abdullah University of Science and Technology (KAUST) http://numpor.kaust.edu.sa/ 4700 King Abdullah University of Science and Technology al-Khawarizmi Bldg (Bldg 1), Office # 4332 Thuwal 23955-6900, Kingdom of Saudi Arabia http://www.kaust.edu.sa Office Phone: +966 12 808-0459