[cig-commits] r7166 - in short/3D/PyLith/trunk: . doc/userguide examples/twocells/twotri3 libsrc/feassemble pylith pylith/bc pylith/materials pylith/problems tests/1d/line2 tests/1d/line3 tests/2d/quad4 tests/2d/tri3 tests/3d/hex8 tests/3d/tet4 unittests/pytests/bc unittests/pytests/faults unittests/pytests/materials

brad at geodynamics.org brad at geodynamics.org
Tue Jun 12 12:07:32 PDT 2007


Author: brad
Date: 2007-06-12 12:07:31 -0700 (Tue, 12 Jun 2007)
New Revision: 7166

Added:
   short/3D/PyLith/trunk/pylith/bc/BCFourSides.py
   short/3D/PyLith/trunk/pylith/bc/BCSingle.py
   short/3D/PyLith/trunk/pylith/bc/BCSixSides.py
   short/3D/PyLith/trunk/pylith/bc/BCTwoSides.py
   short/3D/PyLith/trunk/pylith/materials/BiMaterial.py
   short/3D/PyLith/trunk/unittests/pytests/bc/TestBCFourSides.py
   short/3D/PyLith/trunk/unittests/pytests/bc/TestBCSingle.py
   short/3D/PyLith/trunk/unittests/pytests/bc/TestBCSixSides.py
   short/3D/PyLith/trunk/unittests/pytests/bc/TestBCTwoSides.py
   short/3D/PyLith/trunk/unittests/pytests/faults/TestSingleFault.py
   short/3D/PyLith/trunk/unittests/pytests/materials/TestBiMaterial.py
   short/3D/PyLith/trunk/unittests/pytests/materials/TestMaxwellIsotropic3D.py
Removed:
   short/3D/PyLith/trunk/examples/twocells/twotri3/bcsingle.odb
   short/3D/PyLith/trunk/pylith/problems/BCPrism.py
   short/3D/PyLith/trunk/pylith/problems/BCQuadrilateral.py
   short/3D/PyLith/trunk/tests/1d/line2/bcsingle.odb
   short/3D/PyLith/trunk/tests/1d/line3/bcsingle.odb
   short/3D/PyLith/trunk/tests/2d/quad4/threequad4.mesh~
   short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.cfg~
   short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.spatialdb~
   short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.vtk
Modified:
   short/3D/PyLith/trunk/TODO
   short/3D/PyLith/trunk/doc/userguide/TODO
   short/3D/PyLith/trunk/examples/twocells/twotri3/implicit.cfg
   short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc
   short/3D/PyLith/trunk/pylith/Makefile.am
   short/3D/PyLith/trunk/pylith/bc/__init__.py
   short/3D/PyLith/trunk/pylith/materials/__init__.py
   short/3D/PyLith/trunk/pylith/problems/__init__.py
   short/3D/PyLith/trunk/tests/1d/line2/Makefile.am
   short/3D/PyLith/trunk/tests/1d/line2/axialextension.cfg
   short/3D/PyLith/trunk/tests/1d/line3/Makefile.am
   short/3D/PyLith/trunk/tests/1d/line3/axialextension.cfg
   short/3D/PyLith/trunk/tests/2d/quad4/axialplanestrain.cfg
   short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain.cfg
   short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain_free.cfg
   short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain_xfixed.cfg
   short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.cfg
   short/3D/PyLith/trunk/tests/2d/tri3/axialplanestrain.cfg
   short/3D/PyLith/trunk/tests/2d/tri3/shearplanestrain.cfg
   short/3D/PyLith/trunk/tests/3d/hex8/axialelasticisotropic.cfg
   short/3D/PyLith/trunk/tests/3d/tet4/axialelasticisotropic.cfg
   short/3D/PyLith/trunk/unittests/pytests/bc/Makefile.am
   short/3D/PyLith/trunk/unittests/pytests/bc/testbc.py
   short/3D/PyLith/trunk/unittests/pytests/faults/Makefile.am
   short/3D/PyLith/trunk/unittests/pytests/faults/testfaults.py
   short/3D/PyLith/trunk/unittests/pytests/materials/Makefile.am
   short/3D/PyLith/trunk/unittests/pytests/materials/TestHomogeneous.py
   short/3D/PyLith/trunk/unittests/pytests/materials/testmaterials.py
Log:
Added more material and boundary condition containers (and renamed boundary condition containers). Added Python unit tests for containers. Updated examples and tests to use containers.

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/TODO	2007-06-12 19:07:31 UTC (rev 7166)
@@ -26,20 +26,21 @@
 3. Implement faults for kinematic source
    a. Creation of cohesive cells
 
-3. Allow use of all elasticity constants (9 for 2-D, 36 for 3-D).
-   a. Materials C++ code
-   b. Integrator C++ code
-   b. Material C++ unit tests
-
-4. Implement absorbing boundary conditions
-
 5. Additional unit tests
   b. ElasticityExplicit and ElasticityImplicit
     i. multiple materials
+    ii. constrained DOF
 
   a. FaultCohesive
     i. Add checking of faultMesh [not currently used]
 
+examples/templates
+
+  containers
+    faults.odb
+    bc.odb
+    materials.odb
+
 ======================================================================
 SECONDARY PRIORITIES
 ======================================================================
@@ -47,21 +48,28 @@
 Want to take advantage of symmetry and block structure of Jacobian
 matrix when possible.
 
-1. Implement MeshIOHDF5 & HDF5 (helper class)
-   a. C++ objects
-   b. unit tests at C++ level
-   c. Python object (MeshIOHDF5)
-   d. bindings
-   e. unit tests at Python level
+1. Allow use of all elasticity constants (9 for 2-D, 36 for 3-D).
+   a. Materials C++ code
+   b. Integrator C++ code
+   b. Material C++ unit tests
 
-2. Reimplement SolutionIO.
+2. Implement absorbing boundary conditions
 
+3. Reimplement SolutionIO.
+
    Follow implementation of MeshIO. SolutionIO implements extracting
    data from Sieve and calls virtual functions to write data.
 
    a. Reimplement SolutionIOVTK
    b. Implement SolutionIOHDF5
 
+4. Implement MeshIOHDF5 & HDF5 (helper class)
+   a. C++ objects
+   b. unit tests at C++ level
+   c. Python object (MeshIOHDF5)
+   d. bindings
+   e. unit tests at Python level
+
 ======================================================================
 UNRESOLVED ISSUES
 ======================================================================

Modified: short/3D/PyLith/trunk/doc/userguide/TODO
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/TODO	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/doc/userguide/TODO	2007-06-12 19:07:31 UTC (rev 7166)
@@ -2,12 +2,6 @@
 
 1.  Cover (not sure what image to use) [Sue?]
 
-2.  Table of contents [Sue]
-
-3.  List of figures [Sue]
-
-4.  List of tables [Sue]
-
 5.  Preface (should be able to mostly copy from PyLith 0.8) [Charles]
 DONE
 

Deleted: short/3D/PyLith/trunk/examples/twocells/twotri3/bcsingle.odb
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twotri3/bcsingle.odb	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/examples/twocells/twotri3/bcsingle.odb	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# <LicenseText>
-#
-# ----------------------------------------------------------------------
-#
-
-from pylith.utils.ObjectBin import ObjectBin
-
-# BCSingle class
-class BCSingle(ObjectBin):
-  """
-  Python boundary conditions container for a single boundary condition.
-
-  Factory: boundary_conditions
-  """
-
-  # INVENTORY //////////////////////////////////////////////////////////
-
-  class Inventory(ObjectBin.Inventory):
-    """
-    Python object for managing BCSingle facilities and properties.
-    """
-    
-    ## @class Inventory
-    ## Python object for managing BCSingle facilities and properties.
-    ##
-    ## \b Properties
-    ## @li None
-    ##
-    ## \b Facilities
-    ## @li \b bc Boundary condition.
-
-    import pyre.inventory
-    
-    from pylith.bc.Dirichlet import Dirichlet
-
-    bc = pyre.inventory.facility("bc", family="boundary_condition",
-                                   factory=Dirichlet)
-    bc.meta['tip'] = "Boundary condition."
-
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="bcsingle"):
-    """
-    Constructor.
-    """
-    ObjectBin.__init__(self, name)
-    return
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set attributes from inventory.
-    """
-    ObjectBin._configure(self)
-    self.bin = [self.inventory.bc]
-    return
-
-  
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def object_bin():
-  """
-  Factory associated with BCSingle.
-  """
-  return BCSingle()
-
-
-# End of file 

Modified: short/3D/PyLith/trunk/examples/twocells/twotri3/implicit.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twotri3/implicit.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/examples/twocells/twotri3/implicit.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -6,7 +6,7 @@
 # ----------------------------------------------------------------------
 [pylithapp.timedependent]
 formulation = pylith.problems.Implicit
-bc = bcsingle
+bc = pylith.bc.BCSingle
 
 # ----------------------------------------------------------------------
 # boundary conditions

Modified: short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc	2007-06-12 19:07:31 UTC (rev 7166)
@@ -106,6 +106,8 @@
     fields->getReal("dispTBctpdt");
   assert(!dispTBctpdt.isNull());
 
+  dispTBctpdt->view("DISP T BC t+dt"); // TEMPORARY
+
   // Get cell geometry information that doesn't depend on cell
   const int numQuadPts = _quadrature->numQuadPts();
   const double_array& quadWts = _quadrature->quadWts();
@@ -140,6 +142,8 @@
   for (Mesh::label_sequence::iterator c_iter=cells->begin();
        c_iter != cellsEnd;
        ++c_iter) {
+    std::cout << "integrateResidual, cell: " << *c_iter << std::endl;
+
     // Compute geometry information for current cell
     _quadrature->computeGeometry(mesh, coordinates, *c_iter);
 
@@ -152,6 +156,16 @@
     // Restrict input fields to cell
     mesh->restrict(dispTBctpdt, *c_iter, &dispTBctpdtCell[0], cellVecSize);
 
+    { // TEMPORARY
+      std::cout << "dispTBctpdtCell\n";
+      for (int i=0; i < dispTBctpdtCell.size(); ++i) {
+	std::cout << " " << dispTBctpdtCell[i];
+	if ((i+1) % spaceDim == 0)
+	  std::cout << "\n";
+      }
+	std::cout << std::endl;
+    } // TEMPORARY
+
     // Get cell geometry information that depends on cell
     const double_array& basis = _quadrature->basis();
     const double_array& basisDeriv = _quadrature->basisDeriv();
@@ -233,6 +247,16 @@
       PetscErrorCode err = PetscLogFlops(numQuadPts*(1+numBasis*(8+2+9)));
       if (err)
 	throw std::runtime_error("Logging PETSc flops failed.");
+      
+      { // TEMPORARY
+	std::cout << "_cellVector\n";
+	for (int i=0; i < numBasis*spaceDim; ++i) {
+	  std::cout << " " << _cellVector[i];
+	  if ((i+1) % spaceDim == 0)
+	    std::cout << "\n";
+	}
+	std::cout << std::endl;
+      } // TEMPORARY
 
     } else if (3 == cellDim) {
       // Compute total strains and then use these to compute stresses
@@ -272,8 +296,24 @@
       assert(0);
     } // if/else
 
-   // Assemble cell contribution into field
+#if 0
+    const double tmp[] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 };
+    for (int i=0; i < 8; ++i)
+      _cellVector[i] = tmp[i];
+    { // TEMPORARY
+      std::cout << "_cellVector\n";
+      for (int i=0; i < numBasis*spaceDim; ++i) {
+	std::cout << " " << _cellVector[i];
+	if ((i+1) % spaceDim == 0)
+	  std::cout << "\n";
+      }
+      std::cout << std::endl;
+    } // TEMPORARY
+#endif
+
+    // Assemble cell contribution into field
     mesh->updateAdd(residual, *c_iter, _cellVector);
+    residual->view("AFTER updateAdd"); // TEMPORARY
   } // for
 } // integrateResidual
 

Modified: short/3D/PyLith/trunk/pylith/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/pylith/Makefile.am	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/Makefile.am	2007-06-12 19:07:31 UTC (rev 7166)
@@ -17,6 +17,10 @@
 	bc/BCIntegrator.py \
 	bc/BoundaryCondition.py \
 	bc/Dirichlet.py \
+	bc/BCSingle.py \
+	bc/BCTwoSides.py \
+	bc/BCFourSides.py \
+	bc/BCSixSides.py \
 	faults/__init__.py \
 	faults/BruneSlipFn.py \
 	faults/EqKinSrc.py \
@@ -58,6 +62,7 @@
 	feassemble/geometry/GeometryTet3D.py \
 	feassemble/geometry/GeometryHex3D.py \
 	materials/__init__.py \
+	materials/BiMaterial.py \
 	materials/ElasticMaterial.py \
 	materials/ElasticIsotropic3D.py \
 	materials/ElasticPlaneStrain.py \
@@ -76,8 +81,6 @@
 	meshio/SolutionIO.py \
 	meshio/SolutionIOVTK.py \
 	problems/__init__.py \
-	problems/BCPrism.py \
-	problems/BCQuadrilateral.py \
 	problems/Explicit.py \
 	problems/Formulation.py \
 	problems/Implicit.py \
@@ -100,6 +103,7 @@
 	utils/importing.py \
 	utils/testarray.py
 
+
 if ENABLE_TETGEN
   nobase_pkgpyexec_PYTHON += topology/MeshGenSimple.py
 endif

Copied: short/3D/PyLith/trunk/pylith/bc/BCFourSides.py (from rev 7163, short/3D/PyLith/trunk/pylith/problems/BCQuadrilateral.py)
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/BCQuadrilateral.py	2007-06-12 17:09:52 UTC (rev 7163)
+++ short/3D/PyLith/trunk/pylith/bc/BCFourSides.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,106 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# <LicenseText>
+#
+# ----------------------------------------------------------------------
+#
+
+## @file pylith/bc/BCFourSides.py
+##
+## @brief Python boundary conditions container for a 2-D quadrilateral.
+##
+## Boundary conditions can be applied to any of the four edges.
+##
+## Factory: object_bin
+
+from pylith.utils.ObjectBin import ObjectBin
+
+# BCFourSides class
+class BCFourSides(ObjectBin):
+  """
+  Python boundary conditions container for a 2-D quadrilateral.
+
+  Boundary conditions can be applied to any of the four edges.
+
+  Factory: object_bin
+  """
+
+  # INVENTORY //////////////////////////////////////////////////////////
+
+  class Inventory(ObjectBin.Inventory):
+    """
+    Python object for managing BCFourSides facilities and properties.
+    """
+    
+    ## @class Inventory
+    ## Python object for managing BCFourSides facilities and properties.
+    ##
+    ## \b Properties
+    ## @li None
+    ##
+    ## \b Facilities
+    ## @li \b x_pos Boundary condition on +x face of 2-D box.
+    ## @li \b x_neg Boundary condition on -x face of 2-D box.
+    ## @li \b y_pos Boundary condition on +y face of 2-D box.
+    ## @li \b y_neg Boundary condition on -y face of 2-D box.
+
+    import pyre.inventory
+    
+    from pylith.bc.Dirichlet import Dirichlet
+
+    xPos = pyre.inventory.facility("x_pos", family="boundary_condition",
+                                   factory=Dirichlet)
+    xPos.meta['tip'] = "Boundary condition on +x face of 2-D box."
+
+    xNeg = pyre.inventory.facility("x_neg", family="boundary_condition",
+                                   factory=Dirichlet)
+    xNeg.meta['tip'] = "Boundary condition on -x face of 2-D box."
+
+    yPos = pyre.inventory.facility("y_pos", family="boundary_condition",
+                                   factory=Dirichlet)
+    yPos.meta['tip'] = "Boundary condition on +y face of 2-D box."
+
+    yNeg = pyre.inventory.facility("y_neg", family="boundary_condition",
+                                   factory=Dirichlet)
+    yNeg.meta['tip'] = "Boundary condition on -y face of 2-D box."
+
+
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+
+  def __init__(self, name="bcfoursides"):
+    """
+    Constructor.
+    """
+    ObjectBin.__init__(self, name)
+    return
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Set attributes from inventory.
+    """
+    ObjectBin._configure(self)
+    self.bin = [self.inventory.xPos,
+                self.inventory.xNeg,
+                self.inventory.yPos,
+                self.inventory.yNeg]
+    return
+
+  
+# FACTORIES ////////////////////////////////////////////////////////////
+
+def object_bin():
+  """
+  Factory associated with BCFourSides.
+  """
+  return BCFourSides()
+
+
+# End of file 

Added: short/3D/PyLith/trunk/pylith/bc/BCSingle.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/BCSingle.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/bc/BCSingle.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,84 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# <LicenseText>
+#
+# ----------------------------------------------------------------------
+#
+
+## @file pylith/bc/BCSingle.py
+##
+## @brief Python boundary conditions container for one boundary condition.
+##
+## Factory: object_bin
+
+from pylith.utils.ObjectBin import ObjectBin
+
+# BCSingle class
+class BCSingle(ObjectBin):
+  """
+  Python boundary conditions container for one boundary condition.
+
+  Factory: object_bin
+  """
+
+  # INVENTORY //////////////////////////////////////////////////////////
+
+  class Inventory(ObjectBin.Inventory):
+    """
+    Python object for managing BCSingle facilities and properties.
+    """
+    
+    ## @class Inventory
+    ## Python object for managing BCSingle facilities and properties.
+    ##
+    ## \b Properties
+    ## @li None
+    ##
+    ## \b Facilities
+    ## @li \b bc Boundary condition.
+
+    import pyre.inventory
+    
+    from pylith.bc.Dirichlet import Dirichlet
+
+    bc = pyre.inventory.facility("bc", family="boundary_condition",
+                                 factory=Dirichlet)
+    bc.meta['tip'] = "Boundary condition."
+
+
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+
+  def __init__(self, name="bcsingle"):
+    """
+    Constructor.
+    """
+    ObjectBin.__init__(self, name)
+    return
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Set attributes from inventory.
+    """
+    ObjectBin._configure(self)
+    self.bin = [self.inventory.bc]
+    return
+
+  
+# FACTORIES ////////////////////////////////////////////////////////////
+
+def object_bin():
+  """
+  Factory associated with BCSingle.
+  """
+  return BCSingle()
+
+
+# End of file 

Copied: short/3D/PyLith/trunk/pylith/bc/BCSixSides.py (from rev 7163, short/3D/PyLith/trunk/pylith/problems/BCPrism.py)
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/BCPrism.py	2007-06-12 17:09:52 UTC (rev 7163)
+++ short/3D/PyLith/trunk/pylith/bc/BCSixSides.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,118 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# <LicenseText>
+#
+# ----------------------------------------------------------------------
+#
+
+## @file pylith/bc/BCSixSides.py
+##
+## @brief Python boundary conditions container for a 3-D box.
+##
+## Boundary conditions can be applied to any of the six faces.
+##
+## Factory: object_bin
+
+from pylith.utils.ObjectBin import ObjectBin
+
+# BCSixSides class
+class BCSixSides(ObjectBin):
+  """
+  Python boundary conditions container for a 3-D box.
+
+  Boundary conditions can be applied to any of the six faces.
+
+  Factory: object_bin
+  """
+
+  # INVENTORY //////////////////////////////////////////////////////////
+
+  class Inventory(ObjectBin.Inventory):
+    """
+    Python object for managing BCSixSides facilities and properties.
+    """
+    
+    ## @class Inventory
+    ## Python object for managing BCSixSides facilities and properties.
+    ##
+    ## \b Properties
+    ## @li None
+    ##
+    ## \b Facilities
+    ## @li \b x_pos Boundary condition on +x face of 3-D box.
+    ## @li \b x_neg Boundary condition on -x face of 3-D box.
+    ## @li \b y_pos Boundary condition on +y face of 3-D box.
+    ## @li \b y_neg Boundary condition on -y face of 3-D box.
+    ## @li \b z_pos Boundary condition on +z face of 3-D box.
+    ## @li \b z_neg Boundary condition on -z face of 3-D box.
+
+    import pyre.inventory
+    
+    from pylith.bc.Dirichlet import Dirichlet
+
+    xPos = pyre.inventory.facility("x_pos", family="boundary_condition",
+                                   factory=Dirichlet)
+    xPos.meta['tip'] = "Boundary condition on +x face of 3-D box."
+
+    xNeg = pyre.inventory.facility("x_neg", family="boundary_condition",
+                                   factory=Dirichlet)
+    xNeg.meta['tip'] = "Boundary condition on -x face of 3-D box."
+
+    yPos = pyre.inventory.facility("y_pos", family="boundary_condition",
+                                   factory=Dirichlet)
+    yPos.meta['tip'] = "Boundary condition on +y face of 3-D box."
+
+    yNeg = pyre.inventory.facility("y_neg", family="boundary_condition",
+                                   factory=Dirichlet)
+    yNeg.meta['tip'] = "Boundary condition on -y face of 3-D box."
+
+    zPos = pyre.inventory.facility("z_pos", family="boundary_condition",
+                                   factory=Dirichlet)
+    zPos.meta['tip'] = "Boundary condition on +z face of 3-D box."
+
+    zNeg = pyre.inventory.facility("z_neg", family="boundary_condition",
+                                   factory=Dirichlet)
+    zNeg.meta['tip'] = "Boundary condition on -z face of 3-D box."
+
+
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+
+  def __init__(self, name="bcsixsides"):
+    """
+    Constructor.
+    """
+    ObjectBin.__init__(self, name)
+    return
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Set attributes from inventory.
+    """
+    ObjectBin._configure(self)
+    self.bin = [self.inventory.xPos,
+                self.inventory.xNeg,
+                self.inventory.yPos,
+                self.inventory.yNeg,
+                self.inventory.zPos,
+                self.inventory.zNeg]
+    return
+
+  
+# FACTORIES ////////////////////////////////////////////////////////////
+
+def object_bin():
+  """
+  Factory associated with BCSixSides.
+  """
+  return BCSixSides()
+
+
+# End of file 

Added: short/3D/PyLith/trunk/pylith/bc/BCTwoSides.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/BCTwoSides.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/bc/BCTwoSides.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# <LicenseText>
+#
+# ----------------------------------------------------------------------
+#
+
+## @file pylith/bc/BCTwoSides.py
+##
+## @brief Python boundary conditions container for a 1-D box.
+##
+## Boundary conditions can be applied to any two points.
+##
+## Factory: object_bin
+
+from pylith.utils.ObjectBin import ObjectBin
+
+# BCTwoSides class
+class BCTwoSides(ObjectBin):
+  """
+  Python boundary conditions container for a 1-D box.
+
+  Boundary conditions can be applied to any two points.
+
+  Factory: object_bin
+  """
+
+  # INVENTORY //////////////////////////////////////////////////////////
+
+  class Inventory(ObjectBin.Inventory):
+    """
+    Python object for managing BCTwoSides facilities and properties.
+    """
+    
+    ## @class Inventory
+    ## Python object for managing BCTwoSides facilities and properties.
+    ##
+    ## \b Properties
+    ## @li None
+    ##
+    ## \b Facilities
+    ## @li \b pos Boundary condition on +x face of 1-D box.
+    ## @li \b neg Boundary condition on -x face of 1-D box.
+
+    import pyre.inventory
+    
+    from pylith.bc.Dirichlet import Dirichlet
+
+    pos = pyre.inventory.facility("pos", family="boundary_condition",
+                                  factory=Dirichlet)
+    pos.meta['tip'] = "Boundary condition on positive face of 1-D box."
+    
+    neg = pyre.inventory.facility("neg", family="boundary_condition",
+                                  factory=Dirichlet)
+    neg.meta['tip'] = "Boundary condition on negative face of 1-D box."
+
+
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+
+  def __init__(self, name="bctwosides"):
+    """
+    Constructor.
+    """
+    ObjectBin.__init__(self, name)
+    return
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Set attributes from inventory.
+    """
+    ObjectBin._configure(self)
+    self.bin = [self.inventory.pos,
+                self.inventory.neg]
+    return
+
+  
+# FACTORIES ////////////////////////////////////////////////////////////
+
+def object_bin():
+  """
+  Factory associated with BCTwoSides.
+  """
+  return BCTwoSides()
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/pylith/bc/__init__.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/__init__.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/bc/__init__.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -14,7 +14,11 @@
 ##
 ## @brief Python PyLith boundary condition module initialization
 
-__all__ = ['BoundaryCondition',
+__all__ = ['BCFourSides',
+           'BCSingle',
+           'BCSixSides',
+           'BCTwoSides',
+           'BoundaryCondition',
            'BCIntegrator',
            'Dirichlet']
 

Added: short/3D/PyLith/trunk/pylith/materials/BiMaterial.py
===================================================================
--- short/3D/PyLith/trunk/pylith/materials/BiMaterial.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/materials/BiMaterial.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# <LicenseText>
+#
+# ----------------------------------------------------------------------
+#
+
+## @file pylith/materials/BiMaterial.py
+##
+## @brief Python materials container with one material.
+##
+## Factory: object_bin
+
+from pylith.utils.ObjectBin import ObjectBin
+
+# BiMaterial class
+class BiMaterial(ObjectBin):
+  """
+  Python materials container with two materials.
+
+  Factory: object_bin
+  """
+
+  # INVENTORY //////////////////////////////////////////////////////////
+
+  class Inventory(ObjectBin.Inventory):
+    """
+    Python object for managing BiMaterial facilities and properties.
+    """
+    
+    ## @class Inventory
+    ## Python object for managing BiMaterial facilities and properties.
+    ##
+    ## \b Properties
+    ## @li None
+    ##
+    ## \b Facilities
+    ## @li \b one One material in problem
+    ## @li \b two Other material in problem.
+
+    import pyre.inventory
+
+    from ElasticIsotropic3D import ElasticIsotropic3D
+
+    one = pyre.inventory.facility("one", family="material",
+                                  factory=ElasticIsotropic3D)
+    one.meta['tip'] = "One material in problem."
+    
+    two = pyre.inventory.facility("two", family="material",
+                                  factory=ElasticIsotropic3D)
+    two.meta['tip'] = "Other material in problem."
+
+
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+
+  def __init__(self, name="homogeneous"):
+    """
+    Constructor.
+    """
+    ObjectBin.__init__(self, name)
+    return
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Set attributes from inventory.
+    """
+    ObjectBin._configure(self)
+    self.bin = [self.inventory.one,
+                self.inventory.two]
+    return
+
+  
+# FACTORIES ////////////////////////////////////////////////////////////
+
+def materials_bin():
+  """
+  Factory associated with BiMaterial.
+  """
+  return BiMaterial()
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/pylith/materials/__init__.py
===================================================================
--- short/3D/PyLith/trunk/pylith/materials/__init__.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/materials/__init__.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -14,7 +14,8 @@
 
 ## @brief Python PyLith materials module initialization
 
-__all__ = ['ElasticMaterial',
+__all__ = ['BiMaterial',
+           'ElasticMaterial',
            'ElasticIsotropic3D',
            'ElasticPlaneStrain',
            'ElasticPlaneStress',

Deleted: short/3D/PyLith/trunk/pylith/problems/BCPrism.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/BCPrism.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/problems/BCPrism.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,118 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# <LicenseText>
-#
-# ----------------------------------------------------------------------
-#
-
-## @file pylith/problems/BCPrism.py
-##
-## @brief Python boundary conditions container for a 3-D prism.
-##
-## Boundary conditions can be applied to any of the six faces.
-##
-## Factory: object_bin
-
-from pylith.utils.ObjectBin import ObjectBin
-
-# BCPrism class
-class BCPrism(ObjectBin):
-  """
-  Python boundary conditions container for a 3-D prism.
-
-  Boundary conditions can be applied to any of the six faces.
-
-  Factory: object_bin
-  """
-
-  # INVENTORY //////////////////////////////////////////////////////////
-
-  class Inventory(ObjectBin.Inventory):
-    """
-    Python object for managing BCPrism facilities and properties.
-    """
-    
-    ## @class Inventory
-    ## Python object for managing BCPrism facilities and properties.
-    ##
-    ## \b Properties
-    ## @li None
-    ##
-    ## \b Facilities
-    ## @li \b x_pos Boundary condition on +x face of prism.
-    ## @li \b x_neg Boundary condition on -x face of prism.
-    ## @li \b y_pos Boundary condition on +y face of prism.
-    ## @li \b y_neg Boundary condition on -y face of prism.
-    ## @li \b z_pos Boundary condition on +z face of prism.
-    ## @li \b z_neg Boundary condition on -z face of prism.
-
-    import pyre.inventory
-    
-    from pylith.bc.Dirichlet import Dirichlet
-
-    xPos = pyre.inventory.facility("x_pos", family="boundary_condition",
-                                   factory=Dirichlet)
-    xPos.meta['tip'] = "Boundary condition on +x face of prism."
-
-    xNeg = pyre.inventory.facility("x_neg", family="boundary_condition",
-                                   factory=Dirichlet)
-    xNeg.meta['tip'] = "Boundary condition on -x face of prism."
-
-    yPos = pyre.inventory.facility("y_pos", family="boundary_condition",
-                                   factory=Dirichlet)
-    yPos.meta['tip'] = "Boundary condition on +y face of prism."
-
-    yNeg = pyre.inventory.facility("y_neg", family="boundary_condition",
-                                   factory=Dirichlet)
-    yNeg.meta['tip'] = "Boundary condition on -y face of prism."
-
-    zPos = pyre.inventory.facility("z_pos", family="boundary_condition",
-                                   factory=Dirichlet)
-    zPos.meta['tip'] = "Boundary condition on +z face of prism."
-
-    zNeg = pyre.inventory.facility("z_neg", family="boundary_condition",
-                                   factory=Dirichlet)
-    zNeg.meta['tip'] = "Boundary condition on -z face of prism."
-
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="bcprism"):
-    """
-    Constructor.
-    """
-    ObjectBin.__init__(self, name)
-    return
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set attributes from inventory.
-    """
-    ObjectBin._configure(self)
-    self.bin = [self.inventory.xPos,
-                self.inventory.xNeg,
-                self.inventory.yPos,
-                self.inventory.yNeg,
-                self.inventory.zPos,
-                self.inventory.zNeg]
-    return
-
-  
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def object_bin():
-  """
-  Factory associated with BCPrism.
-  """
-  return BCPrism()
-
-
-# End of file 

Deleted: short/3D/PyLith/trunk/pylith/problems/BCQuadrilateral.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/BCQuadrilateral.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/problems/BCQuadrilateral.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,106 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# <LicenseText>
-#
-# ----------------------------------------------------------------------
-#
-
-## @file pylith/problems/BCQuadrilateral.py
-##
-## @brief Python boundary conditions container for a 2-D quadrilateral.
-##
-## Boundary conditions can be applied to any of the four edges.
-##
-## Factory: object_bin
-
-from pylith.utils.ObjectBin import ObjectBin
-
-# BCQuadrilateral class
-class BCQuadrilateral(ObjectBin):
-  """
-  Python boundary conditions container for a 2-D quadrilateral.
-
-  Boundary conditions can be applied to any of the four edges.
-
-  Factory: object_bin
-  """
-
-  # INVENTORY //////////////////////////////////////////////////////////
-
-  class Inventory(ObjectBin.Inventory):
-    """
-    Python object for managing BCQuadrilateral facilities and properties.
-    """
-    
-    ## @class Inventory
-    ## Python object for managing BCQuadrilateral facilities and properties.
-    ##
-    ## \b Properties
-    ## @li None
-    ##
-    ## \b Facilities
-    ## @li \b x_pos Boundary condition on +x face of prism.
-    ## @li \b x_neg Boundary condition on -x face of prism.
-    ## @li \b y_pos Boundary condition on +y face of prism.
-    ## @li \b y_neg Boundary condition on -y face of prism.
-
-    import pyre.inventory
-    
-    from pylith.bc.Dirichlet import Dirichlet
-
-    xPos = pyre.inventory.facility("x_pos", family="boundary_condition",
-                                   factory=Dirichlet)
-    xPos.meta['tip'] = "Boundary condition on +x face of prism."
-
-    xNeg = pyre.inventory.facility("x_neg", family="boundary_condition",
-                                   factory=Dirichlet)
-    xNeg.meta['tip'] = "Boundary condition on -x face of prism."
-
-    yPos = pyre.inventory.facility("y_pos", family="boundary_condition",
-                                   factory=Dirichlet)
-    yPos.meta['tip'] = "Boundary condition on +y face of prism."
-
-    yNeg = pyre.inventory.facility("y_neg", family="boundary_condition",
-                                   factory=Dirichlet)
-    yNeg.meta['tip'] = "Boundary condition on -y face of prism."
-
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="bcquadrilateral"):
-    """
-    Constructor.
-    """
-    ObjectBin.__init__(self, name)
-    return
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set attributes from inventory.
-    """
-    ObjectBin._configure(self)
-    self.bin = [self.inventory.xPos,
-                self.inventory.xNeg,
-                self.inventory.yPos,
-                self.inventory.yNeg]
-    return
-
-  
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def object_bin():
-  """
-  Factory associated with BCQuadrilateral.
-  """
-  return BCQuadrilateral()
-
-
-# End of file 

Modified: short/3D/PyLith/trunk/pylith/problems/__init__.py
===================================================================
--- short/3D/PyLith/trunk/pylith/problems/__init__.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/pylith/problems/__init__.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -14,9 +14,7 @@
 ##
 ## @brief Python PyLith crustal dynamics problems module initialization
 
-__all__ = ['BCPrism',
-           'BCQuadrilateral',
-           'EqDeformation',
+__all__ = ['EqDeformation',
            'Explicit',
            'Implicit',
            'Problem',

Modified: short/3D/PyLith/trunk/tests/1d/line2/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/Makefile.am	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/1d/line2/Makefile.am	2007-06-12 19:07:31 UTC (rev 7166)
@@ -20,7 +20,6 @@
 noinst_DATA = \
 	bar.mesh \
 	axialextension.cfg \
-	bcsingle.odb \
 	dispbc.spatialdb \
 	matprops.spatialdb
 

Modified: short/3D/PyLith/trunk/tests/1d/line2/axialextension.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/axialextension.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/1d/line2/axialextension.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -34,7 +34,7 @@
 default_dt = 1.0*s
 dimension = 1
 formulation = pylith.problems.Implicit
-bc = bcsingle
+bc = pylith.bc.BCSingle
 
 # ----------------------------------------------------------------------
 # materials

Deleted: short/3D/PyLith/trunk/tests/1d/line2/bcsingle.odb
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line2/bcsingle.odb	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/1d/line2/bcsingle.odb	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# <LicenseText>
-#
-# ----------------------------------------------------------------------
-#
-
-from pylith.utils.ObjectBin import ObjectBin
-
-# BCSingle class
-class BCSingle(ObjectBin):
-  """
-  Python boundary conditions container for a single boundary condition.
-
-  Factory: boundary_conditions
-  """
-
-  # INVENTORY //////////////////////////////////////////////////////////
-
-  class Inventory(ObjectBin.Inventory):
-    """
-    Python object for managing BCSingle facilities and properties.
-    """
-    
-    ## @class Inventory
-    ## Python object for managing BCSingle facilities and properties.
-    ##
-    ## \b Properties
-    ## @li None
-    ##
-    ## \b Facilities
-    ## @li \b bc Boundary condition.
-
-    import pyre.inventory
-    
-    from pylith.bc.Dirichlet import Dirichlet
-
-    bc = pyre.inventory.facility("bc", family="boundary_condition",
-                                   factory=Dirichlet)
-    bc.meta['tip'] = "Boundary condition."
-
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="bcsingle"):
-    """
-    Constructor.
-    """
-    ObjectBin.__init__(self, name)
-    return
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set attributes from inventory.
-    """
-    ObjectBin._configure(self)
-    self.bin = [self.inventory.bc]
-    return
-
-  
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def object_bin():
-  """
-  Factory associated with BCSingle.
-  """
-  return BCSingle()
-
-
-# End of file 

Modified: short/3D/PyLith/trunk/tests/1d/line3/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line3/Makefile.am	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/1d/line3/Makefile.am	2007-06-12 19:07:31 UTC (rev 7166)
@@ -20,7 +20,6 @@
 noinst_DATA = \
 	bar.mesh \
 	axialextension.cfg \
-	bcsingle.odb \
 	dispbc.spatialdb \
 	matprops.spatialdb
 

Modified: short/3D/PyLith/trunk/tests/1d/line3/axialextension.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line3/axialextension.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/1d/line3/axialextension.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -34,7 +34,7 @@
 default_dt = 1.0*s
 dimension = 1
 formulation = pylith.problems.Implicit
-bc = bcsingle
+bc = pylith.bc.BCSingle
 
 # ----------------------------------------------------------------------
 # materials

Deleted: short/3D/PyLith/trunk/tests/1d/line3/bcsingle.odb
===================================================================
--- short/3D/PyLith/trunk/tests/1d/line3/bcsingle.odb	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/1d/line3/bcsingle.odb	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-#                           Brad T. Aagaard
-#                        U.S. Geological Survey
-#
-# <LicenseText>
-#
-# ----------------------------------------------------------------------
-#
-
-from pylith.utils.ObjectBin import ObjectBin
-
-# BCSingle class
-class BCSingle(ObjectBin):
-  """
-  Python boundary conditions container for a single boundary condition.
-
-  Factory: boundary_conditions
-  """
-
-  # INVENTORY //////////////////////////////////////////////////////////
-
-  class Inventory(ObjectBin.Inventory):
-    """
-    Python object for managing BCSingle facilities and properties.
-    """
-    
-    ## @class Inventory
-    ## Python object for managing BCSingle facilities and properties.
-    ##
-    ## \b Properties
-    ## @li None
-    ##
-    ## \b Facilities
-    ## @li \b bc Boundary condition.
-
-    import pyre.inventory
-    
-    from pylith.bc.Dirichlet import Dirichlet
-
-    bc = pyre.inventory.facility("bc", family="boundary_condition",
-                                   factory=Dirichlet)
-    bc.meta['tip'] = "Boundary condition."
-
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="bcsingle"):
-    """
-    Constructor.
-    """
-    ObjectBin.__init__(self, name)
-    return
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set attributes from inventory.
-    """
-    ObjectBin._configure(self)
-    self.bin = [self.inventory.bc]
-    return
-
-  
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def object_bin():
-  """
-  Factory associated with BCSingle.
-  """
-  return BCSingle()
-
-
-# End of file 

Modified: short/3D/PyLith/trunk/tests/2d/quad4/axialplanestrain.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/axialplanestrain.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/axialplanestrain.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -35,7 +35,7 @@
 default_dt = 1.0*s
 dimension = 2
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCQuadrilateral
+bc = pylith.problems.BCFourSides
 
 # ----------------------------------------------------------------------
 # materials

Modified: short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -35,7 +35,7 @@
 default_dt = 1.0*s
 dimension = 2
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCQuadrilateral
+bc = pylith.problems.BCFourSides
 
 # ----------------------------------------------------------------------
 # materials

Modified: short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain_free.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain_free.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain_free.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -35,7 +35,7 @@
 default_dt = 1.0*s
 dimension = 2
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCQuadrilateral
+bc = pylith.problems.BCFourSides
 
 # ----------------------------------------------------------------------
 # materials

Modified: short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain_xfixed.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain_xfixed.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/shearplanestrain_xfixed.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -35,7 +35,7 @@
 default_dt = 1.0*s
 dimension = 2
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCQuadrilateral
+bc = pylith.problems.BCFourSides
 
 # ----------------------------------------------------------------------
 # materials

Deleted: short/3D/PyLith/trunk/tests/2d/quad4/threequad4.mesh~
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/threequad4.mesh~	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/threequad4.mesh~	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,72 +0,0 @@
-mesh = {
-  dimension = 2
-  use-index-zero = true
-  vertices = {
-    dimension = 2
-    count = 8
-    coordinates = {
-             0     -3.0 -1.0
-             1     -1.0 -1.0
-             2      1.0 -1.0
-             3      3.0 -1.0
-             4     -3.0  1.0
-             5     -1.0  1.0
-             6      1.0  1.0
-             7      3.0  1.0
-    }
-  }
-  cells = {
-    count = 3
-    num-corners = 4
-    simplices = {
-             0       0  1  5  4
-             1       1  2  6  5
-             2       2  3  7  6
-    }
-    material-ids = {
-             0   0
-             1   0
-             2   0
-    }
-  }
-  group = {
-    name = x_neg
-    type = vertices
-    count = 2
-    indices = {
-      0
-      4
-    }
-  }
-  group = {
-    name = x_pos
-    type = vertices
-    count = 2
-    indices = {
-      3
-      7
-    }
-  }
-  group = {
-    name = y_neg
-    type = vertices
-    count = 4
-    indices = {
-      0
-      1
-      2
-      3
-    }
-  }
-  group = {
-    name = y_pos
-    type = vertices
-    count = 4
-    indices = {
-      4
-      5
-      6
-      7
-    }
-  }
-}

Modified: short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -34,7 +34,7 @@
 default_dt = 1.0*s
 dimension = 2
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCQuadrilateral
+bc = pylith.problems.BCFourSides
 
 # ----------------------------------------------------------------------
 # materials

Deleted: short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.cfg~
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.cfg~	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.cfg~	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,98 +0,0 @@
-# -*- Python -*-
-[pylithapp]
-
-# ----------------------------------------------------------------------
-# journal
-# ----------------------------------------------------------------------
-[pylithapp.journal.info]
-timedependent = 1
-explicit = 1
-implicit = 1
-petsc = 1
-solverlinear = 1
-meshioascii = 1
-homogeneous = 1
-explicitelasticity = 1
-quadrature2d = 1
-fiatlagrange = 1
-
-# ----------------------------------------------------------------------
-# mesh_generator
-# ----------------------------------------------------------------------
-[pylithapp.mesh_generator]
-debug = 1
-
-[pylithapp.mesh_generator.importer]
-filename = threequad4.mesh
-coordsys.space_dim = 2
-
-# ----------------------------------------------------------------------
-# problem
-# ----------------------------------------------------------------------
-[pylithapp.timedependent]
-total_time = 0.0*s
-default_dt = 1.0*s
-dimension = 2
-formulation = pylith.problems.Implicit
-bc = pylith.problems.BCQuadrilateral
-
-# ----------------------------------------------------------------------
-# materials
-# ----------------------------------------------------------------------
-[pylithapp.timedependent.materials]
-material = pylith.materials.ElasticPlaneStrain
-
-[pylithapp.timedependent.materials.material]
-label = elastic material
-id = 0
-db.iohandler.filename = matprops.spatialdb
-quadrature = pylith.feassemble.quadrature.Quadrature2D
-quadrature.cell = pylith.feassemble.FIATLagrange
-quadrature.cell.dimension = 2
-
-# ----------------------------------------------------------------------
-# boundary conditions
-# ----------------------------------------------------------------------
-[pylithapp.timedependent.bc.x_neg]
-fixed_dof = [0, 1]
-id = 10
-label = x_neg
-db.label = Dirichlet BC -x edge
-db.iohandler.filename = threequad4_shear.spatialdb
-db.query_type = linear
-
-[pylithapp.timedependent.bc.x_pos]
-fixed_dof = [0, 1]
-id = 11
-label = x_pos
-db.label = Dirichlet BC +x edge
-db.iohandler.filename = threequad4_shear.spatialdb
-db.query_type = linear
-
-[pylithapp.timedependent.bc.y_pos]
-fixed_dof = [0, 1]
-id = 12
-label = y_pos
-db.label = Dirichlet BC +y edge
-db.iohandler.filename = threequad4_shear.spatialdb
-db.query_type = linear
-
-[pylithapp.timedependent.bc.y_neg]
-fixed_dof = [0, 1]
-id = 13
-label = y_neg
-db.label = Dirichlet BC -y edge
-db.iohandler.filename = threequad4_shear.spatialdb
-db.query_type = linear
-
-# ----------------------------------------------------------------------
-# PETSc
-# ----------------------------------------------------------------------
-[pylithapp.petsc]
-pc_type = jacobi
-
-# ----------------------------------------------------------------------
-# output
-# ----------------------------------------------------------------------
-[pylithapp.problem.formulation.output.output]
-filename = threequad4_shear.vtk

Deleted: short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.spatialdb~
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.spatialdb~	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.spatialdb~	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,15 +0,0 @@
-#SPATIAL.ascii 1
-SimpleDB {
-  num-values = 2
-  value-names =  dof-0  dof-1
-  value-units =  m  m
-  num-locs = 2
-  data-dim = 1
-  space-dim = 2
-  cs-data = cartesian {
-    to-meters = 1.0
-    space-dim = 2
-  }
-}
--250.0  0.0    0.0  -1.0
-+250.0  0.0    0.0  +1.0

Deleted: short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.vtk
===================================================================
--- short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.vtk	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/quad4/threequad4_shear.vtk	2007-06-12 19:07:31 UTC (rev 7166)
@@ -1,32 +0,0 @@
-# vtk DataFile Version 2.0
-Simplicial Mesh Example
-ASCII
-DATASET UNSTRUCTURED_GRID
-POINTS 8 double
--3 -1 0.0
--1 -1 0.0
-1 -1 0.0
-3 -1 0.0
--3 1 0.0
--1 1 0.0
-1 1 0.0
-3 1 0.0
-CELLS 3 15
-4  0 1 5 4
-4  1 2 6 5
-4  2 3 7 6
-CELL_TYPES 3
-9
-9
-9
-POINT_DATA 8
-SCALARS displacements double 2
-LOOKUP_TABLE default
-0 -3
-0 0.248062
-0 0.403101
-0 3
-0 -3
-0 -0.403101
-0 -0.248062
-0 3

Modified: short/3D/PyLith/trunk/tests/2d/tri3/axialplanestrain.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/tri3/axialplanestrain.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/tri3/axialplanestrain.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -35,7 +35,7 @@
 default_dt = 1.0*s
 dimension = 2
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCQuadrilateral
+bc = pylith.problems.BCFourSides
 
 # ----------------------------------------------------------------------
 # materials

Modified: short/3D/PyLith/trunk/tests/2d/tri3/shearplanestrain.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/tri3/shearplanestrain.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/2d/tri3/shearplanestrain.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -35,7 +35,7 @@
 default_dt = 1.0*s
 dimension = 2
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCQuadrilateral
+bc = pylith.problems.BCFourSides
 
 # ----------------------------------------------------------------------
 # materials

Modified: short/3D/PyLith/trunk/tests/3d/hex8/axialelasticisotropic.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/3d/hex8/axialelasticisotropic.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/3d/hex8/axialelasticisotropic.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -35,7 +35,7 @@
 default_dt = 1.0*s
 dimension = 3
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCPrism
+bc = pylith.problems.BCSixSides
 
 # ----------------------------------------------------------------------
 # materials

Modified: short/3D/PyLith/trunk/tests/3d/tet4/axialelasticisotropic.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/3d/tet4/axialelasticisotropic.cfg	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/tests/3d/tet4/axialelasticisotropic.cfg	2007-06-12 19:07:31 UTC (rev 7166)
@@ -35,7 +35,7 @@
 default_dt = 1.0*s
 dimension = 3
 formulation = pylith.problems.Implicit
-bc = pylith.problems.BCPrism
+bc = pylith.problems.BCSixSides
 
 # ----------------------------------------------------------------------
 # materials

Modified: short/3D/PyLith/trunk/unittests/pytests/bc/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/Makefile.am	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/Makefile.am	2007-06-12 19:07:31 UTC (rev 7166)
@@ -20,7 +20,11 @@
 check_SCRIPTS = testbc.py
 
 noinst_PYTHON = \
-	TestDirichlet.py
+	TestDirichlet.py \
+	TestBCSingle.py \
+	TestBCTwoSides.py \
+	TestBCFourSides.py \
+	TestBCSixSides.py
 
 TESTS_ENVIRONMENT = $(PYTHON)
 

Added: short/3D/PyLith/trunk/unittests/pytests/bc/TestBCFourSides.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/TestBCFourSides.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/TestBCFourSides.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+## @file unittests/pytests/bc/TestBCFourSides.py
+
+## @brief Unit testing of BCFourSides object.
+
+import unittest
+
+# ----------------------------------------------------------------------
+class TestBCFourSides(unittest.TestCase):
+  """
+  Unit testing of BCFourSides object.
+  """
+
+  def test_constructor(self):
+    """
+    Test constructor.
+    """
+    from pylith.bc.BCFourSides import BCFourSides
+    bc = BCFourSides()
+    return
+
+
+  def test_configure(self):
+    """
+    Test _configure().
+    """
+    from pylith.bc.BCFourSides import BCFourSides
+    bc = BCFourSides()
+    from pylith.bc.Dirichlet import Dirichlet
+    bc.inventory.xNeg = Dirichlet()
+    bc.inventory.xPos = Dirichlet()
+    bc.inventory.yNeg = Dirichlet()
+    bc.inventory.yPos = Dirichlet()
+    bc._configure()
+    self.assertEqual(4, len(bc.bin))
+    return
+
+
+# End of file 

Added: short/3D/PyLith/trunk/unittests/pytests/bc/TestBCSingle.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/TestBCSingle.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/TestBCSingle.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+## @file unittests/pytests/bc/TestBCSingle.py
+
+## @brief Unit testing of BCSingle object.
+
+import unittest
+
+# ----------------------------------------------------------------------
+class TestBCSingle(unittest.TestCase):
+  """
+  Unit testing of BCSingle object.
+  """
+
+  def test_constructor(self):
+    """
+    Test constructor.
+    """
+    from pylith.bc.BCSingle import BCSingle
+    bc = BCSingle()
+    return
+
+
+  def test_configure(self):
+    """
+    Test _configure().
+    """
+    from pylith.bc.BCSingle import BCSingle
+    bc = BCSingle()
+    from pylith.bc.Dirichlet import Dirichlet
+    bc.inventory.bc = Dirichlet()
+    bc._configure()
+    self.assertEqual(1, len(bc.bin))
+    return
+
+
+# End of file 

Added: short/3D/PyLith/trunk/unittests/pytests/bc/TestBCSixSides.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/TestBCSixSides.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/TestBCSixSides.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+## @file unittests/pytests/bc/TestBCSixSides.py
+
+## @brief Unit testing of BCSixSides object.
+
+import unittest
+
+# ----------------------------------------------------------------------
+class TestBCSixSides(unittest.TestCase):
+  """
+  Unit testing of BCSixSides object.
+  """
+
+  def test_constructor(self):
+    """
+    Test constructor.
+    """
+    from pylith.bc.BCSixSides import BCSixSides
+    bc = BCSixSides()
+    return
+
+
+  def test_configure(self):
+    """
+    Test _configure().
+    """
+    from pylith.bc.BCSixSides import BCSixSides
+    bc = BCSixSides()
+    from pylith.bc.Dirichlet import Dirichlet
+    bc.inventory.xNeg = Dirichlet()
+    bc.inventory.xPos = Dirichlet()
+    bc.inventory.yNeg = Dirichlet()
+    bc.inventory.yPos = Dirichlet()
+    bc.inventory.zNeg = Dirichlet()
+    bc.inventory.zPos = Dirichlet()
+    bc._configure()
+    self.assertEqual(6, len(bc.bin))
+    return
+
+
+# End of file 

Added: short/3D/PyLith/trunk/unittests/pytests/bc/TestBCTwoSides.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/TestBCTwoSides.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/TestBCTwoSides.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+## @file unittests/pytests/bc/TestBCTwoSides.py
+
+## @brief Unit testing of BCTwoSides object.
+
+import unittest
+
+# ----------------------------------------------------------------------
+class TestBCTwoSides(unittest.TestCase):
+  """
+  Unit testing of BCTwoSides object.
+  """
+
+  def test_constructor(self):
+    """
+    Test constructor.
+    """
+    from pylith.bc.BCTwoSides import BCTwoSides
+    bc = BCTwoSides()
+    return
+
+
+  def test_configure(self):
+    """
+    Test _configure().
+    """
+    from pylith.bc.BCTwoSides import BCTwoSides
+    bc = BCTwoSides()
+    from pylith.bc.Dirichlet import Dirichlet
+    bc.inventory.neg = Dirichlet()
+    bc.inventory.pos = Dirichlet()
+    bc._configure()
+    self.assertEqual(2, len(bc.bin))
+    return
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/unittests/pytests/bc/testbc.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/testbc.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/testbc.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -59,6 +59,18 @@
     from TestDirichlet import TestDirichlet
     suite.addTest(unittest.makeSuite(TestDirichlet))
 
+    from TestBCSingle import TestBCSingle
+    suite.addTest(unittest.makeSuite(TestBCSingle))
+
+    from TestBCTwoSides import TestBCTwoSides
+    suite.addTest(unittest.makeSuite(TestBCTwoSides))
+
+    from TestBCFourSides import TestBCFourSides
+    suite.addTest(unittest.makeSuite(TestBCFourSides))
+
+    from TestBCSixSides import TestBCSixSides
+    suite.addTest(unittest.makeSuite(TestBCSixSides))
+
     return suite
 
 

Modified: short/3D/PyLith/trunk/unittests/pytests/faults/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/Makefile.am	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/Makefile.am	2007-06-12 19:07:31 UTC (rev 7166)
@@ -23,7 +23,8 @@
 	TestBruneSlipFn.py \
 	TestFault.py \
 	TestFaultCohesive.py \
-	TestFaultCohesiveKin.py
+	TestFaultCohesiveKin.py \
+	TestSingleFault.py
 
 TESTS_ENVIRONMENT = $(PYTHON)
 

Added: short/3D/PyLith/trunk/unittests/pytests/faults/TestSingleFault.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/TestSingleFault.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/TestSingleFault.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+## @file unittests/pytests/materials/TestSingleFault.py
+
+## @brief Unit testing of SingleFault object.
+
+import unittest
+
+# ----------------------------------------------------------------------
+class TestSingleFault(unittest.TestCase):
+  """
+  Unit testing of SingleFault object.
+  """
+
+  def test_constructor(self):
+    """
+    Test constructor.
+    """
+    from pylith.faults.SingleFault import SingleFault
+    faults = SingleFault()
+    return
+
+
+  def test_configure(self):
+    """
+    Test _configure().
+    """
+    from pylith.faults.SingleFault import SingleFault
+    faults = SingleFault()
+    from pylith.faults.Fault import Fault
+    faults.inventory.fault = Fault()
+    faults._configure()
+    self.assertEqual(1, len(faults.bin))
+    return
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/unittests/pytests/faults/testfaults.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/testfaults.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/testfaults.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -71,6 +71,9 @@
     from TestFaultCohesiveKin import TestFaultCohesiveKin
     suite.addTest(unittest.makeSuite(TestFaultCohesiveKin))
 
+    from TestSingleFault import TestSingleFault
+    suite.addTest(unittest.makeSuite(TestSingleFault))
+
     return suite
 
 

Modified: short/3D/PyLith/trunk/unittests/pytests/materials/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/materials/Makefile.am	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/materials/Makefile.am	2007-06-12 19:07:31 UTC (rev 7166)
@@ -20,9 +20,15 @@
 check_SCRIPTS = testmaterials.py
 
 noinst_PYTHON = \
+	TestBiMaterial.py \
+	TestElasticIsotropic3D.py \
+	TestElasticPlaneStrain.py \
+	TestElasticPlaneStress.py \
+	TestElasticStrain1D.py \
+	TestElasticStress1D.py \
 	TestHomogeneous.py \
 	TestMaterial.py \
-	TestElasticIsotropic3D.py
+	TestMaxwellIsotropic3D.py
 
 TESTS_ENVIRONMENT = $(PYTHON)
 

Added: short/3D/PyLith/trunk/unittests/pytests/materials/TestBiMaterial.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/materials/TestBiMaterial.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/materials/TestBiMaterial.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+## @file unittests/pytests/materials/TestBiMaterial.py
+
+## @brief Unit testing of BiMaterial object.
+
+import unittest
+
+# ----------------------------------------------------------------------
+class TestBiMaterial(unittest.TestCase):
+  """
+  Unit testing of BiMaterial object.
+  """
+
+  def test_constructor(self):
+    """
+    Test constructor.
+    """
+    from pylith.materials.BiMaterial import BiMaterial
+    materials = BiMaterial()
+    return
+
+
+  def test_configure(self):
+    """
+    Test _configure().
+    """
+    from pylith.materials.BiMaterial import BiMaterial
+    materials = BiMaterial()
+    from pylith.materials.ElasticIsotropic3D import ElasticIsotropic3D
+    materials.inventory.one = ElasticIsotropic3D()
+    materials.inventory.two = ElasticIsotropic3D()
+    materials._configure()
+    self.assertEqual(2, len(materials.bin))
+    return
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/unittests/pytests/materials/TestHomogeneous.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/materials/TestHomogeneous.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/materials/TestHomogeneous.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -19,7 +19,7 @@
 # ----------------------------------------------------------------------
 class TestHomogeneous(unittest.TestCase):
   """
-  Unit testing of Material object.
+  Unit testing of Homogeneous object.
   """
 
   def test_constructor(self):
@@ -31,4 +31,17 @@
     return
 
 
+  def test_configure(self):
+    """
+    Test _configure().
+    """
+    from pylith.materials.Homogeneous import Homogeneous
+    materials = Homogeneous()
+    from pylith.materials.ElasticIsotropic3D import ElasticIsotropic3D
+    materials.inventory.material = ElasticIsotropic3D()
+    materials._configure()
+    self.assertEqual(1, len(materials.bin))
+    return
+
+
 # End of file 

Added: short/3D/PyLith/trunk/unittests/pytests/materials/TestMaxwellIsotropic3D.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/materials/TestMaxwellIsotropic3D.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/materials/TestMaxwellIsotropic3D.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+#
+# ======================================================================
+#
+#                           Brad T. Aagaard
+#                        U.S. Geological Survey
+#
+# {LicenseText}
+#
+# ======================================================================
+#
+
+## @file unittests/pytests/materials/TestMaxwellIsotropic3D.py
+
+## @brief Unit testing of MaxwellIsotropic3D object.
+
+import unittest
+
+from pylith.materials.MaxwellIsotropic3D import MaxwellIsotropic3D
+
+# ----------------------------------------------------------------------
+class TestMaxwellIsotropic3D(unittest.TestCase):
+  """
+  Unit testing of MaxwellIsotropic3D object.
+  """
+
+  def test_constructor(self):
+    """
+    Test constructor.
+    """
+    from pylith.materials.MaxwellIsotropic3D import MaxwellIsotropic3D
+    material = MaxwellIsotropic3D()
+
+    self.assertNotEqual(None, material.cppHandle)
+    return
+
+
+  def test_dimension(self):
+    """
+    Test dimension().
+    """
+    material = MaxwellIsotropic3D()
+    self.assertEqual(3, material.dimension)
+    return
+
+
+  def test_useMaxwellBehavior(self):
+    """
+    Test useMaxwellBehavior().
+    """
+    material = MaxwellIsotropic3D()
+    material.useElasticBehavior(False)
+    return
+
+
+# End of file 

Modified: short/3D/PyLith/trunk/unittests/pytests/materials/testmaterials.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/materials/testmaterials.py	2007-06-12 18:08:25 UTC (rev 7165)
+++ short/3D/PyLith/trunk/unittests/pytests/materials/testmaterials.py	2007-06-12 19:07:31 UTC (rev 7166)
@@ -74,9 +74,15 @@
     from TestElasticStress1D import TestElasticStress1D
     suite.addTest(unittest.makeSuite(TestElasticStress1D))
 
+    from TestMaxwellIsotropic3D import TestMaxwellIsotropic3D
+    suite.addTest(unittest.makeSuite(TestMaxwellIsotropic3D))
+
     from TestHomogeneous import TestHomogeneous
     suite.addTest(unittest.makeSuite(TestHomogeneous))
 
+    from TestBiMaterial import TestBiMaterial
+    suite.addTest(unittest.makeSuite(TestBiMaterial))
+
     return suite
 
 



More information about the cig-commits mailing list