[cig-commits] r7102 - in short/3D/PyLith/trunk: . libsrc/feassemble
unittests/libtests/feassemble unittests/libtests/feassemble/data
brad at geodynamics.org
brad at geodynamics.org
Fri Jun 8 11:27:00 PDT 2007
Author: brad
Date: 2007-06-08 11:26:59 -0700 (Fri, 08 Jun 2007)
New Revision: 7102
Modified:
short/3D/PyLith/trunk/TODO
short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.hh
short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.cc
short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestCellGeometry.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint1D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint2D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint3D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/CellGeomData.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/CellGeomData.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint1D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint1D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint2D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint2D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint3D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint3D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.hh
Log:
Added computation of Jacobian determinant to C++ CellGeometry::jacobian(). Updated unit tests accordingly.
Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/TODO 2007-06-08 18:26:59 UTC (rev 7102)
@@ -4,8 +4,6 @@
1. Simple tests with analytical solutions
- Try shear tests with Poisson ratio of 0.5.
-
a. 2-D
i. tri3 cells
(1) axial compression
@@ -56,6 +54,9 @@
SECONDARY PRIORITIES
======================================================================
+Want to take advantage of symmetry and block structure of Jacobian
+when possible.
+
1. Implement MeshIOHDF5 & HDF5 (helper class)
a. C++ objects
b. unit tests at C++ level
Modified: short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/CellGeometry.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -83,11 +83,13 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
virtual
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const = 0;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -53,10 +53,12 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryHex3D::jacobian(double_array* jacobian,
- const double_array& vertices,
- const double_array& location) const
+ double* det,
+ const double_array& vertices,
+ const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(numCorners()*spaceDim() == vertices.size());
assert(cellDim() == location.size());
@@ -128,6 +130,14 @@
(*jacobian)[6] = z1 - z0 + h_xy*y + h_xz*z + h_xyz*y*z;
(*jacobian)[7] = z3 - z0 + h_xy*x + h_yz*z + h_xyz*x*z;
(*jacobian)[8] = z4 - z0 + h_yz*y + h_xz*x + h_xyz*x*y;
+
+ *det =
+ (*jacobian)[0]*((*jacobian)[4]*(*jacobian)[8] -
+ (*jacobian)[5]*(*jacobian)[7]) -
+ (*jacobian)[1]*((*jacobian)[3]*(*jacobian)[8] -
+ (*jacobian)[5]*(*jacobian)[6]) +
+ (*jacobian)[2]*((*jacobian)[3]*(*jacobian)[7] -
+ (*jacobian)[4]*(*jacobian)[6]);
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryHex3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -53,10 +53,12 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryLine1D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(numCorners()*spaceDim() == vertices.size());
assert(spaceDim()*cellDim() == jacobian->size());
@@ -65,6 +67,7 @@
const double x1 = vertices[1];
(*jacobian)[0] = x1 - x0;
+ *det = (*jacobian)[0];
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine1D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -53,10 +53,12 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryLine2D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(numCorners()*spaceDim() == vertices.size());
assert(spaceDim()*cellDim() == jacobian->size());
@@ -69,6 +71,8 @@
(*jacobian)[0] = x1 - x0;
(*jacobian)[1] = y1 - y0;
+ *det = sqrt(pow((*jacobian)[0], 2) +
+ pow((*jacobian)[1], 2));
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine2D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -53,10 +53,12 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryLine3D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(numCorners()*spaceDim() == vertices.size());
assert(spaceDim()*cellDim() == jacobian->size());
@@ -72,6 +74,9 @@
(*jacobian)[0] = x1 - x0;
(*jacobian)[1] = y1 - y0;
(*jacobian)[2] = z1 - z0;
+ *det = sqrt(pow((*jacobian)[0], 2) +
+ pow((*jacobian)[1], 2) +
+ pow((*jacobian)[2], 2));
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryLine3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -58,14 +58,17 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryPoint1D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(1 == jacobian->size());
(*jacobian)[0] = 1.0;
+ *det = 1.0;
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint1D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -58,14 +58,17 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryPoint2D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(1 == jacobian->size());
(*jacobian)[0] = 1.0;
+ *det = 1.0;
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint2D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -58,14 +58,17 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryPoint3D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(1 == jacobian->size());
(*jacobian)[0] = 1.0;
+ *det = 1.0;
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryPoint3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -60,10 +60,12 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryQuad2D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(numCorners()*spaceDim() == vertices.size());
assert(cellDim() == location.size());
@@ -93,6 +95,10 @@
(*jacobian)[1] = x3 - x0 + f_xy*x;
(*jacobian)[2] = y1 - y0 + g_xy*y;
(*jacobian)[3] = y3 - y0 + g_xy*x;
+
+ *det =
+ (*jacobian)[0]*(*jacobian)[3] -
+ (*jacobian)[1]*(*jacobian)[2];
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad2D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -60,10 +60,12 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryQuad3D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(numCorners()*spaceDim() == vertices.size());
assert(cellDim() == location.size());
@@ -102,6 +104,21 @@
(*jacobian)[4] = z1 - z0 + h_xy*y;
(*jacobian)[5] = z3 - z0 + h_xy*x;
+
+ const double jj00 =
+ (*jacobian)[0]*(*jacobian)[0] +
+ (*jacobian)[2]*(*jacobian)[2] +
+ (*jacobian)[4]*(*jacobian)[4];
+ const double jj10 =
+ (*jacobian)[0]*(*jacobian)[1] +
+ (*jacobian)[2]*(*jacobian)[3] +
+ (*jacobian)[4]*(*jacobian)[5];
+ const double jj01 = jj10;
+ const double jj11 =
+ (*jacobian)[1]*(*jacobian)[1] +
+ (*jacobian)[3]*(*jacobian)[3] +
+ (*jacobian)[5]*(*jacobian)[5];
+ *det = sqrt(jj00*jj11 - jj01*jj10);
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryQuad3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -60,10 +60,12 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryTet3D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
assert(0 != jacobian);
+ assert(0 != det);
assert(numCorners()*spaceDim() == vertices.size());
assert(spaceDim()*cellDim() == jacobian->size());
@@ -93,6 +95,14 @@
(*jacobian)[6] = z1 - z0;
(*jacobian)[7] = z2 - z0;
(*jacobian)[8] = z3 - z0;
+
+ *det =
+ (*jacobian)[0]*((*jacobian)[4]*(*jacobian)[8] -
+ (*jacobian)[5]*(*jacobian)[7]) -
+ (*jacobian)[1]*((*jacobian)[3]*(*jacobian)[8] -
+ (*jacobian)[5]*(*jacobian)[6]) +
+ (*jacobian)[2]*((*jacobian)[3]*(*jacobian)[7] -
+ (*jacobian)[4]*(*jacobian)[6]);
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTet3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -60,6 +60,7 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryTri2D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
@@ -81,6 +82,10 @@
(*jacobian)[1] = x2 - x0;
(*jacobian)[2] = y1 - y0;
(*jacobian)[3] = y2 - y0;
+
+ *det =
+ (*jacobian)[0]*(*jacobian)[3] -
+ (*jacobian)[1]*(*jacobian)[2];
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri2D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -60,6 +60,7 @@
// Compute Jacobian at location in cell.
void
pylith::feassemble::GeometryTri3D::jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const
{ // jacobian
@@ -88,6 +89,21 @@
(*jacobian)[4] = z1 - z0;
(*jacobian)[5] = z2 - z0;
+
+ const double jj00 =
+ (*jacobian)[0]*(*jacobian)[0] +
+ (*jacobian)[2]*(*jacobian)[2] +
+ (*jacobian)[4]*(*jacobian)[4];
+ const double jj10 =
+ (*jacobian)[0]*(*jacobian)[1] +
+ (*jacobian)[2]*(*jacobian)[3] +
+ (*jacobian)[4]*(*jacobian)[5];
+ const double jj01 = jj10;
+ const double jj11 =
+ (*jacobian)[1]*(*jacobian)[1] +
+ (*jacobian)[3]*(*jacobian)[3] +
+ (*jacobian)[5]*(*jacobian)[5];
+ *det = sqrt(jj00*jj11 - jj01*jj10);
} // jacobian
Modified: short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/libsrc/feassemble/GeometryTri3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -56,10 +56,12 @@
/** Compute Jacobian at location in cell.
*
* @param jacobian Jacobian at location.
+ * @param det Determinant of Jacobian at location.
* @param vertices Coordinates of vertices of cell.
* @param location Location in reference cell at which to compute Jacobian.
*/
void jacobian(double_array* jacobian,
+ double* det,
const double_array& vertices,
const double_array& location) const;
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestCellGeometry.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestCellGeometry.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestCellGeometry.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -98,11 +98,12 @@
CPPUNIT_ASSERT_EQUAL(numCorners, _object->numCorners());
double_array jacobian(cellDim*spaceDim);
+ double det = 0;
for (int iLoc=0; iLoc < numLocs; ++iLoc) {
double_array vertices(_data->vertices, numCorners*spaceDim);
double_array location(&_data->locations[iLoc*cellDim], cellDim);
- _object->jacobian(&jacobian, vertices, location);
+ _object->jacobian(&jacobian, &det, vertices, location);
const int size = jacobian.size();
const int index = iLoc*cellDim*spaceDim;
@@ -114,6 +115,7 @@
else
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobian[i]/_data->jacobian[index+i],
tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(_data->jacobianDet[iLoc], det, tolerance);
} // for
} // testJacobian
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint1D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint1D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -70,12 +70,14 @@
CPPUNIT_ASSERT_EQUAL(numCorners, geometry.numCorners());
double_array jacobian(1);
+ double det = 0.0;
for (int iLoc=0; iLoc < numLocs; ++iLoc) {
double_array vertices(data.vertices, numCorners*spaceDim);
double_array location(&data.locations[iLoc], 1);
- geometry.jacobian(&jacobian, vertices, location);
+ geometry.jacobian(&jacobian, &det, vertices, location);
CPPUNIT_ASSERT_EQUAL(1.0, jacobian[0]);
+ CPPUNIT_ASSERT_EQUAL(1.0, det);
} //for
} // testJacobian
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -70,12 +70,14 @@
CPPUNIT_ASSERT_EQUAL(numCorners, geometry.numCorners());
double_array jacobian(1);
+ double det = 0.0;
for (int iLoc=0; iLoc < numLocs; ++iLoc) {
double_array vertices(data.vertices, numCorners*spaceDim);
double_array location(&data.locations[iLoc], 1);
- geometry.jacobian(&jacobian, vertices, location);
+ geometry.jacobian(&jacobian, &det, vertices, location);
CPPUNIT_ASSERT_EQUAL(1.0, jacobian[0]);
+ CPPUNIT_ASSERT_EQUAL(1.0, det);
} //for
} // testJacobian
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestGeometryPoint3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -70,12 +70,14 @@
CPPUNIT_ASSERT_EQUAL(numCorners, geometry.numCorners());
double_array jacobian(1);
+ double det = 0.0;
for (int iLoc=0; iLoc < numLocs; ++iLoc) {
double_array vertices(data.vertices, numCorners*spaceDim);
double_array location(&data.locations[iLoc], 1);
- geometry.jacobian(&jacobian, vertices, location);
+ geometry.jacobian(&jacobian, &det, vertices, location);
CPPUNIT_ASSERT_EQUAL(1.0, jacobian[0]);
+ CPPUNIT_ASSERT_EQUAL(1.0, det);
} //for
} // testJacobian
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/CellGeomData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/CellGeomData.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/CellGeomData.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -21,7 +21,8 @@
numLocs(0),
vertices(0),
locations(0),
- jacobian(0)
+ jacobian(0),
+ jacobianDet(0)
{ // constructor
} // constructor
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/CellGeomData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/CellGeomData.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/CellGeomData.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -43,6 +43,7 @@
double* vertices; ///< Coordinates of vertices of cell
double* locations; ///< Locations where Jacobian is computed
double* jacobian; ///< Jacobian at locations
+ double* jacobianDet; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -55,6 +55,18 @@
3.698, -0.088, -0.012, -0.116, 1.446, -0.056, -0.51, 0.46, 2.7
};
+const double pylith::feassemble::GeomDataHex3D::_jacobianDet[] = {
+ 11.13,
+ 8.359,
+ 14.622,
+ 21.199,
+ 9.41,
+ 13.135,
+ 12.253,
+ 27.302,
+ 14.494708
+};
+
pylith::feassemble::GeomDataHex3D::GeomDataHex3D(void)
{ // constructor
cellDim = _cellDim;
@@ -64,6 +76,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataHex3D::~GeomDataHex3D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataHex3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -35,6 +35,11 @@
3.3
};
+const double pylith::feassemble::GeomDataLine1D::_jacobianDet[] = {
+ 3.3,
+ 3.3
+};
+
pylith::feassemble::GeomDataLine1D::GeomDataLine1D(void)
{ // constructor
cellDim = _cellDim;
@@ -44,6 +49,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataLine1D::~GeomDataLine1D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine1D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -35,6 +35,11 @@
3.3, -3.8
};
+const double pylith::feassemble::GeomDataLine2D::_jacobianDet[] = {
+ 5.0328918128646478,
+ 5.0328918128646478
+};
+
pylith::feassemble::GeomDataLine2D::GeomDataLine2D(void)
{ // constructor
cellDim = _cellDim;
@@ -44,6 +49,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataLine2D::~GeomDataLine2D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine2D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -35,6 +35,11 @@
3.3, -3.8, 2.9
};
+const double pylith::feassemble::GeomDataLine3D::_jacobianDet[] = {
+ 5.8086142925830417,
+ 5.8086142925830417
+};
+
pylith::feassemble::GeomDataLine3D::GeomDataLine3D(void)
{ // constructor
cellDim = _cellDim;
@@ -44,6 +49,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataLine3D::~GeomDataLine3D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataLine3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint1D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint1D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint1D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -35,6 +35,11 @@
1.0
};
+const double pylith::feassemble::GeomDataPoint1D::_jacobianDet[] = {
+ 1.0,
+ 1.0
+};
+
pylith::feassemble::GeomDataPoint1D::GeomDataPoint1D(void)
{ // constructor
cellDim = _cellDim;
@@ -44,6 +49,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataPoint1D::~GeomDataPoint1D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint1D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint1D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint1D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -35,6 +35,11 @@
1.0
};
+const double pylith::feassemble::GeomDataPoint2D::_jacobianDet[] = {
+ 1.0,
+ 1.0
+};
+
pylith::feassemble::GeomDataPoint2D::GeomDataPoint2D(void)
{ // constructor
cellDim = _cellDim;
@@ -44,6 +49,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataPoint2D::~GeomDataPoint2D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint2D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint2D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -35,6 +35,11 @@
1.0
};
+const double pylith::feassemble::GeomDataPoint3D::_jacobianDet[] = {
+ 1.0,
+ 1.0
+};
+
pylith::feassemble::GeomDataPoint3D::GeomDataPoint3D(void)
{ // constructor
cellDim = _cellDim;
@@ -44,6 +49,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataPoint3D::~GeomDataPoint3D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataPoint3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -43,6 +43,14 @@
0.71, -0.28, -0.37, 1.46
};
+const double pylith::feassemble::GeomDataQuad2D::_jacobianDet[] = {
+ 0.63,
+ 0.67,
+ 1.04,
+ 1.08,
+ 0.933
+};
+
pylith::feassemble::GeomDataQuad2D::GeomDataQuad2D(void)
{ // constructor
cellDim = _cellDim;
@@ -52,6 +60,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataQuad2D::~GeomDataQuad2D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad2D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -43,6 +43,14 @@
-0.1, -1.4, 1.84, -0.31, 1.18, -0.02
};
+const double pylith::feassemble::GeomDataQuad3D::_jacobianDet[] = {
+ 2.4899799195977463,
+ 2.5397243944963788,
+ 3.2703516630478742,
+ 3.3300750742288079,
+ 3.1049003204611898
+};
+
pylith::feassemble::GeomDataQuad3D::GeomDataQuad3D(void)
{ // constructor
cellDim = _cellDim;
@@ -52,6 +60,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataQuad3D::~GeomDataQuad3D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataQuad3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -37,6 +37,11 @@
3.4, 0.3, 1.2, 0.1, 3.2, 1.0, -0.1, -0.5, 2.8
};
+const double pylith::feassemble::GeomDataTet3D::_jacobianDet[] = {
+ 32.374,
+ 32.374
+};
+
pylith::feassemble::GeomDataTet3D::GeomDataTet3D(void)
{ // constructor
cellDim = _cellDim;
@@ -46,6 +51,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataTet3D::~GeomDataTet3D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTet3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -36,6 +36,11 @@
2.0, 0.5, 0.8, 2.8
};
+const double pylith::feassemble::GeomDataTri2D::_jacobianDet[] = {
+ 5.2,
+ 5.2
+};
+
pylith::feassemble::GeomDataTri2D::GeomDataTri2D(void)
{ // constructor
cellDim = _cellDim;
@@ -45,6 +50,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataTri2D::~GeomDataTri2D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri2D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.cc 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.cc 2007-06-08 18:26:59 UTC (rev 7102)
@@ -36,6 +36,11 @@
-1.5, -1.3, -3.0, -0.9, 0.5, 1.8
};
+const double pylith::feassemble::GeomDataTri3D::_jacobianDet[] = {
+ 5.933590818383081,
+ 5.933590818383081
+};
+
pylith::feassemble::GeomDataTri3D::GeomDataTri3D(void)
{ // constructor
cellDim = _cellDim;
@@ -45,6 +50,7 @@
vertices = const_cast<double*>(_vertices);
locations = const_cast<double*>(_locations);
jacobian = const_cast<double*>(_jacobian);
+ jacobianDet = const_cast<double*>(_jacobianDet);
} // constructor
pylith::feassemble::GeomDataTri3D::~GeomDataTri3D(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.hh 2007-06-08 18:00:52 UTC (rev 7101)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/GeomDataTri3D.hh 2007-06-08 18:26:59 UTC (rev 7102)
@@ -45,6 +45,7 @@
static const double _vertices[]; ///< Coordinates of cell's vertices
static const double _locations[]; ///< Locations to compute Jacobian
static const double _jacobian[]; ///< Jacobian at locations
+ static const double _jacobianDet[]; ///< Determinant of Jacobian at locations
};
More information about the cig-commits
mailing list