[petsc-dev] are petscfe tests functions dual or primal?

Geoffrey Irving irving at naml.us
Fri Jan 17 18:09:41 CST 2014


On Fri, Jan 17, 2014 at 4:00 PM, Jed Brown <jed at jedbrown.org> wrote:
> Geoffrey Irving <irving at naml.us> writes:
>> Thanks.  To confirm: the default thing as set up in ex12 is Galerkin,
>> meaning that the primal and dual space basis functions are identical?
>
> Yes.
>
>> If that's true, how does DMDAProjectFunctionalLocal work?  As far as I
>> know DMDAProjectFunctionalLocal projects an analytically defined
>> function into the primal space, but it uses the dual space to do that
>> via PetscDualSpaceApply, which would imply that the dual space is
>> knowable in terms of the primal space.  If the dual space can be
>> either Galerkin (same the primal) or Petrov-Galerkin (different), I
>> seem to be missing something.
>
> Most Petrov-Galerkin methods use test functions that are only
> modifications of the trial functions.  SUPG is the classical example,
> but DPG and others are also of this form.  These are implemented by
> bringing the modification into the discrete weak form, in which case
> there is only one basis tabulation.
>
> Weighted residual methods form a larger class of methods (that includes
> FD and FV), for which the primal and dual spaces need to be tabulated
> separately (or specialize the method).
>
> Is there something specific you are trying to do?

No, I want normal Galerkin, and am only trying to resolve confusion
about how the code works.  Somehow I got it into my head that because
the *Project* functions used PetscDualSpaceApply to do their work, it
meant that the dual space basis functions formed an actual inverse to
the primal basis functions.  I.e., I was thinking that if an element
of the primal space looked like

    f(x) = \sum_i w_i f_i(x)

then the dual space functions g_i satisfied

    w_i = \int_V g_i f(x)

However, I clearly hadn't thought that through, since it would make
the dual space basis functions nonlocal.  Does that mean the *Project*
functions do not produce optimal answers?

Geoffrey



More information about the petsc-dev mailing list