Dear LAMMPS developer team,
I am working on latest 12 Dec 2018 released version of lammps. I was trying to do simulations on crystal structure of LFP (lithium iron pohsphate) as given in below attached file (filename: in.lfp). In this system I have a three body interaction (between O-P-O angled atoms) which requires the use of “pair_style nb3b/harmonic”. In the start when I was using this pair style, I was following the instructions in the manual. These are the statements in the LAMMPS manual I am talking about:
" For a given entry, if the second and third arguments are identical, then the entry is for a cutoff for the distance between types 1 and 2 (values for K and theta_0 are irrelevant in this case).
For a given entry, if the first three arguments are all different, then the entry is for the K and theta_0 parameters (the cutoff in this case is irrelevant)."
Initially I was working with “metal” units and so I was using the value for nb3b prefactor “K” in terms of eV. I followed the above instruction for my system of O-P-O, where second and third argument are identical (O atoms), I submitted only ‘cutoff value’ as per instruction. That did not work for my system. Then, I totally ignored the above statements submitting the attached potential file (filename:lfp.nb3b.harmonic, where all three values are submitted for O-P-O pair, K value was submitted in eV: K= 0.66 eV) and verified the results from nb3b pair_style by comparing with my manually calculated results, pair_style nb3b/harmonic was working properly. Whereas my system was not working properly and hence I again tried to fit in my parameters in the potential file according to above statements in the manual using various combinations, as above statements look imperfect. to accommodate all the parameters. Still, nothing worked!
Next, I checked the source file: “pair_nb3b_harmonic.cpp” and found that the code to be perfectly fine as far as my understanding goes and it also do not restrict the entries of parameters as mentioned in above statements from manual. I made a new attempt by converting all my potential values in “real” units and the program worked perfectly fine (using the same file for nb3b potential that is attached below, lfp.nb3b.harmonic).
Based on my verification of both source code and stand alone results, the program works totally fine and it is totally inconsistent with above statements in the manual. Whereas, this is quite surprising that my system is working well with “real” units but not with “metal”. So, is there any glitch in other source programs that is causing such difference? It is also not mentioned anywhere in the manual that this pair_style should be used with “real” units only.
I request you to please consider my observations and make required changes in the manual, if there are no changes please make the description more comprehensive with all possible examples (like three body systems with different terminal atoms, same terminal atoms, all three atoms are same). And please answer my doubt, why my system is working in “real” units but not in “metal”? Wish you and all the LAMMPS users a great year ahead, Happy New Year!
Regards,
Saurabh
lfp.nb3b.harmonic (786 Bytes)
in.lfp (2.73 KB)