#CAPTION# setTolerance ————

Sets the tolerance for a given model or system. #END#

#LUA# .. code-block:: lua

status = oms_setTolerance(const char* cref, double tolerance) status = oms_setTolerance(const char* cref, double absoluteTolerance, double relativeTolerance)

#END#

#PYTHON# .. code-block:: python

status = oms.setTolerance(const char* cref, double tolerance) status = oms.setTolerance(const char* cref, double absoluteTolerance, double relativeTolerance)

#END#

#CAPI# .. code-block:: c

oms_status_enu_t oms_setTolerance(const char* cref, double absoluteTolerance, double relativeTolerance);

#END#

#OMC# .. code-block:: Modelica

status := oms_setTolerance(const char* cref, double tolerance); status := oms_setTolerance(const char* cref, double absoluteTolerance, double relativeTolerance);

#END#

#DESCRIPTION# Default values are 1e-4 for both relative and absolute tolerances.

A tolerance specified for a model is automatically applied to its root system, i.e. both calls do exactly the same:

oms_setTolerance("model", absoluteTolerance, relativeTolerance);
oms_setTolerance("model.root", absoluteTolerance, relativeTolerance);

Component, e.g. FMUs, pick up the tolerances from there system. That means it is not possible to define different tolerances for FMUs in the same system right now.

In a strongly coupled system (oms_system_sc), the relative tolerance is used for CVODE and the absolute tolerance is used to solve algebraic loops.

In a weakly coupled system (oms_system_wc), both the relative and absolute tolerances are used for the adaptive step master algorithms and the absolute tolerance is used to solve algebraic loops. #END#