1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2020 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 
25 /**
26  * \enum libMesh::Order defines an \p enum for polynomial orders.
27  * Fixing each label to a specific int, since \p InfFE and p refinement
28  * may cast between them.
29  *
30  * \note It is possible to safely cast integral values larger than 43
31  * to Order, provided that the cast value fits in the range of int. A
32  * potential use case for such a cast is when employing the QGrid
33  * class at extremely high order.
34  *
35  * The fixed type, i.e. ": int", enumeration syntax used here allows
36  * this enum to be forward declared as
37  * enum Order : int;
38  * reducing header file dependencies.
39  */
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,
60             NINETEENTH   = 19,
61             TWENTIETH    = 20,
62             TWENTYFIRST   = 21,
63             TWENTYSECOND  = 22,
64             TWENTYTHIRD   = 23,
65             TWENTYFOURTH  = 24,
66             TWENTYFIFTH   = 25,
67             TWENTYSIXTH   = 26,
68             TWENTYSEVENTH = 27,
69             TWENTYEIGHTH  = 28,
70             TWENTYNINTH   = 29,
71             THIRTIETH     = 30,
72             THIRTYFIRST   = 31,
73             THIRTYSECOND  = 32,
74             THIRTYTHIRD   = 33,
75             THIRTYFOURTH  = 34,
76             THIRTYFIFTH   = 35,
77             THIRTYSIXTH   = 36,
78             THIRTYSEVENTH = 37,
79             THIRTYEIGHTH  = 38,
80             THIRTYNINTH   = 39,
81             FORTIETH     = 40,
82             FORTYFIRST   = 41,
83             FORTYSECOND  = 42,
84             FORTYTHIRD   = 43,
85             // Invalid
86             INVALID_ORDER};
87 
88 }
89 
90 #endif
91