def read_input(input_file): ''' Takes an open input_file returns a dict with the processed options read from file and a geometry object ''' local_options = DEFAULT_OPTIONS.copy() geometry = Geometry() for i, line in enumerate(input_file): tokens = _tokenize(line) if tokens[0] == '': continue if len(tokens) != 2: raise ValueError( "In line {}: Wrong format\nGot: {}".format(i, line) ) key, value = tokens[0].upper(), tokens[1].upper() if key in local_options: local_options[key] = value elif key == "BOUNDARY": geometry.add_boundary(value) elif key == "BODY": geometry.add_body_from_file(value) elif key[:4] == "GEO_": geometry.add_geometry(key, value) else: raise ValueError( "In line {}: Invalid option {}".format(i, key) ) return local_options, geometry