aqwa-output

AQWA output formats (RAO CSV, coefficient JSON), LIS parsing conventions, result validation, benchmark comparison vs OrcaWave, and validation criteria.

5 stars

Best use case

aqwa-output is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

AQWA output formats (RAO CSV, coefficient JSON), LIS parsing conventions, result validation, benchmark comparison vs OrcaWave, and validation criteria.

Teams using aqwa-output should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/output/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/engineering/marine-offshore/aqwa/output/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/output/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How aqwa-output Compares

Feature / Agentaqwa-outputStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

AQWA output formats (RAO CSV, coefficient JSON), LIS parsing conventions, result validation, benchmark comparison vs OrcaWave, and validation criteria.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# AQWA Output Skill

Output formats, LIS parsing conventions, result validation, and benchmark comparison for ANSYS AQWA. See [aqwa](../SKILL.md) for Python API.

## Output Formats

### RAO CSV Format

```csv
frequency_rad_s,direction_deg,surge_amp,surge_phase,sway_amp,sway_phase,heave_amp,heave_phase,roll_amp,roll_phase,pitch_amp,pitch_phase,yaw_amp,yaw_phase
0.100,0.0,0.985,178.2,0.000,0.0,1.023,-2.5,0.000,0.0,0.156,175.8,0.000,0.0
0.100,90.0,0.000,0.0,0.978,175.4,1.015,-3.2,2.345,-8.5,0.000,0.0,0.012,92.1
```

### Coefficient Matrices JSON

```json
{
  "frequencies_rad_s": [0.1, 0.2, 0.3, 0.5, 0.8],
  "added_mass": { "0.1": [[1.2e6, 0, 0, 0, 1.5e7, 0], ...] },
  "damping": { "0.1": [[2.5e5, 0, 0, 0, 3.2e6, 0], ...] }
}
```

## LIS Parsing Conventions

- `ADDED  MASS` header has **double space** — use whitespace normalization for matching
- WAVE FREQUENCY line appears ~23 lines before DAMPING section — search backward 30 lines
- Matrix rows in added mass/damping sections are separated by blank lines
- First RAO section = displacement RAOs; subsequent sections = velocity/acceleration (skip these)

## Post-Processing & Validation

```python
from digitalmodel.aqwa.aqwa_postprocess import AqwaPostProcess
from digitalmodel.aqwa.aqwa_validator import AqwaValidator

postprocess = AqwaPostProcess()
postprocess.load("aqwa_results/vessel.LIS")
postprocess.generate_report(
    output_file="results/aqwa_report.html",
    include=["summary", "rao_plots", "coefficient_tables", "drift_force_plots"]
)

validator = AqwaValidator()
validator.load("aqwa_results/vessel.LIS")
results = validator.validate()
# Check: symmetry_check, low_frequency_check, radiation_check

if not validator.check_positive_definite_damping():
    print("Warning: Damping matrix not positive definite")
if not validator.check_symmetric_added_mass():
    print("Warning: Added mass matrix not symmetric")

kk_result = validator.kramers_kronig_check()
```

## Benchmark Comparison vs OrcaWave

```yaml
aqwa_analysis:
  benchmark_comparison:
    flag: true
    aqwa_results: "aqwa_results/vessel.LIS"
    orcawave_results: "orcawave_results/vessel.sim"
    tolerance: 0.05
    peak_threshold: 0.10
    output:
      comparison_report: "results/aqwa_orcawave_comparison.html"
      peak_analysis: "results/peak_values_comparison.html"
```

### Standalone Comparison Scripts

```bash
# Peak-focused comparison
cd docs/modules/orcawave/L01_aqwa_benchmark
python run_comparison_peaks.py

# Heading-by-heading comparison
python run_proper_comparison.py
```

### Module-Level Integration

```python
from digitalmodel.diffraction.aqwa_converter import AQWAConverter

converter = AQWAConverter(
    analysis_folder="docs/modules/orcawave/L01_aqwa_benchmark",
    vessel_name="SHIP_RAOS"
)
aqwa_results = converter.convert_to_unified_schema(water_depth=30.0)
# Use with DiffractionComparator for full benchmark analysis
```

## Benchmark Validation Criteria

**Engineering Standard Practice:**
- 5% tolerance applies to **peak and significant values only**
- "Significant" = RAO magnitude >= 10% of peak value
- Pass requires 90% of significant points within 5% tolerance
- Low-amplitude responses (<10% of peak) excluded from validation

**Typical Peak Values by DOF:**
- **Heave**: 0.9-1.1 m/m (near natural period)
- **Pitch**: 0.4-0.6 deg/m (near natural period)
- **Roll**: 2-5 deg/m (beam seas, low frequency)
- **Surge**: 0.8-1.0 m/m (following seas)
- **Sway**: 0.8-1.0 m/m (beam seas)
- **Yaw**: Small (<0.1 deg/m for symmetric vessels)

## Related Skills

- [aqwa](../SKILL.md) — Hub skill with Python API
- [aqwa/input](../input/SKILL.md) — Input formats and configurations
- [aqwa/reference](../reference/SKILL.md) — Solver stages and OPTIONS keywords
- [orcawave/analysis](../../orcawave/analysis/SKILL.md) — OrcaWave benchmark validation

Related Skills

orcawave-aqwa-benchmark

5
from vamseeachanta/workspace-hub

Cross-validation specialist for comparing OrcaWave and AQWA diffraction analysis results. Provides statistical comparison, peak value validation, and automated benchmark reporting for hydrodynamic coefficient verification.

aqwa-reference

5
from vamseeachanta/workspace-hub

AQWA solver stages (RESTART), OPTIONS keywords, FIDP/FISK external damping/stiffness cards, backend bugs, and MCP tool integration patterns.

aqwa-batch-execution

5
from vamseeachanta/workspace-hub

Run ANSYS AQWA analyses in batch/headless mode on Linux. Covers CLI execution, DAT input file structure, multi-stage analysis chaining, output file parsing, failure diagnosis, and HPC job scheduling.

aqwa-analysis

5
from vamseeachanta/workspace-hub

Integrate with AQWA hydrodynamic software for RAO computation, damping analysis, and coefficient extraction. Hub skill — delegates to aqwa-input, aqwa-output, aqwa-reference for details.

repo-structure-gitignore-enforcement-root-level-output-artifacts

5
from vamseeachanta/workspace-hub

Sub-skill of repo-structure: Gitignore Enforcement: Root-Level Output Artifacts.

instrument-data-allotrope-output-format-selection

5
from vamseeachanta/workspace-hub

Sub-skill of instrument-data-allotrope: Output Format Selection.

hardware-assessment-output-schema-v10

5
from vamseeachanta/workspace-hub

Sub-skill of hardware-assessment: Output Schema (v1.0).

orcawave-to-orcaflex-supported-output-formats

5
from vamseeachanta/workspace-hub

Sub-skill of orcawave-to-orcaflex: Supported Output Formats (+1).

orcawave-aqwa-benchmark-standard-tolerances

5
from vamseeachanta/workspace-hub

Sub-skill of orcawave-aqwa-benchmark: Standard Tolerances (+1).

orcawave-aqwa-benchmark-standard-test-suite

5
from vamseeachanta/workspace-hub

Sub-skill of orcawave-aqwa-benchmark: Standard Test Suite.

orcawave-aqwa-benchmark-single-page-html-report-structure

5
from vamseeachanta/workspace-hub

Sub-skill of orcawave-aqwa-benchmark: Single-Page HTML Report Structure (+3).

orcawave-aqwa-benchmark-html-report-structure

5
from vamseeachanta/workspace-hub

Sub-skill of orcawave-aqwa-benchmark: HTML Report Structure (+1).