1D FEM Mode Solver¶
1D Mesh¶
1D FEM mesh are created by the python subroutine objects.make_mesh() and passed directly into the fortran routine ‘py_calc_modes.f’. The only parameter that influences this process is ‘lc_bkg’, where 1 / lc_bkg is the number of FEM elements that the unit cell is divided into.
For a single inclusion the mesh is simply:
| period |
|--------------------| 1 |--------------------|
where the inclusion has ‘diameter1’ as is made of material ‘inclusion_a’.
For a grating with 2 inclusions in the unit cell the spacing between the surfaces of the inclusions is set with the ‘small_space’ parameter.:
| period |
| small_space |
|2|----------------| 1 |--------------| 2 |
Inclusion1 will always be centered and of material ‘inclusion_a’, while all higher order inclusions are made of material ‘inclusion_b’.
For unit cells that contain 3 or more inclusions there are 2 implemented spacing options. By default ‘edge_spacing = False’ and the centers of all inclusions are equally spaced, with inclusion1 centered in the middle of the unit cell.
| | equally | seperated | |
|--| 2 |------| 1 |---------| 3 |-----|
The alternative is to space the inclusions with equal distances between their surfaces. This is selected with the keyword argument ‘edge_spacing = True’:
| | |equally | |seperat-| | ed |
|--| 2 |--------| 1 |--------| 3 |------|
EMUstack can at present create mesh with up to 6 inclusions. It is straightforward to extended this.