[Test] Move NASA9poly test to GTest test suite
This commit is contained in:
parent
5ecdc1a4e1
commit
337c573958
7 changed files with 129 additions and 6391 deletions
95
test/data/gasNASA9.xml
Normal file
95
test/data/gasNASA9.xml
Normal 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>
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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'),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue