This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
problems:parstokes [2017/11/16 12:54] tzwinger [Setting up a simulation with the ParStokes module] |
problems:parstokes [2019/04/13 13:12] (current) tzwinger [Introduction] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== ParStokes: Iterative Solver for Large-Scale Glaciological Applications ====== | ====== ParStokes: Iterative Solver for Large-Scale Glaciological Applications ====== | ||
+ | |||
+ | ==== Alternatives ==== | ||
+ | Since March 2019, a new [[problems: | ||
==== Introduction ==== | ==== Introduction ==== | ||
- | The linear | + | The linear |
Line 11: | Line 14: | ||
where the v-component of the solution vector represents the velocities, | where the v-component of the solution vector represents the velocities, | ||
- | and the p-component the pressure. The matrix A is an elasticity-like operator, | + | and the p-component the pressure. The matrix |
- | C a stabilization term, with B the discrete version of the operator -div. | + | '' |
While direct solvers are a robust way of solving (1), their computational cost in 3D | While direct solvers are a robust way of solving (1), their computational cost in 3D | ||
grows with the square of the number of unknowns, and their memory usage becomes excessive | grows with the square of the number of unknowns, and their memory usage becomes excessive | ||
for large 3D applications. Iterative methods are therefore needed. A new module called | for large 3D applications. Iterative methods are therefore needed. A new module called | ||
- | `ParStokes' | + | **ParStokes** is therefore available in Elmer now, which is dedicated to this purpose. |
+ | Detailed description of its functionality can be found in chapter 24 of the [[http:// | ||
Line 45: | Line 49: | ||
A sif-file for the ParStokes module should have (at least) three Solver sections, one | A sif-file for the ParStokes module should have (at least) three Solver sections, one | ||
- | for the coupled problem, one for the velocity system with A, and one for the pressure | + | for the coupled problem, one for the velocity system with '' |
- | system with M. An example could look like this: | + | system with '' |
Solver 1 | Solver 1 | ||
Equation = " | Equation = " | ||
+ | Exec Solver = " | ||
Procedure = " | Procedure = " | ||
Variable = -dofs 3 " | Variable = -dofs 3 " | ||
Line 56: | Line 61: | ||
Solver 2 | Solver 2 | ||
Equation = " | Equation = " | ||
+ | Exec Solver = " | ||
Procedure = " | Procedure = " | ||
Variable = -dofs 1 " | Variable = -dofs 1 " | ||
Line 102: | Line 108: | ||
In the case of sliding conditions, the keyword "Slip Coefficient" | In the case of sliding conditions, the keyword "Slip Coefficient" | ||
| | ||
- | (the same as the keyword | + | (the same as the keyword |
| | ||
- | (same as "External Pressure" | + | (same as '' |
== Remarks == | == Remarks == | ||
Line 116: | Line 122: | ||
Element = "p:1 b: | Element = "p:1 b: | ||
| | ||
- | NB.: The setting | + | The setting |
Bubbles in Global System = False | Bubbles in Global System = False | ||
is not needed, as it is the default in any of the solvers. | is not needed, as it is the default in any of the solvers. | ||
Line 129: | Line 135: | ||
Linear System Row Equilibration = Logical True | Linear System Row Equilibration = Logical True | ||
- | d) For the systems with A and M it is possible to preserve symmetry by setting | + | d) For the systems with '' |
- | Linear System Scaling = Logical True | + | Linear System Scaling = Logical True |
- | Linear System Row Equilibration = Logical False | + | Linear System Row Equilibration = Logical False |
In that case CG can be used instead of BiCGStab. | In that case CG can be used instead of BiCGStab. | ||
Line 165: | Line 171: | ||
outer iteration decreases. | outer iteration decreases. | ||
- | f) ParStokes by default does only solve the Stokes (and not Navier-Stokes) equation. If one wishes to include acceleration terms, setting the keyword " | + | f) ParStokes by default does only solve the Stokes (and not Navier-Stokes) equation. If one wishes to include acceleration terms, setting the keyword " |
+ | |||
+ | Bubbles in Global System = True | ||
+ | |||
+ | to avoid the by default implemented elimination of bubbles from the global system. In that case one also should take care that the '' | ||
g) It should be possible to restart a ParStokes simulation | g) It should be possible to restart a ParStokes simulation | ||
Line 183: | Line 193: | ||
Variable Output = False | Variable Output = False | ||
Exec Solver = " | Exec Solver = " | ||
- | Element = "p:1 b:4" | ||
- | Bubbles in Global System = False | ||
Linear System Symmetric = True | Linear System Symmetric = True | ||
Linear System Scaling = True | Linear System Scaling = True | ||
Line 193: | Line 201: | ||
Linear System Preconditioning = Diagonal | Linear System Preconditioning = Diagonal | ||
Linear System Residual Output = 10 | Linear System Residual Output = 10 | ||
- | Skip Compute Nonlinear Change = Logical True | ||
- | Back Rotate N-T Solution = Logical False | ||
Linear System Timing = True | Linear System Timing = True | ||
End | End | ||
Line 214: | Line 220: | ||
this variant, set in the according solver section | this variant, set in the according solver section | ||
- | Linear System Use HYPRE = Logical True | + | Linear System Use HYPRE = Logical True |
The parameters | The parameters |