[cig-commits] r16476 - short/3D/PyLith/trunk/unittests/libtests/bc
brad at geodynamics.org
brad at geodynamics.org
Wed Mar 31 12:25:49 PDT 2010
Author: brad
Date: 2010-03-31 12:25:49 -0700 (Wed, 31 Mar 2010)
New Revision: 16476
Modified:
short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc
Log:
Updated unit tests to calculate velocity field.
Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc 2010-03-31 19:08:39 UTC (rev 16475)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc 2010-03-31 19:25:49 UTC (rev 16476)
@@ -408,6 +408,7 @@
fields->add("dispIncr(t->t+dt)", "displacement_increment");
fields->add("disp(t)", "displacement");
fields->add("disp(t-dt)", "displacement");
+ fields->add("velocity(t)", "velocity");
fields->solutionName("dispIncr(t->t+dt)");
topology::Field<topology::Mesh>& residual = fields->get("residual");
@@ -430,17 +431,30 @@
fields->get("disp(t)").section();
const ALE::Obj<RealSection>& dispTmdtSection =
fields->get("disp(t-dt)").section();
+ const ALE::Obj<RealSection>& velSection =
+ fields->get("velocity(t)").section();
CPPUNIT_ASSERT(!dispTIncrSection.isNull());
CPPUNIT_ASSERT(!dispTSection.isNull());
CPPUNIT_ASSERT(!dispTmdtSection.isNull());
+ CPPUNIT_ASSERT(!velSection.isNull());
const int offset = numMeshCells;
+ const int spaceDim = _data->spaceDim;
+ const double dt = _data->dt;
+ double_array velVertex(spaceDim);
for (int iVertex=0; iVertex < totalNumVertices; ++iVertex) {
dispTIncrSection->updatePoint(iVertex+offset,
- &_data->fieldTIncr[iVertex*_data->spaceDim]);
+ &_data->fieldTIncr[iVertex*spaceDim]);
dispTSection->updatePoint(iVertex+offset,
- &_data->fieldT[iVertex*_data->spaceDim]);
+ &_data->fieldT[iVertex*spaceDim]);
dispTmdtSection->updatePoint(iVertex+offset,
- &_data->fieldTmdt[iVertex*_data->spaceDim]);
+ &_data->fieldTmdt[iVertex*spaceDim]);
+
+ for (int iDim=0; iDim < spaceDim; ++iDim)
+ velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+ _data->fieldT[iVertex*spaceDim+iDim] -
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2*dt);
+
+ velSection->updatePoint(iVertex+offset, &velVertex[0]);
} // for
} catch (const ALE::Exception& err) {
throw std::runtime_error(err.msg());
More information about the CIG-COMMITS
mailing list