[cig-commits] r13192 - cs/cigma/trunk/src

luis at geodynamics.org luis at geodynamics.org
Wed Oct 29 15:12:25 PDT 2008


Author: luis
Date: 2008-10-29 15:12:23 -0700 (Wed, 29 Oct 2008)
New Revision: 13192

Modified:
   cs/cigma/trunk/src/Cell.h
   cs/cigma/trunk/src/Quadrature.cpp
   cs/cigma/trunk/src/Quadrature.h
   cs/cigma/trunk/src/fe_hex8.cpp
   cs/cigma/trunk/src/fe_hex8.h
   cs/cigma/trunk/src/fe_quad4.cpp
   cs/cigma/trunk/src/fe_quad4.h
   cs/cigma/trunk/src/fe_tet4.cpp
   cs/cigma/trunk/src/fe_tet4.h
   cs/cigma/trunk/src/fe_tri3.cpp
   cs/cigma/trunk/src/fe_tri3.h
   cs/cigma/trunk/src/py_Cell.cpp
   cs/cigma/trunk/src/py_Cell.h
   cs/cigma/trunk/src/py_Quadrature.cpp
Log:
Consolidate default integration rules.

Instead of being scattered throughout the fe_*.cpp files,
now we only need to modify Quadrature::default_rule().

Modified: cs/cigma/trunk/src/Cell.h
===================================================================
--- cs/cigma/trunk/src/Cell.h	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/Cell.h	2008-10-29 22:12:23 UTC (rev 13192)
@@ -1,8 +1,8 @@
 #ifndef __CIGMA_CELL_H__
 #define __CIGMA_CELL_H__
 
+//#include "Quadrature.h"
 #include <boost/shared_ptr.hpp>
-#include "Quadrature.h"
 
 namespace cigma
 {
@@ -49,7 +49,7 @@
     static boost::shared_ptr<Cell> New(Cell::type cellType);
     static boost::shared_ptr<Cell> New(const char *name);
 
-    virtual boost::shared_ptr<Quadrature> default_quadrature() = 0; // XXX: move this out of Cell.h
+    //virtual boost::shared_ptr<Quadrature> default_quadrature() = 0; // XXX: move this out of Cell.h
 
     virtual double volume() = 0;
 

Modified: cs/cigma/trunk/src/Quadrature.cpp
===================================================================
--- cs/cigma/trunk/src/Quadrature.cpp	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/Quadrature.cpp	2008-10-29 22:12:23 UTC (rev 13192)
@@ -1,20 +1,150 @@
 #include <iostream>
 #include <cassert>
 #include "Quadrature.h"
-
 using namespace cigma;
+using boost::shared_ptr;
 
 // ----------------------------------------------------------------------------
 
+shared_ptr<Quadrature> Quadrature::default_rule(Cell::type cell_type)
+{
+    shared_ptr<Quadrature> Q;
+    if (cell_type == Cell::TET4)
+    {
+        // tet4_qr(3)
+        const int nno = 8;
+        const int celldim = 3;
+        double qpts[nno * celldim] = {
+            -0.68663473, -0.72789005, -0.75497035,
+            -0.83720867, -0.85864055,  0.08830369,
+            -0.86832263,  0.13186633, -0.75497035,
+            -0.93159441, -0.4120024 ,  0.08830369,
+             0.16949513, -0.72789005, -0.75497035,
+            -0.39245447, -0.85864055,  0.08830369,
+            -0.50857335,  0.13186633, -0.75497035,
+            -0.74470688, -0.4120024 ,  0.08830369
+        };
+        double qwts[nno] = {
+            0.29583885,  0.12821632,  0.16925605,  0.07335544,  0.29583885,
+            0.12821632,  0.16925605,  0.07335544
+        };
+
+        for (int i = 0; i < nno; i++)
+        {   
+            for (int j = 0; j < celldim; j++)
+            {   
+                int n = celldim * i + j;
+                qpts[n] += 1;
+                qpts[n] *= 0.5;
+            }
+            // don't forget to adjust the integration weights
+            // to account for the reference domain transformation!
+            qwts[i] *= 0.125;
+        }
+
+        Q.reset(new Quadrature(nno, celldim));
+        Q->setData(qpts, qwts);
+        Q->setCellType(Cell::TET4);
+        return Q;
+    }
+    else if (cell_type == Cell::HEX8)
+    {
+        // hex8_qr(3)
+        const int nno = 8;
+        const int celldim = 3;
+        double qpts[nno * celldim] = {
+            -0.57735027, -0.57735027, -0.57735027,
+             0.57735027, -0.57735027, -0.57735027,
+             0.57735027,  0.57735027, -0.57735027,
+            -0.57735027,  0.57735027, -0.57735027,
+            -0.57735027, -0.57735027,  0.57735027,
+             0.57735027, -0.57735027,  0.57735027,
+             0.57735027,  0.57735027,  0.57735027,
+            -0.57735027,  0.57735027,  0.57735027
+        };
+        double qwts[nno] = { 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1. };
+
+        Q.reset(new Quadrature(nno, celldim));
+        Q->setData(qpts, qwts);
+        Q->setCellType(Cell::HEX8);
+        return Q;
+    }
+    else if (cell_type == Cell::QUAD4)
+    {
+        // quad4_qr(3)
+        const int nno = 4;
+        const int celldim = 2;
+        double qpts[nno*celldim] = {
+            -0.57735027, -0.57735027,
+             0.57735027, -0.57735027,
+             0.57735027,  0.57735027,
+            -0.57735027,  0.57735027
+        };
+        double qwts[nno] = {
+            1.,  1.,  1.,  1.
+        };
+
+        Q.reset(new Quadrature(nno, celldim));
+        Q->setData(qpts, qwts);
+        Q->setCellType(Cell::QUAD4);
+        return Q;
+    }
+    else if (cell_type == Cell::TRI3)
+    {
+        /*
+        // tri3_qr(5)
+        const int nno = 9;
+        const int celldim = 2;
+        double qpts[nno*celldim] = {
+            -0.79456469, -0.82282408,
+            -0.86689186, -0.18106627,
+            -0.95213774,  0.57531892,
+            -0.08858796, -0.82282408,
+            -0.40946686, -0.18106627,
+            -0.78765946,  0.57531892,
+             0.61738877, -0.82282408,
+             0.04795814, -0.18106627,
+            -0.62318119,  0.57531892
+        };
+        double qwts[nno] = {
+            0.22325768,  0.25471234,  0.07758553,  0.35721229,  0.40753974,
+            0.12413685,  0.22325768,  0.25471234,  0.07758553
+        }; // */
+
+        // tri_qr(3)
+        const int nno = 4;
+        const int celldim = 2;
+        double qpts[nno*celldim] = {
+            -0.64288254, -0.68989795,
+            -0.84993778,  0.28989795,
+             0.33278049, -0.68989795,
+            -0.43996017,  0.28989795
+        };
+        double qwts[nno] = {
+            0.63608276,  0.36391724,  0.63608276,  0.36391724
+        };
+        
+        Q.reset(new Quadrature(nno, celldim));
+        Q->setData(qpts, qwts);
+        Q->setCellType(Cell::TRI3);
+        return Q;
+    }
+
+    return Q;
+}
+
+// ----------------------------------------------------------------------------
+
 Quadrature::Quadrature()
 {
     npts = 0;
     ndim = 0;
     points = 0;
     weights = 0;
+    cell_type = Cell::NONE;
 }
 
-Quadrature::Quadrature(int npts, int ndim)
+Quadrature::Quadrature(int npts, int ndim) : cell_type(Cell::NONE)
 {
     this->npts = npts;
     this->ndim = ndim;
@@ -30,6 +160,11 @@
     }
 }
 
+/*
+Quadrature::Quadrature(const Quadrature& other)
+{
+} // */
+
 Quadrature::~Quadrature()
 {
     //std::cout << "Calling ~Quadrature()" << std::endl;

Modified: cs/cigma/trunk/src/Quadrature.h
===================================================================
--- cs/cigma/trunk/src/Quadrature.h	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/Quadrature.h	2008-10-29 22:12:23 UTC (rev 13192)
@@ -1,44 +1,69 @@
 #ifndef __CIGMA_QUADRATURE_H__
 #define __CIGMA_QUADRATURE_H__
 
+#include "Cell.h"
 #include <boost/noncopyable.hpp>
+#include <boost/shared_ptr.hpp>
 
 namespace cigma
 {
     class Quadrature;
 }
 
+/**
+ * XXX: implement copy constructor and assignment operator
+ */
 class cigma::Quadrature : private boost::noncopyable
 {
 public:
     Quadrature();
     Quadrature(int npts, int ndim);
+    //Quadrature(const Quadrature& other);
     ~Quadrature();
 
     int n_points() const;
     int n_dim() const;
 
+    Cell::type getCellType() const;
     double getPoint(int q, int j) const;
     double getWeight(int q) const;
 
+    void setCellType(Cell::type cell_type);
     void setPoint(int q, int j, double val);
     void setWeight(int q, double val);
 
     void reinit(int npts, int ndim);
     void setData(double *points, double *weights);
 
+    static boost::shared_ptr<Quadrature> default_rule(Cell::type cell_type);
+
 public:
+    Cell::type cell_type;
     int npts;
     int ndim;
-    double *points;
+    double *points;     // XXX: use valarray?
     double *weights;
 };
 
 inline int cigma::Quadrature::n_points() const { return npts; }
 inline int cigma::Quadrature::n_dim() const    { return ndim; }
+inline cigma::Cell::type cigma::Quadrature::getCellType() const { return cell_type; }
 inline double cigma::Quadrature::getPoint(int q, int j) const { return points[q*ndim + j]; }
 inline double cigma::Quadrature::getWeight(int q) const { return weights[q]; }
-inline void cigma::Quadrature::setPoint(int q, int j, double val) { points[q*ndim + j] = val; }
-inline void cigma::Quadrature::setWeight(int q, double val) { weights[q] = val; }
 
+inline void cigma::Quadrature::setPoint(int q, int j, double val)
+{
+    points[q*ndim + j] = val;
+}
+
+inline void cigma::Quadrature::setWeight(int q, double val)
+{
+    weights[q] = val;
+}
+
+inline void cigma::Quadrature::setCellType(cigma::Cell::type cell_type)
+{
+    this->cell_type = cell_type;
+}
+
 #endif

Modified: cs/cigma/trunk/src/fe_hex8.cpp
===================================================================
--- cs/cigma/trunk/src/fe_hex8.cpp	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/fe_hex8.cpp	2008-10-29 22:12:23 UTC (rev 13192)
@@ -86,6 +86,7 @@
 }
 
 
+/*
 boost::shared_ptr<Quadrature> hex8::default_quadrature()
 {
     // hex8_qr(3)
@@ -106,7 +107,7 @@
     boost::shared_ptr<Quadrature> Q(new Quadrature(nno, celldim));
     Q->setData(qpts, qwts);
     return Q;
-}
+} */
 
 /*
 void hex8::qr_default(double **wts, double **pts, int *npts, int *ndim)

Modified: cs/cigma/trunk/src/fe_hex8.h
===================================================================
--- cs/cigma/trunk/src/fe_hex8.h	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/fe_hex8.h	2008-10-29 22:12:23 UTC (rev 13192)
@@ -19,7 +19,7 @@
     int n_celldim() const { return 3; }
 
     Cell::type cell_type() const { return HEX8; }
-    boost::shared_ptr<Quadrature> default_quadrature();
+    //boost::shared_ptr<Quadrature> default_quadrature();
 
     void shape(int num, double *points, double *values);
     void grad_shape(int num, double *points, double *values);

Modified: cs/cigma/trunk/src/fe_quad4.cpp
===================================================================
--- cs/cigma/trunk/src/fe_quad4.cpp	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/fe_quad4.cpp	2008-10-29 22:12:23 UTC (rev 13192)
@@ -54,56 +54,61 @@
 {
 }
 
+/*
 boost::shared_ptr<Quadrature> quad4::default_quadrature()
 {
-    // quad4_qr(7)
-    /*
-    const int nno = 16;
-    const int celldim = 2;
-    double qpts[nno*celldim] = {
-        -0.86113631, -0.86113631,
-        -0.33998104, -0.86113631,
-         0.33998104, -0.86113631,
-         0.86113631, -0.86113631,
-         0.86113631, -0.33998104,
-         0.86113631,  0.33998104,
-         0.86113631,  0.86113631,
-         0.33998104,  0.86113631,
-        -0.33998104,  0.86113631,
-        -0.86113631,  0.86113631,
-        -0.86113631,  0.33998104,
-        -0.86113631, -0.33998104,
-        -0.33998104, -0.33998104,
-         0.33998104, -0.33998104,
-        -0.33998104,  0.33998104,
-         0.33998104,  0.33998104
-    };
-    double qwts[nno] = {
-        0.12100299,  0.22685185,  0.22685185,  0.12100299,  0.22685185,
-        0.22685185,  0.12100299,  0.22685185,  0.22685185,  0.12100299,
-        0.22685185,  0.22685185,  0.4252933 ,  0.4252933 ,  0.4252933 ,
-        0.4252933
-    }; */
+    if (false)
+    {
+        // quad4_qr(7)
+        const int nno = 16;
+        const int celldim = 2;
+        double qpts[nno*celldim] = {
+            -0.86113631, -0.86113631,
+            -0.33998104, -0.86113631,
+             0.33998104, -0.86113631,
+             0.86113631, -0.86113631,
+             0.86113631, -0.33998104,
+             0.86113631,  0.33998104,
+             0.86113631,  0.86113631,
+             0.33998104,  0.86113631,
+            -0.33998104,  0.86113631,
+            -0.86113631,  0.86113631,
+            -0.86113631,  0.33998104,
+            -0.86113631, -0.33998104,
+            -0.33998104, -0.33998104,
+             0.33998104, -0.33998104,
+            -0.33998104,  0.33998104,
+             0.33998104,  0.33998104
+        };
+        double qwts[nno] = {
+            0.12100299,  0.22685185,  0.22685185,  0.12100299,  0.22685185,
+            0.22685185,  0.12100299,  0.22685185,  0.22685185,  0.12100299,
+            0.22685185,  0.22685185,  0.4252933 ,  0.4252933 ,  0.4252933 ,
+            0.4252933
+        };
+    }
 
-    // quad4_qr(5)
-    /*
-    const int nno = 9;
-    const int celldim = 2;
-    double qpts[nno*celldim] = {
-        -7.74596669e-01,  -7.74596669e-01,
-        -2.46519033e-31,  -7.74596669e-01,
-         7.74596669e-01,  -7.74596669e-01,
-         7.74596669e-01,  -2.46519033e-31,
-         7.74596669e-01,   7.74596669e-01,
-        -2.46519033e-31,   7.74596669e-01,
-        -7.74596669e-01,   7.74596669e-01,
-        -7.74596669e-01,  -2.46519033e-31,
-        -2.46519033e-31,  -2.46519033e-31
-    };
-    double qwts[nno] = {
-        0.30864198,  0.49382716,  0.30864198,  0.49382716,  0.30864198,
-        0.49382716,  0.30864198,  0.49382716,  0.79012346
-    }; */
+    if (false)
+    {
+        // quad4_qr(5)
+        const int nno = 9;
+        const int celldim = 2;
+        double qpts[nno*celldim] = {
+            -7.74596669e-01,  -7.74596669e-01,
+            -2.46519033e-31,  -7.74596669e-01,
+             7.74596669e-01,  -7.74596669e-01,
+             7.74596669e-01,  -2.46519033e-31,
+             7.74596669e-01,   7.74596669e-01,
+            -2.46519033e-31,   7.74596669e-01,
+            -7.74596669e-01,   7.74596669e-01,
+            -7.74596669e-01,  -2.46519033e-31,
+            -2.46519033e-31,  -2.46519033e-31
+        };
+        double qwts[nno] = {
+            0.30864198,  0.49382716,  0.30864198,  0.49382716,  0.30864198,
+            0.49382716,  0.30864198,  0.49382716,  0.79012346
+        };
+    }
  
 
     // quad4_qr(3)
@@ -122,7 +127,7 @@
     boost::shared_ptr<Quadrature> Q(new Quadrature(nno, celldim));
     Q->setData(qpts, qwts);
     return Q;
-}
+} */
 
 
 // ---------------------------------------------------------------------------

Modified: cs/cigma/trunk/src/fe_quad4.h
===================================================================
--- cs/cigma/trunk/src/fe_quad4.h	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/fe_quad4.h	2008-10-29 22:12:23 UTC (rev 13192)
@@ -19,7 +19,7 @@
     int n_celldim() const { return 2; }
 
     Cell::type cell_type() const { return QUAD4; }
-    boost::shared_ptr<Quadrature> default_quadrature();
+    //boost::shared_ptr<Quadrature> default_quadrature();
 
     void shape(int num, double *points, double *values);
     void grad_shape(int num, double *points, double *values);

Modified: cs/cigma/trunk/src/fe_tet4.cpp
===================================================================
--- cs/cigma/trunk/src/fe_tet4.cpp	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/fe_tet4.cpp	2008-10-29 22:12:23 UTC (rev 13192)
@@ -61,6 +61,7 @@
 {
 }
 
+/*
 boost::shared_ptr<Quadrature> tet4::default_quadrature()
 {
     // tet4_qr(3)
@@ -97,7 +98,7 @@
     boost::shared_ptr<Quadrature> Q(new Quadrature(nno, celldim));
     Q->setData(qpts, qwts);
     return Q;
-}
+} */
 
 /*
 void tet4::qr_default(double **wts, double **pts, int *npts, int *ndim)

Modified: cs/cigma/trunk/src/fe_tet4.h
===================================================================
--- cs/cigma/trunk/src/fe_tet4.h	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/fe_tet4.h	2008-10-29 22:12:23 UTC (rev 13192)
@@ -19,7 +19,7 @@
     int n_celldim() const { return 3; }
 
     Cell::type cell_type() const { return TET4; }
-    boost::shared_ptr<Quadrature> default_quadrature();
+    //boost::shared_ptr<Quadrature> default_quadrature();
 
     void shape(int num, double *points, double *values);
     void grad_shape(int num, double *points, double *values);

Modified: cs/cigma/trunk/src/fe_tri3.cpp
===================================================================
--- cs/cigma/trunk/src/fe_tri3.cpp	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/fe_tri3.cpp	2008-10-29 22:12:23 UTC (rev 13192)
@@ -49,6 +49,7 @@
 {
 }
 
+/*
 boost::shared_ptr<Quadrature> tri3::default_quadrature()
 {
     // tri3_qr(5)
@@ -73,7 +74,7 @@
     boost::shared_ptr<Quadrature> Q(new Quadrature(nno, celldim));
     Q->setData(qpts, qwts);
     return Q;
-}
+} */
 
 /*
 void tri3::qr_default(double **wts, double **pts, int *npts, int *ndim)

Modified: cs/cigma/trunk/src/fe_tri3.h
===================================================================
--- cs/cigma/trunk/src/fe_tri3.h	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/fe_tri3.h	2008-10-29 22:12:23 UTC (rev 13192)
@@ -19,7 +19,7 @@
     int n_celldim() const { return 2; }
 
     Cell::type cell_type() const { return TRI3; }
-    boost::shared_ptr<Quadrature> default_quadrature();
+    //boost::shared_ptr<Quadrature> default_quadrature();
 
     void shape(int num, double *points, double *values);
     void grad_shape(int num, double *points, double *values);

Modified: cs/cigma/trunk/src/py_Cell.cpp
===================================================================
--- cs/cigma/trunk/src/py_Cell.cpp	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/py_Cell.cpp	2008-10-29 22:12:23 UTC (rev 13192)
@@ -1,5 +1,5 @@
 #include "py_Cell.h"
-#include "py_Quadrature.h"
+//#include "py_Quadrature.h"
 #include <iostream>
 using namespace cigma;
 using namespace boost::python;
@@ -15,6 +15,7 @@
 {
 }
 
+/*
 shared_ptr<pyQuadrature> py_hex8::default_rule()
 {
     shared_ptr<Quadrature> Q;
@@ -24,7 +25,7 @@
     Q.reset();
 
     return pyQ;
-}
+} // */
 
 // ----------------------------------------------------------------------------
 
@@ -36,6 +37,7 @@
 {
 }
 
+/*
 shared_ptr<pyQuadrature> py_tet4::default_rule()
 {
     shared_ptr<Quadrature> Q;
@@ -45,7 +47,7 @@
     Q.reset();
 
     return pyQ;
-}
+} // */
 
 // ----------------------------------------------------------------------------
 
@@ -57,6 +59,7 @@
 {
 }
 
+/*
 shared_ptr<pyQuadrature> py_quad4::default_rule()
 {
     shared_ptr<Quadrature> Q;
@@ -66,7 +69,7 @@
     Q.reset();
 
     return pyQ;
-}
+} // */
 
 // ----------------------------------------------------------------------------
 
@@ -78,6 +81,7 @@
 {
 }
 
+/*
 shared_ptr<pyQuadrature> py_tri3::default_rule()
 {
     shared_ptr<Quadrature> Q;
@@ -87,7 +91,7 @@
     Q.reset();
 
     return pyQ;
-}
+} // */
 
 // ----------------------------------------------------------------------------
 
@@ -95,32 +99,33 @@
 {
     using namespace boost::python;
 
+    // XXX: export Cell::type enum
     class_<py_hex8, boost::noncopyable>("hex8")
         .def("n_nodes", &py_hex8::n_nodes)
         .def("n_celldim", &py_hex8::n_celldim)
         //.def("n_dim", &py_hex8::n_dim)
-        .def("default_rule", &py_hex8::default_rule)
+        //.def("default_rule", &py_hex8::default_rule)
         ;
 
     class_<py_tet4, boost::noncopyable>("tet4")
         .def("n_nodes", &py_tet4::n_nodes)
         .def("n_celldim", &py_tet4::n_celldim)
         //.def("n_dim", &py_tet4::n_dim)
-        .def("default_rule", &py_tet4::default_rule)
+        //.def("default_rule", &py_tet4::default_rule)
         ;
 
     class_<py_quad4, boost::noncopyable>("quad4")
         .def("n_nodes", &py_quad4::n_nodes)
         .def("n_celldim", &py_quad4::n_celldim)
         //.def("n_dim", &py_quad4::n_dim)
-        .def("default_rule", &py_quad4::default_rule)
+        //.def("default_rule", &py_quad4::default_rule)
         ;
 
     class_<py_tri3, boost::noncopyable>("tri3")
         .def("n_nodes", &py_tri3::n_nodes)
         .def("n_celldim", &py_tri3::n_celldim)
         //.def("n_dim", &py_tri3::n_dim)
-        .def("default_rule", &py_tri3::default_rule)
+        //.def("default_rule", &py_tri3::default_rule)
         ;
 
     //register_ptr_to_python< shared_ptr<py_hex8> >();

Modified: cs/cigma/trunk/src/py_Cell.h
===================================================================
--- cs/cigma/trunk/src/py_Cell.h	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/py_Cell.h	2008-10-29 22:12:23 UTC (rev 13192)
@@ -8,14 +8,14 @@
 #include "fe_tri3.h"
 
 #include "numpy_util.h"
-#include "py_Quadrature.h"
+//#include "py_Quadrature.h"
 
 
 struct py_hex8 : cigma::hex8
 {
     py_hex8();
     ~py_hex8();
-    boost::shared_ptr<pyQuadrature> default_rule();
+    //boost::shared_ptr<pyQuadrature> default_rule();
 
 public:
     boost::python::numeric::array gv;
@@ -25,21 +25,21 @@
 {
     py_tet4();
     ~py_tet4();
-    boost::shared_ptr<pyQuadrature> default_rule();
+    //boost::shared_ptr<pyQuadrature> default_rule();
 };
 
 struct py_quad4 : cigma::quad4
 {
     py_quad4();
     ~py_quad4();
-    boost::shared_ptr<pyQuadrature> default_rule();
+    //boost::shared_ptr<pyQuadrature> default_rule();
 };
 
 struct py_tri3 : cigma::tri3
 {
     py_tri3();
     ~py_tri3();
-    boost::shared_ptr<pyQuadrature> default_rule();
+    //boost::shared_ptr<pyQuadrature> default_rule();
 };
 
 

Modified: cs/cigma/trunk/src/py_Quadrature.cpp
===================================================================
--- cs/cigma/trunk/src/py_Quadrature.cpp	2008-10-29 22:12:21 UTC (rev 13191)
+++ cs/cigma/trunk/src/py_Quadrature.cpp	2008-10-29 22:12:23 UTC (rev 13192)
@@ -148,6 +148,9 @@
     using namespace boost::python;
 
     typedef pyQuadrature pq;
+
+    //def("default_rule", &pq::default_rule);
+
     class_<pyQuadrature, boost::noncopyable>("Quadrature", init<int,int>())
         
         .def("n_points", &pq::n_points)



More information about the CIG-COMMITS mailing list