From 0dec5e106655f2d98593e6ebbb8a6a59e3044cf0 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Thu, 6 Mar 2025 14:21:45 -0700
Subject: [PATCH] added vLin cutoff to sub sigma; fixed crustal

---
 .../nshmp/gmm/AbrahamsonGulerce_2020.java     |  2 +-
 .../nshmp/gmm/UsgsPrviBackbone2025.java       | 46 +++----------------
 2 files changed, 7 insertions(+), 41 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/AbrahamsonGulerce_2020.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/AbrahamsonGulerce_2020.java
index 84c34f09..51340ae5 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/AbrahamsonGulerce_2020.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/AbrahamsonGulerce_2020.java
@@ -137,12 +137,12 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel {
 
   static final double VS30_ROCK = 1000.0;
   static final double PHI_AMP_SQ = 0.09;
+  static final double VSS_MAX = 1000.0;
 
   private static final double C1S = 7.5;
   private static final double C4 = 10.0;
   private static final double C = 1.88;
   private static final double N = 1.18;
-  private static final double VSS_MAX = 1000.0;
 
   private static final double D0 = 0.47;
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java
index 50092147..3ecdcb3e 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/UsgsPrviBackbone2025.java
@@ -276,43 +276,6 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel {
       return new double[] { σNga, σPrvi };
     }
 
-    // sigma sleuthing TODO clean
-    // @Override
-    // double[] calcSigmas(GmmInput in) {
-    // Coefficients c = super.coeffs;
-    // double Ï„ = calcTau(in.Mw, c);
-    // System.out.println("Ï„: " + Ï„);
-    // double saRock = calcSaRock(in);
-    // double dAmp_p1 = AbrahamsonEtAl_2014.get_dAmp(c.bnl, c.cnl, c.vlin,
-    // in.vs30, saRock) + 1.0;
-    // double Ï„nl = Ï„ * dAmp_p1;
-    // System.out.println("Ï„nl: " + Ï„nl);
-    // double φSS = calcPhiSS(in.Mw, c);
-    // double φSqNga = φSS * φSS + c.φs2sNga * c.φs2sNga;
-    // double φSqPrvi = φSS * φSS + c.φs2sPrvi * c.φs2sPrvi;
-    // System.out.println("φSS: " + φSS);
-    // System.out.println("c.φs2sNga: " + c.φs2sNga);
-    // System.out.println("c.φs2sPrvi: " + c.φs2sPrvi);
-    // double φNlNgaSq = calcPhiNonLinSq(φSqNga, dAmp_p1);
-    // double φNlPrviSq = calcPhiNonLinSq(φSqPrvi, dAmp_p1);
-    //
-    // System.out.println("φNlNga: " + sqrt(φNlNgaSq));
-    // System.out.println("φNlPrvi: " + sqrt(φNlPrviSq));
-    //
-    // double σNga = sqrt(τnl * τnl + φNlNgaSq);
-    // double σPrvi = sqrt(τnl * τnl + φNlPrviSq);
-    //
-    // System.out.println("σNga: " + σNga);
-    // System.out.println("σPrvi: " + σPrvi);
-    //
-    // System.out.println("--- no nonlin ---");
-    //
-    // System.out.println("σNga: " + sqrt(τ * τ + φSqNga));
-    // System.out.println("σPrvi: " + sqrt(τ * τ + φSqPrvi));
-    //
-    // return new double[] { σNga, σPrvi };
-    // }
-
     private double calcSaRock(GmmInput in) {
       // ASK Vs30 rock = 1180 m/s
       // Also disable basin term.
@@ -344,8 +307,8 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel {
       return Mw <= 5.0 ? c.a : Mw > 6.5 ? c.b : c.a + (Mw - 5.0) * ((c.b - c.a) / 1.5);
     }
 
-    static double calcPhiNonLinSq(double φ, double dAmp_p1) {
-      double phiBsq = φ * φ - AbrahamsonEtAl_2014.PHI_AMP_SQ;
+    static double calcPhiNonLinSq(double φSq, double dAmp_p1) {
+      double phiBsq = φSq - AbrahamsonEtAl_2014.PHI_AMP_SQ;
       return phiBsq * dAmp_p1 * dAmp_p1 + AbrahamsonEtAl_2014.PHI_AMP_SQ;
     }
   }
@@ -775,7 +738,10 @@ public abstract class UsgsPrviBackbone2025 implements GroundMotionModel {
       GmmInput in) {
 
     double pgaRock = calcSubPgaRock(in, σPgaGmm);
-    double dSite = AbrahamsonGulerce_2020.calc_dSite(c.bnlSub, c.vlinSub, in.vs30, pgaRock);
+    double dSite = (in.vs30 < c.vlinSub)
+        ? AbrahamsonGulerce_2020.calc_dSite(c.bnlSub, c.vlinSub, in.vs30, pgaRock)
+        : 0.0;
+
     double τNlSq = calcNonLinTermSq(c.τSub, c.τSubPga, dSite, c.ρB);
 
     double φPrvi = sqrt(c.φSubS2S * c.φSubS2S + c.φSubSS * c.φSubSS);
-- 
GitLab