libMesh/libmesh — pull request #326 by jwpeterson (2014-08-19 16:44:41+00:00)
Title: Towards XFEM - Cut Cell Quadrature

(This is a continuation of the discussion in #84. The original branch was rebased and pushed to the libmesh repository for further testing, collaboration, etc.)

No rush on this, but this is 40 commits already and no one has seen
it, so I'm putting this out there for some initial feedback.

The API is basically demonstrated in the new examples/subdomains/subdomains_ex3 where we seek to integrate a discontinuous function not aligned with the mesh.

The approach is as follows: QComposite defines a composite quadrature rule based on an underlying Gauss quadrature rule.

For uncut cells, this reverts to a standard Gauss rule, for cells cut by an interface, the cell is decomposed into simplices via the new ElemCutter class, whose current implementation uses triangle/tetgen, and agglomerates the simplex quadrature points/weights into a "composite' rule.

The current implementation requires being able to provide COMM_SELF to the "working" meshes created inside the ElemCutter class.

The ElemCutter class right now takes vertex values of a signed distance function to locate the cut, but this is ripe with opportunity for extension.