[lammps-users] Elastic constants

Talk to Aidan about this, he has done it, using a new version
of fix npt that does allow for non-orthog fluctuations.


I have a beta version of fix_npt that allows triclinic cell fluctuations.
These fluctuations can be used to sample the full compliance tensor.
Inverting that tensor gives the full elastic constant tensor, at a specified
fixed temperature and pressure. However, convergence of the sample average
to true expectation value is rather slow, as has been noted by others.

LAMMPS fix deform can generate finite shear strains, which should give a
good estimate of C44, provided the strain is sufficiently small. I have only
used this method for zero-temperature elastic constants. It sounds like you
are using fix deform with the erate style and fix npt. Both of these seem
wrong to me. Instead, you should use fix nvt, and fix deform mode in which
the final strain is specified, not the rate e.g.

# uxy Perturbation
variable dneg equal -\{up\}\*{ylen}
# Negative deformation
displace_box all xy delta \{dneg\} units box : \# Compute elastic constant from pressure tensor variable C66neg equal \({pxyneg}-\{pxy0\}\)/\({up})*${pfac1}