Open Nikolaos-Matthaiakakis opened 3 years ago
I would like to add that the coordinate transform can introduce some noise, possibly due to reflections from the boundaries of the transformed region (the transformed region is the white box in the original post gif), that can often completely cover the useful data. In the case of graphene the coordinate transform required is not very large, and even though I observed this effect, after very careful convergence testing I was able to overcome it as seen in the previous post.
example of the error:
The effect seems to be more prominent for the highest and lowest frequency values of the range used in the simulation. When larger coordinate transforms are required this can completely overpower the useful spectra.
example for black phosphorus (plasmon peak at 30um):
It seems like the corners of the transformed region might also cause trouble
What could be some possible methods to reduce this noise? Maybe a gradual transform by using multiple steps of coordinate transformed air blocks around the structure could help? Please let me know if you have any further insights as I am really struggling with this issue
Thank you very much
I recently managed to simulate graphene using the method where the thickness of the layer is defined as 1/resolution and the conductivity of the layer is multiplied by the resolution.
Since the required resolution was too high, I included a coordinate transform in order to make the simulation fast. I set up the conductivity of graphene such that after the transform, the graphene layer can still be described as one pixel thick (with a thickness equal to 1/resolution/stretching so that after the stretching recovers to 1/resolution) and the optical properties further modified by the transform( ) function. This gave quite nice results.
(here is an example code of scattering from a graphene ranorectangle using the coordinate transform https://github.com/Nikolaos-MAtthaiakakis/meep_graphene ).
My aim is to now try and simulate the graphene layer as truly 2D. That means that the material wont be covering an entire pixel thickness but only one surface of the pixel size=mp.Vector3(x,y,0). For this to work the graphene optical properties should be described strictly by the surface conductivity instead of by the volumetric permittivity as previously.
This is something already available in some commercial solvers and can result in a big speed up of the simulation since the resolution does not need to be as high (it needs to be only high enough to properly cover the other two dimensions of the structure and the near field normal to the structure as well). Would meep be able to support this?