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
