


changes lattice vectors while keeping atoms
{T} = NEWCELL(obj, bvect, {bshift})
The function defines new unit cell using the 3 vectors contained in
bvect. The three vectors in lattice units define a parallelepiped. This
will be the new unit cell. The atoms from the original unit cell will
fill the new unit cell.
Input:
obj sw class object.
bvect Defines the new lattice vectors in the original lattice
coordinate system. Cell with the following elements
{v1 v2 v3}.
bshift Vector defines a shift of the position of the unit cell.
Optional.
There might be problem, if there are atoms on the faces and corners of
the new lattice (due to numerical error). In this case use small bshift
to move the atoms.
Output:
T is a transformation matrix that converts Q points (in reciprocal
lattice units) from the old reciprocal lattice to the new
reciprocal lattice as follows:
Qrlu_new = T * Qrlu_old,
where the dimensions of the Q vectors are [1 3].
Example:
tri = sw;
tri.genlattice('lat_const',[3 3 5],'angled',[90 90 120])
tri.addatom('r',[0 0 0])
tri.newcell({[1 0 0] [1 2 0] [0 0 1]})
plot(tri)
The example show how to convert a triangular lattice into orthogonal
lattice vectors and plots the new unit cell.
See also SW.GENLATTICE, SW.GENCOUPLING, SW.NOSYM.