Beispiel #1
0
int main(int, char **) {
  FILE *o = fopen("paper/figs/equation-of-state.dat", "w");
  FILE *experiment = fopen("paper/figs/experimental-equation-of-state.dat", "w");
  int imax=0;
  while (temperatures_kelvin[imax]) imax++;
  took("Counting the temperatures");
  double mu = 0, nl = 0, nv = 0;
  Functional f = OfEffectivePotential(SaftFluid(water_prop.lengthscale,
                                                water_prop.epsilonAB, water_prop.kappaAB,
                                                water_prop.epsilon_dispersion,
                                                water_prop.lambda_dispersion,
                                                water_prop.length_scaling, 0));
  for (int i=0; i<imax; i+=1) {
    //printf("Working on equation of state at %g Kelvin...\n", temperatures_kelvin[i]);
    double kT = kB*temperatures_kelvin[i];
    saturated_liquid_vapor(f, kT, 1e-14, 0.0017, 0.0055, &nl, &nv, &mu, 1e-6);
    took("Finding coesisting liquid and vapor densities");
    double pv = pressure(f, kT, nv);
    took("Finding pressure");
      
    fprintf(o, "%g\t%g\t%g\t%g\n",
            temperatures_kelvin[i], pv, nl, nv);
    fflush(o); // FOR DEBUGGING
    fprintf(experiment, "%g\t%g\t%g\t%g\t%g\n",
            temperatures_kelvin[i], water_vapor_pressure[i],
            water_saturation_liquid[i], water_vapor_density[i],
            water_saturated_surface_tension[i]);
    fflush(experiment);
  }

  for (double T=650; T<=695; T += 1) {
    //printf("Working on bonus equation of state at %g Kelvin...\n", T);
    double kT = kB*T;
    saturated_liquid_vapor(f, kT, 0.0005, 0.0019, 0.003, &nl, &nv, &mu, 1e-6);
    took("Finding coesisting liquid and vapor densities");
    double pv = pressure(f, kT, nv);
    took("Finding pressure");
      
    fprintf(o, "%g\t%g\t%g\t%g\n", T, pv, nl, nv);
    fflush(o); // FOR DEBUGGING
  }

  fclose(o);
  fclose(experiment);
}
int main(int, char **) {
  
  FILE *o = fopen("paper/figs/pressure-with-isotherms.dat", "w");
  
  Functional f = OfEffectivePotential(SaftFluid(water_prop.lengthscale,
                                                water_prop.epsilonAB, water_prop.kappaAB,
                                                water_prop.epsilon_dispersion,
                                                water_prop.lambda_dispersion, water_prop.length_scaling, 0));
  for (double dens=0.00001; dens<=0.0055; dens *= 1.02) {
    fprintf(o, "%g", dens);

    for (double kT=kB*298; kT<=kB*798; kT+=50*kB) {
      double p = pressure(f, kT, dens);
      //printf("Pressure = %g\n", p); //DEBUGGING
      fprintf(o, "\t%g\t%g", kT, p); //Prints kT, pressure, to data file
      //fflush(o);
  }
    fprintf(o, "\n");
  }
    fclose(o);
}