[petsc-dev] 1D heat equation decay and implicit TS results

Mark F. Adams mark.adams at columbia.edu
Mon Oct 1 16:21:11 CDT 2012


It looks like you are hitting the floating point limits someplace.

The first thing to notice is that just because you ask for an rtol of 1.e-200 does not mean that you are going to get it.  Use -ksp_monitor to see what you are really getting.

On Oct 1, 2012, at 5:06 PM, Chetan Jhurani <chetan.jhurani at gmail.com> wrote:

> Hi,
> 
> I'm using petsc-dev to solve the 1D heat equation
> 
> 	u_t = u_xx in [-1,1]
> 
> with zero boundary conditions and u_initial = sin(pi x).
> The exact solution decays to 0.  The exact
> log10(norm_inf(u)) is a linear function of t.
> 
> I use the standard 1D hat basis functions on a uniform
> mesh to discretize.  The mass matrix remains tri-diagonal.
> 
> When using TS with TSTHETA (or TSBEULER) and exact linear
> solves (PCLU), the FEM log10(norm_inf(u)) follows the exact
> curve for around 4500 time steps and then gradually,
> over a few hundred time-steps, changes slope.
> 
> See attached figure.  x axis is step number. The code is
> attached too.
> 
> The results were obtained using
> -ksp_type preonly -pc_type lu -ksp_atol 1e-200 -ksp_rtol 1e-200
> 
> The 1e-200 tolerances were added just to be way below the
> norm scales in the problem above.
> 
> Questions:
> 
> Is it a bug in my code or is there another good explanation?
> 
> Do I need to turn on some tolerance related option to see
> the exact convergence behavior for more time steps?
> 
> Chetan
> 
> <ts_test.cpp><log_u_inf.png>




More information about the petsc-dev mailing list