def get_nu_1st_2nd(self): import pandas as pd filename = './fom/nus_mom.csv' fom = pd.read_csv(filename).to_numpy() # For now, grep proj and rom relerr at the same time if self.info['init'] == 'zero': self.info['J0'] = mypostpro.find_nearest(self.outputs['t'][0, :], 501) elif self.info['init'] == 'ic': self.info['J0'] = 0 files_dict = self.cdict('nu') nbs = [] ms = [] sds = [] merr = [] verr = [] sderr = [] for nb, fnames in files_dict.items(): for fname in fnames: nuss = mypostpro.read_nuss(fname) nuss[:, 2] = nuss[:, 2] / 40 avgidx1 = mypostpro.find_nearest(nuss[:, 1], int(self.info['J0'])) rom_mean = mypostpro.cmean(nuss[avgidx1:-1, :], 2) rom_var = mypostpro.cvar(nuss[avgidx1:-1, :], rom_mean, 2) rom_sd = mypostpro.csd(nuss[avgidx1:-1, :], rom_mean, 2) [mean_err, var_err, sd_err] = mypostpro.cnuss_err(fom[0][0], fom[0][1], fom[0][1], rom_mean, rom_var, rom_sd) merr.append(mean_err) verr.append(var_err) sderr.append(sd_err) nbs.append(int(nb)) ms.append(rom_mean) sds.append(rom_sd) self.nbs, self.nus_ms, self.nus_sds, self.mnuserr, self.stdnuserr = [ list(tuple) for tuple in zip(*sorted(zip(nbs, ms, sds, merr, sderr))) ] return
fws = [] m_list = [] sd_list = [] for fw, fnames in dict_final: # get the FOM data for fname in fnames: nuss = mypostpro.read_nuss(fname) nuss[:, 2] = nuss[:, 2] / 40 avgidx1 = mypostpro.find_nearest(nuss[:, 1], int(sys.argv[3])) rom_mean = mypostpro.cmean(nuss[avgidx1:-1, :], 2) rom_var = mypostpro.cvar(nuss[avgidx1:-1, :], rom_mean, 2) rom_sd = mypostpro.csd(nuss[avgidx1:-1, :], rom_mean, 2) [mean_err, var_err, sd_err] = mypostpro.cnuss_err(fom_mean, fom_var, fom_sd, rom_mean, rom_var, rom_sd) merr_list.append(mean_err) verr_list.append(var_err) sderr_list.append(sd_err) fws.append(float(fw)) m_list.append(rom_mean) sd_list.append(rom_sd) data = np.column_stack((fws, merr_list, sderr_list, m_list, sd_list)) # sd_list, fom_means, fom_stds)) data = data[data[:, 0].argsort()] print(data) anchor = setup.find_anchor() solver = checker.rom_checker(fname, '^.*_(.*)rom_.*$')