Calculating Ions in Water

I try to understand the accumulation of ions in Water by programming a simulation.


Using python and the equations of physical chemistry, a virtual solution is set up. All input parameters can be measured, calculated using ab initio methods or may be taken from literature. The output parameters can be validated by standard chemical analyses. Optimization parameters are introduced and calibrated by simulating known systems.

Calculations (strongly simplified):


  • Concentrations [ Ion: mol/l, pH ]
  • Ion properties [ radius, charge ]
  • Solution properties [ volume, temperature, permittivity, … ]
  • partially expected result (e.g. pH, atomic ratios)


  • Nucleation rate
  • Cluster growth
  • Nernst layer at cluster surface
  • Concentration changes
  • … many parameters more


  • Concentrations & pH over time
  • No. and size of clusters over time
  • Nernst layer at cluster surface over time

In the long run, the program will be linked to existing ab initio and molecular dynamics programs.

  • Ab initio modeling gives accurate physical parameters for crucial (sub)complexes in the system.
  • Monte Carlo simulations can be introduced, depending how well the starting situation is known.
  • Molecular mechanics shows the development in a limited space-time slice for the given physical parameters.

The statistical model, based on physical chemistry, scales the simulation up to lab or production sized volumes and time scales. If the result for a specific simulation after step 3 is not realistic, the optimization parameters are adapted and the calculation starts again. As soon as i have first results, i will post them here. The answers i hope to get are given in this post.

Please drop a mail or comment if you are interested in this work, i look forward to any productive cooperation. Here is a sneak preview of the documentation of this project called waterpy.
The structure of the program is posted here.

A prelimary first alpha version of an abstract model is now online for you. You can play around with the parameters and copy/paste the calculation results: waterpy-abstract-model. Don’t forget to post a comment below.

About ralf

I studied Geology at University Erlangen and got my PhD (bio-nanotechnology) at TU Dresden. In my spare time i program simulations and tinker around with data prediction methods. Frisbee is my favorite sport and i play guitar when my friends and i meet to make some music.
This entry was posted in coding, science, solution and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.