Agreed! And if you're not comfortable generating the pull request I could help - if you send along the patch I can try and break it up into number of smaller changes on a new branch, and we can start discussion.
-Ben On Feb 21, 2014, at 10:20 AM, Paul T. Bauman <ptbau...@gmail.com> 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> 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 > 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