AmesimKnowledge

Algebraic loops within Simcenter Amesim > How can I avoid/break algebraic loops?

At system level

Introduce delay in the loop

You can introduce delays in the information flow. The easiest way to break an algebraic loop relies on the introduction of a delay in the information flow so that a memory is introduced in the information loop: during a model evaluation the introduced memory will make it possible to recover the desired value from a previous evaluation rather than getting it from the submodel supposed to compute it during the current evaluation. This way the loop is broken, as the information flow can now be started from the stored value.

Delays might have different forms within Simcenter Amesim they can be introduced through:

  • Pure discrete delay

  • Continuous fist order lag Figure 69: A discrete delay

    Figure 70: A first order lag

    Note Remember that introducing such additional blocks might alter the results of the whole simulation. That is why it is necessary to understand the effect of the introduced delay (and try to lower it as much as possible), and of first order lag block.

  • Any block containing discrete state variables on ports… Placing any block containing discrete or state variables on ports participating in information flow will break the algebraic loop. If this is done, Simcenter Amesim will not handle an implicit variable to break the embedded algebraic loop any more.

Source: https://docs.sw.siemens.com/en-US/doc/254352342/PL20250521841123434.amesim_collection.Performance_Analyzer/xid1017755 · retrieved 2026-07-17