!EvalModel parameters: [lithostaticStress, b_xx, b_yy, b_xy, b_yz, b_xz, gamma, Omega] model: !Switch [lithostaticStress]: !Include lithostaticStress_gamma.yaml [b_xx, b_yy, b_zz, b_xy, b_yz, b_xz]: !EvalModel parameters: [strike,R] model: !Switch [strike]: !AffineMap matrix: yx: [-1.0, 1.0, 0.0] translation: yx: 0 components: - !AxisAlignedCuboidalDomainFilter limits: yx: [-.inf, -57872.60975] # yS1 - xS1 = 4.4212739025e+05 - 5.0000000000e+05 components: !ConstantMap map: strike: 309 - !AxisAlignedCuboidalDomainFilter limits: yx: [-.inf, 163340.86754] # yS2 - xS2 = 6.0795713230e+05 - 4.4461626476e+05 components: !FunctionMap map: # alpha = ((y-x)-(yS1-xS1)) / ((yS2-xS2)-(yS1-xS1)) strike: | alpha = (yx+57872.60975)/221213.47729; return (1.0-alpha)*309.0+alpha*330.0; - !ConstantMap map: strike: 330 [R]: !FunctionMap map: #project back to lon, lat #apply Euler pole formula to get the interplate velocity #scale R with the velocity #x0, y0: coordinates of reference point 94.,5. #dx distance between 94.,5. and 94.1,5 #dy distance between 94.,5. and 94.,5.1 #Vmax = 0.447 corresponds this area where the rigid plate is not any more valid R: | pi = 3.14159265359; x0 = 610859.9; y0 = 552748.6; dx = 11087.3; dy = 11055.5; Vmax = 0.447; lonpole = 82.0 * pi/180.; latpole = 27.0 * pi/180.; lon = 94 + 0.1*(x-x0)/dx; lat = 5 + 0.1*(y-y0)/dy; lat = lat * pi/180.; lon = lon * pi/180.; vNS = cos(lat)*sin(lonpole-lon); vEW = sin(lat)*cos(latpole)-cos(lat)*sin(latpole)*cos(lonpole-lon); Vnorm = sqrt(vNS*vNS+vEW*vEW); R = 0.65; yh = 351890.152582; alpha = (y-yh+50000.)/40000.0; alpha = max(0.0, min(1.0, alpha)); return R*alpha; components: !STRESS_STR_DIP_SLIP_AM constants: mu_d: 0.2 mu_s: 0.6 dip: 8 s_zz: 555562000 cohesion: 0.4e6 DipSlipFaulting: 1.0 s2ratio: 0.5 [gamma]: !Include lithostaticStress_gamma.yaml [Omega]: !FunctionMap map: Omega: | z_tappering = -25000.0; if (z < z_tappering) { Rz = (-z+z_tappering) / 20000.0; Omega = max(0.0, min(1.0, 1.0-Rz)); } else { Omega= 1.0; } return Omega; components: !FunctionMap map: s_zz: return lithostaticStress*(1.0-gamma); s_xx: return (Omega*b_xx+ (1.0-Omega))*lithostaticStress*(1.0-gamma); s_yy: return (Omega*b_yy+ (1.0-Omega))*lithostaticStress*(1.0-gamma); s_xy: return Omega*b_xy*lithostaticStress*(1.0-gamma); s_yz: return Omega*b_yz*lithostaticStress*(1.0-gamma); s_xz: return Omega*b_xz*lithostaticStress*(1.0-gamma);