Пример #1
0
 def setUp(self):
     self.domain = Rectangle(20,
                             20,
                             l0=100.,
                             l1=100.,
                             diracTags=["source"],
                             diracPoints=[(0, 0)])
     self.wavelet = Ricker(100.)
Пример #2
0
 def setUp(self):
     self.domain = Brick(10,
                         10,
                         10,
                         l0=100.,
                         l1=100.,
                         l2=100.,
                         diracTags=["source"],
                         diracPoints=[(0, 0, 0)])
     self.wavelet = Ricker(100.)
Пример #3
0
 def setUp(self):
     self.domains = []
     for order in range(2, 11):
         self.domains.append(
             Brick(order,
                   4,
                   4,
                   4,
                   diracTags=["source"],
                   diracPoints=[(0, 0, 0)]))
     self.wavelet = Ricker(100.)
Пример #4
0
 def setUp(self):
     self.domains = []
     for order in range(2, 11):
         self.domains.append(
             Rectangle(order,
                       10,
                       10,
                       l0=100,
                       l1=100,
                       diracTags=["source"],
                       diracPoints=[(0, 0)]))
     self.wavelet = Ricker(100.)
                           ne_z,
                           l0=width_x,
                           l1=depth,
                           diracPoints=src_locations,
                           diracTags=src_tags)
    else:
        domain = Brick(order,
                       ceil(ne_z * width_x / depth),
                       ceil(ne_z * width_y / depth),
                       ne_z,
                       l0=width_x,
                       l1=width_y,
                       l2=depth,
                       diracPoints=src_locations,
                       diracTags=src_tags)
    wl = Ricker(frq)
    m = whereNegative(Function(domain).getX()[DIM - 1] - reflector_at)
    v_p = v_p_bottom * m + v_p_top * (1 - m)

    sw = SonicWave(domain,
                   v_p,
                   source_tag=src_tags[0],
                   wavelet=wl,
                   absorption_zone=absorption_zone,
                   lumping=True)

    locEW = Locator(domain, rcvEW_locations)
    tracerEW = SimpleSEGYWriter(receiver_group=rgEW,
                                source=src_loc_2D,
                                sampling_interval=sampling_interval)
    if DIM == 3:
        domain = Rectangle(ne_x,
                           ne_z,
                           l0=width_x,
                           l1=depth,
                           diracPoints=src_locations,
                           diracTags=src_tags)
    else:
        domain = Brick(ne_x,
                       ne_x,
                       ne_z,
                       l0=width_x,
                       l1=width_y,
                       l2=depth,
                       diracPoints=src_locations,
                       diracTags=src_tags)
    wl = Ricker(frq, tcenter)

    #======================================================================
    z = Function(domain).getX()[DIM - 1]
    z_bottom = 0
    v_p = 0
    delta = 0
    vareps = 0
    azmth = 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
        vareps = vareps * (1 - m) + epss[l] * m