libMesh
Public Member Functions | Private Member Functions | Private Attributes | List of all members
libMesh::QComposite< QSubCell > Class Template Referencefinal

This class implements generic composite quadrature rules. More...

#include <quadrature_composite.h>

Inheritance diagram for libMesh::QComposite< QSubCell >:
[legend]

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...
 
QCompositeoperator= (const QComposite &)=delete
 
 QComposite (QComposite &&)=default
 Copy/move ctor, copy/move assignment operator, and destructor are all explicitly defaulted for this simple class. More...
 
QCompositeoperator= (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...
 

Detailed Description

template<class QSubCell>
class libMesh::QComposite< QSubCell >

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.

Author
Benjamin Kirk
Date
2013 A quadrature rule for subdivided elements.

Definition at line 52 of file quadrature_composite.h.

Constructor & Destructor Documentation

◆ QComposite() [1/3]

template<class QSubCell >
libMesh::QComposite< QSubCell >::QComposite ( unsigned int  dim,
Order  order = INVALID_ORDER 
)

Constructor.

Declares the order of the quadrature rule.

◆ QComposite() [2/3]

template<class QSubCell >
libMesh::QComposite< QSubCell >::QComposite ( const QComposite< QSubCell > &  )
delete

This class contains a unique_ptr member, so it can't be default copy constructed or assigned.

◆ QComposite() [3/3]

template<class QSubCell >
libMesh::QComposite< QSubCell >::QComposite ( QComposite< QSubCell > &&  )
default

Copy/move ctor, copy/move assignment operator, and destructor are all explicitly defaulted for this simple class.

◆ ~QComposite()

template<class QSubCell >
virtual libMesh::QComposite< QSubCell >::~QComposite ( )
virtualdefault

Member Function Documentation

◆ add_subelem_values()

template<class QSubCell >
void libMesh::QComposite< QSubCell >::add_subelem_values ( const std::vector< Elem const *> &  subelem)
private

Helper function called from init() to collect all the points and weights of the subelement quadrature rules.

◆ init()

template<class QSubCell >
virtual void libMesh::QComposite< QSubCell >::init ( const Elem elem,
const std::vector< Real > &  vertex_distance_func,
unsigned int  p_level = 0 
)
overridevirtual

Overrides the base class init() function, and uses the ElemCutter to subdivide the element into "inside" and "outside" subelements.

◆ operator=() [1/2]

template<class QSubCell >
QComposite& libMesh::QComposite< QSubCell >::operator= ( const QComposite< QSubCell > &  )
delete

◆ operator=() [2/2]

template<class QSubCell >
QComposite& libMesh::QComposite< QSubCell >::operator= ( QComposite< QSubCell > &&  )
default

◆ type()

template<class QSubCell >
virtual QuadratureType libMesh::QComposite< QSubCell >::type ( ) const
overridevirtual
Returns
QCOMPOSITE.

Member Data Documentation

◆ _elem_cutter

template<class QSubCell >
ElemCutter libMesh::QComposite< QSubCell >::_elem_cutter
private

ElemCutter object.

Definition at line 114 of file quadrature_composite.h.

◆ _lagrange_fe

template<class QSubCell >
std::unique_ptr<FEBase> libMesh::QComposite< QSubCell >::_lagrange_fe
private

Lagrange FE to use for subcell mapping.

Definition at line 119 of file quadrature_composite.h.

◆ _q_subcell

template<class QSubCell >
QSubCell libMesh::QComposite< QSubCell >::_q_subcell
private

Subcell quadrature object.

Definition at line 109 of file quadrature_composite.h.


The documentation for this class was generated from the following file: