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
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
def _createControlDict() : """ Creates controlDict dictionary """ a_controlDict = ref.dictionary() a_controlDict.add( ref.word( "startFrom" ), ref.word( "startTime" ) ) a_controlDict.add( ref.word( "startTime" ), 0.0 ) a_controlDict.add( ref.word( "stopAt" ), ref.word( "endTime" ) ) a_controlDict.add( ref.word( "endTime" ), 0.05 ) a_controlDict.add( ref.word( "deltaT" ), 0.01 ) a_controlDict.add( ref.word( "writeControl" ), ref.word( "timeStep" ) ) a_controlDict.add( ref.word( "writeInterval" ), 5 ) return a_controlDict
def _createFvSchemesDict(self): """ Creates fvSchemes dictionary """ # Create schemes dictionary fvSchemesDict = ref.IOdictionary( ref.IOobject( ref.word("fvSchemes"), self.run_time.caseSystem(), self.run_time, ref.IOobject.NO_READ, ref.IOobject.AUTO_WRITE, ) ) ddtSchemes = ref.dictionary() ddtSchemes.add(ref.word("default"), ref.word("Euler")) interpolationSchemes = ref.dictionary() interpolationSchemes.add(ref.word("default"), ref.word("linear")) gradSchemes = ref.dictionary() gradSchemes.add(ref.word("default"), createITstream(["Gauss", "linear"])) gradSchemes.add(ref.word("grad(p)"), createITstream(["Gauss", "linear"])) snGradSchemes = ref.dictionary() snGradSchemes.add(ref.word("default"), ref.word("corrected")) divSchemes = ref.dictionary() divSchemes.add(ref.word("default"), ref.word("none")) divSchemes.add(ref.word("div(phi,U)"), createITstream(["Gauss", "linear"])) laplacianSchemes = ref.dictionary() laplacianSchemes.add(ref.word("default"), ref.word("none")) laplacianSchemes.add(ref.word("laplacian(nu,U)"), createITstream(["Gauss", "linear", "corrected"])) laplacianSchemes.add(ref.word("laplacian((1|A(U)),p)"), createITstream(["Gauss", "linear", "corrected"])) fluxRequired = ref.dictionary() fluxRequired.add(ref.word("default"), ref.word("no")) fluxRequired.add(ref.word("p"), ref.word()) fvSchemesDict.add(ref.word("ddtSchemes"), ddtSchemes) fvSchemesDict.add(ref.word("interpolationSchemes"), interpolationSchemes) fvSchemesDict.add(ref.word("gradSchemes"), gradSchemes) fvSchemesDict.add(ref.word("snGradSchemes"), snGradSchemes) fvSchemesDict.add(ref.word("laplacianSchemes"), laplacianSchemes) fvSchemesDict.add(ref.word("divSchemes"), divSchemes) fvSchemesDict.add(ref.word("fluxRequired"), fluxRequired) return fvSchemesDict