[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], 
+	     &parameterCell[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