aiidaplugins / aiida-lammps

LAMMPS plugin for AiiDA
https://aiida-lammps.readthedocs.io
MIT License
22 stars 14 forks source link

:sparkles: Multiple potentials for a calculation #38

Open JPchico opened 2 years ago

JPchico commented 2 years ago

In the current implementation in the develop branch only one potential can be given for a calculation.

This limits the flexibility of what can be done with the plugin. However, applying a "potential family" like is done in the DFT codes is not possible due to the number of possible potentials that exist. Hence another solution is needed.

One would need to add a dynamical namespace for the potential so that one allows more than one entry, while also specifying which potential acts over which atom type.

JPchico commented 1 year ago

Something else that comes as a result of this is that the pair_coeff probably needs to be added to the potential_parameters, in someway like this

potential_parameters = {
    'pair_coeff': {
        'Al': ['1*2', '2'],
        'Si': ['*', '*'],
    }
}

One would need to check that the atoms defined there are present in the given potentials, or otherwise raise a warning.

In general for the dynamic inputs part one needs to have the following

  1. Check that all the potentials given have the same pair_style
  2. Group by potential file, to make sure that if the same file is used for several atoms only one line is written and not several
  3. Change the input generation so that when the atom which is being treated is given one takes the key of the input_namespace
  4. Check that only elements are given as keys in the input_namespace
  5. By default if nothing is given the pair_coeff should be set to * *
JPchico commented 1 year ago

This is going to be something to be discussed in a post-release patch, as it is not critical right now and it should not affect other cases when one is using only one potential file.