OpenFAST
Wind turbine multiphysics simulator
FAST_Library.h
1 #ifndef FAST_LIBRARY_H
2 #define FAST_LIBRARY_H
3 
4 // routines in FAST_Library_$(PlatformName).dll
5 #include "OpenFOAM_Types.h"
6 #include "SCDataEx_Types.h"
7 #include "stdio.h"
8 
9 #ifdef __cplusplus
10 #define EXTERNAL_ROUTINE extern "C"
11 #else
12 #define EXTERNAL_ROUTINE extern
13 #endif
14 
15 EXTERNAL_ROUTINE void FAST_AllocateTurbines(int * iTurb, int *ErrStat, char *ErrMsg);
16 EXTERNAL_ROUTINE void FAST_DeallocateTurbines(int *ErrStat, char *ErrMsg);
17 
18 EXTERNAL_ROUTINE void FAST_OpFM_Restart(int * iTurb, const char *CheckpointRootName, int *AbortErrLev, double * dt, int * NumBl, int * NumBlElem, int * n_t_global,
19  OpFM_InputType_t* OpFM_Input, OpFM_OutputType_t* OpFM_Output, SC_DX_InputType_t* SC_DX_Input, SC_DX_OutputType_t* SC_DX_Output, int *ErrStat, char *ErrMsg);
20 EXTERNAL_ROUTINE void FAST_OpFM_Init(int * iTurb, double *TMax, const char *InputFileName, int * TurbineID, int * NumSC2CtrlGlob, int * NumSC2Ctrl, int * NumCtrl2SC, float * initSCInputsGlob, float * initSCInputsTurbine, int * NumActForcePtsBlade, int * NumActForcePtsTower, float * TurbinePosition,
21  int *AbortErrLev, double * dt, int * NumBl, int * NumBlElem, OpFM_InputType_t* OpFM_Input, OpFM_OutputType_t* OpFM_Output, SC_DX_InputType_t* SC_DX_Input, SC_DX_OutputType_t* SC_DX_Output,
22  int *ErrStat, char *ErrMsg);
23 EXTERNAL_ROUTINE void FAST_OpFM_Solution0(int * iTurb, int *ErrStat, char *ErrMsg);
24 EXTERNAL_ROUTINE void FAST_OpFM_Step(int * iTurb, int *ErrStat, char *ErrMsg);
25 
26 EXTERNAL_ROUTINE void FAST_HubPosition(int * iTurb, float * absolute_position, float * rotation_veocity, double * orientation_dcm, int *ErrStat, char *ErrMsg);
27 
28 EXTERNAL_ROUTINE void FAST_Restart(int * iTurb, const char *CheckpointRootName, int *AbortErrLev, int * NumOuts, double * dt, int * n_t_global, int *ErrStat, char *ErrMsg);
29 #ifdef __cplusplus
30 EXTERNAL_ROUTINE void FAST_Sizes(int * iTurb, const char *InputFileName, int *AbortErrLev, int * NumOuts, double * dt, double * tmax, int *ErrStat, char *ErrMsg, char *ChannelNames, double *TMax = NULL, double *InitInputAry = NULL);
31 #else
32 EXTERNAL_ROUTINE void FAST_Sizes(int * iTurb, const char *InputFileName, int *AbortErrLev, int * NumOuts, double * dt, double * tmax, int *ErrStat, char *ErrMsg, char *ChannelNames, double *TMax, double *InitInputAry);
33 #endif
34 EXTERNAL_ROUTINE void FAST_Start(int * iTurb, int *NumInputs_c, int *NumOutputs_c, double *InputAry, double *OutputAry, int *ErrStat, char *ErrMsg);
35 EXTERNAL_ROUTINE void FAST_Update(int * iTurb, int *NumInputs_c, int *NumOutputs_c, double *InputAry, double *OutputAry, bool *EndSimulationEarly, int *ErrStat, char *ErrMsg);
36 EXTERNAL_ROUTINE void FAST_End(int * iTurb, bool * stopThisProgram);
37 EXTERNAL_ROUTINE void FAST_CreateCheckpoint(int * iTurb, const char *CheckpointRootName, int *ErrStat, char *ErrMsg);
38 
39 // some constants (keep these synced with values in FAST's fortran code)
40 #define INTERFACE_STRING_LENGTH 1025
41 
42 #define ErrID_None 0
43 #define ErrID_Info 1
44 #define ErrID_Warn 2
45 #define ErrID_Severe 3
46 #define ErrID_Fatal 4
47 
48 
49 #define SensorType_None -1
50 
51 // make sure these parameters match with FAST_Library.f90 and NWTC_Base.f90
52 #define MAXIMUM_BLADES 3
53 #define MAXIMUM_AFCTRL 3
54 #define MAXIMUM_CABLE_DELTAL 20
55 #define MAXIMUM_CABLE_DELTALDOT 20
56 #define MAXIMUM_OUTPUTS 4000
57 #define CHANNEL_LENGTH 20
58 #define MAXInitINPUTS 53
59 
60 #define NumFixedInputs 2 + 2 + MAXIMUM_BLADES + 1 + MAXIMUM_AFCTRL + MAXIMUM_CABLE_DELTAL + MAXIMUM_CABLE_DELTALDOT
61 /* Fixed inputs list:
62  1 Generator Torque (N-m)
63  2 Electrical Power (W)
64  3 Yaw pos (rad)
65  4 Yaw rate (rad/s)
66  5-7 Blade 1-3 pitch angle (rad)
67  8 High speed shaft brake fraction (-)
68  9-11 Blade 1-3 Airfoil control (-)
69  12-31 Cable control channel 1-20 DeltaL (m)
70  32-51 Cable control channel 1-20 DeltaLDot (m/s)
71 */
72 
73 #endif
Definition: OpenFOAM_Types.h:65
Definition: SCDataEx_Types.h:41
Definition: OpenFOAM_Types.h:85
Definition: SCDataEx_Types.h:37