1 #ifndef OMPI_SKIP_MPICXX 2 #define OMPI_SKIP_MPICXX 4 #ifndef MPICH_SKIP_MPICXX 5 #define MPICH_SKIP_MPICXX 7 #include "FAST_Library.h" 24 std::vector<float> from_SCglob;
25 std::vector<std::vector<float>> from_SC;
34 std::vector<SC_DX_InputType_t> ip_from_FAST;
35 std::vector<SC_DX_OutputType_t> op_to_FAST;
43 std::map<int, int> turbineMapProcToGlob;
51 std::vector<float> globStates;
52 std::vector<float> globStates_np1;
55 std::vector<float> turbineStates ;
56 std::vector<float> turbineStates_np1 ;
59 std::vector<float> from_SC_nm1;
60 std::vector<float> to_SC_nm1;
61 std::vector<float> from_SCglob_nm1;
62 std::vector<float> to_SCglob_nm1;
64 std::vector<float> from_SC_n;
65 std::vector<float> to_SC_n;
66 std::vector<float> from_SCglob_n;
67 std::vector<float> to_SCglob_n;
69 std::vector<float> from_SC_np1;
70 std::vector<float> to_SC_np1;
71 std::vector<float> from_SCglob_np1;
72 std::vector<float> to_SCglob_np1;
75 std::vector<float> paramGlobal;
77 std::vector<float> paramTurbine;
80 char ErrMsg[INTERFACE_STRING_LENGTH];
82 float d2R = 0.01745329251 ;
85 std::string scLibFile;
88 typedef void sc_init_t(
int * nTurbinesGlob,
int * nInpGlobal,
int * nCtrl2SC,
int * nParamGlobal,
int * nParamTurbine,
int * nStatesGlobal,
int * nStatesTurbine,
int * nSC2CtrlGlob,
int * nSC2Ctrl,
int *ErrStat,
char * ErrMsg);
90 bool sc_library_loaded =
false;
92 typedef void sc_getInitData_t(
int * nTurbinesGlob,
int * nParamGlobal,
int * nParamTurbine,
float * paramGlobal,
float * paramTurbine,
int * nSC2CtrlGlob,
float * from_SCglob,
int * nSC2Ctrl,
float * from_SC,
int * nStatesGlobal,
float * globStates,
int * nStatesTurbine,
float * turbineStates,
int *ErrStat,
char * ErrMsg);
93 sc_getInitData_t * sc_getInitData;
95 typedef void sc_updateStates_t(
double * t,
int * nTurbinesGlob,
int * nParamGlobal,
float * paramGlobal,
int * nParamTurbine,
float * paramTurbine,
int * nInpGlobal,
float * to_SCglob,
int * nCtrl2SC,
float * to_SC,
int * nStatesGlobal,
float * statesGlob_n,
float * statesGlob_np1,
int * nStatesTurbine,
float * statesTurbine_n,
float * statesTurbine_np1,
int * ErrStat,
char * ErrMsg);
96 sc_updateStates_t * sc_updateStates;
98 typedef void sc_calcOutputs_t(
double * t,
int * nTurbinesGlob,
int * nParamGlobal,
float * paramGlobal,
int * nParamTurbine,
float * paramTurbine,
int * nInpGlobal,
float * to_SCglob,
int * nCtrl2SC,
float * to_SC,
int * nStatesGlobal,
float * statesGlob,
int * nStatesTurbine,
float * statesTurbine,
int * nSC2CtrlGlob,
float * from_SCglob,
int * nSC2Ctrl,
float * from_SC,
int * ErrStat,
char * ErrMsg);
99 sc_calcOutputs_t * sc_calcOutputs;
109 void init_sc(
scInitOutData & scio,
int inNTurbinesProc, std::map<int, int> iTurbineMapProcToGlob, MPI_Comm inFastMPIComm);
111 void load(
int inNTurbinesGlob, std::string inScLibFile,
scInitOutData & scio);
113 void updateStates(
double t) ;
115 void calcOutputs_n(
double t) ;
116 void calcOutputs_np1(
double t) ;
118 void fastSCInputOutput() ;
122 int writeRestartFile(
int n_t_global);
124 int readRestartFile(
int n_t_global);