| name | viv-analysis |
| description | Assess vortex-induced vibration (VIV) for risers and tubular members with natural frequency and safety factor calculations. Use for VIV susceptibility analysis, natural frequency calculation, vortex shedding assessment, and tubular member fatigue from VIV. |
| type | reference |
| updated | 2026-01-07 |
| capabilities | [] |
| requires | [] |
| tags | [] |
| scripts_exempt | true |
| category | engineering |
| version | 1.0.0 |
Viv Analysis
When to Use
- VIV analysis for risers and pipelines
- Pipeline free-span VIV screening and fatigue prechecks
- Natural frequency calculation for tubular members
- Vortex shedding frequency analysis
- VIV fatigue damage assessment
- Tubular member VIV screening
- Safety factor evaluation against VIV criteria
- Pressure wall prechecks when VIV span inputs depend on pipe wall/section properties
Prerequisites
- Python environment with
digitalmodel package installed
- Member geometry and material properties
- Current velocity profiles
- For risers: tension distribution along length
Python API
Natural Frequency Calculation
from digitalmodel.subsea.viv_analysis.viv_analysis import VIVAnalysis
from digitalmodel.subsea.viv_analysis.viv_tubular_members import VIVTubularMembers
viv = VIVAnalysis()
member = {
"length": 50.0,
*See sub-skills for full details.*
```python
diameter = 0.5
current_velocity = 1.5
strouhal = 0.2
shedding_freq = viv.vortex_shedding_frequency(
diameter=diameter,
velocity=current_velocity,
strouhal_number=strouhal
*See sub-skills for full details.*
```python
from digitalmodel.subsea.viv_analysis.viv_tubular_members import VIVTubularMembers
tubular = VIVTubularMembers()
member_props = {
"name": "Brace1",
"outer_diameter": 0.324,
*See sub-skills full details.*
```python
digitalmodel.subsea.viv_analysis.viv_fatigue VIVFatigue
viv_fatigue = VIVFatigue()
stress_range = viv_fatigue.calculate_stress_range(
amplitude=,
diameter=,
*See sub-skills full details.*
For subsea pipeline span work, treat VIV screening a coupled structural/fatigue workflow rather than a standalone vortex-shedding calculation:
Establish pipe section properties the actual design basis: OD, nominal WT, corrosion allowance, mill tolerance, grade/SMYS, weld factor, temperature factor, code/design factor.
Run a pressure-wall sanity check before relying on the section span/fatigue calculations. When using `digitalmodel`, prefer the pipe-capacity implementation under `src/digitalmodel/structural/pipe_capacity/` document the equation branch used.
Use minimum/corroded wall span stress fatigue section properties unless the governing code project basis specifies another convention.
Then evaluate span natural frequencies, reduced velocity, lock- susceptibility, stress , fatigue damage, acceptance criteria under DNV-RP-F105 / DNV-ST-F101 project-specific rules.
Do present pressure containment final wall adequacy; collapse, propagation buckling, local buckling, installation, hydrotest, thermal/strain, on-bottom stability, VIV/free-span fatigue may still govern.
See `references/pipeline-span-pressure-wall-precheck.md` the session-derived digitalmodel pressure-wall pattern / psi example.
| Class | Purpose |
|-------|---------|
| `VIVAnalysis` | Main VIV analysis router |
| `VIVTubularMembers` | Tubular member assessment |
| `VIVAnalysisComponents` | Component-level analysis |
| `VIVFatigue` | VIV-induced fatigue damage |
- [catenary-riser](../catenary-riser/SKILL.md) - Riser configuration
- [fatigue-analysis](../fatigue-analysis/SKILL.md) - VIV fatigue damage
- [structural-analysis](../structural-analysis/SKILL.md) - Stress verification
- DNV-RP-C205: Environmental Conditions Environmental Loads
- DNV-RP-F105: Free Spanning Pipelines
- Blevins, R.D.: Flow-Induced Vibration
- [Best Practices](best-practices/SKILL.md)
- [Version Metadata](version-metadata/SKILL.md)
- [[] - -01-07](--01-07/SKILL.md)
- [ Natural Frequency Analysis (+)](-natural-frequency-analysis/SKILL.md)
- [Strouhal Number (+)](strouhal-number/SKILL.md)
- [Complete VIV Screening Workflow](complete-viv-screening-workflow/SKILL.md)
- [Natural Frequencies JSON (+)](natural-frequencies-json/SKILL.md)
- [Design Code References](design-code-references/SKILL.md)