def get_concn_array(self, detail_level, sif_name): self.get_run_dir(detail_level, sif_name) grid_length = detail_level * self.side_length array_path = os.path.join(self.run_dir, 'concn_array') if os.path.isfile(array_path): concn_array = toolbox_basic.load_array(array_path) else: result_file_path = os.path.join(self.run_dir, 'case.result') result_file_path = toolbox_basic.check_path(result_file_path) # This isn't quite correct! Without wrapping, Elmer skips some nodes num_nodes = (grid_length + 1)**2 array_shape = (grid_length + 1,)*2 with open(result_file_path, 'Ur') as f: last_lines = f.readlines()[-num_nodes:] concn_array = numpy.array([float(line) for line in last_lines]) concn_array = numpy.reshape(concn_array, array_shape) toolbox_basic.save_array(concn_array, array_path) return concn_array
def get_rate_array(self, detail_level, sif_name): self.get_run_dir(detail_level, sif_name) array_path = os.path.join(self.run_dir, 'rate_array') if not os.path.isfile(array_path): self.get_run_results(detail_level, sif_name) return toolbox_basic.load_array(array_path)