Hi all,
Using LAMMPS, I want to reproduce the density of Fe7C3 system at high P-T reported in published articles . The obtained lattice parameter at 0GPa is close to previous results. However, I am not able to reproduce the lattice parameter and density at 300 GPa (higher pressures) which should be near 12 g/cm^3. I have following related queries.
1.) If I am only interested in lattice parameters and density at 0GPa,0K for time being, is energy minimisation with fix box/relax at target pressure sufficient?
2.) What is the difference between
command 1 : fix 1 all box/relax iso P_target vmax 0.001
and
command 2 : fix 1 all npt temp 0.0 0.0 100 iso P_initial P_target 10000
Both yield me same values of lattice parameters and density at set target pressure.
3.) For 0 K calculations, I tried the following combinations where I yield same values of density (though not consistent with reported data).
1x1x1 unit cell- fix box/relax + energy minimization : 24.23 g/cm^3
1x1x1 unit cell - fix box/relax + energy minimization+NPT : fluctuation around average value of 24.27 g/cm^3
12x12x12 unit cell (34560 atoms) - fix box/relax + energy minimization: 24.24 g/cm^3
12x12x12 unit cell - fix box/relax + energy minimization+NPT : fluctuation around average value of 24.27 g/cm^3
Hence for density calculations, can one use small supercells ?
- The obtained density (~24 g/cm^3) is twice to that of reported DFT value (12 g/cm^3). What could be the reason? Following is the section of input file:
Hi all,
Using LAMMPS, I want to reproduce the density of Fe7C3 system at high P-T reported in published articles . The obtained lattice parameter at 0GPa is close to previous results. However, I am not able to reproduce the lattice parameter and density at 300 GPa (higher pressures) which should be near 12 g/cm^3. I have following related queries.
1.) If I am only interested in lattice parameters and density at 0GPa,0K for time being, is energy minimisation with fix box/relax at target pressure sufficient?
that depends on the shape of your potential hypersurface. if you don’t have to cross any barriers (e.g. by a significant change in the structure) it should.
2.) What is the difference between
command 1 : fix 1 all box/relax iso P_target vmax 0.001
and
command 2 : fix 1 all npt temp 0.0 0.0 100 iso P_initial P_target 10000
Both yield me same values of lattice parameters and density at set target pressure.
the first is a true 0K calculation, which only considers forces (and energies). the second is effectively doing some form of simulated annealing. whether it leads to the same results depends on geometry and more specifically its initial potential energy relative to the minimum and the thermostat time constant.
3.) For 0 K calculations, I tried the following combinations where I yield same values of density (though not consistent with reported data).
1x1x1 unit cell- fix box/relax + energy minimization : 24.23 g/cm^3
1x1x1 unit cell - fix box/relax + energy minimization+NPT : fluctuation around average value of 24.27 g/cm^3
12x12x12 unit cell (34560 atoms) - fix box/relax + energy minimization: 24.24 g/cm^3
12x12x12 unit cell - fix box/relax + energy minimization+NPT : fluctuation around average value of 24.27 g/cm^3
Hence for density calculations, can one use small supercells ?
as for 1) that depends on the shape of your potential hypersurface. the larger the supercell, the more degrees of freedom you have and then you may be able to find a minimum that requires breaking the symmetry. with a smaller supercell, more symmetry is enforced by construction and thus your potential hypersurface is simplified.
- The obtained density (~24 g/cm^3) is twice to that of reported DFT value (12 g/cm^3). What could be the reason? Following is the section of input file:
impossible to say with certainty. there are not many sources of error in your input. only one item stands out: most manybody potential files are parameterized for metal units and thus must be used with that unit setting. are your files compatible with real units, which is what you are using?
axel.
Hii,
Thank you very much for clarification. It solved my issue. I changed the units from real to metal and I got the expected value of density.
This means, should we always use metal units while using meam potential or is there any way to identify to which LAMMPS unit is the potential file compatible with (as its not mentioned in the potential file)?
RegardsSharad
…
The M S University of Baroda
Gujarat, India
the units to be used have to be given where the potential files are provided.
same as with individual pair_coeff parameters (e.g for pair style lj/cut) potential parameters always depend on the choice of units. with the numbers only (like for lj/cut) you don’t see automatically from the numbers what units are used. so it is always a good idea to compare to the original publication.
many of the (manybody) potential files are in a format also used by other programs, often the original program (so the pair style in LAMMPS is either a reimplementation or an interface). historically, almost all files that are used with LAMMPS use “metal” units except for ReaxFF potential files, which use “real” units.
for the files that are bundled with LAMMPS, it would technically be possible to embed a little tag in the comment section of the file that would indicate the unit and then stop with an error, if there is a mismatch. if you feel that would be a useful feature, you could suggest it as a feature request issue at: https://github.com/lammps/lammps/issues
however, that will only apply to files that will adopt this convention and typically files that you download from other locations are not likely to have those, so it cannot be made a requirement to include this tag.
the only way in LAMMPS currently to enforce correct unit settings is when using potentials from the OpenKIM data base and the kim pair style, which is a wrapper around many different potentials, either as an independent implementation or as verified “interaction model” of specific MD codes.
axel.
Thank you very much for in-depth discussion. It really helped.
Yes, It will be a good feature to include in LAMMPS where it stops with an error if there is a mismatch between the unit used and those compatible with the potential file (atleast for potential files bundled with LAMMPS). I will post this suggestion as feature request issue at github.
Thanks
Sharad
The M S University of Baroda
Gujarat, India