[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