3.4.1.4 Quantity Management Class

Minimos-NT supports several iteration schemes which are used to reduce the complexity of the equation set by taking only a reduced quantity set into account. After successfully solving the scheme a more complex equation set can be used for the next solving block. Therefore additional quantities must be added to the quantity array.

The quantity management class (QMC) serves as a container class for quantity structures described in Section 3.4.1.3. Its aim is to encapsulate the attributes of the structure, to communicate with the IO modules, and to manage the memory location of the quantity structures. It provides interface functions to control instantiated objects and to access the quantity information.

When a solvable quantity is created it is inserted into the global array of the solver module. These quantities are called fixed. For quantities which are not solvable a separate memory block is allocated. They are called floating. When additional quantities have to be added to the system matrix floating quantity structures have to be fixed by moving the structures to the solver array. In case quantities are not longer used by the solver module fixed quantity structures have to be made floating. In this case they are removed from the solver array and copied to a memory block allocated before. Thus, the array grows and shrinks dynamically. The approach of floating and fixed quantities was chosen to cope with an existing solver module.

This procedure is determined by the solver module of Minimos-NT. Since rearrangement of the array may happen only after a complete iteration in case a different equation set is used and will not influence many quantities, the small performance loss is no issue.

When quantities are removed from the array gaps emerge. The array has to be repaired by moving the subsequent quantity structures to close the gap. The indices stored in the quantity structures are corrected.

Figure 3.6: Fixed and floating quantities.
\begin{figure}\begin{center}
\psfig{file=figures/quan/MmqQuan2, width=15cm} \end{center} \vspace*{-0.6cm}
\end{figure}

Robert Klima 2003-02-06