I have to solve an Eigenvalue problem originating from the Electrodynamics. It is a 2-D problem with a rectangular region. More specifically, there is a hole on a rectangle made by magnetic material. This problem should be solve by the "NDEigensystem". Due to the irregular region, it can only be solved by the method "PDEDiscretization", such as Finite Element Method; however, it seems that I cannot monitor the mesh which is important to the solution accuracy. For example, I don't know how to check the mesh around the hole, where the mesh should be denser. On the contrary, in "NDSolve" there are much more commands for the mesh so one can easily check the mesh quality of the solution region.

So I would like to know is it possible to apply the meshing command such as "ToElementMesh" in "NDEigensystem" to control the mesh quality? Thank you.



Thank you for your help. It works. Additional question: For a 1D Eigenvalue problem with the interval composed of different materials, is it necessary to assign the positions of the interface points? (According to the suggestions, these contents have been posted elsewhere. Interface points of NDEigensystem)

  • 1
    $\begingroup$ Yes, that should be possible by adding Method -> {"FiniteElements", MaxCellMeasure -> r}` and other sub options. You probably won't find it in the docs NDEigensystem but somewhere in the in the Finite Element User Guide. $\endgroup$ – Henrik Schumacher Apr 16 '19 at 11:55
  • $\begingroup$ Thanks. So the docs of NDEigensystem should be improved. $\endgroup$ – Otto SturmGeschütz Apr 19 '19 at 0:23
  • $\begingroup$ @OttoSturmGeschütz, no it is documented there. I added a link, have you read that? $\endgroup$ – user21 Apr 19 '19 at 7:04
  • $\begingroup$ @OttoSturmGeschütz, it's much better to ask a new question in stead of changing an answered question. You'll attract much more people to it. $\endgroup$ – user21 Apr 19 '19 at 7:05

The documentation is your friend here. Have a look at

  • Last two details items of NDEigensytem ref page
  • First example of Options -> Method -> PDEDiscrteization of NDEigensystem ref page

Options are specified exactly the same way as for NDSolve PDEDiscretization. NDEigesystem can take an ElementMesh as a region description (exactly like NDSolve, NIntegrate). For more information on mesh generation, you could look at the documentation of ToElementMesh and / or the tutorial on ElementMesh generation (search for ElementMesh generation in the help system)

This works:

NDEigensystem[{-Laplacian[u[x, y], {x, y}], 
  DirichletCondition[u[x, y] == 0, True]}, 
 u[x, y], {x, y} \[Element] ToElementMesh[Disk[]], 6]
| improve this answer | |
  • $\begingroup$ Thank you. This code is helpful and heuristic. $\endgroup$ – Otto SturmGeschütz Apr 19 '19 at 1:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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