Description
Here is an idea that I had about the input files. Currently, the input system is quite complex and the user need to choose a lot of parameters. This is good, because some people will like to use this. But it make the code a bit harder to use for newcomers.
How about having some kind of alias system in the input files, allowing to select thermodynamic ensembles with a sensible set of default?
For example,
[simulations.propagator]
type = "MolecularDynamics"
ensemble = {name = "NPT", pressure = "500 bar", temperature = "300 K"}
Would expand to something like this, picking algorithms and parameters values:
[simulations.propagator]
type = "MolecularDynamics"
timestep = "1 fs"
integrator = {type = "BerendsenBarostat", pressure = "500 bar", timestep = 1000}
thermostat = {type = "Berendsen", temperature = "300 K", timestep = 100}
Which algorithm would be used could change from one release to another, and to make sure simulation conditions are properly documented, the code would print the equivalent input somewhere when expanding the alias.
The integrator parameters (in MD) or the moves (in MC) would be as generic as possible, and thus not generate the fastest possible simulation. But it can get people started more easily.