[cig-commits] r15805 - short/3D/PyLith/branches/pylith-friction/libsrc/faults

brad at geodynamics.org brad at geodynamics.org
Tue Oct 13 13:02:57 PDT 2009


Author: brad
Date: 2009-10-13 13:02:56 -0700 (Tue, 13 Oct 2009)
New Revision: 15805

Modified:
   short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc
Log:
Fixed sign of friction (compressive normal stress is negative).

Modified: short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc
===================================================================
--- short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc	2009-10-13 16:37:49 UTC (rev 15804)
+++ short/3D/PyLith/branches/pylith-friction/libsrc/faults/FaultCohesiveDynL.cc	2009-10-13 20:02:56 UTC (rev 15805)
@@ -661,6 +661,13 @@
     fields->get("dispIncr(t->t+dt)").section();
   assert(!dispTIncrSection.isNull());  
 
+
+  slipSection->view("SLIP");
+  areaSection->view("AREA");
+  tractionInitialSection->view("INITIAL TRACTION");
+  dispTSection->view("DISP (t)");
+  dispTIncrSection->view("DISP INCR (t->t+dt)");
+
   // Get mesh and fault vertices and renumbering
   const ALE::Obj<SieveMesh::label_sequence>& vertices = 
     sieveMesh->depthStratum(0);
@@ -735,25 +742,34 @@
 	  } // case 1
 	case 2 :
 	  { // case 2
+	    std::cout << "Normal traction:"
+		      << tractionTpdtVertex[1]+tractionInitialVertex[1]
+		      << std::endl;
 	    if (tractionTpdtVertex[1]+tractionInitialVertex[1] < 0) {
 	      // if in compression
+	      std::cout << "FAULT IN COMPRESSION" << std::endl;
 	      const double friction =
-		muf * (tractionInitialVertex[1] + tractionTpdtVertex[1]);
+		-muf * (tractionInitialVertex[1] + tractionTpdtVertex[1]);
+	      std::cout << "friction: " << friction << std::endl;
 	      if (tractionTpdtVertex[0] > friction ||
 		  (tractionTpdtVertex[0] < friction && slipVertex[0] > 0.0)) {
 		// traction is limited by friction, so have sliding
+		std::cout << "LIMIT TRACTION, HAVE SLIDING" << std::endl;
 		// :KLUDGE:
 		const double kii = 1.0;
 		const double kjj = 1.0;
 		slipVertex[0] += (kii+kjj)*(tractionTpdtVertex[0]-friction);
+		std::cout << "Estimated slip: " << slipVertex[0] << std::endl;
 		// Limit traction
 		tractionTpdtVertex[0] = friction;
 	      } else {
 		// else friction exceeds value necessary, so stick
+		std::cout << "STICK" << std::endl;
 		// no changes to solution
 	      } // if/else
 	    } else {
 	      // if in tension, then traction is zero.
+	      std::cout << "FAULT IN TENSION" << std::endl;
 	      // :KLUDGE:
 	      const double kii = 1.0;
 	      const double kjj = 1.0;
@@ -790,6 +806,9 @@
       slipSection->updatePoint(vertexFault, &slipVertex[0]);
     } // if
   
+  dispTIncrSection->view("AFTER DISP INCR (t->t+dt)");
+  slipSection->view("AFTER SLIP");
+
   // FIX THIS
   PetscLogFlops(0);
 } // constrainSolnSpace



More information about the CIG-COMMITS mailing list