[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