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 for full details.*
```python
from digitalmodel.subsea.viv_analysis.viv_fatigue import VIVFatigue
viv_fatigue = VIVFatigue()
stress_range = viv_fatigue.calculate_stress_range(
amplitude=0.5,
diameter=0.324,
*See sub-skills for full details.*
For subsea pipeline span work, treat VIV screening as a coupled structural/fatigue workflow rather than a standalone vortex-shedding calculation:
1. Establish pipe section properties from the actual design basis: OD, nominal WT, corrosion allowance, mill tolerance, grade/SMYS, weld factor, temperature factor, and code/design factor.
2. Run a pressure-wall sanity check before relying on the section for span/fatigue calculations. When using `digitalmodel`, prefer the pipe-capacity implementation under `src/digitalmodel/structural/pipe_capacity/` and document the equation branch used.
3. Use minimum/corroded wall for span stress and fatigue section properties unless the governing code or project basis specifies another convention.
4. Then evaluate span natural frequencies, reduced velocity, lock-in susceptibility, stress range, fatigue damage, and acceptance criteria under DNV-RP-F105 / DNV-ST-F101 or project-specific rules.
5. Do not present pressure containment as final wall adequacy; collapse, propagation buckling, local buckling, installation, hydrotest, thermal/strain, on-bottom stability, and VIV/free-span fatigue may still govern.
See `references/pipeline-span-pressure-wall-precheck.md` for the session-derived digitalmodel pressure-wall pattern and 12 in / 3000 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 and 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)
- [[1.0.0] - 2026-01-07](100-2026-01-07/SKILL.md)
- [1. Natural Frequency Analysis (+3)](1-natural-frequency-analysis/SKILL.md)
- [Strouhal Number (+2)](strouhal-number/SKILL.md)
- [Complete VIV Screening Workflow](complete-viv-screening-workflow/SKILL.md)
- [Natural Frequencies JSON (+1)](natural-frequencies-json/SKILL.md)
- [Design Code References](design-code-references/SKILL.md)