#============================================================================
#
# Code_Saturne version 1.3
# ------------------------
#
#
# This file is part of the Code_Saturne Kernel, element of the
# Code_Saturne CFD tool.
#
# Copyright (C) 1998-2007 EDF S.A., France
#
# contact: saturne-support@edf.fr
#
# The Code_Saturne Kernel is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# The Code_Saturne Kernel is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the Code_Saturne Kernel; if not, write to the
# Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA
#
#============================================================================
#-------------------------------------------------------------------------------
# Library modules import
#-------------------------------------------------------------------------------
import sys, os, shutil
#-------------------------------------------------------------------------------
# Application modules import
#-------------------------------------------------------------------------------
import Autovalidation.Common as Common
import Autovalidation.Case as Case
import Autovalidation.Parser as Parser
class Study:
def __init__(self, parser, studyLabel):
self.cases = []
#
# if study doesn't exist, create it with "cree_sat"
#
localDir = Common.localDirectory
studyPath = localDir+"/"+studyLabel.upper()
reportListing = studyLabel + "_listing.report"
fa = open(reportListing,'w')
fa.write('-------------------------\n')
fa.write('Listing files comparison \n')
fa.write('-------------------------\n')
fa.close()
reportChrono = studyLabel + "_chrono.report"
fa = open(reportChrono,'w')
fa.write('-------------------------\n')
fa.write('Chrono files comparison \n')
fa.write('-------------------------\n')
fa.close()
if not os.path.isdir(studyLabel.upper()) :
proc = os.popen("cree_sat -noihm -etude "+studyLabel)
proc.close()
shutil.rmtree(studyPath+"/CAS1")
#
# lien ou copie des maillages et des scripts du cas de reference
#
refMeshPath = Common.referencePath+"/"+studyLabel.upper()+"/MAILLAGE"
try:
meshesList = os.listdir(refMeshPath)
for mesh in meshesList :
os.symlink(refMeshPath+"/"+mesh,studyPath+"/MAILLAGE/"+mesh)
except:
pass
refPostPath = Common.referencePath+"/"+studyLabel.upper()+"/POST"
try:
scriptsList = os.listdir(refPostPath)
for script in scriptsList :
shutil.copyfile(refPostPath+"/"+script,studyPath+"/POST/"+script)
except:
pass
#
# On recupere les variables a comparer
variables = parser.getVariablesDefinition(studyLabel)
#
# create cases list
casesLabels = parser.getCasesLabels(studyLabel)
if casesLabels != [] and casesLabels != None:
for caseLabel in casesLabels:
case = Case.Case(parser, studyLabel, caseLabel, variables, reportListing, reportChrono )
self.cases.append(case)
else :
print "Error : no case in "+studyLabel+" study"
sys.exit(1)
def getCases(self):
return self.cases
syntax highlighted by Code2HTML, v. 0.9.1