Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
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()