Domain Decomposition (Schur)
The Domain Decomposition (Schur) node () is an attribute node that can be used together with the Iterative and Coarse Solver nodes. Use it to set up a domain-decomposition solver using the Schur complement method. 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 (Schur) solver is a typically more stable but less memory efficient alternative to the domain decomposition (Schwarz) solver.
Default Schur Solver, Domain Solver, and Schur Source Solver nodes are also added. The domain 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. See also The Domain Decomposition Solvers.
General
Select a Schur ordering: Multiplicative (the default) or Additive. These ordering options determine which corresponding Schwarz algorithm (see Domain Decomposition (Schwarz)) to use for solving the Schur complement system. Schur ordering is not used if absorbing boundary conditions are selected; see The Domain Decomposition Solvers.
For any Schur ordering, enter values or choose an option as needed:
Number of iterations. The default is 1.
Minimum number of subdomains. The default is 4. 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.
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 is selected as the Schur ordering, the Use subdomain coloring for localized Schur complements check box is selected by default to use a coloring technique that leads to more efficient computations for the multiplicative method because it requires 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.
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.
Equations
From the Domain boundary list, choose a boundary condition: Dirichlet boundary condition, Zero flux, or Absorbing boundary condition.
Absorbing Boundary Condition
If you have selected the Absorbing boundary condition, then select:
The Physics from the list.
Select a weak contribution method from the Add weak boundary contribution list:
-
Automatic: The code internally creates an Absorbing Boundary Conditions 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 Absorbing Boundary Conditions 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 Absorbing Boundary Conditions Weak Contribution feature in the Physics node.
-
From physics: the Absorbing Boundary Conditions 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.
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.