Auxiliary-Space AMG
The Auxiliary-Space AMG node () is an attribute that handles parameters for linear system solvers and preconditioners that use the auxiliary-space AMG solver. Right-click an Iterative, Krylov Preconditioner, or Coarse Solver node to add an Auxiliary-Space AMG node.
The auxiliary-space AMG iterative solver is suitable for solving complex-valued RF problems and other electromagnetics simulations that use vector elements (Nédélec elements); see Ref. 43. Compared to the Auxiliary-Space Maxwell (AMS) solver, it has the following advantages:
The Auxiliary-Space AMG is an implementation of AMS, except for the matrix S that, which in AMS is the Gauss–Seidel smoother; in Auxiliary-Space AMG it is more general and can be any available smoother in the COMSOL Multiphysics software (including Gauss–Seidel).
The Settings window contains the following sections:
General
Use the Termination technique list to control how the iterations of the auxiliary-space AMG solver are terminated. Select:
Use tolerance to terminate the iterations when the estimated relative error is smaller than a specified tolerance. Then enter the Maximum number of iterations to limit the number of iterations. When the maximum number of iterations have been performed, the auxiliary-space AMG solver is terminated even if the tolerance is not fulfilled.
Fixed number of iterations to specify the number of iterations of the auxiliary-space AMG solver in the Number of iterations field. The default is 2.
Iterations or tolerance to terminate the auxiliary-space AMG solver iterations when the estimated tolerance is smaller than a specified tolerance or after a specified number of iterations, whichever comes first. Then enter the Number of iterations to specify a fixed number of iterations to perform and a tolerance to use in the Relative tolerance field (default: 0.1).
In the Variables field, add the applicable dependent variables that use vector elements and that you want to include in the auxiliary-space AMG solver. Use the Delete () and Add () buttons to configure the list of variables.
From the Cycle type list, select one of the available auxiliary-space AMG cycle types 1–4 (the default is cycle type 1, a multiplicative solver that should work well in most cases; see Ref. 7 for details). These cycle types are various combinations of smoothing and applications of algebraic multigrid on decomposed problems, based on the subspace correction method with respect to three terms:
Where cycle type 1 corresponds to the sequence (1), (2), (3), (2), and (1); cycle type 2 corresponds to the sequence (1), (2), (1), (3), (1), (2), and (1); cycle type 3 corresponds to the sequence (1), (3), (2), (3), and (1); and cycle type 4 corresponds to the sequence (1), (3), (1), (2), (1), (3), and (1). In the method above, G is a discrete gradient matrix, Π is a matrix representation of the interpolation operator from vector linear to edge finite elements, S is an intermediate smoother (or smoothing in the original edge space), and A is the (reduced) stiffness matrix usually denoted by K, and it is the matrix that is solved (that is, the method solves Ax = b). Auxiliary-space AMG consists in a subspace correction method with respect to the three correction terms G, Π, and S. The order in which these corrections are applied is defined by the Cycle type (see above). The linear systems with the matrices G and Π are then solved with the algebraic multigrid or the smoothed aggregation AMG methods.
From the Magnetostatics list, select Automatic (the default), Yes, or No. The automatic case determines magnetostatics by comparing the maximum row sum of absolute values for the projected matrix TTAT and A. Here T is the discrete gradient matrix; see documentation for SOR Vector. Magnetostatics is deduced if the projected matrix is negligible compared to A. If magnetostatics is deduced or chosen, auxiliary-space AMG skips the subspace corrections associated with the projected matrix TTAT.
From the Divergence cleaning list, select Automatic (the default), Yes, or No. The automatic case is the same as for the determination of magnetostatics. In the magnetostatic case, auxiliary-space AMG should skip corrections associated with TTAT and use divergence cleaning of the right-hand side. You can also manually specify the magnetostatics and divergence cleaning settings. This can be useful if divergence cleaning has already been made or if you suspect that the automatic detection fails.
Algebraic Multigrid
The action of and are performed by calling the algebraic multigrid (AMG) solvers. The settings for the AMG solvers appear in this Algebraic Multigrid section. The settings for the presmoother, postsmoother, and coarse solver for the AMG solver are collected in the AMG Presmoother, AMG Postsmoother, and AMG Coarse Solver subnodes.
From the Solver project problem list, choose an AMG solver: Algebraic multigrid (the default) or Smoothed aggregation AMG. The smoothed aggregation AMG (SAAMG) solver works by clustering nodes of degrees of freedoms into aggregates based on a connection criterion. Each aggregate then becomes a new node on the next multigrid level, and the algorithm proceeds until a certain number of levels has been reached or until the number of degrees of freedoms is sufficiently small.
For either choice, enter the:
In the Number of iterations field, enter the desired number of iterations (default: 1).
Select a Multigrid cycle: V-cycle (the default), W-cycle, or F-cycle. For Multigrid cycle, the settings are the same as for the geometric multigrid (GMG) and algebraic multigrid (AMG) solvers.
Enter the Number of multigrid levels to generate (the default is 1 for Geometric multigrid and 5 for Algebraic multigrid).
Enter a Maximum number of DOFs at coarsest level. The default is 5000. Coarse levels are added until the number of DOFs at the coarsest level is less than the max DOFs at coarsest level or until it has reached the number of multigrid levels.
Enter a Minimum number of DOFs per thread on multigrid levels (default: 5000) to control the size of the computation threads on a multicore computer.
The following settings control the algebraic multigrid algorithm:
Choose a Coarsening method: Parallel modified independent set (the default) or Classical. The Parallel modified independent set method makes the algebraic multigrid solver more efficient in distributed computing using the method described in Ref. 13. The Classical method corresponds to the implementation of AMG in COMSOL versions before version 6.0 (that is, Ruge–Steuben coarsening). See below for the settings for each coarsening method.
If you chose Classical, enter a value or use the slider to set the Quality of multigrid hierarchy. Higher quality means faster convergence at the expense of a more time-consuming setup phase. For instance, if the linear solver does not converge or if it uses too many iterations, try a higher value to increase the accuracy in each iteration, meaning fewer iterations. If the algebraic multigrid algorithm runs into memory problems, try a lower value to use less memory. The range goes from 1 to 10, where 10 gives the best quality. The default is 3.
If you chose Parallel modified independent set:
Enter a value for the Strength of connections is a positive number, typically between 0.25 and 0.75 (default value: 0.25). This is a strength threshold used to determine the relation of strong influence dependence between the points. There is some indication that you should use a lower number, such as 0.25, for problems with denser matrices, whereas for other problems with sparser matrices you should use larger values, such as 0.75.
Let A denote the system matrix and θ the strength threshold; a point i then depends strongly on j, or j strongly influences i if .
The Sparser prolongator check box is selected by default. When interpolating the value of the error in a specific fine point “i”, only the coarse points that strongly influencing “i” are used. If you clear the check box, all the coarse points that are influencing “i” are used.
The interpolation formula, referred to as “direct interpolation”, is given in equation 7 in Ref. 15. The prolongator is the matrix defining the interpolation operator between the coarse and fine grid. By selecting the Sparser prolongator check box, you achieve better performance per iteration (less memory and computation time) but the solver may require more iterations to converge.
Use the Prolongator truncation factor (default: 0.1) to control the fill-in of the prolongator. Small elements from the prolongator are removed. More precisely, let P denote the prolongator and M the truncation factor, the element pij is removed if
The rows of the truncated prolongator are rescaled afterward by following the reasoning in Section 7.2 of Ref. 16. More precisely, the sum of the ith row before and after truncation should not change.
The following settings control the smoothed aggregation algorithm:
The aggregation algorithm is based on a connection criterion, which you specify as a coefficient in the Strength of connections field. A node j is connected to another node i, if , where ε is the strength of connection coefficient, and Aij is the submatrix of the stiffness matrix defined by the degrees of freedoms on node i and j, respectively. Loosely speaking, the strength of connection value determines how strongly the aggregation should follow the direction of anisotropy in the problem. The default value is 0.01.
From the Null-space vectors list, choose Constant (the default) or Rigid body modes. For linear elasticity problems, always select Rigid body modes because it enhances the convergence properties significantly.
Select the Compact aggregation check box to use an aggregation algorithm that forms, on average, smaller aggregates, which leads to a less rapid coarsening.
Choose how to control the prolongator smoothing using the Smoothing list, which is active when the Prolongator smoothing check box (selected by default) is selected. The Auto option postpones the smoothing for sdim-1 levels, where sdim is the space dimension of the problem. If you choose Manual, enter the level to start smoothing at in the Start smoothing at multigrid level field.
The final transfer operator, P, between the fine and coarse problems are smoothed by one application of Jacobi smoothing:
where ω is the Jacobi damping factor, AF is the filtered stiffness matrix, and D is the diagonal of AF. Specify ω in the Jacobi damping factor field. The default value is 2/3.
By default, the Use filtering check box is selected. Filtering means that entries in the stiffness matrix have been dropped if they correspond to degrees of freedoms on a node that has no strong connections. Loosely speaking, filtering highlights anisotropy in the problem and results in a sparser coarse level problem.
Intermediate SOR Smoother
The action of S is performed by calling the smoothers available in the Intermediate Smoother section, where you also find the other settings for these smoothers. See the documentation for the smoothers for more information about their specific settings. From the Smoother list, choose SOR (the default), SOR Vector, SCGS, SOR Line, Vanka, SOR Gauge, or Jacobi.
Specify the Number of iterations for the intermediate smoother. The default is 2.
The Variables list used in with the Vanka smoother is the same as the Variables list that otherwise appears in the General section; that list is therefore not visible in this case
Lower Element Order
If the discretization is nonlinear, before using the auxiliary-space AMG solver, the order is lowered by using geometric multigrid (GMG). The smoothers and their settings, which are used by GMG to lower the order can be set in this section.
Under Presmoother and Postsmoother, choose a smoother from the Smoother list: SOR (the default), SOR Vector, or Vanka. Then from the Solver list, choose a compatible solver for the selected smoother. For SOR and Vanka, choose SSOR, SOR, or SORU; and for SOR vector, choose SSOR vector, SOR vector, or SORU vector.
For the remaining settings, see the documentation for the chosen presmoother and postsmoother.
Hybridization
Use the settings in the Hybridization section to set up a hybrid preconditioner where the direct preconditioner is active for some dependent variables. See Hybrid Preconditioners for more information.