[cig-commits] r7081 - in short/3D/PyLith/trunk: . libsrc/feassemble
modulesrc/feassemble pylith/feassemble/quadrature
unittests/libtests/feassemble unittests/libtests/feassemble/data
unittests/libtests/materials unittests/pytests/feassemble
brad at geodynamics.org
brad at geodynamics.org
Wed Jun 6 14:20:05 PDT 2007
Author: brad
Date: 2007-06-06 14:20:03 -0700 (Wed, 06 Jun 2007)
New Revision: 7081
Modified:
short/3D/PyLith/trunk/TODO
short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc
short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.hh
short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.icc
short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
short/3D/PyLith/trunk/pylith/feassemble/quadrature/Quadrature.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorApp.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DLinear.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DQuadratic.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DLinear.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DQuadratic.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DLinear.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DQuadratic.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DLinear.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DQuadratic.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXY.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXYZ.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXZ.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearYZ.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DQuadratic.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DLinear.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DQuadratic.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureApp.py
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/generate.sh
short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc
short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.hh
short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.icc
short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.py
short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe.src
Log:
Added coordinates of vertices in reference cell (dual basis) to C++ Quadrature object. Updated C++ and Python unit tests accordingly.
Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/TODO 2007-06-06 21:20:03 UTC (rev 7081)
@@ -19,14 +19,6 @@
(1) axial compression
(2) shear
-2. Add dualBasis to Quadrature.
- a. Python
- Quadrature()
- b. C++
- Quadrature
- c. C++ unit tests
- d. Python unit tests
-
3. Implement faults for kinematic source
a. Creation of cohesive cells
i. Add tests for interpolated meshes.
Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -40,6 +40,7 @@
// Copy constructor
pylith::feassemble::Quadrature::Quadrature(const Quadrature& q) :
_minJacobian(q._minJacobian),
+ _vertices(q._vertices),
_quadPtsRef(q._quadPtsRef),
_quadPts(q._quadPts),
_quadWts(q._quadWts),
@@ -59,7 +60,8 @@
// Set basis functions and their derivatives and coordinates and
// weights of the quadrature points.
void
-pylith::feassemble::Quadrature::initialize(const double* basis,
+pylith::feassemble::Quadrature::initialize(const double* vertices,
+ const double* basis,
const double* basisDeriv,
const double* quadPtsRef,
const double* quadWts,
@@ -68,7 +70,8 @@
const int numQuadPts,
const int spaceDim)
{ // initialize
- if (0 == basis ||
+ if (0 == vertices ||
+ 0 == basis ||
0 == basisDeriv ||
0 == quadPtsRef ||
0 == quadWts ||
@@ -81,8 +84,9 @@
<< "their derivatives, and coordinates and weights of quadrature\n"
<< "points must all be specified.\n"
<< "Values:\n"
- << " basis pointer (quad pts): " << basis << "\n"
- << " basis derivatites pointer (quad pts): " << basisDeriv << "\n"
+ << " vertices pointer: " << vertices << "\n"
+ << " basis pointer: " << basis << "\n"
+ << " basis derivatites pointer: " << basisDeriv << "\n"
<< " quadrature points pointer: " << quadPtsRef << "\n"
<< " quadrature weights pointer: " << quadWts << "\n"
<< " space dimension: " << spaceDim << "\n"
@@ -92,7 +96,12 @@
throw std::runtime_error(msg.str());
} // if
- int size = numBasis * numQuadPts;
+ int size = numBasis * cellDim;
+ _vertices.resize(size);
+ for (int i=0; i < size; ++i)
+ _vertices[i] = vertices[i];
+
+ size = numBasis * numQuadPts;
_basis.resize(size);
for (int i=0; i < size; ++i)
_basis[i] = basis[i];
Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -58,9 +58,17 @@
virtual
Quadrature* clone(void) const = 0;
- /** Set basis functions and their derivatives, and coordinates and
- * weights of the quadrature points.
+ /** Set vertices (dual basis), basis functions and their
+ * derivatives, and coordinates and weights of the quadrature
+ * points.
*
+ * @param vertices Array of coordinates of vertices (dual basis).
+ * v0x, v0y, v0z
+ * v1x, v1y, v1z
+ * ...
+ * size = numBasis * cellDim
+ * index = iBasis*cellDim + iDim
+ *
* @param basis Array of basis functions evaluated at quadrature pts
* N0Qp0, N1Qp0, ...
* N0Qp1, N1Qp1, ...
@@ -92,7 +100,8 @@
* @param numQuadPts Number of quadrature points
* @param spaceDim Number of dimensions in coordinates of cell vertices
*/
- void initialize(const double* basis,
+ void initialize(const double* vertices,
+ const double* basis,
const double* basisDeriv,
const double* quadPtsRef,
const double* quadWts,
@@ -113,6 +122,12 @@
*/
double minJacobian(void);
+ /** Get coordinates of vertices in reference cell (dual basis).
+ *
+ * @returns Array of coordinates of vertices in reference cell
+ */
+ const double_array& vertices(void) const;
+
/** Get coordinates of quadrature points in cell (NOT reference cell).
*
* @returns Array of coordinates of quadrature points in cell
@@ -216,6 +231,18 @@
double _minJacobian; ///< Minium allowable Jacobian determinant
+ /** Array of coordinates of vertices in reference cell (dual basis).
+ *
+ * Reference coordinates: (p,q,r)
+ *
+ * v0p, v0q, v0r
+ * v1p, v1q, v1r
+ *
+ * size = numBasis * cellDim
+ * index = iBasis*cellDim + iDim
+ */
+ double_array _vertices;
+
/** Array of coordinates of quadrature points in reference cell.
*
* Reference coordinates: (p,q,r)
Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.icc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.icc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -28,6 +28,13 @@
_minJacobian = min;
}
+// Get coordinates of vertices in reference cell (dual basis).
+inline
+const pylith::double_array&
+pylith::feassemble::Quadrature::vertices(void) const {
+ return _vertices;
+}
+
// Get coordinates of quadrature points in cell (NOT reference cell).
inline
const pylith::double_array&
Modified: short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/modulesrc/feassemble/feassemble.pyxe.src 2007-06-06 21:20:03 UTC (rev 7081)
@@ -105,6 +105,7 @@
def initialize(self,
+ vertices,
basis, basisDeriv,
quadPts, quadWts,
cellDim, numBasis, numQuadPts, spaceDim):
@@ -112,6 +113,7 @@
Set basis functions and their derivatives, and coordinates and
weights of quadrature points.
+ @param vertices Vertices in reference cell (dual basis).
@param basis Basis functions evaluated at the quadrature points
@param basisDeriv Basis function derivatives evaluated at quad pts
@param quadPts Coordinates of quadrature points in reference cell
@@ -122,9 +124,10 @@
@param spaceDim Number of dimensions associated with cell vertices
"""
# create shim for method 'initialize'
- #embed{ void Quadrature_initialize(void* objVptr, double* basis, double* basisDeriv, double* quadPts, double* quadWts, int cellDim, int numBasis, int numQuadPts, int spaceDim)
+ #embed{ void Quadrature_initialize(void* objVptr, double* vertices, double* basis, double* basisDeriv, double* quadPts, double* quadWts, int cellDim, int numBasis, int numQuadPts, int spaceDim)
try {
((pylith::feassemble::Quadrature*) objVptr)->initialize(
+ vertices,
basis, basisDeriv,
quadPts, quadWts,
cellDim, numBasis,
@@ -142,6 +145,17 @@
numVertices = numBasis
+ # vertices
+ vertices = spatialdata.utils.simplearray.objAsSimpleArray(vertices)
+ if not vertices.isCompatible(nd=2, simpletype="double",
+ contiguous=True, notswapped=True):
+ raise TypeError, \
+ "Argument 'vertices' must be a contiguous, 2-D array " \
+ "of type double."
+ if numBasis != vertices.shape[0] or cellDim != vertices.shape[1]:
+ raise TypeError, \
+ "Shape of argument 'vertices' must be (numBasis, cellDim)."
+
# basis
basis = spatialdata.utils.simplearray.objAsSimpleArray(basis)
if not basis.isCompatible(nd=2, simpletype="double",
@@ -189,16 +203,19 @@
raise TypeError, \
"Shape of argument 'quadWts' must be (numQuadPts)."
+ cdef double* verticesCpp
cdef double* basisCpp
cdef double* basisDerivCpp
cdef double* quadPtsCpp
cdef double* quadWtsCpp
+ verticesCpp = <double*> PyCObject_AsVoidPtr(vertices.data)
basisCpp = <double*> PyCObject_AsVoidPtr(basis.data)
basisDerivCpp = <double*> PyCObject_AsVoidPtr(basisDeriv.data)
quadPtsCpp = <double*> PyCObject_AsVoidPtr(quadPts.data)
quadWtsCpp = <double*> PyCObject_AsVoidPtr(quadWts.data)
Quadrature_initialize(self.thisptr,
+ verticesCpp,
basisCpp, basisDerivCpp,
quadPtsCpp, quadWtsCpp,
cellDim, numBasis,
Modified: short/3D/PyLith/trunk/pylith/feassemble/quadrature/Quadrature.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/quadrature/Quadrature.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/pylith/feassemble/quadrature/Quadrature.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -87,7 +87,8 @@
self._info.log("Initializing C++ quadrature.")
- self.cppHandle.initialize(c.basis, c.basisDeriv,
+ self.cppHandle.initialize(c.vertices,
+ c.basis, c.basisDeriv,
c.quadPts, c.quadWts,
c.cellDim, c.numCorners, c.numQuadPts,
self.spaceDim)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -256,7 +256,8 @@
(*mesh)->getFactory()->clear(); // clear numberings
// Setup quadrature
- _quadrature->initialize(_data->basis, _data->basisDeriv, _data->quadPts,
+ _quadrature->initialize(_data->verticesRef,
+ _data->basis, _data->basisDeriv, _data->quadPts,
_data->quadWts, _data->cellDim, _data->numBasis,
_data->numQuadPts, _data->spaceDim);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityImplicit.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -257,7 +257,8 @@
(*mesh)->getFactory()->clear(); // clear numberings
// Setup quadrature
- _quadrature->initialize(_data->basis, _data->basisDeriv, _data->quadPts,
+ _quadrature->initialize(_data->verticesRef,
+ _data->basis, _data->basisDeriv, _data->quadPts,
_data->quadWts, _data->cellDim, _data->numBasis,
_data->numQuadPts, _data->spaceDim);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,26 +63,17 @@
void
pylith::feassemble::TestIntegrator::testInitCellVector(void)
{ // testInitCellVector
- ElasticityExplicit integrator;
-
- const int cellDim = 1;
- const int numBasis = 2;
- const int numQuadPts = 1;
- const int spaceDim = 1;
- const double basis[] = { 0.5, 0.5 };
- const double basisDeriv[] = { -0.5, 0.5 };
- const double quadPtsRef[] = { 0.0 };
- const double quadWts[] = { 2.0 };
- const double minJacobian = 1.0;
-
Quadrature1D quadrature;
- quadrature.initialize(basis, basisDeriv, quadPtsRef, quadWts,
- cellDim, numBasis, numQuadPts, spaceDim);
+ _initQuadrature(&quadrature);
+
+ ElasticityExplicit integrator;
integrator.quadrature(&quadrature);
+
integrator._initCellVector();
CPPUNIT_ASSERT(0 != integrator._cellVector);
- const int size = spaceDim * numBasis;
+ const int size =
+ quadrature.spaceDim() * quadrature.numBasis();
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_EQUAL(0.0, integrator._cellVector[i]);
} // testInitCellVector
@@ -92,26 +83,17 @@
void
pylith::feassemble::TestIntegrator::testResetCellVector(void)
{ // testResetCellVector
- ElasticityExplicit integrator;
-
- const int cellDim = 1;
- const int numBasis = 2;
- const int numQuadPts = 1;
- const int spaceDim = 1;
- const double basis[] = { 0.5, 0.5 };
- const double basisDeriv[] = { -0.5, 0.5 };
- const double quadPtsRef[] = { 0.0 };
- const double quadWts[] = { 2.0 };
- const double minJacobian = 1.0;
-
Quadrature1D quadrature;
- quadrature.initialize(basis, basisDeriv, quadPtsRef, quadWts,
- cellDim, numBasis, numQuadPts, spaceDim);
+ _initQuadrature(&quadrature);
+
+ ElasticityExplicit integrator;
integrator.quadrature(&quadrature);
+
integrator._initCellVector();
CPPUNIT_ASSERT(0 != integrator._cellVector);
- const int size = spaceDim * numBasis;
+ const int size =
+ quadrature.spaceDim() * quadrature.numBasis();
for (int i=0; i < size; ++i)
integrator._cellVector[i] = 1.4+2*i;
integrator._resetCellVector();
@@ -124,26 +106,18 @@
void
pylith::feassemble::TestIntegrator::testInitCellMatrix(void)
{ // testInitCellMatrix
- ElasticityExplicit integrator;
-
- const int cellDim = 1;
- const int numBasis = 2;
- const int numQuadPts = 1;
- const int spaceDim = 1;
- const double basis[] = { 0.5, 0.5 };
- const double basisDeriv[] = { -0.5, 0.5 };
- const double quadPtsRef[] = { 0.0 };
- const double quadWts[] = { 2.0 };
- const double minJacobian = 1.0;
-
Quadrature1D quadrature;
- quadrature.initialize(basis, basisDeriv, quadPtsRef, quadWts,
- cellDim, numBasis, numQuadPts, spaceDim);
+ _initQuadrature(&quadrature);
+
+ ElasticityExplicit integrator;
integrator.quadrature(&quadrature);
+
integrator._initCellMatrix();
CPPUNIT_ASSERT(0 != integrator._cellMatrix);
- const int size = spaceDim * numBasis * spaceDim * numBasis;
+ const int size =
+ quadrature.spaceDim() * quadrature.numBasis() *
+ quadrature.spaceDim() * quadrature.numBasis();
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_EQUAL(0.0, integrator._cellMatrix[i]);
} // testInitCellMatrix
@@ -153,26 +127,18 @@
void
pylith::feassemble::TestIntegrator::testResetCellMatrix(void)
{ // testResetCellMatrix
- ElasticityExplicit integrator;
-
- const int cellDim = 1;
- const int numBasis = 2;
- const int numQuadPts = 1;
- const int spaceDim = 1;
- const double basis[] = { 0.5, 0.5 };
- const double basisDeriv[] = { -0.5, 0.5 };
- const double quadPtsRef[] = { 0.0 };
- const double quadWts[] = { 2.0 };
- const double minJacobian = 1.0;
-
Quadrature1D quadrature;
- quadrature.initialize(basis, basisDeriv, quadPtsRef, quadWts,
- cellDim, numBasis, numQuadPts, spaceDim);
+ _initQuadrature(&quadrature);
+
+ ElasticityExplicit integrator;
integrator.quadrature(&quadrature);
+
integrator._initCellMatrix();
CPPUNIT_ASSERT(0 != integrator._cellMatrix);
- const int size = spaceDim * numBasis * spaceDim * numBasis;
+ const int size =
+ quadrature.spaceDim() * quadrature.numBasis() *
+ quadrature.spaceDim() * quadrature.numBasis();
for (int i=0; i < size; ++i)
integrator._cellMatrix[i] = 1.23 + 1.2*i;
integrator._resetCellMatrix();
@@ -180,220 +146,27 @@
CPPUNIT_ASSERT_EQUAL(0.0, integrator._cellMatrix[i]);
} // testResetCellMatrix
-
-#if 0
// ----------------------------------------------------------------------
-namespace pylith {
- namespace feassemble {
- class _TestIntegrator;
- } // feassemble
-} // pylith
-
-/// Helper class for TestIntegrator
-class pylith::feassemble::_TestIntegrator {
-
-public :
- /** Setup mesh.
- *
- * @param data Integrator data
- */
- static
- ALE::Obj<ALE::Mesh>
- _setupMesh(const IntegratorData& data);
-}; // _TestIntegrator
-
-
-// ----------------------------------------------------------------------
-// Test integrateAction()
+// Set quadrature information.
void
-pylith::feassemble::TestIntegrator::_testIntegrateAction(Integrator* integrator,
- const IntegratorData& data) const
-{ // _testIntegrateAction
- CPPUNIT_ASSERT(false);
+pylith::feassemble::TestIntegrator::_initQuadrature(Quadrature1D* quadrature)
+{ // _initQuadrature
+ CPPUNIT_ASSERT(0 != quadrature);
- ALE::Obj<Mesh> mesh = _TestIntegrator::_setupMesh(data);
+ const int cellDim = 1;
+ const int numBasis = 2;
+ const int numQuadPts = 1;
+ const int spaceDim = 1;
+ const double vertices[] = { -1.0, 1.0 };
+ const double basis[] = { 0.5, 0.5 };
+ const double basisDeriv[] = { -0.5, 0.5 };
+ const double quadPtsRef[] = { 0.0 };
+ const double quadWts[] = { 2.0 };
+ const double minJacobian = 1.0;
- // Fiber dimension (number of values in field per vertex) for fields
- const int fiberDim = data.fiberDim;
+ quadrature->initialize(vertices, basis, basisDeriv, quadPtsRef, quadWts,
+ cellDim, numBasis, numQuadPts, spaceDim);
+} // _initQuadrature
- // Setup input field for action
- const ALE::Obj<real_section_type>& fieldIn =
- mesh->getRealSection("fieldIn");
- fieldIn->setName("fieldIn");
- fieldIn->setFiberDimension(mesh->depthStratum(0), fiberDim);
- mesh->allocate(fieldIn);
- int iVertex = 0;
- const ALE::Obj<Mesh::label_sequence>& vertices = mesh->depthStratum(0);
- const Mesh::label_sequence::iterator verticesEnd = vertices->end();
- for (Mesh::label_sequence::iterator vIter=vertices->begin();
- vIter != verticesEnd;
- ++vIter, ++iVertex)
- fieldIn->updatePoint(*vIter, &data.fieldIn[iVertex*fiberDim]);
- // Setup field for action result
- const ALE::Obj<real_section_type>& fieldOut =
- mesh->getRealSection("fieldOut");
- fieldOut->setName("fieldOut");
- fieldOut->setFiberDimension(mesh->depthStratum(0), fiberDim);
- mesh->allocate(fieldOut);
-
- // Integrate action
- const ALE::Obj<real_section_type>& coordinates =
- mesh->getRealSection("coordinates");
- integrator->integrateAction(fieldOut, fieldIn, coordinates);
- //fieldOut->view("field out");
-
- // Check values in output field
- iVertex = 0;
- const double tolerance = 1.0e-06;
- for (Mesh::label_sequence::iterator vIter=vertices->begin();
- vIter != verticesEnd;
- ++vIter, ++iVertex) {
- const real_section_type::value_type* vals =
- fieldOut->restrictPoint(*vIter);
- const double* valsE = &data.valsAction[iVertex*fiberDim];
- const int dim = fieldOut->getFiberDimension(*vIter);
- CPPUNIT_ASSERT_EQUAL(fiberDim, dim);
- for (int iDim=0; iDim < fiberDim; ++iDim)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[iDim]/valsE[iDim], tolerance);
- } // for
-} // _testIntegrateAction
-
-// ----------------------------------------------------------------------
-// Test integrate()
-void
-pylith::feassemble::TestIntegrator::_testIntegrate(Integrator* integrator,
- const IntegratorData& data) const
-{ // _testIntegrate
- CPPUNIT_ASSERT(false);
-
- journal::debug_t debug("TestIntegrator");
-
- try {
- ALE::Obj<Mesh> mesh = _TestIntegrator::_setupMesh(data);
-
- // Fiber dimension (number of values in field per vertex) for fields
- const int fiberDim = data.fiberDim;
-
- // Setup input field for action
- const ALE::Obj<real_section_type>& fieldIn =
- mesh->getRealSection("fieldIn");
- fieldIn->setName("fieldIn");
- fieldIn->setFiberDimension(mesh->depthStratum(0), fiberDim);
- mesh->allocate(fieldIn);
- int iVertex = 0;
- const ALE::Obj<Mesh::label_sequence>& vertices = mesh->depthStratum(0);
- const Mesh::label_sequence::iterator verticesEnd = vertices->end();
- for (topology_type::label_sequence::iterator vIter=vertices->begin();
- vIter != verticesEnd;
- ++vIter, ++iVertex)
- fieldIn->updatePoint(*vIter, &data.fieldIn[iVertex*fiberDim]);
-
- // Integrate
- PetscMat mat;
- const ALE::Obj<real_section_type>& coordinates =
- mesh->getRealSection("coordinates");
- integrator->integrate(&mat, fieldIn, coordinates);
-
- MatAssemblyBegin(mat, MAT_FINAL_ASSEMBLY);
- MatAssemblyEnd(mat, MAT_FINAL_ASSEMBLY);
-
- // Check matrix size
- int nRows = 0;
- int nCols = 0;
- MatGetSize(mat, &nRows, &nCols);
- debug
- << journal::at(__HERE__)
- << "# rows: " << nRows
- << ", # cols: " << nCols
- << journal::endl;
- const int nRowsE = data.numVertices * data.fiberDim;
- const int nColsE = data.numVertices * data.fiberDim;
- CPPUNIT_ASSERT_EQUAL(nRowsE, nRows);
- CPPUNIT_ASSERT_EQUAL(nColsE, nCols);
-
- // Create dense matrix
- PetscMat matDense;
- PetscMat matSparseSeq;
- MatConvert(mat, MATSEQAIJ, MAT_INITIAL_MATRIX, &matSparseSeq);
- MatConvert(matSparseSeq, MATSEQDENSE, MAT_INITIAL_MATRIX, &matDense);
- MatDestroy(matSparseSeq);
-
- // Get values associated with dense matrix
- double* vals = 0;
- int* rows = 0;
- int* cols = 0;
- const int size = nRows*nCols;
- if (size > 0) {
- vals = new double[size];
- rows = new int[nRows];
- for (int iRow=0; iRow < nRows; ++iRow)
- rows[iRow] = iRow;
- cols = new int[nCols];
- for (int iCol=0; iCol < nCols; ++iCol)
- cols[iCol] = iCol;
- } // if
- MatGetValues(matDense, nRows, rows, nCols, cols, vals);
- delete[] rows; rows = 0;
- delete[] cols; cols = 0;
-
- // Check values from dense matrix
- const double tolerance = 1.0e-06;
- for (int iRow=0; iRow < nRows; ++iRow)
- for (int iCol=0; iCol < nCols; ++iCol) {
- const int index = iRow * nCols + iCol;
- debug
- << journal::at(__HERE__)
- << "index: " << index
- << ", valsE: " << data.valsMatrix[index]
- << ", vals: " << vals[index]
- << journal::endl;
- if (fabs(data.valsMatrix[index]) > tolerance)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[index]/data.valsMatrix[index],
- tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(data.valsMatrix[index], vals[index],
- tolerance);
- } // for
- delete[] vals; vals = 0;
- MatDestroy(matDense);
- } catch (std::exception& err) {
- std::cerr << err.what() << std::endl;
- throw;
- } catch (ALE::Exception& err) {
- std::cerr << err << std::endl;
- throw;
- } // try/catch
-} // _testIntegrate
-
-// ----------------------------------------------------------------------
-// Setup mesh.
-ALE::Obj<ALE::Mesh>
-pylith::feassemble::_TestIntegrator::_setupMesh(const IntegratorData& data)
-{ // _setupMesh
- const int cellDim = data.cellDim;
- const int numCorners = data.numCorners;
- const int spaceDim = data.spaceDim;
- const int numVertices = data.numVertices;
- const int numCells = data.numCells;
- const double* vertCoords = data.vertices;
- const int* cells = data.cells;
- CPPUNIT_ASSERT(0 != vertCoords);
- CPPUNIT_ASSERT(0 != cells);
-
- ALE::Obj<Mesh> mesh = new Mesh(PETSC_COMM_WORLD, cellDim);
- ALE::Obj<sieve_type> sieve = new sieve_type(mesh->comm());
-
- const bool interpolate = false;
- ALE::SieveBuilder<Mesh>::buildTopology(sieve, cellDim, numCells,
- const_cast<int*>(cells), numVertices, interpolate, numCorners);
- mesh->setSieve(sieve);
- mesh->stratify();
- ALE::SieveBuilder<Mesh>::buildCoordinates(mesh, spaceDim, vertCoords);
-
- return mesh;
-} // _setupMesh
-#endif
-
-
// End of file
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -26,9 +26,9 @@
/// Namespace for pylith package
namespace pylith {
namespace feassemble {
- class Integrator;
class TestIntegrator;
- class IntegratorData;
+
+ class Quadrature1D; // USES Quadrature1D
} // feassemble
} // pylith
@@ -69,6 +69,15 @@
/// Test _resetCellMatrix()
void testResetCellMatrix(void);
+ // PRIVATE METHODS ////////////////////////////////////////////////////
+private :
+
+ /** Initialize 1-D quadrature object.
+ *
+ * @param quadrature Quadrature object
+ */
+ void _initQuadrature(Quadrature1D* quadrature);
+
}; // class TestIntegrator
#endif // pylith_feassemble_testintegrator_hh
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -31,6 +31,7 @@
const int numBasisE = 2;
const int numQuadPtsE = 1;
const int spaceDimE = 1;
+ const double verticesE[] = { 0.12, 0.42 };
const double basisE[] = { 0.2, 0.4 };
const double basisDerivE[] = { 0.8, 1.6 };
const double quadPtsRefE[] = { 3.2 };
@@ -49,6 +50,10 @@
qOrig._spaceDim = spaceDimE;
size_t size = 2;
+ qOrig._vertices.resize(size);
+ memcpy(&qOrig._vertices[0], verticesE, size*sizeof(double));
+
+ size = 2;
qOrig._basis.resize(size);
memcpy(&qOrig._basis[0], basisE, size*sizeof(double));
@@ -92,6 +97,12 @@
CPPUNIT_ASSERT_EQUAL(numQuadPtsE, qCopy->numQuadPts());
CPPUNIT_ASSERT_EQUAL(spaceDimE, qCopy->spaceDim());
+ const double_array& vertices = qCopy->vertices();
+ size = numBasisE * cellDimE;
+ CPPUNIT_ASSERT_EQUAL(size, vertices.size());
+ for (int i=0; i < size; ++i)
+ CPPUNIT_ASSERT_EQUAL(verticesE[i], vertices[i]);
+
const double_array& basis = qCopy->basis();
size = numBasisE * numQuadPtsE;
CPPUNIT_ASSERT_EQUAL(size, basis.size());
@@ -164,6 +175,7 @@
const int numBasis = 2;
const int numQuadPts = 1;
const int spaceDim = 1;
+ const double vertices[] = { -1.0, 1.0 };
const double basis[] = { 0.5, 0.5 };
const double basisDeriv[] = { -0.5, 0.5 };
const double quadPtsRef[] = { 0.0 };
@@ -171,7 +183,7 @@
const double minJacobian = 1.0;
Quadrature1D q;
- q.initialize(basis, basisDeriv, quadPtsRef, quadWts,
+ q.initialize(vertices, basis, basisDeriv, quadPtsRef, quadWts,
cellDim, numBasis, numQuadPts, spaceDim);
CPPUNIT_ASSERT_EQUAL(cellDim, q._cellDim);
@@ -179,8 +191,12 @@
CPPUNIT_ASSERT_EQUAL(numQuadPts, q._numQuadPts);
CPPUNIT_ASSERT_EQUAL(spaceDim, q._spaceDim);
- size_t size = numBasis * numQuadPts;
+ size_t size = numBasis * cellDim;
for (int i=0; i < size; ++i)
+ CPPUNIT_ASSERT_EQUAL(vertices[i], q._vertices[i]);
+
+ size = numBasis * numQuadPts;
+ for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_EQUAL(basis[i], q._basis[i]);
size = numBasis * numQuadPts * spaceDim;
@@ -219,6 +235,7 @@
const int numBasis = data.numBasis;
const int numQuadPts = data.numQuadPts;
const int spaceDim = data.spaceDim;
+ const double* verticesRef = data.verticesRef;
const double* basis = data.basis;
const double* basisDeriv = data.basisDeriv;
const double* quadPtsRef = data.quadPtsRef;
@@ -236,7 +253,7 @@
const double minJacobian = 1.0e-06;
pQuad->minJacobian(minJacobian);
- pQuad->initialize(basis, basisDeriv, quadPtsRef, quadWts,
+ pQuad->initialize(verticesRef, basis, basisDeriv, quadPtsRef, quadWts,
cellDim, numBasis, numQuadPts, spaceDim);
// Create mesh with test cell
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -46,6 +46,11 @@
0,1,
};
+const double pylith::feassemble::ElasticityExplicitData1DLinear::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityExplicitData1DLinear::_quadPts[] = {
0.00000000e+00,
};
@@ -106,6 +111,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -47,6 +47,12 @@
0,1,2,
};
+const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+ 0.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityExplicitData1DQuadratic::_quadPts[] = {
-5.77350269e-01,
5.77350269e-01,
@@ -125,6 +131,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -47,6 +47,12 @@
0,1,2,
};
+const double pylith::feassemble::ElasticityExplicitData2DLinear::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityExplicitData2DLinear::_quadPts[] = {
3.33333333e-01, 3.33333333e-01,
};
@@ -66,7 +72,7 @@
};
const double pylith::feassemble::ElasticityExplicitData2DLinear::_fieldTpdt[] = {
- 1.90000000e+00, -9.00000000e-01,
+ 1.30000000e+00, -9.00000000e-01,
1.40000000e+00, 1.50000000e+00,
5.00000000e-01, -9.00000000e-01,
};
@@ -84,9 +90,9 @@
};
const double pylith::feassemble::ElasticityExplicitData2DLinear::_valsResidual[] = {
- -4.20756111e+10, -2.88779028e+10,
- 3.95993889e+10, 2.47209722e+09,
- 2.47438889e+09, 2.63970972e+10,
+ -4.20746944e+10, -2.88779028e+10,
+ 3.96003056e+10, 2.47209722e+09,
+ 2.47530556e+09, 2.63970972e+10,
};
const double pylith::feassemble::ElasticityExplicitData2DLinear::_valsJacobian[] = {
@@ -125,6 +131,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -50,6 +50,15 @@
0,1,2,3,4,5,
};
+const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+ 0.00000000e+00, 0.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityExplicitData2DQuadratic::_quadPts[] = {
6.66666667e-01, 1.66666667e-01,
1.66666667e-01, 6.66666667e-01,
@@ -219,6 +228,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -48,6 +48,13 @@
0,1,2,3,
};
+const double pylith::feassemble::ElasticityExplicitData3DLinear::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityExplicitData3DLinear::_quadPts[] = {
2.50000000e-01, 2.50000000e-01, 2.50000000e-01,
};
@@ -161,6 +168,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -54,6 +54,19 @@
0,1,2,3,4,5,6,7,8,9,
};
+const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 1.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00, -1.00000000e+00,
+ 0.00000000e+00, 0.00000000e+00, -1.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 0.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00, 0.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00, 0.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityExplicitData3DQuadratic::_quadPts[] = {
8.33333333e-02, 8.33333333e-02, 8.33333333e-02,
7.50000000e-01, 8.33333333e-02, 8.33333333e-02,
@@ -494,6 +507,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -46,6 +46,11 @@
0,1,
};
+const double pylith::feassemble::ElasticityImplicitData1DLinear::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityImplicitData1DLinear::_quadPts[] = {
0.00000000e+00,
};
@@ -106,6 +111,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -47,6 +47,12 @@
0,1,2,
};
+const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+ 0.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityImplicitData1DQuadratic::_quadPts[] = {
-5.77350269e-01,
5.77350269e-01,
@@ -125,6 +131,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData1DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -47,6 +47,12 @@
0,1,2,
};
+const double pylith::feassemble::ElasticityImplicitData2DLinear::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityImplicitData2DLinear::_quadPts[] = {
3.33333333e-01, 3.33333333e-01,
};
@@ -125,6 +131,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -50,6 +50,15 @@
0,1,2,3,4,5,
};
+const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+ 0.00000000e+00, 0.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityImplicitData2DQuadratic::_quadPts[] = {
6.66666667e-01, 1.66666667e-01,
1.66666667e-01, 6.66666667e-01,
@@ -219,6 +228,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData2DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -48,6 +48,13 @@
0,1,2,3,
};
+const double pylith::feassemble::ElasticityImplicitData3DLinear::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityImplicitData3DLinear::_quadPts[] = {
2.50000000e-01, 2.50000000e-01, 2.50000000e-01,
};
@@ -161,6 +168,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -54,6 +54,19 @@
0,1,2,3,4,5,6,7,8,9,
};
+const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 1.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00, -1.00000000e+00,
+ 0.00000000e+00, 0.00000000e+00, -1.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 0.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00, 0.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00, 0.00000000e+00,
+};
+
const double pylith::feassemble::ElasticityImplicitData3DQuadratic::_quadPts[] = {
8.33333333e-02, 8.33333333e-02, 8.33333333e-02,
7.50000000e-01, 8.33333333e-02, 8.33333333e-02,
@@ -494,6 +507,7 @@
dt = _dt;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPts = const_cast<double*>(_quadPts);
quadWts = const_cast<double*>(_quadWts);
basis = const_cast<double*>(_basis);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityImplicitData3DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -63,6 +63,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPts[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorApp.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorApp.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorApp.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -78,6 +78,7 @@
self.numCells = None
self.vertices = None
self.cells = None
+ self.verticesRef = None
# This quadrature information is set by quadrature.calculateBasis()
self.numBasis = None
@@ -143,6 +144,7 @@
self.numCells = self.mesh.numCells
self.vertices = self.mesh.vertices
self.cells = self.mesh.cells
+ self.verticesRef = self.mesh.verticesRef
# Quadrature information
self.numBasis = self.quadrature.numBasis
@@ -199,6 +201,8 @@
format="%16.8e", ncols=self.spaceDim)
self.data.addArray(vtype="int", name="_cells", values=self.cells,
format="%d", ncols=self.numBasis)
+ self.data.addArray(vtype="double", name="_verticesRef", values=self.verticesRef,
+ format="%16.8e", ncols=self.cellDim)
# Quadrature information
self.data.addScalar(vtype="int", name="_numBasis", value=self.numBasis,
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -21,6 +21,7 @@
numCells(0),
vertices(0),
cells(0),
+ verticesRef(0),
numBasis(0),
numQuadPts(0),
quadPts(0),
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -42,6 +42,7 @@
int numCells; ///< Number of cells
double* vertices; ///< Coordinates of vertices
int* cells; ///< Indices of vertices in cells
+ double* verticesRef; ///< Coordinates of vertices in ref cell (dual basis)
//@}
/// @name Quadrature information
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DLinear.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DLinear.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DLinear.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -43,6 +43,7 @@
self.numCells = 1
self.vertices = numpy.array( [[-0.25], [2.0]], dtype=numpy.float64)
self.cells = numpy.array( [[0, 1]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0], [1.0]], dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DQuadratic.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1DQuadratic.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -44,6 +44,8 @@
self.vertices = numpy.array( [[-0.25], [0.875], [2.0]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
+ self.verticesRef = numpy.array([[-1.0], [1.0], [0.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DLinear.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DLinear.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DLinear.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -44,6 +44,7 @@
self.vertices = numpy.array( [[-0.2, -0.5], [0.7, 0.3]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1]], dtype=numpy.int32)
+ self.verticesRef = numpy.array([ [-1.0], [1.0] ], dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DQuadratic.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din2DQuadratic.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -44,6 +44,7 @@
self.vertices = numpy.array( [[-0.2, -0.5], [0.3, -0.2], [0.7, 0.3]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
+ self.verticesRef = numpy.array([[-1.0], [1.0], [0.0]], dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DLinear.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DLinear.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DLinear.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -45,6 +45,7 @@
[-0.5, 2.0, 3.0]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0], [1.0]], dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DQuadratic.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh1Din3DQuadratic.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -46,6 +46,7 @@
[-0.5, 2.0, 3.0]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
+ self.verticesRef = numpy.array([[-1.0], [1.0], [0.0]], dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DLinear.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DLinear.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DLinear.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -45,6 +45,10 @@
[0.3, 0.5],
[-1.0, -0.2]], dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0],
+ [+1.0, -1.0],
+ [-1.0, +1.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DQuadratic.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2DQuadratic.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -49,6 +49,13 @@
[-1.25, -0.25]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2, 3, 4, 5]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0],
+ [+1.0, -1.0],
+ [-1.0, +1.0],
+ [ 0.0, 0.0],
+ [-1.0, 0.0],
+ [ 0.0, -1.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXY.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXY.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXY.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -46,6 +46,10 @@
[ 0.0, 0.0, 1.0]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0],
+ [+1.0, -1.0],
+ [-1.0, +1.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXYZ.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXYZ.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXYZ.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -46,6 +46,10 @@
[ 0.0, 0.0, 1.0]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0],
+ [+1.0, -1.0],
+ [-1.0, +1.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXZ.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXZ.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearXZ.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -46,6 +46,10 @@
[ 0.0, 0.0, 1.0]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0],
+ [+1.0, -1.0],
+ [-1.0, +1.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearYZ.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearYZ.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DLinearYZ.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -46,6 +46,10 @@
[ 0.0, 0.0, 1.0]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0],
+ [+1.0, -1.0],
+ [-1.0, +1.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DQuadratic.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh2Din3DQuadratic.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -49,6 +49,13 @@
[ 0.8, -0.3, 0.7]],
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2, 3, 4, 5]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0],
+ [+1.0, -1.0],
+ [-1.0, +1.0],
+ [ 0.0, 0.0],
+ [-1.0, 0.0],
+ [ 0.0, -1.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DLinear.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DLinear.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DLinear.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -46,6 +46,11 @@
[ 1.0, -0.1, -0.3],
[-0.2, 0.5, 2.0]], dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2, 3]], dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0, -1.0],
+ [+1.0, -1.0, -1.0],
+ [-1.0, +1.0, -1.0],
+ [-1.0, -1.0, +1.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DQuadratic.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DQuadratic.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/Mesh3DQuadratic.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -54,6 +54,17 @@
dtype=numpy.float64)
self.cells = numpy.array( [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]],
dtype=numpy.int32)
+ self.verticesRef = numpy.array( [[-1.0, -1.0, -1.0],
+ [+1.0, -1.0, -1.0],
+ [-1.0, +1.0, -1.0],
+ [-1.0, -1.0, +1.0],
+ [-1.0, 0.0, -1.0],
+ [ 0.0, 0.0, -1.0],
+ [ 0.0, -1.0, -1.0],
+ [-1.0, -1.0, 0.0],
+ [ 0.0, -1.0, 0.0],
+ [-1.0, 0.0, 0.0]],
+ dtype=numpy.float64)
return
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureApp.py
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureApp.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureApp.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -74,6 +74,7 @@
# Reference cell information
self.numBasis = None
self.numQuadPts = None
+ self.verticesRef = None
self.quadPtsRef = None
self.quadWts = None
self.basis = None
@@ -129,6 +130,7 @@
self.numCells = self.mesh.numCells
self.vertices = self.mesh.vertices
self.cells = self.mesh.cells
+ self.verticesRef = self.mesh.verticesRef
# Quadrature information
self.numBasis = self.quadrature.numBasis
@@ -160,6 +162,9 @@
self.data.addArray(vtype="int", name="_cells", values=self.cells,
format="%8d", ncols=self.numVertices)
+ self.data.addArray(vtype="double", name="_verticesRef",
+ values=self.verticesRef,
+ format="%16.8e", ncols=self.cellDim)
self.data.addArray(vtype="double", name="_quadPtsRef",
values=self.quadPtsRef,
format="%16.8e", ncols=self.cellDim)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -23,6 +23,7 @@
numQuadPts(0),
vertices(0),
cells(0),
+ verticesRef(0),
quadPtsRef(0),
quadWts(0),
quadPts(0),
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -44,6 +44,7 @@
double* vertices; ///< Pointer to coordinates of vertices
int* cells; ///< Pointer to indices of vertices in cells
+ double* verticesRef; ///< Coordinates of vertices in ref cell
double* quadPtsRef; ///< Coordinates of quad pts in ref cell
double* quadWts; ///< Weights of quadrature points
double* quadPts; ///< Coordinates of quad pts in cell
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -36,6 +36,11 @@
0, 1,
};
+const double pylith::feassemble::QuadratureData1DLinear::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData1DLinear::_quadPtsRef[] = {
0.00000000e+00,
};
@@ -80,6 +85,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -37,6 +37,12 @@
0, 1, 2,
};
+const double pylith::feassemble::QuadratureData1DQuadratic::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+ 0.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData1DQuadratic::_quadPtsRef[] = {
-5.77350269e-01,
5.77350269e-01,
@@ -93,6 +99,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -36,6 +36,11 @@
0, 1,
};
+const double pylith::feassemble::QuadratureData1Din2DLinear::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData1Din2DLinear::_quadPtsRef[] = {
0.00000000e+00,
};
@@ -81,6 +86,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -37,6 +37,12 @@
0, 1, 2,
};
+const double pylith::feassemble::QuadratureData1Din2DQuadratic::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+ 0.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData1Din2DQuadratic::_quadPtsRef[] = {
-5.77350269e-01,
5.77350269e-01,
@@ -95,6 +101,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din2DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -36,6 +36,11 @@
0, 1,
};
+const double pylith::feassemble::QuadratureData1Din3DLinear::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData1Din3DLinear::_quadPtsRef[] = {
0.00000000e+00,
};
@@ -82,6 +87,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -37,6 +37,12 @@
0, 1, 2,
};
+const double pylith::feassemble::QuadratureData1Din3DQuadratic::_verticesRef[] = {
+ -1.00000000e+00,
+ 1.00000000e+00,
+ 0.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData1Din3DQuadratic::_quadPtsRef[] = {
-5.77350269e-01,
5.77350269e-01,
@@ -97,6 +103,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData1Din3DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -37,6 +37,12 @@
0, 1, 2,
};
+const double pylith::feassemble::QuadratureData2DLinear::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData2DLinear::_quadPtsRef[] = {
3.33333333e-01, 3.33333333e-01,
};
@@ -83,6 +89,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -40,6 +40,15 @@
0, 1, 2, 3, 4, 5,
};
+const double pylith::feassemble::QuadratureData2DQuadratic::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+ 0.00000000e+00, 0.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData2DQuadratic::_quadPtsRef[] = {
6.66666667e-01, 1.66666667e-01,
1.66666667e-01, 6.66666667e-01,
@@ -121,6 +130,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -37,6 +37,12 @@
0, 1, 2,
};
+const double pylith::feassemble::QuadratureData2Din3DLinearXY::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData2Din3DLinearXY::_quadPtsRef[] = {
3.33333333e-01, 3.33333333e-01,
};
@@ -84,6 +90,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXY.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -37,6 +37,12 @@
0, 1, 2,
};
+const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData2Din3DLinearXYZ::_quadPtsRef[] = {
3.33333333e-01, 3.33333333e-01,
};
@@ -84,6 +90,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXYZ.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -37,6 +37,12 @@
0, 1, 2,
};
+const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData2Din3DLinearXZ::_quadPtsRef[] = {
3.33333333e-01, 3.33333333e-01,
};
@@ -84,6 +90,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearXZ.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -37,6 +37,12 @@
0, 1, 2,
};
+const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData2Din3DLinearYZ::_quadPtsRef[] = {
3.33333333e-01, 3.33333333e-01,
};
@@ -84,6 +90,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DLinearYZ.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -40,6 +40,15 @@
0, 1, 2, 3, 4, 5,
};
+const double pylith::feassemble::QuadratureData2Din3DQuadratic::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+ 0.00000000e+00, 0.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData2Din3DQuadratic::_quadPtsRef[] = {
6.66666667e-01, 1.66666667e-01,
1.66666667e-01, 6.66666667e-01,
@@ -124,6 +133,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData2Din3DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -38,6 +38,13 @@
0, 1, 2, 3,
};
+const double pylith::feassemble::QuadratureData3DLinear::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 1.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData3DLinear::_quadPtsRef[] = {
2.50000000e-01, 2.50000000e-01, 2.50000000e-01,
};
@@ -87,6 +94,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DLinear.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -44,6 +44,19 @@
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
};
+const double pylith::feassemble::QuadratureData3DQuadratic::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 1.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00, -1.00000000e+00,
+ 0.00000000e+00, 0.00000000e+00, -1.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, -1.00000000e+00, 0.00000000e+00,
+ 0.00000000e+00, -1.00000000e+00, 0.00000000e+00,
+ -1.00000000e+00, 0.00000000e+00, 0.00000000e+00,
+};
+
const double pylith::feassemble::QuadratureData3DQuadratic::_quadPtsRef[] = {
8.33333333e-02, 8.33333333e-02, 8.33333333e-02,
7.50000000e-01, 8.33333333e-02, 8.33333333e-02,
@@ -130,7 +143,7 @@
6.33333333e-01, 1.26666667e+00, 2.96666667e+00,
2.36666667e+00, 1.40000000e+00, 5.66666667e-01,
-3.00000000e-01, 3.03333333e+00, 2.66666667e+00,
- 6.33333333e-01, 1.00000000e+00, 2.70000000e+00,
+ 6.33333333e-01, 1.00000000e-00, 2.70000000e+00,
2.63333333e+00, 1.66666667e+00, 8.33333333e-01,
-3.33333333e-02, 3.30000000e+00, 2.66666667e+00,
3.66666667e-01, 7.33333333e-01, 2.96666667e+00,
@@ -165,6 +178,7 @@
numQuadPts = _numQuadPts;
vertices = const_cast<double*>(_vertices);
cells = const_cast<int*>(_cells);
+ verticesRef = const_cast<double*>(_verticesRef);
quadPtsRef = const_cast<double*>(_quadPtsRef);
quadWts = const_cast<double*>(_quadWts);
quadPts = const_cast<double*>(_quadPts);
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/QuadratureData3DQuadratic.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -53,6 +53,8 @@
static const int _cells[];
+ static const double _verticesRef[];
+
static const double _quadPtsRef[];
static const double _quadWts[];
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/generate.sh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/generate.sh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/generate.sh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -11,7 +11,7 @@
#
if (( $# != 1 )); then
- echo "usage: generate.sh quadrature|integrator|all"
+ echo "usage: generate.sh quadrature|explicit|implicit|all"
exit 1
fi
Modified: short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/libtests/materials/TestMaterial.cc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -150,11 +150,12 @@
const int numCorners = 3;
const int numQuadPts = 2;
const int spaceDim = 1;
+ const double verticesRef[] = { -1.0, 1.0, 0.0 };
const double basis[] = { 0.455, 0.667, -0.122, -0.122, 0.667, 0.455 };
const double basisDeriv[] = { -1.077, 1.155, -0.077, 0.077, -1.155, 1.077 };
const double quadPtsRef[] = { -0.577350269, 0.577350269 };
const double quadWts[] = { 1.0, 1.0 };
- quadrature.initialize(basis, basisDeriv, quadPtsRef, quadWts,
+ quadrature.initialize(verticesRef, basis, basisDeriv, quadPtsRef, quadWts,
cellDim, numCorners, numQuadPts, spaceDim);
spatialdata::spatialdb::SimpleDB db;
Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.hh 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.hh 2007-06-06 21:20:03 UTC (rev 7081)
@@ -61,6 +61,12 @@
*/
static int spaceDim(const Quadrature& q);
+ /** Get vertices in reference cell.
+ *
+ * @returns Array of coordinates of vertices in reference cell.
+ */
+ static const double* vertices(const Quadrature& q);
+
/** Get basis functions evaluated at quadrature points.
*
* @returns Array of basis functions evaluated at quadrature points
Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.icc
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.icc 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.icc 2007-06-06 21:20:03 UTC (rev 7081)
@@ -42,6 +42,13 @@
return q._spaceDim;
}
+// Get coordinates of vertices in reference cell.
+inline
+const double*
+pylith::feassemble::TestQuadrature::vertices(const Quadrature& q) {
+ return &q._vertices[0];
+}
+
// Get basis functions evaluated at quadrature points.
inline
const double*
Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.py 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/TestQuadrature.py 2007-06-06 21:20:03 UTC (rev 7081)
@@ -70,8 +70,10 @@
cell.shape = "line"
cell.degree = 2
cell.order = 2
- quadPtsE = numpy.array( [(-1.0/3**0.5,),
- (+1.0/3**0.5,)],
+
+ verticesE = numpy.array([ [-1.0], [1.0], [0.0] ])
+ quadPtsE = numpy.array( [[-1.0/3**0.5],
+ [+1.0/3**0.5]],
dtype=numpy.float64 )
quadWtsE = numpy.array( [1.0, 1.0], dtype=numpy.float64 )
@@ -95,6 +97,9 @@
from pylith.utils.testarray import test_double
import pylith.feassemble.testfeassemble as testmodule
+ vertices = testmodule.vertices(quadrature.cppHandle)
+ test_double(self, verticesE, vertices)
+
basis = testmodule.basis(quadrature.cppHandle)
test_double(self, basisE, basis)
Modified: short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe.src 2007-06-06 19:51:08 UTC (rev 7080)
+++ short/3D/PyLith/trunk/unittests/pytests/feassemble/testfeassemble.pyxe.src 2007-06-06 21:20:03 UTC (rev 7081)
@@ -71,6 +71,18 @@
return vals;
#}embed
+# create shim for TestQuadrature::vertices
+#embed{ double* TestQuadrature_vertices(void* obj)
+const pylith::feassemble::Quadrature* q =
+ (pylith::feassemble::Quadrature*) obj;
+const int size = TestQuadrature_numBasis(obj) *
+ TestQuadrature_cellDim(obj);
+double* vals = (size > 0) ? new double[size] : 0;
+const double* vertices = pylith::feassemble::TestQuadrature::vertices(*q);
+memcpy(vals, vertices, size*sizeof(double));
+return vals;
+#}embed
+
# create shim for TestQuadrature::basisDeriv
#embed{ double* TestQuadrature_basisDeriv(void* obj)
const pylith::feassemble::Quadrature* q =
@@ -108,6 +120,30 @@
#}embed
# ----------------------------------------------------------------------
+def vertices(qhandle):
+ """
+ Call TestQuadrature::vertices().
+ """
+ if not qhandle.name == "pylith_feassemble_Quadrature":
+ raise TypeError, \
+ "Argument 'quadrature' must be extension type 'Quadrature'."
+
+ cdef void* qptr
+ qptr = ptrFromHandle(qhandle)
+
+ cdef int numBasis
+ cdef int cellDim
+ numBasis = TestQuadrature_numBasis(qptr)
+ cellDim = TestQuadrature_cellDim(qptr)
+
+ cdef double* values
+ values = TestQuadrature_vertices(qptr)
+ dims = [numBasis, cellDim]
+ valuesObj = PyCObject_FromVoidPtr(values, NULL)
+ return spatialdata.utils.simplearray.SimpleCppArray(valuesObj, dims, "double")
+
+
+# ----------------------------------------------------------------------
def basis(qhandle):
"""
Call TestQuadrature::basis().
More information about the cig-commits
mailing list