Solver
The analysis by the equation system analyzer leads to a set of linear equation systems that are usually filled sparsely. To solve these systems AMIGOS is equipped with a direct and iterative solver taken from the development libraries [5].
The direct solver uses the Gaussian elimination method
[6] and should be used for badly conditioned
systems. The disadvantage of this method is the immense amount of
memory (
) and operation count for inversion (
) that is
unacceptable for simulations in three dimensions. Therefore it is
advisable to use the implemented iterative solver which is based on
the stabilized biconjugate gradient method (BiCGStab [7])
using an incomplete LU factorization
[8] and an auto scaling algorithm[9].
Time Discretization
To solve time dependent problems AMIGOS is equipped with the Backward Euler and the Cranck-Nicholson iteration scheme combined with a temporal error estimation and timestep control.
If AMIGOS detects a time dependence of a quantity it checks weather the last calculated time step was accurate enough or if the last calculation has to be rejected restarting the Newton iteration but now with a user defined `rejection-ratio' times smaller time step. The time-estimation algorithm is used to adapt the time-step in dependence of the calculated deviation of the chosen time interpolation (linear or logarithmic).