# [petsc-users] examples of DMPlex*FVM methods

Matthew Knepley knepley at gmail.com
Thu Apr 6 06:34:02 CDT 2017

On Wed, Apr 5, 2017 at 9:57 PM, Jed Brown <jed at jedbrown.org> wrote:

> Matthew Knepley <knepley at gmail.com> writes:
>
> > On Wed, Apr 5, 2017 at 1:13 PM, Jed Brown <jed at jedbrown.org> wrote:
> >
> >> Matthew Knepley <knepley at gmail.com> writes:
> >>
> >> > On Wed, Apr 5, 2017 at 12:03 PM, Jed Brown <jed at jedbrown.org> wrote:
> >> >
> >> >> Matthew Knepley <knepley at gmail.com> writes:
> >> >> > As a side note, I think using FV to solve an elliptic equation
> should
> >> be
> >> >> a
> >> >> > felony. Continuous FEM is excellent for this, whereas FV needs
> >> >> > a variety of twisted hacks and is always worse in terms of
> computation
> >> >> and
> >> >> > accuracy.
> >> >>
> >> >> Unless you need exact (no discretization error) local conservation,
> >> >> e.g., for a projection in a staggered grid incompressible flow
> problem,
> >> >> in which case you can use either FV or mixed FEM (algebraically
> >> >> equivalent to FV in some cases).
> >> >>
> >> >
> >> > Okay, the words are getting in the way of me understanding. I want to
> see
> >> > if I can pull something I can use out of the above explanation.
> >> >
> >> > First, "locally conservative" bothers me. It does not seem to indicate
> >> what
> >> > it really does. I start with the Poisson equation
> >> >
> >> >   \Delta p = f
> >> >
> >> > So the setup is then that I discretize both the quantity and its
> >> derivative
> >> > (I will use mixed FEM style since I know it better)
> >> >
> >> >   div  v = f
> >> >   grad p = v
> >> >
> >> > Now, you might expect that "local conservation" would give me the
> exact
> >> > result for
> >> >
> >> >   \int_T p
> >> >
> >> > everywhere, meaning the integral of p over every cell T.
> >>
> >> Since when is pressure a conserved quantity?
> >>
> >> In your notation above, local conservation means
> >>
> >>   \int_T (div v - f) = 0
> >>
> >> I.e., if you have a tracer moving in a source-free velocity field v
> >> solving the above equation, its concentration satisfies
> >>
> >>   c_t + div(c v) = 0
> >>
> >> and it will be conserved element-wise.
> >>
> >
> > But again that seems like a terrible term. What that statement above
> means
> > is that globally
> > I will have no loss, but the individual amounts in each cell are not
> > accurate to machine error,
> > they are accurate to discretization error because the flux is only
> accurate
> > to discretization error.
>
> No. The velocity field is divergence-free up to solver tolerance.  Since
> the piecewise constants are in the test space, there is a literal
>
>   \int_T (div v - f) = 0.
>
> That holds up to solver tolerance, not just up to discretization error.
> That's what local conservation means.
>
> If you use continuous FEM, you don't have a statement like the above.
>

Okay, that is what you mean by local conservation. That state is still only
accurate to discretization error.
Why do I care about satisfying that equation to machine precision?

Matt

--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their