[cig-commits] r15691 - in short/3D/PyLith/branches/pylith-friction: libsrc/faults playpen/friction

brad at geodynamics.org brad at geodynamics.org
Fri Sep 25 14:42:51 PDT 2009


Author: brad
Date: 2009-09-25 14:42:51 -0700 (Fri, 25 Sep 2009)
New Revision: 15691

Modified:
   short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc
   short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.hh
   short/3D/PyLith/branches/pylith-friction/playpen/friction/spring_example.py
Log:
Start migration towards implementing friction as part of solver.

Modified: short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc	2009-09-24 04:17:39 UTC (rev 15690)
+++ short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc	2009-09-25 21:42:51 UTC (rev 15691)
@@ -132,9 +132,6 @@
   // Compute tributary area for each vertex in fault mesh.
   _calcArea();
 
-  // Initialize quadrature geometry.
-  _quadrature->initializeGeometry();
-
   // Get initial tractions using a spatial database.
   _getInitialTractions();
   
@@ -422,7 +419,6 @@
   //   * DOF k: slip values {D(t+dt)}
 
   topology::Field<topology::SubMesh>& slip = _fields->get("slip");
-  slip.zero();
 
   const int spaceDim = _quadrature->spaceDim();
 
@@ -618,15 +614,19 @@
   assert(0 != fields);
   assert(0 != _fields);
 
-  // Update cumulative slip
-  topology::Field<topology::SubMesh>& cumSlip = _fields->get("cumulative slip");
-  topology::Field<topology::SubMesh>& slip = _fields->get("slip");
-  if (!_useSolnIncr)
-    cumSlip.zero();
-  cumSlip += slip;
 } // updateStateVars
 
 // ----------------------------------------------------------------------
+// Constrain solution based on friction.
+void
+pylith::faults::FaultCohesiveDynL::constrainSolution(
+				       const double t,
+				       topology::SolutionFields* const fields)
+{ // constrainSolution
+  // :TODO: Friction stuff goes here
+} // constrainSolution
+
+// ----------------------------------------------------------------------
 // Verify configuration is acceptable.
 void
 pylith::faults::FaultCohesiveDynL::verifyConfiguration(

Modified: short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.hh
===================================================================
--- short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.hh	2009-09-24 04:17:39 UTC (rev 15690)
+++ short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.hh	2009-09-25 21:42:51 UTC (rev 15691)
@@ -177,6 +177,14 @@
   void updateStateVars(const double t,
 		       topology::SolutionFields* const fields);
 
+  /** Constrain solution based on friction.
+   *
+   * @param t Current time
+   * @param fields Solution fields
+   */
+  void constrainSolution(const double t,
+			 topology::SolutionFields* const fields);
+
   /** Verify configuration is acceptable.
    *
    * @param mesh Finite-element mesh

Modified: short/3D/PyLith/branches/pylith-friction/playpen/friction/spring_example.py
===================================================================
--- short/3D/PyLith/branches/pylith-friction/playpen/friction/spring_example.py	2009-09-24 04:17:39 UTC (rev 15690)
+++ short/3D/PyLith/branches/pylith-friction/playpen/friction/spring_example.py	2009-09-25 21:42:51 UTC (rev 15691)
@@ -29,7 +29,7 @@
 import numpy
 
 # Spring stiffness [k0, k1, ..., kN]
-k = (1.0, 1.0, 1.0, 1.0, 1.0)
+k = (6.0, 2.0, 1.0, 1.0, 4.0)
 
 # Prescribed displacement, u5
 u5 = 2.5
@@ -75,8 +75,8 @@
         #slipIncr = 2*(lm-fy)
         slipIncr = (k[2] + k[3])*(lm-fy) - (k[2]*b[2] - k[3]*b[3])
         b[5] += slipIncr # Update slip estimate
-        incr[2] -= 0.5*slipIncr
-        incr[3] += 0.5*slipIncr
+        #incr[2] -= 0.5*slipIncr
+        #incr[3] += 0.5*slipIncr
 
 
 # ----------------------------------------------------------------------



More information about the CIG-COMMITS mailing list