I am trying to obtain the eigenvalue of a certain $4\times 4$ matrix differential operator. The region I consider is a rectangle of size $5\times 200$. At left and right side, I applied the periodic boundary condition. At top and bottom side, I applied the Dirichlet boundary condition.
The following is the code that does not evaluate (it returns the exactly same input that I typed):
NDEigensystem[{{3*psi3[x, y] - 10*psi2[x, y]*Sign[y] - Derivative[0, 1][psi2][x, y] - I*Derivative[1, 0][psi2][x, y],
3*psi4[x, y] - 10*psi1[x, y]*Sign[y] + Derivative[0, 1][psi1][x, y] - I*Derivative[1, 0][psi1][x, y],
3*psi1[x, y] + 10*psi4[x, y]*Sign[y] - Derivative[0, 1][psi4][x, y] - I*Derivative[1, 0][psi4][x, y],
3*psi2[x, y] + 10*psi3[x, y]*Sign[y] + Derivative[0, 1][psi3][x, y] - I*Derivative[1, 0][psi3][x, y]},
PeriodicBoundaryCondition[psi1[x, y], x == 0, TransformationFunction[{{1, 0, 5}, {0, 1, 0}, {0, 0, 1}}]],
PeriodicBoundaryCondition[psi2[x, y], x == 0, TransformationFunction[{{1, 0, 5}, {0, 1, 0}, {0, 0, 1}}]],
PeriodicBoundaryCondition[psi3[x, y], x == 0, TransformationFunction[{{1, 0, 5}, {0, 1, 0}, {0, 0, 1}}]],
PeriodicBoundaryCondition[psi4[x, y], x == 0, TransformationFunction[{{1, 0, 5}, {0, 1, 0}, {0, 0, 1}}]],
DirichletCondition[psi1[x, y] == 0, 0 < x < 5 && (y == 200 || y == -200)], DirichletCondition[psi2[x, y] == 0, 0 < x < 5 && (y == 200 || y == -200)],
DirichletCondition[psi3[x, y] == 0, 0 < x < 5 && (y == 200 || y == -200)], DirichletCondition[psi4[x, y] == 0, 0 < x < 5 && (y == 200 || y == -200)]},
{psi1[x, y], psi2[x, y], psi3[x, y], psi4[x, y]},
Element[{x, y}, Rectangle[{0, 5}, {-200, 200}]], 4]
Remarks:
The differential operator is the form $$h_x \partial_x + h_y \partial_y + h_0(x,y),$$ where $h_x, h_y, h_0(x,y)$ are $4\times 4$ matrices. The dependent variable is denoted as
{psi1[x,y], psi2[x,y], psi3[x,y], psi4[x,y]}.Before trying this code, I used
psi[j][x,y]instead ofpsij[x,y], for $j=1,\ldots 4$. However, that gave me an error message:
NDEigensystem::baddep: The dependent variables specification ({psi[1], psi[2], psi[3], psi[4]}) does not match the differential operator dependent variables.
I searched this site and figure out a helpful post, which has the exact same problem: Unable to use indexed variables with NDEigensystem
After that, I changed psi[j][x,y] instead of psij[x,y], but now the code does not evaluate!