From 0027e10d123d47f9919235470c8c9c75a309de39 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Mon, 22 Oct 2007 17:08:09 +0000
Subject: [PATCH] moved the quadrature orders for bending and shear stuff into
 the header, as a first step towards reduced integration

[[Imported from SVN: r1714]]
---
 src/rodassembler.cc | 9 ++++-----
 src/rodassembler.hh | 6 ++++++
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/rodassembler.cc b/src/rodassembler.cc
index 85db01da..969fa4f7 100644
--- a/src/rodassembler.cc
+++ b/src/rodassembler.cc
@@ -20,12 +20,11 @@ energy(const Entity& element,
     // ///////////////////////////////////////////////////////////////////////////////
     //   The following two loops are a reduced integration scheme.  We integrate
     //   the transverse shear and extensional energy with a first-order quadrature
-    //   formula, even though it should be second order.  This prevents shear-locking
+    //   formula, even though it should be second order.  This prevents shear-locking.
     // ///////////////////////////////////////////////////////////////////////////////
 
-    const int shearingPolOrd = 2;
     const Dune::QuadratureRule<double, 1>& shearingQuad 
-        = Dune::QuadratureRules<double, 1>::rule(element.type(), shearingPolOrd);
+        = Dune::QuadratureRules<double, 1>::rule(element.type(), shearQuadOrder);
     
     for (size_t pt=0; pt<shearingQuad.size(); pt++) {
         
@@ -47,8 +46,8 @@ energy(const Entity& element,
     }
     
     // Get quadrature rule
-    const int polOrd = 2;
-    const Dune::QuadratureRule<double, 1>& bendingQuad = Dune::QuadratureRules<double, 1>::rule(element.type(), polOrd);
+    const Dune::QuadratureRule<double, 1>& bendingQuad 
+        = Dune::QuadratureRules<double, 1>::rule(element.type(), bendingQuadOrder);
     
     for (size_t pt=0; pt<bendingQuad.size(); pt++) {
         
diff --git a/src/rodassembler.hh b/src/rodassembler.hh
index 8dc419c7..51d1cb4b 100644
--- a/src/rodassembler.hh
+++ b/src/rodassembler.hh
@@ -22,6 +22,12 @@ class RodLocalStiffness
     // some other sizes
     enum {dim=GridType::dimension};
 
+    // Quadrature order used for the extension and shear energy
+    enum {shearQuadOrder = 2};
+
+    // Quadrature order used for the bending and torsion energy
+    enum {bendingQuadOrder = 2};
+
 public:
     
     //! Each block is x, y, theta in 2d, T (R^3 \times SO(3)) in 3d
-- 
GitLab