(Subscript[O, h]), (Subscript[D, 4h]) irreps and decompositions

Definitions

OhRed=<|
"Irreps"->{"(Subscript[A, 1  g])","(Subscript[A, 2  g])","(Subscript[E, g])","(Subscript[T, 1  g])","(Subscript[T, 2  g])"},
"CharacterTable"->
{
{1,1,1,1,1},
{1,1,-1,-1,1},
{2,-1,0,0,2},
{3,0,-1,1,-1},
{3,0,1,-1,-1}
},
"ConjugacyClassSizes"->{1,8,6,6,3}
|>;

D4hRed=<|
"Irreps"->{"(Subscript[A, 1  g])","(Subscript[A, 2  g])","(Subscript[B, 1  g])","(Subscript[B, 2  g])","(Subscript[E, g])"},
"CharacterTable"->
{
{1,1,1,1,1},
{1,1,1,-1,-1},
{1,-1,1,1,-1},
{1,-1,1,-1,1},
{2,0,-2,0,0}
},
"ConjugacyClasses"->{"E","(Subscript[C, 4]^z)","(Subscript[C, 2])","(Subscript[C, 2]^('))(x)","(Subscript[C, 2]^(''))(xy)"},
"ConjugacyClassSizes"->{1,2,1,2,2}
|>;

Oh=<|
"Irreps"->{"(Subscript[A, 1  g])","(Subscript[A, 2  g])","(Subscript[E, g])","(Subscript[T, 1  g])","(Subscript[T, 2  g])","(Subscript[A, 1  u])","(Subscript[A, 2  u])","(Subscript[E, u])","(Subscript[T, 1  u])","(Subscript[T, 2  u])"},
"CharacterTable"->
Flatten[KroneckerProduct[
(({{1, 1}, {1, -1}})),
{
{1,1,1,1,1},
{1,1,-1,-1,1},
{2,-1,0,0,2},
{3,0,-1,1,-1},
{3,0,1,-1,-1}
}],{1}],
"ConjugacyClasses"->{"E","(Subscript[C, 3])","(Subscript[C, 2])","(Subscript[C, 4])","(Subscript[C, 2]^('))(=(Subscript[C, 4]))^2","i","(Subscript[S, 6])","(Subscript[σ, d])","(Subscript[S, 4])","(Subscript[σ, h])"},
"ConjugacyClassSizes"->{1,8,6,6,3,1,8,6,6,3}
|>;

D4h=<|
"Irreps"->{"(Subscript[A, 1  g])","(Subscript[A, 2  g])","(Subscript[B, 1  g])","(Subscript[B, 2  g])","(Subscript[E, g])","(Subscript[A, 1  u])","(Subscript[A, 2  u])","(Subscript[B, 1  u])","(Subscript[B, 2  u])","(Subscript[E, u])"},
"CharacterTable"->
Flatten[KroneckerProduct[
(({{1, 1}, {1, -1}})),
{
{1,1,1,1,1},
{1,1,1,-1,-1},
{1,-1,1,1,-1},
{1,-1,1,-1,1},
{2,0,-2,0,0}
}],{1}],
"ConjugacyClasses"->{"E","(Subscript[C, 4]^z)","(Subscript[C, 2]^z)","(Subscript[C, 2]^('))(x)","(Subscript[C, 2]^(''))(xy)","iE","(Subscript[iC, 4]^z)","(Subscript[iC, 2])","(Subscript[iC, 2]^('))(x)","(Subscript[iC, 2]^(''))(xy)"},
"ConjugacyClassSizes"->{1,2,1,2,2,1,2,1,2,2}
|>;

DecomposeToIrreps[G_Association,char__]:=Module[{multi},
multi=Table[(1/(Total[G["ConjugacyClassSizes"]]))(G["ConjugacyClassSizes"]G["CharacterTable"][[i]]).char,{i,Length[G["CharacterTable"]]}];

multi=DeleteCases[multi G["Irreps"],0];

If[Length[multi]>1,multi/.List->CirclePlus,multi[[1]]]
]

Character Tables

TableForm[Oh["CharacterTable"],TableHeadings->{Oh["Irreps"],Oh["ConjugacyClasses"]},TableAlignments->Right]

TableForm[D4h["CharacterTable"],TableHeadings->{D4h["Irreps"],D4h["ConjugacyClasses"]},TableAlignments->Right]

Applications

χO3[l_,θ_]:=ChebyshevU[2l,Cos[θ/2]](*:=((Sin[(l+(1/2))θ])/(Sin[(1/2)θ]))*)
χO3Red[l_]:=χO3[l,#]&/@{0,2π/3,π,π/2,π}
χO3Full[l_]:=Flatten[KroneckerProduct[{1,(((-1))^l)},χO3Red[l]],1]
χ[name_,G_:Oh]:=G["CharacterTable"][[Position[G["Irreps"],name][[1,1]]]]

l=1;
χO3Red[l]
χO3Full[l]
DecomposeToIrreps[Oh,χO3Full[l]]

l=2;
χO3Red[l]
χO3Full[l]
DecomposeToIrreps[Oh,χO3Full[l]]

l=3;
χO3Red[l]
χO3Full[l]
DecomposeToIrreps[Oh,χO3Full[l]]

l=4;
χO3Red[l]
χO3Full[l]
DecomposeToIrreps[Oh,χO3Full[l]]

D4h["ConjugacyClasses"]

(*xyz*)
DecomposeToIrreps[D4h,{1,-1,1,1,-1,-1,1,-1,-1,1}]

(*x3,y3,z3*)
DecomposeToIrreps[D4h,{3,1,-1,-1,-1,-3,-1,1,1,1}]

(*x(y^2-z^2) etc.*)
DecomposeToIrreps[D4h,{3,-1,-1,-1,1,-3,1,1,1,-1}]

Superconductivity Order Parameter

D4=<|
"Irreps"->{"(Subscript[A, 1])","(Subscript[A, 2])","(Subscript[B, 1])","(Subscript[B, 2])","E"},
"CharacterTable"->
{
{1,1,1,1,1},
{1,1,1,-1,-1},
{1,-1,1,1,-1},
{1,-1,1,-1,1},
{2,0,-2,0,0}
},
"ConjugacyClasses"->{"E","(Subscript[C, 4])","(Subscript[C, 2]^z)","(Subscript[C, 2]^('))","(Subscript[C, 2]^(''))"},
"ConjugacyClassSizes"->{1,2,1,2,2}
|>;

1st neighbor

(*Matrix rep in the basis {(e^(Subscript[ik, x])),(e^(Subscript[ik, y])),(e^(-(Subscript[ik, x]))),(e^(-(Subscript[ik, y])))}*)
NNBasis={(E^(I (Subscript[k, x]))),(E^(I (Subscript[k, y]))),(E^(-I (Subscript[k, x]))),(E^(-I (Subscript[k, y])))};
D4gens={
(*(Subscript[C, 4])*)(({{0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}, {1, 0, 0, 0}})),
(*(Subscript[σ, x])=(Subscript[C, 2]^('))*)(({{0, 0, 1, 0}, {0, 1, 0, 0}, {1, 0, 0, 0}, {0, 0, 0, 1}}))
};
MatrixForm/@(D4mats=Flatten[Table[MatrixPower[D4gens[[1]],i].MatrixPower[D4gens[[2]],j],{i,0,3},{j,0,1}],1])

D4matClasses={"E","(Subscript[C, 2]^('))","(Subscript[C, 4])","(Subscript[C, 2]^(''))","(Subscript[C, 2]^z)","(Subscript[C, 2]^('))","(Subscript[C, 4])","(Subscript[C, 2]^(''))"};

projectorD4[irrep_]:=Module[{repind},
repind=Position[D4["Irreps"],irrep][[1,1]];
((D4["CharacterTable"][[repind,1]])/8)(∑_(i=1)^8)D4["CharacterTable"][[repind,Position[D4["ConjugacyClasses"],D4matClasses[[i]]][[1,1]]]]D4mats[[i]]
]

projectors={PA1,PA2,PB1,PB2,PE}=projectorD4/@D4["Irreps"];

TableForm[{MatrixForm/@projectors},TableHeadings->{None,D4["Irreps"]}]

#.#==#&/@projectors

Eigensystem[PA1]

Normalize[{1,1,1,1}].NNBasis//ExpToTrig

Eigensystem[PB1]

Normalize[-{-1,1,-1,1}].NNBasis//ExpToTrig

Eigensystem[PE]

Normalize[{0,-1,0,1}].NNBasis//ExpToTrig
Normalize[{-1,0,1,0}].NNBasis//ExpToTrig

DensityPlot[Cos[kx]+Cos[ky],{kx,-π,π},{ky,-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black]]

DensityPlot[Cos[kx]-Cos[ky],{kx,-π,π},{ky,-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black]]

DensityPlot[Sin[kx],{kx,-π,π},{ky,-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black]]

2nd neighbor

(*Matrix rep in the basis {(e^(Subscript[ik, x])),(e^(Subscript[ik, y])),(e^(-(Subscript[ik, x]))),(e^(-(Subscript[ik, y])))}*)
NNNBasis={(E^(I ((Subscript[k, x])+(Subscript[k, y])))),(E^(I ((Subscript[k, x])-(Subscript[k, y])))),(E^(-I ((Subscript[k, x])+(Subscript[k, y])))),(E^(-I ((Subscript[k, x])-(Subscript[k, y]))))};
D4gens={
(*(Subscript[C, 4])*)(({{0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}, {1, 0, 0, 0}})),
(*(Subscript[σ, x])=(Subscript[C, 2]^('))*)(({{0, 1, 0, 0}, {1, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 1, 0}}))
};
MatrixForm/@(D4mats=Flatten[Table[MatrixPower[D4gens[[1]],i].MatrixPower[D4gens[[2]],j],{i,0,3},{j,0,1}],1])

D4matClasses={"E","(Subscript[C, 2]^('))","(Subscript[C, 4])","(Subscript[C, 2]^(''))","(Subscript[C, 2]^z)","(Subscript[C, 2]^('))","(Subscript[C, 4])","(Subscript[C, 2]^(''))"};

projectorD4[irrep_]:=Module[{repind},
repind=Position[D4["Irreps"],irrep][[1,1]];
((D4["CharacterTable"][[repind,1]])/8)(∑_(i=1)^8)D4["CharacterTable"][[repind,Position[D4["ConjugacyClasses"],D4matClasses[[i]]][[1,1]]]]D4mats[[i]]
]

projectors={PA1,PA2,PB1,PB2,PE}=projectorD4/@D4["Irreps"];

TableForm[{MatrixForm/@projectors},TableHeadings->{None,D4["Irreps"]}]

#.#==#&/@projectors

Eigensystem[PA1]

Normalize[{1,1,1,1}].NNNBasis//ExpToTrig//Simplify

Eigensystem[PB2]

Normalize[-{-1,1,-1,1}].NNNBasis//ExpToTrig//Simplify

Eigensystem[PE]

Normalize[{0,-1,0,1}].NNNBasis//ExpToTrig
Normalize[{-1,0,1,0}].NNNBasis//ExpToTrig

DensityPlot[Cos[kx]Cos[ky],{kx,-π,π},{ky,-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black]]

DensityPlot[Sin[kx]Sin[ky],{kx,-π,π},{ky,-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black]]

DensityPlot[Sin[kx+ky],{kx,-π,π},{ky,-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black]]

DensityPlot[Sin[kx-ky],{kx,-π,π},{ky,-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black]]

4th neighbor

NNNNNBasis={(E^(I (2(Subscript[k, x])+(Subscript[k, y])))),(E^(I ((Subscript[k, x])+2(Subscript[k, y])))),(E^(I (2(Subscript[k, x])-(Subscript[k, y])))),(E^(I ((Subscript[k, x])-2(Subscript[k, y])))),(E^(-I (2(Subscript[k, x])+(Subscript[k, y])))),(E^(-I ((Subscript[k, x])+2(Subscript[k, y])))),(E^(-I (2(Subscript[k, x])-(Subscript[k, y])))),(E^(-I ((Subscript[k, x])-2(Subscript[k, y]))))};
D4gens={
(*(Subscript[C, 4])*)(({{0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 1, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}})),
(*(Subscript[σ, x])=(Subscript[C, 2]^('))*)(({{0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0}}))
};
MatrixForm/@(D4mats=Flatten[Table[MatrixPower[D4gens[[1]],i].MatrixPower[D4gens[[2]],j],{i,0,3},{j,0,1}],1])

D4matClasses={"E","(Subscript[C, 2]^('))","(Subscript[C, 4])","(Subscript[C, 2]^(''))","(Subscript[C, 2]^z)","(Subscript[C, 2]^('))","(Subscript[C, 4])","(Subscript[C, 2]^(''))"};

projectorD4[irrep_]:=Module[{repind},
repind=Position[D4["Irreps"],irrep][[1,1]];
((D4["CharacterTable"][[repind,1]])/8)(∑_(i=1)^8)D4["CharacterTable"][[repind,Position[D4["ConjugacyClasses"],D4matClasses[[i]]][[1,1]]]]D4mats[[i]]
]

projectors={PA1,PA2,PB1,PB2,PE}=projectorD4/@D4["Irreps"];

TableForm[{MatrixForm/@projectors},TableHeadings->{None,D4["Irreps"]}]

#.#==#&/@projectors

Eigensystem[PA1]

Normalize[{1,1,1,1,1,1,1,1}].NNNNNBasis//ExpToTrig//Simplify

Eigensystem[PA2]

Normalize[{1,-1,-1,1,1,-1,-1,1}].NNNNNBasis//ExpToTrig//Simplify

Eigensystem[PB1]

Normalize[{-1,1,-1,1,-1,1,-1,1}].NNNNNBasis//ExpToTrig//Simplify

Eigensystem[PB2]

Normalize[{-1,-1,1,1,-1,-1,1,1}].NNNNNBasis//ExpToTrig//Simplify

Eigensystem[PE]

Normalize[{0,0,0,-1,0,0,0,1}].NNNNNBasis//ExpToTrig//Simplify
Normalize[{0,0,-1,0,0,0,1,0}].NNNNNBasis//ExpToTrig//Simplify

Normalize[{0,-1,0,0,0,1,0,0}].NNNNNBasis//ExpToTrig//Simplify
Normalize[{-1,0,0,0,1,0,0,0}].NNNNNBasis//ExpToTrig//Simplify

DensityPlot[((Cos[(Subscript[k, x])-2 (Subscript[k, y])]+Cos[2 (Subscript[k, x])-(Subscript[k, y])]+Cos[2 (Subscript[k, x])+(Subscript[k, y])]+Cos[(Subscript[k, x])+2 (Subscript[k, y])])/(Sqrt[2])),{(Subscript[k, x]),-π,π},{(Subscript[k, y]),-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black]]

DensityPlot[(-Cos[(Subscript[k, x])]+Cos[(Subscript[k, y])]) Sin[(Subscript[k, x])] Sin[(Subscript[k, y])],{(Subscript[k, x]),-π,π},{(Subscript[k, y]),-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black],PlotPoints->150]

DensityPlot[(-((Cos[(Subscript[k, x])])^2) Cos[(Subscript[k, y])]+Cos[(Subscript[k, x])] Cos[2 (Subscript[k, y])]+Cos[(Subscript[k, y])] ((Sin[(Subscript[k, x])])^2)),{(Subscript[k, x]),-π,π},{(Subscript[k, y]),-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black],PlotPoints->150]

DensityPlot[(Cos[(Subscript[k, x])]+Cos[(Subscript[k, y])]) Sin[(Subscript[k, x])] Sin[(Subscript[k, y])],{(Subscript[k, x]),-π,π},{(Subscript[k, y]),-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black],PlotPoints->150]

DensityPlot[ Sin[(Subscript[k, x])-2 (Subscript[k, y])],{(Subscript[k, x]),-π,π},{(Subscript[k, y]),-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black],PlotPoints->150]

DensityPlot[ Sin[2(Subscript[k, x])- (Subscript[k, y])],{(Subscript[k, x]),-π,π},{(Subscript[k, y]),-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black],PlotPoints->150]

DensityPlot[ Sin[(Subscript[k, x])+2 (Subscript[k, y])],{(Subscript[k, x]),-π,π},{(Subscript[k, y]),-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black],PlotPoints->150]

DensityPlot[ Sin[2(Subscript[k, x])+ (Subscript[k, y])],{(Subscript[k, x]),-π,π},{(Subscript[k, y]),-π,π},MeshFunctions->{#3&,#3&},Mesh->{{0},{0}},MeshStyle->Opacity[0.5,Black],PlotPoints->150]