def gammaName(): if foamVersionNumber()<(1,6): return "gamma" elif foamVersionNumber()<(2,3): return "alpha1" else: return "alpha.water"
def gammaName(): if foamVersionNumber() < (1, 6): return "gamma" elif foamVersionNumber() < (2, 3): return "alpha1" else: return "alpha.water"
def setUp(self): self.theFile=mktemp() alphaName="alpha" if foamVersionNumber()>=(3,): alphaName="alpha.air" elif foamVersionNumber()>=(2,): alphaName="alpha1" copyfile(path.join(bubbleColumnTutorial(),"0",alphaName),self.theFile)
def testReadTutorial(self): test=ParsedParameterFile(self.theFile) if foamVersionNumber()>=(3,): self.assertEqual(len(test["boundaryField"]),4) else: self.assertEqual(len(test["boundaryField"]),3) if foamVersionNumber()<(2,): self.assertEqual(len(test["boundaryField"]["floor"]["value"].val),400)
def setUp(self): self.theFile=mktemp() UName="Ua" if foamVersionNumber()>=(3,): UName="U.air" elif foamVersionNumber()>=(2,): UName="U1" copyfile(path.join(bubbleColumnTutorial(),"0",UName),self.theFile)
def setUp(self): self.theFile=mktemp() if foamVersionNumber()<(2,0): extension="" elif foamFork() in ["openfoam","openfoamplus"] and foamVersionNumber()>=(4,): extension=".orig" else: extension=".org" copyfile(path.join(damBreakTutorial(),"0",gammaName()+extension),self.theFile)
def setUp(self): self.theDir=mkdtemp() self.theFile=path.join(self.theDir,"damBreak") copytree(damBreakTutorial(),self.theFile) if foamVersionNumber()>=(2,): if foamFork() in ["openfoam","openfoamplus"] and foamVersionNumber()>=(4,): extension=".orig" else: extension=".org" copyfile(path.join(self.theFile,"0",gammaName()+extension), path.join(self.theFile,"0",gammaName()))
def testBasicInclude(self): test=ParsedParameterFile(self.fileName) if foamVersionNumber()<(2,): return if foamFork() in ["openfoam","openfoamplus"] and foamVersionNumber()>=(4,): key="error" code="codeEnd" else: key="difference" code="code" self.assertEqual(type(test["functions"][key][code]),Codestream)
def testReadTutorial(self): test=ParsedParameterFile(self.theFile) gradSchemes=1 divSchemes=4 if foamVersionNumber()<(1,6): gradSchemes=2 divSchemes=5 self.assertEqual(len(test["gradSchemes"]),gradSchemes) if foamVersionNumber()>=(3,): self.assertEqual(len(test["divSchemes"]["div(phi,ft_b_ha_hau)"][2]),5) else: self.assertEqual(len(test["divSchemes"]["div(phi,ft_b_h_hu)"][2]),divSchemes)
def testReadTutorial(self): if foamVersionNumber()>=(2,): # there is no appropriate volSymmTensorField-file in 2.x return test=ParsedParameterFile(self.theFile) self.assertEqual(test["internalField"].__class__,Field) self.assertEqual(test["internalField"].isUniform(),True) if foamVersionNumber()<(1,5): self.assertEqual(test["internalField"].value().__class__,Tensor) else: self.assertEqual(test["internalField"].value().__class__,SymmTensor)
def setUp(self): self.theDir = mkdtemp() self.theFile = path.join(self.theDir, "damBreak") copytree(damBreakTutorial(), self.theFile) if foamVersionNumber() >= (2, ): if foamFork() in ["openfoam", "openfoamplus" ] and foamVersionNumber() >= (4, ): extension = ".orig" else: extension = ".org" copyfile(path.join(self.theFile, "0", gammaName() + extension), path.join(self.theFile, "0", gammaName()))
def testReadTutorial(self): test = ParsedParameterFile(self.theFile) if foamVersionNumber() < (1, 5): nrTurbModels = 17 model = "turbulenceModel" else: if foamVersionNumber() < (1, 6): nrTurbModels = 19 else: nrTurbModels = 3 model = "RASModel" self.assertEqual(len(test.content), nrTurbModels) self.assertEqual(test[model], "kEpsilon")
def testReadTutorial(self): test=ParsedParameterFile(self.theFile) if foamVersionNumber()<(1,5): nrTurbModels=17 model="turbulenceModel" else: if foamVersionNumber()<(1,6): nrTurbModels=19 else: nrTurbModels=3 model="RASModel" self.assertEqual(len(test.content),nrTurbModels) self.assertEqual(test[model],"kEpsilon")
def setUp(self): self.theFile=mktemp() if foamVersionNumber()<(1,6): envProp="environmentalProperties" else: envProp="g" copyfile(path.join(damBreakTutorial(),"constant",envProp),self.theFile)
def __init__(self, doTimelines=True, doFiles=True, singleFile=False, startTime=None, endTime=None): self.hasClock=(foamVersionNumber()>=(1,3)) titles=["cumulated"] if self.hasClock: titles.append("delta") GeneralLineAnalyzer.__init__(self, titles=titles, doTimelines=doTimelines, doFiles=doFiles, singleFile=singleFile, startTime=startTime, endTime=endTime) self.exp=re.compile(executionRegexp()) self.exp=re.compile(executionRegexp()) self.lastTime=0. self.time=0. if self.hasClock: self.lastClock=0. self.clock=0. self.first=True; self.firstTime=0. if self.hasClock: self.firstClock=0.
def setUp(self): self.theFile=mktemp() if foamVersionNumber()>=(2,0): extension=".org" else: extension="" copyfile(path.join(damBreakTutorial(),"0",gammaName()+extension),self.theFile)
def setUp(self): self.theFile="/tmp/test.damBreak" copytree(damBreakTutorial(),self.theFile) if foamVersionNumber()>=(2,): copyfile(path.join(self.theFile,"0","alpha1.org"), path.join(self.theFile,"0","alpha1")) system("gzip "+path.join(self.theFile,"0",gammaName()))
def setUp(self): self.theDir=mkdtemp() self.theFile=path.join(self.theDir,"damBreak") copytree(damBreakTutorial(),self.theFile) if foamVersionNumber()>=(2,): copyfile(path.join(self.theFile,"0","alpha1.org"), path.join(self.theFile,"0","alpha1"))
def setUp(self): self.theDir = mkdtemp() self.theFile = path.join(self.theDir, "damBreak") copytree(damBreakTutorial(), self.theFile) if foamVersionNumber() >= (2, ): copyfile(path.join(self.theFile, "0", "alpha1.org"), path.join(self.theFile, "0", "alpha1"))
def setUp(self): if foamVersionNumber()>=(1,6): import pytest pytest.skip("aachenBomb-tutorial no longer existing") self.theFile=mktemp() copyfile(path.join(dieselAachenTutorial(),"0","spray"),self.theFile)
def setUp(self): self.theFile="/tmp/test."+gammaName() if foamVersionNumber()>=(2,0): extension=".org" else: extension="" system("cp "+path.join(damBreakTutorial(),"0",gammaName()+extension)+" "+self.theFile)
def setUp(self): self.theFile=tmpnam() if foamVersionNumber()<(1,6): envProp="environmentalProperties" else: envProp="g" system("cp "+path.join(damBreakTutorial(),"constant",envProp)+" "+self.theFile)
def XiFoamMoriyoshiTutorial(): prefix=foamTutorials() if foamFork()=="openfoamplus" and foamVersionNumber()>=(1612,): ras="RAS" else: ras="ras" return path.join(prefix,"combustion","XiFoam",ras,"moriyoshiHomogeneous")
def executionRegexp(): """@Return: The regular expression that parses the execution time depending on the OpenFOAM-Version""" if foamVersionNumber(useConfigurationIfNoInstallation=True)>=(1,3): return "^ExecutionTime = (.+) s .ClockTime = (.+) s$" else: return "^ExecutionTime = (.+) s$"
def bubbleColumnTutorial(): prefix=foamTutorials() if not oldTutorialStructure(): prefix=path.join(prefix,"multiphase") if foamVersionNumber()>=(3,): return path.join(prefix,"twoPhaseEulerFoam","laminar","bubbleColumn") else: return path.join(prefix,"twoPhaseEulerFoam","bubbleColumn")
def setUp(self): if oldTutorialStructure(): null="0" elif foamFork() in ["openfoam","openfoamplus"] and foamVersionNumber()>=(4,): null="0.orig" else: null="0.org" self.fileName=path.join(simpleBikeTutorial(),null,"U")
def executionRegexp(): """@Return: The regular expression that parses the execution time depending on the OpenFOAM-Version""" if foamVersionNumber(useConfigurationIfNoInstallation=True)>=(1,3): return "^ExecutionTime = (.+) s ClockTime = (.+) s$" else: return "^ExecutionTime = (.+) s$"
def buoyHotRoomTutorial(): prefix=foamTutorials() if not oldTutorialStructure(): prefix=path.join(prefix,"heatTransfer") if foamVersionNumber()>=(3,): return path.join(prefix,"buoyantSimpleFoam","hotRadiationRoom") else: return path.join(prefix,"buoyantSimpleFoam","hotRoom")
def testReadTutorial(self): test=ParsedParameterFile(self.theFile) self.assertEqual(test["internalField"].__class__,Field) self.assertEqual(test["internalField"].isUniform(),True) if foamVersionNumber()<(1,5): self.assertEqual(test["internalField"].value().__class__,Tensor) else: self.assertEqual(test["internalField"].value().__class__,SymmTensor)
def damBreakTutorial(): prefix=foamTutorials() if oldTutorialStructure(): prefix=path.join(prefix,"interFoam") else: prefix=path.join(prefix,"multiphase","interFoam","laminar") if foamFork() in ["openfoam","openfoamplus"] and foamVersionNumber()>=(4,): prefix=path.join(prefix,"damBreak") return path.join(prefix,"damBreak")
def testTimeReplacingZippedFile(self): test=SolutionDirectory(self.theFile)["0"] self.assertEqual(len(test),4) if foamFork() in ["openfoam","openfoamplus"] and foamVersionNumber()>=(4,): extension=".orig" else: extension=".org" test[gammaName()]=test[gammaName()+extension] self.assertEqual(len(test),4)
def testBasicInclude(self): if foamVersionNumber()<(2,): return test=ParsedParameterFile(self.theFile) data1=deepcopy(test.content) open(self.theFile,"w").write(str(FoamFileGenerator(data1,header=test.header))) del test test2=ParsedParameterFile(self.theFile) self.assertEqual(data1,test2.content)
def setUp(self): self.theDir = mkdtemp() self.theFile = path.join(self.theDir, "damBreak") copytree(damBreakTutorial(), self.theFile) if foamVersionNumber() >= (2, ): copyfile(path.join(self.theFile, "0", gammaName() + ".org"), path.join(self.theFile, "0", gammaName())) system("gzip " + path.join(self.theFile, "0", gammaName()))
def setUp(self): try: if foamVersionNumber()>=(1,6): from nose.plugins.skip import SkipTest raise SkipTest() except ImportError: pass self.theFile="/tmp/test.diesleSpray" system("cp "+path.join(dieselAachenTutorial(),"0","spray")+" "+self.theFile)
def testTimeReplacingZippedFile(self): test = SolutionDirectory(self.theFile)["0"] self.assertEqual(len(test), 4) if foamFork() in ["openfoam", "openfoamplus" ] and foamVersionNumber() >= (4, ): extension = ".orig" else: extension = ".org" test[gammaName()] = test[gammaName() + extension] self.assertEqual(len(test), 4)
def setUp(self): try: if foamVersionNumber()>=(1,6): from nose.plugins.skip import SkipTest raise SkipTest() except ImportError: pass self.theFile=mktemp() copyfile(path.join(dieselAachenTutorial(),"0","spray"),self.theFile)
def setUp(self): self.testDir=mkdtemp() self.dest=path.join(self.testDir,"0.org") if foamFork() in ["openfoam","openfoamplus"] and foamVersionNumber()>=(4,): null="0.orig" else: null="0.org" copytree(path.join(foamTutorials(),"incompressible","simpleFoam","motorBike",null), self.dest)
def test_with_broyden(self): """ broyden test """ if not foamVersionNumber() in [(2,3),(2,2)]: raise unittest.SkipTest("need ver.2.3 or 2.2 for this unittest.") cavityTut = os.path.join(foamTutorials(), "incompressible/icoFoam/cavity") if not os.path.exists(cavityTut): raise unittest.SkipTest("need $FOAM_TUTORIALS/incompressible/cavity \ for unittest.") try: shutil.copytree(cavityTut, os.path.join(self.tmpDir,"cavity")) cavityCase = SolutionDirectory(os.path.join(self.tmpDir,"cavity")) except: raise unittest.SkipTest("can not copy cavity case to temp_dir.") #create Allrun with open(os.path.join(cavityCase.name,"Allrun"),'w') as fp: fp.write('#!/bin/sh\nblockMesh>log.blockMesh\nicoFoam>log.icoFoam\n') os.chmod(os.path.join(cavityCase.name,"Allrun"),0777) #append controlDict fObj=""" functions { probes { type probes; functionObjectLibs ("libsampling.so"); enabled true; outputControl timeStep; outputInterval 1; fields ( p ); probeLocations ( ( 0.1 0.0925 0.005 ) ); } } """ with open(cavityCase.controlDict(),'a') as fp: fp.write(fObj) #test start sim = set_as_top(BroydenCavityInstance()) sim.cavity.case_dir = cavityCase.name sim.run() self.assertEqual(round(sim.cavity.nu,4),0.01)
def testReadTutorial(self): if foamVersionNumber()>=(2,): # there is no appropriate volSymmTensorField-file in 2.x return test=ParsedParameterFile(self.theFile) data1=deepcopy(test.content) open(self.theFile,"w").write(str(FoamFileGenerator(data1,header=test.header))) del test test2=ParsedParameterFile(self.theFile) self.assertEqual(data1,test2.content)
def setUp(self): self.theFile=mktemp() turb=path.join(simplePitzTutorial(),"constant") if oldApp(): turb=path.join(turb,"turbulenceProperties") elif foamVersionNumber()>=(3,): turb=path.join(turb,"turbulenceProperties") else: turb=path.join(turb,"RASProperties") copyfile(turb,self.theFile)
def setUp(self): self.theDir=mkdtemp() if oldTutorialStructure(): null="0" elif foamFork() in ["openfoam","openfoamplus"] and foamVersionNumber()>=(4,): null="0.orig" else: null="0.org" usedDir=path.join(self.theDir,"data") copytree(path.join(simpleBikeTutorial(),null),usedDir) self.theFile=path.join(usedDir,"U")
def __init__(self, progress=False, doTimelines=False, doFiles=True, singleFile=False, startTime=None, endTime=None): """ :param progress: Print time progress on console? """ StandardLogAnalyzer.__init__(self, progress=progress, doTimelines=doTimelines, doFiles=doFiles, singleFile=singleFile, startTime=startTime, endTime=endTime) self.addAnalyzer( "Bounding", GeneralBoundingLineAnalyzer(doTimelines=doTimelines, doFiles=doFiles, singleFile=singleFile, startTime=startTime, endTime=endTime)) if foamVersionNumber(useConfigurationIfNoInstallation=True) < (1, 4): courantExpression = "^Mean and max Courant Numbers = (.+) (.+)$" else: courantExpression = "^Courant Number mean: (.+) max: (\S+).*$" self.addAnalyzer( "Courant", GeneralSimpleLineAnalyzer("courant", courantExpression, titles=["mean", "max"], doTimelines=doTimelines, doFiles=doFiles, singleFile=singleFile, startTime=startTime, endTime=endTime))