Impact of boundary conditions on bandstructure simulations

JArcJArc Member Posts: 2

When simulating the bandstructure of a two-dimensional freestanding photonic crystal with a 3D FDTD simulation region, one can always make use of the symmetry of the problem to speed up the process. Initially, I was using the "Symmetric" option for both "z min" and "z max" boundary conditions, obtaining good-looking bandstructures. However, I read one should always set one of them to symmetric and the other to PML. This scrambles my bandstructures. Furthermore, if I want to include a substrate my structure is not symmetric anymore and I have to enforce PML boundary conditions for both "z min" and "z max". Also in this case, the bandstructure doesn't look clean. Could it be I am missing some key point one has to pay attention to when using PML boundary conditions?

Thanks in advance,



  • gsungsun Posts: 751Ansys Employee
    edited June 1

    From your description, I guess that the 2D photonic crystals are periodic in xy axes. Since it is freestanding, so the structure is symmetric in z. However, the Boundary conditions in Z will determine its band structure property:

    When both Zmin and Zmax use "Symmetric", it means such photonic crystal is periodic! eg, you are simulating pure 2D and perhapes layered with air.

    the correct settings for the free standing photonic crystal to get its band structure is to use "Symmetric" at Zmin, but keep Zmax as PML. This will give you the band structure with symmetric modes in z. You can also use "Anti-SYmmetric" to get another band structure. Due to several reasons the band structure might not be perfect. So you may need to fine turn some parameters, such as simulation time, "tolerance" to not over sampled or under sampled.

    When there is no symmetry in z,such as with a substrate, you are right to use PML in both Z min and Z max. As mentioned above, you will need to modify some settings and/or parameters in order to get better/clean band structure.

  • JArcJArc Posts: 7Member

    Hello @gsun,

    thanks for your detailed answer. I already made my stability factor significantly lower but that did not affect my results. Neither did setting the PML profile to stabilized. Which other parameters could I try to finetune for better results?

  • gsungsun Posts: 751Ansys Employee

    Let's first focus on the correct boundary conditions. Only when you set proper boundary conditions could you get correct result. If the wrong boundary conditions are used, even though the result is smooth it is not correct.

    In XY axes PML should be used; in Z axis, Zmin can use "Symmetric" or "anti-Symmetric" but Zmax should use PML, or simply use PML at Zmin and Zmax.

    Do not modify stability factor, which should only be modified when it causes diverge. Please use its original value of 0.99.

    For bandstructure simulation, do not let the simulation converge to autoshutoff min, since this will only pick up the resonance with large Q so the band structure will not be smooth. From the online examples as you can see the simulations terminates very early where the autoshutoff level is around 90% or higher. This is because such simulations are used to extract the resonance information, not the exact amplitude.

    When the simulation files have very different converge property, eg, for a given simulation time, one file terminates around 5% , another file terminates 100%, then you will need to manually resimulate the first file and let it terminates much early.

    Such simulation is one of the few applications that the simulation terminates by the set simulation time not the autoshutoff min.

    Please check

    1: boundary conditions are correct;

    2: simulation time is set to be much shorter than the default

    3: check the log files or watch the simulation status to get the information when the simulation terminates.

    and modify accordingly, and see what is the result. If there are still problems, please give screenshots:

    1: the sweep panel shows the autoshutoff level, or check the log file and list them here

    2: the resulting band structure

  • JArcJArc Posts: 7Member

    Hi @gsun

    the boundary conditions should be correct by now: Bloch in x- and y-direction and PML for both Zmin and Zmax. I also set the PML profile to stabilized rather than to standard. Decreasing the simulation to a value much smaller than default already improved my results, since now I'm able to recognize the bands which I expected to see. Why is this the case? However, my bandstructure still does not look clean.

    Regarding the simulation status of the log files, I am not sure I completely got your point. All files terminate at 99% or 100%, so I don' think I need to resimulate any of them manually.

    Please find attached the snapshot of the autoshutoff level and of the bandstructure.



  • gsungsun Posts: 751Ansys Employee

    Since your structure has symmetry in z, it has symmetric and anti-symmetric modes. Their bands are different. To have clean bands, the first step is to use symmetric or anti-symmetric BC in zmin to separate them;

    THe second improvement is to greatly reduce the simulation: let the simulation terminates by simulation time, not by autoshutoff min. The autoshutoff level should be above 0.9, even 0.98. In such case, all simulation should terminates at 100%, but the autoshutoff level should be much higher than the original default value of 1e-5, as mentioned to be about 0.9~0.98.

    If there is missing point, please check the corresponding file and check its autoshutoff level to see if it is proper.

  • JArcJArc Posts: 7Member

    Setting both Zmin and Zmax to PML is yielding way better results right now, so I'll try to stick to that.

    I tried to set the autoshutoff level to 0.9 and all simulations terminated at way less than 100%, resulting in an empty data set for the bandstructure. Why does this happen? Do I have to modify the simulation time accordingly when increasing the autoshutoff level?

  • gsungsun Posts: 751Ansys Employee

    I still suggest to use Symmetric BC at Zmin in order to separate symmetry/antisymmetry band structures;

    You will need to open the individual files and check if there is data, or there is resonance. autoshutoff level 0.9 is not guaranteed to be good.

    You can either use autoshutoff level, or simulation time to control when to terminate the simulations. All online examples use time. but autoshutoff level might be better. The problem is we do not know what the level values is better. So there are many things to be improved.

    I think you are in the right direction now. Just check each individual files and see what happen there. Then think a way to improve the settings. You can run individual files and then load the results in Sweep .

  • JArcJArc Posts: 7Member

    After a few adjustments, my bandstructure finally looks way better than before, except for some spurious resonances resulting in single points out of the bands. Any ideas about how to fix this?

  • gsungsun Posts: 751Ansys Employee


    Then please check the individual file and get the result to see what happens there. Information can be found in log file, and the time signal /spectrum result. sometimes you may need to manually modify something as mentioned previously.

Sign In or Register to comment.