Exemplo n.º 1
0
  public ThermoData generateSolvThermoData(ChemGraph p_chemGraph) {

    double r_solute = p_chemGraph.getRadius();
    double r_solvent;
    r_solvent =
        3.498
            * Math.pow(
                10,
                -10); // 3.311;                    // Manually assigned solvent radius [=] meter
                      // Calculated using Connolly solvent excluded volume from Chem3dPro
    double r_cavity = r_solute + r_solvent; // Cavity radius [=] Angstrom
    double rho;
    rho =
        0.00309
            * Math.pow(
                10,
                30); // 0.00381;                             // number density of solvent [=]
                     // molecules/Angstrom^3   Value here is for decane using density =0.73 g/cm3
    double parameter_y =
        (88 / 21)
            * rho
            * Math.pow(r_solvent, 3); // Parameter y from Ashcraft Thesis Refer pg no. 60
    double parameter_ymod =
        parameter_y / (1 - parameter_y); // parameter_ymod= y/(1-y) Defined for convenience
    double R = 8.314; // Gas constant units J/mol K
    double T = 298; // Standard state temperature

    // Definitions of K0, K1 and K2 correspond to those for K0', K1' and K2' respectively from
    // Ashcraft's Thesis
    double K0 = -R * (-Math.log(1 - parameter_y) + (4.5 * Math.pow(parameter_ymod, 2)));
    double K1 = (R * 0.5 / r_solvent) * ((6 * parameter_ymod) + (18 * Math.pow(parameter_ymod, 2)));
    double K2 =
        -(R * 0.25 / Math.pow(r_solvent, 2))
            * ((12 * parameter_ymod) + (18 * Math.pow(parameter_ymod, 2)));

    // Basic definition of entropy change of solvation from Ashcfrat's Thesis
    double deltaS0;
    deltaS0 = K0 + (K1 * r_cavity) + (K2 * Math.pow(r_cavity, 2));

    // Generation of Abraham Solute Parameters
    AbramData result_Abraham = new AbramData();
    result_Abraham = p_chemGraph.getAbramData();

    // Solute descriptors from the Abraham Model
    double S = result_Abraham.S;
    double B = result_Abraham.B;
    double E = result_Abraham.E;
    double L = result_Abraham.L;
    double A = result_Abraham.A;

    // Manually specified solvent descriptors (constants here are for decane)
    double c = 0.156; // -0.12;
    double s = 0; // 0.56;
    double b = 0; // 0.7;
    double e = -0.143; // -0.2;
    double l = 0.989; // 0.94;
    double a = 0; // 3.56;

    double logK = c + s * S + b * B + e * E + l * L + a * A; // Implementation of Abraham Model
    double deltaG0_octanol = -8.314 * 298 * logK;
    //       System.out.println("The free energy of solvation in octanol at 298K w/o reference state
    // corrections  = " + deltaG0_octanol +" J/mol for " );

    // Calculation of enthalpy change of solvation using the data obtained above
    double deltaH0 = deltaG0_octanol + (T * deltaS0);
    deltaS0 = deltaS0 / 4.18; // unit conversion from J/mol to cal/mol
    deltaH0 = deltaH0 / 4180; // unit conversion from J/mol to kcal/mol

    // Generation of Gas Phase data to add to the solution phase quantities
    ThermoData solvationCorrection =
        new ThermoData(
            deltaH0,
            deltaS0,
            0.0,
            0.0,
            0.0,
            0.0,
            0.0,
            0.0,
            0.0,
            0.0,
            0.0,
            0.0,
            "Solvation correction");

    // Now, solvationCorrection contains solution phase estimates of CORRECTION TO H298, S298 and
    // all the gas phase heat capacities.
    // Assuming the solution phase heat capcities to be the same as that in the gas phase we wouls
    // now want to pass on this
    // modified version of result to the kinetics codes. This might require reading in a keyword
    // from the condition.txt file.
    // Exactly how this will be done is yet to be figured out.

    return solvationCorrection;
    // #]
  }