From 598dbb51ee2560150568cd0cdee5ec36150ecc49 Mon Sep 17 00:00:00 2001 From: Brandon Flores Date: Thu, 30 Nov 2023 13:47:29 -0600 Subject: [PATCH] Created independent documentation for `RealBasis`, `ReciprocalBasis`, `AbstractBasis`, and `KPoint` --- src/lattices.jl | 26 +++++++++++++++++++++++--- src/vectors.jl | 9 ++++++++- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/lattices.jl b/src/lattices.jl index 7953b856..016d6ea2 100644 --- a/src/lattices.jl +++ b/src/lattices.jl @@ -81,12 +81,32 @@ LatticeBasis{S,D}(::StaticArray) where {S,D} = _nonsquare_matrix_error() Base.show(io::IO, b::LatticeBasis) = print(io, typeof(b), '(', b.matrix, ')') +""" + RealBasis{D,T} (alias for Electrum.LatticeBasis{ByRealSpace,D,T}) + +Represents a the basis vectors of a lattice in real space, with lengths given in units of bohr. + +For more information about this type, see [`Electrum.LatticeBasis`](@ref). +""" const RealBasis = LatticeBasis{ByRealSpace} -@doc (@doc LatticeBasis) RealBasis + +""" + ReciprocalBasis{D,T} (alias for Electrum.LatticeBasis{ByRealSpace,D,T}) + +Represents a the basis vectors of a lattice in reciprocal space, with lengths given in units of +radians per bohr. + +For more information about this type, see [`Electrum.LatticeBasis`](@ref). +""" const ReciprocalBasis = LatticeBasis{ByReciprocalSpace} -@doc (@doc LatticeBasis) ReciprocalBasis + +""" + AbstractBasis{D,T} (alias for Electrum.LatticeBasis{BySpace,D,T}) + +Supertype that contains `RealBasis{D,T}` and `ReciprocalBasis{D,T}`. Code that can dispatch on +either `RealBasis` or `ReciprocalBasis` can refer to this type. +""" const AbstractBasis = LatticeBasis{<:BySpace} -@doc (@doc LatticeBasis) AbstractBasis LatticeBasis{S,D,T}(t::Tuple) where {S,D,T} = LatticeBasis{S,D,T}(SMatrix{D,D}(t)) LatticeBasis{S,D,T}(M::AbstractMatrix) where {S,D,T} = LatticeBasis{S,D,T}(SMatrix{D,D}(M)) diff --git a/src/vectors.jl b/src/vectors.jl index 18416d06..a75ac46b 100644 --- a/src/vectors.jl +++ b/src/vectors.jl @@ -25,8 +25,15 @@ struct ShiftVector{S<:BySpace,D,T<:Real} <: StaticVector{D,T} end end +""" + KPoint{D,T} (alias for ShiftVector{ByReciprocalSpace,D,T}) + +Represents a k-point, or an offset from the Γ point (origin) of reciprocal space, often used in band +structures, wavefunctions, or other electronic data. + +For more information about this type, see [`ShiftVector`](@ref). +""" const KPoint = ShiftVector{ByReciprocalSpace} -@doc (@doc ShiftVector) KPoint # Needed to resolve method ambiguities ShiftVector{S,D,T}(::StaticArray, ::Real = 1) where {S,D,T} = error("Argument must be a vector.")