HopTB.Group
HopTB.Group.Symmetry — TypeSymmetry(rotation_matrix, translation, spin_rep;
isantilinear::Bool=false, isdouble::Bool=false)Type representing symmetries. The symmetry is a magnetic space group symmetry, i.e., symmetry containing rotation, reflection, inversion, translation and time reversal. The defining feature for magnetic space group symmetry is its represention in real space (rotation_matrix and translation, where translation operation follows the the action of rotation_matrix) and its representation in spinors. The symmetry may belong to a double group (isdouble=true) or not (isdouble=false). If the symmetry does not belong to a double group, it is only relevant for spinless fermions and the spin_rep information is not used at all. The symmetry may be antilinear denoted by the keyword isantilinear.
HopTB.Group.inverse — Functioninverse(s::Symmetry)Get inverse symmetry operation for s.
HopTB.Group.gettranslation — Functiongettranslation(v::Vector{<:Real}; isdouble::Bool=false)get translation along v.
HopTB.Group.getrotation — Functiongetrotation(θ::Real, axis::Vector{<:Real}; isdouble::Bool=false)get θ rotation around the axis.
HopTB.Group.getTRS — FunctiongetTRS(; isdouble::Bool=false)get time reversal symmetry.
HopTB.Group.getmirror — Functiongetmirror(axis::Vector{<:Real}; isdouble::Bool=false) -> Symmetry
get mirror symmetry along `axis`.HopTB.Group.decompose_to_primitive — Functiondecompose_to_primitive(s::Symmetry)Every magnetic space group symmetry can be decomposed into a canonical representation, i.e., ĒtICT, where T is time reversal, C is rotation, I is inversion, t is translation and Ē is 2π rotation. This function decomposes the symmetry to these atomic actions. This function always treats the symmetry as a double group symmetry.
The returned named tuple are in the following format
(TRS::Bool, inversion::Bool, translation::Vector{Float64}, θ::Float64,
axis::Vector{Float64}, Ē::Bool)HopTB.Group.generategroup — Functiongenerategroup(symmetries::Vector{Symmetry}; maxiter=100)::Vector{Symmetry}generate a group with generators symmetries.
HopTB.Group.symmetrize — Functionsymmetrize(tm::TBModel, g::Vector{Symmetry})Symmetrize tm by the symmetry group g.
HopTB.Group.get_bloch_rep — Functionget_bloch_rep(s::Symmetry, tm::TBModel, orbital_types::Vector{Vector{Int64}},
k::Vector{<:Real}; isspinful::Bool=false)