Re: [Spglib-users] symmetrizing positions/cell vectors without altering cell?
Brought to you by:
atztogo
From: Noam B. <noa...@nr...> - 2017-12-15 18:04:13
|
> On Dec 14, 2017, at 7:31 PM, Atsushi Togo <atz...@gm...> wrote: > > No. > > Cell vectors follow the crystallographic point group (multiplied with > translation group). But if I remember correctly, simple application of > these symmetry operations similarly to the points of atoms didn't work > well. So my strategy is that using the constraints of Bravais lattice > for angles and equivalent basis vector lengths to symmetrize the basis > vectors. For distorted basis vectors, it's not uniquely defined the > directions of basis vectors in Cartesian coordinates, I employed a > strategy to align those basis vectors to the Cartesian axes as shown > in the spglib documentation. If you want to rotate basis vectors to be > along some directions, you can do rotate back afterwards using the > rotation matrix calculated from the initial and final basis vectors > and the transformation matrix given from spglib. In summary, to > symmetrize basis vectors, there is large freedom to make it, and it > can be dependent on users' will, so I don't want to provide a function > that does too much. That sounds reasonable, except that I can’t figure out how to decompose the transformation from my original vectors to the symmetrized vectors into a supercell+deformation part and a rotation. standardize_cell just returns a set of final lattice vectors. Is that separation already someplace in the code, or do I need to decompose the transformation matrix myself somehow? Noam |