[cig-commits] [commit] master: Aftershock stress influence (0e8507f)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Oct 8 17:06:45 PDT 2014


Repository : https://github.com/geodynamics/vc

On branch  : master
Link       : https://github.com/geodynamics/vc/compare/23464fca3efa2b6ad7ee0ce8f60c225b18b49741...e4325192ad1118379f46ba66899cb98143d09e04

>---------------------------------------------------------------

commit 0e8507fb82b0d9df8613626f9118c03be1439b21
Author: Eric Heien <emheien at ucdavis.edu>
Date:   Wed Oct 8 16:45:48 2014 -0700

    Aftershock stress influence


>---------------------------------------------------------------

0e8507fb82b0d9df8613626f9118c03be1439b21
 src/simulation/RunEvent.cpp | 31 +++++++++++++++++++++++++------
 1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/src/simulation/RunEvent.cpp b/src/simulation/RunEvent.cpp
index 48a6820..6c82737 100644
--- a/src/simulation/RunEvent.cpp
+++ b/src/simulation/RunEvent.cpp
@@ -66,15 +66,11 @@ void RunEvent::processBlocksOrigFail(VCSimulation *sim, quakelib::ModelSweeps &s
 
             if (!stress_drop) stress_drop = b.getStressDrop() - b.getCFF();
 
-            //std::cerr << stress_drop << std::endl;
-
             // Slip is in m
             slip = (stress_drop/b.getSelfStresses());
 
             if (slip < 0) slip = 0;
 
-            if (slip > -b.state.slipDeficit) slip = -b.state.slipDeficit;
-
             // Record how much the block slipped in this sweep and initial stresses
             sweeps.setSlipAndArea(sweep_num,
                                   b.getBlockID(),
@@ -430,7 +426,7 @@ void RunEvent::processAftershock(VCSimulation *sim) {
         double element_slip = element_moment/(b.lame_mu()*b.area());
 
         // Adjust the slip deficit appropriately
-        //b.state.slipDeficit += element_slip;
+        b.state.slipDeficit += element_slip;
 
         // Create the sweep describing this aftershock
         // Since we don't distinguish sweeps, every slip occurs in sweep 0
@@ -438,7 +434,30 @@ void RunEvent::processAftershock(VCSimulation *sim) {
         event_sweeps.setInitStresses(0, *bit, b.getShearStress(), b.getNormalStress());
     }
 
-    // Recalculate stresses
+    // Set the update field to the slip of all blocks
+    for (gid=0; gid<sim->numGlobalBlocks(); ++gid) {
+        Block &block=sim->getBlock(gid);
+        sim->setShearStress(gid, 0.0);
+        sim->setNormalStress(gid, block.getRhogd());
+        sim->setUpdateField(gid, block.state.slipDeficit);
+    }
+    
+    sim->distributeUpdateField();
+    
+    // Calculate the new shear stresses and CFFs given the new update field values
+    sim->matrixVectorMultiplyAccum(sim->getShearStressPtr(),
+                                   sim->greenShear(),
+                                   sim->getUpdateFieldPtr(),
+                                   true);
+    
+    if (sim->doNormalStress()) {
+        sim->matrixVectorMultiplyAccum(sim->getNormalStressPtr(),
+                                       sim->greenNormal(),
+                                       sim->getUpdateFieldPtr(),
+                                       true);
+    }
+    
+    sim->computeCFFs();
 
     // Record final stresses on each block involved in the aftershock
     for (bit=id_set.begin(); bit!=id_set.end(); ++bit) {



More information about the CIG-COMMITS mailing list