aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/tacle-bench-powerwindow/powerwindow_HeaderFiles/powerwindow_rtw_solver.h
diff options
context:
space:
mode:
Diffstat (limited to 'test/monniaux/tacle-bench-powerwindow/powerwindow_HeaderFiles/powerwindow_rtw_solver.h')
-rw-r--r--test/monniaux/tacle-bench-powerwindow/powerwindow_HeaderFiles/powerwindow_rtw_solver.h243
1 files changed, 243 insertions, 0 deletions
diff --git a/test/monniaux/tacle-bench-powerwindow/powerwindow_HeaderFiles/powerwindow_rtw_solver.h b/test/monniaux/tacle-bench-powerwindow/powerwindow_HeaderFiles/powerwindow_rtw_solver.h
new file mode 100644
index 00000000..2e0895ea
--- /dev/null
+++ b/test/monniaux/tacle-bench-powerwindow/powerwindow_HeaderFiles/powerwindow_rtw_solver.h
@@ -0,0 +1,243 @@
+/*
+
+ This program is part of the TACLeBench benchmark suite.
+ Version V 1.x
+
+ Name: powerwindow_rtw_solver.h
+
+ Author: CoSys-Lab, University of Antwerp
+
+ Function: headerfile
+
+ Source: https://github.com/tacle/tacle-bench/blob/master/bench/app/PowerWindow/powerwindow_HeaderFiles/powerwindow_rtw_solver.h
+
+ Changes: a brief summary of major functional changes and formatting)
+
+ License: GNU General Public License
+
+ */
+
+#ifndef powerwindow___RTW_SOLVER_H__
+#define powerwindow___RTW_SOLVER_H__
+
+/* =============================================================================
+ * Solver object
+ * =============================================================================
+ */
+#ifndef NO_FLOATS /* ERT integer-only */
+/*
+ * Enum for solver tolerance
+ */
+typedef enum {
+ SL_SOLVER_TOLERANCE_AUTO = 0, /* Set Automatically by Solver */
+ SL_SOLVER_TOLERANCE_LOCAL = 1, /* Set Locally, e.g., by Blocks */
+ SL_SOLVER_TOLERANCE_GLOBAL = 2, /* Set Globally, e.g., by Block Diagram */
+ SL_SOLVER_TOLERANCE_UNDEFINED = 255 /* Signal uninitialized */
+} powerwindow_SL_SolverToleranceControlFlag_T;
+
+
+/*
+ * Enum for jacobian method control
+ */
+typedef enum {
+ SL_JM_BD_AUTO = 0,
+ SL_JM_BD_SPARSE_PERTURBATION,
+ SL_JM_BD_FULL_PERTURBATION,
+ SL_JM_BD_SPARSE_ANALYTICAL,
+ SL_JM_BD_FULL_ANALYTICAL
+} powerwindow_slJmBdControl;
+
+
+typedef struct _ssSolverInfo_tag {
+ void *rtModelPtr;
+
+
+ const char *solverName;
+ powerwindow_boolean_T isVariableStepSolver;
+ powerwindow_boolean_T solverNeedsReset;
+
+ powerwindow_time_T solverStopTime;
+ powerwindow_time_T *stepSizePtr;
+ powerwindow_time_T minStepSize;
+ powerwindow_time_T maxStepSize;
+ powerwindow_time_T fixedStepSize;
+
+ powerwindow_int_T solverShapePreserveControl;
+ powerwindow_int_T solverMaxConsecutiveMinStep;
+ powerwindow_int_T maxNumMinSteps;
+ powerwindow_int_T solverMaxOrder;
+ powerwindow_real_T solverConsecutiveZCsStepRelTol;
+ powerwindow_int_T solverMaxConsecutiveZCs;
+
+ powerwindow_int_T solverExtrapolationOrder;
+ powerwindow_int_T solverNumberNewtonIterations;
+
+ powerwindow_int_T solverRefineFactor;
+ powerwindow_real_T solverRelTol;
+ powerwindow_real_T unused_real_T_1;
+
+ powerwindow_real_T **dXPtr;
+ powerwindow_time_T **tPtr;
+
+ powerwindow_int_T *numContStatesPtr;
+ powerwindow_real_T **contStatesPtr;
+
+ powerwindow_real_T* zcSignalVector;
+ powerwindow_uint8_T* zcEventsVector;
+ powerwindow_uint8_T* zcSignalAttrib;
+ powerwindow_int_T zcSignalVectorLength;
+ powerwindow_uint8_T* reserved;
+
+ powerwindow_boolean_T foundContZcEvents;
+ powerwindow_boolean_T isAtLeftPostOfContZcEvent;
+ powerwindow_boolean_T isAtRightPostOfContZcEvent;
+ powerwindow_boolean_T adaptiveZcDetection;
+
+ powerwindow_int_T numZcSignals;
+
+ powerwindow_boolean_T stateProjection;
+ powerwindow_boolean_T robustResetMethod; /* user's preference */
+ powerwindow_boolean_T updateJacobianAtReset; /* S-Fcn request (sticky) */
+ powerwindow_boolean_T consistencyChecking;
+
+ powerwindow_int_T massMatrixNzMax;
+ powerwindow_int_T* massMatrixIr;
+ powerwindow_int_T* massMatrixJc;
+ powerwindow_real_T* massMatrixPr;
+
+ const powerwindow_char_T **errStatusPtr;
+
+ powerwindow_real_T zcThreshold;
+ powerwindow_int_T zeroCrossAlgorithm;
+ powerwindow_int_T consecutiveZCsError;
+
+ powerwindow_boolean_T isComputingJacobian;
+ powerwindow_slJmBdControl solverJacobianMethodControl;
+ powerwindow_int_T ignoredZcDiagnostic;
+ powerwindow_int_T maskedZcDiagnostic;
+ powerwindow_boolean_T isOutputMethodComputed;
+} ssSolverInfo;
+
+/* Support old name RTWSolverInfo */
+typedef ssSolverInfo RTWSolverInfo;
+
+#define rtsiSetRTModelPtr(S,rtmp) ((S)->rtModelPtr = (rtmp))
+#define rtsiGetRTModelPtr(S) (S)->rtModelPtr
+
+#define rtsiSetSimTimeStepPtr(S,stp) ((S)->simTimeStepPtr = (stp))
+#define rtsiGetSimTimeStepPtr(S) ((S)->simTimeStepPtr)
+#define rtsiGetSimTimeStep(S) *((S)->simTimeStepPtr)
+#define rtsiSetSimTimeStep(S,st) (*((S)->simTimeStepPtr) = (st))
+
+#define rtsiSetSolverData(S,sd) ((S)->solverData = (sd))
+#define rtsiGetSolverData(S) (S)->solverData
+
+#define rtsiSetSolverName(S,sn) ((S)->solverName = (sn))
+#define rtsiGetSolverName(S) (S)->solverName
+
+#define rtsiSetVariableStepSolver(S,vs) ((S)->isVariableStepSolver = (vs))
+#define rtsiIsVariableStepSolver(S) (S)->isVariableStepSolver
+
+#define rtsiSetSolverNeedsReset(S,sn) ((S)->solverNeedsReset = (sn))
+#define rtsiGetSolverNeedsReset(S) (S)->solverNeedsReset
+
+#define rtsiSetBlkStateChange(S,sn) ((S)->blkStateChange = (sn))
+#define rtsiGetBlkStateChange(S) (S)->blkStateChange
+
+#define rtsiSetSolverMode(S,sm) ((S)->solverMode = (sm))
+#define rtsiGetSolverMode(S) (S)->solverMode
+
+#define rtsiSetSolverStopTime(S,st) ((S)->solverStopTime = (st))
+#define rtsiGetSolverStopTime(S) (S)->solverStopTime
+
+#define rtsiSetStepSizePtr(S,ssp) ((S)->stepSizePtr = (ssp))
+#define rtsiSetStepSize(S,ss) (*((S)->stepSizePtr) = (ss))
+#define rtsiGetStepSize(S) *((S)->stepSizePtr)
+
+#define rtsiSetMinStepSize(S,ss) (((S)->minStepSize = (ss)))
+#define rtsiGetMinStepSize(S) (S)->minStepSize
+
+#define rtsiSetMaxStepSize(S,ss) ((S)->maxStepSize = (ss))
+#define rtsiGetMaxStepSize(S) (S)->maxStepSize
+
+#define rtsiSetFixedStepSize(S,ss) ((S)->fixedStepSize = (ss))
+#define rtsiGetFixedStepSize(S) (S)->fixedStepSize
+
+#define rtsiSetMaxNumMinSteps(S,mns) ((S)->maxNumMinSteps = (mns))
+#define rtsiGetMaxNumMinSteps(S) (S)->maxNumMinSteps
+
+#define rtsiSetSolverMaxOrder(S,smo) ((S)->solverMaxOrder = (smo))
+#define rtsiGetSolverMaxOrder(S) (S)->solverMaxOrder
+
+#define rtsiSetSolverJacobianMethodControl(S,smcm) (ssGetSolverInfo(S)->solverJacobianMethodControl = (smcm))
+#define rtsiGetSolverJacobianMethodControl(S) ssGetSolverInfo(S)->solverJacobianMethodControl
+
+#define rtsiSetSolverShapePreserveControl(S,smcm) (ssGetSolverInfo(S)->solverShapePreserveControl = (smcm))
+#define rtsiGetSolverShapePreserveControl(S) ssGetSolverInfo(S)->solverShapePreserveControl
+
+#define rtsiSetSolverConsecutiveZCsStepRelTol(S,scr) (ssGetSolverInfo(S)->solverConsecutiveZCsStepRelTol = (scr))
+#define rtsiGetSolverConsecutiveZCsStepRelTol(S) ssGetSolverInfo(S)->solverConsecutiveZCsStepRelTol
+
+#define rtsiSetSolverMaxConsecutiveZCs(S,smcz) (ssGetSolverInfo(S)->solverMaxConsecutiveZCs = (smcz))
+#define rtsiGetSolverMaxConsecutiveZCs(S) ssGetSolverInfo(S)->solverMaxConsecutiveZCs
+
+#define rtsiSetSolverMaxConsecutiveMinStep(S,smcm) (ssGetSolverInfo(S)->solverMaxConsecutiveMinStep = (smcm))
+#define rtsiGetSolverMaxConsecutiveMinStep(S) ssGetSolverInfo(S)->solverMaxConsecutiveMinStep
+
+#define rtsiSetSolverExtrapolationOrder(S,seo) ((S)->solverExtrapolationOrder = (seo))
+#define rtsiGetSolverExtrapolationOrder(S) (S)->solverExtrapolationOrder
+
+#define rtsiSetSolverNumberNewtonIterations(S,nni) ((S)->solverNumberNewtonIterations = (nni))
+#define rtsiGetSolverNumberNewtonIterations(S) (S)->solverNumberNewtonIterations
+
+#define rtsiSetSolverRefineFactor(S,smo) ((S)->solverRefineFactor = (smo))
+#define rtsiGetSolverRefineFactor(S) (S)->solverRefineFactor
+
+#define rtsiSetSolverRelTol(S,smo) ((S)->solverRelTol = (smo))
+#define rtsiGetSolverRelTol(S) (S)->solverRelTol
+
+#define rtsiSetSolverMassMatrixType(S,type) ((S)->massMatrixType = (type))
+#define rtsiGetSolverMassMatrixType(S) (S)->massMatrixType
+
+#define rtsiSetSolverMassMatrixNzMax(S,nzMax) ((S)->massMatrixNzMax = (nzMax))
+#define rtsiGetSolverMassMatrixNzMax(S) (S)->massMatrixNzMax
+
+#define rtsiSetSolverMassMatrixIr(S,ir) ((S)->massMatrixIr = (ir))
+#define rtsiGetSolverMassMatrixIr(S) (S)->massMatrixIr
+
+#define rtsiSetSolverMassMatrixJc(S,jc) ((S)->massMatrixJc = (jc))
+#define rtsiGetSolverMassMatrixJc(S) (S)->massMatrixJc
+
+#define rtsiSetSolverMassMatrixPr(S,pr) ((S)->massMatrixPr = (pr))
+#define rtsiGetSolverMassMatrixPr(S) (S)->massMatrixPr
+
+#define rtsiSetdXPtr(S,dxp) ((S)->dXPtr = (dxp))
+#define rtsiSetdX(S,dx) (*((S)->dXPtr) = (dx))
+#define rtsiGetdX(S) *((S)->dXPtr)
+
+#define rtsiSetTPtr(S,tp) ((S)->tPtr = (tp))
+#define rtsiSetT(S,t) ((*((S)->tPtr))[0] = (t))
+#define rtsiGetT(S) (*((S)->tPtr))[0]
+
+#define rtsiSetContStatesPtr(S,cp) ((S)->contStatesPtr = (cp))
+#define rtsiGetContStates(S) *((S)->contStatesPtr)
+
+#define rtsiSetNumContStatesPtr(S,cp) ((S)->numContStatesPtr = (cp))
+#define rtsiGetNumContStates(S) *((S)->numContStatesPtr)
+
+#define rtsiSetErrorStatusPtr(S,esp) ((S)->errStatusPtr = (esp))
+#define rtsiSetErrorStatus(S,es) (*((S)->errStatusPtr) = (es))
+#define rtsiGetErrorStatus(S) *((S)->errStatusPtr)
+
+#define rtsiSetModelMethodsPtr(S,mmp) ((S)->modelMethodsPtr = (mmp))
+#define rtsiGetModelMethodsPtr(S) (S)->modelMethodsPtr
+
+#define rtsiSetSolverComputingJacobian(S,val) ((S)->isComputingJacobian = (val))
+#define rtsiIsSolverComputingJacobian(S) (S)->isComputingJacobian
+
+#define rtsiSetSolverOutputComputed(S,val) ((S)->isOutputMethodComputed = (val))
+#define rtsiIsSolverOutputComputed(S) (S)->isOutputMethodComputed
+
+#endif /* !NO_FLOATS */
+
+#endif /* powerwindow___RTW_SOLVER_H__ */