On Mon, 2 Jan 2017, Alexander Lindsay wrote:

> While thinking about possibly implementing H(curl) projection sometime
> in the future, I've been trying to familiarize myself with libmesh's
> current projection implementations. I have a basic question: in
> dof_map_constraints.C how come projections for side degrees of freedom
> (roughly lines 900-950) are done weakly as opposed to strongly as is
> done for the nodal degrees of freedom?

For nodal degrees of freedom, weak projection and interpolation are
exactly equivalent; you could think of nodes as being L2 projected but
with an algorithm that avoids explicitly constructing and inverting
the 1x1 matrix [1].

For edges/sides/interiors, we do still use interpolation on Lagrange
elements, for speed, but we use local L2 projection on all the other
C0 elements (and on discontinuous element interiors) and local H1
projection on C1 elements, for generality.  Our "nodes first, then
edges, then faces, then interiors" strategy ensures that the result is
well-defined no matter in what order we iterate through elements,
which also makes it embarrassingly parallelizable.

This is probably not *quite* the right way to do things in general.
The most rigorous discussion of projection operators I can recall is
https://www.ices.utexas.edu/media/reports/2006/0612.pdf
Skimming through that again, it seems like "nodes first, then edges,
then faces, then interiors" can give you a good operator, but "L2 norm
for C0, H1 norm for C1" isn't what we want.  Perhaps "H1 seminorm for
C0, H2 seminorm for C1" (with the local boundaries still fixed to keep
the problem well-defined)?

In the long run we'd like to be able to allow users to specify their
own projection operators, so they can try to minimize whatever norm or
energy norm error is most appropriate to their problem, use global
rather than local projections for initial conditions if they choose,
etc.  But even adding something general for H(curl) elements would be
a nice step.
---
Roy

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to