Receber por email
← Voltar para o catálogo

orcaflex-model-generator

Gere modelos OrcaFlex a partir de templates utilizando montagem de componentes.

54estrelas
Atualizado há 8 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add diegosouzapw/awesome-omni-skill

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/orcaflex-model-generator-diegosouzapw/svg)](https://www.skillteca.com.br/skills/orcaflex-model-generator-diegosouzapw)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

OrcaFlex Model Generator Skill

ABOUTME: Generate complete OrcaFlex models using component assembly approach - build models from pre-validated components (vessels, lines, materials, environments) via lookup tables instead of manually editing template files.

Version Metadata

version: 1.0.0
python_min_version: '3.10'
dependencies:
  orcaflex-file-conversion: '>=1.0.0,<2.0.0'
orcaflex_version: '>=11.0'
compatibility:
  tested_python:
  - '3.10'
  - '3.11'
  - '3.12'
  - '3.13'
  os:
  - Windows
  - Linux
  - macOS

Changelog

[1.0.0] - 2026-01-07

Added:

  • Initial version metadata and dependency management
  • Semantic versioning support
  • Compatibility information for Python 3.10-3.13

Changed:

  • Enhanced skill documentation structure

Overview

This skill provides template-based OrcaFlex model generation using a component assembly approach. Instead of manually editing model files, you configure models by selecting pre-validated components from lookup tables.

Key Capabilities

  • ✅ Component Assembly: Build models from modular, reusable components
  • ✅ Lookup Tables: Pre-defined vessels, lines, materials, environments
  • ✅ Simple Configuration: YAML-based with minimal parameters
  • ✅ Comprehensive Templates: Risers, pipelines, umbilicals, moorings, installations
  • ✅ Validated: All components meet engineering standards (DNV, API, ISO)
  • ✅ Integrated: Works with converter, runner, post-processor

When to Use This Skill

Use this skill when you need to:

  1. Generate Standard Models: Create OrcaFlex models for risers, pipelines, umbilicals
  2. Parametric Studies: Generate multiple models with varying parameters
  3. Quick Feasibility: Rapidly create models for initial assessments
  4. Project Kickstart: Start new projects with proven configurations
  5. Training: Learn OrcaFlex modeling with validated templates
  6. Design Optimization: Test multiple configurations efficiently

Quick Start

1. List Available Components

from digitalmodel.modules.orcaflex.model_generator import OrcaFlexModelGenerator

generator = OrcaFlexModelGenerator()

# List vessels
vessels = generator.list_components("vessels")
print(f"Available vessels: {vessels}")
# Output: ['FPSO_P50', 'FPSO_P70', 'Drillship_DP3', ...]

# List risers
risers = generator.list_components("lines/risers")
print(f"Available risers: {risers}")
# Output: ['SCR_10inch_X65', 'SCR_12inch_X65', 'LWR_12inch', ...]

# List environments
envs = generator.list_components("environment")
print(f"Available environments: {envs}")
# Output: ['GoM_100yr', 'GoM_10yr', 'NorthSea_100yr', ...]

2. View Component Details

# Get vessel specifications
vessel_spec = generator.get_component("vessels", "FPSO_P50")
print(f"FPSO P50 Length: {vessel_spec['LOA']}m")
print(f"Displacement: {vessel_spec['Displacement']}t")

# Get riser specifications
riser_spec = generator.get_component("lines/risers", "SCR_10inch_X65")
print(f"OD: {riser_spec['OD']}m")
print(f"Wall Thickness: {riser_spec['WallThickness']}m")
print(f"Material: {riser_spec['Material']}")

3. Create Configuration

# my_scr_config.yml
model:
  type: "scr_catenary"
  name: "GoM_SCR_Analysis_001"

vessel:
  lookup: "FPSO_P50"          # From component library
  position: {x: 0, y: 0, z: 0}

riser:
  lookup: "SCR_10inch_X65"    # From component library
  length: 1500
  segments: 150

environment:
  lookup: "GoM_100yr"         # From component library
  water_depth: 1200

analysis:
  type: "dynamic"
  duration: 10800
  time_step: 0.1

4. Generate Model

# Generate model
model = generator.generate_from_template(
    template="risers/scr_catenary",
    config="my_scr_config.yml",
    output="my_scr_model.yml"
)

# Validate
validation = generator.validate(model)
if validation['is_valid']:
    print("✅ Model is valid")
else:
    print("❌ Validation errors:", validation['errors'])

Available Templates

Risers (High Priority - Implemented)

| Template | Description | Status | |----------|-------------|--------| | risers/scr_catenary | Steel Catenary Riser | ✅ Ready | | risers/ttr_top_tensioned | Top-Tensioned Riser | 📋 Planned | | risers/lazy_wave | Lazy Wave Riser | 📋 Planned | | risers/pliant_wave | Pliant Wave Riser | 📋 Planned | | risers/hybrid_riser | Hybrid Riser System | 📋 Planned |

Pipeline Installation (High Priority - Planned)

| Template | Description | Status | |----------|-------------|--------| | pipeline_installation/s_lay | S-Lay Method | 📋 Planned | | pipeline_installation/j_lay | J-Lay Method | 📋 Planned | | pipeline_installation/reel_lay | Reel-Lay Method | 📋 Planned | | pipeline_installation/tow_installation | Pipeline Tow & Pull-in | 📋 Planned |

Umbilical Installation (High Priority - Planned)

| Template | Description | Status | |----------|-------------|--------| | umbilical_installation/static_installation | Static Umbilical | 📋 Planned | | umbilical_installation/dynamic_umbilical | Dynamic Umbilical | 📋 Planned | | umbilical_installation/bundle_installation | Umbilical Bundle | 📋 Planned |

Additional Categories

  • Mooring Systems: CALM, SALM, spread, turret, single point
  • Structure Installation: Jacket, topside, subsea, manifold
  • Towing Operations: Platform, pipeline, barge
  • Heavy Lift: Dual crane, subsea, tandem
  • ROV Operations: Inspection, intervention, construction
  • Specialized: Riser pull-in, flexjoint, touchdown, VIV

Component Library

Vessels

Location: docs/modules/orcaflex/templates/components/vessels/

| Component ID | Type | LOA (m) | Displacement (t) | Description | |--------------|------|---------|------------------|-------------| | FPSO_P50 | FPSO | 300 | 200,000 | Standard FPSO deepwater | | FPSO_P70 | FPSO | 320 | 250,000 | Large FPSO ultra-deepwater | | FPSO_P30 | FPSO | 270 | 150,000 | Compact FPSO shallow water | | DS_DP3_7GEN | Drillship | 228 | 90,000 | 7th gen DP3 drillship | | PLV_SLAY_LARGE | Pipelay | 185 | 45,000 | Large S-lay vessel |

Risers

Location: docs/modules/orcaflex/templates/components/lines/risers.csv

| Component ID | OD (m) | Material | Max Tension (kN) | Description | |--------------|--------|----------|------------------|-------------| | SCR_10inch_X65 | 0.2731 | X65_STEEL | 2,500 | Standard 10-inch SCR | | SCR_12inch_X65 | 0.3239 | X65_STEEL | 3,500 | 12-inch SCR | | SCR_10inch_X70 | 0.2731 | X70_STEEL | 2,700 | High strength X70 | | LWR_12inch | 0.3239 | X65_STEEL | 3,500 | Lazy wave riser |

Materials

Location: docs/modules/orcaflex/templates/components/materials/

| Component ID | Grade | Yield (MPa) | UTS (MPa) | Density (kg/m³) | |--------------|-------|-------------|-----------|-----------------| | X65_STEEL | X65 | 448 | 531 | 7850 | | X70_STEEL | X70 | 483 | 565 | 7850 | | X80_STEEL | X80 | 552 | 621 | 7850 | | TITANIUM_GR5 | Ti-6Al-4V | 880 | 950 | 4430 |

Environment

Location: docs/modules/orcaflex/templates/components/environment/

| Component ID | Hs (m) | Tp (s) | Current (m/s) | Return Period | |--------------|--------|--------|---------------|---------------| | GoM_100yr | 14.5 | 15.0 | 1.5 | 100-year | | GoM_10yr | 10.2 | 12.5 | 1.2 | 10-year | | NorthSea_100yr | 16.8 | 16.5 | 1.8 | 100-year | | Brazil_100yr | 13.2 | 14.8 | 1.4 | 100-year |

Usage Examples

Example 1: Basic SCR Model

from digitalmodel.modules.orcaflex.model_generator import generate_model

# Simple one-liner
model = generate_model(
    template="risers/scr_catenary",
    config={
        'model': {'name': 'Basic_SCR'},
        'vessel': {'lookup': 'FPSO_P50'},
        'riser': {'lookup': 'SCR_10inch_X65', 'length': 1200},
        'environment': {'lookup': 'GoM_1yr', 'water_depth': 1000},
        'analysis': {'type': 'static'}
    },
    output="basic_scr.yml"
)

Example 2

Compartilhar X LinkedIn