MaginnGroup / Cassandra

Cassandra is a Monte Carlo package to conduct atomistic simulations.
https://cassandra.nd.edu/
GNU General Public License v3.0
39 stars 20 forks source link

How to calculate the chemical potential of water at different temperatures? #142

Open qqlovekerry opened 1 year ago

qqlovekerry commented 1 year ago

The chemical potential of SPC/E water at 300 K can be found in this post on the Cassandra forum. However, we now also want to know the chemical potential of SPC/E water at different temperatures. Cassandra seems to have its own way of calculating the chemical potential, so I am trying to calibrate it with Cassandra.

  1. I am running GCMC simulations of pure water gas at different given chemical potentials, and Cassandra will output the pressure, after reaching the equilibrium, the average pressure of the last 500k steps can be obtained. The chemical potential vs. the average pressure can be plotted and fitted with the equation mu-mu0=kb T ln(P/P0), where mu is the given chemical potential and P is the average pressure from the output, mu0 and P0 is the value at the saturation condition, I found the value of P0 of SPC/E water at this NIST webpage, and finally with the linear fitting, I can get the value for mu0. Later I will change the temperature to 325 K, 350 K, etc., and do the same procedure, to get the mu0 at different temperatures. Could you please tell me whether this is the correct process to get the chemical potential at the saturation pressure? Or is there any other analytical formula that can be used to get the mu0 value at different temperatures as done in this post on the Cassandra forum for 300 K?
  2. Another problem is to obtain the saturation vapor pressure P0 at different temperatures. I think I need to do a vaper-liquid coexistence simulation to get the value of P0 at each temperature in Cassandra. But sorry I did not find an example and my peers told me it is very difficult to do that kind of simulation. Could you please give me any suggestions if it is possible? Can I use the value on this NIST webpage instead if it is too difficult to do that? I found it is also for SPC/E water, but I think it is not done with Cassandra.

Any help would be greatly appreciated!

emarinri commented 1 year ago

Hello!

Thanks for your post!

  1. If you want to use GCMC, I think you could run GCMC in the gas phase and find those (shifted) chemical potentials that yield the vapor pressures you want. You can generate a P vs mu data set and fit that. Then, pick the relevant chemical potentials and use them in a liquid simulation (smaller volume).

  2. I think the easiest way to get the coexistence curve of water is to use NVT-GEMC. One of the inputs is temperature and you can directly calculate the vapor pressure from the simulation.

Hope this helps!

qqlovekerry commented 1 year ago

Hello!

Thanks for your post!

1. If you want to use GCMC, I think you could run GCMC in the gas phase and find those (shifted) chemical potentials that yield the vapor pressures you want. You can generate a P vs mu data set and fit that. Then, pick the relevant chemical potentials and use them in a liquid simulation (smaller volume).

2. I think the easiest way to get the coexistence curve of water is to use NVT-GEMC. One of the inputs is temperature and you can directly calculate the vapor pressure from the simulation.

Hope this helps!

Hello, Thank you very much for your reply!

Sorry I still have several questions, could you please help me further?

Yes, I am doing a pure GCMC simulation of water vapor and I can find a relation of P vs. mu. However, what we need is the value of mu0 at different temperatures, e.g. the chemical potential at the saturation vapor pressure at different temperatures. In this case, I need to fit the data with the equation mu-mu0=kb T ln(P/P0), I guess I have to know the value of P0, which is not easy for me to obtain right now.

  1. I only found the values of P0 for SPC/E water on this NIST webpage, could you please tell me do you think the value of P0 shown there would be as the same as if I get them from Cassandra?
  2. Are there any analytical ways to calculate the mu0 value at different temperatures? In this post on the Cassandra forum, the mu0 value for 300 K is obtained without simulation. Could you please tell me whether it is possible to apply a similar analytical approach for different temperatures?
  3. Thank you very much for the suggestion! That is great. I think I have found some examples in the Example/GEMC folder. I think the example for Examples/GEMC/Methane might be the most similar one with water. Would you suggest that I use this as a template and change it to water?

Any help would be greatly appreciated!