Symmetry Operation

AbstractSpaceSymmetryOperation

LatticeTools.domaintypeMethod
domaintype(arg::AbstractSpaceSymmetryOperation{S}) where {S<:Real}

Domain type of arg, i.e. the type of the coordinates.

source

IdentityOperation

LatticeTools.IdentityOperationType
IdentityOperation{S<:Real} <: AbstractSpaceSymmetryOperation{S}

Represents identity (space symmetry) operation

Fields

  • dimension::Int: dimension of the space on which the identity operation acts
source

Constructors

Properties

Apply

TranslationOperation

LatticeTools.TranslationOperationType
TranslationOperation{S<:Real}

Represents translation symmetry operation

Fields

  • displacement: displacement vector

Examples

julia> using LatticeTools

julia> TranslationOperation([1, 2])
TranslationOperation{Int64}([1, 2])

julia> TranslationOperation([0.5, 0.0, 0.5])
TranslationOperation{Float64}([0.5, 0.0, 0.5])
source

Constructors

LatticeTools.TranslationOperationMethod
TranslationOperation{S}(displacement::AbstractVector{<:Real}) where {S}

Construct a translation operation of displacement on coordinate space of type S.

source
LatticeTools.TranslationOperationMethod
TranslationOperation{S}(displacement::AbstractVector{<:Real}) where {S}

Construct a translation operation of displacement on coordinate space of type S.

source
TranslationOperation(displacement::AbstractVector{S}) where {S<:Real}

Construct a translation operation of displacement on coordinate space of type S.

source

Properties

LatticeTools.isidentityMethod
isidentity(t::TranslationOperation)

Return true if the translation operation is an identity, i.e. iszero(t.displacement)

source
LatticeTools.ispointMethod
ispoint(arg::TranslationOperation)

Return true if arg is a point operation. The only way this can be true is when arg is an identity operation.

source

Apply

PointOperation

Constructors

Properties

Apply

SpaceOperation

LatticeTools.SpaceOperationType
SpaceOperation{Tp<:Real, Tt<:Real}

Represent a spatial symmetry operation of the following form:

\[S_{[M, \mathbf{R}]}: \mathbf{r} \mapsto M \cdot ( \mathbf{r} + \mathbf{R} )\]

Fields

  • matrix: Rotation matrix
  • displacement: Displacement vector
source

Constructors

LatticeTools.SpaceOperationMethod
SpaceOperation(matrix::AbstractMatrix{Tp}, displacement::AbstractVector{Tt}) where {Tp<:Real, Tt<:Real}

Construct a space operation by matrix and displacement.

source
LatticeTools.SpaceOperationMethod
SpaceOperation([point], [translation])

Construct a space operation by point and translation.

Arguments

  • point::PointOperation{Tp}
  • translation::TranslationOperation{Tt}
source

Properties

LatticeTools.isidentityMethod
isidentity(arg::SpaceOperation)

Check whether arg is identity (i.e. identity point and identity translation)

source
LatticeTools.ispointMethod
ispoint(arg::SpaceOperation)

Check whether arg is a point operation (i.e. translation is identity)

source

Apply