I try to understand the accumulation of ions in Water by programming a simulation.
Approach
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):
Input:
- Concentrations [ Ion: mol/l, pH ]
- Ion properties [ radius, charge ]
- Solution properties [ volume, temperature, permittivity, … ]
- partially expected result (e.g. pH, atomic ratios)
Loop:
- Nucleation rate
- Cluster growth
- Nernst layer at cluster surface
- Concentration changes
- … many parameters more
Output:
- 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.