[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