I’m using a triclinic box for fcc monoatomic crystal and fix box/relax command to optimize the lattice constant. As far as I understand box/relax should only be shrinking or expanding the box without changing angles. My box angles are 90 90 60 and after minimization I get 90 90 59.7 which ruins the symmetry of the crystal and I get that lattice constant in x and y dimensions are different while they have to be the same. I also monitored lx ly lz xy and found out that xy tilt stays unchanged during minimization, which means that because of changes in the lengths of box edges, angle is changing.
Is my understanding of fix box/relax wrong?
log file attached
bulk.log (5.29 KB)
As far as I understand box/relax should only be shrinking or expanding the box without changing angles.
I'm not sure this is correct. The fix npt command has relatively new
scalex (yz) options to force the box shape (angles) to be held
constant. I don't know that this has been added to fix box/relax
for energy minimization. Aidan can comment.
fix box/relax has keywords = iso or aniso or tri or etc. "tri" will
change all 6 dimensions and hence change the shape/angles. Try with
"iso" or "aniso", both will not change the shape, and per your wish of
x and y have to be the same, use "iso".
One thing I find it odd is: why are the box angles 90 90 60 for the
I got these results with ‘iso’ (though I did try both ‘iso’ and ‘aniso’, no difference), I haven’t used ‘tri’ at all. I have triclinic box with 90 90 60 because I have fcc111 orientation.
Yes, you are correct. fix_box/relax does not rescale the tilt factors with
the box dimensions. The only fixes that do this are the ones based on the
So, does this mean, there is no way to relax the lattice constant with triclinic box?
I think it would be nice if it was possible like for block boxes.
Then the only option I can see is to calculate energy as a function of lattice constant and then create atoms with the found optimal value.