Hello,
I'm trying to expand the photonic bandgap model (
www.comsol.com/model/bandgap-a...ysis-of-a-photonic-crystal-798) to a slightly different structure, but since I'm new to photonic crystals, I'm struggling with this.
In the model, a square lattice is simulated, with lattice constants a1, a2 = a. The primitive cell is a square with the circular column in the centre. I want to simulate a triangular lattice. The cell changes into a parallelogram, and
![]()
. Now, if I just want to sweep from k=0 to
![]()
(M point in the Brillouin Zone), it works fine out of the box. I don't know how to proceed from here, in order to calculate the whole bandgap (Gamma -> M -> K -> Gamma). I thought I'd simply redo the initial eigenfrequency step for M point, and then move on to the k sweep. K values are defined as follows:
kk1*(k1*b1x+k2*b2x)
kk2*(k1*b1y+k2*b2y)
Where b1, b2 are reciprocal lattice vectors and kk1/k1/k2 are my parameters. For the initial eigenfrequency sweep at Gamma I set:
kk1=kk2=k1=k2=0
For the subsequent sweep kk2=1 and I'm sweeping k1=0...1.
Now, to get from M
![]()
to K
![]()
I wanted to set kk2=k1=1 for the initial eigenfrequency, but I'm getting the following error:
Singular matrix.
- Detail: There are 1 void equations (empty rows in matrix) for the variable comp1.freq1.
at coordinates: (0,0), ...
and similarly for the degrees of freedom (empty columns in matrix).
Where might this be coming from? freq1 is defined for the second study and I don't know why Study 1 would complain about it. I'm attaching the model.