AASHTO 2009 Implementation Comments
Required
-
Current design category calculation is not correct. See the AASHTO
implementation in original source code. Note, this does not rely onriskCategory
,s1
, orsds
values. For reference:
protected static class AASHTO implements Impl {
protected static final double[] sd1Thresholds = {0, 0.15, 0.30, 0.50};
protected static final char[] sd1Map = {'A', 'B', 'C', 'D'};
public char calculateDesignCategory(String riskCategory, double s1, double sds, double sd1) {
int pos = Arrays.binarySearch(sd1Thresholds, sd1);
// As above
if (pos < 0) pos = -(pos + 2);
return sd1Map[pos];
}
}
-
Current spectrum calculation method is not correct for AASHTO. See implementation in origin source code. Note, the primary difference in how sPGA is computed. For reference:
/**
*
* @param saVals ArbitrarilyDiscretizedFunc
* @param fa float
* @param fv float
* @return DiscretizedFuncList
*/
public XY_DataSetList calculateSDSpectrumForAASHTO(ArbitrarilyDiscretizedFunc
saVals,
float fa, float fv, float fpga,
String siteClass, String edition) {
double tAcc = saVals.getX(0);
double sAcc = fa * saVals.getY(0);
double sVel = fv * saVals.getY(1);
double sPGA = fpga * saVals.getY(8);
XY_DataSetList funcList = approxSaSd(tAcc, sAcc, sVel, sPGA);
saTfunction.setName(GlobalConstants.DESIGN_SPECTRUM_SA_Vs_T_GRAPH);
saSdfunction.setName(GlobalConstants.DESIGN_SPECTRUM_SD_Vs_T_GRAPH);
String title = "Design Response Spectrum for " + siteClass;
String subTitle = "SDs = Fa x Ss and SD1 = Fv x S1";
String info = "";
info += title + "\n";
info +=
DataDisplayFormatter.createFunctionInfoString(funcList, siteClass, true);
funcList.setInfo(info);
return funcList;
}
-
Where is TL being calculated? It is currently required by spectra calculator otherwise the result is truncated to null quite early. Unclear if it should be returned in output or not, but it is necessary for spectrum calculation. Comments @nluco-usgs ? - Answer : Extend the sdSpectrum for this reference document to 4.0 s. See comments below.
- Why are
t0
andts
being computed and returned explicitly? Was this requested from @nluco-usgs?-
Since these are requested output, be sure to address the case where gms = (gm1 > gms) ? gm1 : gms;
which can certainly affect the results for t0 and ts. (https://github.com/usgs/earthquake-design-ws/blob/master/src/lib/component/spectra-factory.js#L85)
-
-
riskCategory
is not a required parameter for this reference document. Maybe I'm wrong, @nluco-usgs ?
Desired
-
Remove computeSpectralAcceleration
method. It is redundant withcomputeSiteModifiedValue
. Alternatively, overloadcomputeDesignValue
method inherited fromNSHMFactory
to not apply the 2/3 factor and instead return the provided input value. -
Remove computeDesignPGA
method. This functionality can be rolled into existingcomputeFinalDesign
method -
No need to compute sms
orsm1
as they are not included in the output -
Migrate AASHTO files out of "asce" directory to their own directory within the hierarchy. -
Correct computeBasicDesign
method documentation inaashto_2009-factory
-
data
is an object, not an array -
metadata
is not used, no need to mention it -
pga
is also included on the return promise resolution
-