summaryrefslogtreecommitdiff
path: root/src/main/Simulator/Flowsheet_model.h
blob: 332b29204b7c4c0c87d6ab0993e54b0b00a63211 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/* Simulation code for Flowsheet generated by the OpenModelica Compiler v1.12.0 (64-bit). */
#if !defined(Flowsheet__MODEL_H)
#define Flowsheet__MODEL_H
#include "openmodelica.h"
#include "openmodelica_func.h"
#include "simulation_data.h"
#include "simulation/simulation_info_json.h"
#include "simulation/simulation_runtime.h"
#include "util/omc_error.h"
#include "simulation/solver/model_help.h"
#include "simulation/solver/delay.h"
#include "simulation/solver/linearSystem.h"
#include "simulation/solver/nonlinearSystem.h"
#include "simulation/solver/mixedSystem.h"

#include <string.h>

#include "Flowsheet_functions.h"

#define Simulator_Files_ThermodynamicFunctions_HLiqId_index 0
#define Simulator_Files_ThermodynamicFunctions_HV_index 1
#define Simulator_Files_ThermodynamicFunctions_HVapId_index 2
#define Simulator_Files_ThermodynamicFunctions_LiqCpId_index 3
#define Simulator_Files_ThermodynamicFunctions_Psat_index 4
#define Simulator_Files_ThermodynamicFunctions_SId_index 5
#define Simulator_Files_ThermodynamicFunctions_VapCpId_index 6

extern void Flowsheet_callExternalObjectDestructors(DATA *_data, threadData_t *threadData);
#if !defined(OMC_NUM_NONLINEAR_SYSTEMS) || OMC_NUM_NONLINEAR_SYSTEMS>0
extern void Flowsheet_initialNonLinearSystem(int nNonLinearSystems, NONLINEAR_SYSTEM_DATA *data);
#endif
#if !defined(OMC_NUM_LINEAR_SYSTEMS) || OMC_NUM_LINEAR_SYSTEMS>0
extern void Flowsheet_initialLinearSystem(int nLinearSystems, LINEAR_SYSTEM_DATA *data);
#endif
#if !defined(OMC_NUM_MIXED_SYSTEMS) || OMC_NUM_MIXED_SYSTEMS>0
#endif
#if !defined(OMC_NO_STATESELECTION)
extern void Flowsheet_initializeStateSets(int nStateSets, STATE_SET_DATA* statesetData, DATA *data);
#endif
extern int Flowsheet_functionAlgebraics(DATA *data, threadData_t *threadData);
extern int Flowsheet_function_storeDelayed(DATA *data, threadData_t *threadData);
extern int Flowsheet_updateBoundVariableAttributes(DATA *data, threadData_t *threadData);
extern int Flowsheet_functionInitialEquations(DATA *data, threadData_t *threadData);
extern int Flowsheet_functionInitialEquations_lambda0(DATA *data, threadData_t *threadData);
extern int Flowsheet_functionRemovedInitialEquations(DATA *data, threadData_t *threadData);
extern int Flowsheet_updateBoundParameters(DATA *data, threadData_t *threadData);
extern int Flowsheet_checkForAsserts(DATA *data, threadData_t *threadData);
extern int Flowsheet_function_ZeroCrossingsEquations(DATA *data, threadData_t *threadData);
extern int Flowsheet_function_ZeroCrossings(DATA *data, threadData_t *threadData, double* gout);
extern int Flowsheet_function_updateRelations(DATA *data, threadData_t *threadData, int evalZeroCross);
extern int Flowsheet_checkForDiscreteChanges(DATA *data, threadData_t *threadData);
extern const char* Flowsheet_zeroCrossingDescription(int i, int **out_EquationIndexes);
extern const char* Flowsheet_relationDescription(int i);
extern void Flowsheet_function_initSample(DATA *data, threadData_t *threadData);
extern int Flowsheet_initialAnalyticJacobianG(void* data, threadData_t *threadData);
extern int Flowsheet_initialAnalyticJacobianA(void* data, threadData_t *threadData);
extern int Flowsheet_initialAnalyticJacobianB(void* data, threadData_t *threadData);
extern int Flowsheet_initialAnalyticJacobianC(void* data, threadData_t *threadData);
extern int Flowsheet_initialAnalyticJacobianD(void* data, threadData_t *threadData);
extern int Flowsheet_functionJacG_column(void* data, threadData_t *threadData);
extern int Flowsheet_functionJacA_column(void* data, threadData_t *threadData);
extern int Flowsheet_functionJacB_column(void* data, threadData_t *threadData);
extern int Flowsheet_functionJacC_column(void* data, threadData_t *threadData);
extern int Flowsheet_functionJacD_column(void* data, threadData_t *threadData);
extern const char* Flowsheet_linear_model_frame(void);
extern const char* Flowsheet_linear_model_datarecovery_frame(void);
extern int Flowsheet_mayer(DATA* data, modelica_real** res, short *);
extern int Flowsheet_lagrange(DATA* data, modelica_real** res, short *, short *);
extern int Flowsheet_pickUpBoundsForInputsInOptimization(DATA* data, modelica_real* min, modelica_real* max, modelica_real*nominal, modelica_boolean *useNominal, char ** name, modelica_real * start, modelica_real * startTimeOpt);
extern int Flowsheet_setInputData(DATA *data, const modelica_boolean file);
extern int Flowsheet_getTimeGrid(DATA *data, modelica_integer * nsi, modelica_real**t);
extern void Flowsheet_function_initSynchronous(DATA * data, threadData_t *threadData);
extern void Flowsheet_function_updateSynchronous(DATA * data, threadData_t *threadData, long i);
extern int Flowsheet_function_equationsSynchronous(DATA * data, threadData_t *threadData, long i);
extern void Flowsheet_read_input_fmu(MODEL_DATA* modelData, SIMULATION_INFO* simulationData);
extern void Flowsheet_function_savePreSynchronous(DATA *data, threadData_t *threadData);
extern int Flowsheet_inputNames(DATA* data, char ** names);
extern int Flowsheet_initializeDAEmodeData(DATA *data, DAEMODE_DATA*);
extern int Flowsheet_functionLocalKnownVars(DATA*, threadData_t*);
extern int Flowsheet_symbolicInlineSystem(DATA*, threadData_t*);

#include "Flowsheet_literals.h"




#if defined(HPCOM) && !defined(_OPENMP)
  #error "HPCOM requires OpenMP or the results are wrong"
#endif
#if defined(_OPENMP)
  #include <omp.h>
#else
  /* dummy omp defines */
  #define omp_get_max_threads() 1
#endif

#endif