openfoam s basic solvers for linear systems of equations
play

OpenFOAMs basic solvers for linear systems of equations Solvers, - PowerPoint PPT Presentation

Tim Behrens OpenFOAMs basic solvers for linear systems of equations Solvers, preconditioners, smoothers Linear Solvers in OpenFOAM 1 Tim Behrens What are we going to do? Look at the structure of lduMatrix Compare DIC/FDIC


  1. Tim Behrens OpenFOAM’s basic solvers for linear systems of equations Solvers, preconditioners, smoothers Linear Solvers in OpenFOAM 1

  2. Tim Behrens What are we going to do? • Look at the structure of lduMatrix • Compare DIC/FDIC preconditioner • Set up a multi grid solver Linear Solvers in OpenFOAM 2

  3. Tim Behrens $FOAM SRC/OpenFOAM/matrices/lduMatrix/ • lduAddressing/ • lduMatrix/ • preconditioners/ • smoothers/ • solvers/ Linear Solvers in OpenFOAM 3

  4. Tim Behrens $FOAM SRC/OpenFOAM/matrices/lduMatrix/solvers • diagonalSolver - diagonal solver for both symmetric and asymmetric problems • GAMG - Geometric agglomerated algebraic multigrid solver • PBiCG - Preconditioned bi-conjugate gradient solver for asymmetric lduMatrices using a run-time selectable preconditioner • PCG - Preconditioned conjugate gradient solver for symmetric lduMatrices using a run- time selectable preconditiioner • smoothSolver - Iterative solver using smoother for symmetric and asymmetric matrices which uses a run-time selected smoother BICCG, ICCG obsolete Linear Solvers in OpenFOAM 4

  5. Tim Behrens $FOAM SRC/OpenFOAM/matrices/lduMatrix/solvers For description of the other folders and more information see the report. There is also an example of implementing your own version of the PBiCG solver myPBiCG . Linear Solvers in OpenFOAM 5

  6. Tim Behrens Preconditioner test Copy cavity test case and change directory: cp -r $FOAM_TUTORIALS/icoFoam/cavity $FOAM_RUN/cavity cd $FOAM_RUN/cavity Linear Solvers in OpenFOAM 6

  7. Tim Behrens Preconditioner test Change blockMeshDict: blocks ( hex (0 1 2 3 4 5 6 7) (150 150 1) simpleGrading (1 1 1) ); Generate mesh blockMesh Linear Solvers in OpenFOAM 7

  8. Tim Behrens Preconditioner test Change the controlDict to: endTime 0.4; deltaT 0.005; writeControl timeStep; writeInterval 20; and run icoFoam icoFoam > logDIC & Linear Solvers in OpenFOAM 8

  9. Tim Behrens Preconditioner test Now changing DIC to FDIC in fvSolution file preconditioner FDIC; and running icoFoam icoFoam > logFDIC & Compare run-time (Execution time in log files), difference in percentage? Linear Solvers in OpenFOAM 9

  10. Tim Behrens Generalised geometric-algebraic multi-grid Look at some GAMG options preconditioner select preconditioner mergeLevels 1/2/3, coarsen levels faster, for simple geometric grids; smoother select smoother (GaussSeidel recommended) agglomerator faceAreaPair (recommended) or algebraicPair; nCellsInCoarsestLevel number of cells the coarse level solver has to calculate (important!) Table 1: GAMG options Linear Solvers in OpenFOAM 10

  11. Tim Behrens Generalised geometric-algebraic multi-grid Change the fvSolution to: p GAMG { preconditioner FDIC; mergeLevels 1; smoother GaussSeidel; agglomerator faceAreaPair; nCellsInCoarsestLevel 100; tolerance 1e-05; relTol 0; }; Linear Solvers in OpenFOAM 11

  12. Tim Behrens Generalised geometric-algebraic multi-grid Change the fvSolution to: U GAMG { preconditioner DILU; mergeLevels 1; smoother GaussSeidel; agglomerator faceAreaPair; nCellsInCoarsestLevel 100; tolerance 1e-05; relTol 0; }; Linear Solvers in OpenFOAM 12

  13. Tim Behrens Generalised geometric-algebraic multi-grid and running icoFoam icoFoam > logGAMG & Speed-up compared to same calculation with PCG/PBiCG: about 3 times faster Linear Solvers in OpenFOAM 13

  14. Tim Behrens Thank you for your attention Questions? Linear Solvers in OpenFOAM 14

Recommend


More recommend