Roy, thanks for the detailed reply. I look forward to browsing through the linked PDF.
Alex > On Jan 3, 2017, at 8:51 AM, Roy Stogner <[email protected]> wrote: > > >> 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
