Each geometry defined in the `PSlab` consists of several *layers*. They are assumed to be uniform along -axis
and can have any number of *objects* defined in -plane.

**class**(`Layer``epsilon`[`, mu`]`)`-
The layer class defines the single layer. The
`epsilon`parameter is a permittivity value of a bulk material of the layer and`mu`is its permeablity (which defaults to ).Here and in any geometry objects both

`epsilon`and`mu`can be defined either as a single isotropic values or as 3-element sequences with diagonal elements or permibility or permeability diagonal tensors.

The layer has the following methods:

(`addObject``obj`)- Add a new object to the layer.

(`getPWexpansion``G, geometry`)-
Compute the plane-wave coefficients of the layer.
`G`must be a sequence of wavevectors and the`geometry`is one of the abovementioned geometry objects.In practice you should not call this method yourself. It is used when necessary in the simulation.

(`__call__``width`)-
Return a tuple

whete`layer`,`width`)`layer`is the layer object itself. This method is here to allow you the neat way of adding layers to geometry as`geometry.addLayer(layer(width))`

.