def main(): parser = argparse.ArgumentParser() parser.add_argument( "path", nargs="?", type=Path, default=Path("momentum_distribution.h5"), help="path to the momentum_distribution file", ) parser.add_argument("--colorbar", type=bool) add_argparse_2d_args(parser) add_argparse_save_arg(parser) args = parser.parse_args() figure, ax = plt.subplots(1, 1) times, momenta, density = read_momentum_distribution_hdf5( args.path, "momentum_distribution", ) average_momentum = numpy.zeros_like(times) for i, _ in enumerate(average_momentum): average_momentum[i] = numpy.sum(momenta * density[i]) Y, X = numpy.meshgrid(momenta, times) mesh = ax.pcolormesh(X, Y, density) plt.plot(times, average_momentum) apply_2d_args(ax, figure, args) handle_saving(figure, args) plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument( "path", nargs="?", type=Path, default="propagate.h5/output", help="path to the output file", ) add_argparse_2d_args(parser) add_argparse_save_arg(parser) args = parser.parse_args() figure, ax = plt.subplots(1, 1) time, _, energy, _ = read_output(args.path) plot_energy(ax, time, energy) system = units.get_default_unit_system() ax.set_xlabel(system.get_time_unit().format_label("t")) ax.set_ylabel(system.get_length_unit().format_label("x")) apply_2d_args(ax, figure, args) handle_saving(figure, args) plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument("path", nargs=2, help="path to the output file") add_argparse_2d_args(parser) args = parser.parse_args() figure, ax = plt.subplots(1, 1) time1, _, energy1, _ = read_output(args.path[0]) time2, _, energy2, _ = read_output(args.path[1]) if time1.shape != time2.shape: raise ValueError("different number of time points") if not numpy.allclose(time1, time2): raise ValueError("different time points") plot_energy_diff(ax, time1, energy1, energy2) system = units.get_default_unit_system() ax.set_xlabel(system.get_time_unit().format_label("t")) ax.set_ylabel(system.get_energy_unit().format_label(r"\Delta E")) apply_2d_args(ax, figure, args) plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument("path", nargs=2, help="path to the natpop file") parser.add_argument("-n", "--node", type=int, default=1, help="node") parser.add_argument("-d", "--dof", type=int, default=1, help="degree of freedom") add_argparse_2d_args(parser) args = parser.parse_args() figure, ax = plt.subplots(1, 1) time1, natpop1 = read_natpop(args.path[0], node=args.node, dof=args.dof) time2, natpop2 = read_natpop(args.path[1], node=args.node, dof=args.dof) if time1.shape != time2.shape: raise ValueError("number of time points differs") if not numpy.allclose(time1, time2): raise ValueError("time points differ") entropy1 = compute_entropy(natpop1) entropy2 = compute_entropy(natpop2) plot_entropy_diff(ax, time1, entropy1, entropy2) system = units.get_default_unit_system() ax.set_xlabel(system.get_time_unit().format_label("t")) apply_2d_args(ax, figure, args) plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument( "path", nargs="?", type=Path, default=Path("propagate.h5/natpop"), help="path to the natpop file", ) parser.add_argument("-n", "--node", type=int, default=1, help="node") parser.add_argument("-d", "--dof", type=int, default=1, help="degree of freedom") add_argparse_2d_args(parser) add_argparse_save_arg(parser) args = parser.parse_args() figure, ax = plt.subplots(1, 1) time, natpop = read_natpop(args.path, node=args.node, dof=args.dof) plot_natpop(ax, time, natpop) try: ax.set_xlabel( units.get_default_unit_system().get_time_unit().format_label("t")) except units.MissingUnitError: ax.set_xlabel("$t$") apply_2d_args(ax, figure, args) handle_saving(figure, args) if not args.output: plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument("path", help="path to the dmat file") plot.add_argparse_2d_args(parser) args = parser.parse_args() app = QtWidgets.QApplication(sys.argv) DmatSlider(*inout.read_dmat_spfrep(args.path), args) sys.exit(app.exec_())
def main(): parser = argparse.ArgumentParser() parser.add_argument("path", help="path to the dmat file") plot.add_argparse_2d_args(parser) args = parser.parse_args() app = QtWidgets.QApplication(sys.argv) data = read_dmat_spfrep_hdf5(args.path, "dmat_spfrep") gui = Gui(data, 0, len(data[0]) - 1) sys.exit(app.exec_())
def main(): parser = argparse.ArgumentParser() parser.add_argument( "path", nargs="?", type=Path, default=Path("propagate.h5/gpop"), help="path to the gpop file", ) parser.add_argument("-d", "--dof", type=int, default=1, help="degree of freedom") parser.add_argument( "--momentum", action="store_true", help="whether to transform to momentum space", ) parser.add_argument("--logz", action="store_true") parser.add_argument("--zmin", type=float) parser.add_argument("--zmax", type=float) parser.add_argument("--colorbar", action="store_true") add_argparse_2d_args(parser) add_argparse_save_arg(parser) args = parser.parse_args() figure, ax = plt.subplots(1, 1) data = read_gpop(args.path, dof=args.dof) if args.momentum: data = transform_to_momentum_space(data) mesh = plot_gpop(ax, *data, args.zmin, args.zmax, args.logz) if args.colorbar: figure.colorbar(mesh, ax=ax).solids.set_rasterized(True) unitsys = units.get_default_unit_system() try: ax.set_xlabel(unitsys.get_time_unit().format_label("t")) except units.MissingUnitError: ax.set_xlabel("$t$") try: ax.set_ylabel(unitsys.get_length_unit().format_label("x")) except units.MissingUnitError: ax.set_ylabel("$x$") apply_2d_args(ax, figure, args) handle_saving(figure, args) if not args.output: plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument("path", type=Path, nargs="+", help="path to the output file") parser.add_argument( "--fft", action="store_true", help="whether to transform the signal to frequency space", ) parser.add_argument("--xname", help="", default="time") add_argparse_2d_args(parser) add_argparse_save_arg(parser) args = parser.parse_args() figure, ax = plt.subplots(1, 1) unitsys = mlxtk.units.get_default_unit_system() for file in args.path: name = file.stem time, values = read_expval_hdf5(file, xname=args.xname) if args.fft: plot_expval(ax, *mlxtk.tools.signal.fourier_transform(time, values), label=name) ax.set_xlabel( (1 / unitsys.get_time_unit()).format_label(r"\omega")) ax.set_ylabel( mlxtk.units.ArbitraryUnit().format_label( r"\mathrm{amplitude}"), ) else: plot_expval(ax, time, values, label=name) if args.xname == "time": ax.set_xlabel(unitsys.get_time_unit().format_label("t")) else: ax.set_xlabel(args.xname) if len(args.path) > 1: ax.legend() apply_2d_args(ax, figure, args) handle_saving(figure, args) if not args.output: plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument( "path", nargs="?", default="evec_dmat_dof1_spf", help="path to the file containing the eigenvectors of the dmat", ) plot.add_argparse_2d_args(parser) args = parser.parse_args() app = QtWidgets.QApplication(sys.argv) window = DmatEvecSlider(*inout.read_dmat_evecs_grid(args.path), args) sys.exit(app.exec_()) del window
def main(): global MODFUNCS parser = argparse.ArgumentParser() parser.add_argument( "scan_dir", type=Path, help="directory of the scan containing the file scan.pickle", ) parser.add_argument( "-f", "--file", type=Path, default=Path("propagate") / "propagate.h5/natpop", help="relative path within each simulation", ) parser.add_argument("-d", "--dof", type=int, default=1, help="degree of freedom") parser.add_argument("-n", "--node", type=int, default=1, help="node") parser.add_argument( "-e", "--extension", type=str, default=".pdf", help="file extensions for the plots", ) parser.add_argument("-o", "--output", type=str, help="name of the output directory") plot.add_argparse_2d_args(parser) args = parser.parse_args() if not args.output: args.output = f"natpop_{args.dof}_{args.node}" def apply_args(fig: Figure, ax: Axes, parameters: Parameters): del parameters plot.apply_2d_args(ax, fig, args) MODFUNCS = [apply_args] + MODFUNCS load_scan(args.scan_dir).plot_foreach( args.output, partial( plot_natpop, file_path=args.file, dof=args.dof, node=args.node, extension=args.extension, ), )
def main(): parser = argparse.ArgumentParser() parser.add_argument( "path", nargs="?", type=str, default="dmat2.h5/dmat2_gridrep", help="path to the dmat file", ) plot.add_argparse_2d_args(parser) args = parser.parse_args() app = QtWidgets.QApplication(sys.argv) data = read_dmat2_gridrep(args.path) gui = Gui(data, 0, len(data[0]) - 1) sys.exit(app.exec_())
def main(): parser = argparse.ArgumentParser() parser.add_argument( "path", nargs="+", default=["natpop"], help="path to the natpop file", ) parser.add_argument("-n", "--node", type=int, default=1, help="node") parser.add_argument("-d", "--dof", type=int, default=1, help="degree of freedom") parser.add_argument( "--normalize", action="store_true", help="whether to normalize the entropy", ) add_argparse_2d_args(parser) add_argparse_save_arg(parser) args = parser.parse_args() labels = labels_from_paths(args.path) figure, ax = plt.subplots(1, 1) for path, label in zip(args.path, labels): time, natpop = read_natpop(path, node=args.node, dof=args.dof) try: entropy = compute_entropy(natpop, args.normalize) except ZeroDivisionError: entropy = compute_entropy(natpop) args.normalize = False plot_entropy(ax, time, entropy, label=label, normalize=args.normalize) system = units.get_default_unit_system() ax.set_xlabel(system.get_time_unit().format_label("t")) apply_2d_args(ax, figure, args) if len(args.path) > 1: ax.legend() handle_saving(figure, args) if not args.output: plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument( "scan_dir", type=str, help="directory of the scan containing the file scan.pickle", ) parser.add_argument( "-f", "--file", type=Path, default=Path("propagate") / "output", help="relative path within each simulation", ) parser.add_argument( "-e", "--extension", type=str, default=".pdf", help="file extensions for the plots", ) parser.add_argument( "-o", "--output", type=Path, default="energy", help="name of the output directory", ) plot.add_argparse_2d_args(parser) args = parser.parse_args() def apply_args(fig: Figure, ax: Axes, parameters: Parameters): del parameters plot.apply_2d_args(ax, fig, args) load_scan(args.scan_dir).plot_foreach( args.output, partial( plot_energy, file_path=args.file, modfunc=apply_args, extension=args.extension, ), )
def main(): parser = argparse.ArgumentParser() parser.add_argument( "scan_dir", type=Path, help="directory of the scan containing the file scan.pickle", ) parser.add_argument( "expval", type=Path, help="relative path to expval within each simulation", ) parser.add_argument( "-e", "--extension", type=str, default=".pdf", help="file extensions for the plots", ) parser.add_argument("-o", "--output", type=str, help="name of the output directory") plot.add_argparse_2d_args(parser) args = parser.parse_args() if not args.output: args.output = "_".join(args.expval.with_suffix("").parts) def apply_args(fig: Figure, ax: Axes, parameters: Parameters): del parameters plot.apply_2d_args(ax, fig, args) load_scan(args.scan_dir).plot_foreach( args.output, partial( plot_expval, file_path=args.expval, modfunc=apply_args, extension=args.extension, ), )
def main(): parser = argparse.ArgumentParser() parser.add_argument( "path_natpop", nargs="?", default="natpop", help="path to the natpop file", ) parser.add_argument( "path_evals", nargs="?", default="eval_dmat_dof1", help="path to the file containing the dmat eigenvalues", ) parser.add_argument("-n", "--node", type=int, default=1, help="node") parser.add_argument("-d", "--dof", type=int, default=1, help="degree of freedom") add_argparse_2d_args(parser) args = parser.parse_args() figure, ax = plt.subplots(1, 1) time, natpop = read_natpop(args.path_natpop, node=args.node, dof=args.dof) time2, evals = read_dmat_evals(args.path_evals) if not numpy.allclose(time, time2): raise RuntimeError("time points do not match") for natpop, value in zip(natpop.T, evals.T): plt.plot(time, natpop - value) system = units.get_default_unit_system() ax.set_xlabel(system.get_time_unit().format_label("t")) apply_2d_args(ax, figure, args) plt.show()
def main(): parser = argparse.ArgumentParser() parser.add_argument("path", nargs="?", default="psi", help="path to psi file") parser.add_argument( "gpop", nargs="?", default="gpop", help="path to a gpop file in order to determin the grid", ) plot.add_argparse_2d_args(parser) args = parser.parse_args() times, spfs = inout.read_spfs(args.path) _, grid, _ = inout.read_gpop(args.gpop, dof=1) app = QtWidgets.QApplication(sys.argv) window = DmatEvecSlider(times, grid, spfs, args) assert window sys.exit(app.exec_())
def main(): parser = argparse.ArgumentParser() parser.add_argument( "path", nargs="?", default="propagate.h5/gpop", help="path to the gpop file", ) parser.add_argument("-d", "--dof", type=int, default=1, help="degree of freedom") parser.add_argument( "--momentum", action="store_true", help="transform to momentum space", ) plot.add_argparse_2d_args(parser) args = parser.parse_args() app = QtWidgets.QApplication(sys.argv) data = read_gpop(args.path, args.dof) if args.momentum: data = transform_to_momentum_space(data) gui = Gui(data, 0, len(data[0]) - 1, plot_args=args) sys.exit(app.exec_())
def main(): parser = argparse.ArgumentParser() parser.add_argument("path_psi", nargs="?", help="path to psi file") parser.add_argument( "path_norbs", nargs="?", help="path to file with natural orbitals", ) plot.add_argparse_2d_args(parser) args = parser.parse_args() times, spfs = inout.read_spfs(args.path_psi) _, grid, norbs = inout.read_dmat_evecs_grid(args.path_norbs) weights = numpy.sqrt(dvr.add_harmdvr(225, 0.0, 0.3).get_weights()) for i in range(norbs.shape[0]): for j in range(norbs.shape[1]): norbs[i][j] *= weights app = QtWidgets.QApplication(sys.argv) window = DmatEvecSlider(times, grid, numpy.abs(spfs) - numpy.abs(norbs), args) assert window sys.exit(app.exec_())