[petsc-users] best way to ignore a constant in FEM error evaluation

Geoffrey Irving irving at naml.us
Wed Nov 27 13:36:02 CST 2013


I may be missing something, but I can't think of a clean way to use
DMPlexComputeL2Diff but ignore a constant shift in a Neumann problem.
It seems there's a missing routine that would make this easy, but I'm
not entirely sure which routine that is.  Mathematically, I have a Vec
x and an exact solution f, and want to compute

    fc = int_D f
    xc = int_D x
    error = sqrt int_D (x-f-(xc-fc)/volume)^2

where int_D means integrate over the domain.

The most general option would be to make a generic FE integral routine
can it twice as

   volume = int_D 1
   shift = (int_D (x - f))/volume
   error = sqrt int_D (x-f-shift)

where I can could either compute volume myself, with another call to
the integration routine, or with a new special function.

Thoughts?

Thanks,
Geoffrey


More information about the petsc-users mailing list