mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-11-22 09:16:27 -06:00
relax the python script to check the reference solutions
now, we only compare pressure, saturation, mass/mole fractions and velocity fields and we only do a qualitative comparison (i.e., much higher tolerances). Hopefully this should avoid issues with sightly different reference solutions in the future.
This commit is contained in:
parent
ccdf1c742b
commit
6ac5cecdc0
@ -32,21 +32,25 @@ def isFuzzyEqual(vtkFile1, vtkFile2, absTol, relTol):
|
||||
for i in range(0, len(curVals1)):
|
||||
number1 = curVals1[i]
|
||||
number2 = curVals2[i]
|
||||
if curFieldName.startswith("saturation"):
|
||||
if abs(number1 - number2) > 1e-3:
|
||||
if curFieldName.find("saturation") >= 0:
|
||||
if abs(number1 - number2) > 0.1:
|
||||
print 'Difference between %f and %f too large in data field "%s": %s'%(number1,number2,curFieldName,abs(number1 - number2))
|
||||
return False
|
||||
elif curFieldName == "velocity":
|
||||
if abs(number1 - number2) > 0.2:
|
||||
if curFieldName.find("mole") >= 0 or curFieldName.find("mass") >= 0:
|
||||
if abs(number1 - number2) > 0.1:
|
||||
print 'Difference between %f and %f too large in data field "%s": %s'%(number1,number2,curFieldName,abs(number1 - number2))
|
||||
return False
|
||||
elif curFieldName.startswith("pressure"):
|
||||
if abs(number1 - number2) > 0.1 and abs(number1 - number2) > 1e-5*abs(number1 + number2):
|
||||
elif curFieldName.find("velocity") >= 0:
|
||||
if abs(number1 - number2) > 0.02:
|
||||
print 'Difference between %f and %f too large in data field "%s": %s'%(number1,number2,curFieldName,abs(number1 - number2))
|
||||
return False
|
||||
elif abs(number1 - number2) > absTol and number2 != 0 and abs(number1/number2 - 1) > relTol:
|
||||
print 'Difference between %f and %f too large (%f%%) in data field "%s"'%(number1,number2,abs(number1/number2 - 1)*100, curFieldName)
|
||||
elif curFieldName.find("pressure") >= 0:
|
||||
if abs(number1 - number2) > 0.1*abs(number1 + number2):
|
||||
print 'Difference between %f and %f too large in data field "%s": %s'%(number1,number2,curFieldName,abs(number1 - number2))
|
||||
return False
|
||||
else:
|
||||
# don't compare any other fields
|
||||
pass
|
||||
return True
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
|
Loading…
Reference in New Issue
Block a user