Photonics

Photonics

Topics related to Lumerical and more.

Problem on recording the E field in 2d polarizer simulation

    • xuanlunhuang20
      Subscriber

      Hi, I’m simulating a 2d polarizer and have problem on recording the E field. I find that the field is not reflected in the movie even for a structure with high reflection. Could you help on this problem? What’s the correct setting for the movie monitor so that I can record the reflecting phenomenon?

      Specifically, I use a silicon on glass meta-atom (its height is 500nm, x width is 160nm, y width is 280nm, index is 3.7) to simulate, which has a high transmission (~94.6%) for x-polarized light and a high reflection (~98%) for y-polarized light. I set the planewave source (940nm) to y polarization and want to record the movie of the E field being reflected back. I set two movie monitors, one is x-z direction (2D Y-normal) and another is y-z direction (2D X-normal).

      But in the movies (for both the two monitors), the E field transmits through the structure and there is no light being reflected back. The following are the third second and sixth second of the movie. We can see that unlike the movies in the online example “Microwire polarizer”, in this movie, there is no field being reflected back. How can I get the movies like those in the "Microwire polarizer" example?

    • xuanlunhuang20
      Subscriber
      period is 428nm
    • Amrita Pati
      Ansys Employee

      Hi Xuan,

      This is strange. Are you able to record the reflection values accurately with the 2D z-normal monitor? And which physical quantity are you recording with your monitor?

      Regards,
      Amrita

      • xuanlunhuang20
        Subscriber

        Hi Amrita,

        I used the s-parameter group to record the reflection and transmission in the same simulation. The reflection is 97.5% and the transmission is 1.4%. This is the screenshot.

        I also set a seperate 2D-z normal monitor "myR" above the source in the simulation, to serve as a verification, whose recorded value is 97.6%.

        The physcial quantity I'm recording is Electric field intensity.

        I also set a 2D Y normal time monitor to record the field, the following is the screenshot at two time, where we can see the field transmits through the structure.

    • Amrita Pati
      Ansys Employee

      Hi Xuan,

      I apologize for the delay in getting back to you, I sometimes don't receive updates when users reply.

      I wouldn't expect this to happen. This might be a bug, but I wasn't able to reprduce the issue. Would you be able to convert the .mp4 to .gif and send it here?

      Regards,
      Amrita

      • xuanlunhuang20
        Subscriber

        Hi Amrita,

        Thanks for your reply. Here are the .gifs of the xz_movie monitor and yz_movie monitor:

        xz:

        yz:

        I also upload the FDTD simulation file on dropbox. If it's convenient for you, you could download it to help check where the problem is. Thanks. 

        single_unit_S_withFieldMonitor.fsp

    • Kirill
      Ansys Employee

      Dear Subscriber,

      1. According to the Guidelines for Posting on Ansys Learning Forum, we cannot download your files.

      2. I attempted to reproduce your issue but was unsuccessful.

        • What is the refractive index of the substrate?
        • Do you get the same transmission and reflection results using only field monitors?

      Best regards,
      Kirill

      • xuanlunhuang20
        Subscriber

        Hi Kirill,

        I use the "SiO2 (Glass) - Palik" material for the substrate. For 940nm, it's about n=1.45.

        As I mentioned in the reply to Amrita, I use the "s_params" group to record the reflection, it's ~97%. I also set my own moniter "myR" in the same simulation to double check, it's ~97%.

        Following your suggestion, I redo the simulation with only the source, transmission monitor and reflection monitor. The result is the same.

      • xuanlunhuang20
        Subscriber

        I copy all my simulation details here. Could you copy and reproduce the simulation?

        The screenshot of the simulation:

        FDTD settings are: simulation time 10000fs, mesh 4, conformal 0, Bloch boundary in x and y, PML in z, PML use stretched PML steep angle, layer is auto (12).

        Materials I use are: index=3.7 for "bar", "SiO2 (Glass) -Palik" for "substrate"

        The variables of  the model:

        The script to change the dimensions of all the structure:

        Lmax = 7e-6;

        sourceoffset = 0.075e-6;

         

        n1 = 1;

        n2 = 1;

         

        ## set simulation region

        select("FDTD");

        set("x",0);set("y",0);

        set("x span",period);

        set("y span",period);

        set("z max",0.5*Lmax/n2+height+sourceoffset*2);

        set("z min",-0.5*Lmax/n1);

         

        ## set source

        select("PlaneWaveSource");

        set("x",0);set("y",0);

        set("x span",period*3);

        set("y span",period*3);

        set("z",0.5*Lmax/n2+height+sourceoffset);

         

        ## set bar

        select("bar");

        set("x",0);set("y",0);

        set("x span",wx);

        set("y span",wy);

        set("z max",height);

        set("z min",0);

         

        ## set substrate

        select("substrate");

        set("x",0);set("y",0);

        set("x span",period*3);

        set("y span",period*3);

        set("z max",0);

        set("z min",-3*Lmax/n1);

         

        # set myR

        select("myR");

        set("x",0);set("y",0);

        set("x span",3*period);

        set("y span",3*period);

        set("z",0.5*Lmax/n2+height+sourceoffset*2);

         

        # set myT

        select("myT");

        set("x",0);set("y",0);

        set("x span",3*period);

        set("y span",3*period);

        set("z",-0.5*Lmax/n1);

         

        # set xz-field

        select("xz_field");

        set("x",0);set("y",0);

        set("x span",period);

        set("z max",0.5*Lmax/n2+height+sourceoffset*2);

        set("z min",-0.5*Lmax/n1);

         

        # set xz-time

        select("xz_time");

        set("x",0);set("y",0);

        set("x span",period);

        set("z max",0.5*Lmax/n2+height+sourceoffset*2);

        set("z min",-0.5*Lmax/n1);

    • Amrita Pati
      Ansys Employee

      Hi Xuan,

      Thanks for sharing the code! I did try to reproduce the issue but some of the input parameters like height, period etc. are missing. I used random values and in my case most of the light is transmitted, which I can see in the movie monitor. Would you be able to share the values of the missing input parameters so that I can recreate the exact simulation. Also, which release of Lumerical are you using?

      Regards,
      Amrita

      • xuanlunhuang20
        Subscriber

        Hi Amrita,

        Thanks for your help. I have shown all the parameters in the previous replies (e.g. height is 500nm, period is 428nm). The versioin I use is 2024 R2.1 (or 2024 R1, the same problem happens in these two versions).

        But for your convenience, I wrote a script and you could copy it directly to the model setup script and reproduce the simulation.

         

        The following is the script (The reply window looks werid, cannot show all the script, please use this updated code):

        deleteall;height = 0.5e-6;period = 0.428e-6;wx = 0.16e-6;wy = 0.28e-6;Lmax = 7e-6;sourceoffset = 0.150e-6;n1 = 1;n2 = 1;

        ## set simulation region

        addfdtd;set("dimension","3D");set("simulation time",10000e-15);set("index",1);set("mesh accuracy",4);set("mesh refinement","conformal variant 0");set("x min bc","Bloch");

        set("y min bc","Bloch");set("bloch units","SI");set("pml type",2);set("pml profile",3);set("auto scale pml parameters",0);set("snap pec to yee cell boundary",0);

        set("x",0);set("y",0);set("x span",period);set("y span",period);set("z max",0.5*Lmax/n2+height+sourceoffset*2);set("z min",-0.5*Lmax/n1);

        ## set source

        addplane;set("name","PlaneWaveSource");set("direction","Backward");set("polarization angle",90);set("wavelength start",940e-9);

        set("wavelength stop",940e-9);set("x",0);set("y",0);set("x span",period*3);set("y span",period*3);set("z",0.5*Lmax/n2+height+sourceoffset);

        ## set substrate

        addrect;set("name","substrate");set("x",0);set("y",0);set("x span",period*3);set("y span",period*3);set("z max",0);set("z min",-3*Lmax/n1);

        set("material","");set("index",1.45119);

        ## set bar

        addrect;set("name","bar");set("x",0);set("y",0);set("x span",wx);set("y span",wy);set("z max",height);set("z min",0);set("material","");set("index",3.7);

        # set myR

        addpower;set("name","myR");set("monitor type","2D Z-normal");set("x",0);set("y",0);set("x span",3*period);set("y span",3*period);set("z",0.5*Lmax/n2+height+sourceoffset*2);

        # set myT

        addpower;set("name","myT");set("monitor type","2D Z-normal");set("x",0);set("y",0);set("x span",3*period);set("y span",3*period);set("z",-0.5*Lmax/n1);

        # set xz-field

        addprofile;set("name","xz_field");set("monitor type","2D Y-normal");set("x",0);set("y",0);set("x span",period);set("z max",0.5*Lmax/n2+height+sourceoffset*2);set("z min",-0.5*Lmax/n1);

        # set xz-time

        addtime;set("name","xz_time");set("monitor type","2D Y-normal");set("stop method","Choose Stop Time");set("start time",0);set("stop time",50e-15);set("x",0);set("y",0);set("x span",period);set("z max",0.5*Lmax/n2+height+sourceoffset*2);set("z min",-0.5*Lmax/n1);

        # set xz-movie

        addmovie;set("name","xz_movie");set("monitor type","2D Y-normal");set("x",0);set("y",0);set("x span",period);set("z max",0.5*Lmax/n2+height+sourceoffset*2);set("z min",-0.5*Lmax/n1);

      • xuanlunhuang20
        Subscriber

        ...

      • xuanlunhuang20
        Subscriber

        ...

      • Viewing 5 reply threads
        • You must be logged in to reply to this topic.