sp94 / Peacock.jl

Photonic crystals in Julia 🦚
MIT License
38 stars 8 forks source link

Symmetry and dimensions? #2

Closed qzhu2017 closed 4 years ago

qzhu2017 commented 4 years ago

I just came across this repo when I am exploring some interesting projects on GitHub. To be honest, I am new to photonics crystals. Just wonder if you guys consider the crystal packings with different symmetries? If yes, my ongoing project maybe useful for the design of new photonic crystals.

https://pyxtal.readthedocs.io/en/latest/

Currently, we support the generation of 1D/2D/3D packings based on rod/layer/space group symmetry relations. Please let me know if this would be linked to your project.

sp94 commented 4 years ago

Hi @qzhu2017,

Thanks for commenting - I don't know very much about atomic/molecular crystals, but I just had a play with PyXtal_symmetry.py and it looks useful to photonic crystals.

We define our crystals using lattice vectors and functions epf(x,y) and mu(x,y) that should return the optical properties (permittivity and permeability) of the crystal at (x,y). For example a user might define epf(x,y) = sqrt(x^2+y^2)<0.1 ? 10 : 1 for a simple circle of ep=10 and ep=1 outside.

I'm hoping to add functions to make this simpler, so users don't have to define the equation of simple shapes like circles. If we could use PyXtal_symmetry.py to let users specify the origins of shapes as Wyckoff positions then this could be very helpful.

qzhu2017 commented 4 years ago

@sp94 Maybe we use different languages here. When we describe a crystal, we need to know both lattice vectors and the atomic coordinates. The atomic coordinates may form a different set of wyckoff positions. From your description, it seems that you allow the user to change the lattice vectors. When you build a photonic crystal, do you change the atomic coordinates?

sp94 commented 4 years ago

Yes, different languages sorry! I mean "meta-atom" which is normally a nanoparticle and we can place it at any position within the unit cell. But I think it would still be useful to know the Wyckoff coordinates when positioning the meta-atoms.

This is a good example: https://arxiv.org/abs/1503.00416 The meta-atoms are nanocylinders placed on a triangular lattice, and then displaced to tune the topology of the crystal.

qzhu2017 commented 4 years ago

I see. Now I am getting to know this better. If you consider wyckoff position as an variable to tune the topology state, my experience on symmetry may be useful. Just to be clear, when you talk about the 2D crystals, what kind of symmetry are you talking about? Is it wall paper group or layer group? At the moment, we support the layer group. But adding the wall paper group is also easy.

sp94 commented 4 years ago

In this package we take 2D crystal to mean the geometry is infinite and homogeneous in the third direction, ie d(ep)/dz=d(mu)/dz=0. So from what I understand, this is described by a wall paper group.

But I know examples of similar systems where the third dimension is not periodic, ie a 2D lattice of nanoparticles https://pubs.acs.org/doi/abs/10.1021/acsphotonics.9b01192 This would be a layer group, right? However we wouldn't be able to model this with Peacock.jl because the plane-wave expansion method it is based on assumes periodicity in all three dimensions.

qzhu2017 commented 4 years ago

@sp94 Hi, I begin to understand a little better about your language. Do you mind having a short video chat regarding a possible collaboration. I think utilizing symmetry (either plane or layer group) will be useful here.

sp94 commented 4 years ago

@qzhu2017 I'll send you an email!