libMesh
Public Member Functions | Private Attributes | Friends | List of all members
libMesh::OrderWrapper Class Reference

This provides a shim class that wraps the Order enum. More...

#include <fe_type.h>

Public Member Functions

 OrderWrapper (Order order)
 Constructor. More...
 
 OrderWrapper (int order)
 Constructor. More...
 
 operator Order () const
 Operator that enables implicit conversion to an Order enum. More...
 
int get_order () const
 Explicitly request the order as an int. More...
 
template<typename T >
OrderWrapperoperator+= (T p)
 
template<typename T >
OrderWrapperoperator-= (T p)
 

Private Attributes

int _order
 The approximation order of the element. More...
 

Friends

struct std::hash< FEType >
 

Detailed Description

This provides a shim class that wraps the Order enum.

The purpose of this is to store the order as an int instead of an enum (to enable higher orders) while retaining backwards compatibility.

Definition at line 48 of file fe_type.h.

Constructor & Destructor Documentation

◆ OrderWrapper() [1/2]

libMesh::OrderWrapper::OrderWrapper ( Order  order)
inline

Constructor.

Enables implicit conversion from an Order enum to an OrderWrapper.

Definition at line 56 of file fe_type.h.

56  :
57  _order(static_cast<int>(order))
58  {}
int _order
The approximation order of the element.
Definition: fe_type.h:104

◆ OrderWrapper() [2/2]

libMesh::OrderWrapper::OrderWrapper ( int  order)
inline

Constructor.

Enables implicit conversion from an int to an OrderWrapper.

Definition at line 64 of file fe_type.h.

64  :
65  _order(order)
66  {}
int _order
The approximation order of the element.
Definition: fe_type.h:104

Member Function Documentation

◆ get_order()

int libMesh::OrderWrapper::get_order ( ) const
inline

◆ operator Order()

libMesh::OrderWrapper::operator Order ( ) const
inline

Operator that enables implicit conversion to an Order enum.

Definition at line 72 of file fe_type.h.

References _order.

73  {
74  return static_cast<Order>(_order);
75  }
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40
int _order
The approximation order of the element.
Definition: fe_type.h:104

◆ operator+=()

template<typename T >
OrderWrapper& libMesh::OrderWrapper::operator+= ( p)
inline

Definition at line 86 of file fe_type.h.

References _order, and int.

87  {
88  _order += int(p);
89  return *this;
90  }
int _order
The approximation order of the element.
Definition: fe_type.h:104
void ErrorVector unsigned int
Definition: adjoints_ex3.C:360

◆ operator-=()

template<typename T >
OrderWrapper& libMesh::OrderWrapper::operator-= ( p)
inline

Definition at line 93 of file fe_type.h.

References _order, and int.

94  {
95  _order -= int(p);
96  return *this;
97  }
int _order
The approximation order of the element.
Definition: fe_type.h:104
void ErrorVector unsigned int
Definition: adjoints_ex3.C:360

Friends And Related Function Documentation

◆ std::hash< FEType >

friend struct std::hash< FEType >
friend

Definition at line 106 of file fe_type.h.

Member Data Documentation

◆ _order

int libMesh::OrderWrapper::_order
private

The approximation order of the element.

Definition at line 104 of file fe_type.h.

Referenced by get_order(), operator Order(), std::hash< libMesh::FEType >::operator()(), operator+=(), and operator-=().


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