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 "SuperController_Types.h"
7 
8 #ifdef __cplusplus
9 #define EXTERNAL_ROUTINE extern "C"
10 #else
11 #define EXTERNAL_ROUTINE extern
12 #endif
13 
14 EXTERNAL_ROUTINE void FAST_AllocateTurbines(int * iTurb, int *ErrStat, char *ErrMsg);
15 EXTERNAL_ROUTINE void FAST_DeallocateTurbines(int *ErrStat, char *ErrMsg);
16 
17 EXTERNAL_ROUTINE void FAST_OpFM_Restart(int * iTurb, const char *CheckpointRootName, int *AbortErrLev, double * dt, int * NumBl, int * NumBlElem, int * n_t_global,
18  OpFM_InputType_t* OpFM_Input, OpFM_OutputType_t* OpFM_Output, SC_InputType_t* SC_Input, SC_OutputType_t* SC_Output, int *ErrStat, char *ErrMsg);
19 EXTERNAL_ROUTINE void FAST_OpFM_Init(int * iTurb, double *TMax, const char *InputFileName, int * TurbineID, int * NumSC2Ctrl, int * NumCtrl2SC, int * NumActForcePtsBlade, int * NumActForcePtsTower, float * TurbinePosition,
20  int *AbortErrLev, double * dt, int * NumBl, int * NumBlElem, OpFM_InputType_t* OpFM_Input, OpFM_OutputType_t* OpFM_Output, SC_InputType_t* SC_Input, SC_OutputType_t* SC_Output,
21  int *ErrStat, char *ErrMsg);
22 EXTERNAL_ROUTINE void FAST_OpFM_Solution0(int * iTurb, int *ErrStat, char *ErrMsg);
23 EXTERNAL_ROUTINE void FAST_OpFM_Step(int * iTurb, int *ErrStat, char *ErrMsg);
24 
25 EXTERNAL_ROUTINE void FAST_Restart(int * iTurb, const char *CheckpointRootName, int *AbortErrLev, int * NumOuts, double * dt, int * n_t_global, int *ErrStat, char *ErrMsg);
26 EXTERNAL_ROUTINE void FAST_Sizes(int * iTurb, double *TMax, double *InitInputAry, const char *InputFileName, int *AbortErrLev, int * NumOuts, double * dt, int *ErrStat, char *ErrMsg, char *ChannelNames);
27 EXTERNAL_ROUTINE void FAST_Start(int * iTurb, int *NumInputs_c, int *NumOutputs_c, double *InputAry, double *OutputAry, int *ErrStat, char *ErrMsg);
28 EXTERNAL_ROUTINE void FAST_Update(int * iTurb, int *NumInputs_c, int *NumOutputs_c, double *InputAry, double *OutputAry, int *ErrStat, char *ErrMsg);
29 EXTERNAL_ROUTINE void FAST_End(int * iTurb, bool * stopThisProgram);
30 EXTERNAL_ROUTINE void FAST_CreateCheckpoint(int * iTurb, const char *CheckpointRootName, int *ErrStat, char *ErrMsg);
31 
32 // some constants (keep these synced with values in FAST's fortran code)
33 #define INTERFACE_STRING_LENGTH 1025
34 
35 #define ErrID_None 0
36 #define ErrID_Info 1
37 #define ErrID_Warn 2
38 #define ErrID_Severe 3
39 #define ErrID_Fatal 4
40 
41 
42 #define SensorType_None -1
43 
44 // make sure these parameters match with FAST_Library.f90
45 #define MAXIMUM_BLADES 3
46 #define MAXIMUM_OUTPUTS 4000
47 #define CHANNEL_LENGTH 10
48 #define MAXInitINPUTS 10
49 
50 #define NumFixedInputs 2 + 2 + MAXIMUM_BLADES + 1
51 
52 
53 #endif
Definition: OpenFOAM_Types.h:67
Definition: SuperController_Types.h:36
Definition: SuperController_Types.h:40
Definition: OpenFOAM_Types.h:88