1 import resultsBase as rb
6 import CoreFlows_variables_dictionary
9 'cf-ordre1': 'CF-ordre1',
10 'vfroe_': 'CF-ordre1',
11 'vfroecorp': 'CF-ordre2',
12 'cf-ordre2': 'CF-ordre2',
14 'pstag_wb': 'pSTAGeq',
16 'staggered_wb': 'pSTAGeq'
19 def create_file_list(workDir, ext=None, fname_glob=None):
20 expanded_path = os.path.expanduser(workDir)
21 abs_path = os.path.abspath(expanded_path)
22 # TODO : we should test if directory exists
23 if fname_glob is None:
24 pattern_for_files = abs_path + '/*' + ext
26 pattern_for_files = abs_path + '/' + fname_glob
27 file_list = glob.glob(pattern_for_files)
30 # TODO : we should use regexp instead?
33 def get_variable_name_from_string(str, varDict, default_value="noVar"):
35 for var_name in varDict.keys():
36 if re.search(var_name, str,re.IGNORECASE):
37 res = varDict[var_name]
42 # deprecated: use the last_step property instead
43 def get_last_step(resDb):
44 res = max([elt.step for elt in resDb])
47 # deprecated: use last_step_elts property instead
48 def extract_last_step_elt(resDb):
49 last_step = get_last_step(resDb)
50 last_step_elts = [elt for elt in resDb if elt.step == last_step]
51 if len([elt for elt in last_step_elts if elt.is_stationnary == True]) > 0:
53 "you are extracting last step variables "
54 "from a result list that contains stationnary results.\n"
59 def is_stationnary_cf(name):
60 pattern_for_stationnary = ".*_Stat_.*"
61 match = re.search(pattern_for_stationnary, name)
62 return (match != None)
65 def create_result_list_1D(dir_list, tags=[], fname_glob=None, code='cf', solver=None, search_step=True):
66 if len(dir_list) == 0:
68 "You passed an empty list of dir to CreateResultList_CoreFlows")
72 for a_dir in dir_list:
73 if fname_glob == None:
74 fileList = rb.create_file_list(a_dir, ext='csv')
76 fileList = rb.create_file_list(a_dir, fname_glob=fname_glob)
78 variable = rb.get_variable_name_from_string(
79 f, var_dict_cf, default_value='unknown_variable')
81 step = rb.get_step_from_root_name(f)
84 is_stationnary = is_stationnary_cf(f)
86 result_solver = rb.get_solver_name(f, solver_dict_cf)
88 result_solver = solver
89 field_result = rb.Result(
95 is_stationnary=is_stationnary,
99 result_list.append(field_result)
103 def create_result_list_2D(dir_list, tags=[], solver=None):
104 if len(dir_list) == 0:
106 "You passed an empty list of dir to CreateResultList_CoreFlows")
110 for a_dir in dir_list:
111 files = rb.create_file_list(a_dir, ext='vtu')
113 variable = rb.get_variable_name_from_string(
114 f, var_dict_cf_2D, default_value='unknown_variable')
115 step = rb.get_step_from_root_name(f)
116 is_stationnary = is_stationnary_cf(f)
118 result_solver = rb.get_solver_name(f, solver_dict_cf)
120 result_solver = solver
121 field_result = rb.Result(
127 is_stationnary=is_stationnary,
128 solver=result_solver,
131 result_list.append(field_result)
134 # for the sake of compatibility with ancient version
135 CreateResultList_2D = create_result_list_2D