The aim of this project is to study the following eigenvalue problem:

Find $\omega \in \mathbb{R}, ~ \omega \neq 0$, and $\mathbf{u} \in \mathbf{H}_0(\mbox{curl}, \Omega), ~ \mathbf{u} \neq \mathbf{0}$, such that

$
\begin{equation}
  \left( \mbox{curl} ~ \mathbf{u},  \mbox{curl}~ \mathbf{v} \right) = \omega^2 \left( \mathbf{u}, \mathbf{v} \right), \quad \forall ~ \mathbf{v} \in \mathbf{H}_0(\mbox{curl}, \Omega)  
  \label{eq:weak-form}
\end{equation}
$


We shall restrict our study to the 2D case and will be interested in two geometries:

1. First we will consider the square $(0, 1)^2$, 
2. Then we study the eigenvalues problem on an L-shape domain, using a $C^1$ description, as shown in the next plot.





## Questions

### Part I

The computational domain considered here is the square $(0, 1)^2$.

1. Show that the eigenvalues are given by $\omega^2 = \pi^2 ( m^2 + n^2 )$ for $m,n \in \mathbb{N}$ and their corresponding eigenfunctions are 

$
\mathbf{u} = 
\begin{pmatrix}
-n \cos (m x) \sin(n y) \\
 m \sin (m x) \cos(n y)
\end{pmatrix}
$

2. Write the matrix form associated to the eigenvalue problem.

3. The file **maxwell_eigen_exam_1.py** is an implementation of the eigenvalue problem on the unit square. There are two functions to be implemented:

    * **apply_bc**: the provided implementation uses all the B-Splines in the FEM space. We need to filter the assembled matrices in order to apply the associated boundary condition for $\mathbf{H}_0(\mbox{curl}, \Omega)$
    * **exact_eigen**: since the exact eigenvalues are infinite, we need to extract a set to compare our results with. This set is related the dimension of the discrete space.
    
4. Solve numericaly the eigenvalue problem and show the results for different degrees.

5. Show the number of zeros in each of the previous simulations and compare it to the dimension of the kernel of the curl operator.

6. (optional) Prove the previous result for a simply connected domain.

Note: We will restrict our study to small grids (<= 32 x 32), otherwise the computations will take time.

### Part II

We are now interested in introduction the mapping, and we will modify our code to solve the eigenvalue problem first on the square $(0, \pi)^2$. 
We will be using the file **maxwell_eigen_exam_2.py** in addition to the functions **apply_bc** and **exact_eigen**.

1. Add the appropriate statements for the preseving transformations. Note that in the function **assemble_matrices**, the computations are given on the logical domain. 

2. In order to validate the computations, use a square of length $\pi$ by calling

```python
mapping = create_mapping(V, kind='square', length=np.pi)
```

What are the exact eigenvalues in this case?

3. Add the L-Shape surface to **create_mapping** and compute the numerical eigenvalues for different grids and degrees. 
For benchmarks, check the following [reference list](https://perso.univ-rennes1.fr/monique.dauge/benchmax.html)


### Part III (optional)

1. Change the implementations of the mappings so that we only have a $C^0$ continuity at a given knot. What do you observe?
2. Show the evolution of the relative error and give the convergence order for the mode $(3,3)$ using different mappings and regularities.


```python

```

49609d2b61e50f92bbf0950727551ab7b87a7ee8
ipynb
Jupyter Notebook
fem/projects/Eigenvalues_problem_for_Maxwell_equations.ipynb
ratnania/MA5938
c302cc419b4b422bbb66bbb886b8d5a705b8be90
MIT
2019-04-19T23:04:12.000Z
2022-01-14T00:18:28.000Z
fem/projects/Eigenvalues_problem_for_Maxwell_equations.ipynb
ratnania/MA5938
c302cc419b4b422bbb66bbb886b8d5a705b8be90
MIT
fem/projects/Eigenvalues_problem_for_Maxwell_equations.ipynb
ratnania/MA5938
c302cc419b4b422bbb66bbb886b8d5a705b8be90
MIT
2019-10-12T12:45:55.000Z
2020-09-11T22:33:12.000Z
Qwen/Qwen-72B
1. YES
2. YES