I just stumbled across something peculiar in the function DynamicViscosityWater() in Viscosity.cpp (applies equally well to ViscosityFromTemperatureAndDensity() in DynamicViscosity.cpp)
Using
tstar = 647.27e0;
the function caclulates the following two values
trat = (t+273.15e0)/tstar; trat1 = 1.0e0/trat-1.0e0;
Now, if the external CSMP temperature, t, is exactly t = 374.12, then obviously one obtains
trat = 1.0e0; trat1 = 0.0e0
which causes the viscosity, n, to be not a number because it is computed as
for(i=0;i<6;++i){ for(j=0;j<5;++j){ n += (b[i][j]*pow(trat1,i)*pow(rhorat1,j)); } }
where now pow(trat1,i) = nan if trat1 = 0 and i = 0
Am I missing some vital physics here (we are close to the critical temperature of pure water but t = 374.12 is not equal to tcrit 373.976) or am I just unlucky having encountered this value?