[Test] Move NASA9poly test to GTest test suite

This commit is contained in:
Ray Speth 2014-09-24 23:18:01 +00:00
parent 5ecdc1a4e1
commit 337c573958
7 changed files with 129 additions and 6391 deletions

95
test/data/gasNASA9.xml Normal file
View file

@ -0,0 +1,95 @@
<ctml>
<validate reactions="yes" species="yes"/>
<phase dim="3" id="nasa9">
<elementArray datasrc="elements.xml"> O H C N Ar </elementArray>
<speciesArray datasrc="#species_data">
H2 H2_NASA9 H2_NASA9_4REG
</speciesArray>
<state>
<temperature units="K">300.0</temperature>
<pressure units="Pa">101325.0</pressure>
</state>
<thermo model="IdealGas"/>
<kinetics model="None"/>
<transport model="None"/>
</phase>
<!-- species definitions -->
<speciesData id="species_data">
<!-- species H2 -->
<species name="H2">
<atomArray>H:2 </atomArray>
<note>TPIS78</note>
<thermo>
<NASA P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="7">
2.344331120E+00, 7.980520750E-03, -1.947815100E-05, 2.015720940E-08,
-7.376117610E-12, -9.179351730E+02, 6.830102380E-01
</floatArray>
</NASA>
<NASA P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="7">
3.337279200E+00, -4.940247310E-05, 4.994567780E-07, -1.795663940E-10,
2.002553760E-14, -9.501589220E+02, -3.205023310E+00
</floatArray>
</NASA>
</thermo>
</species>
<!-- species H2_NASA9 -->
<species name="H2_NASA9">
<atomArray>H:2 </atomArray>
<note>Fictional - made up</note>
<thermo>
<NASA9 P0="100000.0" Tmax="1000.0" Tmin="200.0">
<floatArray name="coeffs" size="9">
0.0, 0.0, 2.344331120E+00, 7.980520750E-03, -1.947815100E-05, 2.015720940E-08,
-7.376117610E-12, -9.179351730E+02, 6.830102380E-01
</floatArray>
</NASA9>
<NASA9 P0="100000.0" Tmax="3500.0" Tmin="1000.0">
<floatArray name="coeffs" size="9">
0.0, 0.0, 3.337279200E+00, -4.940247310E-05, 4.994567780E-07, -1.795663940E-10,
2.002553760E-14, -9.501589220E+02, -3.205023310E+00
</floatArray>
</NASA9>
</thermo>
</species>
<!-- species H2_NASA9_4REG -->
<species name="H2_NASA9_4REG">
<atomArray>H:2 </atomArray>
<note>Fictional - made up</note>
<thermo>
<NASA9 P0="100000.0" Tmax="500.0" Tmin="200.0">
<floatArray name="coeffs" size="9">
0.0, 0.0, 2.344331120E+00, 7.980520750E-03, -1.947815100E-05, 2.015720940E-08,
-7.376117610E-12, -9.179351730E+02, 6.830102380E-01
</floatArray>
</NASA9>
<NASA9 P0="100000.0" Tmax="1000.0" Tmin="500.0">
<floatArray name="coeffs" size="9">
0.0, 0.0, 2.344331120E+00, 7.980520750E-03, -1.947815100E-05, 2.015720940E-08,
-7.376117610E-12, -9.179351730E+02, 6.830102380E-01
</floatArray>
</NASA9>
<NASA9 P0="100000.0" Tmax="2000.0" Tmin="1000.0">
<floatArray name="coeffs" size="9">
0.0, 0.0, 3.337279200E+00, -4.940247310E-05, 4.994567780E-07, -1.795663940E-10,
2.002553760E-14, -9.501589220E+02, -3.205023310E+00
</floatArray>
</NASA9>
<NASA9 P0="100000.0" Tmax="3500.0" Tmin="2000.0">
<floatArray name="coeffs" size="9">
0.0, 0.0, 3.337279200E+00, -4.940247310E-05, 4.994567780E-07, -1.795663940E-10,
2.002553760E-14, -9.501589220E+02, -3.205023310E+00
</floatArray>
</NASA9>
</thermo>
</species>
</speciesData>
</ctml>

View file

@ -1,5 +1,6 @@
#include "gtest/gtest.h"
#include "cantera/thermo/NasaPoly1.h"
#include "cantera/IdealGasMix.h"
namespace Cantera
{
@ -108,6 +109,39 @@ TEST_F(NasaPoly1Test, updatePropertiesTemp)
EXPECT_DOUBLE_EQ(s_R1, s_R2);
}
TEST(Nasa9Test, Nasa9Thermo) {
IdealGasMix g("../data/gasNASA9.xml", "nasa9");
size_t nsp = g.nSpecies();
double pres = 1.0E5;
vector_fp Xset(nsp, 0.0);
Xset[0] = 0.5;
Xset[1] = 0.5;
vector_fp cp_R(nsp, 0.0);
vector_fp H_RT(nsp, 0.0);
vector_fp S_R(nsp, 0.0);
double T0 = 300.0;
double dT = 199.0;
double abstol = 1e-7;
for (size_t i = 0; i < 15; i++) {
g.setState_TPX(T0 + i*dT, pres, &Xset[0]);
g.getEntropy_R(&S_R[0]);
g.getCp_R(&cp_R[0]);
g.getEnthalpy_RT(&H_RT[0]);
EXPECT_NEAR(cp_R[0], cp_R[1], abstol);
EXPECT_NEAR(cp_R[0], cp_R[2], abstol);
EXPECT_NEAR(H_RT[0], H_RT[1], abstol);
EXPECT_NEAR(H_RT[0], H_RT[2], abstol);
EXPECT_NEAR(S_R[0], S_R[1], abstol);
EXPECT_NEAR(S_R[0], S_R[2], abstol);
}
}
} // namespace Cantera
int main(int argc, char** argv)

View file

@ -1,61 +0,0 @@
/**
* @file NASA9poly_test
* test problem for NASA 9 coefficient formulation
*/
#include "cantera/transport.h"
#include "cantera/IdealGasMix.h"
#include "cantera/transport/TransportFactory.h"
#include <memory>
#include <cstdio>
using namespace Cantera;
int main(int argc, char** argv)
{
#ifdef _MSC_VER
_set_output_format(_TWO_DIGIT_EXPONENT);
#endif
try {
IdealGasMix g("gasNASA9.xml", "gri30_mix");
size_t nsp = g.nSpecies();
double pres = 1.0E5;
vector_fp Xset(nsp, 0.0);
Xset[0] = 0.5 ;
Xset[1] = 0.5;
g.setState_TPX(1500.0, pres, &Xset[0]);
vector_fp cp_R(nsp, 0.0);
vector_fp H_RT(nsp, 0.0);
vector_fp S_R(nsp, 0.0);
g.getEntropy_R(&S_R[0]);
g.getCp_R(&cp_R[0]);
g.getEnthalpy_RT(&H_RT[0]);
printf("Comparisons of H2 calculated via several equivalent classes:\n");
printf("1500 K and 1 atm:\n");
printf(" NasaThermo Nasa9 Nasa9_4reg \n");
printf(" cp/R: %11.6g %11.6g %11.6g\n", cp_R[0], cp_R[1], cp_R[2]);
printf(" H/RT: %11.6g %11.6g %11.6g\n", H_RT[0], H_RT[1], H_RT[2]);
printf(" S/R: %11.6g %11.6g %11.6g\n", S_R[0], S_R[1], S_R[2]);
std::auto_ptr<Transport> tran(newTransportMgr("Mix", &g));
vector_fp Gvalues(nsp, 0.0);
printf("Viscosity and thermal Cond vs. T\n");
for (int k = 0; k < 40; k++) {
double T1 = 400. + 200. * k;
g.setState_TPX(T1, pres, &Xset[0]);
g.getPureGibbs(&Gvalues[0]);
double visc = tran->viscosity();
double cond = tran->thermalConductivity();
printf(" %13g %13.5g %13.5g\n", T1, visc, cond);
}
} catch (CanteraError& err) {
std::cout << err.what() << std::endl;
return 1;
}
return 0;
}

File diff suppressed because it is too large Load diff

View file

@ -1,47 +0,0 @@
Comparisons of H2 calculated via several equivalent classes:
1500 K and 1 atm:
NasaThermo Nasa9 Nasa9_4reg
cp/R: 3.8823 3.8823 3.8823
H/RT: 2.91015 2.91015 2.91015
S/R: 21.5255 21.5255 21.5255
Viscosity and thermal Cond vs. T
400 1.0869e-05 0.2291
600 1.4145e-05 0.29844
800 1.7036e-05 0.36333
1000 1.9676e-05 0.42821
1200 2.2132e-05 0.49363
1400 2.4445e-05 0.55933
1600 2.6644e-05 0.62489
1800 2.8746e-05 0.68996
2000 3.0767e-05 0.7542
2200 3.2716e-05 0.81739
2400 3.4603e-05 0.87934
2600 3.6434e-05 0.93991
2800 3.8214e-05 0.99898
3000 3.9949e-05 1.0565
3200 4.1642e-05 1.1124
3400 4.3296e-05 1.1666
3600 4.4915e-05 1.2191
3800 4.6501e-05 1.2699
4000 4.8056e-05 1.319
4200 4.9582e-05 1.3664
4400 5.1081e-05 1.4121
4600 5.2555e-05 1.456
4800 5.4004e-05 1.4983
5000 5.543e-05 1.5389
5200 5.6835e-05 1.5779
5400 5.8219e-05 1.6152
5600 5.9583e-05 1.6509
5800 6.0929e-05 1.685
6000 6.2256e-05 1.7176
6200 6.3566e-05 1.7485
6400 6.486e-05 1.778
6600 6.6137e-05 1.8059
6800 6.74e-05 1.8323
7000 6.8647e-05 1.8573
7200 6.988e-05 1.8808
7400 7.11e-05 1.9029
7600 7.2306e-05 1.9236
7800 7.3499e-05 1.9429
8000 7.468e-05 1.9609
8200 7.5849e-05 1.9775

View file

@ -1,37 +0,0 @@
#!/bin/sh
#
#
temp_success="1"
/bin/rm -f output.txt outputa.txt
tname="NASA9poly_test"
#################################################################
#
#################################################################
CANTERA_DATA=${CANTERA_DATA:=../../data/inputs}; export CANTERA_DATA
CANTERA_BIN=${CANTERA_BIN:=../../bin}
./NASA9poly_test > output.txt
retnStat=$?
if [ $retnStat != "0" ]
then
temp_success="0"
echo "$tname ($tname test) returned with bad status, $retnStat, check output"
exit 1
fi
../../bin/exp3to2.sh output.txt > outputa.txt
diff -w outputa.txt output_blessed.txt > diff_test.out
retnStat=$?
if [ $retnStat = "0" ]
then
echo "successful diff comparison on $tname test"
exit 0
else
echo "unsuccessful diff comparison on $tname test"
echo "FAILED" > csvCode.txt
temp_success="0"
exit 0
fi

View file

@ -262,7 +262,6 @@ CompileAndTest('mixGasTransport',
'mixGasTransport', 'mixGasTransport', 'output_blessed.txt')
CompileAndTest('multiGasTransport',
'multiGasTransport', 'multiGasTransport', 'output_blessed.txt')
CompileAndTest('NASA9poly', 'NASA9poly_test', 'NASA9poly_test', 'output_blessed.txt')
negA = localenv.Program('negATest/negATest',
mglob(env, 'negATest', 'cpp'),