diffraction-analysis
Master skill for hydrodynamic diffraction analysis - AQWA, OrcaWave, and BEMRosetta integration
SKILL.md
| Name | diffraction-analysis |
| Description | Master skill for hydrodynamic diffraction analysis - AQWA, OrcaWave, and BEMRosetta integration |
Digital Model - Engineering Asset Lifecycle Management
Sustainable digital models for engineering assets built with sustainable engineering processes and solutions. Single source of truth for offshore, subsea, and marine engineering analysis.
Dedicated to Mark Cerkovnik - Chief Engineer, mentor, and inspiration.
š Capabilities Snapshot
- Lifecycle coverage: fatigue, stress, hydrodynamics, riser & mooring, metocean, vessel systems.
- Digital thread: ASCII-first configs drive FE models, CAD/animations, reports, and QA workflows.
- Data procurement: structured spec library for supplier intelligence across offshore domains.
- Automation ready: modular APIs, CLI tooling, and integration hooks for pipelines & dashboards.
- Validation tooling: cross-check analytical vs. numerical results with repeatable benchmarking.
šÆ Vision
Utilize a single source of ASCII inputs (promoting single source of truth) to generate equivalent analytical models encompassing the complete lifecycle operations of engineering assets:
- Analytical Calculations - Fatigue, stress, hydrodynamics, structural capacity
- Computational Analysis - FEA models, time-domain simulations, frequency analysis
- 3D CAD Models - Automated geometry generation
- 3D Animations - Visual representations of designs
- Drawing Automation - Engineering documentation
š Repository Overview
| Category | Count | Description |
|---|---|---|
| Python Modules | 704+ | Core engineering libraries |
| Test Files | 1,971+ | Comprehensive test coverage |
| Examples | 12+ | Working demonstrations |
| Documentation | 352+ | Technical guides and references |
| Commits | 305+ | Active development history |
š Key Features
ā Single Source of Truth
- ASCII-based input files (.yml, .json, .csv)
- Generate FE models, analytical calculations, 3D CAD, animations, and drawings from one source
- Version-controlled engineering data
ā Modular Architecture
- Import engineering assets using configuration files
- Reusable components across projects
- Standardized naming conventions for cross-team collaboration
ā Analytical QA
- Automated verification of computational results
- Cross-validation between analytical and numerical methods
- Weight checks, load verification, structural capacity validation
ā Industry-Proven Workflows
- 20+ years of hands-on engineering experience
- Validated by 200+ SURF engineers
- Production-ready for offshore and marine projects
š¬ Core Capabilities
Fatigue Analysis Module ā NEW
Comprehensive S-N Curve Database & Analysis Tools
- 221 S-N curves from 17 international standards:
- DNV (81 curves), BS 7608 (79), ABS (24), BP (25), Norsok (15), Bureau Veritas (14), API (2), Titanium (4)
- Joint types: Plated welded, Tubular, Tubular nodal
- Environments: In Air, Seawater with CP, Free Corrosion
- Advanced plotting: Log-log, linear-log, SCF application, fatigue limit handling
- Data formats: CSV, JSON for easy integration
from digitalmodel.fatigue.sn_curve_plotter import SNCurvePlotter
# Initialize plotter
plotter = SNCurvePlotter()
# Plot S-N curves with stress concentration factor
plotter.plot_curves(
lookup_indices=[64, 175, 183],
scf=2.0,
include_fatigue_limit=True,
plot_type='log-log',
save_path='sn_curves.png'
)
Quick Access:
- Data:
/data/fatigue/ - Examples:
/examples/fatigue/ - Documentation:
/data/fatigue/README.md
CALM Buoy Operational Analysis ā NEW
Interactive Dashboards for Mooring System Design
- Complete reference dataset from Hengyi PMB project (Brunei)
- 13 CSV files covering all operational aspects:
- Environmental conditions (1-yr and 100-yr return periods)
- Mooring line properties and configurations (95mm Studless R3 chain)
- Performance analysis (offsets, tensions, safety factors)
- Vessel design (300k DWT tanker)
- Buoy geometry and hawser systems
- Interactive HTML reports with Plotly visualizations
- Production-ready for OrcaFlex model generation
from digitalmodel.mooring.calm_buoy import CALMBuoyReportGenerator
# Generate interactive HTML dashboard
generator = CALMBuoyReportGenerator("data/mooring/results/calm_buoy/project_specific/south_east_asia_project_1")
report_path = generator.generate_report()
Quick Access:
- Data:
/data/mooring/results/calm_buoy/ - Reports:
/reports/mooring/calm_buoy/ - Documentation:
/docs/PHASE5_CALM_BUOY_OPERATIONAL_ANALYSIS.md - Source:
/src/digitalmodel/mooring/calm_buoy/
Key Features:
- 6-leg CALM buoy with 60° spacing
- Operational (intact & 1 line damaged) scenarios
- Survival (100-year metocean) scenarios
- All safety factors exceed ABS requirements (SF > 2.0)
- Full traceability to design reports
Structural Analysis
Stress Analysis
- Von Mises stress calculations
- Nonlinear stress-strain analysis
- Multi-axial stress states
- Stress concentration factors
Plate Capacity
- Buckling analysis (DNV, API standards)
- Ultimate strength calculations
- Multi-plate structural systems
- Stiffened panel analysis
Time-Series Analysis
Signal Processing
- Fast Fourier Transform (FFT)
- Inverse FFT (iFFT)
- Peak energy frequency identification
- Signal integration and differentiation
- Statistical analysis
Hydrodynamics
- Wave load calculations (DNV-RP-H103)
- Drag and inertia coefficients
- Circular and rectangular section hydrodynamics
- Current profile generation
Engineering Asset Modeling
Risers
- Catenary Risers (SCR) - Simple Catenary Riser analysis
- Lazy Wave Risers (SLWR) - Buoyancy-supported configurations
- Stack-up calculations - Material properties, weights, tensions
Mooring Systems
- SALM - Single Anchor Line Mooring
- Buoy systems - Hydrodynamic analysis
- Anchor design - Load capacity verification
- CALM Buoy Analysis ā NEW - Comprehensive operational datasets with interactive dashboards
Subsea Infrastructure
- Pipelines - On-bottom stability, span analysis
- Flexibles/Umbilicals - Configuration design
- Rigid Jumpers - Structural analysis
Vessels
- Light Service Vessels
- Intervention Vessels
- Ship design calculations
Software Integration
OrcaFlex
- Automated model generation from YAML
- Post-processing and results extraction
- Time-series analysis integration
WAMIT
- Hydrodynamic coefficient processing
- RAO (Response Amplitude Operator) analysis
AQWA
- Model setup automation
- Results post-processing
BEMRosetta
- Boundary element method integration
š¦ Installation
Quick Start (pip)
# Install from GitHub
pip install git+https://github.com/vamseeachanta/digitalmodel.git
# Or clone for development
git clone https://github.com/vamseeachanta/digitalmodel.git
cd digitalmodel
pip install -e .
Using Conda Environment
# Create environment from YAML
conda env create -f dev_tools/environment.yml
conda activate digitalmodel
# Or install package in existing environment
pip install -e .
šÆ Quick Examples
1. Fatigue S-N Curve Analysis
from digitalmodel.fatigue.sn_curve_plotter import SNCurvePlotter
plotter = SNCurvePlotter()
# List available curves
dnv_curves = plotter.list_curves(
curve_type_filter='DNV',
environment_filter='Air'
)
print(dnv_curves)
# Compare multiple standards
plotter.create_comparison_plot(
reference_index=64, # API curve
comparison_indices=[175, 183, 190], # BS, BV, ABS
scf=1.5,
save_path='standard_comparison.png'
)
2. Catenary Riser Analysis
from digitalmodel.tests import test_catenary_riser
# Run analysis with YAML configuration
test_catenary_riser.main()
3. Stress Analysis
from digitalmodel.stress import StressAnalyzer
analyzer = StressAnalyzer()
vm_stress = analyzer.von_mises_stress(
sigma_x=100, # MPa
sigma_y=80,
sigma_z=60,
tau_xy=20,
tau_yz=15,
tau_xz=10
)
print(f"Von Mises Stress: {vm_stress:.2f} MPa")
4. Plate Buckling Analysis
from digitalmodel.analysis.plate_capacity import PlateCapacity
plate = PlateCapacity(
length=2.0, # meters
width=1.0,
thickness=0.02,
material='API 5L X65'
)
capacity = plate.calculate_buckling_capacity()
print(f"Buckling Capacity: {capacity:.2f} kN")
š Documentation
Getting Started
Module Documentation
API Reference
šļø Repository Structure
digitalmodel/
āāā src/digitalmodel/
ā āāā modules/ # 45+ specialized analysis modules
ā āāā aqwa/ # AQWA hydrodynamic analysis
ā āāā blender_automation/ # 3D model generation
ā āāā catenary/ # Catenary calculations
ā āāā data_procurement/ # Data scraping/validation
ā āāā fatigue_analysis/ # S-N curves, damage accumulation
ā āāā marine_engineering/ # Environmental loading, wave spectra
ā āāā mooring/ # Mooring system design
ā āāā orcaflex/ # OrcaFlex simulation interface
ā āāā pipe_capacity/ # Pipe stress calculations
ā āāā reporting/ # Interactive HTML reports
ā āāā ... # 35+ more modules
āāā tests/domains/ # Test suites (mirrors src structure)
āāā specs/modules/ # Module specifications (39 specs)
āāā docs/domains/ # Module documentation
āāā examples/domains/ # Working examples per module
āāā config/ # Configuration files
ā āāā templates/ # Project templates
āāā data/ # Engineering databases
ā āāā fatigue/ # S-N curve library (17 standards)
āāā scripts/ # Automation scripts
āāā .claude/ # AI orchestration (670+ files)
ā āāā agents/ # Agent definitions
ā āāā skills/ # Skill library
ā āāā commands/ # CLI commands
āāā .claude-flow/ # Runtime coordination
š§ Development Tools
Repository Hygiene
# Check for root directory violations
python tools/cleanup-root.py --dry-run
# Automatic cleanup
python tools/cleanup-root.py
# Enable pre-commit hook
git config core.hooksPath .githooks
Testing
# Run all tests
pytest
# Run specific module tests
pytest tests/test_fatigue_analysis.py
# Run with coverage
pytest --cov=digitalmodel --cov-report=html
Code Quality
# Format code
black src/digitalmodel
# Lint
flake8 src/digitalmodel
# Type checking
mypy src/digitalmodel
š Recent Additions
September 2025
- ⨠Fatigue S-N Curve Database - 221 curves from 17 international standards
- ⨠Advanced Plotting Module - Log-log, linear-log, SCF, fatigue limits
- ⨠CLI Tools - Command-line interface for curve analysis
- ⨠Comprehensive Examples - 8 example scripts demonstrating capabilities
Key Features
- Direct GitHub data access for remote projects
- Multiple integration methods (URL, submodule, clone, sparse checkout)
- Production-ready plotting matching industry Excel tools
- Full documentation and API reference
š¤ Contributing
Contributions welcome! This library benefits from:
- 20+ years offshore/subsea engineering experience
- 200+ SURF engineers' collective insights
- Active production use in major projects
How to Contribute
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
š Citation
When using this library in academic or commercial work, please cite:
@software{digitalmodel2025,
author = {Achanta, Vamsee},
title = {Digital Model: Engineering Asset Lifecycle Management},
year = {2025},
publisher = {GitHub},
url = {https://github.com/vamseeachanta/digitalmodel}
}
For the S-N Curve Database specifically:
@dataset{sn_curve_database2025,
author = {Achanta, Vamsee},
title = {Fatigue S-N Curve Database for Offshore Structures},
year = {2025},
publisher = {GitHub},
url = {https://github.com/vamseeachanta/digitalmodel/tree/main/data/fatigue},
note = {221 curves from 17 international standards}
}
š§ Contact & Support
- GitHub Issues: Report bugs or request features
- Email: vamsee.achanta@aceengineer.com
- LinkedIn: Vamsee Achanta
š License
This project is licensed under the MIT License - see the LICENSE file for details.
š Acknowledgments
Dedicated to Mark Cerkovnik - Chief Engineer whose insights shaped major portions of this work and repository.
Special thanks to:
- 200+ SURF engineers who contributed insights over 20 years
- Open-source community for foundational tools
- Industry standards organizations (DNV, API, ABS, BS, Norsok, Bureau Veritas)
š Related Projects
- OrcaFlex - Dynamic analysis software
- WAMIT - Wave analysis program
- AQWA - Hydrodynamic analysis
- BEMRosetta - BEM analysis tool
š Project Status
- ā Active Development - Regular updates and improvements
- ā Production Ready - Used in active engineering projects
- ā Well Documented - 352+ documentation files
- ā Tested - 1,971+ test cases
- ā Industry Validated - 20+ years of engineering experience
Last Updated: September 30, 2025 Version: 2.0.0 Total Commits: 305+