how to get reflective index of dielectric meta surface composed of silicon pillar array?

I want to simulate the reflective index of silicon array, using just one pillar as unit structure. It’s a bit like the structure in the paper

my simulation file is pillar.fsp (271.3 KB) , I can’t get the normal reflective index as I expected, when I delete the pillar, I thick I can get the reflective of 1, but it never happen, the reflective of air just hopping between 1 and -1 when I use different mesh order.

Can anyone shed some light on it?

The issue seems to be related to choosing the correct branch of the solution. In the analysis script in s_params analysis group, the effective properties are calculated from the S parameters starting at line 205. The equations for the effective n and z values each have 2 roots, and in lines 211 and 214, conditions are applied to choose one of the roots for each frequency point. These conditions work well for the Smith device which is demonstrated in our online example here:

However, the branch choosing conditions are not general, so they don’t work for all devices. Typically, if you would like to extract the effective refractive index, you could plot both branches of n (n1 and n2 calculated on lines 209-210 of the analysis script) and visually check the plots to see which branch makes sense. In the case of your test simulation file, the branches are 1 and -1, and you would want to extract the branch where n=1.

There have been other branch choosing schemes that have been reported in other publications, and you might want to try using. For example, the Smith reference mentioned that a more stable procedure for retrieving effective parameters can be found in this publication:
X. Chen, T. M. Grzegorczyk, B.-I. Wu, J. Pacheco, and J. A.Kong, Phys. Rev. E 70, 016608 s2004d.

1 Like

Hi nlui

I changed the manuscript as you said, plot both n1 and n2 as you said, it did works well with out silicon pillar, as it indicate the reflective of air.

when I increase the pillar radius from 0 to about 0.2um, the reflective index increase as expected, however when I keep increasing the radius futher more, the reflective index begin to drop, not converging to the reflective of silicon(~3.4) as it’s supposed to be.

Could you please tell me what’s going on there?

There are to many equation in the reference paper you mentioned, currently I have no time and energy to work it out in detail. Could you present me a relative simplified result if possible?

1 Like


I am still looking into this and I’ll let you know what I find after some testing.


After some testing, I think that the issue is that since the monitors which are measuring reflection and transmission can only determine the relative phase of the fields (values between -pi and pi radians), the measured result is the same whether a phase of phi or phi+n2pi where n is an integer. Because of this, if a phase of larger than pi radians is accumulated within the metamaterial, it may give an effective index which is different from the actual refractive index of the slab which still results in the same relative phase at the output.

To test this, you can reduce the z span of the pillars so that less than pi radians is accumulated and see that the index is now close to the actual index of the material.

Hopefully this helps, and if my any part of my explanation is unclear, please let me know.

To address the question about the reference by Chen et al. which I mentioned in an above post, I had not looked into the publication beforehand. I have now checked the publication and it turns out that the retrieval method that is discussed in that paper uses waveguide modes as the input and output for measuring the S parameters and calculating effective properties of the metamaterial. Unfortunately this would not work with the method which is used in our analysis group which uses a plane wave source and the reflection and transmission are also plane waves. However, if you do find another published method for retrieving effective parameters, I would be happy to assist with implementing it.

1 Like

Hi nlui

Thanks for your advice.

I reduced the pillar height as you said, it works well below 0.58um, as depicted in the plot:

The index retrieving doesn’t work well for pillar higher than 0.58um, propagation length equal to pi phase accumulation. Since the monitor doesn’t work for phase larger than pi, can I manually tell the monitor this issue by adding n*pi to the S parameter in the script ? or is there any way to solve this problem alternatively? could you tell me how to do that if possible?

1 Like

Hi @nlui
I hate to further bother you but I really eager to know the solution of this problem, is there any progress to solve this problem?

Thanks very much


Sorry for the delayed reply.

I think you could manually add 2*pi to the phase, or get the absolute phase by using a line monitor through the slab to measure the phase accumulation along the thickness of the material in the case where you have a uniform slab.

However, I think that the results without using the absolute phase and only using the relative phase is still valid since a material with the extracted index should still have the same effect in terms of the measured transmission and reflection.

Hopefully the explanation makes sense.

1 Like

Thanks, this explaination help me a lot to understand what’s going on in the simulation.