A quadrature rule for subdivided elements. More...
#include <quadrature_composite.h>
Public Member Functions | |
QComposite (unsigned int dim, Order order=INVALID_ORDER) | |
QComposite (const QComposite &)=delete | |
QComposite & | operator= (const QComposite &)=delete |
QComposite (QComposite &&)=default | |
QComposite & | operator= (QComposite &&)=default |
virtual | ~QComposite ()=default |
virtual QuadratureType | type () const override |
virtual void | init (const Elem &elem, const std::vector< Real > &vertex_distance_func, unsigned int p_level=0) override |
Private Member Functions | |
void | add_subelem_values (const std::vector< Elem const *> &subelem) |
Private Attributes | |
QSubCell | _q_subcell |
ElemCutter | _elem_cutter |
std::unique_ptr< FEBase > | _lagrange_fe |
A quadrature rule for subdivided elements.
This class implements generic composite quadrature rules. Composite quadrature rules are constructed from any of the supported rules by breaking an element into subelements and applying the base rule on each subelement. This class uses the ElemCutter, which is only available if libmesh is configured with –disable-strict-lgpl.
Definition at line 52 of file quadrature_composite.h.
libMesh::QComposite< QSubCell >::QComposite | ( | unsigned int | dim, |
Order | order = INVALID_ORDER |
||
) |
Constructor. Declares the order of the quadrature rule.
Definition at line 45 of file quadrature_composite.C.
References libMesh::QComposite< QSubCell >::_lagrange_fe, libMesh::QComposite< QSubCell >::_q_subcell, libMesh::EDGE2, and libMesh::TriangleWrapper::init().
|
delete |
This class contains a unique_ptr member, so it can't be default copy constructed or assigned.
|
default |
Copy/move ctor, copy/move assignment operator, and destructor are all explicitly defaulted for this simple class.
|
virtualdefault |
|
private |
Helper function called from init() to collect all the points and weights of the subelement quadrature rules.
Definition at line 123 of file quadrature_composite.C.
References libMesh::err.
|
overridevirtual |
Overrides the base class init() function, and uses the ElemCutter to subdivide the element into "inside" and "outside" subelements.
Definition at line 67 of file quadrature_composite.C.
References libMesh::Elem::dim(), libMesh::Elem::n_vertices(), libMesh::Elem::reference_elem(), and libMesh::Elem::type().
|
delete |
|
default |
|
overridevirtual |
QCOMPOSITE
. Definition at line 37 of file quadrature_composite.C.
References libMesh::QCOMPOSITE.
|
private |
ElemCutter object.
Definition at line 114 of file quadrature_composite.h.
|
private |
Lagrange FE to use for subcell mapping.
Definition at line 119 of file quadrature_composite.h.
Referenced by libMesh::QComposite< QSubCell >::QComposite().
|
private |
Subcell quadrature object.
Definition at line 109 of file quadrature_composite.h.
Referenced by libMesh::QComposite< QSubCell >::QComposite().