[cig-commits] r13246 - in cs/cigma/trunk: src tests/libcigma
luis at geodynamics.org
luis at geodynamics.org
Tue Nov 4 01:48:45 PST 2008
Author: luis
Date: 2008-11-04 01:48:43 -0800 (Tue, 04 Nov 2008)
New Revision: 13246
Modified:
cs/cigma/trunk/src/Residuals.cpp
cs/cigma/trunk/src/Residuals.h
cs/cigma/trunk/src/py_Residuals.cpp
cs/cigma/trunk/tests/libcigma/ResidualsTest.cpp
Log:
Add bindings for &Residuals::{L2,max} methods. More tests.
Modified: cs/cigma/trunk/src/Residuals.cpp
===================================================================
--- cs/cigma/trunk/src/Residuals.cpp 2008-11-04 09:10:59 UTC (rev 13245)
+++ cs/cigma/trunk/src/Residuals.cpp 2008-11-04 09:48:43 UTC (rev 13246)
@@ -84,7 +84,6 @@
double Residuals::L2()
{
- assert(total_volume > 0);
return sqrt(global_error); // XXX: generalizes to norm_pow(global_error)
}
Modified: cs/cigma/trunk/src/Residuals.h
===================================================================
--- cs/cigma/trunk/src/Residuals.h 2008-11-04 09:10:59 UTC (rev 13245)
+++ cs/cigma/trunk/src/Residuals.h 2008-11-04 09:48:43 UTC (rev 13246)
@@ -4,6 +4,7 @@
#include "MeshPart.h"
#include <boost/noncopyable.hpp>
#include <boost/shared_ptr.hpp>
+//#include <valarray>
namespace cigma
{
Modified: cs/cigma/trunk/src/py_Residuals.cpp
===================================================================
--- cs/cigma/trunk/src/py_Residuals.cpp 2008-11-04 09:10:59 UTC (rev 13245)
+++ cs/cigma/trunk/src/py_Residuals.cpp 2008-11-04 09:48:43 UTC (rev 13246)
@@ -3,12 +3,21 @@
using namespace cigma;
using namespace boost::python;
-pyResiduals::pyResiduals() {}
-pyResiduals::~pyResiduals() {}
+pyResiduals::pyResiduals()
+{
+}
+pyResiduals::~pyResiduals()
+{
+}
+
void export_Residuals()
{
+ typedef pyResiduals pr;
class_<pyResiduals, boost::noncopyable>("Residuals")
+ .def("L2", &pr::L2)
+ .def("max", &pr::max)
+ //.add_property("mesh", &pr::setMesh, &pr::getMesh)
;
}
Modified: cs/cigma/trunk/tests/libcigma/ResidualsTest.cpp
===================================================================
--- cs/cigma/trunk/tests/libcigma/ResidualsTest.cpp 2008-11-04 09:10:59 UTC (rev 13245)
+++ cs/cigma/trunk/tests/libcigma/ResidualsTest.cpp 2008-11-04 09:48:43 UTC (rev 13246)
@@ -1,6 +1,50 @@
+#include <cmath>
#include "ResidualsTest.h"
using namespace libcigma;
+#include "Residuals.h"
+#include "io_text_reader.h"
+#include "MeshPart.h"
+#include "nc_array.h"
+#include "eb_array.h"
+#include "fe_hex8.h"
+using namespace cigma;
+
+#include <boost/shared_ptr.hpp>
+using boost::shared_ptr;
+
+const double delta = 1e-8;
+
+
void ResidualsTest::test_something()
{
+ shared_ptr<FileReader> nc_reader, eb_reader;
+ shared_ptr<nc_array> nc(new nc_array);
+ shared_ptr<eb_array> eb(new eb_array);
+ shared_ptr<MeshPart> mesh(new MeshPart);
+
+ nc_reader = FileReader::New("tests/data/brick1/brick1_coords.dat", "r");
+ nc_reader->getCoordinates("", &(nc->coords), &(nc->nno), &(nc->nsd));
+
+ eb_reader = FileReader::New("tests/data/brick1/brick1_connect.dat", "r");
+ eb_reader->getConnectivity("", &(eb->connect), &(eb->nel), &(eb->ndofs));
+
+ shared_ptr<Cell> cell(new hex8);
+ mesh->setCell(cell);
+
+ mesh->setNodeCoordinates(nc);
+ mesh->setElementBlock(eb);
+ //mesh->setLocator(...);
+
+ shared_ptr<Residuals> residuals(new Residuals);
+ residuals->setMesh(mesh);
+ residuals->resetAccumulator();
+ for (int e = 0; e < eb->n_cells(); e++)
+ {
+ mesh->selectCell(e);
+ residuals->update(e, sqrt(2), mesh->cell->volume());
+ }
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(4.0, residuals->L2(), delta);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(sqrt(2), residuals->max(), delta);
}
+
More information about the CIG-COMMITS
mailing list