$extrastylesheet
00001 // The libMesh Finite Element Library. 00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner 00003 00004 // This library is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU Lesser General Public 00006 // License as published by the Free Software Foundation; either 00007 // version 2.1 of the License, or (at your option) any later version. 00008 00009 // This library is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 // Lesser General Public License for more details. 00013 00014 // You should have received a copy of the GNU Lesser General Public 00015 // License along with this library; if not, write to the Free Software 00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 00018 // C++ includes 00019 #include <iostream> 00020 00021 // Local includes 00022 #include "libmesh/elem_type.h" 00023 00024 namespace libMesh 00025 { 00026 00027 // ------------------------------------------------------------ 00028 // Element type definitions 00029 00030 00031 std::string ElementTypes::basic_name (const ElemType t) 00032 { 00033 std::string its_name; 00034 switch (t) 00035 { 00036 case EDGE2: 00037 case EDGE3: 00038 case EDGE4: 00039 { 00040 its_name = "Edge"; 00041 break; 00042 } 00043 00044 case TRI3: 00045 case TRI6: 00046 { 00047 its_name = "Triangle"; 00048 break; 00049 } 00050 00051 case QUAD4: 00052 case QUAD8: 00053 case QUAD9: 00054 { 00055 its_name = "Quadrilateral"; 00056 break; 00057 } 00058 00059 case TET4: 00060 case TET10: 00061 { 00062 its_name = "Tetrahedron"; 00063 break; 00064 } 00065 00066 case HEX8: 00067 case HEX20: 00068 case HEX27: 00069 { 00070 its_name = "Hexahedron"; 00071 break; 00072 } 00073 00074 case PRISM6: 00075 case PRISM18: 00076 { 00077 its_name = "Prism"; 00078 break; 00079 } 00080 00081 case PYRAMID5: 00082 case PYRAMID13: 00083 case PYRAMID14: 00084 { 00085 its_name = "Pyramid"; 00086 break; 00087 } 00088 00089 00090 00091 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 00092 00093 // infinite elements 00094 case INFEDGE2: 00095 { 00096 its_name = "Infinite Edge"; 00097 break; 00098 } 00099 00100 case INFQUAD4: 00101 case INFQUAD6: 00102 { 00103 its_name = "Infinite Quadrilateral"; 00104 break; 00105 } 00106 00107 case INFHEX8: 00108 case INFHEX16: 00109 case INFHEX18: 00110 { 00111 its_name = "Infinite Hexahedron"; 00112 break; 00113 } 00114 00115 case INFPRISM6: 00116 case INFPRISM12: 00117 { 00118 its_name = "Infinite Prism"; 00119 break; 00120 } 00121 00122 #endif 00123 00124 00125 default: 00126 libmesh_error_msg("Undefined element type!"); 00127 } 00128 return its_name; 00129 } 00130 00131 00132 std::string ElementTypes::name(const ElemType t) 00133 { 00134 std::string its_name; 00135 switch (t) 00136 { 00137 case EDGE2: 00138 { 00139 its_name = "Edge 2"; 00140 break; 00141 } 00142 00143 case EDGE3: 00144 { 00145 its_name = "Edge 3"; 00146 break; 00147 } 00148 00149 case EDGE4: 00150 { 00151 its_name = "Edge 4"; 00152 break; 00153 } 00154 00155 case TRI3: 00156 { 00157 its_name = "Tri 3"; 00158 break; 00159 } 00160 00161 case TRI6: 00162 { 00163 its_name = "Tri 6"; 00164 break; 00165 } 00166 00167 case QUAD4: 00168 { 00169 its_name = "Quad 4"; 00170 break; 00171 } 00172 00173 case QUAD8: 00174 { 00175 its_name = "Quad 8"; 00176 break; 00177 } 00178 00179 case QUAD9: 00180 { 00181 its_name = "Quad 9"; 00182 break; 00183 } 00184 00185 case TET4: 00186 { 00187 its_name = "Tet 4"; 00188 break; 00189 } 00190 00191 case TET10: 00192 { 00193 its_name = "Tet 10"; 00194 break; 00195 } 00196 00197 case HEX8: 00198 { 00199 its_name = "Hex 8"; 00200 break; 00201 } 00202 00203 case HEX20: 00204 { 00205 its_name = "Hex 20"; 00206 break; 00207 } 00208 00209 case HEX27: 00210 { 00211 its_name = "Hex 27"; 00212 break; 00213 } 00214 00215 case PRISM6: 00216 { 00217 its_name = "Prism 6"; 00218 break; 00219 } 00220 00221 case PRISM18: 00222 { 00223 its_name = "Prism 8"; 00224 break; 00225 } 00226 00227 case PYRAMID5: 00228 { 00229 its_name = "Pyramid 5"; 00230 break; 00231 } 00232 00233 case PYRAMID13: 00234 { 00235 its_name = "Pyramid 13"; 00236 break; 00237 } 00238 00239 case PYRAMID14: 00240 { 00241 its_name = "Pyramid 14"; 00242 break; 00243 } 00244 00245 00246 00247 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 00248 00249 case INFEDGE2: 00250 { 00251 its_name = "Infinite Edge 2"; 00252 break; 00253 } 00254 00255 case INFQUAD4: 00256 { 00257 its_name = "Infinite Quad 4"; 00258 break; 00259 } 00260 00261 case INFQUAD6: 00262 { 00263 its_name = "Infinite Quad 6"; 00264 break; 00265 } 00266 00267 case INFHEX8: 00268 { 00269 its_name = "Infinite Hex 8"; 00270 break; 00271 } 00272 00273 case INFHEX16: 00274 { 00275 its_name = "Infinite Hex 16"; 00276 break; 00277 } 00278 00279 case INFHEX18: 00280 { 00281 its_name = "Infinite Hex 18"; 00282 break; 00283 } 00284 00285 case INFPRISM6: 00286 { 00287 its_name = "Infinite Prism 6"; 00288 break; 00289 } 00290 00291 case INFPRISM12: 00292 { 00293 its_name = "Infinite Prism 12"; 00294 break; 00295 } 00296 00297 #endif 00298 00299 00300 00301 default: 00302 libmesh_error_msg("Undefined element type!"); 00303 } 00304 return its_name; 00305 } 00306 00307 } // namespace libMesh