Skip to content
Back to skills

Application 3 Added Mass Convergence Check

ASecurity

'Sub-skill of hydrodynamic-analysis: Application 3: Added Mass Convergence

  • 17 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 9, 2026
developmentpythongo

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add vamseeachanta/workspace-hub --skill application-3-added-mass-convergence-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Application 3 Added Mass Convergence Check?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Application 3 Added Mass Convergence Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vamseeachanta-application-3-added-mass-convergence-check/badge)](https://www.skillsdirectory.com/skills/vamseeachanta-application-3-added-mass-convergence-check)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hydrodynamic-analysis-application-3-added-mass-convergence-check
description: 'Sub-skill of hydrodynamic-analysis: Application 3: Added Mass Convergence
  Check.'
version: 1.0.0
category: engineering
type: reference
scripts_exempt: true
---

# Application 3: Added Mass Convergence Check

## Application 3: Added Mass Convergence Check


```python
def check_added_mass_convergence(
    panel_counts: list,
    added_mass_results: list
) -> dict:
    """
    Check convergence of added mass with panel count.

    Args:
        panel_counts: List of panel counts
        added_mass_results: List of 6x6 added mass matrices

    Returns:
        Convergence assessment
    """
    import plotly.graph_objects as go

    # Check heave added mass convergence
    A33_values = [A[2, 2] for A in added_mass_results]

    # Calculate relative change
    relative_changes = [
        abs(A33_values[i] - A33_values[i-1]) / A33_values[i-1] * 100
        for i in range(1, len(A33_values))
    ]

    # Plot convergence
    fig = go.Figure()

    fig.add_trace(go.Scatter(
        x=panel_counts,
        y=A33_values,
        name='A33 (Heave Added Mass)',
        mode='lines+markers'
    ))

    fig.update_layout(
        title='Added Mass Convergence Study',
        xaxis_title='Panel Count',
        yaxis_title='A33 (tonnes)',
        hovermode='x unified'
    ))

    fig.write_html('reports/added_mass_convergence.html')

    # Convergence criteria: < 1% change
    converged = relative_changes[-1] < 1.0 if relative_changes else False

    return {
        'converged': converged,
        'final_value': A33_values[-1],
        'relative_change_percent': relative_changes[-1] if relative_changes else 0,
        'recommended_panels': panel_counts[-1] if converged else 'Increase further'
    }

# Example
panel_counts = [1000, 2000, 5000, 10000, 15000]
A_results = [
    np.diag([15000, 15000, 45000, 1e6, 1e6, 5e5]),
    np.diag([15000, 15000, 48000, 1e6, 1e6, 5e5]),
    np.diag([15000, 15000, 49500, 1e6, 1e6, 5e5]),
    np.diag([15000, 15000, 50000, 1e6, 1e6, 5e5]),
    np.diag([15000, 15000, 50100, 1e6, 1e6, 5e5])
]

convergence = check_added_mass_convergence(panel_counts, A_results)
print(f"Converged: {convergence['converged']}")
print(f"Recommended panels: {convergence['recommended_panels']}")
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.