OPM/opm-common

Tabulated test fails on some 64bit architectures

blattms opened this issue · 2 comments

on arm64, riscv64 and ppc64el this happens:

41: �[1;31;49m*** 15 failures are detected in the test module "Tabulation"
41: �[0;39;49m
 61/182 Test  #41: tabulation .......................***Failed    8.44 sec
Running 2 test cases...
....
31.5453% done
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{2.61322} between TabulatedH2O::liquidInternalEnergy(T,p){464501.875} and IapwsH2O::liquidInternalEnergy(T,p){1678347.75} exceeds 0.00999999978
...
42.0179% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{197.773} between TabulatedH2O::liquidInternalEnergy(T,p){619787.188} and IapwsH2O::liquidInternalEnergy(T,p){123196952} exceeds 0.00999999978�[0;39;49m
....
61.175% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{32.4154} between TabulatedH2O::liquidInternalEnergy(T,p){913082.688} and IapwsH2O::liquidInternalEnergy(T,p){30511036} exceeds 0.00999999978�[0;39;49m
...
62.1967% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{371.351} between TabulatedH2O::liquidInternalEnergy(T,p){929234.438} and IapwsH2O::liquidInternalEnergy(T,p){-344143008} exceeds 0.00999999978�[0;39;49m
70.2427% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{72.3934} between TabulatedH2O::liquidInternalEnergy(T,p){1059070} and IapwsH2O::liquidInternalEnergy(T,p){77728800} exceeds 0.00999999978�[0;39;49m
...
72.1584% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{69.1425} between TabulatedH2O::liquidInternalEnergy(T,p){1090801.25} and IapwsH2O::liquidInternalEnergy(T,p){76511552} exceeds 0.00999999978�[0;39;49m
....
8.5441% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{57.1604} between TabulatedH2O::liquidInternalEnergy(T,p){1199534.62} and IapwsH2O::liquidInternalEnergy(T,p){-67366336} exceeds 0.00999999978�[0;39;49m
...     
81.6092% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{0.616062} between TabulatedH2O::liquidInternalEnergy(T,p){1253700.62} and IapwsH2O::liquidInternalEnergy(T,p){775775} exceeds 0.00999999978�[0;39;49m
....
85.4406% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{819.913} between TabulatedH2O::liquidInternalEnergy(T,p){1323757.25} and IapwsH2O::liquidInternalEnergy(T,p){1.08668928e+09} exceeds 0.00999999978�[0;39;49m
....
89.3997% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{1084.05} between TabulatedH2O::liquidInternalEnergy(T,p){1399645.5} and IapwsH2O::liquidInternalEnergy(T,p){1.51869107e+09} exceeds 0.00999999978�[0;39;49m
89.5275% done        
...
91.1877% done        
./tests/material/test_tabulation.cpp(102): �[1;31;49merror: in "H2O<float>": difference{1499.72} between TabulatedH2O::liquidInternalEnergy(T,p){1435398.88} and IapwsH2O::liquidInternalEnergy(T,p){-2.15125786e+09} exceeds 0.00999999978�[0;39;49m
....

Seems like these huge difference also occured in previous releases. At that time we did not do the checks with boost (before #3535) but just printed error messages and still marked the tests as successful

See https://buildd.debian.org/status/fetch.php?pkg=opm-common&arch=arm64&ver=2023.04%2Bds-5&stamp=1692531589&raw=0 :

42.0179% done        
error for "gasDensity": -0.724152% difference (tolerance: 0.1%)
41: error for "liquidInternalEnergy": -99.4969% difference (tolerance: 1%)
41: 42.1456% done        
error for "gasDensity": -0.40496% difference (tolerance: 0.1%)
41: 42.2733% done        

These tabulation tests are run twice. once with float and once double. The differences are only there with float.