[cig-commits] r8225 - short/3D/PyLith/trunk/libsrc/bc
brad at geodynamics.org
brad at geodynamics.org
Wed Nov 7 11:48:27 PST 2007
Author: brad
Date: 2007-11-07 11:48:27 -0800 (Wed, 07 Nov 2007)
New Revision: 8225
Modified:
short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc
Log:
Fixed a couple of memory bugs exposed by valgrind.
Modified: short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc 2007-11-07 19:21:17 UTC (rev 8224)
+++ short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc 2007-11-07 19:48:27 UTC (rev 8225)
@@ -160,21 +160,22 @@
const double_array& quadPtsRef = _quadrature->quadPtsRef();
dampingConstsGlobal = 0.0;
- for(int iQuad = 0, index=0; iQuad < numQuadPts; ++iQuad, index+=spaceDim) {
+ for(int iQuad = 0; iQuad < numQuadPts; ++iQuad) {
// Compute damping constants in normal/tangential coordinates
const int err = _db->query(&queryData[0], numValues,
- &quadPts[index], spaceDim, cs);
+ &quadPts[iQuad*spaceDim], spaceDim, cs);
if (err) {
std::ostringstream msg;
msg << "Could not find parameters for physical properties at \n"
<< "(";
for (int i=0; i < spaceDim; ++i)
- msg << " " << quadPts[index+spaceDim];
+ msg << " " << quadPts[iQuad*spaceDim+i];
msg << ") for absorbing boundary condition " << _label << "\n"
<< "using spatial database " << _db->label() << ".";
throw std::runtime_error(msg.str());
} // if
- const double constTangential = queryData[0]*queryData[2];
+ const double constTangential =
+ (3 == numValues) ? queryData[0]*queryData[2] : 0.0;
const double constNormal = queryData[0]*queryData[1];
const int numTangential = spaceDim-1;
for (int iDim=0; iDim < numTangential; ++iDim)
@@ -184,7 +185,7 @@
// Compute normal/tangential orientation
_boundaryMesh->restrict(coordinates, *c_iter,
&cellVertices[0], cellVertices.size());
- memcpy(&quadPtRef[0], &quadPtsRef[index], cellDim*sizeof(double));
+ memcpy(&quadPtRef[0], &quadPtsRef[iQuad*cellDim], cellDim*sizeof(double));
cellGeometry.jacobian(&jacobian, &jacobianDet, cellVertices, quadPtRef);
cellGeometry.orientation(&orientation, jacobian, jacobianDet,
upDir);
More information about the cig-commits
mailing list