How to load a crystal from the Zoo
Namespaces
The Peacock.Zoo
module contains functions to generate some of the photonic crystals that I have studied. To avoid polluting the global namespace, these functions are only accessible after calling using Peacock.Zoo
, or by calling each function as Peacock.Zoo.name
.
Unpacking parameters
Each make_*
function returns a NamedTuple
containing the geometry, solver, polarisation, and high symmetry $k$-points of the crystal. You can use the @unpack
macro from the Parameters
module to extract the variables held in the NamedTuple
.
For example, the topological photonic crystal first introduced by Wu et al 2015 can be generated using make_wu_topo
.
using Parameters # for the `@unpack` macro
# Load photonic topological insulator from Wu et al 2015
@unpack geometry, solver, polarisation, G, K, M = make_wu_topo(fourier_space_cutoff)
# Preview the crystal
plot(geometry)
Available crystals
Modules = [Peacock.Zoo]
Private = false