VANE

User guide

  • Installation
    • Requirements
    • Install the release wheel
    • Install from the repository
    • Optional extras
    • Check the installation
  • Quick start
    • The modal pipeline
    • A reproducible study
    • The command line
    • Where to go next
  • The OpenFAST linearization sweep
    • The operating schedule
    • Preparing a rotor-performance CSV
    • Running the sweep
      • Operating-point acceptance
    • Floating turbines: settling first
      • Finding the controller library
      • Settling a floating turbine faster
      • Missing state-space radiation fits
  • Verifying the trimmed operating point
    • What is compared
    • Torque balance
    • Trim damping
    • Turbine constants
    • Missing data
    • Reference turbines
  • Mode identification
    • Reading linearization files
    • The MBC3 transform
    • Selecting states
    • The eigensolution
    • Participation
    • Physical labels
    • Heavily damped modes
    • Tracking across operating points
    • Crossings and veerings
    • MAC and MACXP
    • Confidence and its calibration
    • Custom trackers and labellers
  • Campbell diagrams
    • From the pipeline
    • Choosing the sweep axis
    • Building a diagram directly
    • Excitation lines and resonance crossings
    • Plotting
    • Export and the command line
    • Azimuth-spread uncertainty
  • Visualization
    • Campbell diagram
    • Damping and stability
    • Frequency and damping together
    • Mode shapes
      • Animated whole-turbine mode shapes
      • Animation in a VTK viewer
    • Reference geometries for support structures
      • Rotor sign conventions
    • Diagnostics
    • Figure style
      • Overriding the style
      • Figure sizes and export
      • Mode families in the Campbell and damping plots
      • Colour-vision deficiency
      • Style reference
    • Exporting figures and reports
  • Plot gallery
    • Campbell diagram
    • Campbell diagram with every mode family
    • Damping ratio
    • Frequency and damping panels
    • Mode participation
    • Phasor wheel
    • Multi-blade components
    • Complex mode shape in 3-D
    • Whole-turbine mode shape
    • MAC matrix
    • Tracking confidence
    • Azimuth coverage
    • Branch review
    • Load-versus-mode map
  • Azimuth averaging
    • 1. Keep the per-azimuth matrices
    • 2. Form the reference mean on the delivered grid
    • 3. Test the azimuth direction
    • 4. Choose the azimuth treatment
    • 5. Estimate the error of each branch
    • 6. Design the azimuth count
    • Limits
  • State-space export
    • The full-order model
    • Modal reduction
    • Load maps
    • Noise covariances and the Kalman model
    • Running the filter
    • Estimator assessments
    • Families across operating points
    • Saving and loading
  • Data sources
    • Linearization files (.lin)
    • Model files (.fst and ElastoDyn)
    • Azimuth sweeps and operating points
    • Rotor-performance schedule (driving the sweep)
    • Test data
  • Coordinate systems, origins and datums
    • Reference frames
    • Azimuth convention
    • State-space layout
    • Degree-of-freedom mapping
      • BeamDyn blade frame
    • Origins and datums
  • Units and conventions
    • Quantities and units
    • Sign and normalization conventions
    • Confidence and uncertainty
    • Tabular export
  • Limitations
    • Input format and rotor
    • Averaged-model assumptions
    • Mode tracking
    • Resonance detection
    • Physical labels for BeamDyn blades
    • Labels on coupled models
    • Driving OpenFAST linearizations
    • Scope

Tutorials

  • Tutorials
    • Tutorial 1: An OpenFAST linearization sweep
      • Set up OpenFAST and the deck
      • The operating curve
      • The code
      • Run it
      • Reading the result
      • Where next
    • Tutorial 2: MBC3 transform and eigenanalysis
      • The code
      • Run it
      • Step by step
      • Exercises
    • Tutorial 3: Mode identification and the Campbell diagram
      • The code
      • Run it
      • Step by step
      • Exercises
    • Tutorial 4: Mode shapes
      • The code
      • Run it
      • Step by step
      • Exercises
    • Tutorial 5: Azimuth averaging and its error
      • The model
      • The code
      • Run it
      • Step by step
      • Exercises
    • Tutorial 6: State-space, Kalman and LPV export
      • The code
      • Run it
      • Step by step
      • Exercises
    • Before you start
    • The synthetic turbine

Theory

  • Theory
    • The pipeline in brief
    • Notation
      • Linearized dynamics and the multi-blade transform
      • Mode identification
      • Floquet analysis of the periodic system
      • Campbell diagram, resonance, and uncertainty
      • Realization, reduction, and observability
      • LPV export, load maps, and estimation
      • References

Reference

  • API reference
    • Package root
    • Pipeline
      • DEFAULT_PARAMETER_RTOL
      • ModalPipeline
      • PipelineResult
    • Study and provenance
      • DiscoveredOperatingPoint
      • Environment
      • OperatingPointProvenance
      • Provenance
      • SourceFile
      • StudyResult
      • discover_operating_points()
      • run_study()
    • Extension protocols
      • Labeler
      • Tracker
    • Command-line interface
      • Parameter
      • Tracking
      • main()
      • modes()
      • campbell()
      • study()
    • I/O
      • LinFile
      • LinFileFormatError
      • NonFiniteLinValue
      • OperatingPointTable
      • find_nonfinite_lin_value()
      • read_lin_file()
      • FastModel
      • FstFileError
      • LinearizationConfig
      • TurbineGeometry
      • fortran_float()
      • read_elastodyn_geometry()
      • read_fst_file()
      • FastInputError
      • FastInputFile
      • MBCResult
      • find_blade_triplets()
      • mbc3_transform()
      • select_states()
      • HydroDynWaveDofSignCorrection
      • HydroDynWaveInputRemap
      • StateSpaceExcitationMetadata
      • apply_hydrodyn_wave_dof_signs()
      • read_state_space_excitation_metadata()
      • remap_hydrodyn_state_space_wave_input()
      • DiagonalDifferenceQTF
      • newman_slow_drift_load()
      • read_wamit_diagonal_difference_qtf()
    • Configuration
      • DofCategory
      • DofInfo
      • classify_dof()
      • LOAD_CATEGORIES
      • OutputCategory
      • OutputInfo
      • classify_output()
      • Coordinate convention
      • FowtGeometry
      • Member
      • SystemType
      • default_geometry()
      • jacket_geometry()
      • monopile_geometry()
      • onshore_geometry()
      • semisub_geometry()
      • spar_geometry()
      • tlp_geometry()
    • Modal analysis
      • RIGID_BODY_FREQUENCY_HZ
      • SPLIT_PAIR_RTOL
      • ModalSolution
      • compute_modes()
      • modes_from_mbc()
      • compute_mac()
      • compute_macxp()
      • match_modes()
      • ParticipationResult
      • compute_participation()
      • participation_from_modes()
      • participation_scale_factors()
      • BiorthogonalParticipation
      • biorthogonal_participation()
      • classify_state_subsystem()
      • DEFAULT_RIGID_BODY_FREQUENCY_HZ
      • LABEL_MISMATCH_PENALTY
      • NEAR_COINCIDENT_RTOL
      • IdentificationResult
      • ModeTrack
      • heavily_damped_modes()
      • identify_modes()
      • rotor_frame_damping_ratios()
      • BEAMDYN_RIGID_RANGE
      • BEAMDYN_SHAPE_TOLERANCE
      • DEFAULT_HEAVILY_DAMPED_THRESHOLD
      • DEFAULT_MIN_KNOWN_PARTICIPATION
      • DRIVETRAIN_ROOT_SHARE
      • LABEL_AMBIGUITY_RATIO
      • TOWER_SUPPORT_SHARE
      • WHIRL_CIRCULARITY_THRESHOLD
      • ModeLabel
      • category_to_label()
      • label_mode()
      • label_modes()
      • label_solution()
      • BranchGroup
      • BranchKind
      • BranchSubWindow
      • attach_branch_groups()
      • detect_branch_groups()
      • resolve_branch_groups()
      • AzimuthSpread
      • azimuth_spread()
      • unified_mode_confidence()
      • ConfidenceCalibration
      • calibrate_confidence()
      • confidence_threshold()
      • recalibrate()
      • AzimuthConvergence
      • azimuth_density_sweep()
      • recommend_azimuth_count()
      • HILL_UNIFORM_RTOL
      • FloquetSolution
      • averaging_error()
      • floquet_modes()
      • monodromy_exponents()
    • Azimuth averaging
      • AzimuthConsistency
      • AzimuthStates
      • BranchAzimuthRisk
      • EigenBasis
      • HarmonicModel
      • TowerPassageFit
      • azimuth_consistency()
      • azimuth_mean()
      • azimuth_tangent()
      • delete_azimuth_state()
      • eigen_basis()
      • fit_harmonics()
      • grid_error_matrix()
      • interval_weights()
      • locate_azimuth_state()
      • pin_azimuth()
      • sideband_correction()
      • subgrid_weights()
      • tower_passage_decay()
      • uniform_azimuths()
      • weight_kernel()
      • zero_azimuth_column()
      • AliasTail
      • AveragingErrorEstimate
      • AzimuthCountRow
      • AzimuthCountTable
      • BranchErrorEstimate
      • CommensurateStep
      • ErrorEstimate
      • GridReport
      • alias_free_azimuth_count()
      • azimuth_count_table()
      • commensurate_time_step()
      • estimate_averaging_error()
      • first_alias_order()
      • predict_branch_shift()
      • trial_branch_shift()
    • Campbell diagram
      • CampbellDiagram
      • build_campbell()
      • campbell_from_solutions()
      • ResonanceCrossing
      • ResonanceSeverity
      • excitation_frequencies()
      • find_resonances()
    • Driving OpenFAST
      • Linearization sweep
    • System identification
      • State space and reduced-order models
      • Periodic systems
      • Loads and frequency response
      • Estimation
    • Visualization
      • HEAVILY_DAMPED_COLOR
      • SEVERITY_COLORS
      • plot_campbell()
      • plot_campbell_panels()
      • plot_campbell_static()
      • plot_damping()
      • plot_damping_static()
      • plot_mode_participation()
      • plot_mode_shape()
      • plot_mode_3d()
      • plot_mode_3d_static()
      • plot_blade_components()
      • plot_blade_components_static()
      • plot_mode_phasor()
      • plot_mode_phasor_animation()
      • plot_mode_phasor_static()
      • How the modal coordinates become motion
      • Honesty
      • FowtModeDeformation
      • deform_mode()
      • infer_geometry()
      • plot_mode_fowt()
      • plot_mode_fowt_animation()
      • plot_mode_fowt_static()
      • plot_load_mode_heatmap()
      • plot_load_mode_heatmap_static()
      • plot_azimuth_coverage()
      • plot_azimuth_coverage_static()
      • plot_branch_review()
      • plot_branch_review_static()
      • plot_mac_matrix()
      • plot_mac_matrix_static()
      • plot_tracking_confidence()
      • plot_tracking_confidence_static()
      • study_report_html()
      • write_report()
      • write_report_pdf()
      • write_mode_animation_vtk()
      • write_mode_shape_vtk()
      • vane.viz.palette.OKABE_ITO
      • colorblind_colorway()
      • apply_colorblind_palette()
      • apply_standard_palette()
    • Export
      • LPVFamily
      • build_physical_lpv_family()
      • campbell_table()
      • load_lpv_family()
      • mode_shapes_table()
      • modes_table()
      • participation_table()
      • resonance_table()
      • save_lpv_family()
      • write_rom()
      • write_table()
    • Validation and benchmarking
      • PlausibilityComparison
      • compare_to_reference()
      • GroundTruthSystem
      • ModeRecoveryScore
      • robustness_curve()
      • score_recovery()
      • synthetic_system()
    • Utilities
      • has_extended_prefix()
      • normalize_extended_path()
      • plain_path_text()
      • resolve_path()
      • TRANSIENT_WINERRORS
      • copy2_with_retry()
      • is_transient_file_error()
      • link_with_retry()
      • retry_transient()
      • rmtree_with_retry()
      • unlink_with_retry()
  • API contract
    • General guarantees
    • Entry-point guarantees
    • System identification (vane.sysid)
    • Driving OpenFAST (the linearization sweep)
    • Known invalid uses
    • Exceptions
    • Stability
  • Linearization restrictions
    • Glue code and module selection
    • InflowWind
    • ServoDyn
    • ElastoDyn and BeamDyn
    • AeroDyn
    • SeaState
    • HydroDyn
    • Mooring and substructure
    • Remaining limits

Project

  • Validation
    • VANE verification and validation
      • Approach
      • Summary
      • Reproducing
      • 1. OpenFAST linearization set-up and sweep
      • 2. MBC3 transform and azimuth averaging
      • 3. Eigensolution and mode identification
      • 4. Campbell diagrams
      • 5. Floquet analysis and the averaging error estimate
      • 6. State-space and LPV export
      • 7. OpenFAST r-test reference systems
      • 8. Reference-turbine sweeps
      • 9. Azimuth averaging on OpenFAST linearizations
      • 10. Cross-check with an independent implementation
      • Scope and limitations
      • References
      • Figures
  • How to cite
  • Changelog
    • Changelog
      • Unreleased
      • 0.1.1 - 2026-10-16
      • 0.1.0 - 2026-10-16
  • Contributing
    • Contributing to VANE
      • Contributing upstream
      • Issues
      • Development setup
      • Pull requests
      • Standards
      • Repository contents
      • Licence and sign-off
  • Architecture
    • VANE architecture
      • Data flow
      • Package layout
      • Design rules
      • Tests
  • Release procedure
    • VANE release procedure
      • 1. Set and check the release metadata
      • 2. Run the checks
      • 3. Build and inspect the distributions
      • 4. Tag and publish
      • 5. Close the release
      • Publishing checklist for a new repository
      • Release record: 0.1.1
      • Release record: 0.1.0
VANE
  • Plot gallery
  • Edit on GitHub
Previous Next

Plot gallery

This page shows each static plot of vane.viz at the two printed sizes, one journal column (size="single", 8.5 cm wide) and the full page width (size="double", 17 cm). The figures follow the style and encoding described in Visualization: the lab’s standard line colours, mode families by colour (blades green, tower black, platform red, drivetrain magenta, other modes cyan), line styles cycling within a family, multi-blade types by marker, and blue nP lines tagged inline.

The images are generated from synthetic data by the script docs/gallery/make_gallery.py in the source repository, which writes a sweep of the synthetic turbine of the tutorials (tower, rotor and blade-flap modes, 4 to 11 m/s) and analyses it with run_study(). They are shown here as PNG files at 150 dpi; for a paper, write the same figures as vector PDF or SVG with save_figure(). Each section gives the call that draws the figure.

Plots

  • Campbell diagram

  • Campbell diagram with every mode family

  • Damping ratio

  • Frequency and damping panels

  • Mode participation

  • Phasor wheel

  • Multi-blade components

  • Complex mode shape in 3-D

  • Whole-turbine mode shape

  • MAC matrix

  • Tracking confidence

  • Azimuth coverage

  • Branch review

  • Load-versus-mode map

Campbell diagram

The frequencies of the tracked modes against rotor speed, with the 1P, 3P and 6P lines and the resonance crossings. Each mode is named at its line end; in the single-column figure the names are shortened.

plot_campbell_static(diagram, harmonics=(1, 3, 6), size="single")
Campbell diagram of the synthetic turbine, single-column size. Campbell diagram of the synthetic turbine, double-column size.

Campbell diagram with every mode family

A hand-built floating-turbine diagram that uses every family, a low-confidence track (faded), an ambiguous track (open diamonds) and a shaded operating window.

plot_campbell_static(
    diagram, harmonics=(1, 3, 6), operating_range=(6.9, 12.1), size="double"
)
Floating-turbine Campbell diagram with all mode families, single-column size. Floating-turbine Campbell diagram with all mode families, double-column size.

Damping ratio

The damping ratio of each track, with the unstable region (below zero) and the low-margin caution band shaded.

plot_damping_static(diagram, size="single")
Damping ratio against rotor speed, single-column size. Damping ratio against rotor speed, double-column size.

Frequency and damping panels

The Campbell diagram (a) and the damping ratio (b) on a shared rotor-speed axis, stacked at single-column width and side by side at double-column width.

plot_campbell_panels(diagram, harmonics=(1, 3, 6), size="double")
Frequency and damping panels, single-column size. Frequency and damping panels, double-column size.

Mode participation

The signed participation of the most active degrees of freedom of the regressive blade-flap mode at 8 m/s.

plot_mode_participation(
    solution, mode_index, top_n=5, short_names=True, size="single"
)
Participation bar chart, single-column size. Participation bar chart, double-column size.

Phasor wheel

The same mode’s degrees of freedom as phasors: the cosine and sine flap coordinates a quarter period apart, the signature of a whirling mode.

plot_mode_phasor_static(solution, mode_index, top_n=5, size="single")
Phasor wheel of a blade-flap mode, single-column size. Phasor wheel of a blade-flap mode, double-column size.

Multi-blade components

How the mode’s participation divides among the collective, cosine and sine coordinates.

plot_blade_components_static(solution, mode_index, size="single")
Multi-blade component bars, single-column size. Multi-blade component bars, double-column size.

Complex mode shape in 3-D

Each degree of freedom as a stem to its complex component.

plot_mode_3d_static(solution, mode_index, top_n=5, size="single")
Three-dimensional complex phasors, single-column size. Three-dimensional complex phasors, double-column size.

Whole-turbine mode shape

A coupled platform-pitch, tower and flap mode of a floating turbine drawn on the schematic semi-submersible geometry; the grey outline is the undeformed structure.

plot_mode_fowt_static(solution, mode_index, size="single")
Whole-turbine mode shape of a floating turbine, single-column size. Whole-turbine mode shape of a floating turbine, double-column size.

MAC matrix

The modal assurance criterion between the modes of two adjacent operating points; the diagonal shows that every mode tracks cleanly.

plot_mac_matrix_static(solutions[3], solutions[4], size="single")
MAC matrix between adjacent operating points, single-column size. MAC matrix between adjacent operating points, double-column size.

Tracking confidence

The identification confidence of each track of the floating-turbine diagram, with the ambiguous track in orange and the review threshold dashed.

plot_tracking_confidence_static(diagram, size="single")
Tracking-confidence bar chart, single-column size. Tracking-confidence bar chart, double-column size.

Azimuth coverage

The twelve azimuths sampled at each operating point of the study.

plot_azimuth_coverage_static(study.provenance, size="single")
Azimuth coverage of the operating points, single-column size. Azimuth coverage of the operating points, double-column size.

Branch review

A crossing of two modes found by the branch review, with the closest approach marked.

plot_branch_review_static(diagram, result.branch_groups, size="double")
Branch review of a mode crossing, single-column size. Branch review of a mode crossing, double-column size.

Load-versus-mode map

The normalized contribution of each mode to each load output of the synthetic turbine (tower-base and blade-root moments).

plot_load_mode_heatmap_static(qoi_map, size="single")
Load-versus-mode contribution heatmap, single-column size. Load-versus-mode contribution heatmap, double-column size.
Previous Next

© Copyright 2026, Jae Hoon Seo, Marine Structural Mechanics and Integrity Lab (SMI Lab), Inha University. Last updated on 2026-10-16.

Built with Sphinx using a theme provided by Read the Docs.