FFT Main Module
Main FFT Analysis Module
Core FFT analysis functionality for time series data from micromagnetic simulations.
- class mmpp.fft.main.FFTConfig(window_function='hann', overlap=0.5, nfft=None, detrend='linear', scaling='density', engine='scipy', cache_results=True, frequency_range=None, zero_padding=True)[source]
Bases:
object
Configuration for FFT analysis operations.
- Parameters:
- __init__(window_function='hann', overlap=0.5, nfft=None, detrend='linear', scaling='density', engine='scipy', cache_results=True, frequency_range=None, zero_padding=True)
- class mmpp.fft.main.FFTResult(frequencies, power_spectrum, phase_spectrum, complex_spectrum, metadata, config)[source]
Bases:
object
Container for FFT analysis results.
- Parameters:
- class mmpp.fft.main.FFTAnalyzer(results, mmpp_instance=None)[source]
Bases:
object
Advanced FFT analyzer for micromagnetic simulation data.
Inherits functionality from MMPP plotting system and extends it with comprehensive frequency domain analysis capabilities.
- __init__(results, mmpp_instance=None)[source]
Initialize FFT analyzer.
Parameters:
- resultsList or single result
ZarrJobResult objects to analyze
- mmpp_instanceMMPP, optional
Reference to parent MMPP instance
- configure(**kwargs)[source]
Configure FFT analysis settings.
- Return type:
Parameters:
- **kwargsAny
Configuration options matching FFTConfig fields
Returns:
: FFTAnalyzer
Self for method chaining
- analyze_single(result_index=0, dataset_name=None, comp=None, average=None, time_range=None, **kwargs)[source]
Analyze a single result with FFT.
- Return type:
Parameters:
- result_indexint, optional
Index of result to analyze (default: 0)
- dataset_namestr, optional
Dataset name (default: auto-select largest m dataset)
- compUnion[str, int], optional
Component to analyze
- averagetuple, optional
Axes to average over
- time_rangetuple, optional
Time range to analyze
- **kwargsAny
Additional configuration options
Returns:
: FFTResult
FFT analysis results
Main Classes
FFTAnalyzer
- class mmpp.fft.main.FFTAnalyzer(results, mmpp_instance=None)[source]
Bases:
object
Advanced FFT analyzer for micromagnetic simulation data.
Inherits functionality from MMPP plotting system and extends it with comprehensive frequency domain analysis capabilities.
- __init__(results, mmpp_instance=None)[source]
Initialize FFT analyzer.
Parameters:
- resultsList or single result
ZarrJobResult objects to analyze
- mmpp_instanceMMPP, optional
Reference to parent MMPP instance
- configure(**kwargs)[source]
Configure FFT analysis settings.
- Return type:
Parameters:
- **kwargsAny
Configuration options matching FFTConfig fields
Returns:
: FFTAnalyzer
Self for method chaining
- analyze_single(result_index=0, dataset_name=None, comp=None, average=None, time_range=None, **kwargs)[source]
Analyze a single result with FFT.
- Return type:
Parameters:
- result_indexint, optional
Index of result to analyze (default: 0)
- dataset_namestr, optional
Dataset name (default: auto-select largest m dataset)
- compUnion[str, int], optional
Component to analyze
- averagetuple, optional
Axes to average over
- time_rangetuple, optional
Time range to analyze
- **kwargsAny
Additional configuration options
Returns:
: FFTResult
FFT analysis results
FFTResult
Usage Examples
Basic FFT Analysis
import mmpp
# Open dataset
db = mmpp.open('/path/to/data')
results = db.find(solver=3)
# Get first result and analyze FFT
analyzer = results[0].fft.main.FFTAnalyzer()
fft_result = analyzer.analyze_single(0, 'm_z11')
print(f"Frequency range: {fft_result.frequencies[0]:.2f} - {fft_result.frequencies[-1]:.2f} GHz")
print(f"Peak frequency: {fft_result.frequencies[fft_result.power.argmax()]:.2f} GHz")
Batch FFT Analysis
# Analyze multiple datasets
results = analyzer.analyze_all('m_z11')
for i, result in enumerate(results):
peak_freq = result.frequencies[result.power.argmax()]
print(f"Layer {i}: Peak at {peak_freq:.2f} GHz")