[cig-commits] r14118 - in short/3D/PyLith/branches/pylith-swig: libsrc libsrc/materials unittests/libtests/materials unittests/libtests/materials/data
brad at geodynamics.org
brad at geodynamics.org
Sun Feb 22 19:08:39 PST 2009
Author: brad
Date: 2009-02-22 19:08:39 -0800 (Sun, 22 Feb 2009)
New Revision: 14118
Modified:
short/3D/PyLith/branches/pylith-swig/libsrc/Makefile.am
short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStrain.cc
short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStrain.hh
short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStress.cc
short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStress.hh
short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStrain1D.cc
short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStrain1D.hh
short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStress1D.cc
short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStress1D.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/Makefile.am
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticIsotropic3D.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticIsotropic3D.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticMaterial.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticMaterial.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStrain.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStrain.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStress.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStress.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStrain1D.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStrain1D.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStress1D.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStress1D.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrain.py
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrainData.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrainData.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStress.py
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStressData.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStressData.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1D.py
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1DData.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1DData.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1D.py
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1DData.cc
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1DData.hh
short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/generate.sh
Log:
More work on updating elastic materials.
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/Makefile.am
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/Makefile.am 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/Makefile.am 2009-02-23 03:08:39 UTC (rev 14118)
@@ -53,6 +53,10 @@
materials/Metadata.cc \
materials/Material.cc \
materials/ElasticMaterial.cc \
+ materials/ElasticStrain1D.cc \
+ materials/ElasticStress1D.cc \
+ materials/ElasticPlaneStrain.cc \
+ materials/ElasticPlaneStress.cc \
materials/ElasticIsotropic3D.cc \
meshio/BinaryIO.cc \
meshio/GMVFile.cc \
@@ -86,19 +90,6 @@
# feassemble/ElasticityExplicit.cc \
# feassemble/ElasticityImplicit.cc \
# feassemble/IntegratorElasticity.cc \
-# feassemble/Quadrature.cc \
-# feassemble/Quadrature0D.cc \
-# feassemble/Quadrature1D.cc \
-# feassemble/Quadrature1Din2D.cc \
-# feassemble/Quadrature1Din3D.cc \
-# feassemble/Quadrature2D.cc \
-# feassemble/Quadrature2Din3D.cc \
-# feassemble/Quadrature3D.cc \
-# materials/ElasticStress1D.cc \
-# materials/ElasticStrain1D.cc \
-# materials/ElasticMaterial.cc \
-# materials/ElasticPlaneStrain.cc \
-# materials/ElasticPlaneStress.cc \
# materials/MaxwellIsotropic3D.cc \
# materials/GenMaxwellIsotropic3D.cc \
# materials/ViscoelasticMaxwell.cc \
@@ -112,9 +103,7 @@
# meshio/VertexFilterVecNorm.cc \
# meshio/UCDFaultFile.cc \
# topology/Distributor.cc \
-# topology/FieldsManager.cc \
-# topology/MeshRefiner.cc
-
+# topology/MeshRefiner.cc \
# topology/RefineUniform.cc
libpylith_la_LDFLAGS = $(AM_LDFLAGS) $(PYTHON_LA_LDFLAGS)
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStrain.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStrain.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStrain.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -14,6 +14,9 @@
#include "ElasticPlaneStrain.hh" // implementation of object methods
+#include "Metadata.hh" // USES Metadata
+
+#include "pylith/utils/array.hh" // USES double_array
#include "pylith/utils/constdefs.h" // USES MAXDOUBLE
#include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
@@ -24,63 +27,69 @@
#include <sstream> // USES std::ostringstream
#include <stdexcept> // USES std::runtime_error
-
// ----------------------------------------------------------------------
namespace pylith {
namespace materials {
namespace _ElasticPlaneStrain {
- /// Number of entries in stress tensor.
+ // Dimension of material.
+ const int dimension = 2;
+
+ // Number of entries in stress tensor.
const int tensorSize = 3;
- /// Number of elastic constants (for general 3-D elastic material)
+ // Number of elastic constants (for general 3-D elastic material)
const int numElasticConsts = 6;
- /// Number of physical properties.
+ // Number of physical properties.
const int numProperties = 3;
- /// Physical properties.
- const Material::PropMetaData properties[] = {
- { "density", 1, OTHER_FIELD },
- { "mu", 1, OTHER_FIELD },
- { "lambda", 1, OTHER_FIELD },
+ // Physical properties.
+ const Metadata::ParamDescription properties[] = {
+ { "density", 1, pylith::topology::FieldBase::SCALAR },
+ { "mu", 1, pylith::topology::FieldBase::SCALAR },
+ { "lambda", 1, pylith::topology::FieldBase::SCALAR },
};
- /// Indices of physical properties
- const int pidDensity = 0;
- const int pidMu = pidDensity + 1;
- const int pidLambda = pidMu + 1;
- /// Values expected in spatial database
- const int numDBValues = 3;
- const char* namesDBValues[] = { "density", "vs", "vp" };
+ // Values expected in spatial database
+ const int numDBProperties = 3;
+ const char* dbProperties[] = { "density", "vs", "vp" };
- /// Indices of database values
- const int didDensity = 0;
- const int didVs = 1;
- const int didVp = 2;
-
- /// Initial state values expected in spatial database
- const int numInitialStateDBValues = tensorSize;
- const char* namesInitialStateDBValues[] = { "stress_xx", "stress_yy",
- "stress_xy" };
-
} // _ElasticPlaneStrain
} // materials
} // pylith
+// Indices of physical properties
+const int pylith::materials::ElasticPlaneStrain::p_density = 0;
+const int pylith::materials::ElasticPlaneStrain::p_mu =
+ pylith::materials::ElasticPlaneStrain::p_density + 1;
+
+const int pylith::materials::ElasticPlaneStrain::p_lambda =
+ pylith::materials::ElasticPlaneStrain::p_mu + 1;
+
+// Indices of database values (order must match dbProperties)
+const int pylith::materials::ElasticPlaneStrain::db_density = 0;
+
+const int pylith::materials::ElasticPlaneStrain::db_vs =
+ pylith::materials::ElasticPlaneStrain::db_density + 1;
+
+const int pylith::materials::ElasticPlaneStrain::db_vp =
+ pylith::materials::ElasticPlaneStrain::db_vs + 1;
+
// ----------------------------------------------------------------------
// Default constructor.
pylith::materials::ElasticPlaneStrain::ElasticPlaneStrain(void) :
- ElasticMaterial(_ElasticPlaneStrain::tensorSize,
+ ElasticMaterial(_ElasticPlaneStrain::dimension,
+ _ElasticPlaneStrain::tensorSize,
_ElasticPlaneStrain::numElasticConsts,
- _ElasticPlaneStrain::namesDBValues,
- _ElasticPlaneStrain::namesInitialStateDBValues,
- _ElasticPlaneStrain::numDBValues,
- _ElasticPlaneStrain::properties,
- _ElasticPlaneStrain::numProperties)
+ Metadata(_ElasticPlaneStrain::properties,
+ _ElasticPlaneStrain::numProperties,
+ _ElasticPlaneStrain::dbProperties,
+ _ElasticPlaneStrain::numDBProperties,
+ 0, 0,
+ 0, 0))
{ // constructor
- _dimension = 2;
} // constructor
// ----------------------------------------------------------------------
@@ -98,11 +107,11 @@
{ // _dbToProperties
assert(0 != propValues);
const int numDBValues = dbValues.size();
- assert(_ElasticPlaneStrain::numDBValues == numDBValues);
+ assert(_ElasticPlaneStrain::numDBProperties == numDBValues);
- const double density = dbValues[_ElasticPlaneStrain::didDensity];
- const double vs = dbValues[_ElasticPlaneStrain::didVs];
- const double vp = dbValues[_ElasticPlaneStrain::didVp];
+ const double density = dbValues[db_density];
+ const double vs = dbValues[db_vs];
+ const double vp = dbValues[db_vp];
if (density <= 0.0 || vs <= 0.0 || vp <= 0.0) {
std::ostringstream msg;
@@ -125,11 +134,11 @@
<< "vs: " << vs << "\n";
throw std::runtime_error(msg.str());
} // if
-
- propValues[_ElasticPlaneStrain::pidDensity] = density;
- propValues[_ElasticPlaneStrain::pidMu] = mu;
- propValues[_ElasticPlaneStrain::pidLambda] = lambda;
+ propValues[p_density] = density;
+ propValues[p_mu] = mu;
+ propValues[p_lambda] = lambda;
+
PetscLogFlops(6);
} // _dbToProperties
@@ -145,15 +154,15 @@
const double densityScale = _normalizer->densityScale();
const double pressureScale = _normalizer->pressureScale();
- values[_ElasticPlaneStrain::pidDensity] =
- _normalizer->nondimensionalize(values[_ElasticPlaneStrain::pidDensity],
- densityScale);
- values[_ElasticPlaneStrain::pidMu] =
- _normalizer->nondimensionalize(values[_ElasticPlaneStrain::pidMu],
- pressureScale);
- values[_ElasticPlaneStrain::pidLambda] =
- _normalizer->nondimensionalize(values[_ElasticPlaneStrain::pidLambda],
- pressureScale);
+
+ values[p_density] =
+ _normalizer->nondimensionalize(values[p_density], densityScale);
+ values[p_mu] =
+ _normalizer->nondimensionalize(values[p_mu], pressureScale);
+ values[p_lambda] =
+ _normalizer->nondimensionalize(values[p_lambda], pressureScale);
+
+ PetscLogFlops(3);
} // _nondimProperties
// ----------------------------------------------------------------------
@@ -168,129 +177,118 @@
const double densityScale = _normalizer->densityScale();
const double pressureScale = _normalizer->pressureScale();
- values[_ElasticPlaneStrain::pidDensity] =
- _normalizer->dimensionalize(values[_ElasticPlaneStrain::pidDensity],
- densityScale);
- values[_ElasticPlaneStrain::pidMu] =
- _normalizer->dimensionalize(values[_ElasticPlaneStrain::pidMu],
- pressureScale);
- values[_ElasticPlaneStrain::pidLambda] =
- _normalizer->dimensionalize(values[_ElasticPlaneStrain::pidLambda],
- pressureScale);
-} // _dimProperties
-// ----------------------------------------------------------------------
-// Nondimensionalize initial state.
-void
-pylith::materials::ElasticPlaneStrain::_nondimInitState(double* const values,
- const int nvalues) const
-{ // _nondimInitState
- assert(0 != _normalizer);
- assert(0 != values);
- assert(nvalues == _ElasticPlaneStrain::numInitialStateDBValues);
+ values[p_density] =
+ _normalizer->dimensionalize(values[p_density], densityScale);
+ values[p_mu] =
+ _normalizer->dimensionalize(values[p_mu], pressureScale);
+ values[p_lambda] =
+ _normalizer->dimensionalize(values[p_lambda], pressureScale);
- const double pressureScale = _normalizer->pressureScale();
- _normalizer->nondimensionalize(values, nvalues, pressureScale);
-} // _nondimInitState
+ PetscLogFlops(3);
+} // _dimProperties
// ----------------------------------------------------------------------
-// Dimensionalize initial state.
-void
-pylith::materials::ElasticPlaneStrain::_dimInitState(double* const values,
- const int nvalues) const
-{ // _dimInitState
- assert(0 != _normalizer);
- assert(0 != values);
- assert(nvalues == _ElasticPlaneStrain::numInitialStateDBValues);
-
- const double pressureScale = _normalizer->pressureScale();
- _normalizer->dimensionalize(values, nvalues, pressureScale);
-} // _dimInitState
-
-// ----------------------------------------------------------------------
// Compute density at location from properties.
void
-pylith::materials::ElasticPlaneStrain::_calcDensity(
- double* const density,
- const double* properties,
- const int numProperties)
+pylith::materials::ElasticPlaneStrain::_calcDensity(double* const density,
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars)
{ // calcDensity
assert(0 != density);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
- density[0] = properties[_ElasticPlaneStrain::pidDensity];
+ density[0] = properties[p_density];
} // calcDensity
// ----------------------------------------------------------------------
// Compute stress tensor at location from properties.
void
-pylith::materials::ElasticPlaneStrain::_calcStress(
- double* const stress,
- const int stressSize,
- const double* properties,
- const int numProperties,
- const double* totalStrain,
- const int strainSize,
- const double* initialState,
- const int initialStateSize,
- const bool computeStateVars)
+pylith::materials::ElasticPlaneStrain::_calcStress(double* const stress,
+ const int stressSize,
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
+ const double* totalStrain,
+ const int strainSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize,
+ const bool computeStateVars)
{ // _calcStress
assert(0 != stress);
assert(_ElasticPlaneStrain::tensorSize == stressSize);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
assert(0 != totalStrain);
assert(_ElasticPlaneStrain::tensorSize == strainSize);
- assert(_ElasticPlaneStrain::tensorSize == initialStateSize);
+ assert(0 != initialStress);
+ assert(_ElasticPlaneStrain::tensorSize == initialStressSize);
+ assert(0 != initialStrain);
+ assert(_ElasticPlaneStrain::tensorSize == initialStrainSize);
- const double density = properties[_ElasticPlaneStrain::pidDensity];
- const double mu = properties[_ElasticPlaneStrain::pidMu];
- const double lambda = properties[_ElasticPlaneStrain::pidLambda];
-
- const double mu2 = 2.0 * mu;
-
- const double e11 = totalStrain[0];
- const double e22 = totalStrain[1];
- const double e12 = totalStrain[2];
+ const double density = properties[p_density];
+ const double mu = properties[p_mu];
+ const double lambda = properties[p_lambda];
+ const double mu2 = 2.0*mu;
+
+ const double e11 = totalStrain[0] + initialStrain[0];
+ const double e22 = totalStrain[1] + initialStrain[1];
+ const double e12 = totalStrain[2] + initialStrain[2];
+
const double s12 = lambda * (e11 + e22);
- stress[0] = s12 + mu2*e11 + initialState[0];
- stress[1] = s12 + mu2*e22 + initialState[1];
- stress[2] = mu2 * e12 + initialState[2];
+ stress[0] = s12 + mu2*e11 + initialStress[0];
+ stress[1] = s12 + mu2*e22 + initialStress[1];
+ stress[2] = mu2 * e12 + initialStress[2];
- PetscLogFlops(11);
+ PetscLogFlops(14);
} // _calcStress
// ----------------------------------------------------------------------
// Compute elastic constants at location from properties.
void
pylith::materials::ElasticPlaneStrain::_calcElasticConsts(
- double* const elasticConsts,
- const int numElasticConsts,
- const double* properties,
- const int numProperties,
- const double* totalStrain,
- const int strainSize,
- const double* initialState,
- const int initialStateSize)
+ double* const elasticConsts,
+ const int numElasticConsts,
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
+ const double* totalStrain,
+ const int strainSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize)
{ // calcElasticConsts
assert(0 != elasticConsts);
assert(_ElasticPlaneStrain::numElasticConsts == numElasticConsts);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
assert(0 != totalStrain);
assert(_ElasticPlaneStrain::tensorSize == strainSize);
- assert(_ElasticPlaneStrain::tensorSize == initialStateSize);
+ assert(0 != initialStress);
+ assert(_ElasticPlaneStrain::tensorSize == initialStressSize);
+ assert(0 != initialStrain);
+ assert(_ElasticPlaneStrain::tensorSize == initialStrainSize);
+
+ const double density = properties[p_density];
+ const double mu = properties[p_mu];
+ const double lambda = properties[p_lambda];
- const double density = properties[_ElasticPlaneStrain::pidDensity];
- const double mu = properties[_ElasticPlaneStrain::pidMu];
- const double lambda = properties[_ElasticPlaneStrain::pidLambda];
-
const double mu2 = 2.0 * mu;
const double lambda2mu = lambda + mu2;
-
+
elasticConsts[0] = lambda2mu; // C1111
elasticConsts[1] = lambda; // C1122
elasticConsts[2] = 0; // C1112
@@ -304,8 +302,11 @@
// ----------------------------------------------------------------------
// Get stable time step for implicit time integration.
double
-pylith::materials::ElasticPlaneStrain::_stableTimeStepImplicit(const double* properties,
- const int numProperties) const
+pylith::materials::ElasticPlaneStrain::_stableTimeStepImplicit(
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars) const
{ // _stableTimeStepImplicit
return pylith::PYLITH_MAXDOUBLE;
} // _stableTimeStepImplicit
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStrain.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStrain.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStrain.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -25,17 +25,10 @@
#if !defined(pylith_materials_elasticplanestrain_hh)
#define pylith_materials_elasticplanestrain_hh
-#include "ElasticMaterial.hh"
+// Include directives ---------------------------------------------------
+#include "ElasticMaterial.hh" // ISA ElasticMaterial
-/// Namespace for pylith package
-namespace pylith {
- namespace materials {
- class ElasticPlaneStrain;
- class TestElasticPlaneStrain; // unit testing
- } // materials
-} // pylith
-
-/// 3-D, isotropic, linear elastic material.
+// ElasticPlaneStrain ---------------------------------------------------
class pylith::materials::ElasticPlaneStrain : public ElasticMaterial
{ // class ElasticPlaneStrain
friend class TestElasticPlaneStrain; // unit testing
@@ -79,22 +72,6 @@
void _dimProperties(double* const values,
const int nvalues) const;
- /** Nondimensionalize initial state.
- *
- * @param values Array of initial state values.
- * @param nvalues Number of values.
- */
- void _nondimInitState(double* const values,
- const int nvalues) const;
-
- /** Dimensionalize initial state.
- *
- * @param values Array of initial state values.
- * @param nvalues Number of values.
- */
- void _dimInitState(double* const values,
- const int nvalues) const;
-
/** Compute density from properties.
*
* @param density Array for density.
@@ -103,31 +80,42 @@
*/
void _calcDensity(double* const density,
const double* properties,
- const int numProperties);
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars);
- /** 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.
+ /** Compute stress tensor from properties and state variables. 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.
* @param properties Properties at location.
* @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
* @param totalStrain Total strain at location.
* @param strainSize Size of strain tensor.
- * @param initialState Initial state values.
- * @param initialStateSize Size of initial state array.
- * @param computeStateVars Flag indicating to compute updated state vars.
+ * @param initialStress Initial stress tensor at location.
+ * @param initialStressSize Size of initial stress array.
+ * @param initialStrain Initial strain tensor at location.
+ * @param initialStrainSize Size of initial strain array.
+ * @param computeStateVars Flag indicating to compute updated state variables.
*/
void _calcStress(double* const stress,
const int stressSize,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize,
const bool computeStateVars);
/** Compute derivatives of elasticity matrix from properties.
@@ -136,27 +124,52 @@
* @param numElasticConsts Number of elastic constants.
* @param properties Properties at location.
* @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
* @param totalStrain Total strain at location.
* @param strainSize Size of strain tensor.
- * @param initialState Initial state values.
- * @param initialStateSize Size of initial state array.
+ * @param initialStress Initial stress tensor at location.
+ * @param initialStressSize Size of initial stress array.
+ * @param initialStrain Initial strain tensor at location.
+ * @param initialStrainSize Size of initial strain array.
*/
void _calcElasticConsts(double* const elasticConsts,
const int numElasticConsts,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize);
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize);
/** Get stable time step for implicit time integration.
*
+ * @param properties Properties at location.
+ * @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
+ *
* @returns Time step
*/
double _stableTimeStepImplicit(const double* properties,
- const int numProperties) const;
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars) const;
+ // PRIVATE MEMBERS ////////////////////////////////////////////////////
+private :
+
+ static const int p_density;
+ static const int p_mu;
+ static const int p_lambda;
+ static const int db_density;
+ static const int db_vs;
+ static const int db_vp;
+
// NOT IMPLEMENTED ////////////////////////////////////////////////////
private :
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStress.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStress.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStress.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -14,6 +14,9 @@
#include "ElasticPlaneStress.hh" // implementation of object methods
+#include "Metadata.hh" // USES Metadata
+
+#include "pylith/utils/array.hh" // USES double_array
#include "pylith/utils/constdefs.h" // USES MAXDOUBLE
#include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
@@ -29,56 +32,64 @@
namespace materials {
namespace _ElasticPlaneStress {
- /// Number of entries in stress tensor.
+ // Dimension of material.
+ const int dimension = 2;
+
+ // Number of entries in stress tensor.
const int tensorSize = 3;
- /// Number of elastic constants (for general 3-D elastic material)
+ // Number of elastic constants (for general 3-D elastic material)
const int numElasticConsts = 6;
- /// Number of physical properties.
+ // Number of physical properties.
const int numProperties = 3;
- /// Physical properties.
- const Material::PropMetaData properties[] = {
- { "density", 1, OTHER_FIELD },
- { "mu", 1, OTHER_FIELD },
- { "lambda", 1, OTHER_FIELD },
+ // Physical properties.
+ const Metadata::ParamDescription properties[] = {
+ { "density", 1, pylith::topology::FieldBase::SCALAR },
+ { "mu", 1, pylith::topology::FieldBase::SCALAR },
+ { "lambda", 1, pylith::topology::FieldBase::SCALAR },
};
- /// Indices of physical properties
- const int pidDensity = 0;
- const int pidMu = pidDensity + 1;
- const int pidLambda = pidMu + 1;
- /// Values expected in spatial database
- const int numDBValues = 3;
- const char* namesDBValues[] = { "density", "vs", "vp" };
+ // Values expected in spatial database
+ const int numDBProperties = 3;
+ const char* dbProperties[] = { "density", "vs", "vp" };
- /// Indices of database values
- const int didDensity = 0;
- const int didVs = 1;
- const int didVp = 2;
-
- /// Initial state values expected in spatial database
- const int numInitialStateDBValues = tensorSize;
- const char* namesInitialStateDBValues[] = { "stress_xx", "stress_yy",
- "stress_xy" };
-
} // _ElasticPlaneStress
} // materials
} // pylith
+// Indices of physical properties
+const int pylith::materials::ElasticPlaneStress::p_density = 0;
+
+const int pylith::materials::ElasticPlaneStress::p_mu =
+ pylith::materials::ElasticPlaneStress::p_density + 1;
+
+const int pylith::materials::ElasticPlaneStress::p_lambda =
+ pylith::materials::ElasticPlaneStress::p_mu + 1;
+
+// Indices of database values (order must match dbProperties)
+const int pylith::materials::ElasticPlaneStress::db_density = 0;
+
+const int pylith::materials::ElasticPlaneStress::db_vs =
+ pylith::materials::ElasticPlaneStress::db_density + 1;
+
+const int pylith::materials::ElasticPlaneStress::db_vp =
+ pylith::materials::ElasticPlaneStress::db_vs + 1;
+
// ----------------------------------------------------------------------
// Default constructor.
pylith::materials::ElasticPlaneStress::ElasticPlaneStress(void) :
- ElasticMaterial(_ElasticPlaneStress::tensorSize,
+ ElasticMaterial(_ElasticPlaneStress::dimension,
+ _ElasticPlaneStress::tensorSize,
_ElasticPlaneStress::numElasticConsts,
- _ElasticPlaneStress::namesDBValues,
- _ElasticPlaneStress::namesInitialStateDBValues,
- _ElasticPlaneStress::numDBValues,
- _ElasticPlaneStress::properties,
- _ElasticPlaneStress::numProperties)
+ Metadata(_ElasticPlaneStress::properties,
+ _ElasticPlaneStress::numProperties,
+ _ElasticPlaneStress::dbProperties,
+ _ElasticPlaneStress::numDBProperties,
+ 0, 0,
+ 0, 0))
{ // constructor
- _dimension = 2;
} // constructor
// ----------------------------------------------------------------------
@@ -96,11 +107,11 @@
{ // _dbToProperties
assert(0 != propValues);
const int numDBValues = dbValues.size();
- assert(_ElasticPlaneStress::numDBValues == numDBValues);
+ assert(_ElasticPlaneStress::numDBProperties == numDBValues);
- const double density = dbValues[_ElasticPlaneStress::didDensity];
- const double vs = dbValues[_ElasticPlaneStress::didVs];
- const double vp = dbValues[_ElasticPlaneStress::didVp];
+ const double density = dbValues[db_density];
+ const double vs = dbValues[db_vs];
+ const double vp = dbValues[db_vp];
if (density <= 0.0 || vs <= 0.0 || vp <= 0.0) {
std::ostringstream msg;
@@ -124,9 +135,9 @@
throw std::runtime_error(msg.str());
} // if
- propValues[_ElasticPlaneStress::pidDensity] = density;
- propValues[_ElasticPlaneStress::pidMu] = mu;
- propValues[_ElasticPlaneStress::pidLambda] = lambda;
+ propValues[p_density] = density;
+ propValues[p_mu] = mu;
+ propValues[p_lambda] = lambda;
PetscLogFlops(6);
} // _dbToProperties
@@ -143,16 +154,14 @@
const double densityScale = _normalizer->densityScale();
const double pressureScale = _normalizer->pressureScale();
- values[_ElasticPlaneStress::pidDensity] =
- _normalizer->nondimensionalize(values[_ElasticPlaneStress::pidDensity],
- densityScale);
- values[_ElasticPlaneStress::pidMu] =
- _normalizer->nondimensionalize(values[_ElasticPlaneStress::pidMu],
- pressureScale);
- values[_ElasticPlaneStress::pidLambda] =
- _normalizer->nondimensionalize(values[_ElasticPlaneStress::pidLambda],
- pressureScale);
+ values[p_density] =
+ _normalizer->nondimensionalize(values[p_density], densityScale);
+ values[p_mu] =
+ _normalizer->nondimensionalize(values[p_mu], pressureScale);
+ values[p_lambda] =
+ _normalizer->nondimensionalize(values[p_lambda], pressureScale);
+
PetscLogFlops(3);
} // _nondimProperties
@@ -168,63 +177,32 @@
const double densityScale = _normalizer->densityScale();
const double pressureScale = _normalizer->pressureScale();
- values[_ElasticPlaneStress::pidDensity] =
- _normalizer->dimensionalize(values[_ElasticPlaneStress::pidDensity],
- densityScale);
- values[_ElasticPlaneStress::pidMu] =
- _normalizer->dimensionalize(values[_ElasticPlaneStress::pidMu],
- pressureScale);
- values[_ElasticPlaneStress::pidLambda] =
- _normalizer->dimensionalize(values[_ElasticPlaneStress::pidLambda],
- pressureScale);
+ values[p_density] =
+ _normalizer->dimensionalize(values[p_density], densityScale);
+ values[p_mu] =
+ _normalizer->dimensionalize(values[p_mu], pressureScale);
+ values[p_lambda] =
+ _normalizer->dimensionalize(values[p_lambda], pressureScale);
+
PetscLogFlops(3);
} // _dimProperties
// ----------------------------------------------------------------------
-// Nondimensionalize initial state.
-void
-pylith::materials::ElasticPlaneStress::_nondimInitState(double* const values,
- const int nvalues) const
-{ // _nondimInitState
- assert(0 != _normalizer);
- assert(0 != values);
- assert(nvalues == _ElasticPlaneStress::numInitialStateDBValues);
-
- const double pressureScale = _normalizer->pressureScale();
- _normalizer->nondimensionalize(values, nvalues, pressureScale);
-
- PetscLogFlops(nvalues);
-} // _nondimInitState
-
-// ----------------------------------------------------------------------
-// Dimensionalize initial state.
-void
-pylith::materials::ElasticPlaneStress::_dimInitState(double* const values,
- const int nvalues) const
-{ // _dimInitState
- assert(0 != _normalizer);
- assert(0 != values);
- assert(nvalues == _ElasticPlaneStress::numInitialStateDBValues);
-
- const double pressureScale = _normalizer->pressureScale();
- _normalizer->dimensionalize(values, nvalues, pressureScale);
-
- PetscLogFlops(nvalues);
-} // _dimInitState
-
-// ----------------------------------------------------------------------
// Compute density at location from properties.
void
pylith::materials::ElasticPlaneStress::_calcDensity(double* const density,
const double* properties,
- const int numProperties)
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars)
{ // calcDensity
assert(0 != density);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
- density[0] = properties[_ElasticPlaneStress::pidDensity];
+ density[0] = properties[p_density];
} // calcDensity
// ----------------------------------------------------------------------
@@ -234,64 +212,82 @@
const int stressSize,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize,
const bool computeStateVars)
{ // _calcStress
assert(0 != stress);
assert(_ElasticPlaneStress::tensorSize == stressSize);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
assert(0 != totalStrain);
assert(_ElasticPlaneStress::tensorSize == strainSize);
- assert(_ElasticPlaneStress::tensorSize == initialStateSize);
+ assert(0 != initialStress);
+ assert(_ElasticPlaneStress::tensorSize == initialStressSize);
+ assert(0 != initialStrain);
+ assert(_ElasticPlaneStress::tensorSize == initialStrainSize);
- const double density = properties[_ElasticPlaneStress::pidDensity];
- const double mu = properties[_ElasticPlaneStress::pidMu];
- const double lambda = properties[_ElasticPlaneStress::pidLambda];
+ const double density = properties[p_density];
+ const double mu = properties[p_mu];
+ const double lambda = properties[p_lambda];
const double mu2 = 2.0 * mu;
const double lambda2mu = lambda + mu2;
const double lambdamu = lambda + mu;
- const double e11 = totalStrain[0];
- const double e22 = totalStrain[1];
- const double e12 = totalStrain[2];
+ const double e11 = totalStrain[0] + initialStrain[0];
+ const double e22 = totalStrain[1] + initialStrain[1];
+ const double e12 = totalStrain[2] + initialStrain[2];
- stress[0] = (2.0*mu2*lambdamu * e11 + mu2*lambda * e22) / lambda2mu + initialState[0];
- stress[1] = (mu2*lambda * e11 + 2.0*mu2*lambdamu * e22) / lambda2mu + initialState[1];
- stress[2] = mu2 * e12 + initialState[2];
+ stress[0] =
+ (2.0*mu2*lambdamu * e11 + mu2*lambda * e22) / lambda2mu + initialStress[0];
+ stress[1] =
+ (mu2*lambda * e11 + 2.0*mu2*lambdamu * e22) / lambda2mu + initialStress[1];
+ stress[2] = mu2 * e12 + initialStress[2];
- PetscLogFlops(18);
+ PetscLogFlops(21);
} // _calcStress
// ----------------------------------------------------------------------
// Compute density at location from properties.
void
pylith::materials::ElasticPlaneStress::_calcElasticConsts(
- double* const elasticConsts,
- const int numElasticConsts,
- const double* properties,
- const int numProperties,
- const double* totalStrain,
- const int strainSize,
- const double* initialState,
- const int initialStateSize)
+ double* const elasticConsts,
+ const int numElasticConsts,
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
+ const double* totalStrain,
+ const int strainSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize)
{ // calcElasticConsts
assert(0 != elasticConsts);
assert(_ElasticPlaneStress::numElasticConsts == numElasticConsts);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
assert(0 != totalStrain);
assert(_ElasticPlaneStress::tensorSize == strainSize);
- assert(_ElasticPlaneStress::tensorSize == initialStateSize);
+ assert(0 != initialStress);
+ assert(_ElasticPlaneStress::tensorSize == initialStressSize);
+ assert(0 != initialStrain);
+ assert(_ElasticPlaneStress::tensorSize == initialStrainSize);
+
+ const double density = properties[p_density];
+ const double mu = properties[p_mu];
+ const double lambda = properties[p_lambda];
- const double density = properties[_ElasticPlaneStress::pidDensity];
- const double mu = properties[_ElasticPlaneStress::pidMu];
- const double lambda = properties[_ElasticPlaneStress::pidLambda];
-
const double mu2 = 2.0 * mu;
const double lambda2mu = lambda + mu2;
const double c11 = 2.0 * mu2 * (lambda + mu) / lambda2mu;
@@ -309,8 +305,11 @@
// ----------------------------------------------------------------------
// Get stable time step for implicit time integration.
double
-pylith::materials::ElasticPlaneStress::_stableTimeStepImplicit(const double* properties,
- const int numProperties) const
+pylith::materials::ElasticPlaneStress::_stableTimeStepImplicit(
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars) const
{ // _stableTimeStepImplicit
return pylith::PYLITH_MAXDOUBLE;
} // _stableTimeStepImplicit
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStress.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStress.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticPlaneStress.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -25,17 +25,10 @@
#if !defined(pylith_materials_elasticplanestress_hh)
#define pylith_materials_elasticplanestress_hh
-#include "ElasticMaterial.hh"
+// Include directives ---------------------------------------------------
+#include "ElasticMaterial.hh" // ISA ElasticMaterial
-/// Namespace for pylith package
-namespace pylith {
- namespace materials {
- class ElasticPlaneStress;
- class TestElasticPlaneStress; // unit testing
- } // materials
-} // pylith
-
-/// 2-D, isotropic, linear elastic material for plane stress.
+// ElasticPlaneStrain ---------------------------------------------------
class pylith::materials::ElasticPlaneStress : public ElasticMaterial
{ // class ElasticPlaneStress
friend class TestElasticPlaneStress; // unit testing
@@ -60,7 +53,7 @@
* @param propValues Array of property values.
* @param dbValues Array of database values.
*/
- void _dbToProperties(double* const propertyValues,
+ void _dbToProperties(double* const propValues,
const double_array& dbValues) const;
/** Nondimensionalize properties.
@@ -79,22 +72,6 @@
void _dimProperties(double* const values,
const int nvalues) const;
- /** Nondimensionalize initial state.
- *
- * @param values Array of initial state values.
- * @param nvalues Number of values.
- */
- void _nondimInitState(double* const values,
- const int nvalues) const;
-
- /** Dimensionalize initial state.
- *
- * @param values Array of initial state values.
- * @param nvalues Number of values.
- */
- void _dimInitState(double* const values,
- const int nvalues) const;
-
/** Compute density from properties.
*
* @param density Array for density.
@@ -103,31 +80,42 @@
*/
void _calcDensity(double* const density,
const double* properties,
- const int numProperties);
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars);
- /** 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.
+ /** Compute stress tensor from properties and state variables. 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.
* @param properties Properties at location.
* @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
* @param totalStrain Total strain at location.
* @param strainSize Size of strain tensor.
- * @param initialState Initial state values.
- * @param initialStateSize Size of initial state array.
- * @param computeStateVars Flag indicating to compute updated state vars.
+ * @param initialStress Initial stress tensor at location.
+ * @param initialStressSize Size of initial stress array.
+ * @param initialStrain Initial strain tensor at location.
+ * @param initialStrainSize Size of initial strain array.
+ * @param computeStateVars Flag indicating to compute updated state variables.
*/
void _calcStress(double* const stress,
const int stressSize,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize,
const bool computeStateVars);
/** Compute derivatives of elasticity matrix from properties.
@@ -136,27 +124,52 @@
* @param numElasticConsts Number of elastic constants.
* @param properties Properties at location.
* @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
* @param totalStrain Total strain at location.
* @param strainSize Size of strain tensor.
- * @param initialState Initial state values.
- * @param initialStateSize Size of initial state array.
+ * @param initialStress Initial stress tensor at location.
+ * @param initialStressSize Size of initial stress array.
+ * @param initialStrain Initial strain tensor at location.
+ * @param initialStrainSize Size of initial strain array.
*/
void _calcElasticConsts(double* const elasticConsts,
const int numElasticConsts,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize);
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize);
/** Get stable time step for implicit time integration.
*
+ * @param properties Properties at location.
+ * @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
+ *
* @returns Time step
*/
double _stableTimeStepImplicit(const double* properties,
- const int numProperties) const;
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars) const;
+ // PRIVATE MEMBERS ////////////////////////////////////////////////////
+private :
+
+ static const int p_density;
+ static const int p_mu;
+ static const int p_lambda;
+ static const int db_density;
+ static const int db_vs;
+ static const int db_vp;
+
// NOT IMPLEMENTED ////////////////////////////////////////////////////
private :
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStrain1D.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStrain1D.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStrain1D.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -14,6 +14,9 @@
#include "ElasticStrain1D.hh" // implementation of object methods
+#include "Metadata.hh" // USES Metadata
+
+#include "pylith/utils/array.hh" // USES double_array
#include "pylith/utils/constdefs.h" // USES MAXDOUBLE
#include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
@@ -21,12 +24,17 @@
#include "petsc.h" // USES PetscLogFlops
#include <cassert> // USES assert()
+#include <sstream> // USES std::ostringstream
+#include <stdexcept> // USES std::runtime_error
// ----------------------------------------------------------------------
namespace pylith {
namespace materials {
namespace _ElasticStrain1D {
+ // Dimension of material.
+ const int dimension = 1;
+
/// Number of entries in stress tensor.
const int tensorSize = 1;
@@ -36,47 +44,52 @@
/// Number of physical properties.
const int numProperties = 3;
- /// Physical properties.
- const Material::PropMetaData properties[] = {
- { "density", 1, OTHER_FIELD },
- { "mu", 1, OTHER_FIELD },
- { "lambda", 1, OTHER_FIELD },
+ // Physical properties.
+ const Metadata::ParamDescription properties[] = {
+ { "density", 1, pylith::topology::FieldBase::SCALAR },
+ { "mu", 1, pylith::topology::FieldBase::SCALAR },
+ { "lambda", 1, pylith::topology::FieldBase::SCALAR },
};
- /// Indices of physical properties
- const int pidDensity = 0;
- const int pidMu = pidDensity + 1;
- const int pidLambda = pidMu + 1;
- /// Values expected in spatial database
- const int numDBValues = 3;
- const char* namesDBValues[] = { "density", "vs", "vp" };
+ // Values expected in spatial database
+ const int numDBProperties = 3;
+ const char* dbProperties[] = { "density", "vs", "vp" };
- /// Indices of database values
- const int didDensity = 0;
- const int didVs = 1;
- const int didVp = 2;
-
- /// Initial state values expected in spatial database.
- const int numInitialStateDBValues = tensorSize;
- const char* namesInitialStateDBValues[] = { "stress_xx" };
-
} // _ElasticStrain1D
} // materials
} // pylith
+// Indices of physical properties
+const int pylith::materials::ElasticStrain1D::p_density = 0;
+const int pylith::materials::ElasticStrain1D::p_mu =
+ pylith::materials::ElasticStrain1D::p_density + 1;
+
+const int pylith::materials::ElasticStrain1D::p_lambda =
+ pylith::materials::ElasticStrain1D::p_mu + 1;
+
+// Indices of database values (order must match dbProperties)
+const int pylith::materials::ElasticStrain1D::db_density = 0;
+
+const int pylith::materials::ElasticStrain1D::db_vs =
+ pylith::materials::ElasticStrain1D::db_density + 1;
+
+const int pylith::materials::ElasticStrain1D::db_vp =
+ pylith::materials::ElasticStrain1D::db_vs + 1;
+
// ----------------------------------------------------------------------
// Default constructor.
pylith::materials::ElasticStrain1D::ElasticStrain1D(void) :
- ElasticMaterial(_ElasticStrain1D::tensorSize,
+ ElasticMaterial(_ElasticStrain1D::dimension,
+ _ElasticStrain1D::tensorSize,
_ElasticStrain1D::numElasticConsts,
- _ElasticStrain1D::namesDBValues,
- _ElasticStrain1D::namesInitialStateDBValues,
- _ElasticStrain1D::numDBValues,
- _ElasticStrain1D::properties,
- _ElasticStrain1D::numProperties)
+ Metadata(_ElasticStrain1D::properties,
+ _ElasticStrain1D::numProperties,
+ _ElasticStrain1D::dbProperties,
+ _ElasticStrain1D::numDBProperties,
+ 0, 0,
+ 0, 0))
{ // constructor
- _dimension = 1;
} // constructor
// ----------------------------------------------------------------------
@@ -94,12 +107,12 @@
{ // _dbToProperties
assert(0 != propValues);
const int numDBValues = dbValues.size();
- assert(_ElasticStrain1D::numDBValues == numDBValues);
+ assert(_ElasticStrain1D::numDBProperties == numDBValues);
- const double density = dbValues[_ElasticStrain1D::didDensity];
- const double vp = dbValues[_ElasticStrain1D::didVp];
- const double vs = dbValues[_ElasticStrain1D::didVs];
-
+ const double density = dbValues[db_density];
+ const double vs = dbValues[db_vs];
+ const double vp = dbValues[db_vp];
+
if (density <= 0.0 || vs <= 0.0 || vp <= 0.0) {
std::ostringstream msg;
msg << "Spatial database returned nonpositive value for physical "
@@ -122,9 +135,9 @@
throw std::runtime_error(msg.str());
} // if
- propValues[_ElasticStrain1D::pidDensity] = density;
- propValues[_ElasticStrain1D::pidMu] = mu;
- propValues[_ElasticStrain1D::pidLambda] = lambda;
+ propValues[p_density] = density;
+ propValues[p_mu] = mu;
+ propValues[p_lambda] = lambda;
PetscLogFlops(6);
} // _dbToProperties
@@ -141,16 +154,14 @@
const double densityScale = _normalizer->densityScale();
const double pressureScale = _normalizer->pressureScale();
- values[_ElasticStrain1D::pidDensity] =
- _normalizer->nondimensionalize(values[_ElasticStrain1D::pidDensity],
- densityScale);
- values[_ElasticStrain1D::pidMu] =
- _normalizer->nondimensionalize(values[_ElasticStrain1D::pidMu],
- pressureScale);
- values[_ElasticStrain1D::pidLambda] =
- _normalizer->nondimensionalize(values[_ElasticStrain1D::pidLambda],
- pressureScale);
+ values[p_density] =
+ _normalizer->nondimensionalize(values[p_density], densityScale);
+ values[p_mu] =
+ _normalizer->nondimensionalize(values[p_mu], pressureScale);
+ values[p_lambda] =
+ _normalizer->nondimensionalize(values[p_lambda], pressureScale);
+
PetscLogFlops(3);
} // _nondimProperties
@@ -166,121 +177,105 @@
const double densityScale = _normalizer->densityScale();
const double pressureScale = _normalizer->pressureScale();
- values[_ElasticStrain1D::pidDensity] =
- _normalizer->dimensionalize(values[_ElasticStrain1D::pidDensity],
- densityScale);
- values[_ElasticStrain1D::pidMu] =
- _normalizer->dimensionalize(values[_ElasticStrain1D::pidMu],
- pressureScale);
- values[_ElasticStrain1D::pidLambda] =
- _normalizer->dimensionalize(values[_ElasticStrain1D::pidLambda],
- pressureScale);
+ values[p_density] =
+ _normalizer->dimensionalize(values[p_density], densityScale);
+ values[p_mu] =
+ _normalizer->dimensionalize(values[p_mu], pressureScale);
+ values[p_lambda] =
+ _normalizer->dimensionalize(values[p_lambda], pressureScale);
+
PetscLogFlops(3);
} // _dimProperties
// ----------------------------------------------------------------------
-// Nondimensionalize initial state.
-void
-pylith::materials::ElasticStrain1D::_nondimInitState(double* const values,
- const int nvalues) const
-{ // _nondimInitState
- assert(0 != _normalizer);
- assert(0 != values);
- assert(nvalues == _ElasticStrain1D::numInitialStateDBValues);
-
- const double pressureScale = _normalizer->pressureScale();
- _normalizer->nondimensionalize(values, nvalues, pressureScale);
-
- PetscLogFlops(nvalues);
-} // _nondimInitState
-
-// ----------------------------------------------------------------------
-// Dimensionalize initial state.
-void
-pylith::materials::ElasticStrain1D::_dimInitState(double* const values,
- const int nvalues) const
-{ // _dimInitState
- assert(0 != _normalizer);
- assert(0 != values);
- assert(nvalues == _ElasticStrain1D::numInitialStateDBValues);
-
- const double pressureScale = _normalizer->pressureScale();
- _normalizer->dimensionalize(values, nvalues, pressureScale);
-
- PetscLogFlops(nvalues);
-} // _dimInitState
-
-// ----------------------------------------------------------------------
// Compute density at location from properties.
void
pylith::materials::ElasticStrain1D::_calcDensity(double* const density,
const double* properties,
- const int numProperties)
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars)
{ // _calcDensity
assert(0 != density);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
- density[0] = properties[_ElasticStrain1D::pidDensity];
+ density[0] = properties[p_density];
} // _calcDensity
// ----------------------------------------------------------------------
// Compute stress tensor at location from properties.
void
-pylith::materials::ElasticStrain1D::_calcStress(
- double* const stress,
- const int stressSize,
- const double* properties,
- const int numProperties,
- const double* totalStrain,
- const int strainSize,
- const double* initialState,
- const int initialStateSize,
- const bool computeStateVars)
+pylith::materials::ElasticStrain1D::_calcStress(double* const stress,
+ const int stressSize,
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
+ const double* totalStrain,
+ const int strainSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize,
+ const bool computeStateVars)
{ // _calcStress
assert(0 != stress);
assert(_ElasticStrain1D::tensorSize == stressSize);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
assert(0 != totalStrain);
assert(_ElasticStrain1D::tensorSize == strainSize);
- assert(_ElasticStrain1D::tensorSize == initialStateSize);
+ assert(0 != initialStress);
+ assert(_ElasticStrain1D::tensorSize == initialStressSize);
+ assert(0 != initialStrain);
+ assert(_ElasticStrain1D::tensorSize == initialStrainSize);
- const double density = properties[_ElasticStrain1D::pidDensity];
- const double lambda = properties[_ElasticStrain1D::pidLambda];
- const double mu = properties[_ElasticStrain1D::pidMu];
+ const double density = properties[p_density];
+ const double mu = properties[p_mu];
+ const double lambda = properties[p_lambda];
- const double e11 = totalStrain[0];
- stress[0] = (lambda + 2.0*mu) * e11 + initialState[0];
+ const double e11 = totalStrain[0] + initialStrain[0];
+ stress[0] = (lambda + 2.0*mu) * e11 + initialStress[0];
- PetscLogFlops(4);
+ PetscLogFlops(5);
} // _calcStress
// ----------------------------------------------------------------------
// Compute derivative of elasticity matrix at location from properties.
void
pylith::materials::ElasticStrain1D::_calcElasticConsts(
- double* const elasticConsts,
- const int numElasticConsts,
- const double* properties,
- const int numProperties,
- const double* totalStrain,
- const int strainSize,
- const double* initialState,
- const int initialStateSize)
+ double* const elasticConsts,
+ const int numElasticConsts,
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
+ const double* totalStrain,
+ const int strainSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize)
{ // _calcElasticConsts
assert(0 != elasticConsts);
assert(_ElasticStrain1D::numElasticConsts == numElasticConsts);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
assert(0 != totalStrain);
assert(_ElasticStrain1D::tensorSize == strainSize);
- assert(_ElasticStrain1D::tensorSize == initialStateSize);
+ assert(0 != initialStress);
+ assert(_ElasticStrain1D::tensorSize == initialStressSize);
+ assert(0 != initialStrain);
+ assert(_ElasticStrain1D::tensorSize == initialStrainSize);
- const double density = properties[_ElasticStrain1D::pidDensity];
- const double lambda = properties[_ElasticStrain1D::pidLambda];
- const double mu = properties[_ElasticStrain1D::pidMu];
+ const double density = properties[p_density];
+ const double mu = properties[p_mu];
+ const double lambda = properties[p_lambda];
elasticConsts[0] = lambda + 2.0*mu;
@@ -290,8 +285,11 @@
// ----------------------------------------------------------------------
// Get stable time step for implicit time integration.
double
-pylith::materials::ElasticStrain1D::_stableTimeStepImplicit(const double* properties,
- const int numProperties) const
+pylith::materials::ElasticStrain1D::_stableTimeStepImplicit(
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars) const
{ // _stableTimeStepImplicit
return pylith::PYLITH_MAXDOUBLE;
} // _stableTimeStepImplicit
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStrain1D.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStrain1D.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStrain1D.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -24,17 +24,10 @@
#if !defined(pylith_materials_elasticstrain1d_hh)
#define pylith_materials_elasticstrain1d_hh
-#include "ElasticMaterial.hh"
+// Include directives ---------------------------------------------------
+#include "ElasticMaterial.hh" // ISA ElasticMaterial
-/// Namespace for pylith package
-namespace pylith {
- namespace materials {
- class ElasticStrain1D;
- class TestElasticStrain1D; // unit testing
- } // materials
-} // pylith
-
-/// 3-D, linear elastic material with axial strain.
+// ElasticStrain1D ------------------------------------------------------
class pylith::materials::ElasticStrain1D : public ElasticMaterial
{ // class ElasticStrain1D
friend class TestElasticStrain1D; // unit testing
@@ -78,22 +71,6 @@
void _dimProperties(double* const values,
const int nvalues) const;
- /** Nondimensionalize initial state.
- *
- * @param values Array of initial state values.
- * @param nvalues Number of values.
- */
- void _nondimInitState(double* const values,
- const int nvalues) const;
-
- /** Dimensionalize initial state.
- *
- * @param values Array of initial state values.
- * @param nvalues Number of values.
- */
- void _dimInitState(double* const values,
- const int nvalues) const;
-
/** Compute density from properties.
*
* @param density Array for density.
@@ -102,31 +79,42 @@
*/
void _calcDensity(double* const density,
const double* properties,
- const int numProperties);
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars);
- /** 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.
+ /** Compute stress tensor from properties and state variables. 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.
* @param properties Properties at location.
* @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
* @param totalStrain Total strain at location.
* @param strainSize Size of strain tensor.
- * @param initialState Initial state values.
- * @param initialStateSize Size of initial state array.
- * @param computeStateVars Flag indicating to compute updated state vars.
+ * @param initialStress Initial stress tensor at location.
+ * @param initialStressSize Size of initial stress array.
+ * @param initialStrain Initial strain tensor at location.
+ * @param initialStrainSize Size of initial strain array.
+ * @param computeStateVars Flag indicating to compute updated state variables.
*/
void _calcStress(double* const stress,
const int stressSize,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize,
const bool computeStateVars);
/** Compute derivatives of elasticity matrix from properties.
@@ -135,27 +123,52 @@
* @param numElasticConsts Number of elastic constants.
* @param properties Properties at location.
* @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
* @param totalStrain Total strain at location.
* @param strainSize Size of strain tensor.
- * @param initialState Initial state values.
- * @param initialStateSize Size of initial state array.
+ * @param initialStress Initial stress tensor at location.
+ * @param initialStressSize Size of initial stress array.
+ * @param initialStrain Initial strain tensor at location.
+ * @param initialStrainSize Size of initial strain array.
*/
void _calcElasticConsts(double* const elasticConsts,
const int numElasticConsts,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize);
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize);
/** Get stable time step for implicit time integration.
*
+ * @param properties Properties at location.
+ * @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
+ *
* @returns Time step
*/
double _stableTimeStepImplicit(const double* properties,
- const int numProperties) const;
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars) const;
+ // PRIVATE MEMBERS ////////////////////////////////////////////////////
+private :
+
+ static const int p_density;
+ static const int p_mu;
+ static const int p_lambda;
+ static const int db_density;
+ static const int db_vs;
+ static const int db_vp;
+
// NOT IMPLEMENTED ////////////////////////////////////////////////////
private :
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStress1D.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStress1D.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStress1D.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -14,6 +14,9 @@
#include "ElasticStress1D.hh" // implementation of object methods
+#include "Metadata.hh" // USES Metadata
+
+#include "pylith/utils/array.hh" // USES double_array
#include "pylith/utils/constdefs.h" // USES MAXDOUBLE
#include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
@@ -21,12 +24,17 @@
#include "petsc.h" // USES PetscLogFlops
#include <cassert> // USES assert()
+#include <sstream> // USES std::ostringstream
+#include <stdexcept> // USES std::runtime_error
// ----------------------------------------------------------------------
namespace pylith {
namespace materials {
namespace _ElasticStress1D {
+ // Dimension of material.
+ const int dimension = 1;
+
/// Number of entries in stress tensor.
const int tensorSize = 1;
@@ -36,46 +44,52 @@
/// Number of physical properties.
const int numProperties = 3;
- /// Physical properties.
- const Material::PropMetaData properties[] = {
- { "density", 1, OTHER_FIELD },
- { "mu", 1, OTHER_FIELD },
- { "lambda", 1, OTHER_FIELD },
+ // Physical properties.
+ const Metadata::ParamDescription properties[] = {
+ { "density", 1, pylith::topology::FieldBase::SCALAR },
+ { "mu", 1, pylith::topology::FieldBase::SCALAR },
+ { "lambda", 1, pylith::topology::FieldBase::SCALAR },
};
- /// Indices of physical properties
- const int pidDensity = 0;
- const int pidMu = pidDensity + 1;
- const int pidLambda = pidMu + 1;
- /// Values expected in spatial database
- const int numDBValues = 3;
- const char* namesDBValues[] = { "density", "vs", "vp" };
+ // Values expected in spatial database
+ const int numDBProperties = 3;
+ const char* dbProperties[] = { "density", "vs", "vp" };
- /// Indices of database values
- const int didDensity = 0;
- const int didVs = 1;
- const int didVp = 2;
-
- /// Initial state values expected in spatial database
- const int numInitialStateDBValues = tensorSize;
- const char* namesInitialStateDBValues[] = { "stress_xx" };
-
} // _ElasticStress1D
} // materials
} // pylith
+// Indices of physical properties
+const int pylith::materials::ElasticStress1D::p_density = 0;
+
+const int pylith::materials::ElasticStress1D::p_mu =
+ pylith::materials::ElasticStress1D::p_density + 1;
+
+const int pylith::materials::ElasticStress1D::p_lambda =
+ pylith::materials::ElasticStress1D::p_mu + 1;
+
+// Indices of database values (order must match dbProperties)
+const int pylith::materials::ElasticStress1D::db_density = 0;
+
+const int pylith::materials::ElasticStress1D::db_vs =
+ pylith::materials::ElasticStress1D::db_density + 1;
+
+const int pylith::materials::ElasticStress1D::db_vp =
+ pylith::materials::ElasticStress1D::db_vs + 1;
+
// ----------------------------------------------------------------------
// Default constructor.
pylith::materials::ElasticStress1D::ElasticStress1D(void) :
- ElasticMaterial(_ElasticStress1D::tensorSize,
+ ElasticMaterial(_ElasticStress1D::dimension,
+ _ElasticStress1D::tensorSize,
_ElasticStress1D::numElasticConsts,
- _ElasticStress1D::namesDBValues,
- _ElasticStress1D::namesInitialStateDBValues,
- _ElasticStress1D::numDBValues,
- _ElasticStress1D::properties,
- _ElasticStress1D::numProperties)
+ Metadata(_ElasticStress1D::properties,
+ _ElasticStress1D::numProperties,
+ _ElasticStress1D::dbProperties,
+ _ElasticStress1D::numDBProperties,
+ 0, 0,
+ 0, 0))
{ // constructor
- _dimension = 1;
} // constructor
// ----------------------------------------------------------------------
@@ -88,16 +102,16 @@
// Compute parameters from values in spatial database.
void
pylith::materials::ElasticStress1D::_dbToProperties(
- double* const propValues,
- const double_array& dbValues) const
+ double* const propValues,
+ const double_array& dbValues) const
{ // _dbToProperties
assert(0 != propValues);
const int numDBValues = dbValues.size();
- assert(_ElasticStress1D::numDBValues == numDBValues);
+ assert(_ElasticStress1D::numDBProperties == numDBValues);
- const double density = dbValues[_ElasticStress1D::didDensity];
- const double vs = dbValues[_ElasticStress1D::didVs];
- const double vp = dbValues[_ElasticStress1D::didVp];
+ const double density = dbValues[db_density];
+ const double vs = dbValues[db_vs];
+ const double vp = dbValues[db_vp];
if (density <= 0.0 || vs <= 0.0 || vp <= 0.0) {
std::ostringstream msg;
@@ -121,9 +135,9 @@
throw std::runtime_error(msg.str());
} // if
- propValues[_ElasticStress1D::pidDensity] = density;
- propValues[_ElasticStress1D::pidMu] = mu;
- propValues[_ElasticStress1D::pidLambda] = lambda;
+ propValues[p_density] = density;
+ propValues[p_mu] = mu;
+ propValues[p_lambda] = lambda;
PetscLogFlops(6);
} // _dbToProperties
@@ -132,7 +146,7 @@
// Nondimensionalize properties.
void
pylith::materials::ElasticStress1D::_nondimProperties(double* const values,
- const int nvalues) const
+ const int nvalues) const
{ // _nondimProperties
assert(0 != _normalizer);
assert(0 != values);
@@ -140,16 +154,14 @@
const double densityScale = _normalizer->densityScale();
const double pressureScale = _normalizer->pressureScale();
- values[_ElasticStress1D::pidDensity] =
- _normalizer->nondimensionalize(values[_ElasticStress1D::pidDensity],
- densityScale);
- values[_ElasticStress1D::pidMu] =
- _normalizer->nondimensionalize(values[_ElasticStress1D::pidMu],
- pressureScale);
- values[_ElasticStress1D::pidLambda] =
- _normalizer->nondimensionalize(values[_ElasticStress1D::pidLambda],
- pressureScale);
+ values[p_density] =
+ _normalizer->nondimensionalize(values[p_density], densityScale);
+ values[p_mu] =
+ _normalizer->nondimensionalize(values[p_mu], pressureScale);
+ values[p_lambda] =
+ _normalizer->nondimensionalize(values[p_lambda], pressureScale);
+
PetscLogFlops(3);
} // _nondimProperties
@@ -165,63 +177,32 @@
const double densityScale = _normalizer->densityScale();
const double pressureScale = _normalizer->pressureScale();
- values[_ElasticStress1D::pidDensity] =
- _normalizer->dimensionalize(values[_ElasticStress1D::pidDensity],
- densityScale);
- values[_ElasticStress1D::pidMu] =
- _normalizer->dimensionalize(values[_ElasticStress1D::pidMu],
- pressureScale);
- values[_ElasticStress1D::pidLambda] =
- _normalizer->dimensionalize(values[_ElasticStress1D::pidLambda],
- pressureScale);
+ values[p_density] =
+ _normalizer->dimensionalize(values[p_density], densityScale);
+ values[p_mu] =
+ _normalizer->dimensionalize(values[p_mu], pressureScale);
+ values[p_lambda] =
+ _normalizer->dimensionalize(values[p_lambda], pressureScale);
+
PetscLogFlops(3);
} // _dimProperties
// ----------------------------------------------------------------------
-// Nondimensionalize initial state.
-void
-pylith::materials::ElasticStress1D::_nondimInitState(double* const values,
- const int nvalues) const
-{ // _nondimInitState
- assert(0 != _normalizer);
- assert(0 != values);
- assert(nvalues == _ElasticStress1D::numInitialStateDBValues);
-
- const double pressureScale = _normalizer->pressureScale();
- _normalizer->nondimensionalize(values, nvalues, pressureScale);
-
- PetscLogFlops(nvalues);
-} // _nondimInitState
-
-// ----------------------------------------------------------------------
-// Dimensionalize initial state.
-void
-pylith::materials::ElasticStress1D::_dimInitState(double* const values,
- const int nvalues) const
-{ // _dimInitState
- assert(0 != _normalizer);
- assert(0 != values);
- assert(nvalues == _ElasticStress1D::numInitialStateDBValues);
-
- const double pressureScale = _normalizer->pressureScale();
- _normalizer->dimensionalize(values, nvalues, pressureScale);
-
- PetscLogFlops(nvalues);
-} // _dimInitState
-
-// ----------------------------------------------------------------------
// Compute density at location from properties.
void
pylith::materials::ElasticStress1D::_calcDensity(double* const density,
const double* properties,
- const int numProperties)
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars)
{ // _calcDensity
assert(0 != density);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
- density[0] = properties[_ElasticStress1D::pidDensity];
+ density[0] = properties[p_density];
} // _calcDensity
// ----------------------------------------------------------------------
@@ -231,54 +212,70 @@
const int stressSize,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize,
const bool computeStateVars)
{ // _calcStress
assert(0 != stress);
assert(_ElasticStress1D::tensorSize == stressSize);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
assert(0 != totalStrain);
assert(_ElasticStress1D::tensorSize == strainSize);
- assert(_ElasticStress1D::tensorSize == initialStateSize);
+ assert(0 != initialStress);
+ assert(_ElasticStress1D::tensorSize == initialStressSize);
+ assert(0 != initialStrain);
+ assert(_ElasticStress1D::tensorSize == initialStrainSize);
- const double density = properties[_ElasticStress1D::pidDensity];
- const double mu = properties[_ElasticStress1D::pidMu];
- const double lambda = properties[_ElasticStress1D::pidLambda];
+ const double density = properties[p_density];
+ const double mu = properties[p_mu];
+ const double lambda = properties[p_lambda];
- const double e11 = totalStrain[0];
- stress[0] = mu * (3.0*lambda+2.0*mu) / (lambda + mu) * e11 + initialState[0];
+ const double e11 = totalStrain[0] + initialStrain[0];
+ stress[0] = mu * (3.0*lambda+2.0*mu) / (lambda + mu) * e11 + initialStress[0];
- PetscLogFlops(7);
+ PetscLogFlops(9);
} // _calcStress
// ----------------------------------------------------------------------
// Compute derivative of elasticity matrix at location from properties.
void
pylith::materials::ElasticStress1D::_calcElasticConsts(
- double* const elasticConsts,
- const int numElasticConsts,
- const double* properties,
- const int numProperties,
- const double* totalStrain,
- const int strainSize,
- const double* initialState,
- const int initialStateSize)
+ double* const elasticConsts,
+ const int numElasticConsts,
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
+ const double* totalStrain,
+ const int strainSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize)
{ // _calcElasticConsts
assert(0 != elasticConsts);
assert(_ElasticStress1D::numElasticConsts == numElasticConsts);
assert(0 != properties);
- assert(_totalPropsQuadPt == numProperties);
+ assert(_numPropsQuadPt == numProperties);
+ assert(0 == numStateVars);
assert(0 != totalStrain);
assert(_ElasticStress1D::tensorSize == strainSize);
- assert(_ElasticStress1D::tensorSize == initialStateSize);
+ assert(0 != initialStress);
+ assert(_ElasticStress1D::tensorSize == initialStressSize);
+ assert(0 != initialStrain);
+ assert(_ElasticStress1D::tensorSize == initialStrainSize);
- const double density = properties[_ElasticStress1D::pidDensity];
- const double mu = properties[_ElasticStress1D::pidMu];
- const double lambda = properties[_ElasticStress1D::pidLambda];
+ const double density = properties[p_density];
+ const double mu = properties[p_mu];
+ const double lambda = properties[p_lambda];
elasticConsts[0] = mu * (3.0*lambda+2.0*mu) / (lambda + mu);
@@ -288,8 +285,11 @@
// ----------------------------------------------------------------------
// Get stable time step for implicit time integration.
double
-pylith::materials::ElasticStress1D::_stableTimeStepImplicit(const double* properties,
- const int numProperties) const
+pylith::materials::ElasticStress1D::_stableTimeStepImplicit(
+ const double* properties,
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars) const
{ // _stableTimeStepImplicit
return pylith::PYLITH_MAXDOUBLE;
} // _stableTimeStepImplicit
Modified: short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStress1D.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStress1D.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/libsrc/materials/ElasticStress1D.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -25,17 +25,10 @@
#if !defined(pylith_materials_elasticstress1d_hh)
#define pylith_materials_elasticstress1d_hh
-#include "ElasticMaterial.hh"
+// Include directives ---------------------------------------------------
+#include "ElasticMaterial.hh" // ISA ElasticMaterial
-/// Namespace for pylith package
-namespace pylith {
- namespace materials {
- class ElasticStress1D;
- class TestElasticStress1D; // unit testing
- } // materials
-} // pylith
-
-/// 1-D, linear elastic material with axial stres.
+// ElasticStress1D ------------------------------------------------------
class pylith::materials::ElasticStress1D : public ElasticMaterial
{ // class ElasticStress1D
friend class TestElasticStress1D; // unit testing
@@ -79,22 +72,6 @@
void _dimProperties(double* const values,
const int nvalues) const;
- /** Nondimensionalize initial state.
- *
- * @param values Array of initial state values.
- * @param nvalues Number of values.
- */
- void _nondimInitState(double* const values,
- const int nvalues) const;
-
- /** Dimensionalize initial state.
- *
- * @param values Array of initial state values.
- * @param nvalues Number of values.
- */
- void _dimInitState(double* const values,
- const int nvalues) const;
-
/** Compute density from properties.
*
* @param density Array for density.
@@ -103,31 +80,42 @@
*/
void _calcDensity(double* const density,
const double* properties,
- const int numProperties);
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars);
- /** 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.
+ /** Compute stress tensor from properties and state variables. 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.
* @param properties Properties at location.
* @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
* @param totalStrain Total strain at location.
* @param strainSize Size of strain tensor.
- * @param initialState Initial state values.
- * @param initialStateSize Size of initial state array.
- * @param computeStateVars Flag indicating to compute updated state vars.
+ * @param initialStress Initial stress tensor at location.
+ * @param initialStressSize Size of initial stress array.
+ * @param initialStrain Initial strain tensor at location.
+ * @param initialStrainSize Size of initial strain array.
+ * @param computeStateVars Flag indicating to compute updated state variables.
*/
void _calcStress(double* const stress,
const int stressSize,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize,
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize,
const bool computeStateVars);
/** Compute derivatives of elasticity matrix from properties.
@@ -136,27 +124,52 @@
* @param numElasticConsts Number of elastic constants.
* @param properties Properties at location.
* @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
* @param totalStrain Total strain at location.
* @param strainSize Size of strain tensor.
- * @param initialState Initial state values.
- * @param initialStateSize Size of initial state array.
+ * @param initialStress Initial stress tensor at location.
+ * @param initialStressSize Size of initial stress array.
+ * @param initialStrain Initial strain tensor at location.
+ * @param initialStrainSize Size of initial strain array.
*/
void _calcElasticConsts(double* const elasticConsts,
const int numElasticConsts,
const double* properties,
const int numProperties,
+ const double* stateVars,
+ const int numStateVars,
const double* totalStrain,
const int strainSize,
- const double* initialState,
- const int initialStateSize);
+ const double* initialStress,
+ const int initialStressSize,
+ const double* initialStrain,
+ const int initialStrainSize);
/** Get stable time step for implicit time integration.
*
+ * @param properties Properties at location.
+ * @param numProperties Number of properties.
+ * @param stateVars State variables at location.
+ * @param numStateVars Number of state variables.
+ *
* @returns Time step
*/
double _stableTimeStepImplicit(const double* properties,
- const int numProperties) const;
+ const int numProperties,
+ const double* stateVars,
+ const int numStateVars) const;
+ // PRIVATE MEMBERS ////////////////////////////////////////////////////
+private :
+
+ static const int p_density;
+ static const int p_mu;
+ static const int p_lambda;
+ static const int db_density;
+ static const int db_vs;
+ static const int db_vp;
+
// NOT IMPLEMENTED ////////////////////////////////////////////////////
private :
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/Makefile.am
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/Makefile.am 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/Makefile.am 2009-02-23 03:08:39 UTC (rev 14118)
@@ -24,13 +24,13 @@
TestMetadata.cc \
TestMaterial.cc \
TestElasticMaterial.cc \
+ TestElasticStrain1D.cc \
+ TestElasticStress1D.cc \
+ TestElasticPlaneStrain.cc \
+ TestElasticPlaneStress.cc \
TestElasticIsotropic3D.cc \
test_materials.cc
-# TestElasticPlaneStrain.cc \
-# TestElasticPlaneStress.cc \
-# TestElasticStrain1D.cc \
-# TestElasticStress1D.cc \
# TestGenMaxwellIsotropic3D.cc \
# TestMaxwellIsotropic3D.cc
@@ -51,12 +51,12 @@
testmaterials_SOURCES += \
data/MaterialData.cc \
data/ElasticMaterialData.cc \
+ data/ElasticStrain1DData.cc \
+ data/ElasticStress1DData.cc \
+ data/ElasticPlaneStrainData.cc \
+ data/ElasticPlaneStressData.cc \
data/ElasticIsotropic3DData.cc
-# data/ElasticPlaneStrainData.cc \
-# data/ElasticPlaneStressData.cc \
-# data/ElasticStrain1DData.cc \
-# data/ElasticStress1DData.cc \
# data/GenMaxwellIsotropic3DElasticData.cc \
# data/GenMaxwellIsotropic3DTimeDepData.cc \
# data/MaxwellIsotropic3DElasticData.cc \
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticIsotropic3D.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticIsotropic3D.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticIsotropic3D.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -17,7 +17,6 @@
#include "data/ElasticIsotropic3DData.hh" // USES ElasticIsotropic3DData
#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/units/Nondimensional.hh" // USES Nondimensional
// ----------------------------------------------------------------------
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::materials::TestElasticIsotropic3D );
@@ -31,14 +30,7 @@
_matElastic = new ElasticIsotropic3D();
_data = new ElasticIsotropic3DData();
_dataElastic = new ElasticIsotropic3DData();
-
- spatialdata::units::Nondimensional normalizer;
- normalizer.lengthScale(_data->lengthScale);
- normalizer.pressureScale(_data->pressureScale);
- normalizer.timeScale(_data->timeScale);
- normalizer.densityScale(_data->densityScale);
- _material->normalizer(normalizer);
- _matElastic->normalizer(normalizer);
+ setupNormalizer();
} // setUp
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticIsotropic3D.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticIsotropic3D.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticIsotropic3D.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -26,9 +26,7 @@
/// Namespace for pylith package
namespace pylith {
namespace materials {
- class ElasticIsotropic3D;
class TestElasticIsotropic3D;
- class ElasticIsotropic3DData;
} // materials
} // pylith
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticMaterial.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticMaterial.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticMaterial.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -599,5 +599,19 @@
CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dt/dtE, tolerance);
} // _testStableTimeStepImplicit
+// ----------------------------------------------------------------------
+// Setup nondimensionalization.
+void
+pylith::materials::TestElasticMaterial::setupNormalizer(void)
+{ // setupNormalizer
+ spatialdata::units::Nondimensional normalizer;
+ normalizer.lengthScale(_data->lengthScale);
+ normalizer.pressureScale(_data->pressureScale);
+ normalizer.timeScale(_data->timeScale);
+ normalizer.densityScale(_data->densityScale);
+ _material->normalizer(normalizer);
+ _matElastic->normalizer(normalizer);
+} // setupNormalizer
+
// End of file
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticMaterial.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticMaterial.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticMaterial.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -111,7 +111,12 @@
/// Test _stableTimeStepImplicit().
void test_stableTimeStepImplicit(void);
+ // PROTECTED METHODS //////////////////////////////////////////////////
+protected :
+ /// Setup nondimensionalization.
+ void setupNormalizer(void);
+
// PROTECTED MEMBERS //////////////////////////////////////////////////
protected :
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStrain.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStrain.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStrain.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -30,55 +30,8 @@
_matElastic = new ElasticPlaneStrain();
_data = new ElasticPlaneStrainData();
_dataElastic = new ElasticPlaneStrainData();
+ setupNormalizer();
} // setUp
-// ----------------------------------------------------------------------
-// Test usesUpdateProperties()
-void
-pylith::materials::TestElasticPlaneStrain::testUsesUpdateProperties(void)
-{ // testUsesUpdateProperties
- ElasticPlaneStrain material;
- CPPUNIT_ASSERT_EQUAL(false, material.usesUpdateProperties());
-} // testUsesUpdateProperties
-// ----------------------------------------------------------------------
-// Test updateProperties()
-void
-pylith::materials::TestElasticPlaneStrain::testUpdateProperties(void)
-{ // testUpdateProperties
- ElasticPlaneStrain material;
- ElasticPlaneStrainData data;
-
- const int numParams = data.numParameters;
-
- double_array parameters(numParams);
- const int paramsSize = 1;
- for (int i=0; i < numParams; ++i) {
- for (int j=0; j < paramsSize; ++j)
- parameters[i*paramsSize+j] = i+j;
- } // for
-
- const int tensorSize = 9;
- const int initialStateSize = 9;
- double_array totalStrain(tensorSize);
- double_array initialState(initialStateSize);
- for (int i=0; i < tensorSize; ++i) {
- totalStrain[i] = i;
- initialState[i] = 0.1*i;
- } // for
-
- material._updateProperties(¶meters[0], numParams, &totalStrain[0],
- tensorSize, &initialState[0], initialStateSize);
-
- const double tolerance = 1.0e-06;
- for (int i=0; i < numParams; ++i)
- for (int j=0; j < paramsSize; ++j)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i+j), parameters[i*paramsSize+j],
- tolerance);
-
- for (int i=0; i < tensorSize; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i), totalStrain[i], tolerance);
-} // testUpdateProperties
-
-
// End of file
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStrain.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStrain.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStrain.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -26,9 +26,7 @@
/// Namespace for pylith package
namespace pylith {
namespace materials {
- class ElasticPlaneStrain;
class TestElasticPlaneStrain;
- class ElasticPlaneStrainData;
} // materials
} // pylith
@@ -40,16 +38,17 @@
CPPUNIT_TEST_SUITE( TestElasticPlaneStrain );
CPPUNIT_TEST( testDBToProperties );
- CPPUNIT_TEST( testDBValues );
- CPPUNIT_TEST( testProperties );
+ CPPUNIT_TEST( testNonDimProperties );
+ CPPUNIT_TEST( testDimProperties );
+ CPPUNIT_TEST( testDBToStateVars );
+ CPPUNIT_TEST( testNonDimStateVars );
+ CPPUNIT_TEST( testDimStateVars );
CPPUNIT_TEST( test_calcDensity );
CPPUNIT_TEST( test_calcStress );
CPPUNIT_TEST( test_calcElasticConsts );
+ CPPUNIT_TEST( test_updateStateVars );
CPPUNIT_TEST( test_stableTimeStepImplicit );
- CPPUNIT_TEST( testUsesUpdateProperties );
- CPPUNIT_TEST( testUpdateProperties );
-
CPPUNIT_TEST_SUITE_END();
// PUBLIC METHODS /////////////////////////////////////////////////////
@@ -58,12 +57,6 @@
/// Setup testing data.
void setUp(void);
- /// Test usesUpdateProperties().
- void testUsesUpdateProperties(void);
-
- /// Test updateProperties()
- void testUpdateProperties(void);
-
}; // class TestElasticPlaneStrain
#endif // pylith_materials_testelasticplanestrain_hh
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStress.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStress.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStress.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -30,55 +30,8 @@
_matElastic = new ElasticPlaneStress();
_data = new ElasticPlaneStressData();
_dataElastic = new ElasticPlaneStressData();
+ setupNormalizer();
} // setUp
-// ----------------------------------------------------------------------
-// Test usesUpdateProperties()
-void
-pylith::materials::TestElasticPlaneStress::testUsesUpdateProperties(void)
-{ // testUsesUpdateProperties
- ElasticPlaneStress material;
- CPPUNIT_ASSERT_EQUAL(false, material.usesUpdateProperties());
-} // testUsesUpdateProperties
-// ----------------------------------------------------------------------
-// Test updateProperties()
-void
-pylith::materials::TestElasticPlaneStress::testUpdateProperties(void)
-{ // testUpdateProperties
- ElasticPlaneStress material;
- ElasticPlaneStressData data;
-
- const int numParams = data.numParameters;
-
- double_array parameters(numParams);
- const int paramsSize = 1;
- for (int i=0; i < numParams; ++i) {
- for (int j=0; j < paramsSize; ++j)
- parameters[i*paramsSize+j] = i+j;
- } // for
-
- const int tensorSize = 9;
- const int initialStateSize = 9;
- double_array totalStrain(tensorSize);
- double_array initialState(initialStateSize);
- for (int i=0; i < tensorSize; ++i) {
- totalStrain[i] = i;
- initialState[i] = 0.1*i;
- } // for
-
- material._updateProperties(¶meters[0], numParams, &totalStrain[0],
- tensorSize, &initialState[0], initialStateSize);
-
- const double tolerance = 1.0e-06;
- for (int i=0; i < numParams; ++i)
- for (int j=0; j < paramsSize; ++j)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i+j), parameters[i*paramsSize+j],
- tolerance);
-
- for (int i=0; i < tensorSize; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i), totalStrain[i], tolerance);
-} // testUpdateProperties
-
-
// End of file
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStress.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStress.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticPlaneStress.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -26,9 +26,7 @@
/// Namespace for pylith package
namespace pylith {
namespace materials {
- class ElasticPlaneStress;
class TestElasticPlaneStress;
- class ElasticPlaneStressData;
} // materials
} // pylith
@@ -40,16 +38,17 @@
CPPUNIT_TEST_SUITE( TestElasticPlaneStress );
CPPUNIT_TEST( testDBToProperties );
- CPPUNIT_TEST( testDBValues );
- CPPUNIT_TEST( testProperties );
+ CPPUNIT_TEST( testNonDimProperties );
+ CPPUNIT_TEST( testDimProperties );
+ CPPUNIT_TEST( testDBToStateVars );
+ CPPUNIT_TEST( testNonDimStateVars );
+ CPPUNIT_TEST( testDimStateVars );
CPPUNIT_TEST( test_calcDensity );
CPPUNIT_TEST( test_calcStress );
CPPUNIT_TEST( test_calcElasticConsts );
+ CPPUNIT_TEST( test_updateStateVars );
CPPUNIT_TEST( test_stableTimeStepImplicit );
- CPPUNIT_TEST( testUsesUpdateProperties );
- CPPUNIT_TEST( testUpdateProperties );
-
CPPUNIT_TEST_SUITE_END();
// PUBLIC METHODS /////////////////////////////////////////////////////
@@ -58,12 +57,6 @@
/// Setup testing data.
void setUp(void);
- /// Test usesUpdateProperties().
- void testUsesUpdateProperties(void);
-
- /// Test updateProperties()
- void testUpdateProperties(void);
-
}; // class TestElasticPlaneStress
#endif // pylith_materials_testelasticplanestress_hh
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStrain1D.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStrain1D.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStrain1D.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -30,55 +30,8 @@
_matElastic = new ElasticStrain1D();
_data = new ElasticStrain1DData();
_dataElastic = new ElasticStrain1DData();
+ setupNormalizer();
} // setUp
-// ----------------------------------------------------------------------
-// Test usesUpdateProperties()
-void
-pylith::materials::TestElasticStrain1D::testUsesUpdateProperties(void)
-{ // testUsesUpdateProperties
- ElasticStrain1D material;
- CPPUNIT_ASSERT_EQUAL(false, material.usesUpdateProperties());
-} // testUsesUpdateProperties
-// ----------------------------------------------------------------------
-// Test updateProperties()
-void
-pylith::materials::TestElasticStrain1D::testUpdateProperties(void)
-{ // testUpdateProperties
- ElasticStrain1D material;
- ElasticStrain1DData data;
-
- const int numParams = data.numParameters;
-
- double_array parameters(numParams);
- const int paramsSize = 1;
- for (int i=0; i < numParams; ++i) {
- for (int j=0; j < paramsSize; ++j)
- parameters[i*paramsSize+j] = i+j;
- } // for
-
- const int tensorSize = 9;
- const int initialStateSize = 9;
- double_array initialState(initialStateSize);
- double_array totalStrain(tensorSize);
- for (int i=0; i < tensorSize; ++i) {
- totalStrain[i] = i;
- initialState[i] = 0.1*i;
- } // for
-
- material._updateProperties(¶meters[0], numParams, &totalStrain[0],
- tensorSize, &initialState[0], initialStateSize);
-
- const double tolerance = 1.0e-06;
- for (int i=0; i < numParams; ++i)
- for (int j=0; j < paramsSize; ++j)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i+j), parameters[i*paramsSize+j],
- tolerance);
-
- for (int i=0; i < tensorSize; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i), totalStrain[i], tolerance);
-} // testUpdateProperties
-
-
// End of file
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStrain1D.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStrain1D.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStrain1D.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -26,9 +26,7 @@
/// Namespace for pylith package
namespace pylith {
namespace materials {
- class ElasticStrain1D;
class TestElasticStrain1D;
- class ElasticStrain1DData;
} // materials
} // pylith
@@ -40,16 +38,17 @@
CPPUNIT_TEST_SUITE( TestElasticStrain1D );
CPPUNIT_TEST( testDBToProperties );
- CPPUNIT_TEST( testDBValues );
- CPPUNIT_TEST( testProperties );
+ CPPUNIT_TEST( testNonDimProperties );
+ CPPUNIT_TEST( testDimProperties );
+ CPPUNIT_TEST( testDBToStateVars );
+ CPPUNIT_TEST( testNonDimStateVars );
+ CPPUNIT_TEST( testDimStateVars );
CPPUNIT_TEST( test_calcDensity );
CPPUNIT_TEST( test_calcStress );
CPPUNIT_TEST( test_calcElasticConsts );
+ CPPUNIT_TEST( test_updateStateVars );
CPPUNIT_TEST( test_stableTimeStepImplicit );
- CPPUNIT_TEST( testUsesUpdateProperties );
- CPPUNIT_TEST( testUpdateProperties );
-
CPPUNIT_TEST_SUITE_END();
// PUBLIC METHODS /////////////////////////////////////////////////////
@@ -58,12 +57,6 @@
/// Setup testing data.
void setUp(void);
- /// Test usesUpdateProperties().
- void testUsesUpdateProperties(void);
-
- /// Test updateProperties()
- void testUpdateProperties(void);
-
}; // class TestElasticStrain1D
#endif // pylith_materials_testelasticstrain1d_hh
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStress1D.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStress1D.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStress1D.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -30,55 +30,8 @@
_matElastic = new ElasticStress1D();
_data = new ElasticStress1DData();
_dataElastic = new ElasticStress1DData();
+ setupNormalizer();
} // setUp
-// ----------------------------------------------------------------------
-// Test usesUpdateProperties()
-void
-pylith::materials::TestElasticStress1D::testUsesUpdateProperties(void)
-{ // testUsesUpdateProperties
- ElasticStress1D material;
- CPPUNIT_ASSERT_EQUAL(false, material.usesUpdateProperties());
-} // testUsesUpdateProperties
-// ----------------------------------------------------------------------
-// Test updateProperties()
-void
-pylith::materials::TestElasticStress1D::testUpdateProperties(void)
-{ // testUpdateProperties
- ElasticStress1D material;
- ElasticStress1DData data;
-
- const int numParams = data.numParameters;
-
- double_array parameters(numParams);
- const int paramsSize = 1;
- for (int i=0; i < numParams; ++i) {
- for (int j=0; j < paramsSize; ++j)
- parameters[i*paramsSize+j] = i+j;
- } // for
-
- const int tensorSize = 9;
- const int initialStateSize = 9;
- double_array totalStrain(tensorSize);
- double_array initialState(initialStateSize);
- for (int i=0; i < tensorSize; ++i) {
- totalStrain[i] = i;
- initialState[i] = 0.1*i;
- } // for
-
- material._updateProperties(¶meters[0], numParams, &totalStrain[0],
- tensorSize, &initialState[0], initialStateSize);
-
- const double tolerance = 1.0e-06;
- for (int i=0; i < numParams; ++i)
- for (int j=0; j < paramsSize; ++j)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i+j), parameters[i*paramsSize+j],
- tolerance);
-
- for (int i=0; i < tensorSize; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i), totalStrain[i], tolerance);
-} // testUpdateProperties
-
-
// End of file
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStress1D.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStress1D.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/TestElasticStress1D.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -26,9 +26,7 @@
/// Namespace for pylith package
namespace pylith {
namespace materials {
- class ElasticStress1D;
class TestElasticStress1D;
- class ElasticStress1DData;
} // materials
} // pylith
@@ -40,16 +38,17 @@
CPPUNIT_TEST_SUITE( TestElasticStress1D );
CPPUNIT_TEST( testDBToProperties );
- CPPUNIT_TEST( testDBValues );
- CPPUNIT_TEST( testProperties );
+ CPPUNIT_TEST( testNonDimProperties );
+ CPPUNIT_TEST( testDimProperties );
+ CPPUNIT_TEST( testDBToStateVars );
+ CPPUNIT_TEST( testNonDimStateVars );
+ CPPUNIT_TEST( testDimStateVars );
CPPUNIT_TEST( test_calcDensity );
CPPUNIT_TEST( test_calcStress );
CPPUNIT_TEST( test_calcElasticConsts );
+ CPPUNIT_TEST( test_updateStateVars );
CPPUNIT_TEST( test_stableTimeStepImplicit );
- CPPUNIT_TEST( testUsesUpdateProperties );
- CPPUNIT_TEST( testUpdateProperties );
-
CPPUNIT_TEST_SUITE_END();
// PUBLIC METHODS /////////////////////////////////////////////////////
@@ -58,12 +57,6 @@
/// Setup testing data.
void setUp(void);
- /// Test usesUpdateProperties().
- void testUsesUpdateProperties(void);
-
- /// Test updateProperties()
- void testUpdateProperties(void);
-
}; // class TestElasticStress1D
#endif // pylith_materials_testelasticstress1d_hh
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrain.py
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrain.py 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrain.py 2009-02-23 03:08:39 UTC (rev 14118)
@@ -20,6 +20,10 @@
import numpy
# ----------------------------------------------------------------------
+dimension = 2
+numElasticConsts = 6
+tensorSize = 3
+
# ElasticPlaneStrain class
class ElasticPlaneStrain(ElasticMaterialApp):
"""
@@ -35,66 +39,84 @@
"""
ElasticMaterialApp.__init__(self, name)
- self.dimension = 2
+ numLocs = 2
- self.numDBValues = 3
- self.numInitialStateValues = 3
- self.dbValues = ["density", "vs", "vp"]
- self.initialStateDBValues = ["stress_xx", "stress_yy", "stress_xy"]
- self.numParameters = 3
- self.numParamValues = [1, 1, 1]
- self.parameterNames = ["density", "mu", "lambda"]
+ self.dimension = dimension
+ self.numLocs = numLocs
+
+ self.dbPropertyValues = ["density", "vs", "vp"]
+ self.propertyValues = ["density", "mu", "lambda"]
+ self.numPropertyValues = numpy.array([1, 1, 1], dtype=numpy.int32)
densityA = 2500.0
vsA = 3000.0
vpA = vsA*3**0.5
- strainA = [1.1e-4, 2.2e-4, 3.3e-4]
- initialStateA = [1.2e4, 2.1e4, 3.2e4]
+ strainA = [1.1e-4, 1.2e-4, 1.3e-4]
+ initialStressA = [2.1e4, 2.2e4, 2.3e4]
+ initialStrainA = [3.1e-4, 3.2e-4, 3.3e-4]
+ muA = vsA*vsA*densityA
+ lambdaA = vpA*vpA*densityA - 2.0*muA
densityB = 2000.0
vsB = 1200.0
vpB = vsB*3**0.5
- strainB = [1.2e-4, 2.3e-4, 3.4e-4]
- initialStateB = [2.1e4, 3.2e4, 4.3e4]
-
- self.dbData = numpy.array([ [densityA, vsA, vpA],
- [densityB, vsB, vpB] ],
- dtype=numpy.float64)
- muA = vsA*vsA*densityA
- lambdaA = vpA*vpA*densityA - 2.0*muA
+ strainB = [4.1e-4, 4.2e-4, 4.3e-4]
+ initialStressB = [5.1e4, 5.2e4, 5.3e4]
+ initialStrainB = [6.1e-4, 6.2e-4, 6.3e-4]
muB = vsB*vsB*densityB
lambdaB = vpB*vpB*densityB - 2.0*muB
- self.parameterData = numpy.array([ [densityA, muA, lambdaA],
- [densityB, muB, lambdaB] ],
+
+ self.lengthScale = 1.0e+3
+ self.pressureScale = muA
+ self.timeScale = 1.0
+ self.densityScale = 1.0e+3
+
+ self.dbProperties = numpy.array([ [densityA, vsA, vpA],
+ [densityB, vsB, vpB] ],
+ dtype=numpy.float64)
+ self.properties = numpy.array([ [densityA, muA, lambdaA], [densityB, muB, lambdaB] ],
dtype=numpy.float64)
- self.initialStateDBData = numpy.array([initialStateA, initialStateB],
- dtype=numpy.float64)
+ mu0 = self.pressureScale
+ density0 = self.densityScale
+ self.propertiesNondim = \
+ numpy.array([ [densityA/density0, muA/mu0, lambdaA/mu0],
+ [densityB/density0, muB/mu0, lambdaB/mu0] ],
+ dtype=numpy.float64)
- self.initialState = numpy.array([initialStateA, initialStateB],
- dtype=numpy.float64)
+ self.initialStress = numpy.array([initialStressA,
+ initialStressB],
+ dtype=numpy.float64)
+ self.initialStrain = numpy.array([initialStrainA,
+ initialStrainB],
+ dtype=numpy.float64)
- self.numLocs = 2
- numElasticConsts = 6
- self.density = numpy.array([densityA, densityB],
+ self.density = numpy.array([densityA,
+ densityB],
dtype=numpy.float64)
- self.strain = numpy.array([strainA, strainB],
+ self.strain = numpy.array([strainA,
+ strainB],
dtype=numpy.float64)
- self.stress = numpy.zeros( (self.numLocs, 3), dtype=numpy.float64)
- self.elasticConsts = numpy.zeros( (self.numLocs, numElasticConsts),
- dtype=numpy.float64)
+
+ stress = numpy.zeros( (numLocs, tensorSize), dtype=numpy.float64)
+ elasticConsts = numpy.zeros( (numLocs, numElasticConsts),
+ dtype=numpy.float64)
- (self.elasticConsts[0,:], self.stress[0,:]) = \
- self._calcStress(strainA, densityA, muA, lambdaA,
- initialStateA)
- (self.elasticConsts[1,:], self.stress[1,:]) = \
- self._calcStress(strainB, densityB, muB, lambdaB,
- initialStateB)
+ (elasticConsts[0,:], stress[0,:]) = \
+ self._calcStress(strainA, densityA, muA, lambdaA,
+ initialStressA, initialStrainA)
+ (elasticConsts[1,:], stress[1,:]) = \
+ self._calcStress(strainB, densityB, muB, lambdaB,
+ initialStressB, initialStrainB)
+
+ self.stress = stress
+ self.elasticConsts = elasticConsts
return
- def _calcStress(self, strainV, densityV, muV, lambdaV, initialStateV):
+ def _calcStress(self, strainV, densityV, muV, lambdaV,
+ initialStressV, initialStrainV):
"""
Compute stress and derivative of elasticity matrix.
"""
@@ -108,13 +130,14 @@
C2222, C2212,
C1212], dtype=numpy.float64)
- strain = numpy.reshape(strainV, (3,1))
+ strain = numpy.reshape(strainV, (tensorSize,1))
elastic = numpy.array([ [C1111, C1122, C1112],
[C1122, C2222, C2212],
[C1112, C2212, C1212] ],
dtype=numpy.float64)
- initialState = numpy.reshape(initialStateV, (3,1))
- stress = numpy.dot(elastic, strain) + initialState
+ initialStress = numpy.reshape(initialStressV, (tensorSize,1))
+ initialStrain = numpy.reshape(initialStrainV, (tensorSize,1))
+ stress = numpy.dot(elastic, strain+initialStrain) + initialStress
return (elasticConsts, numpy.ravel(stress))
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrainData.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrainData.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrainData.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -17,37 +17,47 @@
const int pylith::materials::ElasticPlaneStrainData::_dimension = 2;
-const int pylith::materials::ElasticPlaneStrainData::_numDBValues = 3;
+const int pylith::materials::ElasticPlaneStrainData::_numLocs = 2;
-const int pylith::materials::ElasticPlaneStrainData::_numInitialStateValues = 3;
+const int pylith::materials::ElasticPlaneStrainData::_numProperties = 3;
-const int pylith::materials::ElasticPlaneStrainData::_numParameters = 3;
+const int pylith::materials::ElasticPlaneStrainData::_numStateVars = 0;
-const int pylith::materials::ElasticPlaneStrainData::_numParamsQuadPt = 3;
+const int pylith::materials::ElasticPlaneStrainData::_numDBProperties = 3;
-const int pylith::materials::ElasticPlaneStrainData::_numLocs = 2;
+const int pylith::materials::ElasticPlaneStrainData::_numDBStateVars = 0;
+const int pylith::materials::ElasticPlaneStrainData::_numPropsQuadPt = 3;
+
+const int pylith::materials::ElasticPlaneStrainData::_numVarsQuadPt = 0;
+
+const double pylith::materials::ElasticPlaneStrainData::_lengthScale = 1.00000000e+03;
+
+const double pylith::materials::ElasticPlaneStrainData::_timeScale = 1.00000000e+00;
+
+const double pylith::materials::ElasticPlaneStrainData::_pressureScale = 2.25000000e+10;
+
+const double pylith::materials::ElasticPlaneStrainData::_densityScale = 1.00000000e+03;
+
const double pylith::materials::ElasticPlaneStrainData::_dtStableImplicit = 1.00000000e+30;
-const int pylith::materials::ElasticPlaneStrainData::_numParamValues[] = {
+const int pylith::materials::ElasticPlaneStrainData::_numPropertyValues[] = {
1,
1,
1,
};
-const char* pylith::materials::ElasticPlaneStrainData::_dbValues[] = {
+const int* pylith::materials::ElasticPlaneStrainData::_numStateVarValues = 0;
+
+const char* pylith::materials::ElasticPlaneStrainData::_dbPropertyValues[] = {
"density",
"vs",
"vp",
};
-const char* pylith::materials::ElasticPlaneStrainData::_initialStateDBValues[] = {
-"stress_xx",
-"stress_yy",
-"stress_xy",
-};
+const char** pylith::materials::ElasticPlaneStrainData::_dbStateVarValues = 0;
-const double pylith::materials::ElasticPlaneStrainData::_dbData[] = {
+const double pylith::materials::ElasticPlaneStrainData::_dbProperties[] = {
2.50000000e+03,
3.00000000e+03,
5.19615242e+03,
@@ -56,16 +66,9 @@
2.07846097e+03,
};
-const double pylith::materials::ElasticPlaneStrainData::_initialStateDBData[] = {
- 1.20000000e+04,
- 2.10000000e+04,
- 3.20000000e+04,
- 2.10000000e+04,
- 3.20000000e+04,
- 4.30000000e+04,
-};
+const double* pylith::materials::ElasticPlaneStrainData::_dbStateVars = 0;
-const double pylith::materials::ElasticPlaneStrainData::_parameterData[] = {
+const double pylith::materials::ElasticPlaneStrainData::_properties[] = {
2.50000000e+03,
2.25000000e+10,
2.25000000e+10,
@@ -74,15 +77,19 @@
2.88000000e+09,
};
-const double pylith::materials::ElasticPlaneStrainData::_initialState[] = {
- 1.20000000e+04,
- 2.10000000e+04,
- 3.20000000e+04,
- 2.10000000e+04,
- 3.20000000e+04,
- 4.30000000e+04,
+const double* pylith::materials::ElasticPlaneStrainData::_stateVars = 0;
+
+const double pylith::materials::ElasticPlaneStrainData::_propertiesNondim[] = {
+ 2.50000000e+00,
+ 1.00000000e+00,
+ 1.00000000e+00,
+ 2.00000000e+00,
+ 1.28000000e-01,
+ 1.28000000e-01,
};
+const double* pylith::materials::ElasticPlaneStrainData::_stateVarsNondim = 0;
+
const double pylith::materials::ElasticPlaneStrainData::_density[] = {
2.50000000e+03,
2.00000000e+03,
@@ -90,20 +97,20 @@
const double pylith::materials::ElasticPlaneStrainData::_strain[] = {
1.10000000e-04,
- 2.20000000e-04,
- 3.30000000e-04,
1.20000000e-04,
- 2.30000000e-04,
- 3.40000000e-04,
+ 1.30000000e-04,
+ 4.10000000e-04,
+ 4.20000000e-04,
+ 4.30000000e-04,
};
const double pylith::materials::ElasticPlaneStrainData::_stress[] = {
- 1.23870000e+07,
- 1.73460000e+07,
- 1.48820000e+07,
- 1.72020000e+06,
- 2.36480000e+06,
- 2.00140000e+06,
+ 3.82710000e+07,
+ 3.91720000e+07,
+ 2.07230000e+07,
+ 1.18590000e+07,
+ 1.19752000e+07,
+ 6.15860000e+06,
};
const double pylith::materials::ElasticPlaneStrainData::_elasticConsts[] = {
@@ -121,26 +128,58 @@
5.76000000e+09,
};
+const double pylith::materials::ElasticPlaneStrainData::_initialStress[] = {
+ 2.10000000e+04,
+ 2.20000000e+04,
+ 2.30000000e+04,
+ 5.10000000e+04,
+ 5.20000000e+04,
+ 5.30000000e+04,
+};
+
+const double pylith::materials::ElasticPlaneStrainData::_initialStrain[] = {
+ 3.10000000e-04,
+ 3.20000000e-04,
+ 3.30000000e-04,
+ 6.10000000e-04,
+ 6.20000000e-04,
+ 6.30000000e-04,
+};
+
+const double* pylith::materials::ElasticPlaneStrainData::_stateVarsUpdated = 0;
+
pylith::materials::ElasticPlaneStrainData::ElasticPlaneStrainData(void)
{ // constructor
dimension = _dimension;
- numDBValues = _numDBValues;
- numInitialStateValues = _numInitialStateValues;
- numParameters = _numParameters;
- numParamsQuadPt = _numParamsQuadPt;
numLocs = _numLocs;
+ numProperties = _numProperties;
+ numStateVars = _numStateVars;
+ numDBProperties = _numDBProperties;
+ numDBStateVars = _numDBStateVars;
+ numPropsQuadPt = _numPropsQuadPt;
+ numVarsQuadPt = _numVarsQuadPt;
+ lengthScale = _lengthScale;
+ timeScale = _timeScale;
+ pressureScale = _pressureScale;
+ densityScale = _densityScale;
dtStableImplicit = _dtStableImplicit;
- numParamValues = const_cast<int*>(_numParamValues);
- dbValues = const_cast<char**>(_dbValues);
- initialStateDBValues = const_cast<char**>(_initialStateDBValues);
- dbData = const_cast<double*>(_dbData);
- initialStateDBData = const_cast<double*>(_initialStateDBData);
- parameterData = const_cast<double*>(_parameterData);
- initialState = const_cast<double*>(_initialState);
+ numPropertyValues = const_cast<int*>(_numPropertyValues);
+ numStateVarValues = const_cast<int*>(_numStateVarValues);
+ dbPropertyValues = const_cast<char**>(_dbPropertyValues);
+ dbStateVarValues = const_cast<char**>(_dbStateVarValues);
+ dbProperties = const_cast<double*>(_dbProperties);
+ dbStateVars = const_cast<double*>(_dbStateVars);
+ properties = const_cast<double*>(_properties);
+ stateVars = const_cast<double*>(_stateVars);
+ propertiesNondim = const_cast<double*>(_propertiesNondim);
+ stateVarsNondim = const_cast<double*>(_stateVarsNondim);
density = const_cast<double*>(_density);
strain = const_cast<double*>(_strain);
stress = const_cast<double*>(_stress);
elasticConsts = const_cast<double*>(_elasticConsts);
+ initialStress = const_cast<double*>(_initialStress);
+ initialStrain = const_cast<double*>(_initialStrain);
+ stateVarsUpdated = const_cast<double*>(_stateVarsUpdated);
} // constructor
pylith::materials::ElasticPlaneStrainData::~ElasticPlaneStrainData(void)
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrainData.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrainData.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStrainData.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -39,32 +39,50 @@
static const int _dimension;
- static const int _numDBValues;
+ static const int _numLocs;
- static const int _numInitialStateValues;
+ static const int _numProperties;
- static const int _numParameters;
+ static const int _numStateVars;
- static const int _numParamsQuadPt;
+ static const int _numDBProperties;
- static const int _numLocs;
+ static const int _numDBStateVars;
+ static const int _numPropsQuadPt;
+
+ static const int _numVarsQuadPt;
+
+ static const double _lengthScale;
+
+ static const double _timeScale;
+
+ static const double _pressureScale;
+
+ static const double _densityScale;
+
static const double _dtStableImplicit;
- static const int _numParamValues[];
+ static const int _numPropertyValues[];
- static const char* _dbValues[];
+ static const int* _numStateVarValues;
- static const char* _initialStateDBValues[];
+ static const char* _dbPropertyValues[];
- static const double _dbData[];
+ static const char** _dbStateVarValues;
- static const double _initialStateDBData[];
+ static const double _dbProperties[];
- static const double _parameterData[];
+ static const double* _dbStateVars;
- static const double _initialState[];
+ static const double _properties[];
+ static const double* _stateVars;
+
+ static const double _propertiesNondim[];
+
+ static const double* _stateVarsNondim;
+
static const double _density[];
static const double _strain[];
@@ -73,6 +91,12 @@
static const double _elasticConsts[];
+ static const double _initialStress[];
+
+ static const double _initialStrain[];
+
+ static const double* _stateVarsUpdated;
+
};
#endif // pylith_materials_elasticplanestraindata_hh
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStress.py
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStress.py 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStress.py 2009-02-23 03:08:39 UTC (rev 14118)
@@ -20,6 +20,10 @@
import numpy
# ----------------------------------------------------------------------
+dimension = 2
+numElasticConsts = 6
+tensorSize = 3
+
# ElasticPlaneStrain class
class ElasticPlaneStrain(ElasticMaterialApp):
"""
@@ -35,65 +39,84 @@
"""
ElasticMaterialApp.__init__(self, name)
- self.dimension = 2
+ numLocs = 2
- self.numDBValues = 3
- self.numInitialStateValues = 3
- self.dbValues = ["density", "vs", "vp"]
- self.initialStateDBValues = ["stress_xx", "stress_yy", "stress_xy"]
- self.numParameters = 3
- self.numParamValues = [1, 1, 1]
- self.parameterNames = ["density", "mu", "lambda"]
+ self.dimension = dimension
+ self.numLocs = numLocs
+
+ self.dbPropertyValues = ["density", "vs", "vp"]
+ self.propertyValues = ["density", "mu", "lambda"]
+ self.numPropertyValues = numpy.array([1, 1, 1], dtype=numpy.int32)
densityA = 2500.0
vsA = 3000.0
vpA = vsA*3**0.5
- strainA = [1.1e-4, 2.2e-4, 3.3e-4]
- initialStateA = [1.2e4, 2.3e4, 3.2e4]
+ strainA = [1.1e-4, 1.2e-4, 1.3e-4]
+ initialStressA = [2.1e4, 2.2e4, 2.3e4]
+ initialStrainA = [3.1e-4, 3.2e-4, 3.3e-4]
+ muA = vsA*vsA*densityA
+ lambdaA = vpA*vpA*densityA - 2.0*muA
densityB = 2000.0
vsB = 1200.0
vpB = vsB*3**0.5
- strainB = [1.2e-4, 2.3e-4, 3.4e-4]
- initialStateB = [2.1e4, 3.2e4, 4.3e4]
-
- self.dbData = numpy.array([ [densityA, vsA, vpA],
- [densityB, vsB, vpB] ],
- dtype=numpy.float64)
- muA = vsA*vsA*densityA
- lambdaA = vpA*vpA*densityA - 2.0*muA
+ strainB = [4.1e-4, 4.2e-4, 4.3e-4]
+ initialStressB = [5.1e4, 5.2e4, 5.3e4]
+ initialStrainB = [6.1e-4, 6.2e-4, 6.3e-4]
muB = vsB*vsB*densityB
lambdaB = vpB*vpB*densityB - 2.0*muB
- self.parameterData = numpy.array([ [densityA, muA, lambdaA],
- [densityB, muB, lambdaB] ],
+
+ self.lengthScale = 1.0e+3
+ self.pressureScale = muA
+ self.timeScale = 1.0
+ self.densityScale = 1.0e+3
+
+ self.dbProperties = numpy.array([ [densityA, vsA, vpA],
+ [densityB, vsB, vpB] ],
+ dtype=numpy.float64)
+ self.properties = numpy.array([ [densityA, muA, lambdaA], [densityB, muB, lambdaB] ],
dtype=numpy.float64)
- self.initialStateDBData = numpy.array([initialStateA, initialStateB],
- dtype=numpy.float64)
- self.initialState = numpy.array([initialStateA, initialStateB],
+ mu0 = self.pressureScale
+ density0 = self.densityScale
+ self.propertiesNondim = \
+ numpy.array([ [densityA/density0, muA/mu0, lambdaA/mu0],
+ [densityB/density0, muB/mu0, lambdaB/mu0] ],
+ dtype=numpy.float64)
+
+ self.initialStress = numpy.array([initialStressA,
+ initialStressB],
dtype=numpy.float64)
+ self.initialStrain = numpy.array([initialStrainA,
+ initialStrainB],
+ dtype=numpy.float64)
- self.numLocs = 2
- numElasticConsts = 6
- self.density = numpy.array([densityA, densityB],
+ self.density = numpy.array([densityA,
+ densityB],
dtype=numpy.float64)
- self.strain = numpy.array([strainA, strainB],
+ self.strain = numpy.array([strainA,
+ strainB],
dtype=numpy.float64)
- self.stress = numpy.zeros( (self.numLocs, 3), dtype=numpy.float64)
- self.elasticConsts = numpy.zeros( (self.numLocs, numElasticConsts),
- dtype=numpy.float64)
+
+ stress = numpy.zeros( (numLocs, tensorSize), dtype=numpy.float64)
+ elasticConsts = numpy.zeros( (numLocs, numElasticConsts),
+ dtype=numpy.float64)
- (self.elasticConsts[0,:], self.stress[0,:]) = \
- self._calcStress(strainA, densityA, muA, lambdaA,
- initialStateA)
- (self.elasticConsts[1,:], self.stress[1,:]) = \
- self._calcStress(strainB, densityB, muB, lambdaB,
- initialStateB)
+ (elasticConsts[0,:], stress[0,:]) = \
+ self._calcStress(strainA, densityA, muA, lambdaA,
+ initialStressA, initialStrainA)
+ (elasticConsts[1,:], stress[1,:]) = \
+ self._calcStress(strainB, densityB, muB, lambdaB,
+ initialStressB, initialStrainB)
+
+ self.stress = stress
+ self.elasticConsts = elasticConsts
return
- def _calcStress(self, strainV, densityV, muV, lambdaV, initialStateV):
+ def _calcStress(self, strainV, densityV, muV, lambdaV,
+ initialStressV, initialStrainV):
"""
Compute stress and derivative of elasticity matrix.
"""
@@ -107,13 +130,14 @@
C2222, C2212,
C1212], dtype=numpy.float64)
- strain = numpy.reshape(strainV, (3,1))
- initialState = numpy.reshape(initialStateV, (3,1))
+ strain = numpy.reshape(strainV, (tensorSize,1))
+ initialStress = numpy.reshape(initialStressV, (tensorSize,1))
+ initialStrain = numpy.reshape(initialStrainV, (tensorSize,1))
elastic = numpy.array([ [C1111, C1122, C1112],
[C1122, C2222, C2212],
[C1112, C2212, C1212] ],
dtype=numpy.float64)
- stress = numpy.dot(elastic, strain) + initialState
+ stress = numpy.dot(elastic, strain+initialStrain) + initialStress
return (elasticConsts, numpy.ravel(stress))
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStressData.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStressData.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStressData.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -17,37 +17,47 @@
const int pylith::materials::ElasticPlaneStressData::_dimension = 2;
-const int pylith::materials::ElasticPlaneStressData::_numDBValues = 3;
+const int pylith::materials::ElasticPlaneStressData::_numLocs = 2;
-const int pylith::materials::ElasticPlaneStressData::_numInitialStateValues = 3;
+const int pylith::materials::ElasticPlaneStressData::_numProperties = 3;
-const int pylith::materials::ElasticPlaneStressData::_numParameters = 3;
+const int pylith::materials::ElasticPlaneStressData::_numStateVars = 0;
-const int pylith::materials::ElasticPlaneStressData::_numParamsQuadPt = 3;
+const int pylith::materials::ElasticPlaneStressData::_numDBProperties = 3;
-const int pylith::materials::ElasticPlaneStressData::_numLocs = 2;
+const int pylith::materials::ElasticPlaneStressData::_numDBStateVars = 0;
+const int pylith::materials::ElasticPlaneStressData::_numPropsQuadPt = 3;
+
+const int pylith::materials::ElasticPlaneStressData::_numVarsQuadPt = 0;
+
+const double pylith::materials::ElasticPlaneStressData::_lengthScale = 1.00000000e+03;
+
+const double pylith::materials::ElasticPlaneStressData::_timeScale = 1.00000000e+00;
+
+const double pylith::materials::ElasticPlaneStressData::_pressureScale = 2.25000000e+10;
+
+const double pylith::materials::ElasticPlaneStressData::_densityScale = 1.00000000e+03;
+
const double pylith::materials::ElasticPlaneStressData::_dtStableImplicit = 1.00000000e+30;
-const int pylith::materials::ElasticPlaneStressData::_numParamValues[] = {
+const int pylith::materials::ElasticPlaneStressData::_numPropertyValues[] = {
1,
1,
1,
};
-const char* pylith::materials::ElasticPlaneStressData::_dbValues[] = {
+const int* pylith::materials::ElasticPlaneStressData::_numStateVarValues = 0;
+
+const char* pylith::materials::ElasticPlaneStressData::_dbPropertyValues[] = {
"density",
"vs",
"vp",
};
-const char* pylith::materials::ElasticPlaneStressData::_initialStateDBValues[] = {
-"stress_xx",
-"stress_yy",
-"stress_xy",
-};
+const char** pylith::materials::ElasticPlaneStressData::_dbStateVarValues = 0;
-const double pylith::materials::ElasticPlaneStressData::_dbData[] = {
+const double pylith::materials::ElasticPlaneStressData::_dbProperties[] = {
2.50000000e+03,
3.00000000e+03,
5.19615242e+03,
@@ -56,16 +66,9 @@
2.07846097e+03,
};
-const double pylith::materials::ElasticPlaneStressData::_initialStateDBData[] = {
- 1.20000000e+04,
- 2.30000000e+04,
- 3.20000000e+04,
- 2.10000000e+04,
- 3.20000000e+04,
- 4.30000000e+04,
-};
+const double* pylith::materials::ElasticPlaneStressData::_dbStateVars = 0;
-const double pylith::materials::ElasticPlaneStressData::_parameterData[] = {
+const double pylith::materials::ElasticPlaneStressData::_properties[] = {
2.50000000e+03,
2.25000000e+10,
2.25000000e+10,
@@ -74,15 +77,19 @@
2.88000000e+09,
};
-const double pylith::materials::ElasticPlaneStressData::_initialState[] = {
- 1.20000000e+04,
- 2.30000000e+04,
- 3.20000000e+04,
- 2.10000000e+04,
- 3.20000000e+04,
- 4.30000000e+04,
+const double* pylith::materials::ElasticPlaneStressData::_stateVars = 0;
+
+const double pylith::materials::ElasticPlaneStressData::_propertiesNondim[] = {
+ 2.50000000e+00,
+ 1.00000000e+00,
+ 1.00000000e+00,
+ 2.00000000e+00,
+ 1.28000000e-01,
+ 1.28000000e-01,
};
+const double* pylith::materials::ElasticPlaneStressData::_stateVarsNondim = 0;
+
const double pylith::materials::ElasticPlaneStressData::_density[] = {
2.50000000e+03,
2.00000000e+03,
@@ -90,20 +97,20 @@
const double pylith::materials::ElasticPlaneStressData::_strain[] = {
1.10000000e-04,
- 2.20000000e-04,
- 3.30000000e-04,
1.20000000e-04,
- 2.30000000e-04,
- 3.40000000e-04,
+ 1.30000000e-04,
+ 4.10000000e-04,
+ 4.20000000e-04,
+ 4.30000000e-04,
};
const double pylith::materials::ElasticPlaneStressData::_stress[] = {
- 9.91200000e+06,
- 1.48730000e+07,
- 1.48820000e+07,
- 1.38420000e+06,
- 2.02880000e+06,
- 2.00140000e+06,
+ 3.18210000e+07,
+ 3.27220000e+07,
+ 2.07230000e+07,
+ 9.88140000e+06,
+ 9.99760000e+06,
+ 6.15860000e+06,
};
const double pylith::materials::ElasticPlaneStressData::_elasticConsts[] = {
@@ -121,26 +128,58 @@
5.76000000e+09,
};
+const double pylith::materials::ElasticPlaneStressData::_initialStress[] = {
+ 2.10000000e+04,
+ 2.20000000e+04,
+ 2.30000000e+04,
+ 5.10000000e+04,
+ 5.20000000e+04,
+ 5.30000000e+04,
+};
+
+const double pylith::materials::ElasticPlaneStressData::_initialStrain[] = {
+ 3.10000000e-04,
+ 3.20000000e-04,
+ 3.30000000e-04,
+ 6.10000000e-04,
+ 6.20000000e-04,
+ 6.30000000e-04,
+};
+
+const double* pylith::materials::ElasticPlaneStressData::_stateVarsUpdated = 0;
+
pylith::materials::ElasticPlaneStressData::ElasticPlaneStressData(void)
{ // constructor
dimension = _dimension;
- numDBValues = _numDBValues;
- numInitialStateValues = _numInitialStateValues;
- numParameters = _numParameters;
- numParamsQuadPt = _numParamsQuadPt;
numLocs = _numLocs;
+ numProperties = _numProperties;
+ numStateVars = _numStateVars;
+ numDBProperties = _numDBProperties;
+ numDBStateVars = _numDBStateVars;
+ numPropsQuadPt = _numPropsQuadPt;
+ numVarsQuadPt = _numVarsQuadPt;
+ lengthScale = _lengthScale;
+ timeScale = _timeScale;
+ pressureScale = _pressureScale;
+ densityScale = _densityScale;
dtStableImplicit = _dtStableImplicit;
- numParamValues = const_cast<int*>(_numParamValues);
- dbValues = const_cast<char**>(_dbValues);
- initialStateDBValues = const_cast<char**>(_initialStateDBValues);
- dbData = const_cast<double*>(_dbData);
- initialStateDBData = const_cast<double*>(_initialStateDBData);
- parameterData = const_cast<double*>(_parameterData);
- initialState = const_cast<double*>(_initialState);
+ numPropertyValues = const_cast<int*>(_numPropertyValues);
+ numStateVarValues = const_cast<int*>(_numStateVarValues);
+ dbPropertyValues = const_cast<char**>(_dbPropertyValues);
+ dbStateVarValues = const_cast<char**>(_dbStateVarValues);
+ dbProperties = const_cast<double*>(_dbProperties);
+ dbStateVars = const_cast<double*>(_dbStateVars);
+ properties = const_cast<double*>(_properties);
+ stateVars = const_cast<double*>(_stateVars);
+ propertiesNondim = const_cast<double*>(_propertiesNondim);
+ stateVarsNondim = const_cast<double*>(_stateVarsNondim);
density = const_cast<double*>(_density);
strain = const_cast<double*>(_strain);
stress = const_cast<double*>(_stress);
elasticConsts = const_cast<double*>(_elasticConsts);
+ initialStress = const_cast<double*>(_initialStress);
+ initialStrain = const_cast<double*>(_initialStrain);
+ stateVarsUpdated = const_cast<double*>(_stateVarsUpdated);
} // constructor
pylith::materials::ElasticPlaneStressData::~ElasticPlaneStressData(void)
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStressData.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStressData.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticPlaneStressData.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -39,32 +39,50 @@
static const int _dimension;
- static const int _numDBValues;
+ static const int _numLocs;
- static const int _numInitialStateValues;
+ static const int _numProperties;
- static const int _numParameters;
+ static const int _numStateVars;
- static const int _numParamsQuadPt;
+ static const int _numDBProperties;
- static const int _numLocs;
+ static const int _numDBStateVars;
+ static const int _numPropsQuadPt;
+
+ static const int _numVarsQuadPt;
+
+ static const double _lengthScale;
+
+ static const double _timeScale;
+
+ static const double _pressureScale;
+
+ static const double _densityScale;
+
static const double _dtStableImplicit;
- static const int _numParamValues[];
+ static const int _numPropertyValues[];
- static const char* _dbValues[];
+ static const int* _numStateVarValues;
- static const char* _initialStateDBValues[];
+ static const char* _dbPropertyValues[];
- static const double _dbData[];
+ static const char** _dbStateVarValues;
- static const double _initialStateDBData[];
+ static const double _dbProperties[];
- static const double _parameterData[];
+ static const double* _dbStateVars;
- static const double _initialState[];
+ static const double _properties[];
+ static const double* _stateVars;
+
+ static const double _propertiesNondim[];
+
+ static const double* _stateVarsNondim;
+
static const double _density[];
static const double _strain[];
@@ -73,6 +91,12 @@
static const double _elasticConsts[];
+ static const double _initialStress[];
+
+ static const double _initialStrain[];
+
+ static const double* _stateVarsUpdated;
+
};
#endif // pylith_materials_elasticplanestressdata_hh
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1D.py
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1D.py 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1D.py 2009-02-23 03:08:39 UTC (rev 14118)
@@ -20,6 +20,10 @@
import numpy
# ----------------------------------------------------------------------
+dimension = 1
+numElasticConsts = 1
+tensorSize = 1
+
# ElasticStrain1D class
class ElasticStrain1D(ElasticMaterialApp):
"""
@@ -35,78 +39,96 @@
"""
ElasticMaterialApp.__init__(self, name)
- self.dimension = 1
+ numLocs = 2
- self.numDBValues = 3
- self.numInitialStateValues = 1
- self.dbValues = ["density", "vs", "vp"]
- self.initialStateDBValues = ["stress_xx"]
- self.numParameters = 3
- self.numParamValues = [1, 1, 1]
- self.parameterNames = ["density", "mu", "lambda"]
+ self.dimension = dimension
+ self.numLocs = numLocs
+
+ self.dbPropertyValues = ["density", "vs", "vp"]
+ self.propertyValues = ["density", "mu", "lambda"]
+ self.numPropertyValues = numpy.array([1, 1, 1], dtype=numpy.int32)
densityA = 2500.0
vsA = 3000.0
vpA = vsA*3**0.5
strainA = [1.1e-4]
- initialStateA = [1.2e4]
+ initialStressA = [2.1e4]
+ initialStrainA = [3.1e-4]
+ muA = vsA*vsA*densityA
+ lambdaA = vpA*vpA*densityA - 2.0*muA
densityB = 2000.0
vsB = 1200.0
vpB = vsB*3**0.5
- strainB = [1.2e-4]
- initialStateB = [2.1e4]
-
- self.dbData = numpy.array([ [densityA, vsA, vpA],
- [densityB, vsB, vpB] ],
- dtype=numpy.float64)
- muA = vsA*vsA*densityA
- lambdaA = vpA*vpA*densityA - 2.0*muA
- lambda2muA = lambdaA + 2.0*muA
+ strainB = [4.1e-4]
+ initialStressB = [5.1e4]
+ initialStrainB = [6.1e-4]
muB = vsB*vsB*densityB
lambdaB = vpB*vpB*densityB - 2.0*muB
- lambda2muB = lambdaB + 2.0*muB
- self.parameterData = numpy.array([ [densityA, muA, lambdaA],
- [densityB, muB, lambdaB] ],
+
+ self.lengthScale = 1.0e+3
+ self.pressureScale = muA
+ self.timeScale = 1.0
+ self.densityScale = 1.0e+3
+
+ self.dbProperties = numpy.array([ [densityA, vsA, vpA],
+ [densityB, vsB, vpB] ],
+ dtype=numpy.float64)
+ self.properties = numpy.array([ [densityA, muA, lambdaA], [densityB, muB, lambdaB] ],
dtype=numpy.float64)
- self.initialStateDBData = numpy.array([initialStateA, initialStateB],
- dtype=numpy.float64)
- self.initialState = numpy.array([initialStateA, initialStateB],
+ mu0 = self.pressureScale
+ density0 = self.densityScale
+ self.propertiesNondim = \
+ numpy.array([ [densityA/density0, muA/mu0, lambdaA/mu0],
+ [densityB/density0, muB/mu0, lambdaB/mu0] ],
+ dtype=numpy.float64)
+
+ self.initialStress = numpy.array([initialStressA,
+ initialStressB],
dtype=numpy.float64)
-
- self.numLocs = 2
- numElasticConsts = 1
- self.density = numpy.array([densityA, densityB],
+ self.initialStrain = numpy.array([initialStrainA,
+ initialStrainB],
+ dtype=numpy.float64)
+
+ self.density = numpy.array([densityA,
+ densityB],
dtype=numpy.float64)
- self.strain = numpy.array([strainA, strainB],
+ self.strain = numpy.array([strainA,
+ strainB],
dtype=numpy.float64)
- self.stress = numpy.zeros( (self.numLocs, 1), dtype=numpy.float64)
- self.elasticConsts = numpy.zeros( (self.numLocs, numElasticConsts),
- dtype=numpy.float64)
+
+ stress = numpy.zeros( (numLocs, tensorSize), dtype=numpy.float64)
+ elasticConsts = numpy.zeros( (numLocs, numElasticConsts),
+ dtype=numpy.float64)
- (self.elasticConsts[0,:], self.stress[0,:]) = \
- self._calcStress(strainA, densityA, lambda2muA,
- initialStateA)
- (self.elasticConsts[1,:], self.stress[1,:]) = \
- self._calcStress(strainB, densityB, lambda2muB,
- initialStateB)
+ (elasticConsts[0,:], stress[0,:]) = \
+ self._calcStress(strainA, densityA, muA, lambdaA,
+ initialStressA, initialStrainA)
+ (elasticConsts[1,:], stress[1,:]) = \
+ self._calcStress(strainB, densityB, muB, lambdaB,
+ initialStressB, initialStrainB)
+
+ self.stress = stress
+ self.elasticConsts = elasticConsts
return
- def _calcStress(self, strainV, densityV, lambda2muV, initialStateV):
+ def _calcStress(self, strainV, densityV, muV, lambdaV,
+ initialStressV, initialStrainV):
"""
Compute stress and derivative of elasticity matrix.
"""
- C1111 = lambda2muV
+ C1111 = lambdaV + 2.0*muV
elasticConsts = numpy.array([C1111], dtype=numpy.float64)
strain = numpy.reshape(strainV, (1,1))
- initialState = numpy.reshape(initialStateV, (1,1))
+ initialStress = numpy.reshape(initialStressV, (1,1))
+ initialStrain = numpy.reshape(initialStrainV, (1,1))
elastic = numpy.array([ [C1111] ],
dtype=numpy.float64)
- stress = numpy.dot(elastic, strain) + initialState
+ stress = numpy.dot(elastic, strain+initialStrain) + initialStress
return (elasticConsts, numpy.ravel(stress))
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1DData.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1DData.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1DData.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -17,35 +17,47 @@
const int pylith::materials::ElasticStrain1DData::_dimension = 1;
-const int pylith::materials::ElasticStrain1DData::_numDBValues = 3;
+const int pylith::materials::ElasticStrain1DData::_numLocs = 2;
-const int pylith::materials::ElasticStrain1DData::_numInitialStateValues = 1;
+const int pylith::materials::ElasticStrain1DData::_numProperties = 3;
-const int pylith::materials::ElasticStrain1DData::_numParameters = 3;
+const int pylith::materials::ElasticStrain1DData::_numStateVars = 0;
-const int pylith::materials::ElasticStrain1DData::_numParamsQuadPt = 3;
+const int pylith::materials::ElasticStrain1DData::_numDBProperties = 3;
-const int pylith::materials::ElasticStrain1DData::_numLocs = 2;
+const int pylith::materials::ElasticStrain1DData::_numDBStateVars = 0;
+const int pylith::materials::ElasticStrain1DData::_numPropsQuadPt = 3;
+
+const int pylith::materials::ElasticStrain1DData::_numVarsQuadPt = 0;
+
+const double pylith::materials::ElasticStrain1DData::_lengthScale = 1.00000000e+03;
+
+const double pylith::materials::ElasticStrain1DData::_timeScale = 1.00000000e+00;
+
+const double pylith::materials::ElasticStrain1DData::_pressureScale = 2.25000000e+10;
+
+const double pylith::materials::ElasticStrain1DData::_densityScale = 1.00000000e+03;
+
const double pylith::materials::ElasticStrain1DData::_dtStableImplicit = 1.00000000e+30;
-const int pylith::materials::ElasticStrain1DData::_numParamValues[] = {
+const int pylith::materials::ElasticStrain1DData::_numPropertyValues[] = {
1,
1,
1,
};
-const char* pylith::materials::ElasticStrain1DData::_dbValues[] = {
+const int* pylith::materials::ElasticStrain1DData::_numStateVarValues = 0;
+
+const char* pylith::materials::ElasticStrain1DData::_dbPropertyValues[] = {
"density",
"vs",
"vp",
};
-const char* pylith::materials::ElasticStrain1DData::_initialStateDBValues[] = {
-"stress_xx",
-};
+const char** pylith::materials::ElasticStrain1DData::_dbStateVarValues = 0;
-const double pylith::materials::ElasticStrain1DData::_dbData[] = {
+const double pylith::materials::ElasticStrain1DData::_dbProperties[] = {
2.50000000e+03,
3.00000000e+03,
5.19615242e+03,
@@ -54,12 +66,9 @@
2.07846097e+03,
};
-const double pylith::materials::ElasticStrain1DData::_initialStateDBData[] = {
- 1.20000000e+04,
- 2.10000000e+04,
-};
+const double* pylith::materials::ElasticStrain1DData::_dbStateVars = 0;
-const double pylith::materials::ElasticStrain1DData::_parameterData[] = {
+const double pylith::materials::ElasticStrain1DData::_properties[] = {
2.50000000e+03,
2.25000000e+10,
2.25000000e+10,
@@ -68,11 +77,19 @@
2.88000000e+09,
};
-const double pylith::materials::ElasticStrain1DData::_initialState[] = {
- 1.20000000e+04,
- 2.10000000e+04,
+const double* pylith::materials::ElasticStrain1DData::_stateVars = 0;
+
+const double pylith::materials::ElasticStrain1DData::_propertiesNondim[] = {
+ 2.50000000e+00,
+ 1.00000000e+00,
+ 1.00000000e+00,
+ 2.00000000e+00,
+ 1.28000000e-01,
+ 1.28000000e-01,
};
+const double* pylith::materials::ElasticStrain1DData::_stateVarsNondim = 0;
+
const double pylith::materials::ElasticStrain1DData::_density[] = {
2.50000000e+03,
2.00000000e+03,
@@ -80,12 +97,12 @@
const double pylith::materials::ElasticStrain1DData::_strain[] = {
1.10000000e-04,
- 1.20000000e-04,
+ 4.10000000e-04,
};
const double pylith::materials::ElasticStrain1DData::_stress[] = {
- 7.43700000e+06,
- 1.05780000e+06,
+ 2.83710000e+07,
+ 8.86380000e+06,
};
const double pylith::materials::ElasticStrain1DData::_elasticConsts[] = {
@@ -93,26 +110,50 @@
8.64000000e+09,
};
+const double pylith::materials::ElasticStrain1DData::_initialStress[] = {
+ 2.10000000e+04,
+ 5.10000000e+04,
+};
+
+const double pylith::materials::ElasticStrain1DData::_initialStrain[] = {
+ 3.10000000e-04,
+ 6.10000000e-04,
+};
+
+const double* pylith::materials::ElasticStrain1DData::_stateVarsUpdated = 0;
+
pylith::materials::ElasticStrain1DData::ElasticStrain1DData(void)
{ // constructor
dimension = _dimension;
- numDBValues = _numDBValues;
- numInitialStateValues = _numInitialStateValues;
- numParameters = _numParameters;
- numParamsQuadPt = _numParamsQuadPt;
numLocs = _numLocs;
+ numProperties = _numProperties;
+ numStateVars = _numStateVars;
+ numDBProperties = _numDBProperties;
+ numDBStateVars = _numDBStateVars;
+ numPropsQuadPt = _numPropsQuadPt;
+ numVarsQuadPt = _numVarsQuadPt;
+ lengthScale = _lengthScale;
+ timeScale = _timeScale;
+ pressureScale = _pressureScale;
+ densityScale = _densityScale;
dtStableImplicit = _dtStableImplicit;
- numParamValues = const_cast<int*>(_numParamValues);
- dbValues = const_cast<char**>(_dbValues);
- initialStateDBValues = const_cast<char**>(_initialStateDBValues);
- dbData = const_cast<double*>(_dbData);
- initialStateDBData = const_cast<double*>(_initialStateDBData);
- parameterData = const_cast<double*>(_parameterData);
- initialState = const_cast<double*>(_initialState);
+ numPropertyValues = const_cast<int*>(_numPropertyValues);
+ numStateVarValues = const_cast<int*>(_numStateVarValues);
+ dbPropertyValues = const_cast<char**>(_dbPropertyValues);
+ dbStateVarValues = const_cast<char**>(_dbStateVarValues);
+ dbProperties = const_cast<double*>(_dbProperties);
+ dbStateVars = const_cast<double*>(_dbStateVars);
+ properties = const_cast<double*>(_properties);
+ stateVars = const_cast<double*>(_stateVars);
+ propertiesNondim = const_cast<double*>(_propertiesNondim);
+ stateVarsNondim = const_cast<double*>(_stateVarsNondim);
density = const_cast<double*>(_density);
strain = const_cast<double*>(_strain);
stress = const_cast<double*>(_stress);
elasticConsts = const_cast<double*>(_elasticConsts);
+ initialStress = const_cast<double*>(_initialStress);
+ initialStrain = const_cast<double*>(_initialStrain);
+ stateVarsUpdated = const_cast<double*>(_stateVarsUpdated);
} // constructor
pylith::materials::ElasticStrain1DData::~ElasticStrain1DData(void)
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1DData.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1DData.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStrain1DData.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -39,32 +39,50 @@
static const int _dimension;
- static const int _numDBValues;
+ static const int _numLocs;
- static const int _numInitialStateValues;
+ static const int _numProperties;
- static const int _numParameters;
+ static const int _numStateVars;
- static const int _numParamsQuadPt;
+ static const int _numDBProperties;
- static const int _numLocs;
+ static const int _numDBStateVars;
+ static const int _numPropsQuadPt;
+
+ static const int _numVarsQuadPt;
+
+ static const double _lengthScale;
+
+ static const double _timeScale;
+
+ static const double _pressureScale;
+
+ static const double _densityScale;
+
static const double _dtStableImplicit;
- static const int _numParamValues[];
+ static const int _numPropertyValues[];
- static const char* _dbValues[];
+ static const int* _numStateVarValues;
- static const char* _initialStateDBValues[];
+ static const char* _dbPropertyValues[];
- static const double _dbData[];
+ static const char** _dbStateVarValues;
- static const double _initialStateDBData[];
+ static const double _dbProperties[];
- static const double _parameterData[];
+ static const double* _dbStateVars;
- static const double _initialState[];
+ static const double _properties[];
+ static const double* _stateVars;
+
+ static const double _propertiesNondim[];
+
+ static const double* _stateVarsNondim;
+
static const double _density[];
static const double _strain[];
@@ -73,6 +91,12 @@
static const double _elasticConsts[];
+ static const double _initialStress[];
+
+ static const double _initialStrain[];
+
+ static const double* _stateVarsUpdated;
+
};
#endif // pylith_materials_elasticstrain1ddata_hh
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1D.py
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1D.py 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1D.py 2009-02-23 03:08:39 UTC (rev 14118)
@@ -20,6 +20,10 @@
import numpy
# ----------------------------------------------------------------------
+dimension = 1
+numElasticConsts = 1
+tensorSize = 1
+
# ElasticStress1D class
class ElasticStress1D(ElasticMaterialApp):
"""
@@ -35,65 +39,84 @@
"""
ElasticMaterialApp.__init__(self, name)
- self.dimension = 1
+ numLocs = 2
- self.numDBValues = 3
- self.numInitialStateValues = 1
- self.dbValues = ["density", "vs", "vp"]
- self.initialStateDBValues = ["stress_xx"]
- self.numParameters = 3
- self.numParamValues = [1, 1, 1]
- self.parameterNames = ["density", "mu", "lambda"]
+ self.dimension = dimension
+ self.numLocs = numLocs
+
+ self.dbPropertyValues = ["density", "vs", "vp"]
+ self.propertyValues = ["density", "mu", "lambda"]
+ self.numPropertyValues = numpy.array([1, 1, 1], dtype=numpy.int32)
densityA = 2500.0
vsA = 3000.0
vpA = vsA*3**0.5
strainA = [1.1e-4]
- initialStateA = [1.2e4]
+ initialStressA = [2.1e4]
+ initialStrainA = [3.1e-4]
+ muA = vsA*vsA*densityA
+ lambdaA = vpA*vpA*densityA - 2.0*muA
densityB = 2000.0
vsB = 1200.0
vpB = vsB*3**0.5
- strainB = [1.2e-4]
- initialStateB = [2.1e4]
-
- self.dbData = numpy.array([ [densityA, vsA, vpA],
- [densityB, vsB, vpB] ],
- dtype=numpy.float64)
- muA = vsA*vsA*densityA
- lambdaA = vpA*vpA*densityA - 2.0*muA
+ strainB = [4.1e-4]
+ initialStressB = [5.1e4]
+ initialStrainB = [6.1e-4]
muB = vsB*vsB*densityB
lambdaB = vpB*vpB*densityB - 2.0*muB
- self.parameterData = numpy.array([ [densityA, muA, lambdaA],
- [densityB, muB, lambdaB] ],
+
+ self.lengthScale = 1.0e+3
+ self.pressureScale = muA
+ self.timeScale = 1.0
+ self.densityScale = 1.0e+3
+
+ self.dbProperties = numpy.array([ [densityA, vsA, vpA],
+ [densityB, vsB, vpB] ],
+ dtype=numpy.float64)
+ self.properties = numpy.array([ [densityA, muA, lambdaA], [densityB, muB, lambdaB] ],
dtype=numpy.float64)
- self.initialStateDBData = numpy.array([initialStateA, initialStateB],
- dtype=numpy.float64)
- self.initialState = numpy.array([initialStateA, initialStateB],
+ mu0 = self.pressureScale
+ density0 = self.densityScale
+ self.propertiesNondim = \
+ numpy.array([ [densityA/density0, muA/mu0, lambdaA/mu0],
+ [densityB/density0, muB/mu0, lambdaB/mu0] ],
+ dtype=numpy.float64)
+
+ self.initialStress = numpy.array([initialStressA,
+ initialStressB],
dtype=numpy.float64)
+ self.initialStrain = numpy.array([initialStrainA,
+ initialStrainB],
+ dtype=numpy.float64)
- self.numLocs = 2
- numElasticConsts = 1
- self.density = numpy.array([densityA, densityB],
+ self.density = numpy.array([densityA,
+ densityB],
dtype=numpy.float64)
- self.strain = numpy.array([strainA, strainB],
+ self.strain = numpy.array([strainA,
+ strainB],
dtype=numpy.float64)
- self.stress = numpy.zeros( (self.numLocs, 1), dtype=numpy.float64)
- self.elasticConsts = numpy.zeros( (self.numLocs, numElasticConsts),
- dtype=numpy.float64)
+
+ stress = numpy.zeros( (numLocs, tensorSize), dtype=numpy.float64)
+ elasticConsts = numpy.zeros( (numLocs, numElasticConsts),
+ dtype=numpy.float64)
- (self.elasticConsts[0,:], self.stress[0,:]) = \
- self._calcStress(strainA, densityA, muA, lambdaA,
- initialStateA)
- (self.elasticConsts[1,:], self.stress[1,:]) = \
- self._calcStress(strainB, densityB, muB, lambdaB,
- initialStateB)
+ (elasticConsts[0,:], stress[0,:]) = \
+ self._calcStress(strainA, densityA, muA, lambdaA,
+ initialStressA, initialStrainA)
+ (elasticConsts[1,:], stress[1,:]) = \
+ self._calcStress(strainB, densityB, muB, lambdaB,
+ initialStressB, initialStrainB)
+
+ self.stress = stress
+ self.elasticConsts = elasticConsts
return
- def _calcStress(self, strainV, densityV, muV, lambdaV, initialStateV):
+ def _calcStress(self, strainV, densityV, muV, lambdaV,
+ initialStressV, initialStrainV):
"""
Compute stress and derivative of elasticity matrix.
"""
@@ -101,10 +124,11 @@
elasticConsts = numpy.array([C1111], dtype=numpy.float64)
strain = numpy.reshape(strainV, (1,1))
- initialState = numpy.reshape(initialStateV, (1,1))
+ initialStress = numpy.reshape(initialStressV, (1,1))
+ initialStrain = numpy.reshape(initialStrainV, (1,1))
elastic = numpy.array([ [C1111] ],
dtype=numpy.float64)
- stress = numpy.dot(elastic, strain) + initialState
+ stress = initialStress + numpy.dot(elastic, initialStrain+strain)
return (elasticConsts, numpy.ravel(stress))
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1DData.cc
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1DData.cc 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1DData.cc 2009-02-23 03:08:39 UTC (rev 14118)
@@ -17,35 +17,47 @@
const int pylith::materials::ElasticStress1DData::_dimension = 1;
-const int pylith::materials::ElasticStress1DData::_numDBValues = 3;
+const int pylith::materials::ElasticStress1DData::_numLocs = 2;
-const int pylith::materials::ElasticStress1DData::_numInitialStateValues = 1;
+const int pylith::materials::ElasticStress1DData::_numProperties = 3;
-const int pylith::materials::ElasticStress1DData::_numParameters = 3;
+const int pylith::materials::ElasticStress1DData::_numStateVars = 0;
-const int pylith::materials::ElasticStress1DData::_numParamsQuadPt = 3;
+const int pylith::materials::ElasticStress1DData::_numDBProperties = 3;
-const int pylith::materials::ElasticStress1DData::_numLocs = 2;
+const int pylith::materials::ElasticStress1DData::_numDBStateVars = 0;
+const int pylith::materials::ElasticStress1DData::_numPropsQuadPt = 3;
+
+const int pylith::materials::ElasticStress1DData::_numVarsQuadPt = 0;
+
+const double pylith::materials::ElasticStress1DData::_lengthScale = 1.00000000e+03;
+
+const double pylith::materials::ElasticStress1DData::_timeScale = 1.00000000e+00;
+
+const double pylith::materials::ElasticStress1DData::_pressureScale = 2.25000000e+10;
+
+const double pylith::materials::ElasticStress1DData::_densityScale = 1.00000000e+03;
+
const double pylith::materials::ElasticStress1DData::_dtStableImplicit = 1.00000000e+30;
-const int pylith::materials::ElasticStress1DData::_numParamValues[] = {
+const int pylith::materials::ElasticStress1DData::_numPropertyValues[] = {
1,
1,
1,
};
-const char* pylith::materials::ElasticStress1DData::_dbValues[] = {
+const int* pylith::materials::ElasticStress1DData::_numStateVarValues = 0;
+
+const char* pylith::materials::ElasticStress1DData::_dbPropertyValues[] = {
"density",
"vs",
"vp",
};
-const char* pylith::materials::ElasticStress1DData::_initialStateDBValues[] = {
-"stress_xx",
-};
+const char** pylith::materials::ElasticStress1DData::_dbStateVarValues = 0;
-const double pylith::materials::ElasticStress1DData::_dbData[] = {
+const double pylith::materials::ElasticStress1DData::_dbProperties[] = {
2.50000000e+03,
3.00000000e+03,
5.19615242e+03,
@@ -54,12 +66,9 @@
2.07846097e+03,
};
-const double pylith::materials::ElasticStress1DData::_initialStateDBData[] = {
- 1.20000000e+04,
- 2.10000000e+04,
-};
+const double* pylith::materials::ElasticStress1DData::_dbStateVars = 0;
-const double pylith::materials::ElasticStress1DData::_parameterData[] = {
+const double pylith::materials::ElasticStress1DData::_properties[] = {
2.50000000e+03,
2.25000000e+10,
2.25000000e+10,
@@ -68,11 +77,19 @@
2.88000000e+09,
};
-const double pylith::materials::ElasticStress1DData::_initialState[] = {
- 1.20000000e+04,
- 2.10000000e+04,
+const double* pylith::materials::ElasticStress1DData::_stateVars = 0;
+
+const double pylith::materials::ElasticStress1DData::_propertiesNondim[] = {
+ 2.50000000e+00,
+ 1.00000000e+00,
+ 1.00000000e+00,
+ 2.00000000e+00,
+ 1.28000000e-01,
+ 1.28000000e-01,
};
+const double* pylith::materials::ElasticStress1DData::_stateVarsNondim = 0;
+
const double pylith::materials::ElasticStress1DData::_density[] = {
2.50000000e+03,
2.00000000e+03,
@@ -80,12 +97,12 @@
const double pylith::materials::ElasticStress1DData::_strain[] = {
1.10000000e-04,
- 1.20000000e-04,
+ 4.10000000e-04,
};
const double pylith::materials::ElasticStress1DData::_stress[] = {
- 6.19950000e+06,
- 8.85000000e+05,
+ 2.36460000e+07,
+ 7.39500000e+06,
};
const double pylith::materials::ElasticStress1DData::_elasticConsts[] = {
@@ -93,26 +110,50 @@
7.20000000e+09,
};
+const double pylith::materials::ElasticStress1DData::_initialStress[] = {
+ 2.10000000e+04,
+ 5.10000000e+04,
+};
+
+const double pylith::materials::ElasticStress1DData::_initialStrain[] = {
+ 3.10000000e-04,
+ 6.10000000e-04,
+};
+
+const double* pylith::materials::ElasticStress1DData::_stateVarsUpdated = 0;
+
pylith::materials::ElasticStress1DData::ElasticStress1DData(void)
{ // constructor
dimension = _dimension;
- numDBValues = _numDBValues;
- numInitialStateValues = _numInitialStateValues;
- numParameters = _numParameters;
- numParamsQuadPt = _numParamsQuadPt;
numLocs = _numLocs;
+ numProperties = _numProperties;
+ numStateVars = _numStateVars;
+ numDBProperties = _numDBProperties;
+ numDBStateVars = _numDBStateVars;
+ numPropsQuadPt = _numPropsQuadPt;
+ numVarsQuadPt = _numVarsQuadPt;
+ lengthScale = _lengthScale;
+ timeScale = _timeScale;
+ pressureScale = _pressureScale;
+ densityScale = _densityScale;
dtStableImplicit = _dtStableImplicit;
- numParamValues = const_cast<int*>(_numParamValues);
- dbValues = const_cast<char**>(_dbValues);
- initialStateDBValues = const_cast<char**>(_initialStateDBValues);
- dbData = const_cast<double*>(_dbData);
- initialStateDBData = const_cast<double*>(_initialStateDBData);
- parameterData = const_cast<double*>(_parameterData);
- initialState = const_cast<double*>(_initialState);
+ numPropertyValues = const_cast<int*>(_numPropertyValues);
+ numStateVarValues = const_cast<int*>(_numStateVarValues);
+ dbPropertyValues = const_cast<char**>(_dbPropertyValues);
+ dbStateVarValues = const_cast<char**>(_dbStateVarValues);
+ dbProperties = const_cast<double*>(_dbProperties);
+ dbStateVars = const_cast<double*>(_dbStateVars);
+ properties = const_cast<double*>(_properties);
+ stateVars = const_cast<double*>(_stateVars);
+ propertiesNondim = const_cast<double*>(_propertiesNondim);
+ stateVarsNondim = const_cast<double*>(_stateVarsNondim);
density = const_cast<double*>(_density);
strain = const_cast<double*>(_strain);
stress = const_cast<double*>(_stress);
elasticConsts = const_cast<double*>(_elasticConsts);
+ initialStress = const_cast<double*>(_initialStress);
+ initialStrain = const_cast<double*>(_initialStrain);
+ stateVarsUpdated = const_cast<double*>(_stateVarsUpdated);
} // constructor
pylith::materials::ElasticStress1DData::~ElasticStress1DData(void)
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1DData.hh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1DData.hh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/ElasticStress1DData.hh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -39,32 +39,50 @@
static const int _dimension;
- static const int _numDBValues;
+ static const int _numLocs;
- static const int _numInitialStateValues;
+ static const int _numProperties;
- static const int _numParameters;
+ static const int _numStateVars;
- static const int _numParamsQuadPt;
+ static const int _numDBProperties;
- static const int _numLocs;
+ static const int _numDBStateVars;
+ static const int _numPropsQuadPt;
+
+ static const int _numVarsQuadPt;
+
+ static const double _lengthScale;
+
+ static const double _timeScale;
+
+ static const double _pressureScale;
+
+ static const double _densityScale;
+
static const double _dtStableImplicit;
- static const int _numParamValues[];
+ static const int _numPropertyValues[];
- static const char* _dbValues[];
+ static const int* _numStateVarValues;
- static const char* _initialStateDBValues[];
+ static const char* _dbPropertyValues[];
- static const double _dbData[];
+ static const char** _dbStateVarValues;
- static const double _initialStateDBData[];
+ static const double _dbProperties[];
- static const double _parameterData[];
+ static const double* _dbStateVars;
- static const double _initialState[];
+ static const double _properties[];
+ static const double* _stateVars;
+
+ static const double _propertiesNondim[];
+
+ static const double* _stateVarsNondim;
+
static const double _density[];
static const double _strain[];
@@ -73,6 +91,12 @@
static const double _elasticConsts[];
+ static const double _initialStress[];
+
+ static const double _initialStrain[];
+
+ static const double* _stateVarsUpdated;
+
};
#endif // pylith_materials_elasticstress1ddata_hh
Modified: short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/generate.sh
===================================================================
--- short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/generate.sh 2009-02-23 00:25:34 UTC (rev 14117)
+++ short/3D/PyLith/branches/pylith-swig/unittests/libtests/materials/data/generate.sh 2009-02-23 03:08:39 UTC (rev 14118)
@@ -37,27 +37,27 @@
# 2-D ----------------------------------------------------------------
-# python ElasticPlaneStrain.py \
-# --data.namespace=pylith,materials \
-# --data.object=ElasticPlaneStrainData \
-# --data.parent=ElasticMaterialData
+ python ElasticPlaneStrain.py \
+ --data.namespace=pylith,materials \
+ --data.object=ElasticPlaneStrainData \
+ --data.parent=ElasticMaterialData
-# python ElasticPlaneStress.py \
-# --data.namespace=pylith,materials \
-# --data.object=ElasticPlaneStressData \
-# --data.parent=ElasticMaterialData
+ python ElasticPlaneStress.py \
+ --data.namespace=pylith,materials \
+ --data.object=ElasticPlaneStressData \
+ --data.parent=ElasticMaterialData
# 1-D ----------------------------------------------------------------
-# python ElasticStrain1D.py \
-# --data.namespace=pylith,materials \
-# --data.object=ElasticStrain1DData \
-# --data.parent=ElasticMaterialData
+ python ElasticStrain1D.py \
+ --data.namespace=pylith,materials \
+ --data.object=ElasticStrain1DData \
+ --data.parent=ElasticMaterialData
-# python ElasticStress1D.py \
-# --data.namespace=pylith,materials \
-# --data.object=ElasticStress1DData \
-# --data.parent=ElasticMaterialData
+ python ElasticStress1D.py \
+ --data.namespace=pylith,materials \
+ --data.object=ElasticStress1DData \
+ --data.parent=ElasticMaterialData
fi
More information about the CIG-COMMITS
mailing list