def modelagemparalela(shot,\ Fx,\ Fz,\ fonte,\ regTTM,\ sismograma,\ modelo,\ nome_prin): """ This function is responsible for the parallelization of the shots in the modelling script. """ print("Fx =", Fx, "Fz =", Fz, "shot", shot) fortran.nucleomodelagem(parametro.Nz,parametro.Nx,parametro.Nt,\ parametro.h,parametro.dt,parametro.nat,\ shot,parametro.shotshow,\ Fx,Fz,fonte,parametro.Nsnap,regTTM,\ modelo,sismograma,\ nome_prin,\ parametro.zr,) print(" shot= ", shot, " Finalizado.")
# Loads the source position Fx, Fz = np.loadtxt('posicoes_fonte.dat',dtype = 'int',unpack = True) print("Number of shots=",parametro.N_shot) # Case 1: Only one shot if parametro.N_shot == 1: print("Fx =", Fx, "Fz =", Fz, "shot",parametro.N_shot) fortran.nucleomodelagem(parametro.Nz,\ parametro.Nx,parametro.Nt,\ parametro.h,parametro.dt,\ parametro.nat,\ parametro.N_shot,\ parametro.shotshow,\ Fx,\ Fz,\ fonte,\ parametro.Nsnap,\ regTTM,\ parametro.modeloreal,\ parametro.sismogramaobservado,\ parametro.nome_prin,\ parametro.zr,) print(" shot= ",parametro.N_shot," Finalizado.") # Case 2: More than one shot -> use parallelization else: # list with shot indices shots= np.arange(0,parametro.N_shot) num_processor=parametro.processors # separete the list of shots according to the number
# This part of the script is responsable for the homogeneous seismogram creation print("Modelagem com modelo Homogeneo para remover onda direta") # Case 1: Only one shot if parametro.N_shot == 1: print("Fx =", Fx, "Fz =", Fz, "shot", parametro.N_shot) fortran.nucleomodelagem(parametro.Nz,\ parametro.Nx,\ parametro.Nt,\ parametro.h,\ parametro.dt,\ parametro.nat,\ parametro.N_shot,\ parametro.shotshow,\ Fx,\ Fz,\ fonte,\ parametro.Nsnap,\ regTTM,\ parametro.modelocamadadeagua,\ parametro.sismogramacamadadeagua,\ parametro.nome_prin,\ parametro.zr,) print("shot=", parametro.N_shot, "Finalizado") # Case 2: More than one shot -> use parallelization else: # list with shot indices shots = np.arange(0, parametro.N_shot)
print("Number of shots=", parametro.N_shot) # Case 1: Only one shot if parametro.N_shot == 1: print("Fx =", Fx, "Fz =", Fz, "shot", parametro.N_shot) fortran.nucleomodelagem(parametro.Nz,\ parametro.Nx,\ parametro.Nt,\ parametro.h,\ parametro.dt,\ parametro.nat,\ parametro.N_shot,\ parametro.shotshow,\ Fx,\ Fz,\ fonte,\ parametro.Nsnap,\ regTTM,\ parametro.modelosuavizado,\ parametro.caminho_TTM,\ parametro.nome_prin,\ parametro.zr,) print(" shot= ", parametro.N_shot, " Finalizado.") # Case 2: More than one shot -> use parallelization else: # list with shot indices shots = np.arange(0, parametro.N_shot)