I am a doctoral student at ETH Zurich working in Quasi-Continuum (QC). Our group intends to use the openKIM API and its potentials for simulating materials with substitutional and (or) interstitial impurities. We, however, use the framework introduced by Venturini et al. where each lattice (or interstitial site) has a statistical species occupation (instead of being specified as one of the species completely), which is updated every step using a master equation for mass diffusion.
As of now, the KIM API does not support these species atomic concentrations as an input, and the API with the Portable Models is well suited for MD calculations, where each atom belongs to one species and there is no species concentration involved.
To be able to deal with this type of a modeling framework, the KIM API needs to be extended to accept atomic concentrations as a user input, and new portable models will need to be introduced, which interpret these atomic concentrations correctly and use them to compute the potential, forces, virial etc.
As a first thought, I believe this can be achieved by introducing another object of the ‘ComputeArgumentName’ class (say ‘particleAtomicFractions’) and then to use the ‘SetArgumentPointer’ function in the ‘ComputeArgumentsImplementation’ class to accept them as a user input. Also. the status of this input could be kept as ‘optional’ instead of ‘requiredByAPI’, so that only the corresponding portable models interpret and treat them accordingly, while it can be ignored by other models used by MD calculations.
I would be grateful to look at suggestions of other people in the community regarding how this could be achieved in a smooth and seamless fashion.
Thanks for your time.