// #ifdef WIN32 #pragma warning(disable:4786) /*Warning messages that are identified as Warning C4786: are created when MSVC generates extremely long names that it uses for debugging purposes. The long names are generated by the template expansion process and the warning messages normally can be ignored. Since these warnings tend to hide more interesting warning/error messages, you may wish to suppress the warning*/ #endif #include #include #include #include #include #include #include #include "example_utils.h" using namespace Cantera; int flamespeed(ofstream& myresult , double& p) { try { int i; IdealGasMix gas("1STEP.cti","gas"); double transl = 0.0; doublereal temp = 300.0; // K doublereal pressure = 1.0*OneAtm; //Atm doublereal uin=0.37; //m/sec double phi=p; int n_reac = gas.nReactions(); int nsp = gas.nSpecies(); double n_press = 1.0; /* cout<<"Temperature of Fresh Gas [K]:"<>temp;*/ cout<<"Pressure [Atm]:"<>n_press; cout<<"Equivalence Ratio:"<>phi; pressure = n_press*OneAtm; /* cout<<"Translation"<>transl; //cout< domains; domains.push_back(&inlet); domains.push_back(&flow); domains.push_back(&outlet); // OneDim flamesim(domains); Sim1D flame(domains); //----------- Supply initial guess---------------------- vector_fp locs; vector_fp value; locs.resize(3); value.resize(3); //ramp values from inlet to adiabatic flame conditions // over 70% of domain and then level off at equilibrium double z1=0.7; double uout; uout=inlet.mdot()/rho_out; uin=inlet.mdot()/rho_in; locs[0]=0.0; locs[1]=z1; locs[2]=1.0; value[0]=uin; value[1]=uout; value[2]=uout; flame.setInitialGuess("u",locs,value); value[0]=temp; value[1]=Tad; value[2]=Tad; flame.setInitialGuess("T",locs,value); for(i=0;i zvec,Tvec,H2Ovec,CO2vec,Uvec; Array2D soln(2*nsp+5+3*n_reac+2,1); for(int n=0;n