Пример #1
0
 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])
Пример #2
0
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)