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

luis at geodynamics.org luis at geodynamics.org
Wed Feb 20 13:12:30 PST 2008


Author: luis
Date: 2008-02-20 13:12:30 -0800 (Wed, 20 Feb 2008)
New Revision: 11213

Modified:
   cs/benchmark/cigma/trunk/src/FieldIO.cpp
   cs/benchmark/cigma/trunk/src/MeshIO.cpp
   cs/benchmark/cigma/trunk/src/Quad.h
   cs/benchmark/cigma/trunk/src/QuadratureIO.cpp
   cs/benchmark/cigma/trunk/src/Tri.h
   cs/benchmark/cigma/trunk/src/VtkXmlReader.cpp
Log:
Fixes to enable comparisons of 2D fields
 * Fixed bug in VtkXmlReader::get_coordinates()
 * Fixed dimension problem with Quad & Tri elements (need orientation routine for 3D embedding)
 * For now, skip locator when comparing 2D fields


Modified: cs/benchmark/cigma/trunk/src/FieldIO.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/FieldIO.cpp	2008-02-20 21:12:28 UTC (rev 11212)
+++ cs/benchmark/cigma/trunk/src/FieldIO.cpp	2008-02-20 21:12:30 UTC (rev 11213)
@@ -140,10 +140,14 @@
 
         // XXX: Instantiate Locator only when necessary!
         // XXX: Decide threshold based on number of elements?
+        // XXX: For now, use ann locator for 3D meshes only (use quadtree locator for 2D meshes?)
         if (field->meshPart->nel > 1000)
         {
-            AnnLocator *locator = new AnnLocator();
-            field->meshPart->set_locator(locator);
+            if (field->meshPart->nsd == 3)
+            {
+                AnnLocator *locator = new AnnLocator();
+                field->meshPart->set_locator(locator);
+            }
         }
 
         field->dofHandler = new DofHandler();

Modified: cs/benchmark/cigma/trunk/src/MeshIO.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/MeshIO.cpp	2008-02-20 21:12:28 UTC (rev 11212)
+++ cs/benchmark/cigma/trunk/src/MeshIO.cpp	2008-02-20 21:12:30 UTC (rev 11213)
@@ -351,8 +351,16 @@
     coords_reader->get_coordinates(coords_loc.c_str(), &coords, &nno, &nsd);
     connect_reader->get_connectivity(connect_loc.c_str(), &connect, &nel, &ndofs);
 
+    /*
+    cout << "*** "
+         << "nno = " << nno << ", "
+         << "nsd = " << nsd << ", "
+         << "nel = " << nel << ", "
+         << "ndofs = " << ndofs << endl;
+    // */
 
 
+
     /* XXX: use auto_ptr for the local readers, so we can throw exceptions
     if (coords_path != "")
     {

Modified: cs/benchmark/cigma/trunk/src/Quad.h
===================================================================
--- cs/benchmark/cigma/trunk/src/Quad.h	2008-02-20 21:12:28 UTC (rev 11212)
+++ cs/benchmark/cigma/trunk/src/Quad.h	2008-02-20 21:12:30 UTC (rev 11213)
@@ -17,7 +17,7 @@
 public:
     int n_nodes() { return 4; }
     int n_celldim() { return 2; }
-    int n_dim() { return 3; }
+    int n_dim() { return 2; } //XXX: how to handle embedding in 3d space?
     Geometry geometry() { return QUADRANGLE; }
 
 public:

Modified: cs/benchmark/cigma/trunk/src/QuadratureIO.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/QuadratureIO.cpp	2008-02-20 21:12:28 UTC (rev 11212)
+++ cs/benchmark/cigma/trunk/src/QuadratureIO.cpp	2008-02-20 21:12:30 UTC (rev 11213)
@@ -126,7 +126,7 @@
     // tri_qr(5)
     const int tri_nno = 9;
     const int tri_celldim = 2;
-    const int tri_nsd = 3;
+    const int tri_nsd = 2; //XXX
     double tri_qpts[tri_nno * tri_celldim] = {
         -0.79456469, -0.82282408,
         -0.86689186, -0.18106627,
@@ -156,7 +156,7 @@
     // quad_qr(7)
     const int quad_nno = 16;
     const int quad_celldim = 2;
-    const int quad_nsd = 3;
+    const int quad_nsd = 2; //XXX
     double quad_qpts[quad_nno * quad_celldim] = {
         -0.86113631, -0.86113631,
         -0.33998104, -0.86113631,

Modified: cs/benchmark/cigma/trunk/src/Tri.h
===================================================================
--- cs/benchmark/cigma/trunk/src/Tri.h	2008-02-20 21:12:28 UTC (rev 11212)
+++ cs/benchmark/cigma/trunk/src/Tri.h	2008-02-20 21:12:30 UTC (rev 11213)
@@ -17,7 +17,7 @@
 public:
     int n_nodes() { return 3; }
     int n_celldim() { return 2; }
-    int n_dim() { return 3; }
+    int n_dim() { return 2; } // XXX: how to handle embedding in 3d space?
     Geometry geometry() { return TRIANGLE; }
 
 public:

Modified: cs/benchmark/cigma/trunk/src/VtkXmlReader.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/VtkXmlReader.cpp	2008-02-20 21:12:28 UTC (rev 11212)
+++ cs/benchmark/cigma/trunk/src/VtkXmlReader.cpp	2008-02-20 21:12:30 UTC (rev 11213)
@@ -126,19 +126,17 @@
     vtkPoints *points = grid->GetPoints();
     //points->PrintSelf(cout, 0);
 
-    int dims[2];
-    dims[0] = points->GetNumberOfPoints();
-    dims[1] = 3;
 
-
     // XXX: need to know if we're loading 2D cells, so we can
     // recalculate size & nsd....if 3D, we leave things alone
 
-    // XXX: for now, assume 2D grid of quadrangles
 
+    int dims[2];
+    dims[0] = points->GetNumberOfPoints();
+    //dims[1] = 3;
+    dims[1] = 2;    // XXX: for now, assume 2D grid of quadrangles
 
-    //int size = dims[0] * dims[1];
-    int size = dims[0] * 2;
+    int size = dims[0] * dims[1];
     double *coords = new double[size];
 
 



More information about the cig-commits mailing list