def createFvSolution(runTime):
    USolver = ref.dictionary()
    USolver.add(ref.word("preconditioner"), ref.word("DILU"))
    USolver.add(ref.word("minIter"), 0)
    USolver.add(ref.word("maxIter"), 1000)
    USolver.add(ref.word("tolerance"), 1E-5)
    USolver.add(ref.word("relTol"), 0)
    
    pSolver = ref.dictionary()
    pSolver.add(ref.word("preconditioner"), ref.word("DIC"))
    pSolver.add(ref.word("minIter"), 0)
    pSolver.add(ref.word("maxIter"), 1000)
    pSolver.add(ref.word("tolerance"), 1E-6)
    pSolver.add(ref.word("relTol"), 0)
    
    piso = ref.dictionary()
    piso.add(ref.word("nCorrectors"), 2)
    piso.add(ref.word("nNonOrthogonalCorrectors"), 0)
    
    fvSolnDict = ref.dictionary()
    fvSolnDict.add(ref.word("PISO"), piso)
    
    soln=ref.ext_solution(runTime, ref.fileName("fvSolution"), fvSolnDict)
    soln.setWriteOpt(ref.IOobject.AUTO_WRITE)
    soln.addSolver(ref.word("U"), ref.word("PBiCG"), USolver)
    soln.addSolver(ref.word("p"), ref.word("PCG"), pSolver)
    
    return soln
Esempio n. 2
0
    def _createFvSolution(self):
        """
        Creates fvSolution dictionary
        Currently not fully functional, format of "solvers" entries currently
        can't be written to file unless using stream objects. We need a
        workaround for this.
        """
        USolver = ref.dictionary()
        USolver.add(ref.word("preconditioner"), ref.word("DILU"))
        USolver.add(ref.word("minIter"), 0)
        USolver.add(ref.word("maxIter"), 1000)
        USolver.add(ref.word("tolerance"), 1e-5)
        USolver.add(ref.word("relTol"), 0)

        pSolver = ref.dictionary()
        pSolver.add(ref.word("preconditioner"), ref.word("DIC"))
        pSolver.add(ref.word("minIter"), 0)
        pSolver.add(ref.word("maxIter"), 1000)
        pSolver.add(ref.word("tolerance"), 1e-6)
        pSolver.add(ref.word("relTol"), 0)

        piso = ref.dictionary()
        piso.add(ref.word("nCorrectors"), 2)
        piso.add(ref.word("nNonOrthogonalCorrectors"), 0)

        fvSolnDict = ref.dictionary()
        fvSolnDict.add(ref.word("PISO"), piso)

        soln = ref.ext_solution(self.run_time, ref.fileName("fvSolution"), fvSolnDict)
        soln.setWriteOpt(ref.IOobject.AUTO_WRITE)

        soln.addSolver(ref.word("U"), ref.word("PBiCG"), USolver)
        soln.addSolver(ref.word("p"), ref.word("PCG"), pSolver)

        return soln