[cig-commits] r13261 - in short/3D/PyLith/trunk: pylith/utils tests/2d/tri3

brad at geodynamics.org brad at geodynamics.org
Tue Nov 4 21:26:20 PST 2008


Author: brad
Date: 2008-11-04 21:26:20 -0800 (Tue, 04 Nov 2008)
New Revision: 13261

Modified:
   short/3D/PyLith/trunk/pylith/utils/VTKDataReader.py
   short/3D/PyLith/trunk/tests/2d/tri3/TestAxialPlaneStrain.py
Log:
A little more work on full-scale testing.

Modified: short/3D/PyLith/trunk/pylith/utils/VTKDataReader.py
===================================================================
--- short/3D/PyLith/trunk/pylith/utils/VTKDataReader.py	2008-11-05 00:19:05 UTC (rev 13260)
+++ short/3D/PyLith/trunk/pylith/utils/VTKDataReader.py	2008-11-05 05:26:20 UTC (rev 13261)
@@ -43,7 +43,11 @@
   def read(self, filename):
     from enthought.tvtk.api import tvtk
     reader = tvtk.UnstructuredGridReader()
-    reader.file_name = "axialplanestrain-statevars-elastic_info.vtk"
+    reader.file_name = filename
+    reader.read_all_scalars = True
+    reader.read_all_vectors = True
+    reader.read_all_tensors = True
+    reader.read_all_fields = True
     err = reader.update()
     data = reader.get_output()
     
@@ -77,11 +81,25 @@
 
 
   def _getVertexFields(self, data):
-    return
+    fields = {}
+    ptdata = data.point_data
+    nfields = ptdata.number_of_arrays
+    for i in xrange(nfields):
+      name = ptdata.get_array_name(i)
+      field = ptdata.get_array(name).to_array()
+      fields[name] = field
+    return fields
 
 
   def _getCellFields(self, data):
-    return
+    fields = {}
+    cdata = data.cell_data
+    nfields = cdata.number_of_arrays
+    for i in xrange(nfields):
+      name = cdata.get_array_name(i)
+      field = cdata.get_array(name).to_array()
+      fields[name] = field
+    return fields
 
 
 # End of file 

Modified: short/3D/PyLith/trunk/tests/2d/tri3/TestAxialPlaneStrain.py
===================================================================
--- short/3D/PyLith/trunk/tests/2d/tri3/TestAxialPlaneStrain.py	2008-11-05 00:19:05 UTC (rev 13260)
+++ short/3D/PyLith/trunk/tests/2d/tri3/TestAxialPlaneStrain.py	2008-11-05 05:26:20 UTC (rev 13261)
@@ -16,6 +16,7 @@
 ## y-direction for 2-D box.
 
 import unittest
+import numpy
 from pylith.utils.VTKDataReader import has_vtk
 from pylith.utils.VTKDataReader import VTKDataReader
 
@@ -80,8 +81,34 @@
     self.assertEqual(nverticesE, nvertices)
     self.assertEqual(spaceDimE, spaceDim)
 
-    # Check displacement solution
-    
+    # Check physical properties
+    tolerance = 1.0e-5
+    vsE = 3000.0
+    vpE = 5291.502622129181
+    densityE = 2500.0
+
+    # Lame's constant mu (shear modulus)
+    muE = densityE*vsE**2
+    diff = numpy.abs(1.0 - data['cell_fields']['mu']/muE)
+    okay = diff < tolerance
+    if numpy.sum(okay) != ncells:
+      print "Lame's constant mu: ",data['cell_fields']['mu']
+      self.assertEqual(ncells, numpy.sum(okay))    
+
+    # Lame's constant lambda
+    lambdaE = densityE*vpE**2 - 2*muE
+    diff = numpy.abs(1.0 - data['cell_fields']['lambda']/lambdaE)
+    okay = diff < tolerance
+    if numpy.sum(okay) != ncells:
+      print "Lame's constant lambda: ",data['cell_fields']['lambda']
+      self.assertEqual(ncells, numpy.sum(okay))    
+
+    # Density
+    diff = numpy.abs(1.0 - data['cell_fields']['density']/densityE)
+    okay = diff < tolerance
+    if numpy.sum(okay) != ncells:
+      print "Density: ",data['cell_fields']['density']
+      self.assertEqual(ncells, numpy.sum(okay))    
     return
 
 



More information about the CIG-COMMITS mailing list