$extrastylesheet
quadrature_gauss_lobatto_3D.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 
00019 
00020 // Local includes
00021 #include "libmesh/quadrature_gauss_lobatto.h"
00022 
00023 namespace libMesh
00024 {
00025 
00026 void QGaussLobatto::init_3D(const ElemType type_in,
00027                             unsigned int p)
00028 {
00029   switch (type_in)
00030     {
00031     case HEX8:
00032     case HEX20:
00033     case HEX27:
00034       {
00035         // We compute the 3D quadrature rule as a tensor
00036         // product of the 1D quadrature rule.
00037         QGaussLobatto q1D(1, _order);
00038         q1D.init(EDGE2, p);
00039         tensor_product_hex(q1D);
00040         return;
00041       }
00042 
00043       // We *could* fall back to a Gauss type rule for other types
00044       // elements, but the assumption here is that the user has asked
00045       // for a Gauss-Lobatto rule, i.e. a rule with integration points
00046       // on the element boundary, for a reason.
00047     default:
00048       libmesh_error_msg("ERROR: Unsupported type: " << type_in);
00049     }
00050 }
00051 
00052 } // namespace libMesh