All the geometry types are derived from the abstract class Geometry and provide the following methods:
Add a new layer to the geometry setting its width. The layer(widht) is the recommended way
of specyfing the parameters as is the most clear and flexible. You may hovever call the method the following
It is recommenced to add the same layer several times when they repeat in the structure.
This can reduce the computation time significantly. Note that this must be exactly the same object.
Even if you create two different objects even with the same parameters, all the necessary calculation will
be repeated for them separatelly.
Clear the stack. That layers are deleted if no other variable references them.
Generate the list of unique layers, list of indices of layers in the stack and their heights.
You usually don't need to call this method individually. This is used when providing the data for the program.
Set the matching interface after the last layer or at the position denoted by where.
The position of the matching interface.
- The smoothing parameter for the goemetry. In order to improve the convergence of the solution the
material permittivity and permeability profile is covoluted with Gaussian function. The smooth
is the half-width of the Gaussian function. It's value have to be chosen experimentically -- the larger
it is the more convergent plane-wave expansion you get but at the same time, the less sharp edges of
the objects become.
The following classes can be instantiated:
The simple Cartesian 2D geometry. When you use this class you assume that the electromagnetic field has
analytical form along -axis which is
being any of the field components. The computational domain of each layer has one dimension of
the length given by L.
The only possible object in this geometry is the Rectangle.
||A1, A2[, symmetry])|
The most general three-dimensional Cartesian geometry. A1 and A2 are the 2D vectors defining
the computational domain. They should be tuples of two numbers, usually of the form
(0,a2). Alternatively you can specify both A1 and A2 as single numbers in which
case the computational domain is assumed to be rectangle of the size
You can define Cylinder and Cuboid for this geometry.
The optional argument symmetry defines whether the structure and electromagnetic field has inversion symmetry
in the plane perpendicular to one or both lattice vectors. In the former case set symmetry to the simple symmetry
definition (see below) and in the latter to the tuple
(symmetry1, symmetry2), where symmetry1 and
symmetry2 are symmetry definitions along and axes respectively.
In each case symmetry definition is either 'HE' or 'EH'. The former means that the and
componenst are symmetric and and antisymmetric and the latter is just an opposite.