def step_results_usm3d(self): # minimum is 1 nstep = 100 assert self.out_filename is not None, self.out_filename flo_filename = self.out_filename dirname = os.path.dirname(flo_filename) if dirname == '': dirname = os.getcwd() basename = os.path.basename(flo_filename) base, ext = os.path.splitext(basename) #print "base=%r ext=%r" % (base, ext) if '_' in base: model_name, n = base.rsplit('_', 1) #print "model_name=%r n=%r" % (model_name, n) n = int(n) n_list = get_n_list(dirname, model_name) inn = n_list.index(n) if inn+nstep < len(n_list): nnew = n_list[inn+nstep] else: nnew = max(n_list) if nnew == n: raise RuntimeError('%r is the last file' % self.out_filename) #print "inn=%r nnew=%r" % (inn, nnew) flo_filename = model_name + '_%s.flo' % nnew else: raise RuntimeError('The current file is must have the format of xxx_%%i.flo, not %r' % self.out_filename) #print "loading %r" % flo_filename self.load_usm3d_results(flo_filename, dirname) self.out_filename = os.path.join(dirname, flo_filename) print "done stepping..."
def on_reload_usm3d(self): """ For USM3D, we dynamically load the latest CFD results time step, hich is really handy when you're running a job. """ # minimum is 1 nstep = 100 if self.gui.out_filename is None: msg = 'usm3d_filename=%r must not be None\n' % self.gui.out_filename dir_gui = [] for key in object_attributes(self.gui): try: value = getattr(self.gui, key) except KeyError: # self.edge_actor is a if key not in ['edge_actor']: self.gui.log.warning('key=%s is undefined...' % key) if isinstance(value, (integer_float_types, string_types)): dir_gui.append(key) dir_gui.sort() msg += 'dir(gui) = [%s]' % ', '.join(dir_gui) raise RuntimeError(msg) flo_filename = self.gui.out_filename dirname = os.path.dirname(flo_filename) if dirname == '': dirname = os.getcwd() basename = os.path.basename(flo_filename) base = os.path.splitext(basename)[0] # box.flo -> box_100.flo if '_' in base: model_name, n = base.rsplit('_', 1) #print("model_name=%r n=%r" % (model_name, n)) n = int(n) n_list = get_n_list(dirname, model_name) inn = n_list.index(n) if inn+nstep < len(n_list): nnew = n_list[inn+nstep] else: nnew = max(n_list) if nnew == n: raise RuntimeError('%r is the last file' % self.gui.out_filename) #print("inn=%r nnew=%r" % (inn, nnew)) flo_filename = model_name + '_%s.flo' % nnew else: flo_filename = self.gui.out_filename #msg = ( #'The current file is must have the format of ' #'xxx_%%i.flo, not %r' % self.out_filename) #raise RuntimeError(msg) #print("loading %r" % flo_filename) self.load_usm3d_results(flo_filename) self.gui.out_filename = os.path.join(dirname, flo_filename)
def on_reload_usm3d(self): """ For USM3D, we dynamically load the latest CFD results time step, hich is really handy when you're running a job. """ # minimum is 1 nstep = 100 assert self.parent.out_filename is not None, self.parent.out_filename flo_filename = self.parent.out_filename dirname = os.path.dirname(flo_filename) if dirname == '': dirname = os.getcwd() basename = os.path.basename(flo_filename) base = os.path.splitext(basename)[0] # box.flo -> box_100.flo if '_' in base: model_name, n = base.rsplit('_', 1) #print("model_name=%r n=%r" % (model_name, n)) n = int(n) n_list = get_n_list(dirname, model_name) inn = n_list.index(n) if inn + nstep < len(n_list): nnew = n_list[inn + nstep] else: nnew = max(n_list) if nnew == n: raise RuntimeError('%r is the last file' % self.parent.out_filename) #print("inn=%r nnew=%r" % (inn, nnew)) flo_filename = model_name + '_%s.flo' % nnew else: flo_filename = self.parent.out_filename #msg = ( #'The current file is must have the format of ' #'xxx_%%i.flo, not %r' % self.out_filename) #raise RuntimeError(msg) #print("loading %r" % flo_filename) self.load_usm3d_results(flo_filename) self.parent.out_filename = os.path.join(dirname, flo_filename)
# disable logging info = self.show_info debug = self.show_debug command = self.show_command self.show_info = False self.show_debug = False self.show_command = False #=========================== # this could be dynamic... model_name = 'bay' dirname = os.getcwd() n_list = get_n_list(dirname, model_name) #[:20] #n_list = [65495, 65475] # take pictures every N steps N = 440 nlist = [i for i in range(max(n_list)) if i % N == 0] flo_filenames = get_flo_files_from_n(dirname, model_name, n_list, include_dirname_in_path=True) self.on_load_geometry(infile_name=model_name + '.cogsg', geometry_format='usm3d') self.zoom(1.6) for ni, flo_filename in zip(n_list, flo_filenames):