Point group 4mm (C₄ᵥ)

Preamble

using LatticeTools
using Formatting: printfmt

function display_matrix(io::IO, matrix::AbstractMatrix; prefix::AbstractString="")
    width = ceil(Int, maximum(length("$item")+1 for item in matrix)/4)*4
    for row in eachrow(matrix)
        for (icol, col) in enumerate(row)
            icol == 1 && print(io, prefix)
            printfmt(io, "{:>$(width)s}", "$col")
        end
        println(io)
    end
end
display_matrix (generic function with 1 method)

Irreps of 4mm

point_symmetry = project(PointSymmetryDatabase.get(13), [1 0 0; 0 1 0])
println("symmetry: ", point_symmetry.hermann_mauguin)
println("order: ", group_order(point_symmetry))
println("irreducible_representations:")
for irrep_index in 1:num_irreps(point_symmetry)
    println("- name: GM($irrep_index)")
    println("  elements:")
    for (ename, mat) in zip(element_names(point_symmetry), irrep(point_symmetry, irrep_index))
        println("  - name: \"$ename\"")
        m = Int.(real.(mat))
        if size(m, 1) == 1
            println("    matrix: $(first(m))")
        else
            println("    matrix: |-")
            display_matrix(stdout, m; prefix="      ")
        end
    end
end
symmetry: 4mm
order: 8
irreducible_representations:
- name: GM(1)
  elements:
  - name: "1"
    matrix: 1
  - name: "2<sub>001</sub>"
    matrix: 1
  - name: "4<sup>+</sup><sub>001</sub>"
    matrix: 1
  - name: "4<sup>-</sup><sub>001</sub>"
    matrix: 1
  - name: "m<sub>010</sub>"
    matrix: 1
  - name: "m<sub>100</sub>"
    matrix: 1
  - name: "m<sub>110</sub>"
    matrix: 1
  - name: "m<sub>1-10</sub>"
    matrix: 1
- name: GM(2)
  elements:
  - name: "1"
    matrix: 1
  - name: "2<sub>001</sub>"
    matrix: 1
  - name: "4<sup>+</sup><sub>001</sub>"
    matrix: -1
  - name: "4<sup>-</sup><sub>001</sub>"
    matrix: -1
  - name: "m<sub>010</sub>"
    matrix: 1
  - name: "m<sub>100</sub>"
    matrix: 1
  - name: "m<sub>110</sub>"
    matrix: -1
  - name: "m<sub>1-10</sub>"
    matrix: -1
- name: GM(3)
  elements:
  - name: "1"
    matrix: 1
  - name: "2<sub>001</sub>"
    matrix: 1
  - name: "4<sup>+</sup><sub>001</sub>"
    matrix: -1
  - name: "4<sup>-</sup><sub>001</sub>"
    matrix: -1
  - name: "m<sub>010</sub>"
    matrix: -1
  - name: "m<sub>100</sub>"
    matrix: -1
  - name: "m<sub>110</sub>"
    matrix: 1
  - name: "m<sub>1-10</sub>"
    matrix: 1
- name: GM(4)
  elements:
  - name: "1"
    matrix: 1
  - name: "2<sub>001</sub>"
    matrix: 1
  - name: "4<sup>+</sup><sub>001</sub>"
    matrix: 1
  - name: "4<sup>-</sup><sub>001</sub>"
    matrix: 1
  - name: "m<sub>010</sub>"
    matrix: -1
  - name: "m<sub>100</sub>"
    matrix: -1
  - name: "m<sub>110</sub>"
    matrix: -1
  - name: "m<sub>1-10</sub>"
    matrix: -1
- name: GM(5)
  elements:
  - name: "1"
    matrix: |-
         1   0
         0   1
  - name: "2<sub>001</sub>"
    matrix: |-
        -1   0
         0  -1
  - name: "4<sup>+</sup><sub>001</sub>"
    matrix: |-
         0  -1
         1   0
  - name: "4<sup>-</sup><sub>001</sub>"
    matrix: |-
         0   1
        -1   0
  - name: "m<sub>010</sub>"
    matrix: |-
         0   1
         1   0
  - name: "m<sub>100</sub>"
    matrix: |-
         0  -1
        -1   0
  - name: "m<sub>110</sub>"
    matrix: |-
         1   0
         0  -1
  - name: "m<sub>1-10</sub>"
    matrix: |-
        -1   0
         0   1

This page was generated using Literate.jl.