Domain Decomposition (Schwarz)
The Domain Decomposition (Schwarz) node () is an attribute node that can be used together with the Iterative and Coarse Solver nodes. Use it to set up an additive, multiplicative, hybrid, or symmetric Schwarz overlapping domain decomposition solver. Domain decomposition divides the modeling domain into subdomains where the equations in the subdomains are easier to solve. The total solution is then obtained by iterating between the computed solutions for each subdomain using the currently known solutions from the other subdomains as boundary conditions. The domain decomposition (Schwarz) solver is efficient for distributed memory systems (cluster computing) and as a more memory-efficient alternative to a direct solver for large problems.
Default Coarse Solver and Domain Solver nodes are also added. The domain solver can be any of the direct and iterative solvers, and also a geometric multigrid solver. When you use a multigrid solver as the domain solver for domain decomposition, each domain solves an independent linear problem using a multigrid solver. Each linear problem is created from the underlying multigrid solver’s mesh case hierarchy. The domain problems can then be solved independently.
Also see The Domain Decomposition Solvers.
General
Select a Solver: Multiplicative Schwarz (the default), Additive Schwarz, Hybrid Schwarz, or Symmetric Schwarz.
For any Solver, enter values or choose an option as needed:
Number of iterations. The default is 1.
Minimum number of subdomains. The default is 2. The subdomain partition is created from an element partition on the solver level.
Maximum number of DOFs per subdomain. The default is 100,000 DOFs. The solver tries to not create subdomains larger than this and increases the number of subdomains to fulfill the target. The lowest value accepted is 1000.
Maximum number of nodes per subdomain. The default is 1. This option is only relevant in cluster computations. Each subdomain is then handled by the selected number of compute nodes.
Additional overlap. The default is 1 mesh element. Each subdomain in the initial (nonoverlapping) partition is extended via the connectivity of the stiffness matrix in a recursive algorithm or by the connectivity of the mesh (see Overlap method); this setting controls the number of additional mesh elements — added to the necessary single mesh element — in the overlap between adjacent subdomains.
Overlap method: Automatic (the default), Matrix based, or Mesh based. The automatic setting chooses the overlap method based on the matrix format used. The matrix-based overlap method considers the matrix connectivity whereas the mesh-based overlap method considers neighboring mesh elements. Select Mesh based if the matrix-based overlap generates too large overlapping subdomains.
Overlap correction: None (default), Restricted Schwarz, Harmonic extension, or Unity weighting. These options affect the definition of the restriction operators and have benefits in terms of less communication on cluster and less iteration numbers for Additive Schwarz methods.
Preordering algorithm: Nested dissection (the default), Space-filling curve, or None. The Nested dissection option creates a subdomain distribution by means of the element and vertex lists taken from the mesh. This option typically gives a low number of colors and gives balanced subdomains (equal number of DOFs, small subdomain interfaces, and a smaller overlap if extended). To avoid slim domains, you can also use a preordering algorithm based on a Space-filling curve. The following plots show a 2D subdomain configuration without element preordering (left) and with an element reordering based on a space-filling curve (right):
Choose an option from the Recompute and clear subdomain data list if required: Automatic (default), Off, or On. The On option is a computationally expensive option because the subdomain problems are factorized for each iteration and then cleared from memory. If you use the Automatic option, the recompute and clear mechanism is activated if there is an out-memory-error during the domain decomposition setup phase. The setup is then repeated with recompute and clear activated. A warning is given in this case.
If Multiplicative Schwarz or Symmetric Schwarz is selected as the Solver, the Use subdomain coloring check box is selected by default to use a coloring technique that leads to more efficient computations for the multiplicative and symmetric methods because they require the global residual to be updated after each subdomain. The coloring technique gives each subdomain a color such that subdomains with the same color are disjoint and can be computed in parallel before the residual is updated. Click to clear the check box as needed.
Select the Prefer the free matrix format check box to automatically choose the matrix free format, which can save memory. Then select a boundary condition from the Domain boundary list: Dirichlet boundary condition, (the default), Zero flux, or Absorbing boundary condition (see The Domain Decomposition Solvers). To improve the convergence rate for large Helmholtz problems, select the Shifted Laplace contribution check box. See Shifted Laplace Contribution (CSL) below.
In the Partition geometries list, include the geometries (components) in the model that you want to partition using domain decomposition. By default, this list includes all geometries in the model. Use the Move Up (), Move Down (), Delete (), and Add () buttons to configure the lists of geometries.
Shifted Laplace Contribution (CSL)
If you have selected the Absorbing boundary condition, then select:
The Physics from the list.
Add a weak contribution method from the Add weak contribution list:
-
Automatic: The code internally creates a weak contribution for the selected physics. Specify a zero-order coefficient as a scalar value in the Zero-order coefficient field (default: 0.75). You can add a second-order term by selecting the Second-order term check box and specifying a second-order coefficient (default: 0.005). These coefficients correspond to α and β, respectively, in the following equation for an absorbing boundary condition:
The Automatic option is only supported for the Helmholtz equation. Select the Keep generated weak contribution check box in order to keep the CSL weak contribution feature in the Physics node.
-
Manual: Specify the complete weak-form expression in the Weak expression field. This expression can be applied to any Physics available in the list above. Select the Keep generated weak contribution check box to keep the CSL weak contribution feature in the Physics node.
-
From physics: the absorbing boundary condition weak contribution is taken from the Physics node. Only use this option if a weak contribution feature was previously added by selecting the Keep generated weak contribution check box together with the Automatic or Manual options as described above.
-
Off: No absorbing boundary condition is added for the selected Physics.
If you have selected the Shifted Laplace contribution check box to use CSL, then select:
The Physics from the list.
Add a weak contribution method from the Add weak contribution list:
-
Automatic: The code internally creates a weak contribution for the selected physics. Specify a Shift coefficient relaxation factor (default: 1). The Automatic option is only supported for the Helmholtz equation. Select the Keep generated weak contribution check box in order to keep the CSL weak contribution feature in the Physics node.
-
Manual: Specify the complete weak-form expression in the Weak expression field. This expression can be applied to any Physics available in the list above. Select the Keep generated weak contribution check box to keep the CSL weak contribution feature in the Physics node.
-
From physics: the CSL weak contribution is taken from the Physics node. Only use this option if a weak contribution feature was previously added by selecting the Keep generated weak contribution check box together with the Automatic or Manual options as described above.
-
Off: No CSL is added for the selected Physics.
Coarse Level
From the Use coarse level list, choose one of the following types:
Geometric (the default). This option uses geometric multigrid method (GMG). See Geometric below.
Algebraic: This option uses the algebraic multigrid method (AMG). See Algebraic below.
Aggregation: This option uses the smoothed aggregation AMG method. See Aggregation below.
Off: No coarse level is used.
Geometric
Select an option from the Coarse level generation method list to specify how to generate the coarse multigrid level:
Lower element order first (any). The default. Generates first a coarse level by lowering the order (by one) of any of the used shape functions. If there are no shape functions that can be lowered, the mesh is coarsened.
Coarsen mesh and lower order. Combines lowering of the used shape function order and a coarsening of the mesh.
Lower element order first (all). Generates first a coarse level by lowering the order (by one) of all the used shape functions. If this is not possible, the mesh is coarsened.
Coarsen mesh. Does not change the order.
Lower element order and refine (all). Generates a coarse level by lowering the order (by one) of all the used shape functions. If this is not possible, the mesh is refined a number of times. The mesh solved for can, with this method, be a finer one than the one selected under the study node.
Lower element order and refine (any). Generates a coarse level by lowering the order (by one) of any of the used shape functions. If there are no shape functions that can be lowered, the mesh is refined. The mesh solved for can, with this method, be a finer one than the one selected under the Study node.
Refine mesh. Does not change the order.
Manual. Use this setting to select a coarse multigrid level from the existing ones. You then specify the coarse multigrid level to use in the Use coarse level list. Use the Move Up (), Move Down (), Delete (), and Add () buttons to configure the list of multigrid levels. Use the Assemble on coarse level check box to assemble the discrete differential operators on the coarse multigrid level (selected by default).
None. Use this setting to not generate a coarse level.
For any Coarse level generation method (except Manual), additional settings are available:
In the Use coarse level in geometries list, select the geometries to apply the coarse multigrid level to. Use the Move Up (), Move Down (), Delete (), and Add () buttons to configure the list of geometries.
The Assemble on coarse level check box is selected by default to assemble the discrete differential operators. Otherwise, these operators are formed using the restriction and prolongation operators. Click to clear the check box as needed.
When Coarsen mesh and lower order, Lower element order first (all), Lower element order first (any), or Coarsen mesh are selected from the Coarse level generation method list:
Enter a Mesh coarsening factor to select the degree of coarsening to apply to the meshes when using mesh coarsening as the multigrid hierarchy generation method. The higher this number, the more aggressive the mesh coarsening is. The default is 2.
Select the Keep generated coarse level check box to save the meshes for all levels under the mesh node.
When Lower element order and refine (all), Lower element order and refine (any), or Refine mesh are selected from the Hierarchy generation method list, select a Refinement method to refine the multigrid levels when using mesh refinement as the multigrid hierarchy generation method. The options are:
Split longest side. The default method. Elements are subdivided such that the longest side in each element is always split. This yields not so many new elements, while also preserving mesh quality.
Regular refinement. Elements are subdivided in a regular manner.
Also, for the methods that include a refinement, the solver uses the original mesh as the coarse mesh and the refined mesh as the new solution mesh.
Algebraic
For the Algebraic option the following settings are available:
Enter the Number of multigrid levels (default: 5).
To enter a Maximum number of DOFs at coarsest level, first select the associated check box. If the check box is cleared (the default), the value is taken from the Maximum number of DOFs per subdomain field. 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 value or use the slider to set the Quality of coarse grid. 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.
The Lower element order first (any) check box is selected by default. This setting provides the combination of GMG with lower order until order 1 is reached and then uses AMG to generate the coarser levels. The Assemble on the order-lowered levels check box, which is selected by default, then corresponds to the GMG option top assemble on all level. Using this setting is equivalent to using GMG with AMG as a coarse grid solver.
See The Algebraic Multigrid Solvers/Preconditioners for more information.
Aggregation
The following settings control the smoothed aggregation algorithm:
Enter the Number of multigrid levels (default: 5).
To enter a Maximum number of DOFs at coarsest level, first select the associated check box. If the check box is cleared (the default), the value is taken from the Maximum number of DOFs per subdomain field. 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.
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 Construct prolongators componentwise check box to do the construction on each component, which can be a good choice for not strongly coupled physics. This check box is only available when the Null-space vectors list is set to Constant.
The Compact aggregation check box is selected by default 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.
The Lower element order first (any) check box is selected by default. This setting provides the combination of GMG with lower order until order 1 is reached and then uses SAAMG to generate the coarser levels. The Assemble on the order-lowered levels check box, which is selected by default, then corresponds to the GMG option top assemble on all level. Using this setting is equivalent to using GMG with SAAMG as a coarse grid solver. In order to solve a coarse grid correction problem, the prolongation matrices are multiplied into a single matrix that maps from the fine level to the coarse level.
Select the Shifted Laplace contribution on coarse level check box to add the term to the coarse grid level. The options are the same for the fine grid level as described in the General section above.
Hybridization
User 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.