[cig-commits] r9158 - cs/benchmark/cigma/trunk/src
luis at geodynamics.org
luis at geodynamics.org
Mon Jan 28 20:04:21 PST 2008
Author: luis
Date: 2008-01-28 20:04:21 -0800 (Mon, 28 Jan 2008)
New Revision: 9158
Modified:
cs/benchmark/cigma/trunk/src/FE.cpp
cs/benchmark/cigma/trunk/src/FE.h
Log:
Added initializer cigma::FE::set_cell_quadrature()
Modified: cs/benchmark/cigma/trunk/src/FE.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/FE.cpp 2008-01-29 04:04:20 UTC (rev 9157)
+++ cs/benchmark/cigma/trunk/src/FE.cpp 2008-01-29 04:04:21 UTC (rev 9158)
@@ -7,6 +7,7 @@
{
quadrature = 0;
cell = 0;
+
jxw = 0;
basis_tab = 0;
basis_jet = 0;
@@ -14,16 +15,32 @@
cigma::FE::~FE()
{
+ if (jxw != 0) delete [] jxw;
+ if (basis_tab != 0) delete [] basis_tab;
+ if (basis_jet != 0) delete [] basis_jet;
}
// ---------------------------------------------------------------------------
-void cigma::FE::set_quadrature(Quadrature *quadrature)
+void cigma::FE::set_cell_quadrature(Cell *cell, Quadrature *quadrature)
{
+ assert(cell != 0);
assert(quadrature != 0);
+
+ this->cell = cell;
this->quadrature = quadrature;
+
+ assert(quadrature->n_points() > 0);
+ assert(quadrature->n_dim() == cell->n_celldim());
+
+ int nq = quadrature->n_points();
+ int ndofs = cell->n_nodes();
+ int dim = cell->n_celldim();
+
+ jxw = new double[nq];
+ basis_tab = new double[nq * ndofs];
+ basis_jet = new double[nq * ndofs * dim];
}
-
// ---------------------------------------------------------------------------
Modified: cs/benchmark/cigma/trunk/src/FE.h
===================================================================
--- cs/benchmark/cigma/trunk/src/FE.h 2008-01-29 04:04:20 UTC (rev 9157)
+++ cs/benchmark/cigma/trunk/src/FE.h 2008-01-29 04:04:21 UTC (rev 9158)
@@ -21,7 +21,7 @@
~FE();
public:
- void set_quadrature(Quadrature *quadrature);
+ void set_cell_quadrature(Cell *cell, Quadrature *quadrature);
public:
Cell *cell;
More information about the cig-commits
mailing list