Example #1
0
    rho = 0
    for l in range(len(layers)):
        m = wherePositive(z -
                          z_bottom) * whereNonPositive(z -
                                                       (z_bottom + layers[l]))
        v_p = v_p * (1 - m) + v_Ps[l] * m
        v_s = v_s * (1 - m) + v_Ss[l] * m
        rho = rho * (1 - m) + rhos[l] * m
        vareps = vareps * (1 - m) + epss[l] * m
        gamma = gamma * (1 - m) + gammas[l] * m
        delta = delta * (1 - m) + deltas[l] * m
        z_bottom += layers[l]

    wl = Ricker(frq)
    dt = min((1. / 5.) *
             min(inf(domain.getSize() / v_p), inf(domain.getSize() / v_s)),
             wl.getTimeScale())

    sw = HTIWave(domain,
                 v_p,
                 v_s,
                 wl,
                 src_tags[0],
                 source_vector=src_dir,
                 eps=vareps,
                 gamma=gamma,
                 delta=delta,
                 rho=rho,
                 absorption_zone=None,
                 absorption_cut=1e-2,
                 lumping=True,