$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 00019 00020 // Local includes 00021 #include "libmesh/quadrature_trap.h" 00022 00023 namespace libMesh 00024 { 00025 00026 00027 00028 void QTrap::init_2D(const ElemType type_in, 00029 unsigned int) 00030 { 00031 #if LIBMESH_DIM > 1 00032 00033 //----------------------------------------------------------------------- 00034 // 2D quadrature rules 00035 switch (type_in) 00036 { 00037 00038 00039 //--------------------------------------------- 00040 // Quadrilateral quadrature rules 00041 case QUAD4: 00042 case QUAD8: 00043 case QUAD9: 00044 { 00045 00046 // We compute the 2D quadrature rule as a tensor 00047 // product of the 1D quadrature rule. 00048 QTrap q1D(1); 00049 q1D.init(EDGE2); 00050 00051 tensor_product_quad( q1D ); 00052 00053 return; 00054 } 00055 00056 00057 //--------------------------------------------- 00058 // Triangle quadrature rules 00059 case TRI3: 00060 case TRI6: 00061 { 00062 _points.resize(3); 00063 _weights.resize(3); 00064 00065 _points[0](0) = 0.; 00066 _points[0](1) = 0.; 00067 00068 _points[1](0) = 1.; 00069 _points[1](1) = 0.; 00070 00071 _points[2](0) = 0.; 00072 _points[2](1) = 1.; 00073 00074 00075 _weights[0] = 1./6.; 00076 _weights[1] = 1./6.; 00077 _weights[2] = 1./6.; 00078 00079 return; 00080 } 00081 00082 00083 //--------------------------------------------- 00084 // Unsupported type 00085 default: 00086 libmesh_error_msg("Element type not supported!:" << type_in); 00087 } 00088 #endif 00089 } 00090 00091 } // namespace libMesh