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: locNS = Locator(domain, rcvNS_locations) tracerNS = SimpleSEGYWriter(receiver_group=rgNS, source=src_loc_2D, sampling_interval=sampling_interval) if not tracerEW.obspy_available(): print( "\nWARNING: obspy not available, SEGY files will not be written\n") elif getMPISizeWorld() > 1: print( "\nWARNING: SEGY files cannot be written with multiple processes\n" )
# print("ne_x = ", ne_x) print("ne_z = ", ne_z) print("h_x = ", width_x / ne_x) print("h_z = ", depth / ne_z) print("dt = ", sw.getTimeStepSize() * 1000, "msec") print("width_x = ", width_x) print("depth = ", depth) print("number receivers = ", numRcvPerLine) print("receiver spacing = ", receiver_line[1] - receiver_line[0]) print("sampling time = ", sampling_interval * 1000, "msec") print("source @ ", src_locations[0]) # loc = Locator(domain, rcv_locations) tracerP = SimpleSEGYWriter(receiver_group=rg, source=src_loc_2D, sampling_interval=sampling_interval, text='P') tracerQ = SimpleSEGYWriter(receiver_group=rg, source=src_loc_2D, sampling_interval=sampling_interval, text='Q') if not tracerP.obspy_available(): print( "\nWARNING: obspy not available, SEGY files will not be written\n") elif getMPISizeWorld() > 1: print( "\nWARNING: SEGY files cannot be written with multiple processes\n" ) t = 0.
ne_z, l0=width_x, l1=width_y, l2=(-depth, 0), diracPoints=src_locations, diracTags=src_tags) q = wherePositive( #suppress the x-component on the x boundary whereZero(domain.getX()[0]) * [1, 0, 0] + #logical or #suppress the y-component on the y boundary at the source whereZero(domain.getX()[1]) * [0, 1, 0]) # set up reciever locations locEW = Locator(domain, rcvEW_locations) tracerEW_x = SimpleSEGYWriter(receiver_group=rgEW, source=src_loc_2D, sampling_interval=sampling_interval, text='x-displacement - east-west line') tracerEW_z = SimpleSEGYWriter(receiver_group=rgEW, source=src_loc_2D, sampling_interval=sampling_interval, text='z-displacement - east-west line') if DIM == 3: locNS = Locator(domain, rcvNS_locations) tracerEW_y = SimpleSEGYWriter(receiver_group=rgEW, source=src_loc_2D, sampling_interval=sampling_interval, text='x-displacement - east-west line') tracerNS_x = SimpleSEGYWriter(receiver_group=rgNS, source=src_loc_2D, sampling_interval=sampling_interval, text='x-displacement - north-south line')
wl, src_tags[0], source_vector=src_dir, eps=Eps, delta=Delta, rho=Rho, theta=Tilt, absorption_zone=absorption_zone, absorption_cut=1e-2, lumping=lumping) srclog = Locator(domain, [(r, depth) for r in receiver_line]) grploc = [(x[0], 0.) for x in srclog.getX()] tracer_x = SimpleSEGYWriter(receiver_group=grploc, source=srcloc, sampling_interval=sampling_interval, text='x-displacement') tracer_z = SimpleSEGYWriter(receiver_group=grploc, source=srcloc, sampling_interval=sampling_interval, text='z-displacement') if not tracer_x.obspy_available(): print( "\nWARNING: obspy not available, SEGY files will not be written\n") elif getMPISizeWorld() > 1: print( "\nWARNING: SEGY files cannot be written with multiple processes\n" ) t = 0.