mlff_attack.visualization module

This module provides tools for visualizing trajectory data, including energy evolution, force convergence, volume changes, and noise spectrum analysis.

Trajectory visualization functionality.

mlff_attack.visualization.calculate_noise_spectrum(max_forces)[source]

Calculate noise spectrum from maximum forces.

Parameters:

max_forces (list of float) – List of maximum forces

Returns:

A tuple containing:

  • frequenciesnp.ndarray

    Frequency array

  • spectrumnp.ndarray

    Power spectrum

Return type:

tuple

mlff_attack.visualization.calculate_statistics(energies, max_forces, volumes)[source]

Calculate summary statistics from trajectory data.

Parameters:
  • energies (list of float) – List of energies

  • max_forces (list of float) – List of maximum forces

  • volumes (list of float) – List of volumes

Returns:

Dictionary of statistics including initial/final energies, forces, volumes, convergence status, and change percentages

Return type:

dict

mlff_attack.visualization.create_visualization(traj, traj_path, outdir, output_format='png', show=False, save_to_csv=True)[source]

Create visualization plots for trajectory data.

Parameters:
  • traj (list of ase.Atoms) – List of ASE Atoms objects

  • traj_path (Path) – Path object for the trajectory file

  • outdir (Path) – Output directory for plots

  • output_format (str, optional) – Format for output plots (png, pdf, svg), by default ‘png’

  • show (bool, optional) – Whether to show plots interactively, by default False

  • save_to_csv (bool, optional) – Whether to save extracted data to CSV files, by default True

Returns:

Path to saved plot, or None if failed

Return type:

str or None

mlff_attack.visualization.extract_trajectory_data(traj)[source]

Extract energy, force, and volume data from trajectory.

Parameters:

traj (list of ase.Atoms) – List of ASE Atoms objects

Returns:

A tuple containing:

  • stepslist of int

    Step numbers

  • energieslist of float

    Energies at each step

  • max_forceslist of float

    Maximum forces at each step

  • volumeslist of float

    Volumes at each step

Return type:

tuple

mlff_attack.visualization.load_trajectory(traj_path)[source]

Load a trajectory file and validate it exists.

Parameters:

traj_path (str or Path) – Path to the trajectory file

Returns:

List of ASE Atoms objects, or None if loading fails

Return type:

list of ase.Atoms or None

mlff_attack.visualization.plot_energy(ax, steps, energies)[source]

Plot energy evolution.

Parameters:
  • ax (matplotlib.axes.Axes) – Matplotlib axes object to plot on

  • steps (list of int) – Step numbers

  • energies (list of float) – Energy values at each step

mlff_attack.visualization.plot_forces(ax, steps, max_forces)[source]

Plot force convergence.

Parameters:
  • ax (matplotlib.axes.Axes) – Matplotlib axes object to plot on

  • steps (list of int) – Step numbers

  • max_forces (list of float) – Maximum force values at each step

mlff_attack.visualization.plot_noise(ax, freq, spectrum)[source]

Plot noise spectrum of maximum forces.

Parameters:
  • ax (matplotlib.axes.Axes) – Matplotlib axes object to plot on

  • freq (np.ndarray) – Frequency array

  • spectrum (np.ndarray) – Power spectrum values

mlff_attack.visualization.plot_summary(ax, stats, n_frames)[source]

Plot summary statistics.

Parameters:
  • ax (matplotlib.axes.Axes) – Matplotlib axes object to plot on

  • stats (dict) – Dictionary of statistics from calculate_statistics

  • n_frames (int) – Number of frames in trajectory

Returns:

Formatted summary text

Return type:

str

mlff_attack.visualization.plot_volume(ax, steps, volumes)[source]

Plot volume evolution.

Parameters:
  • ax (matplotlib.axes.Axes) – Matplotlib axes object to plot on

  • steps (list of int) – Step numbers

  • volumes (list of float) – Volume values at each step