lumol-org / lumol

Universal extensible molecular simulation engine
http://lumol.org/
BSD 3-Clause "New" or "Revised" License
184 stars 18 forks source link

Reduce verbosity of the potential input files #263

Closed Luthaf closed 4 years ago

Luthaf commented 5 years ago

Only allow one potential per pair/bond/..., both in lumol-core and input files.

This transforms

[input]
version = 1

[global]
cutoff = "3 A"
tail_correction = true

[[pairs]]
atoms = ["B", "B"]
lj = {sigma = "3 A", epsilon = "5.9 kJ/mol"}

[[pairs]]
atoms = ["C", "C"]
harmonic = {x0 = "3 A", k = "5.9 kJ/mol/A^2"}

[[angles]]
atoms = ["C", "C", "C"] 
morse = {A = "30 deg^-1", depth = "25 kJ/mol", x0 = "109 deg"}

[[angles]]
atoms = ["D", "D", "D"]
harmonic = {x0 = "80 deg", k = "5.9 kJ/mol/deg^2"}

into

[input]
version = 1

[global]
cutoff = "3 A"
tail_correction = true

[pairs]
B-B = {type = "lj", sigma = "3 A", epsilon = "5.9 kJ/mol"}
C-C = {type = "harmonic", x0 = "3 A", k = "5.9 kJ/mol/A^2"}

[angles]
C-C-C = {type = "morse", A = "30 deg^-1", depth = "25 kJ/mol", x0 = "109 deg"}
D-D-D = {type = "harmonic", x0 = "80 deg", k = "5.9 kJ/mol/deg^2"}