Optics

Optics

Topics relate to Speos.

FDTD:: simulation of directional coupler

    • Zhongdi Peng
      Subscriber

      Hi,

      I am simulating a directional coupler combined with a specific symmetric coupling region and designed S bends. I first simulate it in VarFDTD and figure out the rough length of the coupling region for 3dB splitting, and then transfer it to FDTD for 3D re-confirmation and accurate simulation. Probably due to the large configuration (attached image, FDTD X length=260um and Y length=30um, this is because my platform does not have confinement of mode as strong as that in SOI) with waveguide thickness=2um, height=300um, waveguide gap=1um, mesh size near waveguide = (dx,dy,dz)=(0.2,0.2,0.2)um, it's time-consuming  and the divergence is not good no matter how I tune my PML boundary setting:

      A. with the PML isotropic setting (I have tried PML layer = 8~24) 

      It's diverged after auto-shutoff reaches 0.0025; results shown below

      Diverge may be due to the PML boundary settings, so I tried method B to set anisotropic boundary of PML:

      B. with PML anisotropic setting (X min/max: stabilize PML, Other boundaries: Standard PML layer=16)

      I set running time=5000fs and it's not reaching to preset 10^-5 at the end but only 0.06 (slower divergence than method A). It should be noted that the propagation is strange, seems like a standing wave inside the directional coupler this time. Also, another input port without setting any source now has light output as well, which is pretty abnormal.

      Any suggestions to further optimize the divergence?

       

      Zhongdi

       

       

    • Guilin Sun
      Ansys Employee

      Hi Zhongdi, please write post in Photonics forum later.

      This is mainly due to the fact that long and large device needs long simulation time. You can use much longer simulation time and let the autoshutoff min to terminate the simulation.

      Mesh 0.2um might be too coarse. Suppose the wavelength in vacuum is 1.5um, refractive index 3.4, the mini wavelength inside the material is 1.5/3.4~0.44 um. so 0.2um is just above the Nyquist requirement. In order to get result with reasonable accuracy, it should be at least  0.44 um/6~0.07um, which is equivalent to mesh accuracy 1, the coarest mesh by default. Perhapes you need to upgrad your computer, as it is your tool for your projects. Please refer to the following posts:

      Ansys Insight: FDTD 仿真的过程中mesh的精度如何设置?

      Ansys Insight: 用于设置Mesh accuracy对应多大的网格尺寸

      As for diverging, it depends on the mesh size. You can use thicker PML along propagation direction. To reduce memory requirement, you could use Metal BCs in y and z. Make sure the source mode is correct. 

      Ansys Insight: FDTD varFDTD 常见的发散原因以及处理  

       

    • Zhongdi Peng
      Subscriber

      Thanks Guilin for your suggestions, I have a few questions before further running a finer mesh simulation:

      1. Is the mesh size 0.07um also applicable to VarFDTD's dX/dY?
      2. I am using 'conformal variant 0' as mesh refinement in FDTD, where the mesh setting does not include any PML region. For better convergence, should I keep using that or use "conformal variant 1" instead? How can I check the mesh size in PML?
      3. A coarse mesh before PML requires less layer of PML for convergence, if I understand it correctly in your post: Reason for divergence and solution. In this case, I am afraid I had a bad PML absorption effect, where I can get 'standing wave' feature with 'Stabilize PML' setting. To further improve the absorption, is it possible to set a coarse mesh near PML region?
      4. In your forum post : Reason for divergence and solution, you have asked user to try with Metal boundary to check whether we should decrease step time dt. I tried Metal boundary (still with coarse mesh of (0.2,0.2,0.2) um) with same photonic structure and get similar 'standing wave' feature at the end (image attached). It was not diverged, which may due to the short running time. Based on this comparison result, should  change dt as well in my next simulation with finer mesh?

      Best, Zhongdi

    • Zhongdi Peng
      Subscriber

      Apart from that, my platform has highest index component of 2.21 @ 1.55 um, the effective index of the mode is about 1.8. According to your calculation, the mesh size should be 1.55/1.8  / 6 = 0.1435um (6 splitting points per wavelength) or 1.55/1.8 / 10 = 0.086um. Actually, I also tried with dx, dy, dz = (0.1, 0.1, 0.02) um before and it still diverged with PML layer=16 after auto-shutoff reaching 0.0025. What else do you think I need to optimize for convergence?

    • Guilin Sun
      Ansys Employee

      Diverging: when you reduced mesh size, did you increase the number of PML? the total thickness takes effect for efficient absoprtion. 

      VarFDTD uses equivalent refractive index from the slab mode, so its mesh can be coarser.

      Conformal mesh 0 is good to use. COnverging testing is another thing.

      You could use carser mesh in PML region if necessary. It can cause minior reflection.

      If diverging is not causes by dt factor with metal BC testing, no need to change it. The standing wave pattern is due to PML refelction. Stabilized PML does not mean it can efficiently absorb light. Actually it has larger reflection. It is better to use more number of PML layers with standard PML. Or you can use custom PML with parameters from the standard PML but only increase the max layer number.

      Diverging can be caused by many different issues. So please try to resolve the diverging issue by following the suggestions in the post.

       

       

       

       

    • Zhongdi Peng
      Subscriber

      Hi Guilin, thanks for your information. In conclusion, I will use a finer mesh (0.08,0.08,0.04) um with an extended running time and thicker PML=32 to do the simulation.

    • Guilin Sun
      Ansys Employee

      I would suggest to use automesh, accuracy 1 for testing, with 16 layers PML should be ok.  The goal is to reduce PML reflection, and resolve diverging issue.

      do not use uniform mesh.

       

    • Zhongdi Peng
      Subscriber

      That's what I set for method A (auto nonuniform, accuracy=1, standard PML=16), with mesh size=(0.1,0.1,0.02) um, which diverged at autosutoff = 0.0025. I am now using a longer time and higher auto shutoff limit of 0.05, along with a finer mesh (0.08,0.08,0.02)um, boundary setting of X min/max's standard PML layer =32, and Y/Z = Metal. Other settings are the same: auto non-uniform mesh, accuracy 1.

    • Guilin Sun
      Ansys Employee

      did you put the override mesh at the coupling region? if so, please set its size to only cover the waveguide. If it is too large it will affect the mesh close to the vertical PML.

      Right now you want to overcome the diverging issue. so you can try to use the suggested methods from the post to see if it works. In your case, maybe the ripples are from higher-order modes. Please use port or mode expansion monitors to verify this. 

    • Zhongdi Peng
      Subscriber

      Yes, I put different override mesh sizes in different regions. Like the mesh around WG which has width=2um allows WG separated into 25 grids; mesh in a coupling gap of 1um sets it to have 20 grids. As you see in the image below, the override mesh does not cover the region near the Y/Z's boundary, which is defined by nonuniform mesh with accuracy=1. But the mesh affects the boundary in X min/max, which has mesh size = (0.08,0.08,0.04) um.

      Summarize my setting:

      a). dt=0.99 by default

      b). Boundary: Metal in Y/Z and Standard PML in X with layer=32

      c). Mesh: The coupling region has override mesh (0.08,0.05~0.08,0.02~0.04)um, Mesh close to Y/Z boundary is set by nonuniform mesh with accuracy=1 (but will be affected by other override mesh), other override mesh = (0.08,0.08,0.04) um

      Result: it can converge to shutoff=0.0015, but later diverge (shown below). Which is similar to the result I got in the Method A (result shown in the aboved posts)

      To answer your questions,

      1. The mode at the end facet of output is single-mode:

      2. input and output intensity (Tnet) versus frequency, 3dB is roughly at 1600nm:

      Light propogation at 1573nm:

      Even through it converge to 0.0015, it diverged after that. Can I trust the result?

      Personally I do not think there is further optimization choice for me except increasing the layer of PML in X direction:

      1. dt can not change. I previously used 0.9 instead but it diverge faster.
      2. Changing Metal boundary at Y/Z to PML does not help. The result in aboved Mehod A used standard PML in all boundaries but diverge at a similar shutoff = 0.002.

      The PML layer is already 32, how many layers you suggest to set?

       

      Zhongdi

       

       

    • Guilin Sun
      Ansys Employee

      Please only use one override region for the coupling. The waveguide will use the mesh accuracy to be well resolved. When you used finer mesh, it may affact PML thickness.

      From the image, it seems no strong fields to the bottom-left port, which is a good sign.

      As you can see, there are some scattering fields after the coupling region, and they may have larger angle to reach PML. This is why I suggest to check the mode profiles. You may need to use 64 layers for x-max PML or even use Steep Angle PML with more layers.

      You can try to simulate half the device, eg, move the right-hand-side PML to the half way of the coupling region and check if it diverges.

    • Zhongdi Peng
      Subscriber

      Here I have thin layers in WG and under WG region, both of them are of thickness=300nm. I have to use dz=0.03um as an override mesh over their region. Apart from this, if I set the mesh in a couple gap only, nonuniform mesh with accuracy=1, the WG crossing PML boundary at the end will have mesh size = (dx, dy) = (0.072,0.072)um, which has little difference to that of previous override mesh.

      Do you mean to set Y min/max as the steep angle PML? where it should be set nearly parallel to the light propagation.

      Is it just for checking the divergence to move the PML right end to the center of the couple region? Is the result related to the splitting ratio of the whole device?

    • Guilin Sun
      Ansys Employee

      It is good to only override mesh on the thickness, one dimension. If such thin layer does not primarily determine the mode profile, you can try to disable it first, in order to find the diverging cause.

      You need to check where the scattered fields go. If the scattered fields also go to ya dn z, you should not use metal BCs.

      You can use 3 rofile monitors in xy,xz and yz , and use log scale to check the scattered field intensity. If they are large, say 1e-4, you will need to use thick PML.

      "Is it just for checking the divergence to move the PML right end to the center of the couple region? "

      yes, to find the cause of diverging.

       

    • Zhongdi Peng
      Subscriber

      Let me summarize your suggestion and let me know whether there is any misunderstanding:

      Step A: check the divergence's reason

      take only half of the simulation region + Use thicker PML in X min/max = 64 + only take override mesh on single Z dimension (the thin layer dominates my mode) + add monitors to check the scattered light

      Q1: after checking and back to final simulation, I still need to recover the override mesh back to the X/Y direction so that an integer number of grids is placed in the coupling gap, correct?

      Q2: where should I place those monitors? At corresponding boundary?

      Step B: Recover the simulated region and set PML accordingly and run again.

    • Guilin Sun
      Ansys Employee

      You can enforce the mesh to be symmetry if the coupling center is at the symmetry point: 

      Plane monitors can be at the center plane, or where you think the scattering is strong. You can extend the monitors to the inside of PML:

       

       You first need to identify what causes the diverge. You may also use a monitor monitor.

    • Zhongdi Peng
      Subscriber

      Thanks, it's running now and I will report later.

       

    • Zhongdi Peng
      Subscriber

      I think the steep angle mesh cannot be add to the Y min/max where the scattered light has a large angle to its normal axis. I have tried with Y boundary with a). standard mesh layer=32, and b). steep angle mesh with layer=64. It has very weak absoprtion in b).

    • Zhongdi Peng
      Subscriber

      Here is a summary of the two rounds of running:

      1. boundary X/Y standard = 64/32 layer, Z is Metal:

      2. boundary X standard=64, Y steep angle = 64, Z standard =16:

      Neither of them converge. They both diverge after reaching shutoff = 2~4e-3

      Using Standard 64 and 16 layers of PML at X/Z boundary is enough, the light in PML will decrease to lower than or near e-4:

      But in Y min boundary where it faces the scatter light from input S bend WG, the absorption is not good, especially the steep angle one:

      Steep Angle = 64 layer:

      Standard layer=32:

      Right now the only side where PML can not effectively absorb is Y min boundary. Do you think it's the reason causing the divergence? Let me know why 64 layer steep angle gives a worse result in absorption than standard 32 layers and how I can further optimize. Thanks.

    • Guilin Sun
      Ansys Employee

      PML performance depends not only on its artifical material properies, but also on the incident angle and wavelength.  It is difficult to expain the reason. You can use 3 plane monitors and record data inside PML as suggested before. Then you can check which and where the intensity is strong in PML to identify the issue. You may also use 3 movie monitors to check where the exponential growth begins.

      Have you tried to simulate half of the device? whar happens then? 

      PML has several parameters with different functions: https://optics.ansys.com/hc/en-us/articles/360034382674-PML-boundary-conditions-in-FDTD-and-MODE 

      There are two dedicated books regarding to PML. 

      You may also try the legacy uniaxial PML as some times it works better.

      You may also extend ymin further away from device if you identified it causes issues.

      Occasionally, a new project file will work by only copying the geometry and monitors, but adding new FDTD region and changes its settings. Do not copy the old FDTD to the new project.

    • Zhongdi Peng
      Subscriber

      Thanks. These are both from half-device simulation.

    • sara.bassil
      Subscriber

      Hi, I'm very interested in simulating a directional coupleur. I want to extract the S matrix at each export port. I see that in your simulation you use a mode source, is it possible to use an input port ? 
      What is the best solution for extraction the S matrix ? 

       

      Thank you very much ! 
      Sara 

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