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

luis at geodynamics.org luis at geodynamics.org
Tue Dec 9 18:13:06 PST 2008


Author: luis
Date: 2008-12-09 18:13:06 -0800 (Tue, 09 Dec 2008)
New Revision: 13517

Modified:
   cs/cigma/trunk/src/Residuals.cpp
   cs/cigma/trunk/src/Residuals.h
Log:
Track cell volumes in Residuals object

Modified: cs/cigma/trunk/src/Residuals.cpp
===================================================================
--- cs/cigma/trunk/src/Residuals.cpp	2008-12-10 02:13:05 UTC (rev 13516)
+++ cs/cigma/trunk/src/Residuals.cpp	2008-12-10 02:13:06 UTC (rev 13517)
@@ -14,16 +14,22 @@
 {
     nel = 0;
     epsilon = 0;
+    volume = 0;
 }
 
 Residuals::~Residuals()
 {
+    nel = 0;
     if (epsilon != 0)
     {
         delete [] epsilon;
         epsilon = 0;
-        nel = 0;
     }
+    if (volume != 0)
+    {
+        delete [] volume;
+        volume = 0;
+    }
 }
 
 void Residuals::setMesh(shared_ptr<MeshPart> meshPart)
@@ -34,21 +40,20 @@
     {
         nel = meshPart->connect->n_cells();
 
-        if (epsilon != 0)
-        {
-            delete [] epsilon;
-            epsilon = 0;
-        }
+        if (epsilon != 0) { delete [] epsilon; }
+        if (volume != 0) { delete [] volume; }
 
         epsilon = new double[nel];
+        volume = new double[nel];
     }
 }
 
 void Residuals::resetAccumulator()
 {
     assert(nel > 0);
+    assert(meshPart);
     assert(epsilon != 0);
-    assert(meshPart);
+    assert(volume != 0);
 
     global_error = 0.0;
     max_residual = 0.0;
@@ -57,6 +62,7 @@
     for (int e = 0; e < nel; e++)
     {
         epsilon[e] = 0.0;
+        volume[e] = 0.0;
     }
 }
 
@@ -69,6 +75,7 @@
     epsilon[e] = cell_residual;
 
     // keep track of domain volume
+    volume[e] = cell_volume;
     total_volume += cell_volume;
 
     // keep track of max residual

Modified: cs/cigma/trunk/src/Residuals.h
===================================================================
--- cs/cigma/trunk/src/Residuals.h	2008-12-10 02:13:05 UTC (rev 13516)
+++ cs/cigma/trunk/src/Residuals.h	2008-12-10 02:13:06 UTC (rev 13517)
@@ -28,13 +28,18 @@
     //void write(const char *filename); // XXX
 
 public:
+
+    boost::shared_ptr<MeshPart> meshPart;
+
     int nel;
     double *epsilon;
+    double *volume;
+
+
     double global_error;
     double max_residual;
     double total_volume;
 
-    boost::shared_ptr<MeshPart> meshPart;
 };
 
 



More information about the CIG-COMMITS mailing list