[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