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