From b6a4e15367f305825bf85362ac7f6c2f7852f4e4 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 15 Jun 2022 10:55:03 -0600 Subject: [PATCH] ag20 cleaning --- .../nshmp/gmm/AbrahamsonGulerce_2020.java | 189 ++++++++---------- .../gov/usgs/earthquake/nshmp/gmm/Gmm.java | 28 +-- 2 files changed, 95 insertions(+), 122 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 bd8bbfdb..23bd5c54 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 @@ -5,6 +5,7 @@ import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.RRUP; import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.VS30; import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.ZTOR; import static gov.usgs.earthquake.nshmp.gmm.Imt.PGA; +import static gov.usgs.earthquake.nshmp.gmm.Imt.PGV; import static gov.usgs.earthquake.nshmp.gmm.SubductionZone.ALASKA; import static gov.usgs.earthquake.nshmp.gmm.SubductionZone.CASCADIA; import static gov.usgs.earthquake.nshmp.gmm.SubductionZone.GLOBAL; @@ -25,16 +26,14 @@ import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints; import gov.usgs.earthquake.nshmp.tree.LogicTree; /** - * Abstract implementation of the Abrahamson & Gülerce NGA-Subduction ground - * motion model. This model supports both slab and interface type events. + * Implementation of the Abrahamson & Gülerce (2020) ground motion model for + * subduction regions developed as part of the <a + * href="https://www.risksciences.ucla.edu/nhr3/nga-subduction">NGA + * Subduction</a> project. * - * <p><b>Note:</b> Direct instantiation of {@code GroundMotionModel}s is - * prohibited. Use {@link Gmm#instance(Imt)} to retrieve an instance for a - * desired {@link Imt}. + * <p><b>Implementation notes:</b> * - * <p><b>Implementation notes:</b><ul> - * - * <li>Implementation currently supports a global median model, as well as + * <ul><li>Implementation currently supports a global median model, as well as * Alaska and Cascadia regional models.</li> * * <li>Coefficients for 0.01s are used for PGA.</li> @@ -51,57 +50,34 @@ import gov.usgs.earthquake.nshmp.tree.LogicTree; * greater than the reference value computed from Vs30.</li> * * <li>The aleatory variability model only includes the linear φ1 model - * appropriate for the global, Alaska and Cascadia models.</li> + * appropriate for the global, Alaska and Cascadia models.</li></ul> * - * </ul> + * <p><b>Note:</b> Direct instantiation of {@code GroundMotionModel}s is + * prohibited. Use {@link Gmm#instance(Imt)} to retrieve an instance for a + * desired {@link Imt}. * * <p><b>Reference:</b> Abrahamson, N., and Gülerce, Z., 2020, Regionalized * ground-motion models for subduction earthquakes based on the NGA-SUB * database. Report no. 2020/25. Berkeley, CA: PEER, 219 pp. * - * <p><b>Component:</b> Geometric mean of two horizontal components + * <p><b>Component:</b> average horizontal (RotD50) * * @author U.S. Geological Survey - * @see Gmm#AG_20_GLOBAL_INTERFACE - * @see Gmm#AG_20_GLOBAL_SLAB - * @see Gmm#AG_20_CASCADIA_INTERFACE - * @see Gmm#AG_20_CASCADIA_ADJ_INTERFACE - * @see Gmm#AG_20_CASCADIA_SLAB - * @see Gmm#AG_20_CASCADIA_ADJ_SLAB - * @see Gmm#AG_20_CASCADIA_INTERFACE_BASIN - * @see Gmm#AG_20_CASCADIA_ADJ_INTERFACE_BASIN - * @see Gmm#AG_20_CASCADIA_SLAB_BASIN - * @see Gmm#AG_20_CASCADIA_ADJ_SLAB_BASIN - * @see Gmm#AG_20_ALASKA_INTERFACE - * @see Gmm#AG_20_ALASKA_SLAB - * @see Gmm#AG_20_ALASKA_ADJ_INTERFACE - * @see Gmm#AG_20_ALASKA_ADJ_SLAB */ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = "Abrahamson & Gülerce (2020)"; - /* - * Developer notes: - * - * TODO per-implementation constraints? (slab vs interface depth limits) - * - * TODO NAA recommendation for PGV - * - * TODO vLin, b values for fSite are from CB14 with 0.6s and 6s values from - * BcHydro. There is an inconsistency between CB14 and BcHydro at 0.02s, and - * 0.03s is missing from BcHydro. vLin is rounded in CB14. - * - * TODO should Vs30 in non-lin sigma model be Vs*? - * - * TODO what is horizontal component of this and other NGA-Sub models? - * - * TODO It's not clear what the order of operations is on Δc1s eqn 3.5 - */ - - static final Constraints CONSTRAINTS = Constraints.builder() - .set(MW, Range.closed(5.0, 9.5)) - .set(RRUP, Range.closed(0.0, 1000.0)) + static final Constraints CONSTRAINTS_INTERFACE = Constraints.builder() + .set(MW, Range.closed(6.0, 9.5)) + .set(RRUP, Range.closed(0.0, 1000.0)) // check report + .set(ZTOR, Earthquakes.INTERFACE_DEPTH_RANGE) + .set(VS30, Range.closed(150.0, 1000.0)) + .build(); + + static final Constraints CONSTRAINTS_SLAB = Constraints.builder() + .set(MW, Range.closed(5.0, 8.0)) + .set(RRUP, Range.closed(0.0, 1000.0)) // check report .set(ZTOR, Earthquakes.SLAB_DEPTH_RANGE) .set(VS30, Range.closed(150.0, 1000.0)) .build(); @@ -114,20 +90,21 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { private static final double N = 1.18; private static final double VSS_MAX = 1000.0; // Errata 2021/7/12 - private static final double ΔC1_SLAB = -0.3; private static final double VS30_ROCK = 1000.0; private static final double D0 = 0.47; private static final class Coefficients { + final Imt imt; final double c1i, c1s; final double a1, a2, a3, a4, a5, a6, a8, a9, a10, a11, a12, a13, a14, a39, a45; final double d1, d2, ÏB, ÏW; - final double vlin, b; + final double vlin, b; // final double a1Adj; Coefficients(Imt imt, CoefficientContainer cc, SubductionZone zone) { + this.imt = imt; Map<String, Double> coeffs = cc.get(imt); /* Regional adjustments (Global) */ @@ -182,8 +159,10 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { private final Coefficients coeffs; private final Coefficients coeffsPGA; + private final Gmm subtype; - AbrahamsonGulerce_2020(Imt imt, SubductionZone zone) { + AbrahamsonGulerce_2020(Imt imt, Gmm subtype, SubductionZone zone) { + this.subtype = subtype; coeffs = new Coefficients(imt, COEFFS, zone); coeffsPGA = new Coefficients(PGA, COEFFS, zone); } @@ -191,6 +170,11 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { @Override public final LogicTree<GroundMotion> calc(GmmInput in) { + if (coeffs.imt == PGV) { + GroundMotion pgv = UsgsPgvSupport.calcAB20Pgv(subtype, in); + return GroundMotions.createTree(pgv.mean(), pgv.sigma()); + } + double pgaRock = 0.0; if (in.vs30 < coeffs.vlin) { pgaRock = exp(calcMean(coeffsPGA, slab(), basin(), adjust(), 0.0, @@ -222,56 +206,41 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { double vs30, double z2p5) { - /* Finite fault term (Eq. 3.2): ln(Rrup + Hff) */ + /* Eq. 3.2 - Finite fault term */ double lnRrupHff = log(rRup + C4 * exp((Mw - 6.0) * c.a9)); - /* Magnitude scaling */ - /* Eq. 3.4 */ + /* Eq. 3.3, 3.4 - Magnitude scaling */ double C1 = (slab ? c.c1s : c.c1i); - /* Eq. 3.3 */ double c13m = c.a13 * (10 - Mw) * (10 - Mw); double c4s = c.a4 + (slab ? c.a45 : 0.0); - // Norm uses Mw < c1, paper uses Mw <= c1 double fMag = (Mw <= C1 ? c4s : c.a5) * (Mw - C1) + c13m; - /* Additional slab scaling */ - /* Eq. 3.5, errata 2021/7/12 */ + /* Eq. 3.5, errata 2021/7/12 - Additional slab scaling */ double fSlab = 0.0; if (slab) { - double Δc1s = C1S - c.c1s; // C1S - (c.c1s fSlab = c.a10 + (c.a4 + c.a45) * (c.c1s - C1S) + c.a14 * lnRrupHff; } - /* Depth scaling: slab only */ - /* Eq. 3.6 */ + /* Eq. 3.6 - Depth scaling: slab only */ double fDepth = 0.0; if (slab) { - // norm uses zTor < 50 and zTor < 200, paper uses zTor <= 50 and zTor >= - // 50, this should not matter double ΔzTor = (zTor <= 200.0) ? (zTor - 50.0) : 150.0; fDepth += ((zTor <= 50.0) ? c.a8 : c.a11) * ΔzTor; } - /* Site-response scaling */ - /* Eq. 3.8 */ + /* Eq. 3.7, 3.8 - Site-response scaling */ double vsS = getVsStar(vs30); - /* Eq. 3.7 */ double fSite = c.a12 * log(vsS / c.vlin); - if (vsS < c.vlin) { // whether or not to use pgaRock + if (vsS < c.vlin) { fSite += -c.b * log(pgaRock + C) + c.b * log(pgaRock + C * pow((vsS / c.vlin), N)); } else { - /* pgaRock loop, vs=1000 > vlinPGA=865 */ fSite += c.b * N * log(vsS / c.vlin); } - /* Basin-depth scaling */ - // TODO check ge geq comparison operators; this is Cascadia model + /* Eq. 2.1 - Basin-depth scaling */ double fBasin = 0.0; if (basin && !Double.isNaN(z2p5)) { double z2p5m = z2p5 * 1000.0; - /* Eq. 2.1 - this is lnZ2p5ref, paper uses all gt/lt, no ge/le */ - // Recommend using vs30 >= 570, otherwise the value for vs30 = 570 - // is 7.5983 (for vs30 = 569, value = 7.5999) /* * Note: PEER report (and xlsx) uses factor rounded to 0.88, fortran code * uses the calculated value. Using 0.878 would improve the match of @@ -283,12 +252,8 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { ? 8.52 - 0.88 * log(vs30 / 200.0) : 8.52; - // TODO commented out is PEER report but ln(z')>1 is odd - // double zPrime = log((z2p5m + 50.0) / (exp(lnZ2p5ref) + 50.0)); - // fBasin = (zPrime > 1) ? c.a39 * zPrime : 0.0; - /* Eq. 3.9 */ + /* Eq. 3.9, 3.11 - Cascadia basin scaling (Errata 2021/7/12) */ double zPrime = (z2p5m + 50.0) / (exp(lnZ2p5ref) + 50.0); - /* Eq. 3.11 - Cascadia basin scaling (Errata 2021/7/12) */ fBasin = (log(zPrime) > 0) ? c.a39 * log(zPrime) : 0.0; } @@ -327,14 +292,9 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { /* Add nonlinear effects. */ if (vsS < c.vlin) { - // TODO eq. 5.9 is vs30 <= c.vlin, but this is inconsistent with - // fSite vs30 < c.vlin for nonlinear behavior - /* φamp^2 = 0.3 * 0.3 = 0.09 */ double φbSq = φSq - 0.09; - // System.out.println(φbSq); - double φlinSqPga = φlinSq(cPga.d1, cPga.d2, rRup); double φbSqPga = φlinSqPga - 0.09; @@ -346,9 +306,6 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { /* Ï„linPga = Ï„lin = D0 */ Ï„Sq += dSiteSq * Ï„Sq + 2 * dSite * Ï„Sq * c.ÏB; - - // System.out.println(φSq); - // System.out.println(Ï„Sq); } return sqrt(Ï„Sq + φSq); @@ -370,8 +327,8 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final SubductionZone ZONE = GLOBAL; static final String NAME = AbrahamsonGulerce_2020.NAME + " : " + ZONE; - Global(Imt imt) { - super(imt, ZONE); + Global(Imt imt, Gmm subtype) { + super(imt, subtype, ZONE); } @Override @@ -394,8 +351,8 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final SubductionZone ZONE = CASCADIA; static final String NAME = AbrahamsonGulerce_2020.NAME + " : " + ZONE; - Cascadia(Imt imt) { - super(imt, ZONE); + Cascadia(Imt imt, Gmm subtype) { + super(imt, subtype, ZONE); } @Override @@ -418,8 +375,8 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final SubductionZone ZONE = ALASKA; static final String NAME = AbrahamsonGulerce_2020.NAME + " : " + ZONE; - Alaska(Imt imt) { - super(imt, ZONE); + Alaska(Imt imt, Gmm subtype) { + super(imt, subtype, ZONE); } @Override @@ -442,7 +399,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = Global.NAME + " : " + INTERFACE; GlobalInterface(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_GLOBAL_INTERFACE); } } @@ -450,7 +407,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = Global.NAME + " : " + SLAB; GlobalSlab(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_GLOBAL_SLAB); } @Override @@ -460,18 +417,26 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { } static class CascadiaAdjustedInterface extends Cascadia { - static final String NAME = Cascadia.NAME + " (adj) " + " : " + INTERFACE; + static final String NAME = Cascadia.NAME + " (adj) : " + INTERFACE; CascadiaAdjustedInterface(Imt imt) { - super(imt); + this(imt, Gmm.AG_20_CASCADIA_ADJ_INTERFACE); + } + + CascadiaAdjustedInterface(Imt imt, Gmm subtype) { + super(imt, subtype); } } static class CascadiaAdjustedSlab extends Cascadia { - static final String NAME = Cascadia.NAME + " (adj) " + " : " + SLAB; + static final String NAME = Cascadia.NAME + " (adj) : " + SLAB; CascadiaAdjustedSlab(Imt imt) { - super(imt); + this(imt, Gmm.AG_20_CASCADIA_ADJ_SLAB); + } + + CascadiaAdjustedSlab(Imt imt, Gmm subtype) { + super(imt, subtype); } @Override @@ -484,7 +449,11 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = Cascadia.NAME + " : " + INTERFACE; CascadiaInterface(Imt imt) { - super(imt); + this(imt, Gmm.AG_20_CASCADIA_INTERFACE); + } + + CascadiaInterface(Imt imt, Gmm subtype) { + super(imt, subtype); } @Override @@ -497,7 +466,11 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = Cascadia.NAME + " : " + SLAB; CascadiaSlab(Imt imt) { - super(imt); + this(imt, Gmm.AG_20_CASCADIA_SLAB); + } + + CascadiaSlab(Imt imt, Gmm subtype) { + super(imt, subtype); } @Override @@ -515,7 +488,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = CascadiaAdjustedInterface.NAME + " (basin)"; CascadiaAdjustedInterfaceBasin(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_CASCADIA_ADJ_INTERFACE_BASIN); } @Override @@ -528,7 +501,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = CascadiaAdjustedSlab.NAME + " (basin)"; CascadiaAdjustedSlabBasin(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_CASCADIA_ADJ_SLAB_BASIN); } @Override @@ -541,7 +514,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = CascadiaInterface.NAME + " (basin)"; CascadiaInterfaceBasin(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_CASCADIA_INTERFACE_BASIN); } @Override @@ -554,7 +527,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = CascadiaSlab.NAME + " (basin)"; CascadiaSlabBasin(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_CASCADIA_SLAB_BASIN); } @Override @@ -569,18 +542,18 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { } static final class AlaskaAdjustedInterface extends Alaska { - static final String NAME = Alaska.NAME + " (adj) " + " : " + INTERFACE; + static final String NAME = Alaska.NAME + " (adj) : " + INTERFACE; AlaskaAdjustedInterface(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_ALASKA_ADJ_INTERFACE); } } static final class AlaskaAdjustedSlab extends Alaska { - static final String NAME = Alaska.NAME + " (adj) " + " : " + SLAB; + static final String NAME = Alaska.NAME + " (adj) : " + SLAB; AlaskaAdjustedSlab(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_ALASKA_ADJ_SLAB); } @Override @@ -593,7 +566,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = Alaska.NAME + " : " + INTERFACE; AlaskaInterface(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_ALASKA_INTERFACE); } @Override @@ -606,7 +579,7 @@ public abstract class AbrahamsonGulerce_2020 implements GroundMotionModel { static final String NAME = Alaska.NAME + " : " + SLAB; AlaskaSlab(Imt imt) { - super(imt); + super(imt, Gmm.AG_20_ALASKA_SLAB); } @Override diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java index 022aa2a2..b0e95f8c 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java @@ -328,98 +328,98 @@ public enum Gmm { AbrahamsonGulerce_2020.GlobalInterface.class, AbrahamsonGulerce_2020.GlobalInterface.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE), /** @see AbrahamsonGulerce_2020 */ AG_20_GLOBAL_SLAB( AbrahamsonGulerce_2020.GlobalSlab.class, AbrahamsonGulerce_2020.GlobalSlab.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_SLAB), /** @see AbrahamsonGulerce_2020 */ AG_20_CASCADIA_INTERFACE( AbrahamsonGulerce_2020.CascadiaInterface.class, AbrahamsonGulerce_2020.CascadiaInterface.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE), /** @see AbrahamsonGulerce_2020 */ AG_20_CASCADIA_SLAB( AbrahamsonGulerce_2020.CascadiaSlab.class, AbrahamsonGulerce_2020.CascadiaSlab.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_SLAB), /** @see AbrahamsonGulerce_2020 */ AG_20_CASCADIA_ADJ_INTERFACE( AbrahamsonGulerce_2020.CascadiaAdjustedInterface.class, AbrahamsonGulerce_2020.CascadiaAdjustedInterface.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE), /** @see AbrahamsonGulerce_2020 */ AG_20_CASCADIA_ADJ_SLAB( AbrahamsonGulerce_2020.CascadiaAdjustedSlab.class, AbrahamsonGulerce_2020.CascadiaAdjustedSlab.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_SLAB), /** @see AbrahamsonGulerce_2020 */ AG_20_CASCADIA_INTERFACE_BASIN( AbrahamsonGulerce_2020.CascadiaInterfaceBasin.class, AbrahamsonGulerce_2020.CascadiaInterfaceBasin.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE), /** @see AbrahamsonGulerce_2020 */ AG_20_CASCADIA_SLAB_BASIN( AbrahamsonGulerce_2020.CascadiaSlabBasin.class, AbrahamsonGulerce_2020.CascadiaSlabBasin.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_SLAB), /** @see AbrahamsonGulerce_2020 */ AG_20_CASCADIA_ADJ_INTERFACE_BASIN( AbrahamsonGulerce_2020.CascadiaAdjustedInterfaceBasin.class, AbrahamsonGulerce_2020.CascadiaAdjustedInterfaceBasin.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE), /** @see AbrahamsonGulerce_2020 */ AG_20_CASCADIA_ADJ_SLAB_BASIN( AbrahamsonGulerce_2020.CascadiaAdjustedSlabBasin.class, AbrahamsonGulerce_2020.CascadiaAdjustedSlabBasin.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_SLAB), /** @see AbrahamsonGulerce_2020 */ AG_20_ALASKA_INTERFACE( AbrahamsonGulerce_2020.AlaskaInterface.class, AbrahamsonGulerce_2020.AlaskaInterface.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE), /** @see AbrahamsonGulerce_2020 */ AG_20_ALASKA_SLAB( AbrahamsonGulerce_2020.AlaskaSlab.class, AbrahamsonGulerce_2020.AlaskaSlab.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_SLAB), /** @see AbrahamsonGulerce_2020 */ AG_20_ALASKA_ADJ_INTERFACE( AbrahamsonGulerce_2020.AlaskaAdjustedInterface.class, AbrahamsonGulerce_2020.AlaskaAdjustedInterface.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_INTERFACE), /** @see AbrahamsonGulerce_2020 */ AG_20_ALASKA_ADJ_SLAB( AbrahamsonGulerce_2020.AlaskaAdjustedSlab.class, AbrahamsonGulerce_2020.AlaskaAdjustedSlab.NAME, AbrahamsonGulerce_2020.COEFFS, - AbrahamsonGulerce_2020.CONSTRAINTS), + AbrahamsonGulerce_2020.CONSTRAINTS_SLAB), /** @see ParkerEtAl_2020 */ PSBAH_20_GLOBAL_INTERFACE( -- GitLab