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_NORM_TYPE_H 21 #define LIBMESH_ENUM_NORM_TYPE_H 22 23 namespace libMesh { 24 25 /** 26 * \enum libMesh::FEMNormType defines an \p enum for norms 27 * defined on vectors of finite element coefficients 28 * 29 * The fixed type, i.e. ": int", enumeration syntax used here allows 30 * this enum to be forward declared as 31 * enum FEMNormType : int; 32 * reducing header file dependencies. 33 */ 34 enum FEMNormType : int { 35 // Hilbert norms and seminorms in FE space 36 L2 = 0, 37 H1 = 1, 38 H2 = 2, 39 HCURL = 3, 40 HDIV = 4, 41 L1 = 5, 42 L_INF = 6, 43 H1_SEMINORM = 10, 44 H2_SEMINORM = 11, 45 // Vector FE norms 46 HCURL_SEMINORM = 12, 47 HDIV_SEMINORM = 13, 48 // Sobolev infinity seminorms 49 W1_INF_SEMINORM = 15, 50 W2_INF_SEMINORM = 16, 51 // discrete norms on coefficient vectors 52 DISCRETE_L1 = 20, 53 DISCRETE_L2 = 21, 54 DISCRETE_L_INF = 22, 55 // Seminorms based on only individual gradient 56 // directional components 57 H1_X_SEMINORM = 31, 58 H1_Y_SEMINORM = 32, 59 H1_Z_SEMINORM = 33, 60 // Invalid 61 INVALID_NORM = 42}; 62 } 63 64 #endif 65