Peacock.jl icon indicating copy to clipboard operation
Peacock.jl copied to clipboard

Photonic crystals in Julia 🦚

Results 13 Peacock.jl issues
Sort by recently updated
recently updated
newest added

How can we build a supercell model to calculate the edge states? like below: ``` ---------- AAAAABBBBB ---------- ``` e.g., A is a topological non-trivial photonic cell and B is...

We should add examples of non-orthogonal lattices to the documentation, with some pictures ### Interface #### Assuming both lattice vectors `a1` and `a2` should have length == 1 In this...

Accuracy of FDFD and PWEM solutions can be improved by dielectric averaging Resources - https://empossible.net/wp-content/uploads/2019/08/Lecture-4f-FDFD-Extras.pdf - Paper discussing subpixel averaging in MEEP http://ab-initio.mit.edu/~oskooi/papers/Oskooi10.pdf

enhancement

While plane-wave expansion method is efficient for modelling dielectric materials, it is inefficient at modelling materials such as metals or modelling finite (non-periodic) systems It would therefore be useful to...

enhancement
breaking

Currently we have Wilson loop methods which are very general and can be used to calculate * Total Chern number of a set of bands * Some [symmetry-protected Chern numbers](https://sp94.github.io/Peacock.jl/dev/how-tos/wilson_loops/)...

enhancement

Add `GPU=true` keyword option (passed on to the solver constructor `Solver(... GPU=GPU)`) when loading crystals from the `Peacock.Zoo`

enhancement

### Problem Currently the geometry is defined by specifying an `epf(x,y)` function and a `muf(x,y)` function, ```julia geometry = Geometry(epf, muf, ...) ``` This is straightforward for simple geometries but...

enhancement

We should provide users with a simple interface for transformation eigenmodes. Sometimes an analysis requires us rotate or mirror an eigenmode (eg studying symmetry eigenvalues) or to shift it by...

enhancement

### Issue Sometimes full 3D simulations (photonic crystal periodic in x, y, z directions) will be required, but `Peacock.jl` currently supports only 2D simulations (crystal periodic in x and y...

enhancement
breaking

`Mode` is for storing an eigenvector that has an associated eigenvalue. `HilbertSpace(modes)` takes the modes, discards the eigenvalues, and orthonormalises the eigenvectors - useful for then calculating new eigenmodes, such...

enhancement
breaking