with open( RES_ROOT_DIR + f"{self.prefix}_dt_{self.time_step}_alpha_{self.alpha}_order_{self.order}_Bo_{self.bo}_DaI_{self.da}.csv", "w") as f: for z, u in enumerate(lastrun[::-1]): f.write(f"{z*self.length_interval}, {u}" + "\n") f.flush() def get_savefile_path(self): return RES_ROOT_DIR + f"{self.prefix}_dt_{self.time_step}_alpha_{self.alpha}_order_{self.order}_Bo_{self.bo}_DaI_{self.da}.csv" if __name__ == '__main__': from expdata import Result from displayer import Displayer sec = Solver(order=2, dt=1e-2, dz=1e-1, alpha=1, da=0.05, bo=10, totalTime=40, note="testnorm") sec.solve() result = Result(sec.get_savefile_path()) # result2 = Result(RES_ROOT_DIR + "dt_0.0001_alpha_1_order_1_Bo_100_DaI_0.1.csv") show = Displayer(0, 30, 0, 1) show.plotmany([result]) show.save("testnorm.png") show.show()
tao, psi = np.loadtxt(name, delimiter=",", usecols=(0, 1), unpack=True) return tao, psi def getLabel(self): return f"Bo: {self.bo}" def __str__(self) -> str: return f"alpha_{self.alpha}_order_{self.order}_Bo_{self.bo}_DaI_{self.da}" def getTruePsi(self): if int(self.order) == 1: return 1 / np.exp(float(self.da) * self.tao) elif int(self.order) == 2: return 1 / (1 + float(self.da) * self.tao) else: raise NotImplementedError if __name__ == '__main__': resname = [ "dt_0.0001_alpha_1_order_1_Bo_50_DaI_0.1", "dt_0.0001_alpha_1_order_1_Bo_100_DaI_0.1", "dt_0.0001_alpha_1_order_1_Bo_500_DaI_0.1", "dt_0.0001_alpha_1_order_1_Bo_1000_DaI_0.1" ] results = [Result(RES_ROOT_DIR + name + ".csv") for name in resname] show = Displayer(0, 15, 0, 0.8) show.plotmany(results) show.save("compare_bo_1.png") show.show()