Hc1[\[Kappa]1_] =
ArrayFlatten@
Table[If[Mod[(l + p), 3] == 0, \[Kappa]1 KroneckerDelta[l + 1, p],
0], {l, 1, 3 Nwg}, {p, 1, 3 Nwg}] // MatrixForm
Hc2[\[Kappa]2_] =
ArrayFlatten@
Table[If[Mod[(l + p), 3] == 0, \[Kappa]2 KroneckerDelta[l + 1, p],
0], {l, 0, 3 Nwg - 1}, {p, 0, 3 Nwg - 1}] // MatrixForm
Hc3[\[Kappa]3_] =
ArrayFlatten@
Table[If[Mod[(l + p), 3] == 0, \[Kappa]3 KroneckerDelta[l + 1, p],
0], {l, 2, 3 Nwg + 1}, {p, 2, 3 Nwg + 1}] // MatrixForm
HcFin[\[Kappa]1_, \[Kappa]2_, \[Kappa]3_] =