I'd definitely be enthusiastic about getting support for shells in libMesh as well.

David


On 02/21/2014 11:20 AM, Paul T. Bauman wrote:
Others may also be interested in this, but I have a keen interest. I'd be happy to look at the patch, but, even better, would be for you to open a pull request on GitHub (https://github.com/libMesh/libmesh) so that, if we decide to integrate the patch, we have a commit history of your development since it sounds like it's not a small patch.

Best,

Paul


On Fri, Feb 21, 2014 at 8:53 AM, Roman Vetter <vette...@ethz.ch <mailto:vette...@ethz.ch>> wrote:

    Dear libMesh devs,

    the roots of the finite element method lie in structural analysis and
    the need to solve elasticity problems. Thin shells with a
    stretching and
    a bending rigidity are an extremely important special case. The
    bending
    term requires C1 finite elements which have been hard to construct for
    arbitrary surface topologies until the subdivision surface paradigm
    found its way to the FEM a few years ago (Int. J. Numer. Meth. Engng.
    47, 2039-2072 (2000), more than 300 citations!). Ever since,
    subdivision
    surfaces are the way to go in thin shell finite element analysis,
    as they

    1) require only the three nodal displacement dofs, no rotational or
    other auxiliary dofs,
    2) require only one Gauss point per element (very efficient), although
    more still work of course,
    3) greatly simplify the implementation of thin shells with arbitrary
    topology.

    Still, they have not made it into most finite element packages,
    perhaps
    because they somewhat deviate from conventional FE principles:

    a) the shape functions don't interpolate the mesh nodes, instead they
    approximate them,
    b) the solution on an element is determined not only by the nodal
    solutions of its nodes, but also of nodal solutions at the
    neighboring nodes
    c) the number of shape functions per element depends on the mesh
    connectivity,
    d) the conventional h-refinement and p-refinement techniques can't be
    applied
    e) they require special treatment of boundaries and constraints.

    I have prepared a patch that adds the most popular, versatile and
    widely-used type of subdivision surface elements to libMesh: Loop
    subdivision surface elements. Everything is readily Doxygen-commented
    like all of libMesh. I've also prepared a new example
    (miscellaneous_ex11) showing how to use the new element on a
    loaded thin
    elastic plate.

    This is a joint effort initiated by Norbert Stoop in 2008. The related
    discussions can be looked up at:
    http://sourceforge.net/mailarchive/message.php?msg_id=20778890
    http://sourceforge.net/mailarchive/message.php?msg_id=20808509

    Why didn't I attach the patch already? I'd first like to know if
    you're
    interested at all. Why wouldn't you, you're asking? Bear in mind the
    unconventional nature of subdivision surface finite elements. (b)
    requires a more general treatment of the number of shape functions in
    DofMap, as it is no longer constant. (c) requires a new integer stored
    in each Node instance, holding the node valence. (d) means some of the
    nice features of libMesh like AMR won't work with the new element. (e)
    means that libMesh's built-in boundary and constraint handling won't
    work with the new element. Furthermore the new element supports
    only 2D
    triangular meshes in 3D space, so it is a far cry from being as
    general
    as other elements implemented in libMesh.

    Why would you be interested despite all this? First of all,
    subdivision
    surfaces seem to be the future of two-dimensional C1 elements. They
    would give libMesh an advantage over other FEM packages. Moreover,
    recent advances in finite element research suggest that more new
    elements of this general kind (isogeometric analysis) are on the way.
    Some of them similarly generalize the way we traditionally think about
    element shape functions and even work with less than one quadrature
    point per element [sic!].

    This extension of libMesh adds five new source code files and modifies
    22 more (mostly small additions like enums etc.). I've tried to
    keep the
    patch minimal. It has been in successful operation for a few years now
    at our labs, and I think it's about time it's committed to the
    official
    libMesh repository. It would make a great added value to libMesh
    for all
    those who use it for thin shell analysis (and I know that there are a
    few of them around). I'm happy to send you the patch and further
    explanations on it if you're willing to give it a closer look.

    Best regards,
    Roman

    
------------------------------------------------------------------------------
    Managing the Performance of Cloud-Based Applications
    Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
    Read the Whitepaper.
    http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
    _______________________________________________
    Libmesh-devel mailing list
    Libmesh-devel@lists.sourceforge.net
    <mailto:Libmesh-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/libmesh-devel




------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk


_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to