[cig-commits] r6485 - short/3D/PyLith/trunk/libsrc/materials

brad at geodynamics.org brad at geodynamics.org
Fri Mar 30 19:35:07 PDT 2007


Author: brad
Date: 2007-03-30 19:35:07 -0700 (Fri, 30 Mar 2007)
New Revision: 6485

Modified:
   short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic1D.cc
Log:
Fixed elastic constant.

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic1D.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic1D.cc	2007-03-31 02:34:25 UTC (rev 6484)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticIsotropic1D.cc	2007-03-31 02:35:07 UTC (rev 6485)
@@ -40,6 +40,7 @@
 
   // Indices (order) of database values
   static const int didDensity;
+  static const int didVs;
   static const int didVp;
 
   // Parameters
@@ -48,21 +49,24 @@
 
   // Indices (order) of parameters
   static const int pidDensity;
-  static const int pidLambda2Mu;
+  static const int pidMu;
+  static const int pidLambda;
 }; // _ElasticIsotropic1D
 
 const int pylith::materials::_ElasticIsotropic1D::stressSize = 1;
 const int pylith::materials::_ElasticIsotropic1D::numElasticConsts = 1;
-const int pylith::materials::_ElasticIsotropic1D::numDBValues = 2;
+const int pylith::materials::_ElasticIsotropic1D::numDBValues = 3;
 const char* pylith::materials::_ElasticIsotropic1D::namesDBValues[] =
-  {"density", "vp" };
+  {"density", "vs", "vp" };
 const int pylith::materials::_ElasticIsotropic1D::numParameters = 3;
 const char* pylith::materials::_ElasticIsotropic1D::namesParameters[] =
-  {"density", "lambda+2mu" };
+  {"density", "mu", "lambda" };
 const int pylith::materials::_ElasticIsotropic1D::didDensity = 0;
-const int pylith::materials::_ElasticIsotropic1D::didVp = 1;
+const int pylith::materials::_ElasticIsotropic1D::didVs = 1;
+const int pylith::materials::_ElasticIsotropic1D::didVp = 2;
 const int pylith::materials::_ElasticIsotropic1D::pidDensity = 0;
-const int pylith::materials::_ElasticIsotropic1D::pidLambda2Mu = 1;
+const int pylith::materials::_ElasticIsotropic1D::pidMu = 1;
+const int pylith::materials::_ElasticIsotropic1D::pidLambda = 2;
 
 // ----------------------------------------------------------------------
 // Default constructor.
@@ -147,12 +151,15 @@
   assert(_ElasticIsotropic1D::numDBValues == numValues);
 
   const double density = dbValues[_ElasticIsotropic1D::didDensity];
+  const double vs = dbValues[_ElasticIsotropic1D::didVs];
   const double vp = dbValues[_ElasticIsotropic1D::didVp];
  
-  const double lambda2mu = density * vp*vp;
+  const double mu = density * vs*vs;
+  const double lambda = density * vp*vp - 2.0*mu;
 
   paramVals[_ElasticIsotropic1D::pidDensity] = density;
-  paramVals[_ElasticIsotropic1D::pidLambda2Mu] = lambda2mu;
+  paramVals[_ElasticIsotropic1D::pidMu] = mu;
+  paramVals[_ElasticIsotropic1D::pidLambda] = lambda;
 } // computeParameters
 
 // ----------------------------------------------------------------------
@@ -190,10 +197,11 @@
 	 indexP+=_ElasticIsotropic1D::numParameters,
 	 indexS+=_ElasticIsotropic1D::stressSize) {
     const double density = parameters[indexP+_ElasticIsotropic1D::pidDensity];
-    const double lambda2mu = parameters[indexP+_ElasticIsotropic1D::pidLambda2Mu];
+    const double mu = parameters[indexP+_ElasticIsotropic1D::pidMu];
+    const double lambda = parameters[indexP+_ElasticIsotropic1D::pidLambda];
 
     const double e11 = totalStrain[indexS  ];
-    _stress[indexS  ] = lambda2mu * e11;
+    _stress[indexS  ] = mu*(3.0*lambda+2.0*mu)/(lambda + mu) * e11;
   } // for
 } // _calcStress
 
@@ -217,9 +225,10 @@
        indexP+=_ElasticIsotropic1D::numParameters,
        indexC+=_ElasticIsotropic1D::numElasticConsts) {
     const double density = parameters[indexP+_ElasticIsotropic1D::pidDensity];
-    const double lambda2mu = parameters[indexP+_ElasticIsotropic1D::pidLambda2Mu];
+    const double mu = parameters[indexP+_ElasticIsotropic1D::pidMu];
+    const double lambda = parameters[indexP+_ElasticIsotropic1D::pidLambda];
 
-    _elasticConsts[indexC+ 0] = lambda2mu; // C1111
+    _elasticConsts[indexC  ] = mu*(3.0*lambda+2.0*mu)/(lambda + mu);
   } // for
 } // _calcElasticConsts
 



More information about the cig-commits mailing list