Documentation ¶
Overview ¶
Code generated by go generate; DO NOT EDIT.
Index ¶
- Constants
- Variables
- type AD15AirfoilInfo
- type AD15AirfoilInfoCoeffData
- type AeroDyn14
- type AeroDyn14BlNd
- type AeroDyn15
- type AeroDyn15TwrNodes
- type AeroDynBlade
- type AeroDynBladeBlNd
- type BeamDyn
- type BeamDynBlade
- type BeamDynBladeDistProps
- type BeamDynMembers
- type Condition
- type ElastoDyn
- type ElastoDynBlade
- type ElastoDynBladeBlInpSt
- type ElastoDynTower
- type ElastoDynTowerTwInpSt
- type FAST
- type FormatFunc
- type InflowWind
- type Model
- type Option
- type ParseFunc
- type Schema
- type SchemaEntry
- type ServoDyn
- type ServoDynGenSpdTrq
- type Table
- type TableColumn
- type TurbSim
Constants ¶
View Source
const ( String = "string" Bool = "bool" Int = "int" Float = "float64" )
Variables ¶
View Source
var AD15AirfoilInfoSchema = NewSchema("AD15AirfoilInfo", []SchemaEntry{ {Keyword: "InterpOrd", Type: Int, Desc: `Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3]`, CanBeDefault: true}, {Keyword: "NonDimArea", Type: Float, Desc: `The non-dimensional area of the airfoil (set to 1.0 if unsure or unneeded)`, Unit: "area/chord^2"}, {Keyword: "NumCoords", Type: Int, Desc: `The number of coordinates in the airfoil shape file. Set to zero if coordinates not included.`}, {Keyword: "BL_file", Type: String, Desc: `The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called.`}, {Keyword: "NumTabs", Type: Int, Desc: `Number of airfoil tables in this file. Each table must have lines for Re and Ctrl.`}, {Keyword: "Re", Type: Float, Desc: `Reynolds numbers in millions`}, {Keyword: "Ctrl", Type: Int, Desc: `Control setting (must be 0 for current AirfoilInfo)`}, {Keyword: "InclUAdata", Type: Bool, Desc: `Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coeffs below this line`}, {Keyword: "alpha0", Type: Float, Desc: `0-lift angle of attack, depends on airfoil.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "alpha1", Type: Float, Desc: `Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "alpha2", Type: Float, Desc: `Angle of attack at f=0.7, (approximately the stall angle) for AOA<alpha0.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "eta_e", Type: Float, Desc: `Recovery factor in the range [0.85 - 0.95] used only for UAMOD=1, it is set to 1 in the code when flookup=True.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "C_nalpha", Type: Float, Desc: `Slope of the 2D normal force coefficient curve in the linear region of the polar.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "T_f0", Type: Float, Desc: `Intial value of the time constant associated with Df in the expression of Df and f'. Default value = 3.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "T_V0", Type: Float, Desc: `Intial value of the time constant associated with the vortex lift decay process; it is used in the expression of Cvn. It depends on Re,M, and airfoil class. Default value= 6.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "T_p", Type: Float, Desc: `Boundary-layer,leading edge pressure gradient time constant in the expression of Dp. It should be tuned based on airfoil experimental data. Default =1.7.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "T_VL", Type: Float, Desc: `Intial value of the time constant associated with the vortex advection process; it represents the non-dimensional time in semi-chords, needed for a vortex to travel from LE to trailing edge (TE); it is used in the expression of Cvn. It depends on Re, M (weakly), and airfoil. Value's range = [6; 13]; default value= 11.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "b1", Type: Float, Desc: `Constant in the expression of phi_alpha^c and phi_q^c; from experimental results, it was set to 0.14. This value is relatively insensitive for thin airfoils, but may be different for turbine airfoils.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "b2", Type: Float, Desc: `Constant in the expression of phi_alpha^c and phi_q^c; from experimental results, it was set to 0.53. This value is relatively insensitive for thin airfoils, but may be different for turbine airfoils.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "b5", Type: Float, Desc: `Constant in the expression of K'''_q,Cm_q^nc, and k_m,q; from experimental results, it was set to 5.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "A1", Type: Float, Desc: `Constant in the expression of phi_alpha^c and phi_q^c; from experimental results, it was set to 0.3. This value is relatively insensitive for thin airfoils, but may be different for turbine airfoils.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "A2", Type: Float, Desc: `Constant in the expression of phi_alpha^c and phi_q^c; from experimental results, it was set to 0.7. This value is relatively insensitive for thin airfoils, but may be different for turbine airfoils.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "A5", Type: Float, Desc: `Constant in the expression of K'''_q,Cm_q^nc, and k_m,q; from experimental results, it was set to 1.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "S1", Type: Float, Desc: `Constant in the f curve bestfit for alpha0<=AOA<=alpha1;by definition it depends on the airfoil. Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "S2", Type: Float, Desc: `Constant in the f curve bestfit for AOA>alpha1;by definition it depends on the airfoil. Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "S3", Type: Float, Desc: `Constant in the f curve bestfit for alpha2<=AOA<alpha0;by definition it depends on the airfoil. Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "S4", Type: Float, Desc: `Constant in the f curve bestfit for AOA<alpha2;by definition it depends on the airfoil. Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "Cn1", Type: Float, Desc: `Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "Cn2", Type: Float, Desc: `As Cn1 for negative AOAs.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "St_sh", Type: Float, Desc: `Strouhal's shedding frequency constant; default =0.19.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "Cd0", Type: Float, Desc: `2D drag coefficient value at 0-lift.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "Cm0", Type: Float, Desc: `2D pitching moment coeffcient about 1/4-chord location, at 0-lift, positive if nose up.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "k0", Type: Float, Desc: `Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "k1", Type: Float, Desc: `Constant in the \hat(x)_cp curve best-fit. Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "k2", Type: Float, Desc: `Constant in the \hat(x)_cp curve best-fit. Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "k3", Type: Float, Desc: `Constant in the \hat(x)_cp curve best-fit. Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "k1_hat", Type: Float, Desc: `Constant in the expression of Cc due to leading edge vortex effects. Ignored if UAMod<>1.`, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "x_cp_bar", Type: Float, Desc: `Constant in the expression of \hat(x)_cp^v. Default value =0.2. Ignored if UAMod<>1.`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "UACutout", Type: Float, Desc: `Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees]`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "filtCutOff", Type: Float, Desc: `Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20]`, CanBeDefault: true, SkipIf: []Condition{{"InclUAdata", "==", false}}}, {Keyword: "NumAlf", Type: Int, Desc: `Number of data lines in the following CoeffData table`}, {Keyword: "CoeffData", Dims: 1, Parse: parseAD15AirfoilCoeffs, Format: formatAD15AirfoilCoeffs, Table: &Table{ Columns: []TableColumn{ {Keyword: "Alpha", Type: Float, Unit: "deg"}, {Keyword: "Cl", Type: Float, Unit: "-"}, {Keyword: "Cd", Type: Float, Unit: "-"}, {Keyword: "Cm", Type: Float, Unit: "-"}, }, }, }, })
View Source
var AeroDyn14Schema = NewSchema("AeroDyn14", []SchemaEntry{ {Heading: "AeroDyn 14 Input File"}, {Keyword: "Title", Type: String, Parse: parseTitle, Format: formatTitle}, {Keyword: "StallMod", Type: String, Desc: `Dynamic stall included`, Unit: "unquoted string", Options: []Option{{"BEDDOES", "BEDDOES"}, {"STEADY", "STEADY"}}}, {Keyword: "UseCm", Type: String, Desc: `Use aerodynamic pitching moment model?`, Unit: "unquoted string", Options: []Option{{"USE_CM", "USE_CM"}, {"NO_CM", "NO_CM"}}}, {Keyword: "InfModel", Type: String, Desc: `Inflow model [DYNIN or EQUIL]`, Unit: "unquoted string"}, {Keyword: "IndModel", Type: String, Desc: `Induction-factor model [NONE or WAKE or SWIRL]`, Unit: "unquoted string"}, {Keyword: "AToler", Type: Float, Desc: `Induction-factor tolerance (convergence criteria) (-)`}, {Keyword: "TLModel", Type: String, Desc: `Tip-loss model (EQUIL only) [PRANDtl, GTECH, or NONE]`, Unit: "unquoted string"}, {Keyword: "HLModel", Type: String, Desc: `Hub-loss model (EQUIL only) [PRANdtl or NONE]`, Unit: "unquoted string"}, {Keyword: "TwrShad", Type: Float, Desc: `Tower-shadow velocity deficit (-)`}, {Keyword: "ShadHWid", Type: Float, Desc: `Tower-shadow half width (m)`}, {Keyword: "T_Shad_Refpt", Type: Float, Desc: `Tower-shadow reference point (m)`}, {Keyword: "AirDens", Type: Float, Desc: `Air density (kg/m^3)`}, {Keyword: "KinVisc", Type: Float, Desc: `Kinematic air viscosity [CURRENTLY IGNORED] (m^2/sec)`}, {Keyword: "DTAero", Type: Float, Desc: `Time interval for aerodynamic calculations (sec)`}, {Keyword: "NumFoil", Type: Int, Desc: `Number of airfoil files (-)`}, {Keyword: "FoilNm", Type: String, Dims: 1, Parse: parseFoilNm, Format: formatFoilNm, Desc: `Names of the airfoil files [NumFoil lines] (quoted strings)`}, {Keyword: "BldNodes", Type: Int, Desc: `Number of blade nodes used for analysis (-)`}, {Keyword: "BlNd", Dims: 1, Parse: parseAeroDyn14BlNd, Format: formatAeroDyn14BlNd, Table: &Table{ Columns: []TableColumn{ {Keyword: "RNodes", Type: Float}, {Keyword: "AeroTwst", Type: Float}, {Keyword: "DRNodes", Type: Float}, {Keyword: "Chord", Type: Float}, {Keyword: "NFoil", Type: Int}, {Keyword: "PrnElm", Type: String}, }, }, }, })
View Source
var AeroDyn15Schema = NewSchema("AeroDyn15", []SchemaEntry{ {Heading: "AeroDyn 15 Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "General Options"}, {Keyword: "Echo", Type: Bool, Desc: `Echo the input to "<rootname>.AD.ech"?`, Unit: "flag"}, {Keyword: "DTAero", Type: Float, CanBeDefault: true, Desc: `Time interval for aerodynamic calculations {or "default"}`, Unit: "sec"}, {Keyword: "WakeMod", Type: Int, Desc: `Type of wake/induction model [WakeMod cannot be 2 or 3 when linearizing]`, Unit: "switch", Options: []Option{{0, "none"}, {1, "BEMT"}, {2, "DBEMT"}, {3, "OLAF"}}}, {Keyword: "AFAeroMod", Type: Int, Desc: `Type of blade airfoil aerodynamics model[AFAeroMod must be 1 when linearizing]`, Unit: "switch", Options: []Option{{1, "steady model"}, {2, "Beddoes-Leishman unsteady model"}}}, {Keyword: "TwrPotent", Type: Int, Desc: `Type tower influence on wind based on potential flow around the tower`, Unit: "switch", Options: []Option{{0, "none"}, {1, "baseline potential flow"}, {2, "potential flow with Bak correction"}}}, {Keyword: "TwrShadow", Type: Int, Desc: `Calculate tower influence on wind based on downstream tower shadow`, Unit: "switch", Options: []Option{{0, "none"}, {1, "Powles model"}, {2, "Eames model"}}}, {Keyword: "TwrAero", Type: Bool, Desc: `Calculate tower aerodynamic loads?`, Unit: "flag"}, {Keyword: "FrozenWake", Type: Bool, Desc: `Assume frozen wake during linearization? [used only when WakeMod=1 and when linearizing]`, Unit: "flag"}, {Keyword: "CavitCheck", Type: Bool, Desc: `Perform cavitation check? [AFAeroMod must be 1 when CavitCheck=true]`, Unit: "flag"}, {Keyword: "CompAA", Type: Bool, Desc: `Flag to compute AeroAcoustics calculation [used only when WakeMod = 1 or 2]`}, {Keyword: "AA_InputFile", Type: String, Desc: `AeroAcoustics input file [used only when CompAA=true]`}, {Heading: "Environmental Conditions"}, {Keyword: "AirDens", Type: Float, CanBeDefault: true, Desc: `Air density`, Unit: "kg/m^3"}, {Keyword: "KinVisc", Type: Float, CanBeDefault: true, Desc: `Kinematic viscosity of working fluid`, Unit: "m^2/s"}, {Keyword: "SpdSound", Type: Float, CanBeDefault: true, Desc: `Speed of sound in working fluid`, Unit: "m/s"}, {Keyword: "Patm", Type: Float, CanBeDefault: true, Desc: `Atmospheric pressure [used only when CavitCheck=True]`, Unit: "Pa", Show: []Condition{{"CavitCheck", "==", true}}}, {Keyword: "Pvap", Type: Float, CanBeDefault: true, Desc: `Vapour pressure of working fluid [used only when CavitCheck=True]`, Unit: "Pa", Show: []Condition{{"CavitCheck", "==", true}}}, {Heading: "Blade-Element/Momentum Theory Options [unused when WakeMod=0 or 3]"}, {Keyword: "SkewMod", Type: Int, Desc: `Type of skewed-wake correction model [unused when WakeMod=0 or 3]`, Unit: "switch", Options: []Option{{1, "uncoupled"}, {2, "Pitt/Peters"}, {3, "coupled"}}}, {Keyword: "SkewModFactor", Type: Float, CanBeDefault: true, Desc: `Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when SkewMod=2; unused when WakeMod=0 or 3]`}, {Keyword: "TipLoss", Type: Bool, Desc: `Use the Prandtl tip-loss model? [unused when WakeMod=0 or 3]`, Unit: "flag"}, {Keyword: "HubLoss", Type: Bool, Desc: `Use the Prandtl hub-loss model? [unused when WakeMod=0 or 3]`, Unit: "flag"}, {Keyword: "TanInd", Type: Bool, Desc: `Include tangential induction in BEMT calculations? [unused when WakeMod=0 or 3]`, Unit: "flag"}, {Keyword: "AIDrag", Type: Bool, Desc: `Include the drag term in the axial-induction calculation? [unused when WakeMod=0 or 3]`, Unit: "flag"}, {Keyword: "TIDrag", Type: Bool, Desc: `Include the drag term in the tangential-induction calculation? [unused when WakeMod=0,3 or TanInd=FALSE]`, Unit: "flag"}, {Keyword: "IndToler", Type: Float, CanBeDefault: true, Desc: `Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [unused when WakeMod=0 or 3]`}, {Keyword: "MaxIter", Type: Int, Desc: `Maximum number of iteration steps (-) [unused when WakeMod=0]`}, {Heading: "Dynamic Blade-Element/Momentum Theory Options [used only when WakeMod=2]"}, {Keyword: "DBEMT_Mod", Type: Int, Desc: `Type of dynamic BEMT (DBEMT) model [used only when WakeMod=2]`, Unit: "switch", Options: []Option{{1, "constant tau1"}, {2, "time-dependent tau1"}}}, {Keyword: "tau1_const", Type: Float, Desc: `Time constant for DBEMT (s) [used only when WakeMod=2 and DBEMT_Mod=1]`}, {Heading: "OLAF -- cOnvecting LAgrangian Filaments (Free Vortex Wake) Theory Options [used only when WakeMod=3]"}, {Keyword: "OLAFInputFileName", Type: String, Desc: `Input file for OLAF [used only when WakeMod=3]`}, {Heading: "Beddoes-Leishman Unsteady Airfoil Aerodynamics Options [used only when AFAeroMod=2]"}, {Keyword: "UAMod", Type: Int, Desc: `Unsteady Aero Model Switch (switch) {1=Baseline model (Original), 2=Gonzalez's variant (changes in Cn,Cc,Cm), 3=Minnema/Pierce variant (changes in Cc and Cm)} [used only when AFAeroMod=2]`}, {Keyword: "FLookup", Type: Bool, Desc: `Flag to indicate whether a lookup for f' will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when AFAeroMod=2]`}, {Heading: "Airfoil Information"}, {Keyword: "AFTabMod", Type: Int, Desc: `Interpolation method for multiple airfoil tables {1=1D interpolation on AoA (first table only); 2=2D interpolation on AoA and Re; 3=2D interpolation on AoA and UserProp} (-)`}, {Keyword: "InCol_Alfa", Type: Int, Desc: `The column in the airfoil tables that contains the angle of attack (-)`}, {Keyword: "InCol_Cl", Type: Int, Desc: `The column in the airfoil tables that contains the lift coefficient (-)`}, {Keyword: "InCol_Cd", Type: Int, Desc: `The column in the airfoil tables that contains the drag coefficient (-)`}, {Keyword: "InCol_Cm", Type: Int, Desc: `The column in the airfoil tables that contains the pitching-moment coefficient; use zero if there is no Cm column (-)`}, {Keyword: "InCol_Cpmin", Type: Int, Desc: `The column in the airfoil tables that contains the Cpmin coefficient; use zero if there is no Cpmin column (-)`}, {Keyword: "NumAFfiles", Type: Int, Desc: `Number of airfoil files used (-)`}, {Keyword: "AFNames", Type: String, Dims: 1, Parse: parseAFNames, Format: formatAFNames, Desc: `Airfoil file names (NumAFfiles lines) (quoted strings)`}, {Heading: "Rotor/Blade Properties"}, {Keyword: "UseBlCm", Type: Bool, Desc: `Include aerodynamic pitching moment in calculations? (flag)`}, {Keyword: "ADBlFile(1)", Type: String, Desc: `Name of file containing distributed aerodynamic properties for Blade #1 (-)`}, {Keyword: "ADBlFile(2)", Type: String, Desc: `Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2]`}, {Keyword: "ADBlFile(3)", Type: String, Desc: `Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3]`}, {Heading: "Tower Influence and Aerodynamics [used only when TwrPotent/=0, TwrShadow/=0, or TwrAero=True]"}, {Keyword: "NumTwrNds", Type: Int, Desc: `Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow/=0, or TwrAero=True]`}, {Keyword: "TwrNodes", Dims: 1, Table: &Table{ Columns: []TableColumn{ {Keyword: "TwrElev", Type: Float, Desc: `(m)`}, {Keyword: "TwrDiam", Type: Float, Desc: `(m)`}, {Keyword: "TwrCd", Type: Float, Desc: `(-)`}, {Keyword: "TwrTI", Type: Float, Desc: `(used only with TwrShadow=2) (-)`}, }, }, Parse: parseTwrNodes, Format: formatTwrNodes, }, {Heading: "Outputs"}, {Keyword: "SumPrint", Type: Bool, Desc: `Generate a summary file listing input options and interpolated properties to "<rootname>.AD.sum"? (flag)`}, {Keyword: "NBlOuts", Type: Int, Desc: `Number of blade node outputs [0 - 9] (-)`}, {Keyword: "BlOutNd", Dims: 1, Type: Int, Desc: `Blade nodes whose values will be output (-)`}, {Keyword: "NTwOuts", Type: Int, Desc: `Number of tower node outputs [0 - 9] (-)`}, {Keyword: "TwOutNd", Dims: 1, Type: Int, Desc: `Tower nodes whose values will be output (-)`}, {Keyword: "OutList", Type: String, Dims: 1, Parse: parseOutList, Format: formatOutList, Desc: `The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)`}, })
View Source
var AeroDynBladeSchema = NewSchema("AeroDynBlade", []SchemaEntry{ {Heading: "AeroDyn Blade Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "Blade Properties"}, {Keyword: "NumBlNds", Type: Int, Desc: `Number of blade nodes used in the analysis (-)`}, {Keyword: "BlNd", Dims: 1, Format: formatAeroDynBladeBlNd, Parse: parseAeroDynBladeBlNd, Table: &Table{ Columns: []TableColumn{ {Keyword: "BlSpn", Type: Float, Desc: `(m)`}, {Keyword: "BlCrvAC", Type: Float, Desc: `(m)`}, {Keyword: "BlSwpAC", Type: Float, Desc: `(m)`}, {Keyword: "BlCrvAng", Type: Float, Desc: `(deg)`}, {Keyword: "BlTwist", Type: Float, Desc: `(deg)`}, {Keyword: "BlChord", Type: Float, Desc: `(m)`}, {Keyword: "BlAFID", Type: Int, Desc: `(-)`}, }, }, }, })
View Source
var BeamDynBladeSchema = NewSchema("BeamDynBlade", []SchemaEntry{ {Heading: "BeamDyn Blade Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "Blade Parameters"}, {Keyword: "station_total", Type: Int, Desc: `Number of blade input stations`}, {Keyword: "damp_type", Type: Int, Desc: `Damping type: 0: no damping; 1: damped`}, {Heading: "Damping Coefficient"}, {Keyword: "mu", Type: Float, Dims: 1, Parse: parseBeamDynBladeMu, Format: formatBeamDynBladeMu}, {Heading: "Distributed Properties"}, {Keyword: "DistProps", Dims: 1, Table: &Table{ Columns: []TableColumn{ {Keyword: "station_eta", Type: Float}, {Keyword: "stiffness_matrix", Type: Float, Dims: 2}, {Keyword: "mass_matrix", Type: Float, Dims: 2}, }, }, Parse: parseBeamDynBladeDistProps, Format: formatBeamDynBladeDistProps, }, })
View Source
var BeamDynSchema = NewSchema("BeamDyn", []SchemaEntry{ {Heading: "Beamdyn Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "Simulation Control"}, {Keyword: "Echo", Type: Bool, Desc: `Echo input data to "<RootName>.ech"? (flag)`}, {Keyword: "QuasiStaticInit", Type: Bool, Desc: `Use quasi-static pre-conditioning with centripetal accelerations in initialization? (flag) [dynamic solve only]`}, {Keyword: "rhoinf", Type: Float, Desc: `Numerical damping parameter for generalized-alpha integrator`}, {Keyword: "quadrature", Type: Int, Desc: `Quadrature method: 1=Gaussian; 2=Trapezoidal (switch)`}, {Keyword: "refine", Type: Int, CanBeDefault: true, Desc: `Refinement factor for trapezoidal quadrature (-) [DEFAULT = 1; used only when quadrature=2]`}, {Keyword: "n_fact", Type: Int, CanBeDefault: true, Desc: `Factorization frequency for the Jacobian in N-R iteration(-) [DEFAULT = 5]`}, {Keyword: "DTBeam", Type: Float, CanBeDefault: true, Desc: `Time step size (s)`}, {Keyword: "load_retries", Type: Int, CanBeDefault: true, Desc: `Number of factored load retries before quitting the simulation [DEFAULT = 20]`}, {Keyword: "NRMax", Type: Int, CanBeDefault: true, Desc: `Max number of iterations in Newton-Raphson algorithm (-) [DEFAULT = 10]`}, {Keyword: "stop_tol", Type: Float, CanBeDefault: true, Desc: `Tolerance for stopping criterion (-) [DEFAULT = 1E-5]`}, {Keyword: "tngt_stf_fd", Type: Bool, CanBeDefault: true, Desc: `Use finite differenced tangent stiffness matrix? (flag)`}, {Keyword: "tngt_stf_comp", Type: Bool, CanBeDefault: true, Desc: `Compare analytical finite differenced tangent stiffness matrix? (flag)`}, {Keyword: "tngt_stf_pert", Type: Float, CanBeDefault: true, Desc: `Perturbation size for finite differencing (-) [DEFAULT = 1E-6]`}, {Keyword: "tngt_stf_difftol", Type: Float, CanBeDefault: true, Desc: `Maximum allowable relative difference between analytical and fd tangent stiffness (-); [DEFAULT = 0.1]`}, {Keyword: "RotStates", Type: Bool, Desc: `Orient states in the rotating frame during linearization? (flag) [used only when linearizing] `}, {Heading: "Geometry Parameter"}, {Keyword: "member_total", Type: Int, Desc: `Total number of members (-)`}, {Keyword: "kp_total", Type: Int, Desc: `Total number of key points (-) [must be at least 3]`}, {Keyword: "Members", Dims: 2, Table: &Table{ Columns: []TableColumn{ {Keyword: "kp_xr", Type: Float, Unit: "m", Desc: ``}, {Keyword: "kp_yr", Type: Float, Unit: "m", Desc: ``}, {Keyword: "kp_zr", Type: Float, Unit: "m", Desc: ``}, {Keyword: "initial_twist", Type: Float, Unit: "deg", Desc: ``}, }, }, Parse: parseBeamDynMembers, Format: formatBeamDynMembers, }, {Heading: "Mesh Parameter"}, {Keyword: "order_elem", Type: Int, Desc: `Order of interpolation (basis) function (-)`}, {Heading: "Material Parameter"}, {Keyword: "BldFile", Type: String, Desc: `Name of file containing properties for blade (quoted string)`}, {Heading: "Pitch Actuator Parameters"}, {Keyword: "UsePitchAct", Type: Bool, Desc: `Whether a pitch actuator should be used (flag)`}, {Keyword: "PitchJ", Type: Float, Desc: `Pitch actuator inertia (kg-m^2) [used only when UsePitchAct is true]`}, {Keyword: "PitchK", Type: Float, Desc: `Pitch actuator stiffness (kg-m^2/s^2) [used only when UsePitchAct is true]`}, {Keyword: "PitchC", Type: Float, Desc: `Pitch actuator damping (kg-m^2/s) [used only when UsePitchAct is true]`}, {Heading: "Outputs"}, {Keyword: "SumPrint", Type: Bool, Desc: `Print summary data to "<RootName>.sum" (flag)`}, {Keyword: "OutFmt", Type: String, Desc: `Format used for text tabular output, excluding the time channel.`}, {Keyword: "NNodeOuts", Type: Int, Desc: `Number of nodes to output to file [0 - 9] (-)`}, {Keyword: "OutNd", Dims: 1, Type: Int, Desc: `Nodes whose values will be output (-)`}, {Keyword: "OutList", Type: String, Dims: 1, Format: formatOutList, Parse: parseOutList, Desc: `The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)`}, })
View Source
var ElastoDynBladeSchema = NewSchema("ElastoDynBlade", []SchemaEntry{ {Heading: "ElastoDyn Blade Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "Blade Parameters"}, {Keyword: "NBlInpSt", Type: Int, Desc: `Number of blade input stations`, Unit: "-"}, {Keyword: "BldFlDmp(1)", Type: Float, Desc: `Blade flap mode #1 structural damping in percent of critical`, Unit: "%"}, {Keyword: "BldFlDmp(2)", Type: Float, Desc: `Blade flap mode #2 structural damping in percent of critical`, Unit: "%"}, {Keyword: "BldEdDmp(1)", Type: Float, Desc: `Blade edge mode #1 structural damping in percent of critical`, Unit: "%"}, {Heading: "Blade Adjustment Factors"}, {Keyword: "FlStTunr(1)", Type: Float, Desc: `Blade flapwise modal stiffness tuner, 1st mode`, Unit: "-"}, {Keyword: "FlStTunr(2)", Type: Float, Desc: `Blade flapwise modal stiffness tuner, 2nd mode`, Unit: "-"}, {Keyword: "AdjBlMs", Type: Float, Desc: `Factor to adjust blade mass density`, Unit: "-"}, {Keyword: "AdjFlSt", Type: Float, Desc: `Factor to adjust blade flap stiffness`, Unit: "-"}, {Keyword: "AdjEdSt", Type: Float, Desc: `Factor to adjust blade edge stiffness`, Unit: "-"}, {Heading: "Distributed Blade Properties"}, {Keyword: "BlInpSt", Dims: 1, Parse: parseBlInpSt, Format: formatBlInpSt, Table: &Table{ Columns: []TableColumn{ {Keyword: "BlFract", Type: Float, Unit: "-"}, {Keyword: "PitchAxis", Type: Float, Unit: "-"}, {Keyword: "StrcTwst", Type: Float, Unit: "deg"}, {Keyword: "BMassDen", Type: Float, Unit: "kg/m"}, {Keyword: "FlpStff", Type: Float, Unit: "Nm^2"}, {Keyword: "EdgStff", Type: Float, Unit: "Nm^2"}, }, }, }, {Heading: "Blade Mode Shapes"}, {Keyword: "BldFl1Sh(2)", Type: Float, Desc: `Flap mode 1, coeff of x^2`}, {Keyword: "BldFl1Sh(3)", Type: Float, Desc: ` , coeff of x^3`}, {Keyword: "BldFl1Sh(4)", Type: Float, Desc: ` , coeff of x^4`}, {Keyword: "BldFl1Sh(5)", Type: Float, Desc: ` , coeff of x^5`}, {Keyword: "BldFl1Sh(6)", Type: Float, Desc: ` , coeff of x^6`}, {Keyword: "BldFl2Sh(2)", Type: Float, Desc: `Flap mode 2, coeff of x^2`}, {Keyword: "BldFl2Sh(3)", Type: Float, Desc: ` , coeff of x^3`}, {Keyword: "BldFl2Sh(4)", Type: Float, Desc: ` , coeff of x^4`}, {Keyword: "BldFl2Sh(5)", Type: Float, Desc: ` , coeff of x^5`}, {Keyword: "BldFl2Sh(6)", Type: Float, Desc: ` , coeff of x^6`}, {Keyword: "BldEdgSh(2)", Type: Float, Desc: `Edge mode 1, coeff of x^2`}, {Keyword: "BldEdgSh(3)", Type: Float, Desc: ` , coeff of x^3`}, {Keyword: "BldEdgSh(4)", Type: Float, Desc: ` , coeff of x^4`}, {Keyword: "BldEdgSh(5)", Type: Float, Desc: ` , coeff of x^5`}, {Keyword: "BldEdgSh(6)", Type: Float, Desc: ` , coeff of x^6`}, })
View Source
var ElastoDynSchema = NewSchema("ElastoDyn", []SchemaEntry{ {Heading: "ElastoDyn Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "Simulation Control"}, {Keyword: "Echo", Type: Bool, Desc: `Echo input data to <RootName>.ech`, Unit: "flag"}, {Keyword: "Method", Type: Int, Desc: `Integration method`, Options: []Option{{1, "RK4"}, {2, "AB4"}, {3, "ABM4"}}}, {Keyword: "DT", Type: Float, Desc: `Integration time step`, Unit: "sec", CanBeDefault: true}, {Heading: "Degrees Of Freedom"}, {Keyword: "FlapDOF1", Type: Bool, Desc: `First flapwise blade mode DOF`, Unit: "flag"}, {Keyword: "FlapDOF2", Type: Bool, Desc: `Second flapwise blade mode DOF`, Unit: "flag"}, {Keyword: "EdgeDOF", Type: Bool, Desc: `First edgewise blade mode DOF`, Unit: "flag"}, {Keyword: "TeetDOF", Type: Bool, Desc: `Rotor-teeter DOF [unused for 3 blades]`, Unit: "flag"}, {Keyword: "DrTrDOF", Type: Bool, Desc: `Drivetrain rotational-flexibility DOF`, Unit: "flag"}, {Keyword: "GenDOF", Type: Bool, Desc: `Generator DOF`, Unit: "flag"}, {Keyword: "YawDOF", Type: Bool, Desc: `Yaw DOF`, Unit: "flag"}, {Keyword: "TwFADOF1", Type: Bool, Desc: `First fore-aft tower bending-mode DOF`, Unit: "flag"}, {Keyword: "TwFADOF2", Type: Bool, Desc: `Second fore-aft tower bending-mode DOF`, Unit: "flag"}, {Keyword: "TwSSDOF1", Type: Bool, Desc: `First side-to-side tower bending-mode DOF`, Unit: "flag"}, {Keyword: "TwSSDOF2", Type: Bool, Desc: `Second side-to-side tower bending-mode DOF`, Unit: "flag"}, {Keyword: "PtfmSgDOF", Type: Bool, Desc: `Platform horizontal surge translation DOF`, Unit: "flag"}, {Keyword: "PtfmSwDOF", Type: Bool, Desc: `Platform horizontal sway translation DOF`, Unit: "flag"}, {Keyword: "PtfmHvDOF", Type: Bool, Desc: `Platform vertical heave translation DOF`, Unit: "flag"}, {Keyword: "PtfmRDOF", Type: Bool, Desc: `Platform roll tilt rotation DOF`, Unit: "flag"}, {Keyword: "PtfmPDOF", Type: Bool, Desc: `Platform pitch tilt rotation DOF`, Unit: "flag"}, {Keyword: "PtfmYDOF", Type: Bool, Desc: `Platform yaw rotation DOF`, Unit: "flag"}, {Heading: "Initial Conditions"}, {Keyword: "OoPDefl", Type: Float, Desc: `Initial out-of-plane blade-tip displacement`, Unit: "meters"}, {Keyword: "IPDefl", Type: Float, Desc: `Initial in-plane blade-tip deflection`, Unit: "meters"}, {Keyword: "BlPitch(1)", Type: Float, Desc: `Blade 1 initial pitch`, Unit: "degrees"}, {Keyword: "BlPitch(2)", Type: Float, Desc: `Blade 2 initial pitch`, Unit: "degrees"}, {Keyword: "BlPitch(3)", Type: Float, Desc: `Blade 3 initial pitch [unused for 2 blades]`, Unit: "degrees"}, {Keyword: "TeetDefl", Type: Float, Desc: `Initial or fixed teeter angle [unused for 3 blades]`, Unit: "degrees"}, {Keyword: "Azimuth", Type: Float, Desc: `Initial azimuth angle for blade 1`, Unit: "degrees"}, {Keyword: "RotSpeed", Type: Float, Desc: `Initial or fixed rotor speed`, Unit: "rpm"}, {Keyword: "NacYaw", Type: Float, Desc: `Initial or fixed nacelle-yaw angle`, Unit: "degrees"}, {Keyword: "TTDspFA", Type: Float, Desc: `Initial fore-aft tower-top displacement`, Unit: "meters"}, {Keyword: "TTDspSS", Type: Float, Desc: `Initial side-to-side tower-top displacement`, Unit: "meters"}, {Keyword: "PtfmSurge", Type: Float, Desc: `Initial or fixed horizontal surge translational displacement of platform`, Unit: "meters"}, {Keyword: "PtfmSway", Type: Float, Desc: `Initial or fixed horizontal sway translational displacement of platform`, Unit: "meters"}, {Keyword: "PtfmHeave", Type: Float, Desc: `Initial or fixed vertical heave translational displacement of platform`, Unit: "meters"}, {Keyword: "PtfmRoll", Type: Float, Desc: `Initial or fixed roll tilt rotational displacement of platform`, Unit: "degrees"}, {Keyword: "PtfmPitch", Type: Float, Desc: `Initial or fixed pitch tilt rotational displacement of platform`, Unit: "degrees"}, {Keyword: "PtfmYaw", Type: Float, Desc: `Initial or fixed yaw rotational displacement of platform`, Unit: "degrees"}, {Heading: "Turbine Configuration"}, {Keyword: "NumBl", Type: Int, Desc: `Number of blades`, Unit: "-"}, {Keyword: "TipRad", Type: Float, Desc: `The distance from the rotor apex to the blade tip`, Unit: "meters"}, {Keyword: "HubRad", Type: Float, Desc: `The distance from the rotor apex to the blade root`, Unit: "meters"}, {Keyword: "PreCone(1)", Type: Float, Desc: `Blade 1 cone angle`, Unit: "degrees"}, {Keyword: "PreCone(2)", Type: Float, Desc: `Blade 2 cone angle`, Unit: "degrees"}, {Keyword: "PreCone(3)", Type: Float, Desc: `Blade 3 cone angle [unused for 2 blades]`, Unit: "degrees"}, {Keyword: "HubCM", Type: Float, Desc: `Distance from rotor apex to hub mass [positive downwind]`, Unit: "meters"}, {Keyword: "UndSling", Type: Float, Desc: `Undersling length [distance from teeter pin to the rotor apex] , Unit:"meters"[unused for 3 blades]`}, {Keyword: "Delta3", Type: Float, Desc: `Delta-3 angle for teetering rotors [unused for 3 blades]`, Unit: "degrees"}, {Keyword: "AzimB1Up", Type: Float, Desc: `Azimuth value to use for I/O when blade 1 points up`, Unit: "degrees"}, {Keyword: "OverHang", Type: Float, Desc: `Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades]`, Unit: "meters"}, {Keyword: "ShftGagL", Type: Float, Desc: `Distance from rotor apex [3 blades] or teeter pin [2 blades] to shaft strain gages [positive for upwind rotors]`, Unit: "meters"}, {Keyword: "ShftTilt", Type: Float, Desc: `Rotor shaft tilt angle`, Unit: "degrees"}, {Keyword: "NacCMxn", Type: Float, Desc: `Downwind distance from the tower-top to the nacelle CM`, Unit: "meters"}, {Keyword: "NacCMyn", Type: Float, Desc: `Lateral distance from the tower-top to the nacelle CM`, Unit: "meters"}, {Keyword: "NacCMzn", Type: Float, Desc: `Vertical distance from the tower-top to the nacelle CM`, Unit: "meters"}, {Keyword: "NcIMUxn", Type: Float, Desc: `Downwind distance from the tower-top to the nacelle IMU`, Unit: "meters"}, {Keyword: "NcIMUyn", Type: Float, Desc: `Lateral distance from the tower-top to the nacelle IMU`, Unit: "meters"}, {Keyword: "NcIMUzn", Type: Float, Desc: `Vertical distance from the tower-top to the nacelle IMU`, Unit: "meters"}, {Keyword: "Twr2Shft", Type: Float, Desc: `Vertical distance from the tower-top to the rotor shaft`, Unit: "meters"}, {Keyword: "TowerHt", Type: Float, Desc: `Height of tower above ground level [onshore] or MSL [offshore]`, Unit: "meters"}, {Keyword: "TowerBsHt", Type: Float, Desc: `Height of tower base above ground level [onshore] or MSL [offshore]`, Unit: "meters"}, {Keyword: "PtfmCMxt", Type: Float, Desc: `Downwind distance from the ground level [onshore] or MSL [offshore] to the platform CM`, Unit: "meters"}, {Keyword: "PtfmCMyt", Type: Float, Desc: `Lateral distance from the ground level [onshore] or MSL [offshore] to the platform CM`, Unit: "meters"}, {Keyword: "PtfmCMzt", Type: Float, Desc: `Vertical distance from the ground level [onshore] or MSL [offshore] to the platform CM`, Unit: "meters"}, {Keyword: "PtfmRefzt", Type: Float, Desc: `Vertical distance from the ground level [onshore] or MSL [offshore] to the platform reference point`, Unit: "meters"}, {Heading: "Mass And Inertia"}, {Keyword: "TipMass(1)", Type: Float, Desc: `Tip-brake mass, blade 1`, Unit: "kg"}, {Keyword: "TipMass(2)", Type: Float, Desc: `Tip-brake mass, blade 2`, Unit: "kg"}, {Keyword: "TipMass(3)", Type: Float, Desc: `Tip-brake mass, blade 3 [unused for 2 blades]`, Unit: "kg"}, {Keyword: "HubMass", Type: Float, Desc: `Hub mass`, Unit: "kg"}, {Keyword: "HubIner", Type: Float, Desc: `Hub inertia about rotor axis [3 blades] or teeter axis [2 blades]`, Unit: "kg m^2"}, {Keyword: "GenIner", Type: Float, Desc: `Generator inertia about HSS`, Unit: "kg m^2"}, {Keyword: "NacMass", Type: Float, Desc: `Nacelle mass`, Unit: "kg"}, {Keyword: "NacYIner", Type: Float, Desc: `Nacelle inertia about yaw axis`, Unit: "kg m^2"}, {Keyword: "YawBrMass", Type: Float, Desc: `Yaw bearing mass`, Unit: "kg"}, {Keyword: "PtfmMass", Type: Float, Desc: `Platform mass`, Unit: "kg"}, {Keyword: "PtfmRIner", Type: Float, Desc: `Platform inertia for roll tilt rotation about the platform CM`, Unit: "kg m^2"}, {Keyword: "PtfmPIner", Type: Float, Desc: `Platform inertia for pitch tilt rotation about the platform CM`, Unit: "kg m^2"}, {Keyword: "PtfmYIner", Type: Float, Desc: `Platform inertia for yaw rotation about the platform CM`, Unit: "kg m^2"}, {Heading: "Blade"}, {Keyword: "BldNodes", Type: Int, Desc: `Number of blade nodes (per blade) used for analysis`, Unit: "-"}, {Keyword: "BldFile(1)", Type: String, Desc: `Name of file containing properties for blade 1 (quoted string)`}, {Keyword: "BldFile(2)", Type: String, Desc: `Name of file containing properties for blade 2 (quoted string)`}, {Keyword: "BldFile(3)", Type: String, Desc: `Name of file containing properties for blade 3 (quoted string) [unused for 2 blades]`}, {Heading: "Rotor-Teeter"}, {Keyword: "TeetMod", Type: Int, Desc: `Rotor-teeter spring/damper model (switch) [unused for 3 blades]`, Options: []Option{{0, "none"}, {1, "standard"}, {2, "user-defined from routine UserTeet"}}}, {Keyword: "TeetDmpP", Type: Float, Desc: `Rotor-teeter damper position [used only for 2 blades and when TeetMod=1]`, Unit: "degrees"}, {Keyword: "TeetDmp", Type: Float, Desc: `Rotor-teeter damping constant [used only for 2 blades and when TeetMod=1]`, Unit: "N-m/(rad/s)"}, {Keyword: "TeetCDmp", Type: Float, Desc: `Rotor-teeter rate-independent Coulomb-damping moment (N-m) [used only for 2 blades and when TeetMod=1]`}, {Keyword: "TeetSStP", Type: Float, Desc: `Rotor-teeter soft-stop position [used only for 2 blades and when TeetMod=1]`, Unit: "degrees"}, {Keyword: "TeetHStP", Type: Float, Desc: `Rotor-teeter hard-stop position [used only for 2 blades and when TeetMod=1]`, Unit: "degrees"}, {Keyword: "TeetSSSp", Type: Float, Desc: `Rotor-teeter soft-stop linear-spring constant [used only for 2 blades and when TeetMod=1]`, Unit: "N-m/rad"}, {Keyword: "TeetHSSp", Type: Float, Desc: `Rotor-teeter hard-stop linear-spring constant [used only for 2 blades and when TeetMod=1]`, Unit: "N-m/rad"}, {Heading: "Drivetrain"}, {Keyword: "GBoxEff", Type: Float, Desc: `Gearbox efficiency`, Unit: "%"}, {Keyword: "GBRatio", Type: Float, Desc: `Gearbox ratio`, Unit: "-"}, {Keyword: "DTTorSpr", Type: Float, Desc: `Drivetrain torsional spring`, Unit: "N-m/rad"}, {Keyword: "DTTorDmp", Type: Float, Desc: `Drivetrain torsional damper`, Unit: "N-m/(rad/s)"}, {Heading: "Furling"}, {Keyword: "Furling", Type: Bool, Desc: `Read in additional model properties for furling turbine [must currently be FALSE)`, Unit: "flag"}, {Keyword: "FurlFile", Type: String, Desc: `Name of file containing furling properties (quoted string) [unused when Furling=False]`}, {Heading: "Tower"}, {Keyword: "TwrNodes", Type: Int, Desc: `Number of tower nodes used for analysis (-)`}, {Keyword: "TwrFile", Type: String, Desc: `Name of file containing tower properties (quoted string)`}, {Heading: "Output"}, {Keyword: "SumPrint", Type: Bool, Desc: `Print summary data to '<RootName>.sum'`, Unit: "flag"}, {Keyword: "OutFile", Type: Int, Desc: `Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)`}, {Keyword: "TabDelim", Type: Bool, Desc: `Use tab delimiters in text tabular output file? (currently unused)`, Unit: "flag"}, {Keyword: "OutFmt", Type: String, Desc: `Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused)`}, {Keyword: "TStart", Type: Float, Desc: `Time to begin tabular output (s) (currently unused)`}, {Keyword: "DecFact", Type: Int, Desc: `Decimation factor for tabular output {1: output every time step} (-) (currently unused)`}, {Keyword: "NTwGages", Type: Int, Desc: `Number of tower nodes that have strain gages for output [0 to 9] (-)`}, {Keyword: "TwrGagNd", Type: Int, Dims: 1, Desc: `List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0]`}, {Keyword: "NBlGages", Type: Int, Desc: `Number of blade nodes that have strain gages for output [0 to 9] (-)`}, {Keyword: "BldGagNd", Type: Int, Dims: 1, Desc: `List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0]`}, {Keyword: "OutList", Type: String, Dims: 1, Format: formatOutList, Parse: parseOutList, Desc: `The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)`}, })
View Source
var ElastoDynTowerSchema = NewSchema("ElastoDynTower", []SchemaEntry{ {Heading: "ElastoDyn Tower Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "Tower Parameters"}, {Keyword: "NTwInpSt", Type: Int, Desc: `Number of input stations to specify tower geometry`}, {Keyword: "TwrFADmp(1)", Type: Float, Desc: `Tower 1st fore-aft mode structural damping ratio`, Unit: "%"}, {Keyword: "TwrFADmp(2)", Type: Float, Desc: `Tower 2nd fore-aft mode structural damping ratio`, Unit: "%"}, {Keyword: "TwrSSDmp(1)", Type: Float, Desc: `Tower 1st side-to-side mode structural damping ratio`, Unit: "%"}, {Keyword: "TwrSSDmp(2)", Type: Float, Desc: `Tower 2nd side-to-side mode structural damping ratio`, Unit: "%"}, {Heading: "Tower Adjustment Factors"}, {Keyword: "FAStTunr(1)", Type: Float, Desc: `Tower fore-aft modal stiffness tuner, 1st mode`, Unit: "-"}, {Keyword: "FAStTunr(2)", Type: Float, Desc: `Tower fore-aft modal stiffness tuner, 2nd mode`, Unit: "-"}, {Keyword: "SSStTunr(1)", Type: Float, Desc: `Tower side-to-side stiffness tuner, 1st mode`, Unit: "-"}, {Keyword: "SSStTunr(2)", Type: Float, Desc: `Tower side-to-side stiffness tuner, 2nd mode`, Unit: "-"}, {Keyword: "AdjTwMa", Type: Float, Desc: `Factor to adjust tower mass density`, Unit: "-"}, {Keyword: "AdjFASt", Type: Float, Desc: `Factor to adjust tower fore-aft stiffness`, Unit: "-"}, {Keyword: "AdjSSSt", Type: Float, Desc: `Factor to adjust tower side-to-side stiffness`, Unit: "-"}, {Heading: "Distributed Tower Properties"}, {Keyword: "TwInpSt", Dims: 1, Format: formatElastoDynTowerTwInpSt, Parse: parseElastoDynTowerTwInpSt, Table: &Table{ Columns: []TableColumn{ {Keyword: "HtFract", Type: Float, Desc: `Fractional height of the flexible portion of tower for a given input station`, Unit: "-"}, {Keyword: "TMassDen", Type: Float, Desc: `Tower mass density for a given input station`, Unit: "kg/m"}, {Keyword: "TwFAStif", Type: Float, Desc: `Tower fore-aft stiffness for a given input station`, Unit: "Nm^2"}, {Keyword: "TwSSStif", Type: Float, Desc: `Tower side-to-side stiffness for a given input station`, Unit: "Nm^2"}, }, }, }, {Heading: "Tower Fore-Aft Mode Shapes"}, {Keyword: "TwFAM1Sh(2)", Type: Float, Desc: `Mode 1, coefficient of x^2 term`}, {Keyword: "TwFAM1Sh(3)", Type: Float, Desc: ` , coefficient of x^3 term`}, {Keyword: "TwFAM1Sh(4)", Type: Float, Desc: ` , coefficient of x^4 term`}, {Keyword: "TwFAM1Sh(5)", Type: Float, Desc: ` , coefficient of x^5 term`}, {Keyword: "TwFAM1Sh(6)", Type: Float, Desc: ` , coefficient of x^6 term`}, {Keyword: "TwFAM2Sh(2)", Type: Float, Desc: `Mode 2, coefficient of x^2 term`}, {Keyword: "TwFAM2Sh(3)", Type: Float, Desc: ` , coefficient of x^3 term`}, {Keyword: "TwFAM2Sh(4)", Type: Float, Desc: ` , coefficient of x^4 term`}, {Keyword: "TwFAM2Sh(5)", Type: Float, Desc: ` , coefficient of x^5 term`}, {Keyword: "TwFAM2Sh(6)", Type: Float, Desc: ` , coefficient of x^6 term`}, {Heading: "Tower Side-To-Side Mode Shapes"}, {Keyword: "TwSSM1Sh(2)", Type: Float, Desc: `Mode 1, coefficient of x^2 term`}, {Keyword: "TwSSM1Sh(3)", Type: Float, Desc: ` , coefficient of x^3 term`}, {Keyword: "TwSSM1Sh(4)", Type: Float, Desc: ` , coefficient of x^4 term`}, {Keyword: "TwSSM1Sh(5)", Type: Float, Desc: ` , coefficient of x^5 term`}, {Keyword: "TwSSM1Sh(6)", Type: Float, Desc: ` , coefficient of x^6 term`}, {Keyword: "TwSSM2Sh(2)", Type: Float, Desc: `Mode 2, coefficient of x^2 term`}, {Keyword: "TwSSM2Sh(3)", Type: Float, Desc: ` , coefficient of x^3 term`}, {Keyword: "TwSSM2Sh(4)", Type: Float, Desc: ` , coefficient of x^4 term`}, {Keyword: "TwSSM2Sh(5)", Type: Float, Desc: ` , coefficient of x^5 term`}, {Keyword: "TwSSM2Sh(6)", Type: Float, Desc: ` , coefficient of x^6 term`}, })
View Source
var FASTSchema = NewSchema("FAST", []SchemaEntry{ {Heading: "OpenFAST Input File"}, {Keyword: "Title", Type: String, Desc: `File title`, Format: formatTitle, Parse: parseTitle}, {Heading: "Simulation Control"}, {Keyword: "Echo", Type: Bool, Desc: `Echo input data to <RootName>.ech`, Unit: "flag"}, {Keyword: "AbortLevel", Type: String, Desc: `Error level when simulation should abort`, Unit: "string", Options: []Option{{"WARNING", "WARNING"}, {"SEVERE", "SEVERE"}, {"FATAL", "FATAL"}}}, {Keyword: "TMax", Type: Float, Desc: `Total run time`, Unit: "sec"}, {Keyword: "DT", Type: Float, Desc: `Recommended module time step`, Unit: "sec"}, {Keyword: "InterpOrder", Type: Int, Desc: `Interpolation order for input/output time history`, Unit: "-", Options: []Option{{1, "Linear"}, {2, "Quadratic"}}}, {Keyword: "NumCrctn", Type: Int, Desc: `Number of correction iterations {0=explicit calculation, i.e., no corrections}`, Unit: "-"}, {Keyword: "DT_UJac", Type: Float, Desc: `Time between calls to get Jacobians`, Unit: "sec"}, {Keyword: "UJacSclFact", Type: Float, Desc: `Scaling factor used in Jacobians`, Unit: "-"}, {Heading: "Feature switches and flags"}, {Keyword: "CompElast", Type: Int, Desc: `Compute structural dynamics`, Unit: "switch", Options: []Option{{1, "ElastoDyn"}, {2, "ElastoDyn + BeamDyn for blades"}}}, {Keyword: "CompInflow", Type: Int, Desc: `Compute inflow wind velocities`, Unit: "switch", Options: []Option{{0, "Still Air"}, {1, "InflowWind"}, {2, "External (OpenFOAM)"}}}, {Keyword: "CompAero", Type: Int, Desc: `Compute aerodynamic loads`, Unit: "switch", Options: []Option{{0, "None"}, {1, "AeroDyn v14"}, {2, "AeroDyn v15"}}}, {Keyword: "CompServo", Type: Int, Desc: `Compute control and electrical-drive dynamics`, Unit: "switch", Options: []Option{{0, "None"}, {1, "ServoDyn"}}}, {Keyword: "CompHydro", Type: Int, Desc: `Compute hydrodynamic loads`, Unit: "switch", Options: []Option{{0, "None"}, {1, "HydroDyn"}}}, {Keyword: "CompSub", Type: Int, Desc: `Compute sub-structural dynamics`, Unit: "switch", Options: []Option{{0, "None"}, {1, "SubDyn"}, {2, "External Platform MCKF"}}}, {Keyword: "CompMooring", Type: Int, Desc: `Compute mooring system`, Unit: "switch", Options: []Option{{0, "None"}, {1, "MAP++"}, {2, "FEAMooring"}, {3, "MoorDyn"}, {4, "OrcaFlex"}}}, {Keyword: "CompIce", Type: Int, Desc: `Compute ice loads`, Unit: "switch", Options: []Option{{0, "None"}, {1, "IceFloe"}, {2, "IceDyn"}}}, {Keyword: "MHK", Type: Int, Desc: `MHK turbine type`, Unit: "switch", Options: []Option{{0, "Not an MHK turbine"}, {1, "Fixed MHK turbine"}, {2, "Floating MHK turbine"}}}, {Heading: "Environmental Conditions"}, {Keyword: "Gravity", Type: Float, Desc: `Gravitational acceleration`, Unit: "m/s^2"}, {Keyword: "AirDens", Type: Float, Desc: `Air density`, Unit: "kg/m^3"}, {Keyword: "WtrDens", Type: Float, Desc: `Water density`, Unit: "kg/m^3"}, {Keyword: "KinVisc", Type: Float, Desc: `Kinematic viscosity of working fluid`, Unit: "m^2/s"}, {Keyword: "SpdSound", Type: Float, Desc: `Speed of sound in working fluid`, Unit: "m/s"}, {Keyword: "Patm", Type: Float, Desc: `Atmospheric pressure [used only for an MHK turbine cavitation check]`, Unit: "Pa"}, {Keyword: "Pvap", Type: Float, Desc: `Vapour pressure of working fluid [used only for an MHK turbine cavitation check]`, Unit: "Pa"}, {Keyword: "WtrDpth", Type: Float, Desc: `Water depth`, Unit: "m"}, {Keyword: "MSL2SWL", Type: Float, Desc: `Offset between still-water level and mean sea level [positive upward]`, Unit: "m"}, {Heading: "Input Files"}, {Keyword: "EDFile", Type: String, Desc: `Name of file containing ElastoDyn input parameters`, Unit: "quoted string"}, {Keyword: "BDBldFile(1)", Type: String, Desc: `Name of file containing BeamDyn input parameters for blade 1`, Unit: "quoted string", Show: []Condition{{"CompElast", "==", 2}}}, {Keyword: "BDBldFile(2)", Type: String, Desc: `Name of file containing BeamDyn input parameters for blade 2`, Unit: "quoted string", Show: []Condition{{"CompElast", "==", 2}}}, {Keyword: "BDBldFile(3)", Type: String, Desc: `Name of file containing BeamDyn input parameters for blade 3`, Unit: "quoted string", Show: []Condition{{"CompElast", "==", 2}}}, {Keyword: "InflowFile", Type: String, Desc: `Name of file containing inflow wind input parameters`, Unit: "quoted string", Show: []Condition{{"CompInflow", "==", 1}}}, {Keyword: "AeroFile", Type: String, Desc: `Name of file containing aerodynamic input parameters`, Unit: "quoted string", Show: []Condition{{"CompAero", "==", 1}}}, {Keyword: "ServoFile", Type: String, Desc: `Name of file containing control and electrical-drive input parameters`, Unit: "quoted string", Show: []Condition{{"CompServo", "==", 1}}}, {Keyword: "HydroFile", Type: String, Desc: `Name of file containing hydrodynamic input parameters`, Unit: "quoted string", Show: []Condition{{"CompHydro", "==", 1}}}, {Keyword: "SubFile", Type: String, Desc: `Name of file containing sub-structural input parameters`, Unit: "quoted string", Show: []Condition{{"CompSub", "==", 1}}}, {Keyword: "MooringFile", Type: String, Desc: `Name of file containing mooring system input parameters`, Unit: "quoted string", Show: []Condition{{"CompMooring", ">", 0}}}, {Keyword: "IceFile", Type: String, Desc: `Name of file containing ice input parameters`, Unit: "quoted string", Show: []Condition{{"CompIce", ">", 0}}}, {Heading: "Output"}, {Keyword: "SumPrint", Type: Bool, Desc: `Print summary data to '<RootName>.sum'`, Unit: "flag"}, {Keyword: "SttsTime", Type: Float, Desc: `Amount of time between screen status messages`, Unit: "sec"}, {Keyword: "ChkptTime", Type: Float, Desc: `Amount of time between creating checkpoint files for potential restart`, Unit: "sec"}, {Keyword: "DT_Out", Type: Float, CanBeDefault: true, Desc: `Time step for tabular output (or "default")`, Unit: "sec"}, {Keyword: "TStart", Type: Float, Desc: `Time to begin tabular output`, Unit: "sec"}, {Keyword: "OutFileFmt", Type: Int, Desc: `Format for tabular (time-marching) output file`, Unit: "switch", Options: []Option{{0, "uncompressed binary [<RootName>.outb]"}, {1, "text file [<RootName>.out]"}, {2, "binary file [<RootName>.outb]"}, {3, "both 1 and 2"}}}, {Keyword: "TabDelim", Type: Bool, Desc: `Use tab delimiters in text tabular output file?`, Unit: "flag", Options: []Option{{true, "Tabs"}, {false, "Spaces"}}}, {Keyword: "OutFmt", Type: String, Desc: `Format used for text tabular output, excluding the time channel. Resulting field should be 10 characters`, Unit: "quoted string"}, {Heading: "Linearization"}, {Keyword: "Linearize", Type: Bool, Desc: `Linearization analysis`}, {Keyword: "CalcSteady", Type: Bool, Desc: `Calculate a steady-state periodic operating point before linearization?`, Unit: "flag", Show: []Condition{{"Linearize", "==", true}}}, {Keyword: "TrimCase", Type: Int, Desc: `Controller parameter to be trimmed`, Unit: "-", Options: []Option{{1, "yaw"}, {2, "torque"}, {3, "pitch"}}, Show: []Condition{{"CalcSteady", "==", true}}}, {Keyword: "TrimTol", Type: Float, Desc: `Tolerance for the rotational speed convergence`, Unit: "-", Show: []Condition{{"CalcSteady", "==", true}}}, {Keyword: "TrimGain", Type: Float, Desc: `Proportional gain for the rotational speed error (>0) (rad/(rad/s) for yaw or pitch; Nm/(rad/s) for torque)`, Show: []Condition{{"CalcSteady", "==", true}}}, {Keyword: "Twr_Kdmp", Type: Float, Desc: `Damping factor for the tower`, Unit: "N/(m/s)", Show: []Condition{{"CalcSteady", "==", true}}}, {Keyword: "Bld_Kdmp", Type: Float, Desc: `Damping factor for the blades`, Unit: "N/(m/s)", Show: []Condition{{"CalcSteady", "==", true}}}, {Keyword: "NLinTimes", Type: Int, Desc: `Number of times to linearize [>=1]`, Show: []Condition{{"Linearize", "==", true}}}, {Keyword: "LinTimes", Type: Float, Dims: 1, Desc: `List of times at which to linearize [1 to NLinTimes] [used only when Linearize=True and CalcSteady=False]`, Unit: "sec", Show: []Condition{{"Linearize", "==", true}, {"CalcSteady", "==", false}}}, {Keyword: "LinInputs", Type: Int, Desc: `Inputs included in linearization`, Unit: "switch", Options: []Option{{0, "none"}, {1, "standard"}, {2, "all module inputs (debug)"}}, Show: []Condition{{"Linearize", "==", true}}}, {Keyword: "LinOutputs", Type: Int, Desc: `Outputs included in linearization`, Unit: "switch", Options: []Option{{0, "none"}, {1, "from OutList(s)"}, {2, "all module outputs (debug)"}}, Show: []Condition{{"Linearize", "==", true}}}, {Keyword: "LinOutJac", Type: Bool, Desc: `Include full Jacobians in linearization output (for debug)`, Unit: "flag", Show: []Condition{{"Linearize", "==", true}, {"LinInputs", "==", 2}, {"LinOutputs", "==", 2}}}, {Keyword: "LinOutMod", Type: Bool, Desc: `Write module-level linearization output files in addition to output for full system?`, Unit: "flag", Show: []Condition{{"Linearize", "==", true}}}, {Heading: "Visualization"}, {Keyword: "WrVTK", Type: Int, Desc: `VTK visualization data output`, Unit: "switch", Options: []Option{{0, "none"}, {1, "initialization data only"}, {2, "animation"}, {3, "mode shapes"}}}, {Keyword: "VTK_type", Type: Int, Desc: `Type of VTK visualization data`, Unit: "switch", Options: []Option{{1, "surfaces"}, {2, "basic meshes (lines/points)"}, {3, "all meshes (debug)"}}, Show: []Condition{{"WrVTK", ">", 0}}}, {Keyword: "VTK_fields", Type: Bool, Desc: `Write mesh fields to VTK data files?`, Unit: "flag", Show: []Condition{{"WrVTK", ">", 0}}}, {Keyword: "VTK_fps", Type: Float, Desc: `Frame rate for VTK output (frames per second) {will use closest integer multiple of DT}`, Show: []Condition{{"WrVTK", "in", []int{2, 3}}}}, })
View Source
var InflowWindSchema = NewSchema("InflowWind", []SchemaEntry{ {Heading: "InflowWind Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "General"}, {Keyword: "Echo", Type: Bool, Desc: `Echo input data to <RootName>.ech (flag)`}, {Keyword: "WindType", Type: Int, Desc: `switch for wind file type`, Options: []Option{{1, "steady"}, {2, "uniform"}, {3, "binary TurbSim FF"}, {4, "binary Bladed-style FF"}, {5, "HAWC format"}, {6, "User defined"}, {7, "native Bladed FF"}}}, {Keyword: "PropagationDir", Type: Float, Desc: `Direction of wind propagation (meteorological rotation from aligned with X (positive rotates towards -Y) -- degrees) (not used for native Bladed format WindType=7)`}, {Keyword: "VFlowAng", Type: Float, Desc: `Upflow angle (degrees) (not used for native Bladed format WindType=7)`}, {Keyword: "NWindVel", Type: Int, Desc: `Number of points to output the wind velocity`, Options: []Option{{0, "0"}, {1, "1"}, {2, "2"}, {3, "3"}, {4, "4"}, {5, "5"}, {6, "6"}, {7, "7"}, {8, "8"}, {9, "9"}}}, {Keyword: "WindVxiList", Type: Float, Dims: 1, Desc: `List of coordinates in the inertial X direction`, Unit: "m"}, {Keyword: "WindVyiList", Type: Float, Dims: 1, Desc: `List of coordinates in the inertial Y direction`, Unit: "m"}, {Keyword: "WindVziList", Type: Float, Dims: 1, Desc: `List of coordinates in the inertial Z direction`, Unit: "m"}, {Heading: "Parameters for Steady Wind Conditions [used only for WindType = 1]"}, {Keyword: "HWindSpeed", Type: Float, Desc: `Horizontal wind speed`, Unit: "m/s"}, {Keyword: "RefHt", Type: Float, Desc: `Reference height for horizontal wind speed`, Unit: "m"}, {Keyword: "PLExp", Type: Float, Desc: `Power law exponent`, Unit: "-"}, {Heading: "Parameters for Uniform wind file [used only for WindType = 2]"}, {Keyword: "FileName_Uni", Type: String, Desc: `Filename of time series data for uniform wind field`, Unit: "-"}, {Keyword: "RefHt_Uni", Type: Float, Desc: `Reference height for horizontal wind speed`, Unit: "m"}, {Keyword: "RefLength", Type: Float, Desc: `Reference length for linear horizontal and vertical sheer`, Unit: "-"}, {Heading: "Parameters for Binary TurbSim Full-Field files [used only for WindType = 3]"}, {Keyword: "FileName_BTS", Type: String, Desc: `Name of the Full field wind file to use (.bts)`}, {Heading: "Parameters for Binary Bladed-style Full-Field files [used only for WindType = 4 or WindType = 7]"}, {Keyword: "FileNameRoot", Type: String, Desc: `WindType=4: Rootname of the full-field wind file to use (.wnd, .sum); WindType=7: name of the intermediate file with wind scaling values`}, {Keyword: "TowerFile", Type: Bool, Desc: `Have tower file (.twr) (flag) ignored when WindType = 7`}, {Heading: "Parameters for HAWC-format binary files [Only used with WindType = 5] //==="}, {Keyword: "FileName_u", Type: String, Desc: `name of the file containing the u-component fluctuating wind (.bin)`}, {Keyword: "FileName_v", Type: String, Desc: `name of the file containing the v-component fluctuating wind (.bin)`}, {Keyword: "FileName_w", Type: String, Desc: `name of the file containing the w-component fluctuating wind (.bin)`}, {Keyword: "NX", Type: Int, Desc: `number of grids in the x direction (in the 3 files above)`, Unit: "-"}, {Keyword: "NY", Type: Int, Desc: `number of grids in the y direction (in the 3 files above)`, Unit: "-"}, {Keyword: "NZ", Type: Int, Desc: `number of grids in the z direction (in the 3 files above)`, Unit: "-"}, {Keyword: "DX", Type: Float, Desc: `distance (in meters) between points in the x direction`, Unit: "m"}, {Keyword: "DY", Type: Float, Desc: `distance (in meters) between points in the y direction`, Unit: "m"}, {Keyword: "DZ", Type: Float, Desc: `distance (in meters) between points in the z direction`, Unit: "m"}, {Keyword: "RefHt_Hawc", Type: Float, Desc: `reference height; the height (in meters) of the vertical center of the grid`, Unit: "m"}, {Heading: "Scaling parameters for turbulence"}, {Keyword: "ScaleMethod", Type: Int, Desc: `Turbulence scaling method`, Options: []Option{{0, "none"}, {1, "direct scaling"}, {2, "calculate scaling factor based on a desired standard deviation"}}}, {Keyword: "SFx", Type: Float, Desc: `Turbulence scaling factor for the x direction [ScaleMethod=1]`, Unit: "-"}, {Keyword: "SFy", Type: Float, Desc: `Turbulence scaling factor for the y direction [ScaleMethod=1]`, Unit: "-"}, {Keyword: "SFz", Type: Float, Desc: `Turbulence scaling factor for the z direction [ScaleMethod=1]`, Unit: "-"}, {Keyword: "SigmaFx", Type: Float, Desc: `Turbulence standard deviation to calculate scaling from in x direction [ScaleMethod=2]`, Unit: "m/s"}, {Keyword: "SigmaFy", Type: Float, Desc: `Turbulence standard deviation to calculate scaling from in y direction [ScaleMethod=2]`, Unit: "m/s"}, {Keyword: "SigmaFz", Type: Float, Desc: `Turbulence standard deviation to calculate scaling from in z direction [ScaleMethod=2]`, Unit: "m/s"}, {Heading: "Mean wind profile parameters (added to HAWC-format files)"}, {Keyword: "URef", Type: Float, Desc: `Mean u-component wind speed at the reference height`, Unit: "m/s"}, {Keyword: "WindProfile", Type: Int, Desc: `Wind profile type`, Options: []Option{{0, "constant"}, {1, "logarithmic"}, {2, "power law"}}}, {Keyword: "PLExp_Hawc", Type: Float, Desc: `Power law exponent (used for PL wind profile type only)`, Unit: "-"}, {Keyword: "Z0", Type: Float, Desc: `Surface roughness length (used for LG wind profile type only)`, Unit: "m"}, {Keyword: "XOffset", Type: Float, Desc: `Initial offset in +x direction (shift of wind box)`}, {Heading: "Output"}, {Keyword: "SumPrint", Type: Bool, Desc: `Print summary data to <RootName>.IfW.sum (flag)`}, {Keyword: "OutList", Type: String, Dims: 1, Format: formatOutList, Parse: parseOutList, Desc: `The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels`, Unit: "-"}, })
View Source
var Schemas = map[string]Schema{ "AD15AirfoilInfo": AD15AirfoilInfoSchema, "AeroDyn14": AeroDyn14Schema, "AeroDyn15": AeroDyn15Schema, "AeroDynBlade": AeroDynBladeSchema, "BeamDyn": BeamDynSchema, "BeamDynBlade": BeamDynBladeSchema, "ElastoDyn": ElastoDynSchema, "ElastoDynBlade": ElastoDynBladeSchema, "ElastoDynTower": ElastoDynTowerSchema, "FAST": FASTSchema, "InflowWind": InflowWindSchema, "ServoDyn": ServoDynSchema, "TurbSim": TurbSimSchema, }
View Source
var ServoDynSchema = NewSchema("ServoDyn", []SchemaEntry{ {Heading: "ServoDyn Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "Simulation Control"}, {Keyword: "Echo", Type: Bool, Desc: `Echo input data to <RootName>.ech (flag)`}, {Keyword: "DT", Type: Float, CanBeDefault: true, Desc: `Communication interval for controllers (s) (or "default")`}, {Heading: "Pitch Control"}, {Keyword: "PCMode", Type: Int, Desc: `Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)`}, {Keyword: "TPCOn", Type: Float, Desc: `Time to enable active pitch control (s) [unused when PCMode=0]`}, {Keyword: "TPitManS(1)", Type: Float, Desc: `Time to start override pitch maneuver for blade 1 and end standard pitch control (s)`}, {Keyword: "TPitManS(2)", Type: Float, Desc: `Time to start override pitch maneuver for blade 2 and end standard pitch control (s)`}, {Keyword: "TPitManS(3)", Type: Float, Desc: `Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades]`}, {Keyword: "PitManRat(1)", Type: Float, Desc: `Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)`}, {Keyword: "PitManRat(2)", Type: Float, Desc: `Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)`}, {Keyword: "PitManRat(3)", Type: Float, Desc: `Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]`}, {Keyword: "BlPitchF(1)", Type: Float, Desc: `Blade 1 final pitch for pitch maneuvers (degrees)`}, {Keyword: "BlPitchF(2)", Type: Float, Desc: `Blade 2 final pitch for pitch maneuvers (degrees)`}, {Keyword: "BlPitchF(3)", Type: Float, Desc: `Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]`}, {Heading: "Generator And Torque Control"}, {Keyword: "VSContrl", Type: Int, Desc: `Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)`}, {Keyword: "GenModel", Type: Int, Desc: `Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0]`}, {Keyword: "GenEff", Type: Float, Desc: `Generator efficiency [ignored by the Thevenin and user-defined generator models] (%)`}, {Keyword: "GenTiStr", Type: Bool, Desc: `Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag)`}, {Keyword: "GenTiStp", Type: Bool, Desc: `Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag)`}, {Keyword: "SpdGenOn", Type: Float, Desc: `Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False]`}, {Keyword: "TimGenOn", Type: Float, Desc: `Time to turn on the generator for a startup (s) [used only when GenTiStr=True]`}, {Keyword: "TimGenOf", Type: Float, Desc: `Time to turn off the generator (s) [used only when GenTiStp=True]`}, {Heading: "Simple Variable-Speed Torque Control"}, {Keyword: "VS_RtGnSp", Type: Float, Desc: `Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1]`}, {Keyword: "VS_RtTq", Type: Float, Desc: `Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1]`}, {Keyword: "VS_Rgn2K", Type: Float, Desc: `Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1]`}, {Keyword: "VS_SlPc", Type: Float, Desc: `Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1]`}, {Heading: "Simple Induction Generator"}, {Keyword: "SIG_SlPc", Type: Float, Desc: `Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1]`}, {Keyword: "SIG_SySp", Type: Float, Desc: `Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1]`}, {Keyword: "SIG_RtTq", Type: Float, Desc: `Rated torque (N-m) [used only when VSContrl=0 and GenModel=1]`}, {Keyword: "SIG_PORt", Type: Float, Desc: `Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1]`}, {Heading: "Thevenin-Equivalent Induction Generator"}, {Keyword: "TEC_Freq", Type: Float, Desc: `Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2]`}, {Keyword: "TEC_NPol", Type: Int, Desc: `Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2]`}, {Keyword: "TEC_SRes", Type: Float, Desc: `Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2]`}, {Keyword: "TEC_RRes", Type: Float, Desc: `Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2]`}, {Keyword: "TEC_VLL", Type: Float, Desc: `Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2]`}, {Keyword: "TEC_SLR", Type: Float, Desc: `Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]`}, {Keyword: "TEC_RLR", Type: Float, Desc: `Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]`}, {Keyword: "TEC_MR", Type: Float, Desc: `Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2]`}, {Heading: "High-Speed Shaft Brake"}, {Keyword: "HSSBrMode", Type: Int, Desc: `HSS brake model {0: none, 1: simple, 3: user-defined from routine UserHSSBr, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)`}, {Keyword: "THSSBrDp", Type: Float, Desc: `Time to initiate deployment of the HSS brake (s)`}, {Keyword: "HSSBrDT", Type: Float, Desc: `Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1]`}, {Keyword: "HSSBrTqF", Type: Float, Desc: `Fully deployed HSS-brake torque (N-m)`}, {Heading: "Nacelle-Yaw Control"}, {Keyword: "YCMode", Type: Int, Desc: `Yaw control mode {0: none, 3: user-defined from routine UserYawCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)`}, {Keyword: "TYCOn", Type: Float, Desc: `Time to enable active yaw control (s) [unused when YCMode=0]`}, {Keyword: "YawNeut", Type: Float, Desc: `Neutral yaw position--yaw spring force is zero at this yaw (degrees)`}, {Keyword: "YawSpr", Type: Float, Desc: `Nacelle-yaw spring constant (N-m/rad)`}, {Keyword: "YawDamp", Type: Float, Desc: `Nacelle-yaw damping constant (N-m/(rad/s))`}, {Keyword: "TYawManS", Type: Float, Desc: `Time to start override yaw maneuver and end standard yaw control (s)`}, {Keyword: "YawManRat", Type: Float, Desc: `Yaw maneuver rate (in absolute value) (deg/s)`}, {Keyword: "NacYawF", Type: Float, Desc: `Final yaw angle for override yaw maneuvers (degrees)`}, {Heading: "Aerodynamic Flow Control"}, {Keyword: "AfCmode", Type: Int, Desc: `Airfoil control mode {0: none, 1: cosine wave cycle, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)`}, {Keyword: "AfC_Mean", Type: Float, Desc: `Mean level for cosine cycling or steady value (-) [used only with AfCmode==1]`}, {Keyword: "AfC_Amp", Type: Float, Desc: `Amplitude for for cosine cycling of flap signal (-) [used only with AfCmode==1]`}, {Keyword: "AfC_Phase", Type: Float, Desc: `Phase relative to the blade azimuth (0 is vertical) for for cosine cycling of flap signal (deg) [used only with AfCmode==1]`}, {Heading: "Structural Control"}, {Keyword: "NumBStC", Type: Int, Desc: `Number of blade structural controllers (integer)`}, {Keyword: "BStCfiles", Type: String, Desc: `Name of the files for blade structural controllers (quoted strings) [unused when NumBStC==0]`}, {Keyword: "NumNStC", Type: Int, Desc: `Number of nacelle structural controllers (integer)`}, {Keyword: "NStCfiles", Type: String, Desc: `Name of the files for nacelle structural controllers (quoted strings) [unused when NumNStC==0]`}, {Keyword: "NumTStC", Type: Int, Desc: `Number of tower structural controllers (integer)`}, {Keyword: "TStCfiles", Type: String, Desc: `Name of the files for tower structural controllers (quoted strings) [unused when NumTStC==0]`}, {Keyword: "NumSStC", Type: Int, Desc: `Number of substructure structural controllers (integer)`}, {Keyword: "SStCfiles", Type: String, Desc: `Name of the files for substructure structural controllers (quoted strings) [unused when NumSStC==0]`}, {Heading: "Cable Control"}, {Keyword: "CCmode", Type: Int, Desc: `Cable control mode {0: none, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)`}, {Heading: "BLADED Interface"}, {Keyword: "DLL_FileName", Type: String, Desc: `Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface]`}, {Keyword: "DLL_InFile", Type: String, Desc: `Name of input file sent to the DLL (-) [used only with Bladed Interface]`}, {Keyword: "DLL_ProcName", Type: String, Desc: `Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface]`}, {Keyword: "DLL_DT", Type: Float, CanBeDefault: true, Desc: `Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface]`}, {Keyword: "DLL_Ramp", Type: Bool, Desc: `Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface]`}, {Keyword: "BPCutoff", Type: Float, Desc: `Cutoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface]`}, {Keyword: "NacYaw_North", Type: Float, Desc: `Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface]`}, {Keyword: "Ptch_Cntrl", Type: Int, Desc: `Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface]`}, {Keyword: "Ptch_SetPnt", Type: Float, Desc: `Record 5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface]`}, {Keyword: "Ptch_Min", Type: Float, Desc: `Record 6: Minimum pitch angle (deg) [used only with Bladed Interface]`}, {Keyword: "Ptch_Max", Type: Float, Desc: `Record 7: Maximum pitch angle (deg) [used only with Bladed Interface]`}, {Keyword: "PtchRate_Min", Type: Float, Desc: `Record 8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface]`}, {Keyword: "PtchRate_Max", Type: Float, Desc: `Record 9: Maximum pitch rate (deg/s) [used only with Bladed Interface]`}, {Keyword: "Gain_OM", Type: Float, Desc: `Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface]`}, {Keyword: "GenSpd_MinOM", Type: Float, Desc: `Record 17: Minimum generator speed (rpm) [used only with Bladed Interface]`}, {Keyword: "GenSpd_MaxOM", Type: Float, Desc: `Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface]`}, {Keyword: "GenSpd_Dem", Type: Float, Desc: `Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface]`}, {Keyword: "GenTrq_Dem", Type: Float, Desc: `Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface]`}, {Keyword: "GenPwr_Dem", Type: Float, Desc: `Record 13: Demanded power (W) [used only with Bladed Interface]`}, {Heading: "BLADED Interface Torque-Speed Look-Up Table"}, {Keyword: "DLL_NumTrq", Type: Int, Desc: `Record 26: No. of points in torque-speed look-up table {0 = none and use the optimal mode parameters; nonzero = ignore the optimal mode PARAMETERs by setting Record 16 to 0.0} (-) [used only with Bladed Interface]`}, {Keyword: "GenSpdTrq", Dims: 1, Table: &Table{ Columns: []TableColumn{ {Keyword: "GenSpd_TLU", Type: Float, Dims: 1, Desc: `GenSpd_TLU`}, {Keyword: "GenTrq_TLU", Type: Float, Dims: 1, Desc: `GenTrq_TLU`}, }, }, Parse: parseGenSpdTrq, Format: formatGenSpdTrq, }, {Heading: "Output"}, {Keyword: "SumPrint", Type: Bool, Desc: `Print summary data to <RootName>.sum (flag) (currently unused)`}, {Keyword: "OutFile", Type: Int, Desc: `Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)`}, {Keyword: "TabDelim", Type: Bool, Desc: `Use tab delimiters in text tabular output file? (flag) (currently unused)`}, {Keyword: "OutFmt", Type: String, Desc: `Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused)`}, {Keyword: "TStart", Type: Float, Desc: `Time to begin tabular output (s) (currently unused)`}, {Keyword: "OutList", Type: String, Dims: 1, Format: formatOutList, Parse: parseOutList, Desc: `The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)`}, })
View Source
var TurbSimSchema = NewSchema("TurbSim", []SchemaEntry{ {Heading: "TurbSim Input File"}, {Keyword: "Title", Type: String, Format: formatTitle, Parse: parseTitle}, {Heading: "Runtime Options"}, {Keyword: "Echo", Type: Bool, Desc: `Echo input data to <RootName>.ech (flag)`}, {Keyword: "RandSeed1", Type: Int, Desc: `First random seed (-2147483648 to 2147483647)`}, {Keyword: "RandSeed2", Type: String, Desc: `Second random seed (-2147483648 to 2147483647) for intrinsic pRNG, or an alternative pRNG: "RanLux" or "RNSNLW"`}, {Keyword: "WrBHHTP", Type: Bool, Desc: `Output hub-height turbulence parameters in binary form? (Generates RootName.bin)`}, {Keyword: "WrFHHTP", Type: Bool, Desc: `Output hub-height turbulence parameters in formatted form? (Generates RootName.dat)`}, {Keyword: "WrADHH", Type: Bool, Desc: `Output hub-height time-series data in AeroDyn form? (Generates RootName.hh)`}, {Keyword: "WrADFF", Type: Bool, Desc: `Output full-field time-series data in TurbSim/AeroDyn form? (Generates RootName.bts)`}, {Keyword: "WrBLFF", Type: Bool, Desc: `Output full-field time-series data in BLADED/AeroDyn form? (Generates RootName.wnd)`}, {Keyword: "WrADTWR", Type: Bool, Desc: `Output tower time-series data? (Generates RootName.twr)`}, {Keyword: "WrFMTFF", Type: Bool, Desc: `Output full-field time-series data in formatted (readable) form? (Generates RootName.u, RootName.v, RootName.w)`}, {Keyword: "WrACT", Type: Bool, Desc: `Output coherent turbulence time steps in AeroDyn form? (Generates RootName.cts)`}, {Keyword: "Clockwise", Type: Bool, Desc: `Clockwise rotation looking downwind? (used only for full-field binary files - not necessary for AeroDyn)`}, {Keyword: "ScaleIEC", Type: Int, Desc: `Scale IEC turbulence models to exact target standard deviation? [0=no additional scaling; 1=use hub scale uniformly; 2=use individual scales]`}, {Heading: "-"}, {Heading: "Turbine/Model Specifications"}, {Keyword: "NumGrid_Z", Type: Int, Desc: `Vertical grid-point matrix dimension`}, {Keyword: "NumGrid_Y", Type: Int, Desc: `Horizontal grid-point matrix dimension`}, {Keyword: "TimeStep", Type: Float, Desc: `Time step [seconds]`}, {Keyword: "AnalysisTime", Type: Float, Desc: `Length of analysis time series [seconds] (program will add time if necessary: AnalysisTime = MAX(AnalysisTime, UsableTime+GridWidth/MeanHHWS) )`}, {Keyword: "UsableTime", Type: Float, Format: formatUsableTime, Parse: parseUsableTime, Desc: `Usable length of output time series [seconds] (program will add GridWidth/MeanHHWS seconds unless UsableTime is "ALL")`}, {Keyword: "HubHt", Type: Float, Desc: `Hub height [m] (should be > 0.5*GridHeight)`}, {Keyword: "GridHeight", Type: Float, Desc: `Grid height [m]`}, {Keyword: "GridWidth", Type: Float, Desc: `Grid width [m] (should be >= 2*(RotorRadius+ShaftLength))`}, {Keyword: "VFlowAng", Type: Float, Desc: `Vertical mean flow (uptilt) angle [degrees]`}, {Keyword: "HFlowAng", Type: Float, Desc: `Horizontal mean flow (skew) angle [degrees]`}, {Heading: "-"}, {Heading: "Meteorological Boundary Conditions"}, {Keyword: "TurbModel", Type: String, Desc: `Turbulence model ("IECKAI","IECVKM","GP_LLJ","NWTCUP","SMOOTH","WF_UPW","WF_07D","WF_14D","TIDAL","API","USRINP","TIMESR", or "NONE")`}, {Keyword: "UserFile", Type: String, Desc: `Name of the file that contains inputs for user-defined spectra or time series inputs (used only for "USRINP" and "TIMESR" models)`}, {Keyword: "IECstandard", Type: String, Desc: `Number of IEC 61400-x standard (x=1,2, or 3 with optional 61400-1 edition number (i.e. "1-Ed2") )`}, {Keyword: "IECturbc", Type: String, Desc: `IEC turbulence characteristic ("A", "B", "C" or the turbulence intensity in percent) ("KHTEST" option with NWTCUP model, not used for other models)`}, {Keyword: "IEC_WindType", Type: String, Desc: `IEC turbulence type ("NTM"=normal, "xETM"=extreme turbulence, "xEWM1"=extreme 1-year wind, "xEWM50"=extreme 50-year wind, where x=wind turbine class 1, 2, or 3)`}, {Keyword: "ETMc", Type: Float, CanBeDefault: true, Desc: `IEC Extreme Turbulence Model "c" parameter [m/s]`}, {Keyword: "WindProfileType", Type: String, CanBeDefault: true, Desc: `Velocity profile type ("LOG";"PL"=power law;"JET";"H2L"=Log law for TIDAL model;"API";"USR";"TS";"IEC"=PL on rotor disk, LOG elsewhere; or "default")`}, {Keyword: "ProfileFile", Type: String, Desc: `Name of the file that contains input profiles for WindProfileType="USR" and/or TurbModel="USRVKM" [-]`}, {Keyword: "RefHt", Type: Float, Desc: `Height of the reference velocity (URef) [m]`}, {Keyword: "URef", Type: Float, CanBeDefault: true, Desc: `Mean (total) velocity at the reference height [m/s] (or "default" for JET velocity profile) [must be 1-hr mean for API model; otherwise is the mean over AnalysisTime seconds]`}, {Keyword: "ZJetMax", Type: Float, CanBeDefault: true, Desc: `Jet height [m] (used only for JET velocity profile, valid 70-490 m)`}, {Keyword: "PLExp", Type: Float, CanBeDefault: true, Desc: `Power law exponent [-] (or "default")`}, {Keyword: "Z0", Type: Float, CanBeDefault: true, Desc: `Surface roughness length [m] (or "default")`}, {Heading: "-"}, {Heading: "Non-IEC Meteorological Boundary Conditions"}, {Keyword: "Latitude", Type: Float, CanBeDefault: true, Desc: `Site latitude [degrees] (or "default")`}, {Keyword: "RICH_NO", Type: Float, Desc: `Gradient Richardson number [-]`}, {Keyword: "UStar", Type: Float, CanBeDefault: true, Desc: `Friction or shear velocity [m/s] (or "default")`}, {Keyword: "ZI", Type: Float, CanBeDefault: true, Desc: `Mixing layer depth [m] (or "default")`}, {Keyword: "PC_UW", Type: Float, CanBeDefault: true, Desc: `Hub mean uw Reynolds stress [m^2/s^2] (or "default" or "none")`}, {Keyword: "PC_UV", Type: Float, CanBeDefault: true, Desc: `Hub mean uv Reynolds stress [m^2/s^2] (or "default" or "none")`}, {Keyword: "PC_VW", Type: Float, CanBeDefault: true, Desc: `Hub mean vw Reynolds stress [m^2/s^2] (or "default" or "none")`}, {Heading: "-"}, {Heading: "Spatial Coherence Parameters"}, {Keyword: "SCMod1", Type: String, CanBeDefault: true, Desc: `u-component coherence model ("GENERAL", "IEC", "API", "NONE", or "default")`}, {Keyword: "SCMod2", Type: String, CanBeDefault: true, Desc: `v-component coherence model ("GENERAL", "IEC", "NONE", or "default")`}, {Keyword: "SCMod3", Type: String, CanBeDefault: true, Desc: `w-component coherence model ("GENERAL", "IEC", "NONE", or "default")`}, {Keyword: "InCDec1", Type: Float, CanBeDefault: true, Desc: `u-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")`}, {Keyword: "InCDec2", Type: Float, CanBeDefault: true, Desc: `v-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")`}, {Keyword: "InCDec3", Type: Float, CanBeDefault: true, Desc: `w-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default")`}, {Keyword: "CohExp", Type: Float, CanBeDefault: true, Desc: `Coherence exponent for general model [-] (or "default")`}, {Heading: "-"}, {Heading: "Coherent Turbulence Scaling Parameters"}, {Keyword: "CTEventPath", Type: String, Desc: `Name of the path where event data files are located`}, {Keyword: "CTEventFile", Type: String, Desc: `Type of event files ("LES", "DNS", or "RANDOM")`}, {Keyword: "Randomize", Type: Bool, Desc: `Randomize the disturbance scale and locations? (true/false)`}, {Keyword: "DistScl", Type: Float, Desc: `Disturbance scale [-] (ratio of event dataset height to rotor disk). (Ignored when Randomize = true.)`}, {Keyword: "CTLy", Type: Float, Desc: `Fractional location of tower centerline from right [-] (looking downwind) to left side of the dataset. (Ignored when Randomize = true.)`}, {Keyword: "CTLz", Type: Float, Desc: `Fractional location of hub height from the bottom of the dataset. [-] (Ignored when Randomize = true.)`}, {Keyword: "CTStartTime", Type: Float, Desc: `Minimum start time for coherent structures in RootName.cts [seconds]`}, })
Functions ¶
This section is empty.
Types ¶
type AD15AirfoilInfo ¶
type AD15AirfoilInfo struct { InterpOrd int // Interpolation order to use for quasi-steady table lookup {1=linear; 3=cubic spline; "default"} [default=3] NonDimArea float64 // The non-dimensional area of the airfoil (set to 1.0 if unsure or unneeded) NumCoords int // The number of coordinates in the airfoil shape file. Set to zero if coordinates not included. BL_file string // The file name including the boundary layer characteristics of the profile. Ignored if the aeroacoustic module is not called. NumTabs int // Number of airfoil tables in this file. Each table must have lines for Re and Ctrl. Re float64 // Reynolds numbers in millions Ctrl int // Control setting (must be 0 for current AirfoilInfo) InclUAdata bool // Is unsteady aerodynamics data included in this table? If TRUE, then include 30 UA coeffs below this line Alpha0 float64 // 0-lift angle of attack, depends on airfoil. Alpha1 float64 // Angle of attack at f=0.7, (approximately the stall angle) for AOA>alpha0. Alpha2 float64 // Angle of attack at f=0.7, (approximately the stall angle) for AOA<alpha0. Eta_e float64 // Recovery factor in the range [0.85 - 0.95] used only for UAMOD=1, it is set to 1 in the code when flookup=True. C_nalpha float64 // Slope of the 2D normal force coefficient curve in the linear region of the polar. T_f0 float64 // Intial value of the time constant associated with Df in the expression of Df and f'. Default value = 3. T_V0 float64 // Intial value of the time constant associated with the vortex lift decay process; it is used in the expression of Cvn. It depends on Re,M, and airfoil class. Default value= 6. T_p float64 // Boundary-layer,leading edge pressure gradient time constant in the expression of Dp. It should be tuned based on airfoil experimental data. Default =1.7. T_VL float64 // Intial value of the time constant associated with the vortex advection process; it represents the non-dimensional time in semi-chords, needed for a vortex to travel from LE to trailing edge (TE); it is used in the expression of Cvn. It depends on Re, M (weakly), and airfoil. Value's range = [6; 13]; default value= 11. B1 float64 // Constant in the expression of phi_alpha^c and phi_q^c; from experimental results, it was set to 0.14. This value is relatively insensitive for thin airfoils, but may be different for turbine airfoils. B2 float64 // Constant in the expression of phi_alpha^c and phi_q^c; from experimental results, it was set to 0.53. This value is relatively insensitive for thin airfoils, but may be different for turbine airfoils. B5 float64 // Constant in the expression of K”'_q,Cm_q^nc, and k_m,q; from experimental results, it was set to 5. A1 float64 // Constant in the expression of phi_alpha^c and phi_q^c; from experimental results, it was set to 0.3. This value is relatively insensitive for thin airfoils, but may be different for turbine airfoils. A2 float64 // Constant in the expression of phi_alpha^c and phi_q^c; from experimental results, it was set to 0.7. This value is relatively insensitive for thin airfoils, but may be different for turbine airfoils. A5 float64 // Constant in the expression of K”'_q,Cm_q^nc, and k_m,q; from experimental results, it was set to 1. S1 float64 // Constant in the f curve bestfit for alpha0<=AOA<=alpha1;by definition it depends on the airfoil. Ignored if UAMod<>1. S2 float64 // Constant in the f curve bestfit for AOA>alpha1;by definition it depends on the airfoil. Ignored if UAMod<>1. S3 float64 // Constant in the f curve bestfit for alpha2<=AOA<alpha0;by definition it depends on the airfoil. Ignored if UAMod<>1. S4 float64 // Constant in the f curve bestfit for AOA<alpha2;by definition it depends on the airfoil. Ignored if UAMod<>1. Cn1 float64 // Critical value of C0n at leading edge separation. It should be extracted from airfoil data at a given Mach and Reynolds number. It can be calculated from the static value of Cn at either the break in the pitching moment or the loss of chord force at the onset of stall. It is close to the condition of maximum lift of the airfoil at low Mach numbers. Cn2 float64 // As Cn1 for negative AOAs. St_sh float64 // Strouhal's shedding frequency constant; default =0.19. Cd0 float64 // 2D drag coefficient value at 0-lift. Cm0 float64 // 2D pitching moment coeffcient about 1/4-chord location, at 0-lift, positive if nose up. K0 float64 // Constant in the \hat(x)_cp curve best-fit; = (\hat(x)_AC-0.25). Ignored if UAMod<>1. K1 float64 // Constant in the \hat(x)_cp curve best-fit. Ignored if UAMod<>1. K2 float64 // Constant in the \hat(x)_cp curve best-fit. Ignored if UAMod<>1. K3 float64 // Constant in the \hat(x)_cp curve best-fit. Ignored if UAMod<>1. K1_hat float64 // Constant in the expression of Cc due to leading edge vortex effects. Ignored if UAMod<>1. X_cp_bar float64 // Constant in the expression of \hat(x)_cp^v. Default value =0.2. Ignored if UAMod<>1. UACutout float64 // Angle of attack above which unsteady aerodynamics are disabled (deg). [Specifying the string "Default" sets UACutout to 45 degrees] FiltCutOff float64 // Cut-off frequency (-3 dB corner frequency) for low-pass filtering the AoA input to UA, as well as the 1st and 2nd derivatives (Hz) [default = 20] NumAlf int // Number of data lines in the following CoeffData table CoeffData []AD15AirfoilInfoCoeffData // Defaults map[string]struct{} }
AD15AirfoilInfo
func NewAD15AirfoilInfo ¶
func NewAD15AirfoilInfo() *AD15AirfoilInfo
func ReadAD15AirfoilInfo ¶
func ReadAD15AirfoilInfo(path string) (*AD15AirfoilInfo, error)
func (*AD15AirfoilInfo) Format ¶
func (s *AD15AirfoilInfo) Format() (text []byte, err error)
func (*AD15AirfoilInfo) Parse ¶
func (s *AD15AirfoilInfo) Parse(text []byte) error
func (*AD15AirfoilInfo) Write ¶
func (s *AD15AirfoilInfo) Write(path string) error
type AD15AirfoilInfoCoeffData ¶
AD15AirfoilInfoCoeffData
type AeroDyn14 ¶
type AeroDyn14 struct { // AeroDyn 14 Input File Title string // StallMod string // Dynamic stall included UseCm string // Use aerodynamic pitching moment model? InfModel string // Inflow model [DYNIN or EQUIL] IndModel string // Induction-factor model [NONE or WAKE or SWIRL] AToler float64 // Induction-factor tolerance (convergence criteria) (-) TLModel string // Tip-loss model (EQUIL only) [PRANDtl, GTECH, or NONE] HLModel string // Hub-loss model (EQUIL only) [PRANdtl or NONE] TwrShad float64 // Tower-shadow velocity deficit (-) ShadHWid float64 // Tower-shadow half width (m) T_Shad_Refpt float64 // Tower-shadow reference point (m) AirDens float64 // Air density (kg/m^3) KinVisc float64 // Kinematic air viscosity [CURRENTLY IGNORED] (m^2/sec) DTAero float64 // Time interval for aerodynamic calculations (sec) NumFoil int // Number of airfoil files (-) FoilNm []string // Names of the airfoil files [NumFoil lines] (quoted strings) BldNodes int // Number of blade nodes used for analysis (-) BlNd []AeroDyn14BlNd // Defaults map[string]struct{} }
AeroDyn14
func NewAeroDyn14 ¶
func NewAeroDyn14() *AeroDyn14
func ReadAeroDyn14 ¶
type AeroDyn14BlNd ¶
type AeroDyn14BlNd struct { RNodes float64 // AeroTwst float64 // DRNodes float64 // Chord float64 // NFoil int // PrnElm string // }
AeroDyn14BlNd
type AeroDyn15 ¶
type AeroDyn15 struct { // AeroDyn 15 Input File Title string // // General Options Echo bool // Echo the input to "<rootname>.AD.ech"? DTAero float64 // Time interval for aerodynamic calculations {or "default"} WakeMod int // Type of wake/induction model [WakeMod cannot be 2 or 3 when linearizing] AFAeroMod int // Type of blade airfoil aerodynamics model[AFAeroMod must be 1 when linearizing] TwrPotent int // Type tower influence on wind based on potential flow around the tower TwrShadow int // Calculate tower influence on wind based on downstream tower shadow TwrAero bool // Calculate tower aerodynamic loads? FrozenWake bool // Assume frozen wake during linearization? [used only when WakeMod=1 and when linearizing] CavitCheck bool // Perform cavitation check? [AFAeroMod must be 1 when CavitCheck=true] CompAA bool // Flag to compute AeroAcoustics calculation [used only when WakeMod = 1 or 2] AA_InputFile string // AeroAcoustics input file [used only when CompAA=true] // Environmental Conditions AirDens float64 // Air density KinVisc float64 // Kinematic viscosity of working fluid SpdSound float64 // Speed of sound in working fluid Patm float64 // Atmospheric pressure [used only when CavitCheck=True] Pvap float64 // Vapour pressure of working fluid [used only when CavitCheck=True] // Blade-Element/Momentum Theory Options [unused when WakeMod=0 or 3] SkewMod int // Type of skewed-wake correction model [unused when WakeMod=0 or 3] SkewModFactor float64 // Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when SkewMod=2; unused when WakeMod=0 or 3] TipLoss bool // Use the Prandtl tip-loss model? [unused when WakeMod=0 or 3] HubLoss bool // Use the Prandtl hub-loss model? [unused when WakeMod=0 or 3] TanInd bool // Include tangential induction in BEMT calculations? [unused when WakeMod=0 or 3] AIDrag bool // Include the drag term in the axial-induction calculation? [unused when WakeMod=0 or 3] TIDrag bool // Include the drag term in the tangential-induction calculation? [unused when WakeMod=0,3 or TanInd=FALSE] IndToler float64 // Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [unused when WakeMod=0 or 3] MaxIter int // Maximum number of iteration steps (-) [unused when WakeMod=0] // Dynamic Blade-Element/Momentum Theory Options [used only when WakeMod=2] DBEMT_Mod int // Type of dynamic BEMT (DBEMT) model [used only when WakeMod=2] Tau1_const float64 // Time constant for DBEMT (s) [used only when WakeMod=2 and DBEMT_Mod=1] // OLAF -- cOnvecting LAgrangian Filaments (Free Vortex Wake) Theory Options [used only when WakeMod=3] OLAFInputFileName string // Input file for OLAF [used only when WakeMod=3] // Beddoes-Leishman Unsteady Airfoil Aerodynamics Options [used only when AFAeroMod=2] UAMod int // Unsteady Aero Model Switch (switch) {1=Baseline model (Original), 2=Gonzalez's variant (changes in Cn,Cc,Cm), 3=Minnema/Pierce variant (changes in Cc and Cm)} [used only when AFAeroMod=2] FLookup bool // Flag to indicate whether a lookup for f' will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when AFAeroMod=2] // Airfoil Information AFTabMod int // Interpolation method for multiple airfoil tables {1=1D interpolation on AoA (first table only); 2=2D interpolation on AoA and Re; 3=2D interpolation on AoA and UserProp} (-) InCol_Alfa int // The column in the airfoil tables that contains the angle of attack (-) InCol_Cl int // The column in the airfoil tables that contains the lift coefficient (-) InCol_Cd int // The column in the airfoil tables that contains the drag coefficient (-) InCol_Cm int // The column in the airfoil tables that contains the pitching-moment coefficient; use zero if there is no Cm column (-) InCol_Cpmin int // The column in the airfoil tables that contains the Cpmin coefficient; use zero if there is no Cpmin column (-) NumAFfiles int // Number of airfoil files used (-) AFNames []string // Airfoil file names (NumAFfiles lines) (quoted strings) // Rotor/Blade Properties UseBlCm bool // Include aerodynamic pitching moment in calculations? (flag) ADBlFile1 string // Name of file containing distributed aerodynamic properties for Blade #1 (-) ADBlFile2 string // Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2] ADBlFile3 string // Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3] // Tower Influence and Aerodynamics [used only when TwrPotent/=0, TwrShadow/=0, or TwrAero=True] NumTwrNds int // Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow/=0, or TwrAero=True] TwrNodes []AeroDyn15TwrNodes // // Outputs SumPrint bool // Generate a summary file listing input options and interpolated properties to "<rootname>.AD.sum"? (flag) NBlOuts int // Number of blade node outputs [0 - 9] (-) BlOutNd []int // Blade nodes whose values will be output (-) NTwOuts int // Number of tower node outputs [0 - 9] (-) TwOutNd []int // Tower nodes whose values will be output (-) OutList []string // The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) Defaults map[string]struct{} }
AeroDyn15
func NewAeroDyn15 ¶
func NewAeroDyn15() *AeroDyn15
func ReadAeroDyn15 ¶
type AeroDyn15TwrNodes ¶
type AeroDyn15TwrNodes struct { TwrElev float64 // (m) TwrDiam float64 // (m) TwrCd float64 // (-) TwrTI float64 // (used only with TwrShadow=2) (-) }
AeroDyn15TwrNodes
type AeroDynBlade ¶
type AeroDynBlade struct { // AeroDyn Blade Input File Title string // // Blade Properties NumBlNds int // Number of blade nodes used in the analysis (-) BlNd []AeroDynBladeBlNd // Defaults map[string]struct{} }
AeroDynBlade
func NewAeroDynBlade ¶
func NewAeroDynBlade() *AeroDynBlade
func ReadAeroDynBlade ¶
func ReadAeroDynBlade(path string) (*AeroDynBlade, error)
func (*AeroDynBlade) Format ¶
func (s *AeroDynBlade) Format() (text []byte, err error)
func (*AeroDynBlade) Parse ¶
func (s *AeroDynBlade) Parse(text []byte) error
func (*AeroDynBlade) Write ¶
func (s *AeroDynBlade) Write(path string) error
type AeroDynBladeBlNd ¶
type AeroDynBladeBlNd struct { BlSpn float64 // (m) BlCrvAC float64 // (m) BlSwpAC float64 // (m) BlCrvAng float64 // (deg) BlTwist float64 // (deg) BlChord float64 // (m) BlAFID int // (-) }
AeroDynBladeBlNd
type BeamDyn ¶
type BeamDyn struct { // Beamdyn Input File Title string // // Simulation Control Echo bool // Echo input data to "<RootName>.ech"? (flag) QuasiStaticInit bool // Use quasi-static pre-conditioning with centripetal accelerations in initialization? (flag) [dynamic solve only] Rhoinf float64 // Numerical damping parameter for generalized-alpha integrator Quadrature int // Quadrature method: 1=Gaussian; 2=Trapezoidal (switch) Refine int // Refinement factor for trapezoidal quadrature (-) [DEFAULT = 1; used only when quadrature=2] N_fact int // Factorization frequency for the Jacobian in N-R iteration(-) [DEFAULT = 5] DTBeam float64 // Time step size (s) Load_retries int // Number of factored load retries before quitting the simulation [DEFAULT = 20] NRMax int // Max number of iterations in Newton-Raphson algorithm (-) [DEFAULT = 10] Stop_tol float64 // Tolerance for stopping criterion (-) [DEFAULT = 1E-5] Tngt_stf_fd bool // Use finite differenced tangent stiffness matrix? (flag) Tngt_stf_comp bool // Compare analytical finite differenced tangent stiffness matrix? (flag) Tngt_stf_pert float64 // Perturbation size for finite differencing (-) [DEFAULT = 1E-6] Tngt_stf_difftol float64 // Maximum allowable relative difference between analytical and fd tangent stiffness (-); [DEFAULT = 0.1] RotStates bool // Orient states in the rotating frame during linearization? (flag) [used only when linearizing] // Geometry Parameter Member_total int // Total number of members (-) Kp_total int // Total number of key points (-) [must be at least 3] Members [][]BeamDynMembers // // Mesh Parameter Order_elem int // Order of interpolation (basis) function (-) // Material Parameter BldFile string // Name of file containing properties for blade (quoted string) // Pitch Actuator Parameters UsePitchAct bool // Whether a pitch actuator should be used (flag) PitchJ float64 // Pitch actuator inertia (kg-m^2) [used only when UsePitchAct is true] PitchK float64 // Pitch actuator stiffness (kg-m^2/s^2) [used only when UsePitchAct is true] PitchC float64 // Pitch actuator damping (kg-m^2/s) [used only when UsePitchAct is true] // Outputs SumPrint bool // Print summary data to "<RootName>.sum" (flag) OutFmt string // Format used for text tabular output, excluding the time channel. NNodeOuts int // Number of nodes to output to file [0 - 9] (-) OutNd []int // Nodes whose values will be output (-) OutList []string // The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) Defaults map[string]struct{} }
BeamDyn
func NewBeamDyn ¶
func NewBeamDyn() *BeamDyn
func ReadBeamDyn ¶
type BeamDynBlade ¶
type BeamDynBlade struct { // BeamDyn Blade Input File Title string // // Blade Parameters Station_total int // Number of blade input stations Damp_type int // Damping type: 0: no damping; 1: damped // Damping Coefficient Mu []float64 // // Distributed Properties DistProps []BeamDynBladeDistProps // Defaults map[string]struct{} }
BeamDynBlade
func NewBeamDynBlade ¶
func NewBeamDynBlade() *BeamDynBlade
func ReadBeamDynBlade ¶
func ReadBeamDynBlade(path string) (*BeamDynBlade, error)
func (*BeamDynBlade) Format ¶
func (s *BeamDynBlade) Format() (text []byte, err error)
func (*BeamDynBlade) Parse ¶
func (s *BeamDynBlade) Parse(text []byte) error
func (*BeamDynBlade) Write ¶
func (s *BeamDynBlade) Write(path string) error
type BeamDynBladeDistProps ¶
type BeamDynBladeDistProps struct { Station_eta float64 // Stiffness_matrix [][]float64 // Mass_matrix [][]float64 // }
BeamDynBladeDistProps
type BeamDynMembers ¶
type BeamDynMembers struct { Kp_xr float64 // Kp_yr float64 // Kp_zr float64 // Initial_twist float64 // }
BeamDynMembers
type ElastoDyn ¶
type ElastoDyn struct { // ElastoDyn Input File Title string // // Simulation Control Echo bool // Echo input data to <RootName>.ech Method int // Integration method DT float64 // Integration time step // Degrees Of Freedom FlapDOF1 bool // First flapwise blade mode DOF FlapDOF2 bool // Second flapwise blade mode DOF EdgeDOF bool // First edgewise blade mode DOF TeetDOF bool // Rotor-teeter DOF [unused for 3 blades] DrTrDOF bool // Drivetrain rotational-flexibility DOF GenDOF bool // Generator DOF YawDOF bool // Yaw DOF TwFADOF1 bool // First fore-aft tower bending-mode DOF TwFADOF2 bool // Second fore-aft tower bending-mode DOF TwSSDOF1 bool // First side-to-side tower bending-mode DOF TwSSDOF2 bool // Second side-to-side tower bending-mode DOF PtfmSgDOF bool // Platform horizontal surge translation DOF PtfmSwDOF bool // Platform horizontal sway translation DOF PtfmHvDOF bool // Platform vertical heave translation DOF PtfmRDOF bool // Platform roll tilt rotation DOF PtfmPDOF bool // Platform pitch tilt rotation DOF PtfmYDOF bool // Platform yaw rotation DOF // Initial Conditions OoPDefl float64 // Initial out-of-plane blade-tip displacement IPDefl float64 // Initial in-plane blade-tip deflection BlPitch1 float64 // Blade 1 initial pitch BlPitch2 float64 // Blade 2 initial pitch BlPitch3 float64 // Blade 3 initial pitch [unused for 2 blades] TeetDefl float64 // Initial or fixed teeter angle [unused for 3 blades] Azimuth float64 // Initial azimuth angle for blade 1 RotSpeed float64 // Initial or fixed rotor speed NacYaw float64 // Initial or fixed nacelle-yaw angle TTDspFA float64 // Initial fore-aft tower-top displacement TTDspSS float64 // Initial side-to-side tower-top displacement PtfmSurge float64 // Initial or fixed horizontal surge translational displacement of platform PtfmSway float64 // Initial or fixed horizontal sway translational displacement of platform PtfmHeave float64 // Initial or fixed vertical heave translational displacement of platform PtfmRoll float64 // Initial or fixed roll tilt rotational displacement of platform PtfmPitch float64 // Initial or fixed pitch tilt rotational displacement of platform PtfmYaw float64 // Initial or fixed yaw rotational displacement of platform // Turbine Configuration NumBl int // Number of blades TipRad float64 // The distance from the rotor apex to the blade tip HubRad float64 // The distance from the rotor apex to the blade root PreCone1 float64 // Blade 1 cone angle PreCone2 float64 // Blade 2 cone angle PreCone3 float64 // Blade 3 cone angle [unused for 2 blades] HubCM float64 // Distance from rotor apex to hub mass [positive downwind] UndSling float64 // Undersling length [distance from teeter pin to the rotor apex] , Unit:"meters"[unused for 3 blades] Delta3 float64 // Delta-3 angle for teetering rotors [unused for 3 blades] AzimB1Up float64 // Azimuth value to use for I/O when blade 1 points up OverHang float64 // Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades] ShftGagL float64 // Distance from rotor apex [3 blades] or teeter pin [2 blades] to shaft strain gages [positive for upwind rotors] ShftTilt float64 // Rotor shaft tilt angle NacCMxn float64 // Downwind distance from the tower-top to the nacelle CM NacCMyn float64 // Lateral distance from the tower-top to the nacelle CM NacCMzn float64 // Vertical distance from the tower-top to the nacelle CM NcIMUxn float64 // Downwind distance from the tower-top to the nacelle IMU NcIMUyn float64 // Lateral distance from the tower-top to the nacelle IMU NcIMUzn float64 // Vertical distance from the tower-top to the nacelle IMU Twr2Shft float64 // Vertical distance from the tower-top to the rotor shaft TowerHt float64 // Height of tower above ground level [onshore] or MSL [offshore] TowerBsHt float64 // Height of tower base above ground level [onshore] or MSL [offshore] PtfmCMxt float64 // Downwind distance from the ground level [onshore] or MSL [offshore] to the platform CM PtfmCMyt float64 // Lateral distance from the ground level [onshore] or MSL [offshore] to the platform CM PtfmCMzt float64 // Vertical distance from the ground level [onshore] or MSL [offshore] to the platform CM PtfmRefzt float64 // Vertical distance from the ground level [onshore] or MSL [offshore] to the platform reference point // Mass And Inertia TipMass1 float64 // Tip-brake mass, blade 1 TipMass2 float64 // Tip-brake mass, blade 2 TipMass3 float64 // Tip-brake mass, blade 3 [unused for 2 blades] HubMass float64 // Hub mass HubIner float64 // Hub inertia about rotor axis [3 blades] or teeter axis [2 blades] GenIner float64 // Generator inertia about HSS NacMass float64 // Nacelle mass NacYIner float64 // Nacelle inertia about yaw axis YawBrMass float64 // Yaw bearing mass PtfmMass float64 // Platform mass PtfmRIner float64 // Platform inertia for roll tilt rotation about the platform CM PtfmPIner float64 // Platform inertia for pitch tilt rotation about the platform CM PtfmYIner float64 // Platform inertia for yaw rotation about the platform CM // Blade BldNodes int // Number of blade nodes (per blade) used for analysis BldFile1 string // Name of file containing properties for blade 1 (quoted string) BldFile2 string // Name of file containing properties for blade 2 (quoted string) BldFile3 string // Name of file containing properties for blade 3 (quoted string) [unused for 2 blades] // Rotor-Teeter TeetMod int // Rotor-teeter spring/damper model (switch) [unused for 3 blades] TeetDmpP float64 // Rotor-teeter damper position [used only for 2 blades and when TeetMod=1] TeetDmp float64 // Rotor-teeter damping constant [used only for 2 blades and when TeetMod=1] TeetCDmp float64 // Rotor-teeter rate-independent Coulomb-damping moment (N-m) [used only for 2 blades and when TeetMod=1] TeetSStP float64 // Rotor-teeter soft-stop position [used only for 2 blades and when TeetMod=1] TeetHStP float64 // Rotor-teeter hard-stop position [used only for 2 blades and when TeetMod=1] TeetSSSp float64 // Rotor-teeter soft-stop linear-spring constant [used only for 2 blades and when TeetMod=1] TeetHSSp float64 // Rotor-teeter hard-stop linear-spring constant [used only for 2 blades and when TeetMod=1] // Drivetrain GBoxEff float64 // Gearbox efficiency GBRatio float64 // Gearbox ratio DTTorSpr float64 // Drivetrain torsional spring DTTorDmp float64 // Drivetrain torsional damper // Furling Furling bool // Read in additional model properties for furling turbine [must currently be FALSE) FurlFile string // Name of file containing furling properties (quoted string) [unused when Furling=False] // Tower TwrNodes int // Number of tower nodes used for analysis (-) TwrFile string // Name of file containing tower properties (quoted string) // Output SumPrint bool // Print summary data to '<RootName>.sum' OutFile int // Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused) TabDelim bool // Use tab delimiters in text tabular output file? (currently unused) OutFmt string // Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused) TStart float64 // Time to begin tabular output (s) (currently unused) DecFact int // Decimation factor for tabular output {1: output every time step} (-) (currently unused) NTwGages int // Number of tower nodes that have strain gages for output [0 to 9] (-) TwrGagNd []int // List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] NBlGages int // Number of blade nodes that have strain gages for output [0 to 9] (-) BldGagNd []int // List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0] OutList []string // The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) Defaults map[string]struct{} }
ElastoDyn
func NewElastoDyn ¶
func NewElastoDyn() *ElastoDyn
func ReadElastoDyn ¶
type ElastoDynBlade ¶
type ElastoDynBlade struct { // ElastoDyn Blade Input File Title string // // Blade Parameters NBlInpSt int // Number of blade input stations BldFlDmp1 float64 // Blade flap mode #1 structural damping in percent of critical BldFlDmp2 float64 // Blade flap mode #2 structural damping in percent of critical BldEdDmp1 float64 // Blade edge mode #1 structural damping in percent of critical // Blade Adjustment Factors FlStTunr1 float64 // Blade flapwise modal stiffness tuner, 1st mode FlStTunr2 float64 // Blade flapwise modal stiffness tuner, 2nd mode AdjBlMs float64 // Factor to adjust blade mass density AdjFlSt float64 // Factor to adjust blade flap stiffness AdjEdSt float64 // Factor to adjust blade edge stiffness // Distributed Blade Properties BlInpSt []ElastoDynBladeBlInpSt // // Blade Mode Shapes BldFl1Sh2 float64 // Flap mode 1, coeff of x^2 BldFl1Sh3 float64 // , coeff of x^3 BldFl1Sh4 float64 // , coeff of x^4 BldFl1Sh5 float64 // , coeff of x^5 BldFl1Sh6 float64 // , coeff of x^6 BldFl2Sh2 float64 // Flap mode 2, coeff of x^2 BldFl2Sh3 float64 // , coeff of x^3 BldFl2Sh4 float64 // , coeff of x^4 BldFl2Sh5 float64 // , coeff of x^5 BldFl2Sh6 float64 // , coeff of x^6 BldEdgSh2 float64 // Edge mode 1, coeff of x^2 BldEdgSh3 float64 // , coeff of x^3 BldEdgSh4 float64 // , coeff of x^4 BldEdgSh5 float64 // , coeff of x^5 BldEdgSh6 float64 // , coeff of x^6 Defaults map[string]struct{} }
ElastoDynBlade
func NewElastoDynBlade ¶
func NewElastoDynBlade() *ElastoDynBlade
func ReadElastoDynBlade ¶
func ReadElastoDynBlade(path string) (*ElastoDynBlade, error)
func (*ElastoDynBlade) Format ¶
func (s *ElastoDynBlade) Format() (text []byte, err error)
func (*ElastoDynBlade) Parse ¶
func (s *ElastoDynBlade) Parse(text []byte) error
func (*ElastoDynBlade) Write ¶
func (s *ElastoDynBlade) Write(path string) error
type ElastoDynBladeBlInpSt ¶
type ElastoDynBladeBlInpSt struct { BlFract float64 // PitchAxis float64 // StrcTwst float64 // BMassDen float64 // FlpStff float64 // EdgStff float64 // }
ElastoDynBladeBlInpSt
type ElastoDynTower ¶
type ElastoDynTower struct { // ElastoDyn Tower Input File Title string // // Tower Parameters NTwInpSt int // Number of input stations to specify tower geometry TwrFADmp1 float64 // Tower 1st fore-aft mode structural damping ratio TwrFADmp2 float64 // Tower 2nd fore-aft mode structural damping ratio TwrSSDmp1 float64 // Tower 1st side-to-side mode structural damping ratio TwrSSDmp2 float64 // Tower 2nd side-to-side mode structural damping ratio // Tower Adjustment Factors FAStTunr1 float64 // Tower fore-aft modal stiffness tuner, 1st mode FAStTunr2 float64 // Tower fore-aft modal stiffness tuner, 2nd mode SSStTunr1 float64 // Tower side-to-side stiffness tuner, 1st mode SSStTunr2 float64 // Tower side-to-side stiffness tuner, 2nd mode AdjTwMa float64 // Factor to adjust tower mass density AdjFASt float64 // Factor to adjust tower fore-aft stiffness AdjSSSt float64 // Factor to adjust tower side-to-side stiffness // Distributed Tower Properties TwInpSt []ElastoDynTowerTwInpSt // // Tower Fore-Aft Mode Shapes TwFAM1Sh2 float64 // Mode 1, coefficient of x^2 term TwFAM1Sh3 float64 // , coefficient of x^3 term TwFAM1Sh4 float64 // , coefficient of x^4 term TwFAM1Sh5 float64 // , coefficient of x^5 term TwFAM1Sh6 float64 // , coefficient of x^6 term TwFAM2Sh2 float64 // Mode 2, coefficient of x^2 term TwFAM2Sh3 float64 // , coefficient of x^3 term TwFAM2Sh4 float64 // , coefficient of x^4 term TwFAM2Sh5 float64 // , coefficient of x^5 term TwFAM2Sh6 float64 // , coefficient of x^6 term // Tower Side-To-Side Mode Shapes TwSSM1Sh2 float64 // Mode 1, coefficient of x^2 term TwSSM1Sh3 float64 // , coefficient of x^3 term TwSSM1Sh4 float64 // , coefficient of x^4 term TwSSM1Sh5 float64 // , coefficient of x^5 term TwSSM1Sh6 float64 // , coefficient of x^6 term TwSSM2Sh2 float64 // Mode 2, coefficient of x^2 term TwSSM2Sh3 float64 // , coefficient of x^3 term TwSSM2Sh4 float64 // , coefficient of x^4 term TwSSM2Sh5 float64 // , coefficient of x^5 term TwSSM2Sh6 float64 // , coefficient of x^6 term Defaults map[string]struct{} }
ElastoDynTower
func NewElastoDynTower ¶
func NewElastoDynTower() *ElastoDynTower
func ReadElastoDynTower ¶
func ReadElastoDynTower(path string) (*ElastoDynTower, error)
func (*ElastoDynTower) Format ¶
func (s *ElastoDynTower) Format() (text []byte, err error)
func (*ElastoDynTower) Parse ¶
func (s *ElastoDynTower) Parse(text []byte) error
func (*ElastoDynTower) Write ¶
func (s *ElastoDynTower) Write(path string) error
type ElastoDynTowerTwInpSt ¶
type ElastoDynTowerTwInpSt struct { HtFract float64 // Fractional height of the flexible portion of tower for a given input station TMassDen float64 // Tower mass density for a given input station TwFAStif float64 // Tower fore-aft stiffness for a given input station TwSSStif float64 // Tower side-to-side stiffness for a given input station }
ElastoDynTowerTwInpSt
type FAST ¶
type FAST struct { // OpenFAST Input File Title string // File title // Simulation Control Echo bool // Echo input data to <RootName>.ech AbortLevel string // Error level when simulation should abort TMax float64 // Total run time DT float64 // Recommended module time step InterpOrder int // Interpolation order for input/output time history NumCrctn int // Number of correction iterations {0=explicit calculation, i.e., no corrections} DT_UJac float64 // Time between calls to get Jacobians UJacSclFact float64 // Scaling factor used in Jacobians // Feature switches and flags CompElast int // Compute structural dynamics CompInflow int // Compute inflow wind velocities CompAero int // Compute aerodynamic loads CompServo int // Compute control and electrical-drive dynamics CompHydro int // Compute hydrodynamic loads CompSub int // Compute sub-structural dynamics CompMooring int // Compute mooring system CompIce int // Compute ice loads MHK int // MHK turbine type // Environmental Conditions Gravity float64 // Gravitational acceleration AirDens float64 // Air density WtrDens float64 // Water density KinVisc float64 // Kinematic viscosity of working fluid SpdSound float64 // Speed of sound in working fluid Patm float64 // Atmospheric pressure [used only for an MHK turbine cavitation check] Pvap float64 // Vapour pressure of working fluid [used only for an MHK turbine cavitation check] WtrDpth float64 // Water depth MSL2SWL float64 // Offset between still-water level and mean sea level [positive upward] // Input Files EDFile string // Name of file containing ElastoDyn input parameters BDBldFile1 string // Name of file containing BeamDyn input parameters for blade 1 BDBldFile2 string // Name of file containing BeamDyn input parameters for blade 2 BDBldFile3 string // Name of file containing BeamDyn input parameters for blade 3 InflowFile string // Name of file containing inflow wind input parameters AeroFile string // Name of file containing aerodynamic input parameters ServoFile string // Name of file containing control and electrical-drive input parameters HydroFile string // Name of file containing hydrodynamic input parameters SubFile string // Name of file containing sub-structural input parameters MooringFile string // Name of file containing mooring system input parameters IceFile string // Name of file containing ice input parameters // Output SumPrint bool // Print summary data to '<RootName>.sum' SttsTime float64 // Amount of time between screen status messages ChkptTime float64 // Amount of time between creating checkpoint files for potential restart DT_Out float64 // Time step for tabular output (or "default") TStart float64 // Time to begin tabular output OutFileFmt int // Format for tabular (time-marching) output file TabDelim bool // Use tab delimiters in text tabular output file? OutFmt string // Format used for text tabular output, excluding the time channel. Resulting field should be 10 characters // Linearization Linearize bool // Linearization analysis CalcSteady bool // Calculate a steady-state periodic operating point before linearization? TrimCase int // Controller parameter to be trimmed TrimTol float64 // Tolerance for the rotational speed convergence TrimGain float64 // Proportional gain for the rotational speed error (>0) (rad/(rad/s) for yaw or pitch; Nm/(rad/s) for torque) Twr_Kdmp float64 // Damping factor for the tower Bld_Kdmp float64 // Damping factor for the blades NLinTimes int // Number of times to linearize [>=1] LinTimes []float64 // List of times at which to linearize [1 to NLinTimes] [used only when Linearize=True and CalcSteady=False] LinInputs int // Inputs included in linearization LinOutputs int // Outputs included in linearization LinOutJac bool // Include full Jacobians in linearization output (for debug) LinOutMod bool // Write module-level linearization output files in addition to output for full system? // Visualization WrVTK int // VTK visualization data output VTK_type int // Type of VTK visualization data VTK_fields bool // Write mesh fields to VTK data files? VTK_fps float64 // Frame rate for VTK output (frames per second) {will use closest integer multiple of DT} Defaults map[string]struct{} }
FAST
type FormatFunc ¶
type InflowWind ¶
type InflowWind struct { // InflowWind Input File Title string // // General Echo bool // Echo input data to <RootName>.ech (flag) WindType int // switch for wind file type PropagationDir float64 // Direction of wind propagation (meteorological rotation from aligned with X (positive rotates towards -Y) -- degrees) (not used for native Bladed format WindType=7) VFlowAng float64 // Upflow angle (degrees) (not used for native Bladed format WindType=7) NWindVel int // Number of points to output the wind velocity WindVxiList []float64 // List of coordinates in the inertial X direction WindVyiList []float64 // List of coordinates in the inertial Y direction WindVziList []float64 // List of coordinates in the inertial Z direction // Parameters for Steady Wind Conditions [used only for WindType = 1] HWindSpeed float64 // Horizontal wind speed RefHt float64 // Reference height for horizontal wind speed PLExp float64 // Power law exponent // Parameters for Uniform wind file [used only for WindType = 2] FileName_Uni string // Filename of time series data for uniform wind field RefHt_Uni float64 // Reference height for horizontal wind speed RefLength float64 // Reference length for linear horizontal and vertical sheer // Parameters for Binary TurbSim Full-Field files [used only for WindType = 3] FileName_BTS string // Name of the Full field wind file to use (.bts) // Parameters for Binary Bladed-style Full-Field files [used only for WindType = 4 or WindType = 7] FileNameRoot string // WindType=4: Rootname of the full-field wind file to use (.wnd, .sum); WindType=7: name of the intermediate file with wind scaling values TowerFile bool // Have tower file (.twr) (flag) ignored when WindType = 7 // Parameters for HAWC-format binary files [Only used with WindType = 5] //=== FileName_u string // name of the file containing the u-component fluctuating wind (.bin) FileName_v string // name of the file containing the v-component fluctuating wind (.bin) FileName_w string // name of the file containing the w-component fluctuating wind (.bin) NX int // number of grids in the x direction (in the 3 files above) NY int // number of grids in the y direction (in the 3 files above) NZ int // number of grids in the z direction (in the 3 files above) DX float64 // distance (in meters) between points in the x direction DY float64 // distance (in meters) between points in the y direction DZ float64 // distance (in meters) between points in the z direction RefHt_Hawc float64 // reference height; the height (in meters) of the vertical center of the grid // Scaling parameters for turbulence ScaleMethod int // Turbulence scaling method SFx float64 // Turbulence scaling factor for the x direction [ScaleMethod=1] SFy float64 // Turbulence scaling factor for the y direction [ScaleMethod=1] SFz float64 // Turbulence scaling factor for the z direction [ScaleMethod=1] SigmaFx float64 // Turbulence standard deviation to calculate scaling from in x direction [ScaleMethod=2] SigmaFy float64 // Turbulence standard deviation to calculate scaling from in y direction [ScaleMethod=2] SigmaFz float64 // Turbulence standard deviation to calculate scaling from in z direction [ScaleMethod=2] // Mean wind profile parameters (added to HAWC-format files) URef float64 // Mean u-component wind speed at the reference height WindProfile int // Wind profile type PLExp_Hawc float64 // Power law exponent (used for PL wind profile type only) Z0 float64 // Surface roughness length (used for LG wind profile type only) XOffset float64 // Initial offset in +x direction (shift of wind box) // Output SumPrint bool // Print summary data to <RootName>.IfW.sum (flag) OutList []string // The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels Defaults map[string]struct{} }
InflowWind
func NewInflowWind ¶
func NewInflowWind() *InflowWind
func ReadInflowWind ¶
func ReadInflowWind(path string) (*InflowWind, error)
func (*InflowWind) Format ¶
func (s *InflowWind) Format() (text []byte, err error)
func (*InflowWind) Parse ¶
func (s *InflowWind) Parse(text []byte) error
func (*InflowWind) Write ¶
func (s *InflowWind) Write(path string) error
type Model ¶
type Model struct { AeroDyn14 *AeroDyn14 AeroDyn15 *AeroDyn15 AD15AirfoilInfo []*AD15AirfoilInfo AeroDynBlade []*AeroDynBlade BeamDyn []*BeamDyn BeamDynBlade []*BeamDynBlade ElastoDyn *ElastoDyn ElastoDynBlade []*ElastoDynBlade ElastoDynTower *ElastoDynTower FAST *FAST InflowWind *InflowWind ServoDyn *ServoDyn }
func (*Model) WriteFiles ¶
type Schema ¶
type Schema []SchemaEntry
func NewSchema ¶
func NewSchema(name string, entries []SchemaEntry) Schema
type SchemaEntry ¶
type SchemaEntry struct { Keyword string Field string Type string Dims int Desc string Heading string `json:",omitempty"` Default any `json:",omitempty"` CanBeDefault bool Unit string Options []Option `json:",omitempty"` SkipIf []Condition `json:",omitempty"` Show []Condition `json:",omitempty"` Table *Table `json:",omitempty"` Parse ParseFunc `json:"-"` Format FormatFunc `json:"-"` }
type ServoDyn ¶
type ServoDyn struct { // ServoDyn Input File Title string // // Simulation Control Echo bool // Echo input data to <RootName>.ech (flag) DT float64 // Communication interval for controllers (s) (or "default") // Pitch Control PCMode int // Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) TPCOn float64 // Time to enable active pitch control (s) [unused when PCMode=0] TPitManS1 float64 // Time to start override pitch maneuver for blade 1 and end standard pitch control (s) TPitManS2 float64 // Time to start override pitch maneuver for blade 2 and end standard pitch control (s) TPitManS3 float64 // Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades] PitManRat1 float64 // Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s) PitManRat2 float64 // Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s) PitManRat3 float64 // Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades] BlPitchF1 float64 // Blade 1 final pitch for pitch maneuvers (degrees) BlPitchF2 float64 // Blade 2 final pitch for pitch maneuvers (degrees) BlPitchF3 float64 // Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades] // Generator And Torque Control VSContrl int // Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) GenModel int // Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0] GenEff float64 // Generator efficiency [ignored by the Thevenin and user-defined generator models] (%) GenTiStr bool // Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag) GenTiStp bool // Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag) SpdGenOn float64 // Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False] TimGenOn float64 // Time to turn on the generator for a startup (s) [used only when GenTiStr=True] TimGenOf float64 // Time to turn off the generator (s) [used only when GenTiStp=True] // Simple Variable-Speed Torque Control VS_RtGnSp float64 // Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1] VS_RtTq float64 // Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1] VS_Rgn2K float64 // Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1] VS_SlPc float64 // Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1] // Simple Induction Generator SIG_SlPc float64 // Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1] SIG_SySp float64 // Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1] SIG_RtTq float64 // Rated torque (N-m) [used only when VSContrl=0 and GenModel=1] SIG_PORt float64 // Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1] // Thevenin-Equivalent Induction Generator TEC_Freq float64 // Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2] TEC_NPol int // Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2] TEC_SRes float64 // Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2] TEC_RRes float64 // Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2] TEC_VLL float64 // Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2] TEC_SLR float64 // Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2] TEC_RLR float64 // Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2] TEC_MR float64 // Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2] // High-Speed Shaft Brake HSSBrMode int // HSS brake model {0: none, 1: simple, 3: user-defined from routine UserHSSBr, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) THSSBrDp float64 // Time to initiate deployment of the HSS brake (s) HSSBrDT float64 // Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1] HSSBrTqF float64 // Fully deployed HSS-brake torque (N-m) // Nacelle-Yaw Control YCMode int // Yaw control mode {0: none, 3: user-defined from routine UserYawCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) TYCOn float64 // Time to enable active yaw control (s) [unused when YCMode=0] YawNeut float64 // Neutral yaw position--yaw spring force is zero at this yaw (degrees) YawSpr float64 // Nacelle-yaw spring constant (N-m/rad) YawDamp float64 // Nacelle-yaw damping constant (N-m/(rad/s)) TYawManS float64 // Time to start override yaw maneuver and end standard yaw control (s) YawManRat float64 // Yaw maneuver rate (in absolute value) (deg/s) NacYawF float64 // Final yaw angle for override yaw maneuvers (degrees) // Aerodynamic Flow Control AfCmode int // Airfoil control mode {0: none, 1: cosine wave cycle, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) AfC_Mean float64 // Mean level for cosine cycling or steady value (-) [used only with AfCmode==1] AfC_Amp float64 // Amplitude for for cosine cycling of flap signal (-) [used only with AfCmode==1] AfC_Phase float64 // Phase relative to the blade azimuth (0 is vertical) for for cosine cycling of flap signal (deg) [used only with AfCmode==1] // Structural Control NumBStC int // Number of blade structural controllers (integer) BStCfiles string // Name of the files for blade structural controllers (quoted strings) [unused when NumBStC==0] NumNStC int // Number of nacelle structural controllers (integer) NStCfiles string // Name of the files for nacelle structural controllers (quoted strings) [unused when NumNStC==0] NumTStC int // Number of tower structural controllers (integer) TStCfiles string // Name of the files for tower structural controllers (quoted strings) [unused when NumTStC==0] NumSStC int // Number of substructure structural controllers (integer) SStCfiles string // Name of the files for substructure structural controllers (quoted strings) [unused when NumSStC==0] // Cable Control CCmode int // Cable control mode {0: none, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch) // BLADED Interface DLL_FileName string // Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface] DLL_InFile string // Name of input file sent to the DLL (-) [used only with Bladed Interface] DLL_ProcName string // Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface] DLL_DT float64 // Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface] DLL_Ramp bool // Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface] BPCutoff float64 // Cutoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface] NacYaw_North float64 // Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface] Ptch_Cntrl int // Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface] Ptch_SetPnt float64 // Record 5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface] Ptch_Min float64 // Record 6: Minimum pitch angle (deg) [used only with Bladed Interface] Ptch_Max float64 // Record 7: Maximum pitch angle (deg) [used only with Bladed Interface] PtchRate_Min float64 // Record 8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface] PtchRate_Max float64 // Record 9: Maximum pitch rate (deg/s) [used only with Bladed Interface] Gain_OM float64 // Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface] GenSpd_MinOM float64 // Record 17: Minimum generator speed (rpm) [used only with Bladed Interface] GenSpd_MaxOM float64 // Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface] GenSpd_Dem float64 // Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface] GenTrq_Dem float64 // Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface] GenPwr_Dem float64 // Record 13: Demanded power (W) [used only with Bladed Interface] // BLADED Interface Torque-Speed Look-Up Table DLL_NumTrq int // Record 26: No. of points in torque-speed look-up table {0 = none and use the optimal mode parameters; nonzero = ignore the optimal mode PARAMETERs by setting Record 16 to 0.0} (-) [used only with Bladed Interface] GenSpdTrq []ServoDynGenSpdTrq // // Output SumPrint bool // Print summary data to <RootName>.sum (flag) (currently unused) OutFile int // Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused) TabDelim bool // Use tab delimiters in text tabular output file? (flag) (currently unused) OutFmt string // Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused) TStart float64 // Time to begin tabular output (s) (currently unused) OutList []string // The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) Defaults map[string]struct{} }
ServoDyn
func NewServoDyn ¶
func NewServoDyn() *ServoDyn
func ReadServoDyn ¶
type ServoDynGenSpdTrq ¶
type ServoDynGenSpdTrq struct { GenSpd_TLU []float64 // GenSpd_TLU GenTrq_TLU []float64 // GenTrq_TLU }
ServoDynGenSpdTrq
type Table ¶
type Table struct {
Columns []TableColumn
}
type TableColumn ¶
type TurbSim ¶
type TurbSim struct { // TurbSim Input File Title string // // Runtime Options Echo bool // Echo input data to <RootName>.ech (flag) RandSeed1 int // First random seed (-2147483648 to 2147483647) RandSeed2 string // Second random seed (-2147483648 to 2147483647) for intrinsic pRNG, or an alternative pRNG: "RanLux" or "RNSNLW" WrBHHTP bool // Output hub-height turbulence parameters in binary form? (Generates RootName.bin) WrFHHTP bool // Output hub-height turbulence parameters in formatted form? (Generates RootName.dat) WrADHH bool // Output hub-height time-series data in AeroDyn form? (Generates RootName.hh) WrADFF bool // Output full-field time-series data in TurbSim/AeroDyn form? (Generates RootName.bts) WrBLFF bool // Output full-field time-series data in BLADED/AeroDyn form? (Generates RootName.wnd) WrADTWR bool // Output tower time-series data? (Generates RootName.twr) WrFMTFF bool // Output full-field time-series data in formatted (readable) form? (Generates RootName.u, RootName.v, RootName.w) WrACT bool // Output coherent turbulence time steps in AeroDyn form? (Generates RootName.cts) Clockwise bool // Clockwise rotation looking downwind? (used only for full-field binary files - not necessary for AeroDyn) ScaleIEC int // Scale IEC turbulence models to exact target standard deviation? [0=no additional scaling; 1=use hub scale uniformly; 2=use individual scales] // Turbine/Model Specifications NumGrid_Z int // Vertical grid-point matrix dimension NumGrid_Y int // Horizontal grid-point matrix dimension TimeStep float64 // Time step [seconds] AnalysisTime float64 // Length of analysis time series [seconds] (program will add time if necessary: AnalysisTime = MAX(AnalysisTime, UsableTime+GridWidth/MeanHHWS) ) UsableTime float64 // Usable length of output time series [seconds] (program will add GridWidth/MeanHHWS seconds unless UsableTime is "ALL") HubHt float64 // Hub height [m] (should be > 0.5*GridHeight) GridHeight float64 // Grid height [m] GridWidth float64 // Grid width [m] (should be >= 2*(RotorRadius+ShaftLength)) VFlowAng float64 // Vertical mean flow (uptilt) angle [degrees] HFlowAng float64 // Horizontal mean flow (skew) angle [degrees] // Meteorological Boundary Conditions TurbModel string // Turbulence model ("IECKAI","IECVKM","GP_LLJ","NWTCUP","SMOOTH","WF_UPW","WF_07D","WF_14D","TIDAL","API","USRINP","TIMESR", or "NONE") UserFile string // Name of the file that contains inputs for user-defined spectra or time series inputs (used only for "USRINP" and "TIMESR" models) IECstandard string // Number of IEC 61400-x standard (x=1,2, or 3 with optional 61400-1 edition number (i.e. "1-Ed2") ) IECturbc string // IEC turbulence characteristic ("A", "B", "C" or the turbulence intensity in percent) ("KHTEST" option with NWTCUP model, not used for other models) IEC_WindType string // IEC turbulence type ("NTM"=normal, "xETM"=extreme turbulence, "xEWM1"=extreme 1-year wind, "xEWM50"=extreme 50-year wind, where x=wind turbine class 1, 2, or 3) ETMc float64 // IEC Extreme Turbulence Model "c" parameter [m/s] WindProfileType string // Velocity profile type ("LOG";"PL"=power law;"JET";"H2L"=Log law for TIDAL model;"API";"USR";"TS";"IEC"=PL on rotor disk, LOG elsewhere; or "default") ProfileFile string // Name of the file that contains input profiles for WindProfileType="USR" and/or TurbModel="USRVKM" [-] RefHt float64 // Height of the reference velocity (URef) [m] URef float64 // Mean (total) velocity at the reference height [m/s] (or "default" for JET velocity profile) [must be 1-hr mean for API model; otherwise is the mean over AnalysisTime seconds] ZJetMax float64 // Jet height [m] (used only for JET velocity profile, valid 70-490 m) PLExp float64 // Power law exponent [-] (or "default") Z0 float64 // Surface roughness length [m] (or "default") // Non-IEC Meteorological Boundary Conditions Latitude float64 // Site latitude [degrees] (or "default") RICH_NO float64 // Gradient Richardson number [-] UStar float64 // Friction or shear velocity [m/s] (or "default") ZI float64 // Mixing layer depth [m] (or "default") PC_UW float64 // Hub mean uw Reynolds stress [m^2/s^2] (or "default" or "none") PC_UV float64 // Hub mean uv Reynolds stress [m^2/s^2] (or "default" or "none") PC_VW float64 // Hub mean vw Reynolds stress [m^2/s^2] (or "default" or "none") // Spatial Coherence Parameters SCMod1 string // u-component coherence model ("GENERAL", "IEC", "API", "NONE", or "default") SCMod2 string // v-component coherence model ("GENERAL", "IEC", "NONE", or "default") SCMod3 string // w-component coherence model ("GENERAL", "IEC", "NONE", or "default") InCDec1 float64 // u-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default") InCDec2 float64 // v-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default") InCDec3 float64 // w-component coherence parameters for general or IEC models [-, m^-1] (e.g. "10.0 0.3e-3" in quotes) (or "default") CohExp float64 // Coherence exponent for general model [-] (or "default") // Coherent Turbulence Scaling Parameters CTEventPath string // Name of the path where event data files are located CTEventFile string // Type of event files ("LES", "DNS", or "RANDOM") Randomize bool // Randomize the disturbance scale and locations? (true/false) DistScl float64 // Disturbance scale [-] (ratio of event dataset height to rotor disk). (Ignored when Randomize = true.) CTLy float64 // Fractional location of tower centerline from right [-] (looking downwind) to left side of the dataset. (Ignored when Randomize = true.) CTLz float64 // Fractional location of hub height from the bottom of the dataset. [-] (Ignored when Randomize = true.) CTStartTime float64 // Minimum start time for coherent structures in RootName.cts [seconds] Defaults map[string]struct{} }
TurbSim
func NewTurbSim ¶
func NewTurbSim() *TurbSim
func ReadTurbSim ¶
Click to show internal directories.
Click to hide internal directories.