Loading src/scripts/guess_resources.py +322 −10 Original line number Diff line number Diff line Loading @@ -24,13 +24,14 @@ # The script requires python3. import math import pdb import re from sys import argv ## \cond __version__ = "0.10.10" int_reg = re.compile(r'[-+]?[0-9]') number_reg = re.compile(r'[-+]?[0-9]\.[0-9]+E?[-+][0-9]{2,5}') int_reg = re.compile(r'[-+]?[0-9]+') number_reg = re.compile(r'[-+]?[0-9]+\.[0-9]+(E[-+]?[0-9]+)?') ## \endcond ## \brief Main execution code. Loading @@ -47,7 +48,6 @@ def main(): elif (config['help_mode']): print_help() else: # Will do something here. if (config['edfb_file'] == ''): print("ERROR: missing scatterer configuration file (--edfb EDFB_FILE).") result = 1 Loading @@ -55,10 +55,23 @@ def main(): print("ERROR: missing geometry configuration file (--geom GEOM_FILE).") result = 1 else: print("Would finally run the script.") model = scan_model(config['edfb_file'], config['geom_file']) if (model is not None): print(model) else: result = 1 return result ## \brief Transform a callable iterator object into an array. # # \param[in,out] my_iter: `callable_iterator` Iterator to be transformed (gets consumed). # \returns array: `array`-like An array of items from the iterator. def iter_to_array(my_iter): array = [] for item in my_iter: array.append(item) return array ## \brief Parse the command line arguments. # # The script behaviour can be modified through a set of optional arguments. Loading Loading @@ -124,7 +137,6 @@ def print_help(): # \returns model: `dict` A dictionary containing the model description. def scan_model(edfb_name, geom_name): file_line = "INIT" read_lines = 0 model = { 'app': "", 'nsph': 0, Loading @@ -137,26 +149,326 @@ def scan_model(edfb_name, geom_name): 'vec_y': [], 'vec_z': [] } # PARSING OF SCATTERER CONFIGURATION read_lines = 0 edfb_file = open(edfb_name, "r") file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) if (len(iter_values) != 2): array_values = iter_to_array(iter_values) if (len(array_values) != 2): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line) print(" at line %d in %s."%(read_lines, file_line)) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None model['nsph'] = int(iter_values[0].group()) model['ies'] = int(iter_values[1].group()) model['nsph'] = int(array_values[0].group()) model['ies'] = int(array_values[1].group()) if (model['ies'] > 0): model['app'] = "INCLUSION" file_line = edfb_file.readline() read_lines += 1 str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 3): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None str_line = str_line[array_values[2].end():] iter_values = int_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 4): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None idfc = int(array_values[0].group()) nxi = int(array_values[1].group()) instpc = int(array_values[2].group()) insn = int(array_values[3].group()) if (instpc != 0): file_line.readline() file_line.readline() read_lines += 2 else: for fi in range(nxi): edfb_file.readline() read_lines += nxi # end of if(instpc) block found_spheres = 0 configurations = 0 last_configuration = 0 while (found_spheres < model['nsph']): file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None found_spheres += len(array_values) for ci in range(len(array_values)): type_id = int(array_values[ci].group()) if (type_id > last_configuration): last_configuration = type_id configurations += 1 # end for ci block # end while(found_spheres) block model['configurations'] = configurations for ci in range(configurations): file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None nsh = int(array_values[0].group()) if (ci == 0): nsh += 1 str_line = file_line[array_values[0].end():].replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None radius = float(array_values[0].group()) for ish in range(nsh): file_line = edfb_file.readline() read_lines += 1 if (ci == 0): str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None factor = float(array_values[0].group()) radius *= factor # end of if (ci == 0) block model['ros'].append(radius) # end of for ci block else: # ies == 0 if model['nsph'] == 1: model['app'] = "SPHERE" file_line = edfb_file.readline() str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 3): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None str_line = str_line[array_values[2].end():] iter_values = int_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 4): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None idfc = int(array_values[0].group()) nxi = int(array_values[1].group()) instpc = int(array_values[2].group()) insn = int(array_values[3].group()) if (instpc != 0): file_line.readline() file_line.readline() read_lines += 2 else: for fi in range(nxi): edfb_file.readline() read_lines += nxi # end of if(instpc) block file_line = edfb_file.readline() file_line = edfb_file.readline() read_lines += 2 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None str_line = file_line[array_values[0].end():].replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None radius = float(array_values[0].group()) model['ros'].append(radius) else: model['app'] = "CLUSTER" file_line = edfb_file.readline() read_lines += 1 str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 3): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None str_line = str_line[array_values[2].end():] iter_values = int_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 4): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None idfc = int(array_values[0].group()) nxi = int(array_values[1].group()) instpc = int(array_values[2].group()) insn = int(array_values[3].group()) if (instpc != 0): file_line.readline() file_line.readline() read_lines += 2 else: for fi in range(nxi): edfb_file.readline() read_lines += nxi # end of if(instpc) block found_spheres = 0 configurations = 0 last_configuration = 0 while (found_spheres < model['nsph']): file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None found_spheres += len(array_values) for ci in range(len(array_values)): type_id = int(array_values[ci].group()) if (type_id > last_configuration): last_configuration = type_id configurations += 1 # end for ci block # end while(found_spheres) block model['configurations'] = configurations for ci in range(configurations): file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None nsh = int(array_values[0].group()) str_line = file_line[array_values[0].end():].replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None radius = float(array_values[0].group()) for ish in range(nsh): file_line = edfb_file.readline() read_lines += 1 model['ros'].append(radius) # end of for ci block # end if model['nsph'] block # end if model['ies'] block edfb_file.close() # PARSING OF GEOMETRY CONFIGURATION read_lines = 0 geom_file = open(geom_name, "r") file_line = geom_file.readline() read_lines += 1 if (model['app'] != "SPHERE"): iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) != 9): print("ERROR: %s is not a valid geometry configuration file!"%geom_name) geom_file.close() return None nsph = int(array_values[0].group()) if (nsph != model['nsph']): print("ERROR: %s is not consistent with %s!"%(geom_name, edfb_name)) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, geom_name)) geom_file.close() return None model['li'] = int(array_values[1].group()) model['le'] = int(array_values[2].group()) for si in range(nsph): file_line = geom_file.readline() read_lines += 1 str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 3): print("ERROR: %s is not consistent with %s!"%(geom_name, edfb_name)) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, geom_name)) geom_file.close() return None x = float(array_values[0].group()) y = float(array_values[1].group()) z = float(array_values[2].group()) model['vec_x'].append(x) model['vec_y'].append(y) model['vec_z'].append(z) else: # model['app'] == "SPHERE" iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) != 6): print("ERROR: %s is not a valid geometry configuration file!"%geom_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, geom_name)) geom_file.close() return None nsph = int(array_values[0].group()) if (nsph != model['nsph']): print("ERROR: %s is not consistent with %s!"%(geom_name, edfb_name)) geom_file.close() return None model['li'] = int(array_values[1].group()) model['vec_x'].append(0.0) model['vec_y'].append(0.0) model['vec_z'].append(0.0) geom_file.close() return model ## \brief Exit code (0 for success). Loading Loading
src/scripts/guess_resources.py +322 −10 Original line number Diff line number Diff line Loading @@ -24,13 +24,14 @@ # The script requires python3. import math import pdb import re from sys import argv ## \cond __version__ = "0.10.10" int_reg = re.compile(r'[-+]?[0-9]') number_reg = re.compile(r'[-+]?[0-9]\.[0-9]+E?[-+][0-9]{2,5}') int_reg = re.compile(r'[-+]?[0-9]+') number_reg = re.compile(r'[-+]?[0-9]+\.[0-9]+(E[-+]?[0-9]+)?') ## \endcond ## \brief Main execution code. Loading @@ -47,7 +48,6 @@ def main(): elif (config['help_mode']): print_help() else: # Will do something here. if (config['edfb_file'] == ''): print("ERROR: missing scatterer configuration file (--edfb EDFB_FILE).") result = 1 Loading @@ -55,10 +55,23 @@ def main(): print("ERROR: missing geometry configuration file (--geom GEOM_FILE).") result = 1 else: print("Would finally run the script.") model = scan_model(config['edfb_file'], config['geom_file']) if (model is not None): print(model) else: result = 1 return result ## \brief Transform a callable iterator object into an array. # # \param[in,out] my_iter: `callable_iterator` Iterator to be transformed (gets consumed). # \returns array: `array`-like An array of items from the iterator. def iter_to_array(my_iter): array = [] for item in my_iter: array.append(item) return array ## \brief Parse the command line arguments. # # The script behaviour can be modified through a set of optional arguments. Loading Loading @@ -124,7 +137,6 @@ def print_help(): # \returns model: `dict` A dictionary containing the model description. def scan_model(edfb_name, geom_name): file_line = "INIT" read_lines = 0 model = { 'app': "", 'nsph': 0, Loading @@ -137,26 +149,326 @@ def scan_model(edfb_name, geom_name): 'vec_y': [], 'vec_z': [] } # PARSING OF SCATTERER CONFIGURATION read_lines = 0 edfb_file = open(edfb_name, "r") file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) if (len(iter_values) != 2): array_values = iter_to_array(iter_values) if (len(array_values) != 2): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line) print(" at line %d in %s."%(read_lines, file_line)) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None model['nsph'] = int(iter_values[0].group()) model['ies'] = int(iter_values[1].group()) model['nsph'] = int(array_values[0].group()) model['ies'] = int(array_values[1].group()) if (model['ies'] > 0): model['app'] = "INCLUSION" file_line = edfb_file.readline() read_lines += 1 str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 3): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None str_line = str_line[array_values[2].end():] iter_values = int_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 4): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None idfc = int(array_values[0].group()) nxi = int(array_values[1].group()) instpc = int(array_values[2].group()) insn = int(array_values[3].group()) if (instpc != 0): file_line.readline() file_line.readline() read_lines += 2 else: for fi in range(nxi): edfb_file.readline() read_lines += nxi # end of if(instpc) block found_spheres = 0 configurations = 0 last_configuration = 0 while (found_spheres < model['nsph']): file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None found_spheres += len(array_values) for ci in range(len(array_values)): type_id = int(array_values[ci].group()) if (type_id > last_configuration): last_configuration = type_id configurations += 1 # end for ci block # end while(found_spheres) block model['configurations'] = configurations for ci in range(configurations): file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None nsh = int(array_values[0].group()) if (ci == 0): nsh += 1 str_line = file_line[array_values[0].end():].replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None radius = float(array_values[0].group()) for ish in range(nsh): file_line = edfb_file.readline() read_lines += 1 if (ci == 0): str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None factor = float(array_values[0].group()) radius *= factor # end of if (ci == 0) block model['ros'].append(radius) # end of for ci block else: # ies == 0 if model['nsph'] == 1: model['app'] = "SPHERE" file_line = edfb_file.readline() str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 3): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None str_line = str_line[array_values[2].end():] iter_values = int_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 4): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None idfc = int(array_values[0].group()) nxi = int(array_values[1].group()) instpc = int(array_values[2].group()) insn = int(array_values[3].group()) if (instpc != 0): file_line.readline() file_line.readline() read_lines += 2 else: for fi in range(nxi): edfb_file.readline() read_lines += nxi # end of if(instpc) block file_line = edfb_file.readline() file_line = edfb_file.readline() read_lines += 2 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None str_line = file_line[array_values[0].end():].replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None radius = float(array_values[0].group()) model['ros'].append(radius) else: model['app'] = "CLUSTER" file_line = edfb_file.readline() read_lines += 1 str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 3): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None str_line = str_line[array_values[2].end():] iter_values = int_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 4): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None idfc = int(array_values[0].group()) nxi = int(array_values[1].group()) instpc = int(array_values[2].group()) insn = int(array_values[3].group()) if (instpc != 0): file_line.readline() file_line.readline() read_lines += 2 else: for fi in range(nxi): edfb_file.readline() read_lines += nxi # end of if(instpc) block found_spheres = 0 configurations = 0 last_configuration = 0 while (found_spheres < model['nsph']): file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None found_spheres += len(array_values) for ci in range(len(array_values)): type_id = int(array_values[ci].group()) if (type_id > last_configuration): last_configuration = type_id configurations += 1 # end for ci block # end while(found_spheres) block model['configurations'] = configurations for ci in range(configurations): file_line = edfb_file.readline() read_lines += 1 iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) < 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None nsh = int(array_values[0].group()) str_line = file_line[array_values[0].end():].replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 1): print("ERROR: %s is not a valid scatterer configuration file!"%edfb_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, edfb_name)) edfb_file.close() return None radius = float(array_values[0].group()) for ish in range(nsh): file_line = edfb_file.readline() read_lines += 1 model['ros'].append(radius) # end of for ci block # end if model['nsph'] block # end if model['ies'] block edfb_file.close() # PARSING OF GEOMETRY CONFIGURATION read_lines = 0 geom_file = open(geom_name, "r") file_line = geom_file.readline() read_lines += 1 if (model['app'] != "SPHERE"): iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) != 9): print("ERROR: %s is not a valid geometry configuration file!"%geom_name) geom_file.close() return None nsph = int(array_values[0].group()) if (nsph != model['nsph']): print("ERROR: %s is not consistent with %s!"%(geom_name, edfb_name)) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, geom_name)) geom_file.close() return None model['li'] = int(array_values[1].group()) model['le'] = int(array_values[2].group()) for si in range(nsph): file_line = geom_file.readline() read_lines += 1 str_line = file_line.replace('D', 'E').replace('d', 'E') iter_values = number_reg.finditer(str_line) array_values = iter_to_array(iter_values) if (len(array_values) != 3): print("ERROR: %s is not consistent with %s!"%(geom_name, edfb_name)) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, geom_name)) geom_file.close() return None x = float(array_values[0].group()) y = float(array_values[1].group()) z = float(array_values[2].group()) model['vec_x'].append(x) model['vec_y'].append(y) model['vec_z'].append(z) else: # model['app'] == "SPHERE" iter_values = int_reg.finditer(file_line) array_values = iter_to_array(iter_values) if (len(array_values) != 6): print("ERROR: %s is not a valid geometry configuration file!"%geom_name) print(" INVALID LINE: \"%s\""%file_line[:-1]) print(" at line %d in %s."%(read_lines, geom_name)) geom_file.close() return None nsph = int(array_values[0].group()) if (nsph != model['nsph']): print("ERROR: %s is not consistent with %s!"%(geom_name, edfb_name)) geom_file.close() return None model['li'] = int(array_values[1].group()) model['vec_x'].append(0.0) model['vec_y'].append(0.0) model['vec_z'].append(0.0) geom_file.close() return model ## \brief Exit code (0 for success). Loading