def copy_specfem_stuff(specfemdir, targetdir):
    dir_list = ["DATA", "OUTPUT_FILES", "bin"]
    # copy DATA
    for _dir in dir_list:
        fromdir = os.path.join(specfemdir, _dir)
        todir = os.path.join(targetdir, _dir)
        cleantree(todir)
        copytree(fromdir, todir)
def copy_specfem_stuff(specfemdir, targetdir):
    dir_list = ["DATA", "OUTPUT_FILES", "bin"]
    # copy DATA
    for _dir in dir_list:
        fromdir = os.path.join(specfemdir, _dir)
        todir = os.path.join(targetdir, _dir)
        cleantree(todir)
        copytree(fromdir, todir)
Exemplo n.º 3
0
def prepare_dir():
    with open("./config.yml") as fh:
        config = yaml.load(fh)

    # copy specfem stuff
    copy_files()

    # perturb cmt files
    generate_deriv_cmt = config["generate_deriv_cmt"]
    if generate_deriv_cmt:
        cmtdir = "cmtfile"
        dmoment_tensor = config["dmoment_tensor"]
        ddepth = config["ddepth"]
        dlatitude = config["dlatitude"]
        dlongitude = config["dlongitude"]
        perturb_cmt(cmtdir, dmoment_tensor, dlatitude, dlongitude, ddepth)

    # create job pbs files
    nevents_per_job = config["nevents_per_job"]
    walltime_per_simulation = config["walltime_per_simulation"]
    deriv_cmt_list = config["deriv_cmt_list"]
    create_job_pbs(nevents_per_job, walltime_per_simulation, deriv_cmt_list)

    njobs = len(glob.glob("job_solver_bundle.pbs.*"))
    if njobs < 1:
        raise ValueError("No job scripts")

    # clean up temp data archive
    if not os.path.exists("data"):
        os.makedirs("data")
    if len(glob.glob("data/*")) > 0:
        print("Data exists: ", glob.glob("data/*"))
        print("Data will be removed; Make sure there is nothing left")
        answer = get_permission()
        if answer:
            cleantree("data")
        else:
            sys.exit(0)

    print("*" * 30)
    print("Please check related files and then submit jobs")
    print("Use: ./submit.bash")
    print("*" * 30)
def prepare_dir():
    with open("./config.yml") as fh:
        config = yaml.load(fh)

    # copy specfem stuff
    copy_files()

    # perturb cmt files
    generate_deriv_cmt = config["generate_deriv_cmt"]
    if generate_deriv_cmt:
        cmtdir = "cmtfile"
        dmoment_tensor = config["dmoment_tensor"]
        ddepth = config["ddepth"]
        dlatitude = config["dlatitude"]
        dlongitude = config["dlongitude"]
        perturb_cmt(cmtdir, dmoment_tensor, dlatitude, dlongitude, ddepth)

    # create job pbs files
    nevents_per_job = config["nevents_per_job"]
    walltime_per_simulation = config["walltime_per_simulation"]
    deriv_cmt_list = config["deriv_cmt_list"]
    create_job_pbs(nevents_per_job, walltime_per_simulation, deriv_cmt_list)

    njobs = len(glob.glob("job_solver_bundle.pbs.*"))
    if njobs < 1:
        raise ValueError("No job scripts")

    # clean up temp data archive
    if not os.path.exists("data"):
        os.makedirs("data")
    if len(glob.glob("data/*")) > 0:
        print("Data exists: ", glob.glob("data/*"))
        print("Data will be removed; Make sure there is nothing left")
        answer = get_permission()
        if answer:
            cleantree("data")
        else:
            sys.exit(0)

    print("*"*30)
    print("Please check related files and then submit jobs")
    print("Use: ./submit.bash")
    print("*"*30)
def check_job_folder_exist(targetdir_list):
    clean_status = 1
    for targetdir in targetdir_list:
        if os.path.exists(targetdir):
            print("job folder exists: %s" % targetdir)
            clean_status = 0

    if clean_status == 0:
        answer = raw_input("Remove[Y/n]:")
        if answer == "Y":
            print("Removing all...")
            for _dir in targetdir_list:
                if not os.path.exists(_dir):
                    os.makedirs(_dir)
                else:
                    cleantree(_dir)
        elif answer == "n":
            raise ValueError("Quit as requested")
        else:
            raise ValueError("Incorrect input")
def check_job_folder_exist(targetdir_list):
    clean_status = 1
    for targetdir in targetdir_list:
        if os.path.exists(targetdir):
            print("job folder exists: %s" % targetdir)
            clean_status = 0

    if clean_status == 0:
        answer = raw_input("Remove[Y/n]:")
        if answer == "Y":
            print("Removing all...")
            for _dir in targetdir_list:
                if not os.path.exists(_dir):
                    os.makedirs(_dir)
                else:
                    cleantree(_dir)
        elif answer == "n":
            raise ValueError("Quit as requested")
        else:
            raise ValueError("Incorrect input")