Exemple #1
0
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
Exemple #3
0
# 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)