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

Attachment: 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

Reply via email to