cantera/test_problems/simpleTransport/simpleTransportTest.cpp
Ray Speth ee95c60813 Simplify error handling to eliminate need for global error stack
All of the functions for manipulating the global error stack
(CanteraError::save, setError, showErrors, etc.) are deprecated. The ability to
store an error is retained only for use in the C and Fortran interfaces so that
the last error message can be retrieved after a function returns an error code.
2015-11-16 19:50:55 -05:00

76 lines
2.1 KiB
C++

#include "cantera/thermo.h"
#include "cantera/transport.h"
#include "cantera/thermo/HMWSoln.h"
#include "cantera/transport/SimpleTransport.h"
#include <cstdio>
using namespace std;
using namespace Cantera;
int main(int argc, char** argv)
{
try {
int log_level = 3;
HMWSoln HMW("HMW_NaCl_pdss.xml", "NaCl_electrolyte");
unique_ptr<Transport> tran(newDefaultTransportMgr(&HMW, log_level));
SimpleTransport& tranSimple = dynamic_cast<SimpleTransport&>(*tran.get());
size_t nsp = HMW.nSpecies();
HMW.setState_TP(30+273.13, OneAtm);
double visc = tranSimple.viscosity();
printf("visc = %g\n", visc);
vector_fp x(nsp, 0.0);
tranSimple.getSpeciesViscosities(&x[0]);
for (size_t k = 0; k < nsp; k++) {
printf("sp visc (%s) = %g\n", HMW.speciesName(k).c_str(), x[k]);
}
double cond = tranSimple.thermalConductivity();
printf("cond = %g\n", cond);
tranSimple.getMixDiffCoeffs(&x[0]);
for (size_t k = 0; k < nsp; k++) {
printf("sp diff (%s) = %g\n", HMW.speciesName(k).c_str(), x[k]);
}
tranSimple.getMobilities(&x[0]);
for (size_t k = 0; k < nsp; k++) {
printf("Mobility (%s) = %g\n", HMW.speciesName(k).c_str(), x[k]);
}
vector_fp gradX(nsp, 0.0);
gradX[1] = 1.0;
double gradT = 0.0;
tranSimple.getSpeciesFluxes(1, &gradT, 5, &gradX[0], 5, &x[0]);
for (size_t k = 0; k < nsp; k++) {
string spName = HMW.speciesName(k);
printf("SpeciesFlux (%s) = %g\n", spName.c_str(), x[k]);
}
gradX[1] = 0.0;
double gradV = 1.0;
tranSimple.set_Grad_T(&gradT);
tranSimple.set_Grad_V(&gradV);
tranSimple.set_Grad_X(&gradX[0]);
tranSimple.getSpeciesFluxesExt(5, &x[0]);
for (size_t k = 0; k < nsp; k++) {
printf("SpeciesFlux (%s) = %g\n", HMW.speciesName(k).c_str(), x[k]);
}
Cantera::appdelete();
return 0;
} catch (CanteraError& err) {
std::cout << err.what() << std::endl;
return -1;
}
}