On Fri, 19 Sep 2014, Eduardo Hernandez wrote:

I used LAGRANGE finite elements, which I understand guarantee
continuity of the (eigen)functions across elements, but not of their
derivatives (C0 continuity).

That's right.

I also understand that in order to
enforce continuity of the 1st derivative I should switch to finite
elements based on Hermite interpolating polynomials, which I have
done with the following lines of code:

MeshTools::Generation::build_line( mesh, npoints, -L0, L0, EDGE3 );
…
eigen_system.add_variable( "p", THIRD, HERMITE );

and if I am not mistaken, this will ensure that the eigenvectors have C1 
continuity (though please correct me if wrong).

You're 99% right.  If you use an adapted mesh in 2D or higher things
get slightly trickier; you'd need to avoid spurious eigenvectors and
to enforce_constraints_exactly() on the eigenvectors the solver gives
you.

My question is: is it possible to enforce C2 continuity (continuity
of function, first and second derivatives)? I naively assumed that
this would be possible by using a higher order of HERMITE (e.g.
FIFTH) in the appropriate line above, but this does not appear to
work.

No; the higher order HERMITE elements give better approximation
accuracy but are still only C1 continuous.

If you need to add a C2 Hermite-like element yourself, we'd love to
accept a patch.  Getting vector projections correct in a C2 space
would be complicated, but just coding up an element that works on
unadapted rectilinear grids would be straightforward, and the 1D
version would be easy.
---
Roy
------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to