2
$\begingroup$

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.

===========================================================================

EDIT

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)

$\endgroup$
4
  • 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$ Apr 16, 2019 at 11:55
  • $\begingroup$ Thanks. So the docs of NDEigensystem should be improved. $\endgroup$ Apr 19, 2019 at 0:23
  • $\begingroup$ @OttoSturmGeschütz, no it is documented there. I added a link, have you read that? $\endgroup$
    – user21
    Apr 19, 2019 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, 2019 at 7:05

1 Answer 1

4
$\begingroup$

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:

Needs["NDSolve`FEM`"]
NDEigensystem[{-Laplacian[u[x, y], {x, y}], 
  DirichletCondition[u[x, y] == 0, True]}, 
 u[x, y], {x, y} \[Element] ToElementMesh[Disk[]], 6]
$\endgroup$
1
  • $\begingroup$ Thank you. This code is helpful and heuristic. $\endgroup$ Apr 19, 2019 at 1:33

Your Answer

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

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