[cig-commits] r8184 - short/3D/PyLith/trunk/libsrc/materials
brad at geodynamics.org
brad at geodynamics.org
Sat Oct 27 10:14:49 PDT 2007
Author: brad
Date: 2007-10-27 10:14:48 -0700 (Sat, 27 Oct 2007)
New Revision: 8184
Modified:
short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc
Log:
Attempt at faster implementation of updating/getting parameters.
Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc 2007-10-27 16:53:36 UTC (rev 8183)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc 2007-10-27 17:14:48 UTC (rev 8184)
@@ -21,6 +21,8 @@
#include <assert.h> // USES assert()
+#define FASTER
+
// ----------------------------------------------------------------------
// Default constructor.
pylith::materials::ElasticMaterial::ElasticMaterial(const int* numParamValues,
@@ -149,9 +151,15 @@
assert(parameter->getFiberDimension(cell) == numQuadPts*numValues);
for (int iQuadPt=0; iQuadPt < numQuadPts; ++iQuadPt)
+#ifdef FASTER
+ memcpy(&_parameterCell[iQuadPt*numValues],
+ &_paramsCell[iQuadPt][iParam][0],
+ numValues*sizeof(double));
+#else
for (int iValue=0; iValue < numValues; ++iValue)
_parameterCell[iQuadPt*numValues+iValue] =
_paramsCell[iQuadPt][iParam][iValue];
+#endif
parameter->updatePoint(cell, &_parameterCell[0]);
} // for
} // updateState
@@ -180,9 +188,15 @@
const real_section_type::value_type* parameterCell =
parameter->restrictPoint(cell);
for (int iQuadPt=0; iQuadPt < numQuadPts; ++iQuadPt)
+#ifdef FASTER
+ memcpy(&_paramsCell[iQuadPt][iParam][0],
+ ¶meterCell[iQuadPt*numValues],
+ numValues*sizeof(double));
+#else
for (int iValue=0; iValue < numValues; ++iValue)
_paramsCell[iQuadPt][iParam][iValue] =
parameterCell[iQuadPt*numValues+iValue];
+#endif
} // for
} // _getParameters
More information about the cig-commits
mailing list