libMesh
|
This class implements generic composite quadrature rules. More...
#include <quadrature_composite.h>
Public Member Functions | |
QComposite (unsigned int dim, Order order=INVALID_ORDER) | |
Constructor. More... | |
QComposite (const QComposite &)=delete | |
This class contains a unique_ptr member, so it can't be default copy constructed or assigned. More... | |
QComposite & | operator= (const QComposite &)=delete |
QComposite (QComposite &&)=default | |
Copy/move ctor, copy/move assignment operator, and destructor are all explicitly defaulted for this simple class. More... | |
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 |
Overrides the base class init() function, and uses the ElemCutter to subdivide the element into "inside" and "outside" subelements. More... | |
Private Member Functions | |
void | add_subelem_values (const std::vector< Elem const *> &subelem) |
Helper function called from init() to collect all the points and weights of the subelement quadrature rules. More... | |
Private Attributes | |
QSubCell | _q_subcell |
Subcell quadrature object. More... | |
ElemCutter | _elem_cutter |
ElemCutter object. More... | |
std::unique_ptr< FEBase > | _lagrange_fe |
Lagrange FE to use for subcell mapping. More... | |
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 51 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, libMesh::TriangleWrapper::init(), and libMesh::libmesh_assert().
|
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 127 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::LAGRANGE_MAP, libMesh::libmesh_assert(), libMesh::Elem::mapping_type(), libMesh::Elem::n_vertices(), libMesh::Elem::reference_elem(), and libMesh::Elem::type().
Referenced by integrate_function().
|
delete |
|
default |
|
overridevirtual |
QCOMPOSITE
. Definition at line 37 of file quadrature_composite.C.
References libMesh::QCOMPOSITE.
|
private |
ElemCutter object.
Definition at line 113 of file quadrature_composite.h.
|
private |
Lagrange FE to use for subcell mapping.
Definition at line 118 of file quadrature_composite.h.
Referenced by libMesh::QComposite< QSubCell >::QComposite().
|
private |
Subcell quadrature object.
Definition at line 108 of file quadrature_composite.h.
Referenced by libMesh::QComposite< QSubCell >::QComposite().