#include #include #include #include #define MAXLINLEN 510 #define PI 3.14159265358979323846 #define BoltzmannConstant 1.38066e-20 //g*(nm/ns)^2/K #define AtomicMassUnit 1.66053886e-24 // in g #define IGNITION //define igniion region using namespace std; const int dim=3; const float boxsize=100.0, //size of the simulation domain in nanometers temperature=300; //K: temperature #ifdef IGNITION const float ignition_temperature=20000.0,//K xignmin[]={-0.5*boxsize,-0.5*boxsize,-0.5*boxsize}, xignmax[]={-0.4*boxsize,0.5*boxsize,0.5*boxsize};//ignition box #endif struct Species { char *id; int number; float mass;// in atomic units } species[]={ // {"H2O", 10, 18.0}, {"H2" , 600, 2.0}, {"O2" , 300, 32.0} // {"H2S", 10, 34.}, // {"N2", 10, 28.} }; float rnd() { //Returns a random number between 0 and 1 return (float)((double)rand()/RAND_MAX); } main(int argc, char *argv[]) { int nspecies=sizeof(species)/sizeof(*species), nmolecules=0; cout<<"Number of species: "<number; specie->mass*=AtomicMassUnit;// convert to grams } cout<<"Total number of molecules: "<=xignmin[i]&&x[i]<=xignmax[i]) ignbox++; #endif } //Set velocity: float local_temperature=temperature; #ifdef IGNITION if(ignbox==3) { local_temperature=ignition_temperature; //isp=0;///DDD } #endif float mass=species[isp].mass, velocity=(float)pow(8.0*BoltzmannConstant*local_temperature/(PI*mass),0.5); for(int i=0;i