1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
vector<double> GetDiffusivities(double T, Cantera::thermo_t &Phase)
{
/*Parameters definition*/
/*Nickel surface*/
double EHNi (14.65e6), ENi (93.2e6); /*J/kmol*/
//double ECONi (28.87e6), ECO2Ni (28.87e6); /*Zhu et al.*/
double ECONi (11.30e7), ECO2Ni (11.30e7); /*Hanna et al*/
double DHNi (2.5e-7*exp(-EHNi/(Cantera::GasConstant*T)));
double DNi (1.4e-6*exp(-ENi/(Cantera::GasConstant*T)));
double DCONi (1.2e-9*exp(-ECONi/(Cantera::GasConstant*T)));
double DCO2Ni(1.2e-9*exp(-ECO2Ni/(Cantera::GasConstant*T)));
/*YSZ surface*/
double EOX(49e6); /*J/kmol*/
double DOX (5.846e-15*exp(-EOX/(Cantera::GasConstant*T)));
double DCOX (1.9e-11);
double DZr (5e-8);
double DHZr (5e-8);
vector<double> Diffusivities(Phase.nSpecies(),0.0);
vector<string> AllNames
{ "(Ni)","H(Ni)","O(Ni)","O'(Ni)","OH(Ni)","H2O(Ni)",
"CO(Ni)","CO2(Ni)",
"(X)","O(X)","O'(X)","O''(X)","OH'(X)",
"CO(X)","(Zr)","H'(Zr)","OH'(Zr)"};
vector<double> AllDiffusivities
{ DNi, DHNi, DNi, DNi, DNi, DNi,
DCONi, DCO2Ni,
DOX, DOX, DOX, DOX, DOX, DOX,
DCOX, DZr, DHZr, DZr};
bool find(false);
unsigned int s(0), n(0);
for(s=0; s < Phase.nSpecies(); s++)
{
std::vector<string>::iterator D = std::find(AllNames.begin(), AllNames.end(), Phase.speciesName(s));
Diffusivities[s] = AllDiffusivities[D-AllNames.begin()];
//cout<<*D<<"\t"<<D-AllNames.begin()<<"\t"<<Diffusivities[s]<<endl;
}
return Diffusivities;
}
|