Warning: Undefined array key 1 in /home/np29546/public_html/elmerice/wiki/inc/auth.php on line 78

Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/auth.php on line 431

Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/actions.php on line 38
problems:parstokes [Elmer/Ice Wiki]

Warning: Undefined array key -1 in /home/np29546/public_html/elmerice/wiki/inc/html.php on line 1458

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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:vectstokes|vectorized Stokes solver]] which further is capable of utilizing the library version of the block preconditioning is available. We recommend using this one.
  
 ==== Introduction ==== ==== Introduction ====
  
-The linear systems that need to be solved in Elmer/Ice are of the form+The linear system that needs to be solved for ice dynamics in Elmer/Ice are of the form
  
  
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 ''A'' is an elasticity-like operator, 
-C a stabilization term, with B the discrete version of the operator -div.+''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
-`ParStokesis therefore available in Elmer now, which is dedicated to this purpose.+**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://www.nic.funet.fi/pub/sci/physics/elmer/doc/ElmerModelsManual.pdf|Elmer Models Manual]]
  
  
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 ''A'', and one for the pressure  
-system with M. An example could look like this:+system with ''M''. An example could look like this:
  
   Solver 1   Solver 1
     Equation = "Velocity Preconditioning"     Equation = "Velocity Preconditioning"
 +    Exec Solver = "Before Simulation"
     Procedure = "VelocityPrecond" "VelocityPrecond"     Procedure = "VelocityPrecond" "VelocityPrecond"
     Variable = -dofs 3 "V" ! that would be default     Variable = -dofs 3 "V" ! that would be default
Line 56: Line 61:
   Solver 2   Solver 2
     Equation = "Pressure Preconditioning"     Equation = "Pressure Preconditioning"
 +    Exec Solver = "Before Simulation"
     Procedure = "PressurePrecond" "PressurePrecond"     Procedure = "PressurePrecond" "PressurePrecond"
     Variable = -dofs 1 "p" ! that would be default     Variable = -dofs 1 "p" ! that would be default
Line 102: Line 108:
 In the case of sliding conditions, the keyword "Slip Coefficient" will be recognised by the preconditioner as well as the solver. Stress conditions are imposed using the keywords       In the case of sliding conditions, the keyword "Slip Coefficient" will be recognised by the preconditioner as well as the solver. Stress conditions are imposed using the keywords      
      Surface Traction {1,2,3} = Real           Surface Traction {1,2,3} = Real     
-(the same as the keyword "Pressure {1,2,3}in Navier-Stokes)for component-wise setting, or +(the same as the keyword ''Pressure {1,2,3}'' in Navier-Stokes) for component-wise setting, or 
      Normal Surface Traction = Real       Normal Surface Traction = Real 
-(same as "External Pressurein Navier-Stokes) for imposing a normal force (e.g., sea pressure).+(same as ''External Pressure'' in Navier-Stokes) for imposing a normal force (e.g., sea pressure).
  
 == Remarks == == Remarks ==
Line 116: Line 122:
   Element = "p:1 b:4"     Element = "p:1 b:4"  
      
-NB.: The setting +The setting (see item f of this list)
     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 ''A'' and ''M'' it is possible to preserve symmetry by setting (both are default settings)
  
-  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 "Convective = Logical True" will do so. Also, 2 Picard iterations are always performed, independently from what is specified in the sif-file. The line "Reset Newton..." is not necessary.+f) ParStokes by default does only solve the Stokes (and not Navier-Stokes) equation. If one wishes to include acceleration terms, setting the keyword "Convective = Logical True" will do so. Also, 2 Picard iterations are always performed, independently from what is specified in the sif-file. The line "Reset Newton..." is not necessary. In this case, it would be good to include 
 + 
 +    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 ''Element'' keyword contains the same bubble degree for all three solvers.    
  
 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 = "before simulation"     Exec Solver = "before simulation"
-    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 
problems/parstokes.1510836860.txt.gz · Last modified: 2017/11/16 12:54 by tzwinger
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0