0
$\begingroup$

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!

$\endgroup$

1 Answer 1

1
$\begingroup$

Use

Element[{x, y}, Rectangle[{0, -200}, {5, 200}]]
$\endgroup$
1
  • $\begingroup$ Oh! After checking the documentation on rectangle, I made a crucial mistake! Thank you so much. $\endgroup$
    – Laplacian
    Mar 17, 2021 at 14:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.