示例#1
0
文件: output.py 项目: f-koehler/mlxtk
def scan_plot_energy(
    scan_dir: Union[Path, str],
    propagation: str = "propagate",
    extensions: List[str] = [".png"],
    **kwargs,
):
    scan_dir = make_path(scan_dir)

    plotting_args = PlotArgs2D.from_dict(kwargs)

    selection = load_scan(scan_dir)

    def plot_func(index, path, parameters):
        del path
        del parameters

        time, _, energy, _ = read_output_hdf5(
            scan_dir / "by_index" / str(index) / propagation / "propagate.h5",
            "output",
        )

        fig, axis = plt.subplots(1, 1)
        plot_energy(axis, time, energy)
        return fig, [axis]

    yield doit_plot_individual(
        selection,
        "energy",
        [str(Path(propagation) / "propagate.h5")],
        plot_func,
        plotting_args,
        extensions,
        decorator_funcs=kwargs.get("decorator_funcs", []),
    )
示例#2
0
文件: gpop.py 项目: f-koehler/mlxtk
def scan_plot_gpop(
    scan_dir: Union[Path, str],
    propagation: str = "propagate",
    dof: int = 1,
    extensions: List[str] = [
        ".png",
    ],
    **kwargs,
):
    scan_dir = make_path(scan_dir)

    plot_name = kwargs.get("plot_name", f"gpop_{dof}")

    plotting_args = PlotArgs2D.from_dict(kwargs)
    plotting_args.grid = kwargs.get("grid", False)

    selection = load_scan(scan_dir)

    def plot_func(index, path, parameters):
        del path
        del parameters

        time, grid, density = read_gpop(
            str(scan_dir / "by_index" / str(index) / propagation /
                "propagate.h5") + "/gpop",
            dof=dof,
        )
        fig, axis = plt.subplots(1, 1)
        plot_gpop(axis, time, grid, density)
        return fig, [axis]

    yield doit_plot_individual(
        selection,
        plot_name,
        [str(Path(propagation) / "propagate.h5")],
        plot_func,
        plotting_args,
        extensions,
        decorator_funcs=kwargs.get("decorator_funcs", []),
    )
示例#3
0
def scan_plot_entropy(
    scan_dir: Union[Path, str],
    propagation: str = "propagate",
    node: int = 1,
    dof: int = 1,
    extensions: List[str] = [
        ".png",
    ],
    **kwargs,
):
    scan_dir = make_path(scan_dir)

    plotting_args = PlotArgs2D.from_dict(kwargs)

    selection = load_scan(scan_dir)

    def plot_func(index, path, parameters):
        del path
        del parameters

        data = read_natpop(
            str(scan_dir / "by_index" / str(index) / propagation /
                "propagate.h5") + "/natpop",
            node=node,
            dof=dof,
        )
        entropy = compute_entropy(data[1])
        fig, axis = plt.subplots(1, 1)
        plot_entropy(axis, data[0], entropy)
        return fig, [axis]

    return doit_plot_individual(
        selection,
        "entropy",
        [str(Path(propagation) / "propagate.h5")],
        plot_func,
        plotting_args,
        extensions,
        decorator_funcs=kwargs.get("decorator_funcs", []),
    )
示例#4
0
def scan_plot_expval(
    scan_dir: Union[Path, str],
    expval: Union[Path, str],
    extensions: List[str] = [
        ".png",
    ],
    **kwargs,
):
    scan_dir = make_path(scan_dir)
    expval = make_path(expval)

    kwargs["coefficient"] = kwargs.get("coefficient", 1.0)

    plotting_args = PlotArgs2D.from_dict(kwargs)

    selection = load_scan(scan_dir)

    def plot_func(index, path, parameters):
        del path
        del parameters

        data = read_expval_hdf5(
            str((scan_dir / "by_index" / str(index) /
                 expval).with_suffix(".exp.h5")), )
        fig, axis = plt.subplots(1, 1)
        plot_expval(axis, *data, **kwargs)
        return fig, [axis]

    return doit_plot_individual(
        selection,
        f"expval_{str(expval)}".replace("/", "_"),
        [str(expval.with_suffix(".exp.h5"))],
        plot_func,
        plotting_args,
        extensions,
        decorator_funcs=kwargs.get("decorator_funcs", []),
        extra_args={"coefficient": kwargs["coefficient"]},
    )