LCOV - code coverage report
Current view: top level - src/quadrature - quadrature_nodal_1D.C (source / functions) Hit Total Coverage
Test: libMesh/libmesh: #4229 (6a9aeb) with base 727f46 Lines: 19 21 90.5 %
Date: 2025-08-19 19:27:09 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // The libMesh Finite Element Library.
       2             : // Copyright (C) 2002-2025 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_nodal.h"
      22             : #include "libmesh/quadrature_trap.h"
      23             : #include "libmesh/quadrature_simpson.h"
      24             : #include "libmesh/enum_to_string.h"
      25             : 
      26             : namespace libMesh
      27             : {
      28             : 
      29         568 : void QNodal::init_1D()
      30             : {
      31         568 :   switch (_type)
      32             :     {
      33         355 :     case EDGE2:
      34             :       {
      35             :         // Nodal quadrature on an Edge2 is QTrap
      36         365 :         QTrap rule(/*dim=*/1, /*ignored*/_order);
      37         355 :         rule.init(*this);
      38          10 :         _points.swap (rule.get_points());
      39          10 :         _weights.swap(rule.get_weights());
      40          10 :         return;
      41             :       }
      42         142 :     case EDGE3:
      43             :       {
      44             :         // Nodal quadrature on an Edge3 is QSimpson
      45         146 :         QSimpson rule(/*dim=*/1, /*ignored*/_order);
      46         142 :         rule.init(*this);
      47           4 :         _points.swap (rule.get_points());
      48           4 :         _weights.swap(rule.get_weights());
      49           4 :         return;
      50             :       }
      51           2 :     case EDGE4:
      52             :       {
      53             :         // The 4-point variant of Simpson's rule. The quadrature
      54             :         // points are in the same order as the reference element
      55             :         // nodes.
      56         138 :         _points = {Point(-1,0.,0.), Point(+1,0.,0.),
      57          71 :                    Point(-Real(1)/3,0.,0.), Point(Real(1)/3,0.,0.)};
      58          71 :         _weights = {0.25, 0.25, 0.75, 0.75};
      59          71 :         return;
      60             :       }
      61           0 :     default:
      62           0 :       libmesh_error_msg("Element type not supported:" << Utility::enum_to_string(_type));
      63             :     }
      64             : }
      65             : 
      66             : } // namespace libMesh

Generated by: LCOV version 1.14