zincware / MDSuite

A post-processing engine for particle simulations
https://mdsuite.readthedocs.io/
Eclipse Public License 2.0
38 stars 8 forks source link

Automatic optimization cycles #461

Open SamTov opened 2 years ago

SamTov commented 2 years ago

What feature would you like to see added? It could be nice to have automated optimization cycles for certain calculators. Something like what used to exist for the Einstein calculator it adjusts the data range until a suitable range is found. In the case of Einstein it was removed due to the restructures and has not been looked at since. It could also do with a better optimization scheme than just linearly increasing data ranges.

My thought is to have a module that can optimize parameters like data range based on a desired outcome like diffusion coefficient or coordination number. Such a module could use something like Newton-Raphson or GS-search to cycle through parameters with optimal convergence speed.

PythonFZ commented 2 years ago

We could add some function to each calculator that has to be optimized and then investigate if this can be generalized. It might require some function to read all tested parameters from the SQL DB but that can be easily done.

SamTov commented 2 years ago

I was thinking for starters using just data range as it can is quite easy to look for convergence in a measure parameter. Things like correlation time we should implement a calculator to measure so it can be set correctly. But for other parameters, for example getting good enough RDF resolution, this is a larger, mulit-dimensional optimization problem. We could maybe take some ideas from linear programming.