Batch Operations Module

Batch operations module for MMPP - enables serial computation across multiple simulation results.

This module provides the BatchOperations class that allows for executing FFT computations, mode analysis, and other operations across entire directories of simulation results using slice notation like op[:].fft.modes.compute_modes() (auto-selects optimal dataset).

class mmpp.batch_operations.BatchFFT(results, mmpp_ref)[source]

Bases: object

Batch FFT operations handler.

Parameters:
__init__(results, mmpp_ref)[source]

Initialize batch FFT operations.

Parameters:

resultsList[Any]

List of ZarrJobResult objects

mmpp_refAny

Reference to MMPP instance

param results:

type results:

list[Any]

param mmpp_ref:

type mmpp_ref:

Any

property modes: BatchModeAnalyzer

Get batch mode analyzer.

compute_all(**kwargs)[source]

Compute FFT for all results in batch.

Return type:

dict[str, Any]

Parameters:

**kwargsdict

Arguments to pass to FFT computation

Returns:

: Dict[str, Any]

Summary of batch FFT computation results

class mmpp.batch_operations.BatchModeAnalyzer(results, mmpp_ref)[source]

Bases: object

Batch mode analysis operations handler.

Parameters:
__init__(results, mmpp_ref)[source]

Initialize batch mode analyzer.

Parameters:

resultsList[Any]

List of ZarrJobResult objects

mmpp_refAny

Reference to MMPP instance

param results:

type results:

list[Any]

param mmpp_ref:

type mmpp_ref:

Any

compute_modes(dset=None, parallel=True, max_workers=None, **kwargs)[source]

Compute FMR modes for all results in batch.

Return type:

dict[str, Any]

Parameters:

dsetstr, default=None

Dataset name to analyze (default: auto-select largest m dataset)

parallelbool, default=True

Whether to use parallel processing

max_workersOptional[int]

Maximum number of worker threads (None for auto)

**kwargsdict

Additional arguments to pass to mode computation

Returns:

: Dict[str, Any]

Summary of batch mode computation results

param dset:

type dset:

Optional[str]

param parallel:

type parallel:

bool

param max_workers:

type max_workers:

Optional[int]

analyze_all(**kwargs)[source]

Analyze all modes for all results in batch.

Return type:

dict[str, Any]

Parameters:

**kwargsdict

Arguments to pass to mode analysis

Returns:

: Dict[str, Any]

Summary of batch mode analysis results

class mmpp.batch_operations.BatchOperations(results, mmpp_ref)[source]

Bases: object

Main batch operations class that provides access to batch FFT and mode operations.

This class is returned when using slice notation on MMPP objects, e.g., op[:]. It provides access to batch operations like: - op[:].fft.modes.compute_modes() (auto-selects optimal dataset) - op[:].fft.compute_all()

Parameters:
__init__(results, mmpp_ref)[source]

Initialize batch operations.

Parameters:

resultsList[Any]

List of ZarrJobResult objects to operate on

mmpp_refAny

Reference to parent MMPP instance

param results:

type results:

list[Any]

param mmpp_ref:

type mmpp_ref:

Any

property fft: BatchFFT

Get batch FFT operations handler.

__len__()[source]

Return number of results in batch.

Return type:

int

__repr__()[source]

String representation of batch operations.

Return type:

str

__iter__()[source]

Make batch operations iterable.

process(dset=None, parallel=True, max_workers=None, **kwargs)[source]

Process all results in batch with comprehensive analysis.

This method performs complete analysis including FFT computation and mode analysis for all results in the batch.

Return type:

dict[str, Any]

Parameters:

dsetstr, default=None

Dataset name to analyze (default: auto-select largest m dataset)

parallelbool, default=True

Whether to use parallel processing

max_workersOptional[int]

Maximum number of worker threads (None for auto)

**kwargsdict

Additional arguments to pass to analysis

Returns:

: Dict[str, Any]

Comprehensive analysis results

param dset:

type dset:

Optional[str]

param parallel:

type parallel:

bool

param max_workers:

type max_workers:

Optional[int]

param kwargs:

type kwargs:

Any

prepare_report(spectrum=True, modes=True, parallel=True, **kwargs)[source]

Prepare comprehensive report for all results (future functionality).

Return type:

dict[str, Any]

Parameters:

spectrumbool, default=True

Whether to include spectrum analysis

modesbool, default=True

Whether to include mode analysis

parallelbool, default=True

Whether to use parallel processing

**kwargsdict

Additional arguments for analysis

Returns:

: Dict[str, Any]

Comprehensive report summary

param spectrum:

type spectrum:

bool

param modes:

type modes:

bool

param parallel:

type parallel:

bool

get_summary()[source]

Get summary of all results in batch.

Return type:

dict[str, Any]

Returns:

: Dict[str, Any]

Summary information about the batch

Batch Operations Classes

BatchOperations

class mmpp.batch_operations.BatchOperations(results, mmpp_ref)[source]

Bases: object

Main batch operations class that provides access to batch FFT and mode operations.

This class is returned when using slice notation on MMPP objects, e.g., op[:]. It provides access to batch operations like: - op[:].fft.modes.compute_modes() (auto-selects optimal dataset) - op[:].fft.compute_all()

Parameters:
__init__(results, mmpp_ref)[source]

Initialize batch operations.

Parameters:

resultsList[Any]

List of ZarrJobResult objects to operate on

mmpp_refAny

Reference to parent MMPP instance

param results:

type results:

list[Any]

param mmpp_ref:

type mmpp_ref:

Any

property fft: BatchFFT

Get batch FFT operations handler.

__len__()[source]

Return number of results in batch.

Return type:

int

__repr__()[source]

String representation of batch operations.

Return type:

str

__iter__()[source]

Make batch operations iterable.

process(dset=None, parallel=True, max_workers=None, **kwargs)[source]

Process all results in batch with comprehensive analysis.

This method performs complete analysis including FFT computation and mode analysis for all results in the batch.

Return type:

dict[str, Any]

Parameters:

dsetstr, default=None

Dataset name to analyze (default: auto-select largest m dataset)

parallelbool, default=True

Whether to use parallel processing

max_workersOptional[int]

Maximum number of worker threads (None for auto)

**kwargsdict

Additional arguments to pass to analysis

Returns:

: Dict[str, Any]

Comprehensive analysis results

param dset:

type dset:

Optional[str]

param parallel:

type parallel:

bool

param max_workers:

type max_workers:

Optional[int]

param kwargs:

type kwargs:

Any

prepare_report(spectrum=True, modes=True, parallel=True, **kwargs)[source]

Prepare comprehensive report for all results (future functionality).

Return type:

dict[str, Any]

Parameters:

spectrumbool, default=True

Whether to include spectrum analysis

modesbool, default=True

Whether to include mode analysis

parallelbool, default=True

Whether to use parallel processing

**kwargsdict

Additional arguments for analysis

Returns:

: Dict[str, Any]

Comprehensive report summary

param spectrum:

type spectrum:

bool

param modes:

type modes:

bool

param parallel:

type parallel:

bool

get_summary()[source]

Get summary of all results in batch.

Return type:

dict[str, Any]

Returns:

: Dict[str, Any]

Summary information about the batch

BatchFFT

class mmpp.batch_operations.BatchFFT(results, mmpp_ref)[source]

Bases: object

Batch FFT operations handler.

Parameters:
__init__(results, mmpp_ref)[source]

Initialize batch FFT operations.

Parameters:

resultsList[Any]

List of ZarrJobResult objects

mmpp_refAny

Reference to MMPP instance

param results:

type results:

list[Any]

param mmpp_ref:

type mmpp_ref:

Any

property modes: BatchModeAnalyzer

Get batch mode analyzer.

compute_all(**kwargs)[source]

Compute FFT for all results in batch.

Return type:

dict[str, Any]

Parameters:

**kwargsdict

Arguments to pass to FFT computation

Returns:

: Dict[str, Any]

Summary of batch FFT computation results

BatchModeAnalyzer

class mmpp.batch_operations.BatchModeAnalyzer(results, mmpp_ref)[source]

Bases: object

Batch mode analysis operations handler.

Parameters:
__init__(results, mmpp_ref)[source]

Initialize batch mode analyzer.

Parameters:

resultsList[Any]

List of ZarrJobResult objects

mmpp_refAny

Reference to MMPP instance

param results:

type results:

list[Any]

param mmpp_ref:

type mmpp_ref:

Any

compute_modes(dset=None, parallel=True, max_workers=None, **kwargs)[source]

Compute FMR modes for all results in batch.

Return type:

dict[str, Any]

Parameters:

dsetstr, default=None

Dataset name to analyze (default: auto-select largest m dataset)

parallelbool, default=True

Whether to use parallel processing

max_workersOptional[int]

Maximum number of worker threads (None for auto)

**kwargsdict

Additional arguments to pass to mode computation

Returns:

: Dict[str, Any]

Summary of batch mode computation results

param dset:

type dset:

Optional[str]

param parallel:

type parallel:

bool

param max_workers:

type max_workers:

Optional[int]

analyze_all(**kwargs)[source]

Analyze all modes for all results in batch.

Return type:

dict[str, Any]

Parameters:

**kwargsdict

Arguments to pass to mode analysis

Returns:

: Dict[str, Any]

Summary of batch mode analysis results

Usage Examples

Basic Batch Operations

import mmpp as mp

# Load simulations
op = mp.open("/path/to/simulations")

# Get batch operations for all results
batch = op[:]

# Compute modes for all results
summary = batch.fft.modes.compute_modes(dset="m_z5-8")

print(f"Computed modes for {summary['successful']} results")

Parallel Processing

# Use parallel processing for faster computation
summary = batch.fft.modes.compute_modes(
    dset="m_z5-8",
    parallel=True,
    max_workers=4
)

print(f"Total time: {summary['total_time']:.2f}s")
print(f"Average per result: {summary['average_time_per_result']:.2f}s")

Comprehensive Reports

# Generate comprehensive analysis report
report = batch.prepare_report(
    spectrum=True,
    modes=True,
    parallel=True
)

print(f"Analyzed {report['total_results']} results")