[cig-commits] r8182 - short/3D/PyLith/trunk/libsrc/feassemble

brad at geodynamics.org brad at geodynamics.org
Sat Oct 27 09:40:32 PDT 2007


Author: brad
Date: 2007-10-27 09:40:32 -0700 (Sat, 27 Oct 2007)
New Revision: 8182

Modified:
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc
Log:
Try replacing copying individual values with copy chunk.

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc	2007-10-27 16:18:56 UTC (rev 8181)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc	2007-10-27 16:40:32 UTC (rev 8182)
@@ -340,8 +340,12 @@
 #endif
   int size = _numQuadPts * _spaceDim;
   assert(size == _quadPtsPre->getFiberDimension(cell));
+#ifdef FASTER
+  memcpy(&_quadPts[0], &values[0], size*sizeof(double));
+#else
   for(int i=0; i < size; ++i)
     _quadPts[i] = values[i];
+#endif
 
 #ifdef FASTER
   values = mesh->restrict(_jacobianPre, _jTag, c);
@@ -350,8 +354,12 @@
 #endif
   size = _numQuadPts * _cellDim * _spaceDim;
   assert(size == _jacobianPre->getFiberDimension(cell));
+#ifdef FASTER
+  memcpy(&_jacobian[0], &values[0], size*sizeof(double));
+#else
   for(int i=0; i < size; ++i)
     _jacobian[i] = values[i];
+#endif
 
 #ifdef FASTER
   values = mesh->restrict(_jacobianDetPre, _jDTag, c);
@@ -360,8 +368,12 @@
 #endif
   size = _numQuadPts;
   assert(size == _jacobianDetPre->getFiberDimension(cell));
+#ifdef FASTER
+  memcpy(&_jacobianDet[0], &values[0], size*sizeof(double));
+#else
   for(int i=0; i < size; ++i)
     _jacobianDet[i] = values[i];
+#endif
 
 #ifdef FASTER
   values = mesh->restrict(_jacobianInvPre, _jITag, c);
@@ -370,8 +382,12 @@
 #endif
   size = _numQuadPts * _cellDim * _spaceDim;
   assert(size == _jacobianInvPre->getFiberDimension(cell));
+#ifdef FASTER
+  memcpy(&_jacobianInv[0], &values[0], size*sizeof(double));
+#else
   for(int i=0; i < size; ++i)
     _jacobianInv[i] = values[i];
+#endif
 
 #ifdef FASTER
   values = mesh->restrict(_basisDerivPre, _bTag, c);
@@ -380,8 +396,12 @@
 #endif
   size = _numQuadPts * _numBasis * _spaceDim;
   assert(size == _basisDerivPre->getFiberDimension(cell));
+#ifdef FASTER
+  memcpy(&_basisDeriv[0], &values[0], size*sizeof(double));
+#else
   for(int i=0; i < size; ++i)
     _basisDeriv[i] = values[i];
+#endif
 } // retrieveGeometry
 
 // End of file 



More information about the cig-commits mailing list