0

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:

  1. 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]}.

  2. Before trying this code, I used psi[j][x,y] instead of psij[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!

user21
  • 39,710
  • 8
  • 110
  • 167
Laplacian
  • 1,053
  • 3
  • 8

1 Answers1

1

Use

Element[{x, y}, Rectangle[{0, -200}, {5, 200}]]
user21
  • 39,710
  • 8
  • 110
  • 167