[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