libMesh
include
enums
enum_order.h
Go to the documentation of this file.
1
// The libMesh Finite Element Library.
2
// Copyright (C) 2002-2025 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3
4
// This library is free software; you can redistribute it and/or
5
// modify it under the terms of the GNU Lesser General Public
6
// License as published by the Free Software Foundation; either
7
// version 2.1 of the License, or (at your option) any later version.
8
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// Lesser General Public License for more details.
13
14
// You should have received a copy of the GNU Lesser General Public
15
// License along with this library; if not, write to the Free Software
16
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18
19
20
#ifndef LIBMESH_ENUM_ORDER_H
21
#define LIBMESH_ENUM_ORDER_H
22
23
namespace
libMesh
{
24
40
enum
Order
:
int
{
41
CONSTANT
= 0,
42
FIRST
= 1,
43
SECOND
= 2,
44
THIRD
= 3,
45
FOURTH
= 4,
46
FIFTH
= 5,
47
SIXTH
= 6,
48
SEVENTH
= 7,
49
EIGHTH
= 8,
50
NINTH
= 9,
51
TENTH
= 10,
52
ELEVENTH
= 11,
53
TWELFTH
= 12,
54
THIRTEENTH
= 13,
55
FOURTEENTH
= 14,
56
FIFTEENTH
= 15,
57
SIXTEENTH
= 16,
58
SEVENTEENTH
= 17,
59
EIGHTTEENTH
= 18,
// misspelling, deprecated
60
EIGHTEENTH
= 18,
61
NINETEENTH
= 19,
62
TWENTIETH
= 20,
63
TWENTYFIRST
= 21,
64
TWENTYSECOND
= 22,
65
TWENTYTHIRD
= 23,
66
TWENTYFOURTH
= 24,
67
TWENTYFIFTH
= 25,
68
TWENTYSIXTH
= 26,
69
TWENTYSEVENTH
= 27,
70
TWENTYEIGHTH
= 28,
71
TWENTYNINTH
= 29,
72
THIRTIETH
= 30,
73
THIRTYFIRST
= 31,
74
THIRTYSECOND
= 32,
75
THIRTYTHIRD
= 33,
76
THIRTYFOURTH
= 34,
77
THIRTYFIFTH
= 35,
78
THIRTYSIXTH
= 36,
79
THIRTYSEVENTH
= 37,
80
THIRTYEIGHTH
= 38,
81
THIRTYNINTH
= 39,
82
FORTIETH
= 40,
83
FORTYFIRST
= 41,
84
FORTYSECOND
= 42,
85
FORTYTHIRD
= 43,
86
MAXIMUM
= 255,
87
// Invalid
88
INVALID_ORDER
};
89
90
// Standardize this so nvc++ and clang -fsanitize=integer don't
91
// complain about all the ways in which we might do it wrong
92
template
<
typename
T>
93
inline
Order
operator+
(
Order
o, T p)
94
{
95
return
static_cast<
Order
>
(
static_cast<
int
>
(o) +
int
(p));
96
}
97
98
template
<
typename
T>
99
inline
Order
operator-
(
Order
o, T p)
100
{
101
return
static_cast<
Order
>
(
static_cast<
int
>
(o) -
int
(p));
102
}
103
104
template
<
typename
T>
105
inline
Order
operator+
(T p,
Order
o)
106
{
107
return
o + p;
108
}
109
110
template
<
typename
T>
111
inline
Order
&
operator+=
(
Order
&o, T p)
112
{
113
o = o + p;
114
return
o;
115
}
116
117
template
<
typename
T>
118
inline
Order
&
operator-=
(
Order
&o, T p)
119
{
120
o = o - p;
121
return
o;
122
}
123
124
}
125
126
#endif
libMesh::SIXTH
Definition:
enum_order.h:47
libMesh::Order
Order
defines an enum for polynomial orders.
Definition:
enum_order.h:40
libMesh::THIRTYNINTH
Definition:
enum_order.h:81
libMesh::TWELFTH
Definition:
enum_order.h:53
libMesh::THIRTYTHIRD
Definition:
enum_order.h:75
libMesh::NINETEENTH
Definition:
enum_order.h:61
libMesh::FORTYSECOND
Definition:
enum_order.h:84
libMesh::FIRST
Definition:
enum_order.h:42
libMesh::FOURTEENTH
Definition:
enum_order.h:55
libMesh::FORTYTHIRD
Definition:
enum_order.h:85
libMesh::THIRTYSIXTH
Definition:
enum_order.h:78
libMesh::TWENTYSIXTH
Definition:
enum_order.h:68
libMesh::ELEVENTH
Definition:
enum_order.h:52
libMesh
The libMesh namespace provides an interface to certain functionality in the library.
libMesh::MAXIMUM
Definition:
enum_order.h:86
libMesh::SECOND
Definition:
enum_order.h:43
libMesh::TWENTYTHIRD
Definition:
enum_order.h:65
libMesh::THIRTYFIFTH
Definition:
enum_order.h:77
libMesh::TWENTYEIGHTH
Definition:
enum_order.h:70
libMesh::operator-=
Order & operator-=(Order &o, T p)
Definition:
enum_order.h:118
libMesh::FIFTH
Definition:
enum_order.h:46
libMesh::TWENTYSECOND
Definition:
enum_order.h:64
libMesh::THIRTYSEVENTH
Definition:
enum_order.h:79
libMesh::CONSTANT
Definition:
enum_order.h:41
libMesh::EIGHTEENTH
Definition:
enum_order.h:60
libMesh::THIRTIETH
Definition:
enum_order.h:72
libMesh::TWENTIETH
Definition:
enum_order.h:62
libMesh::THIRTEENTH
Definition:
enum_order.h:54
libMesh::EIGHTTEENTH
Definition:
enum_order.h:59
libMesh::TWENTYFIRST
Definition:
enum_order.h:63
libMesh::NINTH
Definition:
enum_order.h:50
libMesh::INVALID_ORDER
Definition:
enum_order.h:88
libMesh::FORTYFIRST
Definition:
enum_order.h:83
libMesh::THIRTYEIGHTH
Definition:
enum_order.h:80
libMesh::FORTIETH
Definition:
enum_order.h:82
libMesh::TWENTYFOURTH
Definition:
enum_order.h:66
libMesh::FIFTEENTH
Definition:
enum_order.h:56
libMesh::TWENTYNINTH
Definition:
enum_order.h:71
libMesh::SIXTEENTH
Definition:
enum_order.h:57
libMesh::EIGHTH
Definition:
enum_order.h:49
libMesh::TENTH
Definition:
enum_order.h:51
libMesh::THIRTYFIRST
Definition:
enum_order.h:73
libMesh::operator+
Order operator+(Order o, T p)
Definition:
enum_order.h:93
libMesh::FOURTH
Definition:
enum_order.h:45
libMesh::TWENTYSEVENTH
Definition:
enum_order.h:69
libMesh::SEVENTEENTH
Definition:
enum_order.h:58
libMesh::THIRTYFOURTH
Definition:
enum_order.h:76
libMesh::SEVENTH
Definition:
enum_order.h:48
libMesh::TWENTYFIFTH
Definition:
enum_order.h:67
libMesh::operator-
Order operator-(Order o, T p)
Definition:
enum_order.h:99
libMesh::THIRTYSECOND
Definition:
enum_order.h:74
libMesh::operator+=
Order & operator+=(Order &o, T p)
Definition:
enum_order.h:111
libMesh::THIRD
Definition:
enum_order.h:44
Generated on Sat Aug 2 2025 20:01:44 for libMesh by
1.8.14