OpenModelica Compiler Flags
===========================
Usage: omc [Options] (Model.mo | Script.mos) [Libraries | .mo-files]

* Libraries: Fully qualified names of libraries to load before processing Model or Script.
  The libraries should be separated by spaces: Lib1 Lib2 ... LibN.

.. _omcflags-options :

Options
-------

.. _omcflag-debug:

:ref:`-d, --debug<omcflag-debug>`

Sets debug flags. Use :ref:`--help=debug <omcflag-debug-section>` to see available flags.

String list (default *empty*).

.. _omcflag-help:

:ref:`-h, --help<omcflag-help>`

Displays the help text. Use --help=topics for more information.

String (default *empty*).

.. _omcflag-version:

:ref:`--v, --version<omcflag-version>`

Print the version and exit.

Boolean (default ``false``).

.. _omcflag-target:

:ref:`--target<omcflag-target>`

Sets the target compiler to use.

String (default gcc). Valid options:

* gcc
* msvc
* msvc10
* msvc12
* msvc13
* msvc15
* vxworks69
* debugrt

.. _omcflag-grammar:

:ref:`-g, --grammar<omcflag-grammar>`

Sets the grammar and semantics to accept.

String (default  Modelica). Valid options:

* Modelica
* MetaModelica
* ParModelica
* Optimica
* PDEModelica

.. _omcflag-annotationVersion:

:ref:`--annotationVersion<omcflag-annotationVersion>`

Sets the annotation version that should be used.

String (default 3.x). Valid options:

* 1.x
* 2.x
* 3.x

.. _omcflag-std:

:ref:`--std<omcflag-std>`

Sets the language standard that should be used.

String (default  latest). Valid options:

* 1.x
* 2.x
* 3.1
* 3.2
* 3.3
* latest

.. _omcflag-showErrorMessages:

:ref:`--showErrorMessages<omcflag-showErrorMessages>`

Show error messages immediately when they happen.

Boolean (default ``false``).

.. _omcflag-showAnnotations:

:ref:`--showAnnotations<omcflag-showAnnotations>`

Show annotations in the flattened code.

Boolean (default ``false``).

.. _omcflag-noSimplify:

:ref:`--noSimplify<omcflag-noSimplify>`

Do not simplify expressions if set.

Boolean (default ``false``).

.. _omcflag-preOptModules:

:ref:`--preOptModules<omcflag-preOptModules>`

Sets the pre optimization modules to use in the back end. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default evaluateReplaceProtectedFinalEvaluateParameters,simplifyIfEquations,expandDerOperator,removeEqualFunctionCalls,clockPartitioning,findStateOrder,replaceEdgeChange,inlineArrayEqn,removeSimpleEquations,comSubExp,evalFunc,encapsulateWhenConditions). Valid options:

* clockPartitioning (Does the clock partitioning.)
* comSubExp (replaces common sub expressions)
* dumpDAE (dumps the DAE representation of the current transformation state)
* dumpDAEXML (dumps the DAE as xml representation of the current transformation state)
* encapsulateWhenConditions (This module replaces each when condition with a boolean variable.)
* evalFunc (evaluates functions partially)
* evaluateAllParameters (Evaluates all parameters to increase simulation speed.)
* evaluateEvaluateParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateFinalEvaluateParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateFinalParameters (Structural parameters and parameters declared as final are evalutated and replaced with their value in other vars. They may no longer be changed in the init file.)
* evaluateReplaceEvaluateParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateReplaceFinalEvaluateParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateReplaceFinalParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateReplaceProtectedFinalEvaluateParameters (Structural parameters and parameters declared as final or protected are removed and replaced with their value. They may no longer be changed in the init file.)
* expandDerOperator (Expands der(expr) using Derive.differentiteExpTime.)
* findStateOrder (Sets derivative information to states.)
* inlineArrayEqn (This module expands all array equations to scalar equations.)
* inputDerivativesForDynOpt (Allowed derivatives of inputs in dyn. optimization.)
* introduceDerAlias (Adds for every der-call an alias equation e.g. dx = der(x).)
* removeEqualFunctionCalls (Detects equal function calls of the form a=f(b) and c=f(b) and substitutes them to get speed up.)
* removeProtectedParameters (Replace all parameters with protected=true in the system.)
* removeSimpleEquations (Performs alias elimination and removes constant variables from the DAE, replacing all occurrences of the old variable reference with the new value (constants) or variable reference (alias elimination).)
* removeUnusedParameter (Strips all parameter not present in the equations from the system.)
* removeUnusedVariables (Strips all variables not present in the equations from the system.)
* replaceEdgeChange (Replace edge(b) = b and not pre(b) and change(b) = v <> pre(v).)
* residualForm (Transforms simple equations x=y to zero-sum equations 0=y-x.)
* resolveLoops (resolves linear equations in loops)
* simplifyAllExpressions (Does simplifications on all expressions.)
* simplifyIfEquations (Tries to simplify if equations by use of information from evaluated parameters.)
* sortEqnsVars (Heuristic sorting for equations and variables. This module requires +d=sortEqnsAndVars.)
* stateMachineElab (Does the elaboration of state machines.)
* unitChecking (advanced unit checking: 1. calculation of unspecified unit information for variables; 2. unit consistency check for equations)
* wrapFunctionCalls (This module wraps function calls to gain speed up.)

.. _omcflag-cheapmatchingAlgorithm:

:ref:`--cheapmatchingAlgorithm<omcflag-cheapmatchingAlgorithm>`

Sets the cheap matching algorithm to use. A cheap matching algorithm gives a jump start matching by heuristics.

Integer (default ``3``). Valid options:

* 0 (No cheap matching.)
* 1 (Cheap matching, traverses all equations and match the first free variable.)
* 3 (Random Karp-Sipser: R. M. Karp and M. Sipser. Maximum matching in sparse random graphs.)

.. _omcflag-matchingAlgorithm:

:ref:`--matchingAlgorithm<omcflag-matchingAlgorithm>`

Sets the matching algorithm to use. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String (default PFPlusExt). Valid options:

* BFSB (Breadth First Search based algorithm.)
* DFSB (Depth First Search based algorithm.)
* MC21A (Depth First Search based algorithm with look ahead feature.)
* PF (Depth First Search based algorithm with look ahead feature.)
* PFPlus (Depth First Search based algorithm with look ahead feature and fair row traversal.)
* HK (Combined BFS and DFS algorithm.)
* HKDW (Combined BFS and DFS algorithm.)
* ABMP (Combined BFS and DFS algorithm.)
* PR (Matching algorithm using push relabel mechanism.)
* DFSBExt (Depth First Search based Algorithm external c implementation.)
* BFSBExt (Breadth First Search based Algorithm external c implementation.)
* MC21AExt (Depth First Search based Algorithm with look ahead feature external c implementation.)
* PFExt (Depth First Search based Algorithm with look ahead feature external c implementation.)
* PFPlusExt (Depth First Search based Algorithm with look ahead feature and fair row traversal external c implementation.)
* HKExt (Combined BFS and DFS algorithm external c implementation.)
* HKDWExt (Combined BFS and DFS algorithm external c implementation.)
* ABMPExt (Combined BFS and DFS algorithm external c implementation.)
* PRExt (Matching algorithm using push relabel mechanism external c implementation.)
* BB (BBs try.)

.. _omcflag-indexReductionMethod:

:ref:`--indexReductionMethod<omcflag-indexReductionMethod>`

Sets the index reduction method to use. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String (default dynamicStateSelection). Valid options:

* uode (Use the underlying ODE without the constraints.)
* dynamicStateSelection (Simple index reduction method, select (dynamic) dummy states based on analysis of the system.)
* dummyDerivatives (Simple index reduction method, select (static) dummy states based on heuristic.)

.. _omcflag-postOptModules:

:ref:`--postOptModules<omcflag-postOptModules>`

Sets the post optimization modules to use in the back end. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default lateInlineFunction,inlineArrayEqn,constantLinearSystem,simplifysemiLinear,removeSimpleEquations,simplifyComplexFunction,tearingSystem,inputDerivativesUsed,calculateStrongComponentJacobians,calculateStateSetsJacobians,detectJacobianSparsePattern,removeConstants,simplifyTimeIndepFuncCalls,simplifyAllExpressions). Valid options:

* addScaledVars_states (added var_norm = var/nominal, where var is state)
* addScaledVars_inputs (added var_norm = var/nominal, where var is input)
* addTimeAsState (Experimental feature: this replaces each occurrence of variable time with a new introduced state $time with equation der($time) = 1.0)
* calculateStateSetsJacobians (Generates analytical jacobian for dynamic state selection sets.)
* calculateStrongComponentJacobians (Generates analytical jacobian for torn linear and non-linear strong components. By default non-linear components with user-defined function calls are skipped. See also debug flags: NLSanalyticJacobian and forceNLSanalyticJacobian)
* constantLinearSystem (Evaluates constant linear systems (a*x+b*y=c; d*x+e*y=f; a,b,c,d,e,f are constants) at compile-time.)
* countOperations (Count the mathematical operations of the system.)
* cseBinary (Common Sub-expression Elimination)
* detectJacobianSparsePattern (Detects the sparse pattern for Jacobian A.)
* dumpComponentsGraphStr (Dumps the assignment graph used to determine strong components to format suitable for Mathematica)
* dumpDAE (dumps the DAE representation of the current transformation state)
* dumpDAEXML (dumps the DAE as xml representation of the current transformation state)
* evaluateEvaluateParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateFinalEvaluateParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateFinalParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateReplaceEvaluateParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateReplaceFinalEvaluateParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateReplaceFinalParameters (Structural parameters and parameters declared as final are removed and replaced with their value. They may no longer be changed in the init file.)
* evaluateReplaceProtectedFinalEvaluateParameters (Structural parameters and parameters declared as final and protected parameters are removed and replaced with their value. They may no longer be changed in the init file.)
* extendDynamicOptimization (Move loops to constraints.)
* generateSymbolicJacobian (Generates symbolic Jacobian matrix, where der(x) is differentiated w.r.t. x. This matrix can be used to simulate with dasslColorSymJac.)
* generateSymbolicLinearization (Generates symbolic linearization matrices A,B,C,D for linear model::math:`\dot{x} = Ax + Bu`:math:`ty = Cx +Du`)
* inlineArrayEqn (This module expands all array equations to scalar equations.)
* inputDerivativesUsed (Checks if derivatives of inputs are need to calculate the model.)
* lateInlineFunction (Perform function inlining for function with annotation LateInline=true.)
* partlintornsystem (partitions linear torn systems.)
* recursiveTearing (inline and repeat tearing)
* reduceDynamicOptimization (Removes equations which are not needed for the calculations of cost and constraints. This module requires +d=reduceDynOpt.)
* relaxSystem (relaxation from gausian elemination)
* removeConstants (Remove all constants in the system.)
* removeEqualFunctionCalls (Detects equal function calls of the form a=f(b) and c=f(b) and substitutes them to get speed up.)
* removeSimpleEquations (Performs alias elimination and removes constant variables from the DAE, replacing all occurrences of the old variable reference with the new value (constants) or variable reference (alias elimination).)
* removeUnusedParameter (Strips all parameter not present in the equations from the system to get speed up for compilation of target code.)
* removeUnusedVariables (Strips all variables not present in the equations from the system to get speed up for compilation of target code.)
* reshufflePost (Reshuffles algebraic loops.)
* simplifyAllExpressions (Does simplifications on all expressions.)
* simplifyComplexFunction (Some simplifications on complex functions (complex refers to the internal data structure))
* simplifyConstraints (Rewrites nonlinear constraints into box constraints if possible. This module requires +gDynOpt.)
* simplifyLoops (Simplifies algebraic loops. This modules requires +simplifyLoops.)
* simplifyTimeIndepFuncCalls (Simplifies time independent built in function calls like pre(param) -> param, der(param) -> 0.0, change(param) -> false, edge(param) -> false.)
* simplifysemiLinear (Simplifies calls to semiLinear.)
* solveLinearSystem (solve linear system with newton step)
* solveSimpleEquations (Solves simple equations)
* symEuler (Rewrites the ode system for implicit Euler method. This module requires +symEuler.)
* tearingSystem (For method selection use flag tearingMethod.)
* wrapFunctionCalls (This module wraps function calls to gain speed up.)

.. _omcflag-simCodeTarget:

:ref:`--simCodeTarget<omcflag-simCodeTarget>`

Sets the target language for the code generation.

String (default C). Valid options:

* None
* Adevs
* C
* Cpp
* CSharp
* Java
* JavaScript
* sfmi
* XML

.. _omcflag-orderConnections:

:ref:`--orderConnections<omcflag-orderConnections>`

Orders connect equations alphabetically if set.

Boolean (default ``true``).

.. _omcflag-typeinfo:

:ref:`-t, --typeinfo<omcflag-typeinfo>`

Prints out extra type information if set.

Boolean (default ``false``).

.. _omcflag-keepArrays:

:ref:`-a, --keepArrays<omcflag-keepArrays>`

Sets whether to split arrays or not.

Boolean (default ``false``).

.. _omcflag-modelicaOutput:

:ref:`-m, --modelicaOutput<omcflag-modelicaOutput>`

Enables valid modelica output for flat modelica.

Boolean (default ``false``).

.. _omcflag-silent:

:ref:`-q, --silent<omcflag-silent>`

Turns on silent mode.

Boolean (default ``false``).

.. _omcflag-corbaSessionName:

:ref:`-c, --corbaSessionName<omcflag-corbaSessionName>`

Sets the name of the corba session if -d=interactiveCorba is used.

String (default *empty*).

.. _omcflag-numProcs:

:ref:`-n, --numProcs<omcflag-numProcs>`

Sets the number of processors to use (0=default=auto).

Integer (default ``0``).

.. _omcflag-latency:

:ref:`-l, --latency<omcflag-latency>`

Sets the latency for parallel execution.

Integer (default ``0``).

.. _omcflag-bandwidth:

:ref:`-b, --bandwidth<omcflag-bandwidth>`

Sets the bandwidth for parallel execution.

Integer (default ``0``).

.. _omcflag-instClass:

:ref:`-i, --instClass<omcflag-instClass>`

Instantiate the class given by the fully qualified path.

String (default *empty*).

.. _omcflag-vectorizationLimit:

:ref:`-v, --vectorizationLimit<omcflag-vectorizationLimit>`

Sets the vectorization limit, arrays and matrices larger than this will not be vectorized.

Integer (default ``0``).

.. _omcflag-simulationCg:

:ref:`-s, --simulationCg<omcflag-simulationCg>`

Turns on simulation code generation.

Boolean (default ``false``).

.. _omcflag-evalAnnotationParams:

:ref:`--evalAnnotationParams<omcflag-evalAnnotationParams>`

Sets whether to evaluate parameters in annotations or not.

Boolean (default ``false``).

.. _omcflag-generateLabeledSimCode:

:ref:`--generateLabeledSimCode<omcflag-generateLabeledSimCode>`

Turns on labeled SimCode generation for reduction algorithms.

Boolean (default ``false``).

.. _omcflag-reduceTerms:

:ref:`--reduceTerms<omcflag-reduceTerms>`

Turns on reducing terms for reduction algorithms.

Boolean (default ``false``).

.. _omcflag-reductionMethod:

:ref:`--reductionMethod<omcflag-reductionMethod>`

Sets the reduction method to be used.

String (default deletion). Valid options:

* deletion
* substitution
* linearization

.. _omcflag-demoMode:

:ref:`--demoMode<omcflag-demoMode>`

Disable Warning/Error Massages.

Boolean (default ``false``).

.. _omcflag-locale:

:ref:`--locale<omcflag-locale>`

Override the locale from the environment.

String (default *empty*).

.. _omcflag-defaultOCLDevice:

:ref:`-o, --defaultOCLDevice<omcflag-defaultOCLDevice>`

Sets the default OpenCL device to be used for parallel execution.

Integer (default ``0``).

.. _omcflag-maxTraversals:

:ref:`--maxTraversals<omcflag-maxTraversals>`

Maximal traversals to find simple equations in the acausal system.

Integer (default ``2``).

.. _omcflag-dumpTarget:

:ref:`--dumpTarget<omcflag-dumpTarget>`

Redirect the dump to file. If the file ends with .html HTML code is generated.

String (default *empty*).

.. _omcflag-delayBreakLoop:

:ref:`--delayBreakLoop<omcflag-delayBreakLoop>`

Enables (very) experimental code to break algebraic loops using the delay() operator. Probably messes with initialization.

Boolean (default ``true``).

.. _omcflag-tearingMethod:

:ref:`--tearingMethod<omcflag-tearingMethod>`

Sets the tearing method to use. Select no tearing or choose tearing method.

String (default cellier). Valid options:

* noTearing (Skip tearing.)
* omcTearing (Tearing method developed by TU Dresden: Frenkel, Schubert.)
* cellier (Tearing based on Celliers method, revised by FH Bielefeld: Täuber, Patrick)

.. _omcflag-tearingHeuristic:

:ref:`--tearingHeuristic<omcflag-tearingHeuristic>`

Sets the tearing heuristic to use for Cellier-tearing.

String (default MC3). Valid options:

* MC1 (Original cellier with consideration of impossible assignments and discrete Vars.)
* MC2 (Modified cellier, drop first step.)
* MC11 (Modified MC1, new last step 'count impossible assignments'.)
* MC21 (Modified MC2, new last step 'count impossible assignments'.)
* MC12 (Modified MC1, step 'count impossible assignments' before last step.)
* MC22 (Modified MC2, step 'count impossible assignments' before last step.)
* MC13 (Modified MC1, build sum of impossible assignment and causalizable equations, choose var with biggest sum.)
* MC23 (Modified MC2, build sum of impossible assignment and causalizable equations, choose var with biggest sum.)
* MC231 (Modified MC23, Two rounds, choose better potentials-set.)
* MC3 (Modified cellier, build sum of impossible assignment and causalizable equations for all vars, choose var with biggest sum.)
* MC4 (Modified cellier, use all heuristics, choose var that occurs most in potential sets)

.. _omcflag-disableLinearTearing:

:ref:`--disableLinearTearing<omcflag-disableLinearTearing>`

Disables the tearing of linear systems. That might improve the performance of large linear systems(N>1000) in combination with a sparse solver (e.g. umfpack) at runtime (usage with: -ls umfpack).

Boolean (default ``false``).

.. _omcflag-scalarizeMinMax:

:ref:`--scalarizeMinMax<omcflag-scalarizeMinMax>`

Scalarizes the builtin min/max reduction operators if true.

Boolean (default ``false``).

.. _omcflag-scalarizeBindings:

:ref:`--scalarizeBindings<omcflag-scalarizeBindings>`

Always scalarizes bindings if set.

Boolean (default ``false``).

.. _omcflag-corbaObjectReferenceFilePath:

:ref:`--corbaObjectReferenceFilePath<omcflag-corbaObjectReferenceFilePath>`

Sets the path for corba object reference file if -d=interactiveCorba is used.

String (default *empty*).

.. _omcflag-hpcomScheduler:

:ref:`--hpcomScheduler<omcflag-hpcomScheduler>`

Sets the scheduler for task graph scheduling (list | listr | level | levelfix | ext | metis | mcp | taskdep | tds | bls | rand | none). Default: level.

String (default level).

.. _omcflag-hpcomCode:

:ref:`--hpcomCode<omcflag-hpcomCode>`

Sets the code-type produced by hpcom (openmp | pthreads | pthreads_spin | tbb | mpi). Default: openmp.

String (default openmp).

.. _omcflag-rewriteRulesFile:

:ref:`--rewriteRulesFile<omcflag-rewriteRulesFile>`

Activates user given rewrite rules for Absyn expressions. The rules are read from the given file and are of the form rewrite(fromExp, toExp);

String (default *empty*).

.. _omcflag-replaceHomotopy:

:ref:`--replaceHomotopy<omcflag-replaceHomotopy>`

Replaces homotopy(actual, simplified) with the actual expression or the simplified expression. Good for debugging models which use homotopy. The default is to not replace homotopy.

String (default none). Valid options:

* none (Default, do not replace homotopy.)
* actual (Replace homotopy(actual, simplified) with actual.)
* simplified (Replace homotopy(actual, simplified) with simplified.)

.. _omcflag-generateSymbolicJacobian:

:ref:`--generateSymbolicJacobian<omcflag-generateSymbolicJacobian>`

Generates symbolic Jacobian matrix, where der(x) is differentiated w.r.t. x. This matrix can be utilise by dassl with the runtime option: -dasslJacobian=coloredSymbolical|symbolical.
Deprecated flag: Use --postOptModules+=generateSymbolicJacobian instead.

Boolean (default ``false``).

.. _omcflag-generateSymbolicLinearization:

:ref:`--generateSymbolicLinearization<omcflag-generateSymbolicLinearization>`

Generates symbolic linearization matrices A,B,C,D for linear model:
		:math:`\dot x = Ax + Bu`
		:math:`y = Cx +Du`

Boolean (default ``false``).

.. _omcflag-intEnumConversion:

:ref:`--intEnumConversion<omcflag-intEnumConversion>`

Allow Integer to enumeration conversion.

Boolean (default ``false``).

.. _omcflag-profiling:

:ref:`--profiling<omcflag-profiling>`

Sets the profiling level to use. Profiled equations and functions record execution time and count for each time step taken by the integrator.

String (default none). Valid options:

* none (Generate code without profiling)
* blocks (Generate code for profiling function calls as well as linear and non-linear systems of equations)
* blocks+html (Like blocks, but also run xsltproc and gnuplot to generate an html report)
* all (Generate code for profiling of all functions and equations)
* all_perf (Generate code for profiling of all functions and equations with additional performance data using the papi-interface (cpp-runtime))
* all_stat (Generate code for profiling of all functions and equations with additional statistics (cpp-runtime))

.. _omcflag-reshuffle:

:ref:`--reshuffle<omcflag-reshuffle>`

sets tolerance of reshuffling algorithm: 1: conservative, 2: more tolerant, 3 resolve all

Integer (default ``1``).

.. _omcflag-gDynOpt:

:ref:`--gDynOpt<omcflag-gDynOpt>`

Generate dynamic optimization problem based on annotation approach.

Boolean (default ``false``).

.. _omcflag-maxSizeSolveLinearSystem:

:ref:`--maxSizeSolveLinearSystem<omcflag-maxSizeSolveLinearSystem>`

Max size for solveLinearSystem.

Integer (default ``0``).

.. _omcflag-cppFlags:

:ref:`--cppFlags<omcflag-cppFlags>`

Sets extra flags for compilation with the C++ compiler (e.g. +cppFlags=-O3,-Wall)

String list (default ).

.. _omcflag-removeSimpleEquations:

:ref:`--removeSimpleEquations<omcflag-removeSimpleEquations>`

Specifies method that removes simple equations.

String (default default). Valid options:

* none (Disables module)
* default (Performs alias elimination and removes constant variables. Default case uses in preOpt phase the fastAcausal and in postOpt phase the causal implementation.)
* causal (Performs alias elimination and removes constant variables. Causal implementation.)
* fastAcausal (Performs alias elimination and removes constant variables. fastImplementation fastAcausal.)
* allAcausal (Performs alias elimination and removes constant variables. Implementation allAcausal.)
* new (New implementation (experimental))

.. _omcflag-dynamicTearing:

:ref:`--dynamicTearing<omcflag-dynamicTearing>`

Activates dynamic tearing (TearingSet can be changed automatically during runtime, strict set vs. casual set.)

Boolean (default ``false``).

.. _omcflag-symEuler:

:ref:`--symEuler<omcflag-symEuler>`

Rewrite the ode system for implicit euler.

Boolean (default ``false``).

.. _omcflag-loop2con:

:ref:`--loop2con<omcflag-loop2con>`

Specifies method that transform loops in constraints. hint: using initial guess from file!

String (default none). Valid options:

* none (Disables module)
* lin (linear loops --> constraints)
* noLin (no linear loops --> constraints)
* all (loops --> constraints)

.. _omcflag-forceTearing:

:ref:`--forceTearing<omcflag-forceTearing>`

Use tearing set even if it is not smaller than the original component.

Boolean (default ``false``).

.. _omcflag-simplifyLoops:

:ref:`--simplifyLoops<omcflag-simplifyLoops>`

Simplify algebraic loops.

Integer (default ``0``). Valid options:

* 0 (do nothing)
* 1 (special modification of residual expressions)
* 2 (special modification of residual expressions with helper variables)

.. _omcflag-recursiveTearing:

:ref:`--recursiveTearing<omcflag-recursiveTearing>`

Inline and repeat tearing.

Integer (default ``0``). Valid options:

* 0 (do nothing)
* 1 (linear tearing set of size 1)
* 2 (linear tearing)

.. _omcflag-flowThreshold:

:ref:`--flowThreshold<omcflag-flowThreshold>`

Sets the minium threshold for stream flow rates

Real (default ``1e-07``).

.. _omcflag-matrixFormat:

:ref:`--matrixFormat<omcflag-matrixFormat>`

Sets the matrix format type in cpp runtime which should be used (dense | sparse ). Default: dense.

String (default dense).

.. _omcflag-partlintorn:

:ref:`--partlintorn<omcflag-partlintorn>`

Sets the limit for partitionin of linear torn systems.

Integer (default ``0``).

.. _omcflag-initOptModules:

:ref:`--initOptModules<omcflag-initOptModules>`

Sets the initialization optimization modules to use in the back end. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default simplifyComplexFunction,tearingSystem,calculateStrongComponentJacobians,solveSimpleEquations,simplifyAllExpressions). Valid options:

* calculateStrongComponentJacobians (Generates analytical jacobian for torn linear and non-linear strong components. By default non-linear components with user-defined function calls are skipped. See also debug flags: NLSanalyticJacobian and NLSanalyticJacobianDisable)
* constantLinearSystem (Evaluates constant linear systems (a*x+b*y=c; d*x+e*y=f; a,b,c,d,e,f are constants) at compile-time.)
* extendDynamicOptimization (Move loops to constraints.)
* inputDerivativesUsed (Checks if derivatives of inputs are need to calculate the model.)
* recursiveTearing (inline and repeat tearing)
* reduceDynamicOptimization (Removes equations which are not needed for the calculations of cost and constraints. This module requires +d=reduceDynOpt.)
* simplifyAllExpressions (Does simplifications on all expressions.)
* simplifyComplexFunction (Some simplifications on complex functions (complex refers to the internal data structure))
* simplifyConstraints (Rewrites nonlinear constraints into box constraints if possible. This module requires +gDynOpt.)
* simplifyLoops (Simplifies algebraic loops. This modules requires +simplifyLoops.)
* solveSimpleEquations (Solves simple equations)
* tearingSystem (For method selection use flag tearingMethod.)

.. _omcflag-maxMixedDeterminedIndex:

:ref:`--maxMixedDeterminedIndex<omcflag-maxMixedDeterminedIndex>`

Sets the maximum mixed-determined index that is handled by the initialization.

Integer (default ``3``).

.. _omcflag-useLocalDirection:

:ref:`--useLocalDirection<omcflag-useLocalDirection>`

Keeps the input/output prefix for all variables in the flat model, not only top-level ones.

Boolean (default ``false``).

.. _omcflag-defaultOptModulesOrdering:

:ref:`--defaultOptModulesOrdering<omcflag-defaultOptModulesOrdering>`

If this is activated, then the specified pre-/post-/init-optimization modules will be rearranged to the recommended ordering.

Boolean (default ``true``).

.. _omcflag-preOptModules+:

:ref:`--preOptModules+<omcflag-preOptModules+>`

Sets additional pre-optimization modules to use in the back end. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default *empty*).

.. _omcflag-preOptModules-:

:ref:`--preOptModules-<omcflag-preOptModules->`

Disables a list of pre-optimization modules. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default *empty*).

.. _omcflag-postOptModules+:

:ref:`--postOptModules+<omcflag-postOptModules+>`

Sets additional post-optimization modules to use in the back end. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default *empty*).

.. _omcflag-postOptModules-:

:ref:`--postOptModules-<omcflag-postOptModules->`

Disables a list of post-optimization modules. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default *empty*).

.. _omcflag-initOptModules+:

:ref:`--initOptModules+<omcflag-initOptModules+>`

Sets additional init-optimization modules to use in the back end. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default *empty*).

.. _omcflag-initOptModules-:

:ref:`--initOptModules-<omcflag-initOptModules->`

Disables a list of init-optimization modules. See :ref:`--help=optmodules <omcflag-optmodules-section>` for more info.

String list (default *empty*).


.. _omcflag-debug-section:

Debug flags
-----------

The debug flag takes a comma-separated list of flags which are used by the
compiler for debugging or experimental purposes.
Flags prefixed with "-" or "no" will be disabled.
The available flags are (+ are enabled by default, - are disabled):


.. _omcflag-debug-Cache:

:ref:`Cache <omcflag-debug-Cache>` (default: on)
  Turns off the instantiation cache.

.. _omcflag-debug-NLSanalyticJacobian:

:ref:`NLSanalyticJacobian <omcflag-debug-NLSanalyticJacobian>` (default: on)
  Enables analytical jacobian for non-linear strong components without user-defined function calls, for that see forceNLSanalyticJacobian

.. _omcflag-debug-acceptTooManyFields:

:ref:`acceptTooManyFields <omcflag-debug-acceptTooManyFields>` (default: off)
  Accepts passing records with more fields than expected to a function. This is not allowed, but is used in Fluid.Dissipation. See https://trac.modelica.org/Modelica/ticket/1245 for details.

.. _omcflag-debug-addDerAliases:

:ref:`addDerAliases <omcflag-debug-addDerAliases>` (default: off)
  Adds for every der-call an alias equation e.g. dx = der(x). It's a work-a-round flag,
  which helps im some cases to simulate the models e.g.
  Modelica.Fluid.Examples.HeatExchanger.HeatExchangerSimulation.
  Deprecated flag: Use --preOptModules+=introduceDerAlias instead.

.. _omcflag-debug-addScaledVars:

:ref:`addScaledVars <omcflag-debug-addScaledVars>` (default: off)
  Adds an alias equation var_nrom = var/nominal where var is state
  Deprecated flag: Use --postOptModules+=addScaledVars_states instead.

.. _omcflag-debug-addScaledVarsInput:

:ref:`addScaledVarsInput <omcflag-debug-addScaledVarsInput>` (default: off)
  Adds an alias equation var_nrom = var/nominal where var is input
  Deprecated flag: Use --postOptModules+=addScaledVars_inputs instead.

.. _omcflag-debug-advanceTearing:

:ref:`advanceTearing <omcflag-debug-advanceTearing>` (default: off)
  Using ExpressionSolve in adjacencyRowEnhanced

.. _omcflag-debug-backenddaeinfo:

:ref:`backenddaeinfo <omcflag-debug-backenddaeinfo>` (default: off)
  Enables dumping of back-end information about system (Number of equations before back-end,...).

.. _omcflag-debug-bltdump:

:ref:`bltdump <omcflag-debug-bltdump>` (default: off)
  Dumps information from index reduction.

.. _omcflag-debug-buildExternalLibs:

:ref:`buildExternalLibs <omcflag-debug-buildExternalLibs>` (default: on)
  Use the autotools project in the Resources folder of the library to build missing external libraries.

.. _omcflag-debug-ceval:

:ref:`ceval <omcflag-debug-ceval>` (default: off)
  Prints extra information from Ceval.

.. _omcflag-debug-cgraph:

:ref:`cgraph <omcflag-debug-cgraph>` (default: off)
  Prints out connection graph information.

.. _omcflag-debug-cgraphGraphVizFile:

:ref:`cgraphGraphVizFile <omcflag-debug-cgraphGraphVizFile>` (default: off)
  Generates a graphviz file of the connection graph.

.. _omcflag-debug-cgraphGraphVizShow:

:ref:`cgraphGraphVizShow <omcflag-debug-cgraphGraphVizShow>` (default: off)
  Displays the connection graph with the GraphViz lefty tool.

.. _omcflag-debug-checkASUB:

:ref:`checkASUB <omcflag-debug-checkASUB>` (default: off)
  Prints out a warning if an ASUB is created from a CREF expression.

.. _omcflag-debug-checkBackendDae:

:ref:`checkBackendDae <omcflag-debug-checkBackendDae>` (default: off)
  Do some simple analyses on the datastructure from the frontend to check if it is consistent.

.. _omcflag-debug-checkDAECrefType:

:ref:`checkDAECrefType <omcflag-debug-checkDAECrefType>` (default: off)
  Enables extra type checking for cref expressions.

.. _omcflag-debug-checkSimplify:

:ref:`checkSimplify <omcflag-debug-checkSimplify>` (default: off)
  Enables checks for expression simplification and prints a notification whenever an undesirable transformation has been performed.

.. _omcflag-debug-constjac:

:ref:`constjac <omcflag-debug-constjac>` (default: off)
  solves linear systems with constant Jacobian and variable b-Vector symbolically

.. _omcflag-debug-countOperations:

:ref:`countOperations <omcflag-debug-countOperations>` (default: off)
  Count operations.

.. _omcflag-debug-daedumpgraphv:

:ref:`daedumpgraphv <omcflag-debug-daedumpgraphv>` (default: off)
  Dumps the DAE in graphviz format.

.. _omcflag-debug-debugAlgebraicLoopsJacobian:

:ref:`debugAlgebraicLoopsJacobian <omcflag-debug-debugAlgebraicLoopsJacobian>` (default: off)
  Dumps debug output while creating symbolic jacobians for non-linear systems.

.. _omcflag-debug-debugAlias:

:ref:`debugAlias <omcflag-debug-debugAlias>` (default: off)
  Dump the found alias variables.

.. _omcflag-debug-debugDifferentiation:

:ref:`debugDifferentiation <omcflag-debug-debugDifferentiation>` (default: off)
  Dumps debug output for the differentiation process.

.. _omcflag-debug-debugDifferentiationVerbose:

:ref:`debugDifferentiationVerbose <omcflag-debug-debugDifferentiationVerbose>` (default: off)
  Dumps verbose debug output for the differentiation process.

.. _omcflag-debug-disableComSubExp:

:ref:`disableComSubExp <omcflag-debug-disableComSubExp>` (default: off)
  Deactivates module 'comSubExp'
  Deprecated flag: Use --preOptModules-=comSubExp instead.

.. _omcflag-debug-disableJacsforSCC:

:ref:`disableJacsforSCC <omcflag-debug-disableJacsforSCC>` (default: off)
  Disables calculation of jacobians to detect if a SCC is linear or non-linear. By disabling all SCC will handled like non-linear.

.. _omcflag-debug-disablePartitioning:

:ref:`disablePartitioning <omcflag-debug-disablePartitioning>` (default: off)
  Deactivates partitioning of entire equation system.
  Deprecated flag: Use --preOptModules-=clockPartitioning instead.

.. _omcflag-debug-disableRecordConstructorOutput:

:ref:`disableRecordConstructorOutput <omcflag-debug-disableRecordConstructorOutput>` (default: off)
  Disables output of record constructors in the flat code.

.. _omcflag-debug-disableSimplifyComplexFunction:

:ref:`disableSimplifyComplexFunction <omcflag-debug-disableSimplifyComplexFunction>` (default: off)
  disable simplifyComplexFunction
  Deprecated flag: Use --postOptModules-=simplifyComplexFunction/--initOptModules-=simplifyComplexFunction instead.

.. _omcflag-debug-disableSingleFlowEq:

:ref:`disableSingleFlowEq <omcflag-debug-disableSingleFlowEq>` (default: off)
  Disables the generation of single flow equations.

.. _omcflag-debug-disableStartCalc:

:ref:`disableStartCalc <omcflag-debug-disableStartCalc>` (default: off)
  Deactivates the pre-calculation of start values during compile-time.

.. _omcflag-debug-disableSymbolicLinearization:

:ref:`disableSymbolicLinearization <omcflag-debug-disableSymbolicLinearization>` (default: off)
  For FMI 2.0 only dependecy analysis will be perform.

.. _omcflag-debug-disableWindowsPathCheckWarning:

:ref:`disableWindowsPathCheckWarning <omcflag-debug-disableWindowsPathCheckWarning>` (default: off)
  Disables warnings on Windows if OPENMODELICAHOME/MinGW is missing.

.. _omcflag-debug-discreteinfo:

:ref:`discreteinfo <omcflag-debug-discreteinfo>` (default: off)
  Enables dumping of discrete variables. Extends -d=backenddaeinfo.

.. _omcflag-debug-dummyselect:

:ref:`dummyselect <omcflag-debug-dummyselect>` (default: off)
  Dumps information from dummy state selection heuristic.

.. _omcflag-debug-dump:

:ref:`dump <omcflag-debug-dump>` (default: off)
  Dumps the absyn representation of a program.

.. _omcflag-debug-dumpCSE:

:ref:`dumpCSE <omcflag-debug-dumpCSE>` (default: off)
  Additional output for CSE module.

.. _omcflag-debug-dumpCSE_verbose:

:ref:`dumpCSE_verbose <omcflag-debug-dumpCSE_verbose>` (default: off)
  Additional output for CSE module.

.. _omcflag-debug-dumpConstrepl:

:ref:`dumpConstrepl <omcflag-debug-dumpConstrepl>` (default: off)
  Dump the found replacements for constants.

.. _omcflag-debug-dumpEArepl:

:ref:`dumpEArepl <omcflag-debug-dumpEArepl>` (default: off)
  Dump the found replacements for evaluate annotations (evaluate=true) parameters.

.. _omcflag-debug-dumpEncapsulateConditions:

:ref:`dumpEncapsulateConditions <omcflag-debug-dumpEncapsulateConditions>` (default: off)
  Dumps the results of the preOptModule encapsulateWhenConditions.

.. _omcflag-debug-dumpEqInUC:

:ref:`dumpEqInUC <omcflag-debug-dumpEqInUC>` (default: off)
  Dumps all equations handled by the unit checker.

.. _omcflag-debug-dumpEqUCStruct:

:ref:`dumpEqUCStruct <omcflag-debug-dumpEqUCStruct>` (default: off)
  Dumps all the equations handled by the unit checker as tree-structure.

.. _omcflag-debug-dumpExcludedSymJacExps:

:ref:`dumpExcludedSymJacExps <omcflag-debug-dumpExcludedSymJacExps>` (default: off)
  This flags dumps all expression that are excluded from differentiation of a symbolic Jacobian.

.. _omcflag-debug-dumpFPrepl:

:ref:`dumpFPrepl <omcflag-debug-dumpFPrepl>` (default: off)
  Dump the found replacements for final parameters.

.. _omcflag-debug-dumpFunctions:

:ref:`dumpFunctions <omcflag-debug-dumpFunctions>` (default: off)
  Add functions to backend dumps.

.. _omcflag-debug-dumpHomotopy:

:ref:`dumpHomotopy <omcflag-debug-dumpHomotopy>` (default: off)
  Dumps the results of the postOptModule optimizeHomotopyCalls.

.. _omcflag-debug-dumpInlineSolver:

:ref:`dumpInlineSolver <omcflag-debug-dumpInlineSolver>` (default: off)
  Dumps the inline solver equation system.

.. _omcflag-debug-dumpLoops:

:ref:`dumpLoops <omcflag-debug-dumpLoops>` (default: off)
  Dumps loop equation.

.. _omcflag-debug-dumpPPrepl:

:ref:`dumpPPrepl <omcflag-debug-dumpPPrepl>` (default: off)
  Dump the found replacements for protected parameters.

.. _omcflag-debug-dumpParamrepl:

:ref:`dumpParamrepl <omcflag-debug-dumpParamrepl>` (default: off)
  Dump the found replacements for remove parameters.

.. _omcflag-debug-dumpRecursiveTearing:

:ref:`dumpRecursiveTearing <omcflag-debug-dumpRecursiveTearing>` (default: off)
  Dump between steps of recursiveTearing

.. _omcflag-debug-dumpSCCGraphML:

:ref:`dumpSCCGraphML <omcflag-debug-dumpSCCGraphML>` (default: off)
  Dumps graphml files with the strongly connected components.

.. _omcflag-debug-dumpSimCode:

:ref:`dumpSimCode <omcflag-debug-dumpSimCode>` (default: off)
  Dumps the simCode model used for code generation.

.. _omcflag-debug-dumpSimplifyLoops:

:ref:`dumpSimplifyLoops <omcflag-debug-dumpSimplifyLoops>` (default: off)
  Dump between steps of simplifyLoops

.. _omcflag-debug-dumpSparsePattern:

:ref:`dumpSparsePattern <omcflag-debug-dumpSparsePattern>` (default: off)
  Dumps sparse pattern with coloring used for simulation.

.. _omcflag-debug-dumpSparsePatternVerbose:

:ref:`dumpSparsePatternVerbose <omcflag-debug-dumpSparsePatternVerbose>` (default: off)
  Dumps in verbose mode sparse pattern with coloring used for simulation.

.. _omcflag-debug-dumpSynchronous:

:ref:`dumpSynchronous <omcflag-debug-dumpSynchronous>` (default: off)
  Dumps information of the clock partitioning.

.. _omcflag-debug-dumpTransformedModelica:

:ref:`dumpTransformedModelica <omcflag-debug-dumpTransformedModelica>` (default: off)
  Dumps the back-end DAE to a Modelica-like model after all symbolic transformations are applied.

.. _omcflag-debug-dumpUnits:

:ref:`dumpUnits <omcflag-debug-dumpUnits>` (default: off)
  Dumps all the calculated units.

.. _omcflag-debug-dumpdaelow:

:ref:`dumpdaelow <omcflag-debug-dumpdaelow>` (default: off)
  Dumps the equation system at the beginning of the back end.

.. _omcflag-debug-dumpdgesv:

:ref:`dumpdgesv <omcflag-debug-dumpdgesv>` (default: off)
  Enables dumping of the information whether DGESV is used to solve linear systems.

.. _omcflag-debug-dumpeqninorder:

:ref:`dumpeqninorder <omcflag-debug-dumpeqninorder>` (default: off)
  Enables dumping of the equations in the order they are calculated.

.. _omcflag-debug-dumpindxdae:

:ref:`dumpindxdae <omcflag-debug-dumpindxdae>` (default: off)
  Dumps the equation system after index reduction and optimization.

.. _omcflag-debug-dumpinitialsystem:

:ref:`dumpinitialsystem <omcflag-debug-dumpinitialsystem>` (default: off)
  Dumps the initial equation system.

.. _omcflag-debug-dumprepl:

:ref:`dumprepl <omcflag-debug-dumprepl>` (default: off)
  Dump the found replacements for simple equation removal.

.. _omcflag-debug-dynamicTearingInfo:

:ref:`dynamicTearingInfo <omcflag-debug-dynamicTearingInfo>` (default: off)
  Dumps information about the strict and casual sets of the tearing system.

.. _omcflag-debug-dynload:

:ref:`dynload <omcflag-debug-dynload>` (default: off)
  Display debug information about dynamic loading of compiled functions.

.. _omcflag-debug-evalAllParams:

:ref:`evalAllParams <omcflag-debug-evalAllParams>` (default: off)
  Evaluates all parameters in order to increase simulation speed.
  Deprecated flag: Use --preOptModules+=evaluateAllParameters instead.

.. _omcflag-debug-evalConstFuncs:

:ref:`evalConstFuncs <omcflag-debug-evalConstFuncs>` (default: on)
  Evaluates functions complete and partially and checks for constant output.
  Deprecated flag: Use --preOptModules+=evalFunc instead.

.. _omcflag-debug-evalFuncDump:

:ref:`evalFuncDump <omcflag-debug-evalFuncDump>` (default: off)
  dumps debug information about the function evaluation

.. _omcflag-debug-evalOutputOnly:

:ref:`evalOutputOnly <omcflag-debug-evalOutputOnly>` (default: off)
  Generates equations to calculate outputs only.

.. _omcflag-debug-evalfunc:

:ref:`evalfunc <omcflag-debug-evalfunc>` (default: on)
  Turns on/off symbolic function evaluation.

.. _omcflag-debug-evalparam:

:ref:`evalparam <omcflag-debug-evalparam>` (default: off)
  Constant evaluates parameters if set.

.. _omcflag-debug-events:

:ref:`events <omcflag-debug-events>` (default: on)
  Turns on/off events handling.

.. _omcflag-debug-execHash:

:ref:`execHash <omcflag-debug-execHash>` (default: off)
  Measures the time it takes to hash all simcode variables before code generation.

.. _omcflag-debug-execstat:

:ref:`execstat <omcflag-debug-execstat>` (default: off)
  Prints out execution statistics for the compiler.

.. _omcflag-debug-experimentalReductions:

:ref:`experimentalReductions <omcflag-debug-experimentalReductions>` (default: off)
  Turns on custom reduction functions (OpenModelica extension).

.. _omcflag-debug-failtrace:

:ref:`failtrace <omcflag-debug-failtrace>` (default: off)
  Sets whether to print a failtrace or not.

.. _omcflag-debug-fmuExperimental:

:ref:`fmuExperimental <omcflag-debug-fmuExperimental>` (default: off)
  Include an extra function in the FMU fmi2GetSpecificDerivatives.

.. _omcflag-debug-forceNLSanalyticJacobian:

:ref:`forceNLSanalyticJacobian <omcflag-debug-forceNLSanalyticJacobian>` (default: off)
  Forces calculation analytical jacobian also for non-linear strong components with user-defined functions.

.. _omcflag-debug-gcProfiling:

:ref:`gcProfiling <omcflag-debug-gcProfiling>` (default: off)
  Prints garbage collection stats to standard output.

.. _omcflag-debug-gen:

:ref:`gen <omcflag-debug-gen>` (default: on)
  Turns on/off dynamic loading of functions that are compiled during translation. Only enable this if external functions are needed to calculate structural parameters or constants.

.. _omcflag-debug-gendebugsymbols:

:ref:`gendebugsymbols <omcflag-debug-gendebugsymbols>` (default: off)
  Generate code with debugging symbols.

.. _omcflag-debug-generateCodeCheat:

:ref:`generateCodeCheat <omcflag-debug-generateCodeCheat>` (default: off)
  Used to generate code for the bootstrapped compiler.

.. _omcflag-debug-graphInst:

:ref:`graphInst <omcflag-debug-graphInst>` (default: off)
  Do graph based instantiation.

.. _omcflag-debug-graphInstGenGraph:

:ref:`graphInstGenGraph <omcflag-debug-graphInstGenGraph>` (default: off)
  Dumps a graph of the program. Use with -d=graphInst

.. _omcflag-debug-graphInstRunDep:

:ref:`graphInstRunDep <omcflag-debug-graphInstRunDep>` (default: off)
  Run scode dependency analysis. Use with -d=graphInst

.. _omcflag-debug-graphInstShowGraph:

:ref:`graphInstShowGraph <omcflag-debug-graphInstShowGraph>` (default: off)
  Display a graph of the program interactively. Use with -d=graphInst

.. _omcflag-debug-graphml:

:ref:`graphml <omcflag-debug-graphml>` (default: off)
  Dumps .graphml files for the bipartite graph after Index Reduction and a task graph for the SCCs. Can be displayed with yEd.

.. _omcflag-debug-graphviz:

:ref:`graphviz <omcflag-debug-graphviz>` (default: off)
  Dumps the absyn representation of a program in graphviz format.

.. _omcflag-debug-graphvizDump:

:ref:`graphvizDump <omcflag-debug-graphvizDump>` (default: off)
  Activates additional graphviz dumps (as .dot files). It can be used in addition to one of the following flags: {dumpdaelow|dumpinitialsystems|dumpindxdae}.

.. _omcflag-debug-hardcodedStartValues:

:ref:`hardcodedStartValues <omcflag-debug-hardcodedStartValues>` (default: off)
  Embed the start values of variables and parameters into the c++ code and do not read it from xml file.

.. _omcflag-debug-hpcom:

:ref:`hpcom <omcflag-debug-hpcom>` (default: off)
  Enables parallel calculation based on task-graphs.

.. _omcflag-debug-hpcomDump:

:ref:`hpcomDump <omcflag-debug-hpcomDump>` (default: off)
  Dumps additional information on the parallel execution with hpcom.

.. _omcflag-debug-hpcomMemoryOpt:

:ref:`hpcomMemoryOpt <omcflag-debug-hpcomMemoryOpt>` (default: off)
  Optimize the memory structure regarding the selected scheduler

.. _omcflag-debug-implOde:

:ref:`implOde <omcflag-debug-implOde>` (default: off)
  activates implicit codegen

.. _omcflag-debug-infoXmlOperations:

:ref:`infoXmlOperations <omcflag-debug-infoXmlOperations>` (default: off)
  Enables output of the operations in the _info.xml file when translating models.

.. _omcflag-debug-initialization:

:ref:`initialization <omcflag-debug-initialization>` (default: off)
  Shows additional information from the initialization process.

.. _omcflag-debug-inlineFunctions:

:ref:`inlineFunctions <omcflag-debug-inlineFunctions>` (default: on)
  Controls if function inlining should be performed.

.. _omcflag-debug-inlineSolver:

:ref:`inlineSolver <omcflag-debug-inlineSolver>` (default: off)
  Generates code for inline solver.

.. _omcflag-debug-instance:

:ref:`instance <omcflag-debug-instance>` (default: off)
  Prints extra failtrace from InstanceHierarchy.

.. _omcflag-debug-interactive:

:ref:`interactive <omcflag-debug-interactive>` (default: off)
  Starts omc as a server listening on the socket interface.

.. _omcflag-debug-interactiveCorba:

:ref:`interactiveCorba <omcflag-debug-interactiveCorba>` (default: off)
  Starts omc as a server listening on the Corba interface.

.. _omcflag-debug-interactivedump:

:ref:`interactivedump <omcflag-debug-interactivedump>` (default: off)
  Prints out debug information for the interactive server.

.. _omcflag-debug-iterationVars:

:ref:`iterationVars <omcflag-debug-iterationVars>` (default: off)
  Shows a list of all iteration variables.

.. _omcflag-debug-lookup:

:ref:`lookup <omcflag-debug-lookup>` (default: off)
  Print extra failtrace from lookup.

.. _omcflag-debug-modelInfoJson:

:ref:`modelInfoJson <omcflag-debug-modelInfoJson>` (default: on)
  Experimental: Generates a file with suffix _info.json instead of _info.xml.

.. _omcflag-debug-multirate:

:ref:`multirate <omcflag-debug-multirate>` (default: off)
  The solver can switch partitions in the system.

.. _omcflag-debug-onRelaxation:

:ref:`onRelaxation <omcflag-debug-onRelaxation>` (default: off)
  Perform O(n) relaxation.
  Deprecated flag: Use --postOptModules+=relaxSystem instead.

.. _omcflag-debug-optdaedump:

:ref:`optdaedump <omcflag-debug-optdaedump>` (default: off)
  Dumps information from the optimization modules.

.. _omcflag-debug-paramdlowdump:

:ref:`paramdlowdump <omcflag-debug-paramdlowdump>` (default: off)
  Enables dumping of the parameters in the order they are calculated.

.. _omcflag-debug-parmodauto:

:ref:`parmodauto <omcflag-debug-parmodauto>` (default: off)
  Experimental: Enable parallelization of independent systems of equations in the translated model.

.. _omcflag-debug-patternmAllInfo:

:ref:`patternmAllInfo <omcflag-debug-patternmAllInfo>` (default: off)
  Adds notifications of all pattern-matching optimizations that are performed.

.. _omcflag-debug-patternmDeadCodeElimination:

:ref:`patternmDeadCodeElimination <omcflag-debug-patternmDeadCodeElimination>` (default: on)
  Performs dead code elimination in match-expressions.

.. _omcflag-debug-patternmMoveLastExp:

:ref:`patternmMoveLastExp <omcflag-debug-patternmMoveLastExp>` (default: on)
  Optimization that moves the last assignment(s) into the result of a match-expression. For example: equation c = fn(b); then c; => then fn(b);

.. _omcflag-debug-patternmSkipFilterUnusedBindings:

:ref:`patternmSkipFilterUnusedBindings <omcflag-debug-patternmSkipFilterUnusedBindings>` (default: off)
  

.. _omcflag-debug-pedantic:

:ref:`pedantic <omcflag-debug-pedantic>` (default: off)
  Switch into pedantic debug-mode, to get much more feedback.

.. _omcflag-debug-printStructuralParameters:

:ref:`printStructuralParameters <omcflag-debug-printStructuralParameters>` (default: off)
  Prints the structural parameters identified by the front-end

.. _omcflag-debug-pthreads:

:ref:`pthreads <omcflag-debug-pthreads>` (default: off)
  Experimental: Unused parallelization.

.. _omcflag-debug-reduceDynOpt:

:ref:`reduceDynOpt <omcflag-debug-reduceDynOpt>` (default: off)
  remove eqs which not need for the calculations of cost and constraints
  Deprecated flag: Use --postOptModules+=reduceDynamicOptimization instead.

.. _omcflag-debug-relidx:

:ref:`relidx <omcflag-debug-relidx>` (default: off)
  Prints out debug information about relations, that are used as zero crossings.

.. _omcflag-debug-reshufflePost:

:ref:`reshufflePost <omcflag-debug-reshufflePost>` (default: off)
  Reshuffles the systems of equations.

.. _omcflag-debug-resolveLoops:

:ref:`resolveLoops <omcflag-debug-resolveLoops>` (default: off)
  Activates the resolveLoops module.
  Deprecated flag: Use --preOptModules+=resolveLoops instead.

.. _omcflag-debug-rml:

:ref:`rml <omcflag-debug-rml>` (default: off)
  Converts Modelica-style arrays to lists.

.. _omcflag-debug-runtimeStaticLinking:

:ref:`runtimeStaticLinking <omcflag-debug-runtimeStaticLinking>` (default: off)
  Use the static simulation runtime libraries (C++ simulation runtime).

.. _omcflag-debug-scodeDep:

:ref:`scodeDep <omcflag-debug-scodeDep>` (default: on)
  Does scode dependency analysis prior to instantiation. Defaults to true.

.. _omcflag-debug-scodeInst:

:ref:`scodeInst <omcflag-debug-scodeInst>` (default: off)
  Enables experimental SCode instantiation phase.

.. _omcflag-debug-semiLinear:

:ref:`semiLinear <omcflag-debug-semiLinear>` (default: off)
  Enables dumping of the optimization information when optimizing calls to semiLinear.

.. _omcflag-debug-shortOutput:

:ref:`shortOutput <omcflag-debug-shortOutput>` (default: off)
  Enables short output of the simulate() command. Useful for tools like OMNotebook.

.. _omcflag-debug-showDaeGeneration:

:ref:`showDaeGeneration <omcflag-debug-showDaeGeneration>` (default: off)
  Show the dae variable declarations as they happen.

.. _omcflag-debug-showEquationSource:

:ref:`showEquationSource <omcflag-debug-showEquationSource>` (default: off)
  Display the element source information in the dumped DAE for easier debugging.

.. _omcflag-debug-showExpandableInfo:

:ref:`showExpandableInfo <omcflag-debug-showExpandableInfo>` (default: off)
  Show information about expandable connector handling.

.. _omcflag-debug-showInstCacheInfo:

:ref:`showInstCacheInfo <omcflag-debug-showInstCacheInfo>` (default: off)
  Prints information about instantiation cache hits and additions. Defaults to false.

.. _omcflag-debug-showStartOrigin:

:ref:`showStartOrigin <omcflag-debug-showStartOrigin>` (default: off)
  Enables dumping of the DAE startOrigin attribute of the variables.

.. _omcflag-debug-showStatement:

:ref:`showStatement <omcflag-debug-showStatement>` (default: off)
  Shows the statement that is currently being evaluated when evaluating a script.

.. _omcflag-debug-sortEqnsAndVars:

:ref:`sortEqnsAndVars <omcflag-debug-sortEqnsAndVars>` (default: off)
  Heuristic sorting for equations and variables. Influenced: removeSimpleEquations and tearing.
  Deprecated flag: Use --preOptModules+=sortEqnsVars instead.

.. _omcflag-debug-stateselection:

:ref:`stateselection <omcflag-debug-stateselection>` (default: off)
  Enables dumping of selected states. Extends -d=backenddaeinfo.

.. _omcflag-debug-static:

:ref:`static <omcflag-debug-static>` (default: off)
  Enables extra debug output from the static elaboration.

.. _omcflag-debug-stripPrefix:

:ref:`stripPrefix <omcflag-debug-stripPrefix>` (default: on)
  Strips the environment prefix from path/crefs. Defaults to true.

.. _omcflag-debug-symjacdump:

:ref:`symjacdump <omcflag-debug-symjacdump>` (default: off)
  Dumps information about symbolic Jacobians. Can be used only with postOptModules: generateSymbolicJacobian, generateSymbolicLinearization.

.. _omcflag-debug-symjacdumpeqn:

:ref:`symjacdumpeqn <omcflag-debug-symjacdumpeqn>` (default: off)
  Dump for debug purpose of symbolic Jacobians. (deactivated now).

.. _omcflag-debug-symjacdumpverbose:

:ref:`symjacdumpverbose <omcflag-debug-symjacdumpverbose>` (default: off)
  Dumps information in verbose mode about symbolic Jacobians. Can be used only with postOptModules: generateSymbolicJacobian, generateSymbolicLinearization.

.. _omcflag-debug-symjacwarnings:

:ref:`symjacwarnings <omcflag-debug-symjacwarnings>` (default: off)
  Prints warnings regarding symoblic jacbians.

.. _omcflag-debug-tail:

:ref:`tail <omcflag-debug-tail>` (default: off)
  Prints out a notification if tail recursion optimization has been applied.

.. _omcflag-debug-tearingdump:

:ref:`tearingdump <omcflag-debug-tearingdump>` (default: off)
  Dumps tearing information.

.. _omcflag-debug-tearingdumpV:

:ref:`tearingdumpV <omcflag-debug-tearingdumpV>` (default: off)
  Dumps verbose tearing information.

.. _omcflag-debug-tplPerfTimes:

:ref:`tplPerfTimes <omcflag-debug-tplPerfTimes>` (default: off)
  Enables output of template performance data for rendering text to file.

.. _omcflag-debug-transformsbeforedump:

:ref:`transformsbeforedump <omcflag-debug-transformsbeforedump>` (default: off)
  Applies transformations required for code generation before dumping flat code.

.. _omcflag-debug-types:

:ref:`types <omcflag-debug-types>` (default: off)
  Prints extra failtrace from Types.

.. _omcflag-debug-uncertainties:

:ref:`uncertainties <omcflag-debug-uncertainties>` (default: off)
  Enables dumping of status when calling modelEquationsUC.

.. _omcflag-debug-updmod:

:ref:`updmod <omcflag-debug-updmod>` (default: off)
  Prints information about modification updates.

.. _omcflag-debug-useMPI:

:ref:`useMPI <omcflag-debug-useMPI>` (default: off)
  Add MPI init and finalize to main method (CPPruntime).

.. _omcflag-debug-vectorize:

:ref:`vectorize <omcflag-debug-vectorize>` (default: off)
  Activates vectorization in the backend.

.. _omcflag-debug-visxml:

:ref:`visxml <omcflag-debug-visxml>` (default: off)
  Outputs a xml-file that contains information for visualization.

.. _omcflag-debug-writeToBuffer:

:ref:`writeToBuffer <omcflag-debug-writeToBuffer>` (default: off)
  Enables writing simulation results to buffer.

.. _omcflag-optmodules-section:

Flags for Optimization Modules
------------------------------

Flags that determine which symbolic methods are used to produce the causalized equation system.

The :ref:`--preOptModules <omcflag-preOptModules>` flag sets the optimization modules which are used before the
matching and index reduction in the back end. These modules are specified as a comma-separated list.

The :ref:`--matchingAlgorithm <omcflag-matchingAlgorithm>` sets the method that is used for the matching algorithm, after the pre optimization modules.

The :ref:`--indexReductionMethod <omcflag-indexReductionMethod>` sets the method that is used for the index reduction, after the pre optimization modules.

The :ref:`--initOptModules <omcflag-initOptModules>` then sets the optimization modules which are used after the index reduction to optimize the system for initialization, specified as a comma-separated list.

The :ref:`--postOptModules <omcflag-postOptModules>` then sets the optimization modules which are used after the index reduction to optimize the system for simulation, specified as a comma-separated list.

