[cig-commits] r9339 - in short/3D/PyLith/trunk: . libsrc/bc libsrc/feassemble libsrc/materials modulesrc/bc unittests/libtests/bc unittests/libtests/materials

brad at geodynamics.org brad at geodynamics.org
Thu Feb 14 10:48:14 PST 2008


Author: brad
Date: 2008-02-14 10:48:13 -0800 (Thu, 14 Feb 2008)
New Revision: 9339

Modified:
   short/3D/PyLith/trunk/TODO
   short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.cc
   short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.hh
   short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.icc
   short/3D/PyLith/trunk/libsrc/bc/Neumann.cc
   short/3D/PyLith/trunk/libsrc/bc/Neumann.hh
   short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc
   short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc
   short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc
   short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.hh
   short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic3D.cc
   short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic3D.hh
   short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc
   short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.hh
   short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStrain.cc
   short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStrain.hh
   short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStress.cc
   short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStress.hh
   short/3D/PyLith/trunk/libsrc/materials/ElasticStrain1D.cc
   short/3D/PyLith/trunk/libsrc/materials/ElasticStrain1D.hh
   short/3D/PyLith/trunk/libsrc/materials/ElasticStress1D.cc
   short/3D/PyLith/trunk/libsrc/materials/ElasticStress1D.hh
   short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.cc
   short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.hh
   short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.icc
   short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.cc
   short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.hh
   short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.icc
   short/3D/PyLith/trunk/modulesrc/bc/bc.pyxe.src
   short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryCondition.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryCondition.hh
   short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletPoints.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletPointsMulti.cc
   short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.cc
   short/3D/PyLith/trunk/unittests/libtests/materials/TestElasticMaterial.cc
Log:
Added compute state variables flag to ElasticMaterial::calcStress() indicating material needs to compute local copy of the updated state variables when calculating stresses. If flag is false, then use updated state variables when calculating stresses. Tied switching to time dependent material behavior to switcthing to incremental solution.

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/TODO	2008-02-14 18:48:13 UTC (rev 9339)
@@ -5,15 +5,11 @@
 Release 1.1
 
   2. Reimplement SolutionIO [BRAD & MATT]
-     b. Implement output of material information.
-        i. CellFilterAvg (average data over quadrature points)
      c. Implement output of Neumann information.
      d. Implement output of Dirichlet information.
         i. DirichletBoundary
-        ii.  DirichletPoints
      e. Implement output of solution subset (ground surface).
         i. OutputSubdomain
-        ii. OutputPoints
      f. VertexFilterChangeCS
         i. OutputFilter for writing vertex coordinates in another 
            coordinate system.
@@ -88,11 +84,7 @@
 
   4. Dirichlet BC [BRAD]
 
-      Replace Dirichlet BC with BC that has u(t) = u0 + u1*t?
-      Default u0 and u1 would be 0.
-
       DirichletBoundary
-      DirichletPoints
 
   5. Generalized Maxwell viscoelastic model [CHARLES]
 
@@ -194,7 +186,7 @@
 ----------------------------------------------------------------------
 PyLith 1.1
 ----------------------------------------------------------------------
-HDF5 output
+Output
   volume (solution field)
   ground surface (or other surfaces) (solution field)
   points (solution field)

Modified: short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -272,14 +272,20 @@
 // ----------------------------------------------------------------------
 // Get vertex field of BC initial or rate of change of values.
 const ALE::Obj<pylith::real_section_type>&
-pylith::bc::DirichletBoundary::getVertexField(const char* name)
+pylith::bc::DirichletBoundary::vertexField(VectorFieldEnum* fieldType,
+					   const char* name,
+					   const ALE::Obj<Mesh>& mesh,
+					   topology::FieldsManager* const fields)
 { // getVertexField
   
-  if (0 == strcasecmp(name, "initial"))
+
+  if (0 == strcasecmp(name, "initial")) {
+    *fieldType = VECTOR_FIELD;
     _buffer = _values->getFibration(0);
-  else if (0 == strcasecmp(name, "rate-of-change"))
+  } else if (0 == strcasecmp(name, "rate-of-change")) {
+    *fieldType = VECTOR_FIELD;
     _buffer = _values->getFibration(1);
-  else {
+  } else {
     std::ostringstream msg;
     msg << "Unknown field '" << name << "' requested for Dirichlet BC '" 
 	<< _label << "'.";

Modified: short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -23,6 +23,7 @@
 #include "pylith/feassemble/Constraint.hh" // ISA Constraint
 
 #include "pylith/utils/array.hh" // USES std::vector, double_array, int_array
+#include "pylith/utils/vectorfields.hh" // USES VectorFieldEnum
 
 /// Namespace for pylith package
 namespace pylith {
@@ -30,6 +31,10 @@
     class DirichletBoundary;
     class TestDirichletBoundary; // unit testing
   } // bc
+
+  namespace topology {
+    class FieldsManager; // forward declaration
+  } // topology
 } // pylith
 
 
@@ -106,18 +111,26 @@
 		const ALE::Obj<real_section_type>& field,
 		const ALE::Obj<ALE::Mesh>& mesh);
 
-  /** Get data mesh.
+  /** Get boundary mesh.
    *
    * @return Boundary mesh.
    */
-  const ALE::Obj<Mesh>& dataMesh(void) const;
+  const ALE::Obj<Mesh>& boundaryMesh(void) const;
 
-  /** Get vertex field of BC initial or rate of change of values.
+  /** Get vertex field with BC information.
    *
-   * @param name Name of field {'initial', 'rate-of-change'}
+   * @param fieldType Type of field.
+   * @param name Name of field.
+   * @param mesh Finite-element mesh.
+   * @param fields Solution fields.
+   *
+   * @returns Field over vertices.
    */
   const ALE::Obj<real_section_type>&
-  getVertexField(const char* name);
+  vertexField(VectorFieldEnum* fieldType,
+	      const char* name,
+	      const ALE::Obj<Mesh>& mesh,
+	      topology::FieldsManager* const fields);
 
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :

Modified: short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.icc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.icc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -44,7 +44,7 @@
    */
 inline
 const ALE::Obj<pylith::Mesh>&
-pylith::bc::DirichletBoundary::dataMesh(void) const {
+pylith::bc::DirichletBoundary::boundaryMesh(void) const {
   return _boundaryMesh;
 } // dataMesh
 

Modified: short/3D/PyLith/trunk/libsrc/bc/Neumann.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/Neumann.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/bc/Neumann.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -333,5 +333,34 @@
 { // verifyConfiguration
 } // verifyConfiguration
 
+// ----------------------------------------------------------------------
+// Get boundary mesh.
+const ALE::Obj<pylith::Mesh>&
+pylith::bc::Neumann::boundaryMesh(void) const
+{ // dataMesh
+  return _boundaryMesh;
+} // dataMesh
 
+// ----------------------------------------------------------------------
+// Get cell field for tractions.
+const ALE::Obj<pylith::real_section_type>&
+pylith::bc::Neumann::cellField(VectorFieldEnum* fieldType,
+	    const char* name,
+	    const ALE::Obj<Mesh>& mesh,
+	    topology::FieldsManager* const fields)
+{ // cellField
+  if (0 == strcasecmp(name, "tractions")) {
+    *fieldType = VECTOR_FIELD;
+    return _tractionsGlobal;
+  } else {
+    std::ostringstream msg;
+    msg << "Unknown field '" << name << "' requested for Neumann BC '" 
+	<< _label << "'.";
+    throw std::runtime_error(msg.str());
+  } // else
+
+  return _tractionsGlobal;
+} // cellField
+
+
 // End of file 

Modified: short/3D/PyLith/trunk/libsrc/bc/Neumann.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/Neumann.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/bc/Neumann.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -24,6 +24,7 @@
 
 #include "pylith/utils/array.hh" // USES std::vector, double_array, int_array
 #include "pylith/utils/sievetypes.hh" // USES real_section_type
+#include "pylith/utils/vectorfields.hh" // USES VectorFieldEnum
 
 /// Namespace for pylith package
 namespace pylith {
@@ -91,6 +92,27 @@
    */
   void verifyConfiguration(const ALE::Obj<Mesh>& mesh);
 
+  /** Get boundary mesh.
+   *
+   * @returns Boundary mesh.
+   */
+  const ALE::Obj<Mesh>& boundaryMesh(void) const;
+
+  /** Get cell field with BC information.
+   *
+   * @param fieldType Type of field.
+   * @param name Name of field.
+   * @param mesh Finite-element mesh.
+   * @param fields Solution fields.
+   *
+   * @returns Traction vector at integration points.
+   */
+  const ALE::Obj<real_section_type>&
+  cellField(VectorFieldEnum* fieldType,
+	    const char* name,
+	    const ALE::Obj<Mesh>& mesh,
+	    topology::FieldsManager* const fields);
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -227,7 +227,7 @@
     // Compute B(transpose) * sigma, first computing strains
     calcTotalStrainFn(&totalStrain, basisDeriv, dispTCell, 
 		      numBasis, numQuadPts);
-    const double_array& stress = _material->calcStress(totalStrain);
+    const double_array& stress = _material->calcStress(totalStrain, true);
     CALL_MEMBER_FN(*this, elasticityResidualFn)(stress);
 
     // Assemble cell contribution into field

Modified: short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -242,7 +242,7 @@
     PetscLogEventBegin(stressEvent,0,0,0,0);
     calcTotalStrainFn(&totalStrain, basisDeriv, dispTBctpdtCell, 
 		      numBasis, numQuadPts);
-    const double_array& stress = _material->calcStress(totalStrain);
+    const double_array& stress = _material->calcStress(totalStrain, true);
     PetscLogEventEnd(stressEvent,0,0,0,0);
 
     PetscLogEventBegin(computeEvent,0,0,0,0);

Modified: short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -60,6 +60,17 @@
 } // needNewJacobian
 
 // ----------------------------------------------------------------------
+// Set flag for setting constraints for total field solution or
+void
+pylith::feassemble::IntegratorElasticity::useSolnIncr(const bool flag)
+{ // useSolnIncr
+  Integrator::useSolnIncr(flag);
+  
+  assert(0 != _material);
+  _material->useElasticBehavior(!flag);
+} // useSolnIncr
+
+// ----------------------------------------------------------------------
 // Update state variables as needed.
 void
 pylith::feassemble::IntegratorElasticity::updateState(
@@ -141,8 +152,6 @@
     // Update material state
     _material->updateProperties(totalStrain, *c_iter);
   } // for
-
-  _material->useElasticBehavior(false);
 } // updateState
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -70,6 +70,13 @@
    */
   bool needNewJacobian(void);
 
+  /** Set flag for setting constraints for total field solution or
+   *  incremental field solution.
+   *
+   * @param flag True if using incremental solution, false otherwise.
+   */
+  void useSolnIncr(const bool flag);
+
   /** Update state variables as needed.
    *
    * @param t Current time

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic3D.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic3D.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -138,7 +138,8 @@
 				  const double* properties,
 				  const int numProperties,
 				  const double* totalStrain,
-				  const int strainSize)
+				  const int strainSize,
+				  const bool computeStateVars)
 { // _calcStress
   assert(0 != stress);
   assert(_ElasticIsotropic3D::tensorSize == stressSize);

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic3D.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic3D.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -73,7 +73,10 @@
 		    const double* properties,
 		    const int numProperties);
 
-  /** Compute stress tensor from properties.
+  /** Compute stress tensor from properties. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * @param stress Array for stress tensor.
    * @param stressSize Size of stress tensor.
@@ -81,13 +84,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at location.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStress(double* const stress,
 		   const int stressSize,
 		   const double* properties,
 		   const int numProperties,
 		   const double* totalStrain,
-		   const int strainSize);
+		   const int strainSize,
+		   const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties.
    *

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -60,7 +60,8 @@
 // ----------------------------------------------------------------------
 // Compute stress tensor for cell at quadrature points.
 const pylith::double_array&
-pylith::materials::ElasticMaterial::calcStress(const double_array& totalStrain)
+pylith::materials::ElasticMaterial::calcStress(const double_array& totalStrain,
+					       const bool computeStateVars)
 { // calcStress
   const int numQuadPts = _numQuadPts;
   const int totalPropsQuadPt = _totalPropsQuadPt;
@@ -71,7 +72,8 @@
   for (int iQuad=0; iQuad < numQuadPts; ++iQuad)
     _calcStress(&_stress[iQuad*_tensorSize], _tensorSize,
 		&_propertiesCell[iQuad*totalPropsQuadPt], totalPropsQuadPt,
-		&totalStrain[iQuad*_tensorSize], _tensorSize);
+		&totalStrain[iQuad*_tensorSize], _tensorSize, 
+		computeStateVars);
 
   return _stress;
 } // calcStress

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -73,7 +73,10 @@
    */
   const double_array& calcDensity(void);
   
-  /** Get stress tensor at quadrature points.
+  /** Get stress tensor at quadrature points. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * Size of array of stress tensors = [numQuadPts][tensorSize].
    *
@@ -88,11 +91,13 @@
    *
    * @param totalStrain Total strain tensor at quadrature points
    *    [numQuadPts][tensorSize]
+   * @param computeStateVars Flag indicating to compute updated state vars.
    *
    * @returns Array of stresses at cell's quadrature points.
    */
   const double_array&
-  calcStress(const double_array& totalStrain);
+  calcStress(const double_array& totalStrain,
+	     const bool computeStateVars =false);
 
   /** Compute derivative of elasticity matrix for cell at quadrature points.
    *
@@ -158,7 +163,10 @@
 		    const double* properties,
 		    const int numProperties) = 0;
 
-  /** Compute stress tensor from properties.
+  /** Compute stress tensor from properties. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * @param stress Array for stress tensor.
    * @param stressSize Size of stress tensor.
@@ -166,6 +174,7 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at location.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   virtual
   void _calcStress(double* const stress,
@@ -173,7 +182,8 @@
 		   const double* properties,
 		   const int numProperties,
 		   const double* totalStrain,
-		   const int strainSize) = 0;
+		   const int strainSize,
+		   const bool computeStateVars) = 0;
 
   /** Compute derivatives of elasticity matrix from properties.
    *

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStrain.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStrain.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStrain.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -136,7 +136,8 @@
 				  const double* properties,
 				  const int numProperties,
 				  const double* totalStrain,
-				  const int strainSize)
+				  const int strainSize,
+				  const bool computeStateVars)
 { // _calcStress
   assert(0 != stress);
   assert(_ElasticPlaneStrain::tensorSize == stressSize);

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStrain.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStrain.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStrain.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -73,7 +73,10 @@
 		    const double* properties,
 		    const int numProperties);
 
-  /** Compute stress tensor from properties.
+  /** Compute stress tensor from properties. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * @param stress Array for stress tensor.
    * @param stressSize Size of stress tensor.
@@ -81,13 +84,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at location.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStress(double* const stress,
 		   const int stressSize,
 		   const double* properties,
 		   const int numProperties,
 		   const double* totalStrain,
-		   const int strainSize);
+		   const int strainSize,
+		   const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties.
    *

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStress.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStress.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStress.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -133,7 +133,8 @@
 						   const double* properties,
 						   const int numProperties,
 						   const double* totalStrain,
-						   const int strainSize)
+						   const int strainSize,
+						   const bool computeStateVars)
 { // _calcStress
   assert(0 != stress);
   assert(_ElasticPlaneStress::tensorSize == stressSize);

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStress.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStress.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticPlaneStress.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -73,7 +73,10 @@
 		    const double* properties,
 		    const int numProperties);
 
-  /** Compute stress tensor from properties.
+  /** Compute stress tensor from properties. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * @param stress Array for stress tensor.
    * @param stressSize Size of stress tensor.
@@ -81,13 +84,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at location.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStress(double* const stress,
 		   const int stressSize,
 		   const double* properties,
 		   const int numProperties,
 		   const double* totalStrain,
-		   const int strainSize);
+		   const int strainSize,
+		   const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties.
    *

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticStrain1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticStrain1D.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticStrain1D.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -133,7 +133,8 @@
 				   const double* properties,
 				   const int numProperties,
 				   const double* totalStrain,
-				   const int strainSize)
+				   const int strainSize,
+				   const bool computeStateVars)
 { // _calcStress
   assert(0 != stress);
   assert(_ElasticStrain1D::tensorSize == stressSize);

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticStrain1D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticStrain1D.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticStrain1D.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -72,7 +72,10 @@
 		    const double* properties,
 		    const int numProperties);
 
-  /** Compute stress tensor from properties.
+  /** Compute stress tensor from properties. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * @param stress Array for stress tensor.
    * @param stressSize Size of stress tensor.
@@ -80,13 +83,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at location.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStress(double* const stress,
 		   const int stressSize,
 		   const double* properties,
 		   const int numProperties,
 		   const double* totalStrain,
-		   const int strainSize);
+		   const int strainSize,
+		   const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties.
    *

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticStress1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticStress1D.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticStress1D.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -130,7 +130,8 @@
 						const double* properties,
 						const int numProperties,
 						const double* totalStrain,
-						const int strainSize)
+						const int strainSize,
+						const bool computeStateVars)
 { // _calcStress
   assert(0 != stress);
   assert(_ElasticStress1D::tensorSize == stressSize);

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticStress1D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticStress1D.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticStress1D.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -73,7 +73,10 @@
 		    const double* properties,
 		    const int numProperties);
 
-  /** Compute stress tensor from properties.
+  /** Compute stress tensor from properties. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * @param stress Array for stress tensor.
    * @param stressSize Size of stress tensor.
@@ -81,13 +84,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at location.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStress(double* const stress,
 		   const int stressSize,
 		   const double* properties,
 		   const int numProperties,
 		   const double* totalStrain,
-		   const int strainSize);
+		   const int strainSize,
+		   const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties.
    *

Modified: short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -178,12 +178,13 @@
 // material.
 void
 pylith::materials::GenMaxwellIsotropic3D::_calcStressElastic(
-							     double* const stress,
-							     const int stressSize,
-							     const double* properties,
-							     const int numProperties,
-							     const double* totalStrain,
-							     const int strainSize)
+						  double* const stress,
+						  const int stressSize,
+						  const double* properties,
+						  const int numProperties,
+						  const double* totalStrain,
+						  const int strainSize,
+						  const bool computeStateVars)
 { // _calcStressElastic
   assert(0 != stress);
   assert(_GenMaxwellIsotropic3D::tensorSize == stressSize);
@@ -231,12 +232,13 @@
 // material.
 void
 pylith::materials::GenMaxwellIsotropic3D::_calcStressViscoelastic(
-								  double* const stress,
-								  const int stressSize,
-								  const double* properties,
-								  const int numProperties,
-								  const double* totalStrain,
-								  const int strainSize)
+						   double* const stress,
+						   const int stressSize,
+						   const double* properties,
+						   const int numProperties,
+						   const double* totalStrain,
+						   const int strainSize,
+						   const bool computeStateVars)
 { // _calcStressViscoelastic
   assert(0 != stress);
   assert(_GenMaxwellIsotropic3D::tensorSize == stressSize);
@@ -502,7 +504,7 @@
   const int stressSize = 6;
   _calcStressElastic(stress, stressSize,
 		     properties, numProperties,
-		     totalStrain, strainSize);
+		     totalStrain, strainSize, true);
 
   // Initialize all viscous strains to deviatoric elastic strains.
   std::cout << std::endl;
@@ -564,7 +566,7 @@
   const int stressSize = 6;
   _calcStressViscoelastic(stress, stressSize, 
 			  properties, numProperties,
-			  totalStrain, strainSize);
+			  totalStrain, strainSize, true);
 
   const double meanStrainT = 
     (properties[_GenMaxwellIsotropic3D::pidStrainT+0] +

Modified: short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -102,7 +102,10 @@
 		    const double* properties,
 		    const int numProperties);
 
-  /** Compute stress tensor from properties.
+  /** Compute stress tensor from properties. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * @param stress Array for stress tensor.
    * @param stressSize Size of stress tensor.
@@ -110,13 +113,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at location.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStress(double* const stress,
 		   const int stressSize,
 		   const double* properties,
 		   const int numProperties,
 		   const double* totalStrain,
-		   const int strainSize);
+		   const int strainSize,
+		   const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties.
    *
@@ -156,7 +161,8 @@
      const double*,
      const int,
      const double*,
-     const int);
+     const int,
+     const bool);
 
   /// Member prototype for _calcElasticConsts()
   typedef void (pylith::materials::GenMaxwellIsotropic3D::*calcElasticConsts_fn_type)
@@ -185,13 +191,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at locations.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStressElastic(double* const stress,
 			  const int stressSize,
 			  const double* properties,
 			  const int numProperties,
 			  const double* totalStrain,
-			  const int strainSize);
+			  const int strainSize,
+			  const bool computeStateVars);
 
   /** Compute stress tensor from properties as an viscoelastic material.
    *
@@ -201,13 +209,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at locations.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStressViscoelastic(double* const stress,
-			  const int stressSize,
-			  const double* properties,
-			  const int numProperties,
-			  const double* totalStrain,
-			  const int strainSize);
+			       const int stressSize,
+			       const double* properties,
+			       const int numProperties,
+			       const double* totalStrain,
+			       const int strainSize,
+			       const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties as an
    * elastic material.

Modified: short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.icc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/GenMaxwellIsotropic3D.icc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -58,16 +58,19 @@
 // Compute stress tensor from parameters.
 inline
 void
-pylith::materials::GenMaxwellIsotropic3D::_calcStress(double* const stress,
-						   const int stressSize,
-						   const double* parameters,
-						   const int numParams,
-						   const double* totalStrain,
-						   const int strainSize) {
+pylith::materials::GenMaxwellIsotropic3D::_calcStress(
+					       double* const stress,
+					       const int stressSize,
+					       const double* parameters,
+					       const int numParams,
+					       const double* totalStrain,
+					       const int strainSize,
+					       const bool computeStateVars) {
   assert(0 != _calcStressFn);
   CALL_MEMBER_FN(*this, _calcStressFn)(stress, stressSize, 
 				       parameters, numParams,
-				       totalStrain, strainSize);
+				       totalStrain, strainSize,
+				       computeStateVars);
 } // _calcStress
 
 // Compute derivatives of elasticity matrix from parameters.

Modified: short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -150,12 +150,13 @@
 // material.
 void
 pylith::materials::MaxwellIsotropic3D::_calcStressElastic(
-						    double* const stress,
-						    const int stressSize,
-						    const double* properties,
-						    const int numProperties,
-						    const double* totalStrain,
-						    const int strainSize)
+						  double* const stress,
+						  const int stressSize,
+						  const double* properties,
+						  const int numProperties,
+						  const double* totalStrain,
+						  const int strainSize,
+						  const bool computeStateVars)
 { // _calcStressElastic
   assert(0 != stress);
   assert(_MaxwellIsotropic3D::tensorSize == stressSize);
@@ -204,12 +205,13 @@
 // material.
 void
 pylith::materials::MaxwellIsotropic3D::_calcStressViscoelastic(
-						    double* const stress,
-						    const int stressSize,
-						    const double* properties,
-						    const int numProperties,
-						    const double* totalStrain,
-						    const int strainSize)
+						  double* const stress,
+						  const int stressSize,
+						  const double* properties,
+						  const int numProperties,
+						  const double* totalStrain,
+						  const int strainSize,
+						  const bool computeStateVars)
 { // _calcStressElastic
   assert(0 != stress);
   assert(_MaxwellIsotropic3D::tensorSize == stressSize);
@@ -463,7 +465,7 @@
   const int stressSize = 6;
   _calcStressViscoelastic(stress, stressSize, 
 			  properties, numProperties,
-			  totalStrain, strainSize);
+			  totalStrain, strainSize, true);
 
   const double meanStrainT = 
     (properties[_MaxwellIsotropic3D::pidStrainT+0] +

Modified: short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -92,7 +92,10 @@
 		    const double* properties,
 		    const int numProperties);
 
-  /** Compute stress tensor from properties.
+  /** Compute stress tensor from properties. If the state variables
+   * are from the previous time step, then the computeStateVars flag
+   * should be set to true so that the state variables are updated
+   * (but not stored) when computing the stresses.
    *
    * @param stress Array for stress tensor.
    * @param stressSize Size of stress tensor.
@@ -106,7 +109,8 @@
 		   const double* properties,
 		   const int numProperties,
 		   const double* totalStrain,
-		   const int strainSize);
+		   const int strainSize,
+		   const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties.
    *
@@ -146,7 +150,8 @@
      const double*,
      const int,
      const double*,
-     const int);
+     const int,
+     const bool);
 
   /// Member prototype for _calcElasticConsts()
   typedef void (pylith::materials::MaxwellIsotropic3D::*calcElasticConsts_fn_type)
@@ -175,13 +180,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at locations.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStressElastic(double* const stress,
 			  const int stressSize,
 			  const double* properties,
 			  const int numProperties,
 			  const double* totalStrain,
-			  const int strainSize);
+			  const int strainSize,
+			  const bool computeStateVars);
 
   /** Compute stress tensor from properties as an viscoelastic material.
    *
@@ -191,13 +198,15 @@
    * @param numProperties Number of properties.
    * @param totalStrain Total strain at locations.
    * @param strainSize Size of strain tensor.
+   * @param computeStateVars Flag indicating to compute updated state vars.
    */
   void _calcStressViscoelastic(double* const stress,
-			  const int stressSize,
-			  const double* properties,
-			  const int numProperties,
-			  const double* totalStrain,
-			  const int strainSize);
+			       const int stressSize,
+			       const double* properties,
+			       const int numProperties,
+			       const double* totalStrain,
+			       const int strainSize,
+			       const bool computeStateVars);
 
   /** Compute derivatives of elasticity matrix from properties as an
    * elastic material.

Modified: short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.icc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.icc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/libsrc/materials/MaxwellIsotropic3D.icc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -63,11 +63,13 @@
 						   const double* parameters,
 						   const int numParams,
 						   const double* totalStrain,
-						   const int strainSize) {
+						   const int strainSize,
+						   const bool computeStateVars) {
   assert(0 != _calcStressFn);
   CALL_MEMBER_FN(*this, _calcStressFn)(stress, stressSize, 
 				       parameters, numParams,
-				       totalStrain, strainSize);
+				       totalStrain, strainSize,
+				       computeStateVars);
 } // _calcStress
 
 // Compute derivatives of elasticity matrix from parameters.

Modified: short/3D/PyLith/trunk/modulesrc/bc/bc.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/bc/bc.pyxe.src	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/modulesrc/bc/bc.pyxe.src	2008-02-14 18:48:13 UTC (rev 9339)
@@ -907,6 +907,152 @@
     return
 
 
+  def verifyConfiguration(self, mesh):
+    """
+    Verify compatibility of configuration settings.
+    """
+    # create shim for method 'verifyConfiguration'
+    #embed{ void Neumann_verifyConfiguration(void* objVptr, void* meshVptr)
+    try {
+      assert(0 != objVptr);
+      assert(0 != meshVptr);
+      ALE::Obj<ALE::Mesh>* mesh =
+        (ALE::Obj<ALE::Mesh>*) meshVptr;
+      ((pylith::bc::Neumann*) objVptr)->verifyConfiguration(*mesh);
+    } catch (const std::exception& err) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      const_cast<char*>(err.what()));
+    } catch (const ALE::Exception& err) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      const_cast<char*>(err.msg().c_str()));
+    } catch (...) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      "Caught unknown C++ exception.");
+    } // try/catch
+    #}embed
+    if mesh.name != "pylith_topology_Mesh":
+      raise TypeError, \
+            "Argument 'mesh' must be extension module type 'Mesh'."
+    Neumann_verifyConfiguration(self.thisptr,
+                                   ptrFromHandle(mesh))
+    return
+
+
+  def cellField(self, name, mesh):
+    """
+    Verify compatibility of configuration settings.
+    """
+    # create shim for method 'verifyConfiguration'
+    #embed{ void Neumann_verifyConfiguration(void* objVptr, void* meshVptr)
+    try {
+      assert(0 != objVptr);
+      assert(0 != meshVptr);
+      ALE::Obj<ALE::Mesh>* mesh =
+        (ALE::Obj<ALE::Mesh>*) meshVptr;
+      ((pylith::bc::Neumann*) objVptr)->verifyConfiguration(*mesh);
+    } catch (const std::exception& err) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      const_cast<char*>(err.what()));
+    } catch (const ALE::Exception& err) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      const_cast<char*>(err.msg().c_str()));
+    } catch (...) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      "Caught unknown C++ exception.");
+    } // try/catch
+    #}embed
+    if mesh.name != "pylith_topology_Mesh":
+      raise TypeError, \
+            "Argument 'mesh' must be extension module type 'Mesh'."
+    Neumann_verifyConfiguration(self.thisptr,
+                                   ptrFromHandle(mesh))
+    return
+
+
+  def boundaryMesh(self, mesh):
+    """
+    Get mesh associated with fields over boundary.
+    """
+    # create shim for method 'boundaryMesh'
+    #embed{ void Neumann_faultMesh(void* objVptr, void* meshVptr)
+    try {
+      assert(0 != objVptr);
+      assert(0 != meshVptr);
+      ALE::Obj<ALE::Mesh>* mesh = (ALE::Obj<ALE::Mesh>*) meshVptr;
+      *mesh = ((pylith::bc::Neumann*) objVptr)->boundaryMesh();
+      } catch (const std::exception& err) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      const_cast<char*>(err.what()));
+    } catch (const ALE::Exception& err) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      const_cast<char*>(err.msg().c_str()));
+    } catch (...) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      "Caught unknown C++ exception.");
+    } // try/catch      
+    #}embed
+
+    if not mesh.name == "pylith_topology_Mesh":
+      raise TypeError, \
+            "Argument 'mesh' must be extension module type " \
+            "'pylith::topology::Mesh'."
+    Neumann_faultMesh(self.thisptr, ptrFromHandle(mesh))
+    return
+    
+
+  def cellField(self, name, mesh, fields=None):
+    """
+    Get cell field.
+    """
+    # create shim for method 'cellField'
+    #embed{ void* Neumann_cellField(void* objVptr, int* fieldPtr, char* name, void* meshVptr, void* fieldsVptr)
+    void* result = 0;
+    try {
+      assert(0 != objVptr);
+      assert(0 != fieldPtr);
+      assert(0 != name);
+      assert(0 != meshVptr);
+      pylith::bc::Neumann* bc = (pylith::bc::Neumann*) objVptr;
+      ALE::Obj<ALE::Mesh>* mesh = (ALE::Obj<ALE::Mesh>*) meshVptr;
+      pylith::topology::FieldsManager* fields =
+        (pylith::topology::FieldsManager*) fieldsVptr;
+      pylith::VectorFieldEnum fieldType;
+      const ALE::Obj<pylith::real_section_type>& field =
+        bc->cellField(&fieldType, name, *mesh, fields);
+      *fieldPtr = fieldType;
+      result = (void*) &field;
+      } catch (const std::exception& err) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      const_cast<char*>(err.what()));
+    } catch (const ALE::Exception& err) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      const_cast<char*>(err.msg().c_str()));
+    } catch (...) {
+      PyErr_SetString(PyExc_RuntimeError,
+                      "Caught unknown C++ exception.");
+    } // try/catch
+    return result;
+    #}embed
+    if not mesh.name == "pylith_topology_Mesh":
+      raise TypeError, \
+            "Argument 'mesh' must be extension module type " \
+            "'pylith::topology::Mesh'."
+    if None != fields:
+      if not fields.name == "pylith_topology_FieldsManager":
+        raise TypeError, \
+              "Argument 'fields' must be extension module type " \
+              "'pylith::topology::FieldsManager'."
+    cdef void* ptr
+    cdef int fieldType
+    if None != fields:
+      ptr = Neumann_cellField(self.thisptr, &fieldType, name,
+                              ptrFromHandle(mesh), ptrFromHandle(fields))
+    else:
+      ptr = Neumann_cellField(self.thisptr, &fieldType, name,
+                              ptrFromHandle(mesh), NULL)
+    return (PyCObject_FromVoidPtr(ptr, NULL), fieldType)
+    
+
   def _createHandle(self):
     """
     Wrap pointer to C++ object in PyCObject.

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestAbsorbingDampers.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -274,7 +274,6 @@
 
     bc->quadrature(_quadrature);
     bc->timeStep(_data->dt);
-    bc->id(_data->id);
     bc->label(_data->label);
     bc->db(&db);
     bc->initialize(*mesh, &cs, upDir);

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryCondition.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryCondition.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryCondition.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -24,18 +24,6 @@
 CPPUNIT_TEST_SUITE_REGISTRATION( pylith::bc::TestBoundaryCondition );
 
 // ----------------------------------------------------------------------
-// Test id().
-void
-pylith::bc::TestBoundaryCondition::testID(void)
-{ // testID
-  const int id = 346;
-  DirichletPoints bc;
-  bc.id(id);
-  
-  CPPUNIT_ASSERT(id == bc.id());
-} // testID
-
-// ----------------------------------------------------------------------
 // Test label().
 void
 pylith::bc::TestBoundaryCondition::testLabel(void)

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryCondition.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryCondition.hh	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestBoundaryCondition.hh	2008-02-14 18:48:13 UTC (rev 9339)
@@ -36,7 +36,6 @@
 
   // CPPUNIT TEST SUITE /////////////////////////////////////////////////
   CPPUNIT_TEST_SUITE( TestBoundaryCondition );
-  CPPUNIT_TEST( testID );
   CPPUNIT_TEST( testLabel );
   CPPUNIT_TEST( testDB );
   CPPUNIT_TEST_SUITE_END();
@@ -44,9 +43,6 @@
   // PUBLIC METHODS /////////////////////////////////////////////////////
 public :
 
-  /// Test id()
-  void testID(void);
-
   /// Test label()
   void testLabel(void);
 

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletPoints.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletPoints.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletPoints.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -294,7 +294,6 @@
   const double upDirVals[] = { 0.0, 0.0, 1.0 };
   double_array upDir(upDirVals, 3);
 
-  bc->id(_data->id);
   bc->label(_data->label);
   bc->db(&db);
   bc->dbRate(&dbRate);

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletPointsMulti.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletPointsMulti.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestDirichletPointsMulti.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -193,7 +193,6 @@
   const double upDirVals[] = { 0.0, 0.0, 1.0 };
   double_array upDir(upDirVals, 3);
 
-  bcA->id(_data->idA);
   bcA->label(_data->labelA);
   bcA->db(&db);
   bcA->dbRate(&dbRate);
@@ -210,7 +209,6 @@
 
   int_array fixedDOFB(_data->fixedDOFB, _data->numFixedDOFB);
 
-  bcB->id(_data->idB);
   bcB->label(_data->labelB);
   bcB->db(&db);
   bcB->dbRate(&dbRate);

Modified: short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/TestNeumann.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -239,7 +239,6 @@
     double_array upDir(upDirVals, 3);
 
     bc->quadrature(_quadrature);
-    bc->id(_data->id);
     bc->label(_data->label);
     bc->db(&db);
     bc->initialize(*mesh, &cs, upDir);

Modified: short/3D/PyLith/trunk/unittests/libtests/materials/TestElasticMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/materials/TestElasticMaterial.cc	2008-02-14 17:05:57 UTC (rev 9338)
+++ short/3D/PyLith/trunk/unittests/libtests/materials/TestElasticMaterial.cc	2008-02-14 18:48:13 UTC (rev 9339)
@@ -264,11 +264,13 @@
   CPPUNIT_ASSERT(0 != _dataElastic);
   const ElasticMaterialData* data = _dataElastic;
 
+  const bool computeStateVars = true;
+
   const int stressSize = _matElastic->_tensorSize;
   double_array stress(stressSize);
   _matElastic->_calcStress(&stress[0], stress.size(),
 			 data->parameterData, data->numParamsQuadPt,
-			 data->strain, stressSize);
+			   data->strain, stressSize, computeStateVars);
   
   const double* stressE = data->stress;
   CPPUNIT_ASSERT(0 != stressE);



More information about the cig-commits mailing list