step10
Error Decay for a Sequence of Adaptive Meshes


step10, a FENICS code which uses the Discontinuous Petrov Galerkin (DPG) method to solve a Poisson problem, and repeatedly refines the mesh, guided by DPG error indicators. On each refinement step, cells are ordered by size of the local error estimates, and then enough "top" cells are refined to represent the proportion THETA of the total error estimate. It then plots the decay of the estimated error as a function of the number of mesh elements.

The program relies heavily on the ideas and implementation embodied in Jay Gopalakrishnan's dpg_laplace code.

Note that I have installed FENICS using Docker, and so to run this script I issue the commands:

  1. cd $HOME/fenicsproject/step10
  2. fenicsproject run
  3. python3 step10.py
  4. exit

Licensing:

The GNU LGPL license.

Related Data and Programs:

dpg_bvp, a FENICS script which uses the Discontinuous Petrov Galerkin (DPG) method to solve a boundary value problem over an interval, by Jay Gopalakrishnan.

dpg_laplace, a FENICS script which uses the Discontinuous Petrov Galerkin (DPG) method to solve a Poisson problem over the unit square, by Jay Gopalakrishnan.

dpg_laplace_adapt, a FENICS script which uses the Discontinuous Petrov Galerkin (DPG) method to solve a Poisson problem over the unit square, with adaptivity, by Jay Gopalakrishnan.

Reference:

  1. Jay Gopalakrishnan,
    Five lectures on DPG Methods,
    Spring 2013, Portland State University,
    arXiv:1306.0557v2 [math.NA] 28 Aug 2014.

Source Code:

The error decay plots:

The mesh plots for case 1:

The mesh plots for case 2:

The mesh plots for case 3:

The mesh plots for case 4:


Last revised on 07 November 2018.