From 7e3df39c2422615183550abb72e4d646f2064e5f Mon Sep 17 00:00:00 2001 From: dave <dave@dtu.dk> Date: Mon, 11 Apr 2016 11:26:34 +0200 Subject: [PATCH] prepost: changed default POST_DIR, bug fix, WIP: place failed cases in pbs_in_failed --- wetb/prepost/Simulations.py | 16 +++++++++++++++- wetb/prepost/dlcdefs.py | 2 +- wetb/prepost/dlctemplate.py | 19 +++++++++---------- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/wetb/prepost/Simulations.py b/wetb/prepost/Simulations.py index 703d7ca3..9770e482 100755 --- a/wetb/prepost/Simulations.py +++ b/wetb/prepost/Simulations.py @@ -1161,6 +1161,20 @@ def post_launch(cases, save_iter=False): return cases_fail +def copy_pbs_in_failedcases(cases_fail, pbs_in_dir_fail='pbs_in_fail'): + """ + Copy all the pbs_in files from failed cases to a new directory so it + is easy to re-launch them + """ + + for cname in cases_fail.keys(): + case = cases_fail[cname] + pbs_in_fname = '%s.p' % (case['[case_id]']) + pbs_in_dir = case['[pbs_in_dir]'].replace('pbs_in', pbs_in_dir_fail) + run_dir = case['[run_dir]'] + fname = os.path.join(run_dir, pbs_in_dir, pbs_in_fname) + + def logcheck_case(errorlogs, cases, case, silent=False): """ Check logfile of a single case @@ -2663,7 +2677,7 @@ class ErrorLogs(object): if self.cases is not None: case = self.cases[fname.replace('.log', '.htc')] dt = float(case['[dt_sim]']) - time_steps = float(case['[time_stop]']) / dt + time_steps = int(float(case['[time_stop]']) / dt) iterations = np.ndarray( (time_steps+1,3), dtype=np.float32 ) else: iterations = np.ndarray( (len(lines),3), dtype=np.float32 ) diff --git a/wetb/prepost/dlcdefs.py b/wetb/prepost/dlcdefs.py index 747e7753..78a96854 100644 --- a/wetb/prepost/dlcdefs.py +++ b/wetb/prepost/dlcdefs.py @@ -46,7 +46,7 @@ def configure_dirs(verbose=False): raise ValueError('Could not find master file in htc/_master') MASTERFILE = master P_MASTERFILE = os.path.join(P_SOURCE, 'htc%s_master%s' % (os.sep, os.sep)) - POST_DIR = os.path.join(p_run_root, PROJECT, 'prepost-data%s' % os.sep) + POST_DIR = os.path.join(p_run_root, PROJECT, sim_id, 'prepost-data%s' % os.sep) if verbose: print('='*79) diff --git a/wetb/prepost/dlctemplate.py b/wetb/prepost/dlctemplate.py index b6240f46..8158ad9b 100755 --- a/wetb/prepost/dlctemplate.py +++ b/wetb/prepost/dlctemplate.py @@ -14,8 +14,6 @@ from builtins import range from future import standard_library standard_library.install_aliases() - - import os import socket from argparse import ArgumentParser @@ -395,7 +393,8 @@ if __name__ == '__main__': parser.add_argument('--check_logs', action='store_true', default=False, dest='check_logs', help='check the log files') parser.add_argument('--stats', action='store_true', default=False, - dest='stats', help='calculate statistics') + dest='stats', help='calculate statistics and 1Hz ' + 'equivalent loads') parser.add_argument('--fatigue', action='store_true', default=False, dest='fatigue', help='calculate Leq for a full DLC') parser.add_argument('--AEP', action='store_true', default=False, @@ -425,12 +424,6 @@ if __name__ == '__main__': dest='envelopeturbine', help='Compute envelopeturbine') opt = parser.parse_args() - # auto configure directories: assume you are running in the root of the - # relevant HAWC2 model - # and assume we are in a simulation case of a certain turbine/project - P_RUN, P_SOURCE, PROJECT, sim_id, P_MASTERFILE, MASTERFILE, POST_DIR \ - = dlcdefs.configure_dirs(verbose=True) - # TODO: use arguments to determine the scenario: # --plots, --report, --... @@ -457,6 +450,12 @@ if __name__ == '__main__': # saveinterval=2000, csv=True, fatigue_cycles=True, fatigue=False) # ------------------------------------------------------------------------- + # auto configure directories: assume you are running in the root of the + # relevant HAWC2 model + # and assume we are in a simulation case of a certain turbine/project + P_RUN, P_SOURCE, PROJECT, sim_id, P_MASTERFILE, MASTERFILE, POST_DIR \ + = dlcdefs.configure_dirs(verbose=True) + # create HTC files and PBS launch scripts (*.p) if opt.prep: print('Start creating all the htc files and pbs_in files...') @@ -473,5 +472,5 @@ if __name__ == '__main__': envelopeblade=opt.envelopeblade) if opt.dlcplot: sim_ids = [sim_id] - figdir = os.path.join(P_RUN, '..', 'figures/%s' % '-'.join(sim_ids)) + figdir = os.path.join(POST_DIR, 'figures/%s' % '-'.join(sim_ids)) dlcplots.plot_stats2(sim_ids, [POST_DIR], fig_dir_base=figdir) -- GitLab