$extrastylesheet
elem_type.C
Go to the documentation of this file.
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