예제 #1
0
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
예제 #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
예제 #3
0
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
예제 #4
0
    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