Thanks Roman, I'm hoping to set up the PR today. Could you tell me what version of libMesh you created this patch from? That'll help a lot. It *almost* applies cleanly on 0.9.3, but there are a few failures:
$ patch -p1 < ~/Desktop/0001-Add-Loop-subdivision-surface-elements.patch --dry-run patching file configure.ac Hunk #1 FAILED at 303. 1 out of 1 hunk FAILED -- saving rejects to file configure.ac.rej patching file examples/miscellaneous/miscellaneous_ex11/Makefile.am patching file examples/miscellaneous/miscellaneous_ex11/miscellaneous_ex11.C patching file examples/miscellaneous/miscellaneous_ex11/run.sh patching file examples/miscellaneous/miscellaneous_ex11/square_mesh.off patching file include/base/dof_map.h Hunk #1 FAILED at 1057. 1 out of 1 hunk FAILED -- saving rejects to file include/base/dof_map.h.rej patching file include/enums/enum_elem_type.h patching file include/enums/enum_fe_family.h patching file include/fe/fe.h patching file include/fe/fe_map.h patching file include/geom/face_tri3_sd.h patching file include/geom/node.h patching file include/include_HEADERS patching file include/mesh/mesh_subdiv_support.h patching file src/base/dof_map.C Hunk #2 FAILED at 1661. Hunk #3 FAILED at 1679. Hunk #4 FAILED at 1715. Hunk #5 succeeded at 1676 (offset -74 lines). Hunk #6 succeeded at 1695 with fuzz 2 (offset -74 lines). Hunk #7 FAILED at 1722. Hunk #8 FAILED at 1748. Hunk #9 FAILED at 1772. Hunk #10 FAILED at 1851. Hunk #11 succeeded at 1946 (offset -86 lines). Hunk #12 succeeded at 1964 (offset -81 lines). Hunk #13 succeeded at 2029 with fuzz 1 (offset -68 lines). 7 out of 13 hunks FAILED -- saving rejects to file src/base/dof_map.C.rej patching file src/fe/fe.C patching file src/fe/fe_abstract.C patching file src/fe/fe_base.C patching file src/fe/fe_boundary.C patching file src/fe/fe_interface.C patching file src/fe/fe_lagrange.C patching file src/fe/fe_map.C patching file src/fe/fe_subdiv_2D.C patching file src/fe/fe_transformation_base.C patching file src/fe/fe_type.C patching file src/geom/elem.C patching file src/geom/face_tri3_sd.C patching file src/libmesh_SOURCES patching file src/mesh/exodusII_io_helper.C Hunk #1 succeeded at 1944 (offset -119 lines). patching file src/mesh/mesh_subdiv_support.C patching file src/mesh/vtk_io.C patching file src/quadrature/quadrature_gauss_2D.C patching file src/utils/string_to_enum.C On Feb 24, 2014, at 9:37 AM, Roman Vetter <vette...@ethz.ch> wrote: >> 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. > > I'm very new to git, and it's all still a bit confusing, so I think I'll > gladly accept the help. :) > > Here's the patch. You'll need to run ./bootstrap as I didn't include the > autoconf/automake/libtool output. > > A few more explanations on the code: > > 1. As already mentioned (also by Norbert), the solution on a given element > depends on the 1-ring of that element (i.e., the direct neighbor elements). > Obviously, boundary elements lack such neighbors. Therefore, subdivision > meshes require special preparation, where an additional layer of elements is > added along the mesh boundaries. These additional elements do not belong to > the physical domain. > > 2. The added boundary elements are named "ghost" elements in the literature. > I guess this name somewhat clashes with the "ghost" elements that lie on > processor domain boundaries. > > 3. Any program using subdivision surface elements will need to operate only > on non-ghost elements. To this end, a new element type TRI3SD is added, > providing the is_ghost() member. > > 4. Nodes that have valence 6 are called "regular", otherwise they are > "irregular". Elements are regular iff all their nodes are regular. Regular > elements have exactly 12 shape functions (quartic box splines). Irregular > elements, however, need special treatment. > > 5. Even though the subdivision surface shape functions are quartic, one Gauss > point per element is perfectly sufficient. The traditional theoretical lower > bound (predicting a minimum of 6 points for triangular elements with quartic > shape fcts) doesn't apply due to the overlapping subdiv shape functions. > > 6. For efficiency, we internally reorder the nodes of TRI3SD elements in such > a way that if the elements is irregular, the irregular vertex is always the > first (see also > http://sourceforge.net/mailarchive/message.php?msg_id=20808509) and only the > first. Clearly, this means that only meshes with elements with at most one > irregular vertex are supported. (The mesh preparator will properly complain > otherwise.) > > 7. The custom DofMap originally mentioned by Norbert > (http://sourceforge.net/mailarchive/message.php?msg_id=20778890) was avoided > in the present implementation by generalizing the way DofMap computes the > dof_indices. > > 8. Due to 1., boundary conditions are non-trivial to impose. Have a look at > miscellaneous_ex11 or the original paper (Int. J. Numer. Meth. Engng. 47, > 2039-2072 (2000)) for one way to impose them. See Int. J. Numer. Meth. Eng. > 61, 380–405 (2004) for an alternative constraint approach. > > 9. I don't know what happens if a user attempts to use AMR, libmesh's > boundary functionality, or constraints on the subdivision surface elements. I > simply haven't tried. > > Feel free to ask more questions. > > -Roman > <0001-Add-Loop-subdivision-surface-elements.patch>------------------------------------------------------------------------------ > Flow-based real-time traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. All-in-one tool. > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk_______________________________________________ > Libmesh-devel mailing list > Libmesh-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/libmesh-devel
smime.p7s
Description: S/MIME cryptographic signature
------------------------------------------------------------------------------ Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________ Libmesh-devel mailing list Libmesh-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-devel