Next: 5. The Solver Module
Up: 4. The Assembly Module
Previous: 4.13 The Transferred-Transformation Problem
4.14 Concluding Remarks
Figure 4.8:
Comparison of the one-phase (upper) and four-phases (lower)
approach. In the latter case the implementation of the simulator is much more
complicated as the assembly module requires a specific assembling
sequence. Whereas in the one-phase approach the loop over all models is
processed only once, it has to be processed four times in the four-phases
approach. In addition it is necessary to call specific preparation functions
and each model implementation has to take the current phase into account, which
leads to complicated codes.
|
At the end of this chapter concluding remarks shall be given in order to
summarize the benefits of the in-house assembly module.
- Shared library concept: the simulator can be directly linked against the
assembly module.
- Comprehensive Application Programming Interface: this API enables
random access to all structures and is therefore an important contribution to
simplify and improve model development. See Figure 4.8 for a
comparison of the four-phases and one-phase approach.
- Rigorous implementation in C/C++: 30,500 lines of code.
- C++-Templates (type parameterization): efficient implementation based
on templates [212].
- Handling of real-valued and complex-valued equation systems.
- Ability to provide multi-level solvers with the respective connectivity
information: the simulator can use the assembly module to administer its
quantities.
- Centralized administration of control parameters.
- Comprehensive input-/output system: all structures can be
written to files and read from the files to be further processed.
These features can be used to check the assembly and to
efficiently evaluate different parameter settings for the solution
of the same linear equation system. In addition these files can be
used for debugging and quality assessment of the simulator as they
include the full quantity information for all equations.
- Stand-alone version: several test programs are available to see how the
library is applied.
The ability to be generally applicable has been proved as the assembly module
is used for another simulator at the institute, namely the Finite
Element Diffusion and Oxidation Simulator FEDOS [32].
Due to the rigorous implementation in C++ and the application of inline
methods, the performance difference to the former version, which was
implemented in C, is minimal. Especially in combination with the Newton
adjustment, the new system is not systematically slower than the old one.
Next: 5. The Solver Module
Up: 4. The Assembly Module
Previous: 4.13 The Transferred-Transformation Problem
S. Wagner: Small-Signal Device and Circuit Simulation