The Algorithm class specifies how the LinearSystem will be solved. In other words, handles the iteration process when solving the linear/nonlinear system within a time interval [ \(t_n\), \(t_{n+1}\) ]. The Algorithm class is designed to:
The main member function in Integrator are:
In general, the Algorithm class is also responsible for satisfying the convergence criteria at the LinearSystem level when an implicit integrator is specified. Algorithm class can handle the following convergence test
to compute the residual:
test=1
and is computed as: \[\epsilon = \|\textrm{R}_{n+1} - \textrm{F}^{(i)}_n\|_{\ell_2}\]
test=2
and is computed as: \[\epsilon = \|\delta U^{(i)}\|_{\ell_2}\]
test=3
and is computed as: \[\epsilon = |\delta U^{(i)} \cdot (\textrm{R}_{n+1} - \textrm{F}^{(i)}_n)^\top|\]
test=4
and is computed as: \[\epsilon = \displaystyle{\frac{\|\textrm{R}_{n+1} - \textrm{F}^{(i)}_n\|_{\ell_2}}{\|\textrm{R}_{n+1} - \textrm{F}^{(0)}_n\|_{\ell_2}}}\]
test=5
and is computed as: \[\epsilon = \displaystyle{\frac{\|\delta U^{(i)}\|_{\ell_2}}{\|\Delta U^{(0)}\|_{\ell_2}}}\]
test=6
and is computed as: \[\epsilon = \displaystyle{\frac{|\delta U^{(i)} \cdot (\textrm{R}_{n+1} - \textrm{F}^{(i)}_n)^\top|}{|\delta U^{(0)} \cdot (\textrm{R}_{n+1} - \textrm{F}^{(0)}_n)^\top|}}\]
test=7
and is computed as: \[\epsilon = \displaystyle{\frac{\|\delta U^{(i)}\|_{\ell_2}}{\| \Delta U^{(i)}\|_{\ell_2}}}\]
test=8
and iterates until the number of iteration reaches this value (specified in the Algorithm).where the \(\|x\|_{\ell_2}^2 = \displaystyle{\sum_{k=1}^n x_k^2}\) represent the Euclidean-norm, and \(|x|\) is the absolute value function. More information regarding the derived Algorithm classes can be found at:
REFERENCE: