Hello,
If I am not mistaken, the selective dynamics settings, as supplied to VASP in the POSCAR file, are intended to be enforced within VTST via chain.F, cf.:
"
280: ! zero out any added forces on frozen atoms
281: force = force*Free
"
To me, this seems to assume a force-"matrix" given in direct coordinates - just as the Free-"matrix", see its construction in chain.F, lines 599 - 607.
However, it is my understanding that the force-matrix supplied by VASP is actually given in cartesian coordinates. Having traced back prior manipulations to the force-"matrix" up to including its actual computation in the VASP (5.4.1.05Feb16) routine FORCE_AND_STRESS within force.F starting from line 1036, I also fail to find a (persistent) transformation to direct coordinates.
In fact, the application of selective dynamics in native VASP code (SET_SELECTED_FORCES_ZERO) is annotated with
"
1194: !-----and reset the selected force coordinates (warning: forces are
1195: ! given in cartesian, selection is made in direct coordinates!):
"
in dyna.F. This suggests the actual way to apply selective dynamics is indeed to transform the force-"matrix" to direct coordinates, zero out the corresponding components, and transform back to cartesian coordinates again.
Do I miss something here, or does this mean that the forces in calculations using selective dynamics other than freezing all coordinates of respective ions at once or simulation cells with basis vectors other than in x, y, and z directions are not properly corrected at the moment?
With kind regards
Christopher
Selective dynamics in VTST, revision 169
Moderator: moderators
Re: Selective dynamics in VTST, revision 169
Good catch, thanks Christopher!
I've changed chain.F so that the force constraints are now applied in direct coordinates.
I've changed chain.F so that the force constraints are now applied in direct coordinates.