Friday, 15 June 2012

Working fvSolution with parallel solver

Jobs were running in serial but not in parallel.  Following advice from http://www.cfd-online.com/Forums/openfoam-solving/101321-interfoam-blows-parallel-run.html#post366627 I changed the GAMG smoother from GaussSeidel to DILUGaussSeidel and the job worked immediately.

For completeness I also changes all the relTols to zero and changed the epsilon and R solvers to smoothSolver (with the same smoother as above) from PBiCG.


FoamFile{version 2.0; format ascii; class dictionary; location "system"; object fvSolution;}

SIMPLE {
    nNonOrthogonalCorrectors 4; convergence 1e-5;
    pRefCell 0;  pRefValue 0;
    residualControl{p 1E-5; U 1E-5; R 1E-7; epsilon 1E-7;}
    }

relaxationFactors { // 0.3 good mesh p, 0.7 good mesh U etc.
    p 0.1; U 0.3; R 0.1; epsilon 0.1;
    }

solvers {
   U {
      solver smoothSolver; smoother DILUGaussSeidel; // Essential for parallel.
      tolerance 1e-06; relTol 0; nSweeps 1; maxIter 100; }

   p {
      solver GAMG; tolerance 1e-07; relTol 0;
      minIter 3; maxIter 100; 
      smoother DICGaussSeidel; // Essential for parallel solution.
      nPreSweeps 1;              // 1 for p, set to 0 for all other
      nPostSweeps 2; nFinestSweeps 2; scaleCorrection true;                               
      directSolveCoarsestLevel false; 
      cacheAgglomeration on; // off if dynamic mesh refinement
      nCellsInCoarsestLevel 500; // 500 or sqrt(number of cells)
      agglomerator    faceAreaPair; mergeLevels     1; 
      }
    // epsilon{solver PBiCG; preconditioner DILU; tolerance 1E-9; relTol 0; minIter 1;} 
    epsilon{solver smoothSolver; smoother DILUGaussSeidel; tolerance 1E-6; relTol 0; nSweeps 1; maxIter 100;}
    //    R{solver PBiCG; preconditioner DILU; tolerance 1E-9; relTol 0;}
    R{solver smoothSolver; smoother DILUGaussSeidel; tolerance 1E-6; relTol 0; nSweeps 1; maxIter 100;}
    }



No comments:

Post a Comment