[cig-commits] r11564 - cs/benchmark/cigma/trunk/src

luis at geodynamics.org luis at geodynamics.org
Wed Mar 26 03:27:55 PDT 2008


Author: luis
Date: 2008-03-26 03:27:54 -0700 (Wed, 26 Mar 2008)
New Revision: 11564

Modified:
   cs/benchmark/cigma/trunk/src/QuadraturePoints.cpp
   cs/benchmark/cigma/trunk/src/QuadraturePoints.h
Log:
Updated QuadraturePoints.{h,cpp}


Modified: cs/benchmark/cigma/trunk/src/QuadraturePoints.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/QuadraturePoints.cpp	2008-03-26 10:27:54 UTC (rev 11563)
+++ cs/benchmark/cigma/trunk/src/QuadraturePoints.cpp	2008-03-26 10:27:54 UTC (rev 11564)
@@ -1,8 +1,10 @@
 #include "QuadraturePoints.h"
 
+using namespace cigma;
+
 // ---------------------------------------------------------------------------
 
-cigma::QuadraturePoints::QuadraturePoints()
+QuadraturePoints::QuadraturePoints()
 {
     qdim = 0;
     qpts = 0;
@@ -10,72 +12,91 @@
 }
 
 
-cigma::QuadraturePoints::~QuadraturePoints()
+QuadraturePoints::~QuadraturePoints()
 {
-    if (qpts != 0) delete [] qpts;
-    if (qwts != 0) delete [] qwts;
+    clear();
 }
 
+void QuadraturePoints::clear()
+{
+    if (data != 0)
+    {
+        delete [] data;
+        data = 0;
+    }
+    if (qpts != 0)
+    {
+        delete [] qpts;
+        qpts = 0;
+    }
+    if (qwts != 0)
+    {
+        delete [] qwts;
+        qwts = 0;
+    }
+}
 
 // ---------------------------------------------------------------------------
 
-void cigma::QuadraturePoints::set_quadrature(double *quadpts, double *quadwts, int npts, int qdim)
+void QuadraturePoints::set_quadrature(double *qpts, double *qwts, int npts, int qdim)
 {
     /* some basic assertions */
-    assert(quadpts != 0);
-    assert(quadwts != 0);
+    assert(qpts != 0);
+    assert(qwts != 0);
     assert(npts > 0);
     assert(qdim > 0);
 
     /* clear existing data */
-    if (qpts != 0) delete [] qpts;
-    if (qwts != 0) delete [] qwts;
+    this->clear();
 
     /* set dimensions */
-    this->num = npts;
+    this->npts = npts;
     this->qdim = qdim;
 
     /* allocate new data arrays */
-    qpts = new double[num * qdim];
-    qwts = new double[num];
+    this->qpts = new double[npts * qdim];
+    this->qwts = new double[npts];
 
     /* copy from quadpts & quadwts */
     int i,j;
-    for (i = 0; i < num; i++)
+    for (i = 0; i < npts; i++)
     {
-        qwts[i] = quadwts[i];
+        this->qwts[i] = qwts[i];
         for (j = 0; j < qdim; j++)
         {
             int n = qdim*i + j;
-            qpts[n] = quadpts[n];
+            this->qpts[n] = qpts[n];
         }
     }
-}
 
-void cigma::QuadraturePoints::set_globaldim(int dim)
-{
-    assert(num > 0);
-    this->dim = dim;
-    this->data = new double[num * dim];
-    for (int i = 0; i < num; i++)
+    /* global quadrature points */
+    ndim = 3;
+    data = new double[npts * ndim];
+    for (i = 0; i < npts; i++)
     {
-        for (int j = 0; j < dim; j++)
+        for (j = 0; j < ndim; j++)
         {
-            data[dim*i+j] = 0.0;
+            data[ndim*i + j] = 0.0;
         }
     }
 }
 
-
-void cigma::QuadraturePoints::apply_refmap(Cell *cell)
+void QuadraturePoints::apply_refmap(Cell *cell)
 {
     assert(cell != 0);
     assert(data != 0);
 
-    for (int i = 0; i < num; i++)
+    for (int i = 0; i < npts; i++)
     {
-        double *uvw = &qpts[qdim*i];
-        double *xyz = &data[dim*i];
+        double uvw[3] = {0,0,0};
+
+        for (int j = 0; j < qdim; j++)
+        {
+            uvw[j] = qpts[qdim*i + j];
+        }
+        
+        double *xyz = &data[ndim*i];
+
         cell->uvw2xyz(uvw, xyz);
     }
 }

Modified: cs/benchmark/cigma/trunk/src/QuadraturePoints.h
===================================================================
--- cs/benchmark/cigma/trunk/src/QuadraturePoints.h	2008-03-26 10:27:54 UTC (rev 11563)
+++ cs/benchmark/cigma/trunk/src/QuadraturePoints.h	2008-03-26 10:27:54 UTC (rev 11564)
@@ -19,18 +19,15 @@
 public:
     QuadraturePoints();
     ~QuadraturePoints();
+    void clear();
 
 public:
-    void set_quadrature(double *quadpts, double *quadwts, int npts, int qdim);
-    void set_globaldim(int dim);
+    void set_quadrature(double *qpts, double *qwts, int npts, int qdim);
     void apply_refmap(Cell *cell);
 
 public:
     int n_refdim() const;
-    int n_globaldim() const;
-
-public:
-    double point(int i, int j) const;
+    double refpoint(int i, int j) const;
     double weight(int i) const;
 
 public:
@@ -41,19 +38,13 @@
 
 // ---------------------------------------------------------------------------
 
-
 inline int cigma::QuadraturePoints::n_refdim() const
 {
     return qdim;
 }
 
-inline int cigma::QuadraturePoints::n_globaldim() const
+inline double cigma::QuadraturePoints::refpoint(int i, int j) const
 {
-    return dim;
-}
-
-inline double cigma::QuadraturePoints::point(int i, int j) const
-{
     return qpts[qdim*i + j];
 }
 



More information about the cig-commits mailing list