Orcaflex Batch Manager
Wiki Context (query before execution)
Before starting a batch simulation campaign, query the wiki for relevant domain knowledge:
bash scripts/knowledge/wiki-query-context.sh "OrcaFlex batch simulation" --domains engineering,marine-engineering
Check results for: solver settings, convergence guidance, known pitfalls, and related standards.
Log consulted wiki pages in your output per the retrieval contract (#2208).
When to Use
- Running large simulation campaigns (100+ cases)
- Parallel processing of multiple OrcaFlex models
- Sensitivity studies with many parameter combinations
- Operability matrices covering many sea states
- Multi-seed Monte Carlo simulations
- Overnight batch processing with monitoring
Python API
Basic Batch Processing
from digitalmodel.orcaflex.universal.batch_processor import BatchProcessor
from pathlib import Path
def run_batch(input_dir: str, output_dir: str, max_workers: int = 20):
"""
Run batch processing on OrcaFlex models.
Args:
input_dir: Directory containing model files
*See sub-skills for full details.*
### Adaptive Parallel Processing
```python
from digitalmodel.orcaflex.universal.batch_processor import BatchProcessor
from pathlib import Path
import psutil
class AdaptiveBatchProcessor(BatchProcessor):
"""Batch processor with adaptive resource management."""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
*See sub-skills for full details.*
### Chunk-Based Processing
```python
from digitalmodel.orcaflex.universal.batch_processor import BatchProcessor
from pathlib import Path
import time
def process_in_chunks(
input_dir: str,
output_dir: str,
chunk_size: int = 50,
pause_seconds: int = 5
*See sub-skills for full details.*
### Progress Tracking and Checkpoints
```python
from digitalmodel.orcaflex.universal.batch_processor import BatchProcessor
from pathlib import Path
import json
import time
class CheckpointBatchProcessor(BatchProcessor):
"""Batch processor with checkpoint save/restore."""
def __init__(self, checkpoint_file: str = "batch_checkpoint.json", **kwargs):
*See sub-skills for full details.*
### File Size Optimization
```python
from pathlib import Path
import os
def sort_by_file_size(files: list, reverse: bool = True) -> list:
"""
Sort files by size for optimal processing order.
Processing large files first with fewer workers,
then small files with more workers.
*See sub-skills for full details.*
```python
from dataclasses import dataclass, field
from typing import Dict, List
import time
import json
@dataclass
class BatchMetrics:
"""Track batch processing performance metrics."""
*See sub-skills for full details.*
- [orcaflex-modeling](../orcaflex-modeling/SKILL.md) - Run OrcaFlex simulations
- [orcaflex-operability](../orcaflex-operability/SKILL.md) - Multi-sea-state campaigns
- [orcaflex-post-processing](../orcaflex-post-processing/SKILL.md) - Extract results
- [orcaflex-results-comparison](../orcaflex-results-comparison/SKILL.md) - Compare results
- Python concurrent.futures documentation
- psutil system monitoring
- Source: `src/digitalmodel/modules/orcaflex/universal/batch_processor.py`
- Source: `src/digitalmodel/modules/orcaflex/orcaflex_parallel_analysis.py`
- [Basic Batch Configuration (+1)](basic-batch-configuration/SKILL.md)
- [Resource Management (+2)](resource-management/SKILL.md)
- [Error Handling](error-handling/SKILL.md)
- [Version Metadata](version-metadata/SKILL.md)
- [[1.0.0] - 2026-01-17](100-2026-01-17/SKILL.md)
- [Parallel Execution (+1)](parallel-execution/SKILL.md)
- [Batch Results JSON (+1)](batch-results-json/SKILL.md)