libMesh
Loading...
Searching...
No Matches
quadrature_trap_2D.C
Go to the documentation of this file.
1// The libMesh Finite Element Library.
2// Copyright (C) 2002-2026 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// Local includes
21#include "libmesh/quadrature_trap.h"
22#include "libmesh/enum_to_string.h"
23
24namespace libMesh
25{
26
28{
29#if LIBMESH_DIM > 1
30
31 //-----------------------------------------------------------------------
32 // 2D quadrature rules
33 switch (_type)
34 {
35
36
37 //---------------------------------------------
38 // Quadrilateral quadrature rules
39 case QUAD4:
40 case QUADSHELL4:
41 case QUAD8:
42 case QUADSHELL8:
43 case QUAD9:
44 case QUADSHELL9:
45 {
46
47 // We compute the 2D quadrature rule as a tensor
48 // product of the 1D quadrature rule.
49 QTrap q1D(1);
50
52
53 return;
54 }
55
56
57 //---------------------------------------------
58 // Triangle quadrature rules
59 case TRI3:
60 case TRISHELL3:
61 case TRI3SUBDIVISION:
62 case TRI6:
63 case TRI7:
64 {
65 _points.resize(3);
66 _weights.resize(3);
67
68 _points[0](0) = 0.;
69 _points[0](1) = 0.;
70
71 _points[1](0) = 1.;
72 _points[1](1) = 0.;
73
74 _points[2](0) = 0.;
75 _points[2](1) = 1.;
76
77
78 _weights[0] = 1/Real(6);
79 _weights[1] = 1/Real(6);
80 _weights[2] = 1/Real(6);
81
82 return;
83 }
84
85
86 //---------------------------------------------
87 // Unsupported type
88 default:
89 libmesh_error_msg("Element type not supported!:" << Utility::enum_to_string(_type));
90 }
91#endif
92}
93
94} // namespace libMesh
std::vector< Point > _points
The locations of the quadrature points in reference element space.
Definition quadrature.h:409
ElemType _type
The type of element for which the current values have been computed.
Definition quadrature.h:391
void tensor_product_quad(const QBase &q1D)
Constructs a 2D rule from the tensor product of q1D with itself.
Definition quadrature.C:256
std::vector< Real > _weights
The quadrature weights.
Definition quadrature.h:415
This class implements trapezoidal quadrature.
virtual void init_2D() override
Initializes the 2D quadrature rule by filling the points and weights vectors with the appropriate val...
std::string enum_to_string(const T e)
The libMesh namespace provides an interface to certain functionality in the library.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real