API Reference¶
This section contains the complete API documentation for Cavity HOOMD, including all components for time-varying coupling, analysis, control systems, and simulation management.
Cavity MD Module (hoomd.cavitymd)¶
The main cavity molecular dynamics package providing forces, variants, analysis tools, controllers, and simulation frameworks.
Forces¶
The CavityForce class implements the cavity-molecule coupling force with support for time-varying coupling through HOOMD variants. DipoleResponseForce handles linear response measurements, and PerturbationForce applies external perturbations for FDR analysis.
Coupling Variants¶
Time-dependent coupling protocols for dynamic coupling experiments.
Basic Variants¶
ConstantVariant: Fixed coupling strength throughout simulation.
StepVariant: Step change at specified time, enabling coupling switching experiments.
Periodic Variants¶
PeriodicVariant: Sinusoidal modulation of coupling strength.
SquareWaveVariant: Square wave modulation with controllable duty cycle and frequency.
Decay Variants¶
ExponentialDecayVariant: Exponential decay from initial to target value.
DecayingSquareWaveVariant: Square wave with exponentially decaying amplitude.
Adaptive Variants¶
AdaptiveSquareWaveVariant: Square wave with temperature-dependent amplitude adaptation.
ExponentialWaveVariant: Exponential modulation patterns.
Scaling Variants¶
LambdaScaledVariant: Automatic scaling by cavity frequency for physical units.
Simulation Framework¶
Complete simulation orchestration with comprehensive parameter management.
CavityMDSimulation: High-level simulation framework providing:
Smart cavity particle handling
Automatic thermostat configuration
Time-varying coupling setup
Comprehensive analysis and logging
Parameter validation and error checking
SLURM integration for HPC environments
AdaptiveTimestepUpdater: Dynamic timestep adjustment for stability and performance.
Updaters¶
CavityParticleDisplacer: Handles cavity mode particle positions and periodic boundary conditions.
HarmonicBondReset: One-time harmonic bond reinitialization for diatomic molecules.
Controllers¶
Advanced control systems for temperature management and parameter optimization.
DiffEqController: Differential equation-based temperature control using first-order dynamics:
SimpleSetpointController: Direct bath temperature setpoint control with optional ramping.
PIDControl: Classical PID controller with integral windup protection and derivative filtering:
AdaptiveMPCController: Model Predictive Control with online parameter adaptation via recursive least squares.
See Controllers for detailed usage and comparison.
Analysis and Tracking¶
Comprehensive monitoring and analysis capabilities for cavity MD simulations.
Timing Utilities¶
Status: Simulation status tracking and reporting.
ElapsedTimeTracker: Precise elapsed time tracking for time-based output triggers.
TimestepFormatter: Format timestep information for display and logging.
Energy and Performance Tracking¶
EnergyTracker: Comprehensive energy component monitoring with conservation validation:
Molecular kinetic and potential energy
Cavity photon energy
Interaction energy
Thermostat reservoir energy
Total energy conservation testing
PerformanceTracker: Simulation performance metrics (TPS, ns/day, GPU utilization).
TemperatureTracker: Multi-mode temperature decomposition:
Translational, rotational, vibrational temperatures
Harmonic fictive temperature
LJ+Coulombic fictive temperature
Kinetic temperature
Correlation Analysis¶
FieldAutocorrelationTracker: Density field autocorrelation F(k,t) for intermediate scattering function analysis.
AutocorrelationTracker: General-purpose autocorrelation function computation.
CavityModeTracker: Track cavity mode properties (amplitude, frequency, energy).
FDR Analysis¶
DipoleMomentFDRTracker: Fluctuation-dissipation ratio analysis for dipole moment:
Measures violations of equilibrium fluctuation-dissipation theorem for effective temperature determination.
Data Management¶
HDF5-based observable output system with real-time access.
ObservableWriter: Unified HDF5 output with SWMR (Single Writer Multiple Reader) mode:
Hierarchical organization by observable type
Chunked storage with compression
Thread-safe concurrent read access during simulation
10-100x smaller file sizes vs text output
ObservableReader: Read HDF5 observable data with convenient access patterns.
See Data Management for usage examples.
FDR Temperature Analysis¶
Complete workflow for fluctuation-dissipation ratio temperature measurement.
FDRTemperatureEstimator: Streaming algorithm for single-frequency effective temperature:
FDRIntegration: Seamless integration with CavityMDSimulation framework.
FDRWorkflow: Complete end-to-end FDR analysis pipeline.
See FDR Temperature for detailed examples.
Utilities¶
Core utility functions for physical constants, coordinate transformations, and HPC integration.
|
|
PhysicalConstants: Physical constants in atomic units:
HARTREE_TO_CM_MINUS1: Convert Hartree to wavenumbersBOLTZMANN_AU: Boltzmann constant in a.u.KELVIN_TO_AU: Convert temperature to a.u.FEMTOSEC_TO_AU: Convert time to a.u.
unwrap_positions: Unwrap particle positions across periodic boundaries.
get_slurm_info: Extract SLURM environment information for HPC jobs.
parse_replicas: Parse replica indices from command-line arguments.
Validation¶
Parameter validation and input checking.
Input validation functions ensuring physical consistency and preventing common errors.
Experiment Management¶
High-level experiment orchestration for parameter sweeps and workflows.
ExperimentManager: Coordinate multiple simulations with shared configuration.
ParameterSweep: Automated parameter sweep execution with parallel job management.
Composite Variants¶
Combine multiple coupling protocols.
CompositeVariant: Combine multiple variants with weighted or sequential composition.
State Management¶
StateManager: Checkpoint and restart functionality for long simulations.
Bussi Reservoir Module (hoomd.bussi_reservoir)¶
Thermostats¶
BussiReservoir: Bussi-Parrinello thermostat with reservoir energy tracking:
Efficient canonical ensemble sampling
Energy exchange monitoring with reservoir
Compatible with cavity coupling
GPU-accelerated implementation
The Bussi thermostat provides proper canonical ensemble sampling while tracking energy exchange with the thermal reservoir, essential for energy conservation analysis in cavity-coupled systems.
Key Features Summary¶
Time-Varying Coupling¶
Complete variant system for dynamic coupling experiments:
from hoomd.cavitymd.variants import StepVariant, SquareWaveVariant
from hoomd.cavitymd.forces import CavityForce
# Step switching
coupling_variant = StepVariant(
target_value=0.001,
switch_time_ps=1.0,
time_tracker=time_tracker
)
# Or periodic modulation
coupling_variant = SquareWaveVariant(
amplitude=0.001,
frequency_hz=1e12,
duty_cycle=0.5,
time_tracker=time_tracker
)
cavity_force = CavityForce(
kvector=[0, 0, 1],
couplstr=coupling_variant,
omegac=0.01,
phmass=1.0
)
Advanced Control Systems¶
Multiple controller options for different control objectives:
from hoomd.cavitymd.controllers import PIDControl, DiffEqController
# PID for precise setpoint tracking
pid = PIDControl(
simulation=sim,
target_temperature=100.0,
Kp=1.0, Ki=0.1, Kd=0.05
)
# DiffEq for smooth temperature evolution
diffeq = DiffEqController(
simulation=sim,
signal_name='lj_coulombic_bath',
time_constant_ps=2.0
)
Comprehensive Analysis¶
Built-in analysis tools for monitoring and validation:
from hoomd.cavitymd.analysis import EnergyTracker, TemperatureTracker
from hoomd.cavitymd.data import ObservableWriter
# Energy conservation monitoring
energy_tracker = EnergyTracker(
sim=sim,
forces={'cavity': cavity_force},
thermostats={'bussi': bussi_thermostat},
output_period_ps=0.1
)
# Temperature decomposition
temp_tracker = TemperatureTracker(
sim=sim,
output_period_ps=0.1
)
# Unified HDF5 output
writer = ObservableWriter(
filename='observables.h5',
observables=['energy', 'temperature', 'cavity_mode']
)
GPU Acceleration¶
Optimized CUDA kernels for high performance:
import hoomd
# Automatically uses GPU kernels when available
device = hoomd.device.GPU()
sim = hoomd.Simulation(device=device)
# All cavity forces run on GPU
cavity_force = CavityForce(...) # GPU-accelerated
HDF5 Data Management¶
Modern data output system with real-time access:
from hoomd.cavitymd.data import ObservableWriter
# Single HDF5 file for all observables
writer = ObservableWriter(
filename='sim_data.h5',
swmr_mode=True # Enable live monitoring
)
# Read data while simulation runs
from hoomd.cavitymd.data import ObservableReader
reader = ObservableReader('sim_data.h5')
energies = reader.get_observable('energy/total')
Migration from Previous Versions¶
Module reorganization - New import structure:
# Old imports (still work via compatibility layer)
from hoomd.plugin.cavitymd import CavityForce
# New recommended imports
from hoomd.cavitymd.forces import CavityForce
from hoomd.cavitymd.variants import StepVariant
from hoomd.cavitymd.controllers import DiffEqController
from hoomd.cavitymd.data import ObservableWriter
New features to explore:
Time-varying coupling with complete variant system
Advanced controllers (PID, MPC, DiffEq)
HDF5-based data management
FDR temperature measurement
Comprehensive energy tracking
Multi-mode temperature decomposition
Performance Tips¶
GPU optimization:
Use GPU device for systems with >1000 particles
Enable CUDA-aware MPI for multi-GPU runs
Monitor GPU memory usage for large systems
CPU optimization:
Enable OpenMP threading (set OMP_NUM_THREADS)
Use efficient thermostat combinations
Optimize timestep for your system
Memory management:
Use appropriate output periods to control memory
Enable HDF5 compression for large datasets
Use GSD compression for trajectory files
Clear autocorrelation buffers periodically for long runs
I/O optimization:
Use HDF5 SWMR mode for concurrent access
Batch output operations
Use chunked storage for time-series data
See Performance for detailed optimization strategies.
Cross-References¶
Getting Started: Getting Started
Running Simulations: Running Simulations
Time-Varying Coupling: Time-Varying Coupling
Advanced Controllers: Controllers
FDR Temperature: FDR Temperature
Data Management: Data Management
Theory Background: Introduction