def setup_class(cls): soil_type = site.SoilType( 'Test', unit_wt=16, mod_reduc=0.5, damping=5., ) cls.svar = variation.SpidVariation( 0.9, limits_mod_reduc=[0, np.inf], limits_damping=[0, np.inf], std_mod_reduc=0.2, std_damping=0.2) n = 1000 realizations = [cls.svar(soil_type) for _ in range(n)] cls.mod_reducs = np.array([r.mod_reduc for r in realizations]) cls.dampings = np.array([r.damping for r in realizations])
def test_iter_variations(): m = motion.SourceTheoryRvtMotion(6.0, 30, 'wna') m.calc_fourier_amps() profile = site.Profile([ site.Layer( site.DarendeliSoilType(18., plas_index=0, ocr=1, stress_mean=200), 10, 400), site.Layer( site.DarendeliSoilType(18., plas_index=0, ocr=1, stress_mean=200), 20, 600), site.Layer(site.SoilType('Rock', 24., None, 0.01), 0, 1200), ]) calc = propagation.EquivalentLinearCalculator() var_thickness = variation.ToroThicknessVariation() var_velocity = variation.ToroVelocityVariation.generic_model('USGS C') var_soiltypes = variation.SpidVariation(-0.5, std_mod_reduc=0.15, std_damping=0.0030) freqs = np.logspace(-1, 2, num=500) outputs = output.OutputCollection( output.ResponseSpectrumOutput( # Frequency freqs, # Location of the output output.OutputLocation('outcrop', index=0), # Damping 0.05), output.ResponseSpectrumRatioOutput( # Frequency freqs, # Location in (denominator), output.OutputLocation('outcrop', index=-1), # Location out (numerator) output.OutputLocation('outcrop', index=0), # Damping 0.05), ) for profile in variation.iter_varied_profiles(profile, 3, var_thickness=var_thickness, var_velocity=var_velocity, var_soiltypes=var_soiltypes): calc(m, profile, profile.location('outcrop', index=-1)) outputs(calc)