<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
                         "http://docbook.org/xml/4.4/docbookx.dtd">
<chapter>
    <title>Converger Component</title>
    <sect1>
        <title>Synopsis</title>
    <para>The Converger component checks values of type float and integer for convergence by
            comparing current values with values from previous runs.</para>
    </sect1>
    <sect1>
        <title>Rationale</title>
        <para>The Converger component checks values of all of its inputs for convergence. It
            compares the values of the current run with the values from previous runs. Absolute and
            relative convergence is supported. If the absolute difference is less then a pre-defined
            epsilon the values are considered as converged in terms of absolute convergence. In case
            of relative convergence the absolute difference is divided by the maximum of the
            considered values. The Converger component considers a loop as converged as soon as all
            if the values to consider are converged.</para>
        <para>To prevent endless-running loops, a maximum number of convergence check can be
            defined.</para>
        <para>In the final run of the Converger component, the values most recently received are
            sent to the outputs with the suffix '_converged'.</para>
    </sect1>
    <sect1>
        <title>Usage</title>
        <para>The Converger component has four configuration tabs.</para>
        <sect2>
            <title>Converge criteria tab</title>
            <para>Define the values for the epsilons in case of absolute and relative convergence.
                You can also define the number of iterations (k) which should be considered. In case
                of k > 1 not only the current and previous values but the minimum and maximum from
                the set of current plus previous k values are considered. So k = 1 means only
                current and previous values are considered, k = 2 current and two previous, etc. You
                can also limit the number of convergence checks.</para>
        </sect2>
        <sect2>
            <title>Inputs/Outputs tab</title>
            <para>Create an input for each value to consider. An output with the same name and an
                output with the suffix '_converged' are created automatically. In the "Add" dialog
                you can also decide whether to define a start value. In case if not, an additional
                input is created with the suffix '_start'.</para>
        </sect2>
        <sect2>
            <title>Nested and Fault-tolerant Loop tab</title>
            <para>See general section "Workflows" in the user guide.</para>
        </sect2>
        
    </sect1>
</chapter>
