pythtb.TBModel.make_supercell#
- TBModel.make_supercell(sc_red_lat, return_sc_vectors=False, to_home=True)[source]#
Make model on a super-cell.
Constructs a
pythtb.TBModelrepresenting a super-cell of the current object. This function can be used together withcut_piece()in order to create slabs with arbitrary surfaces.By default all orbitals will be shifted to the home cell after unit cell has been created. That way all orbitals will have reduced coordinates between 0 and 1. If you wish to avoid this behavior, you need to set, to_home argument to False.
Removed in version 2.0.0: Parameter to_home_supress_warning has been removed.
- Parameters:
- sc_red_latarray-like
Super-cell lattice vectors in terms of reduced coordinates of the original tight-binding model. Shape must be
(dim_r, dim_r). First index in the array specifies super-cell vector, while second index specifies coordinate of that super-cell vector.If dim_k < dim_r then still need to specify full array with size
(dim_r, dim_r)for consistency, but non-periodic directions must have 0 on off-diagonal elements and 1 on diagonal.- return_sc_vectorsbool, optional
Default value is
False. IfTruereturns also lattice vectors inside the super-cell. Internally, super-cell tight-binding model will have orbitals repeated in the same order in which these super-cell vectors are given, but if argument to_home is setTrue(which it is by default) then additionally, orbitals will be shifted to the home cell.- to_homebool, optional
Default value is
True. IfTruewill shift all orbitals to the home cell along periodic directions.
- Returns:
- sc_tb
pythtb.TBModel Tight-binding model in a super-cell.
- sc_vectors
numpy.ndarray, optional Super-cell vectors, returned only if return_sc_vectors is set to
True(default value isFalse).
- sc_tb
Notes
The super-cell is constructed by repeating the original unit cell according to the specified super-cell lattice vectors. The resulting model will have a larger Brillouin zone and may exhibit different electronic properties compared to the original model.
Examples
Create super-cell out of 2d tight-binding model
tb>>> sc_tb = tb.make_supercell([[2, 1], [-1, 2]])