def controlGeomProps(geompy, geomShape, refLength, refArea):
"""
compare area and length of a geometric face with a reference,
- with relative precision of 1.E-7
+ with relative precision of 1.E-3
"""
props = geompy.BasicProperties(geomShape)
print " Wires length: ", props[0]
print " Volume : ", props[2]
deltaLength = 2.0*abs((props[0] - refLength)/(props[0] + refLength))
deltaArea = 2.0*abs((props[1] - refArea)/(props[1] + refArea))
- if deltaLength > 1e-7 or deltaArea > 1e-7 or props[2] != 0:
+ if deltaLength > 1e-3 or deltaArea > 1e-3 or props[2] != 0:
print "While must be:"
print " Wires length: ", refLength
print " Surface area: ", refArea
print nomreg
print "value: ", vals, " reference: ", valsref
raise ValueError("z interpolation error")
+
+from MEDLoader import MEDLoader, MEDCouplingFieldDouble, ON_NODES, DataArrayDouble, MEDFileMesh
+import os, time
+
+def controlTelemacResult(aMedFile, refs):
+ """
+ Check if the result med file exist and contains result fields
+ """
+ print aMedFile
+ for i in range(10):
+ time.sleep(3)
+ print 'waiting result...'
+ if os.path.exists(aMedFile):
+ break
+ time.sleep(3)
+ try:
+ MEDLoader.CheckFileForRead(aMedFile)
+ except:
+ raise ValueError("problem while reading Telemac result med file")
+ names = MEDLoader.GetMeshNames(aMedFile)
+ infos = MEDLoader.GetUMeshGlobalInfo(aMedFile, names[0])
+ stats = {}
+ stats['nbTriangles'] = infos[0][0][0][1]
+ stats['nbNodes'] = infos[3]
+ stats['fieldNames'] = MEDLoader.GetNodeFieldNamesOnMesh(aMedFile, names[0])
+ stats['iterations'] = MEDLoader.GetNodeFieldIterations(aMedFile, names[0], 'SURFACE LIBRE')
+ for nomreg, valsref in refs.iteritems():
+ vals = stats[nomreg]
+ if vals != valsref:
+ print nomreg
+ print "value: ", vals, " reference: ", valsref
+ raise ValueError("error in Telemac result")
+