Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project!

## Re: [Libmesh-users] Interpolation order

 Re: [Libmesh-users] Interpolation order From: Roy Stogner - 2013-02-21 21:17:58 On Thu, 21 Feb 2013, Manav Bhatia wrote: >    I have a preference for Lagrange interpolation for the structural > (and some thermal) applications that I am working on, primarily due > to easy application of Dirichlet boundary conditions. Have you noticed the relatively-new DirichletBoundary class we have? Hand that a functor, and it'll do the projections onto non-Lagrange spaces for you. Right now there's still work and testing to be done for transient Dirichlet conditions (that functor may get evaluated at time t in places where it should be evaluated at t +/- deltat...) but for steady Dirichlet conditions it's pretty solid. > Perhaps hierarchic polynomials would also offer a similar feature > (please correct if I am wrong) due to the presence of node and edge > functions whose dof values can be specified, and bubble functions > that are zero on the boundaries.  Unless your Dirichlet values are piecewise-linear, they'll have non-zero dofs corresponding to those bubble functions. What our DirichletBoundary stuff gives you is interpolation at nodes, then constrained L2 projection for edge-interior values, then further-constrained L2 projection for face-interior values. >    I am curious about your comment "mapped the Lagrange bases on to > nodes topologically". Are you implying a software fix of telling the > dof that it is associated with a node, or some sort of a > mathematical mapping process? Software. Suppose you have a quad on the unit square. Isoparametric cubic Lagrange elements would have nodes at (1/3,0) and (2/3,0), each with a single degree of freedom. My suggestion would be to do what we do with hierarchics: keep the single node at (1/2,0), give it two degrees of freedom, then use some canonical ordering based on node positions to determine which DoF is which. This breaks code which assumes that solution(node->dof_number(0,0,0)) == u(Point(node)), but mathematically it can still be the same basis being used. --- Roy