Lumerical's Default PIN MZM download- Help with wrong Transient simulation current results

xw27xw27 Member Posts: 1
edited May 7 in Photonics

Dear Lumerical Support,

I'm having trouble getting a sensible transient simulation result for your provided default PIN MZM example file, downloaded from " https://support.lumerical.com/hc/en-us/articles/360042327854-PIN-Mach-Zehnder-modulator". The forward bias steady state results do work, are correct, and match the IV curve that is shown on your website, but I am wanting the transient response.

Following all the CT100 Charge transient simulation and tutorials, as well as photodetector transient examples, I switched the solution type in "pin_mz.ldev" downloaded from the website to transient simulation and setup a step voltage (up), followed by a step voltage(down), i.e. a square pulse. I expect the "In" current plot from the results to show a rising waveform following the step + voltage on the anode. What I get is the following:


Figure 1.


From an input that looks like:


Figure 2.


A different input setup--with 1V at 0 time, and 1V at 1e-7 time, two entry only on "anode" transient step settings-- i.e. the setup that is shown in CT100. It all results in results that look like Figure 1.

I ( think) I have tried all extreme values and middle values in between of all the settings, but none give a reasonable current rise in the result. I'll go through all the exhaustive steps I've checked, but first the last run (unrun, running this will take ~ 25 min on a 64 G computer) is attached below [ scratch that, I realize you don't allow .ldev extensions to be attached now, so I made a pdf with explanations of what I modified from your default download "PIN_transientsim_explanation_of_results_and_setups_tested.docx" ]


I'd be very grateful if anyone can help me figure out what exactly is required to get a working transient simulation.

I'll go over what I tried below (long version)

------------------------------------------------------------------------------------------------------------------------------------------------------------------

The settings are:


min time step: 5000 fs,

max time step = 1e6 fs

voltages set on the anode as:

time/voltage

0/0

5e7 fs/0

5.1e7 fs/1.0

1e8 fs / 1.0

1.01e8 fs /0

1.11e8 fs /1


Summary:


1.)    I increase the rise time of the step voltage by 5x, and increase the time that the voltage step stays at 1.0V to 1e8 fs ( 100ns), and rerun. The result looks the same, the current on either end of anode/cathode does not rise above 10^-34 ish Amps.

2) I add meshes, set the meshes to .005um, (5nm),  and rerun. Still the same result. Then I disable the 2nd “surface recombination” item in the default download, and rerun, no changes in the result.

3) I make the minimum time step in the CHARGE transient setup 1000 fs ( 1 ps) and make the input voltage step smaller. There is a difference, but the current is still never above 6e-29A, and after a short 5 ns time, it dies down:

Checking “p” from the results, looking at In

so still not correct.

4) I next make the time step min even smaller to 250fs ( and also try 500fs). The result goes to something that looks like Fig 1.

5.) Next I start increasing the time step min of the transient simulation setup, as well as increasing the time duration of the voltage square wave pulse, and the rise time of the voltage step as well.

I change it to:  

time entries: 0;  2e8 fs; 2.5e8 fs; 2.5e9fs;  2.55e9fs; 2.65e9 fs; 

for voltages 0; 0; 1.1; 1.1; 0;0

Results still don’t show rising current.


6.) next, I repeat all of the above with voltage of 0.85 instead of >1.0V.

7.) I increase the number of attemps to 150.

8.) I move the dopants a little bit beyond the silicon to make sure everything’s connect and repeat, nothing changes.  ( note that I started with default Lumerical download which works as a steady state simulation, so all shapes and items should be connected properly, but I checked the dopant coverage just in case).


None of what I tried gives me reasonable current.


When running steady state simulations, they clearly do, as the results show a correct and typical IV curve:


It is very weird to me why transient simulations don’t show a current tracking the square voltage, when everything( geometry and shape wise) in steady state simulation looks correct ( downloaded from Lumerical).

I'm using 2020 R2.1, but I've also checked on a different computer withh 2020a.

I am at a loss as to what else there is to try. Many thanks for your help.

Answers

  • gsungsun Posts: 729Ansys Employee

    Sorry to reply you late as our team is quite busy in other projects.

    Since I did not see the screenshot of your complete device settings, I can only guess. Do you know what does the "transient" simulate? Do you want to get the transient behavior of applied voltage, which leads to calculation of system bandwidth, or do you want to simulate the electric response for optical power? I guess it might be the later. For optical power, it usually simulates the optics stimulus like the shutter in a camera. If it is the case, then you will need to have an optical generation usually from optical simulation. Please refer this example https://support.lumerical.com/hc/en-us/articles/360042848673-CMOS-Transient-electrical-response or the solar, detector examples.

  • xw27xw27 Posts: 5Member
    edited May 18

    Thanks for your response, I understand that it is a busy time.


    Sorry that the in-line comments didn't detail all the device settings - I had attached a 12 page document ( "PIN_transientsim_explanation_of_results_and_setups_tested.docx") in the first post with all complete settings used, but I'll extract the screenshots and explanations of settings and tests to be part of of this actual comment as well. It's rather long, so I'll first answer your questions and then append it below a ------ demarcation line.

    RE"Do you know what does the "transient" simulate? "-- first I just want the transient behavior of the current through the PIN diode in response to the applied voltage. In this case I do not have the optical/shutter on.


    However, for the sake of being thorough, I have gone through, examined, and run all of the following transient explanations and examples below. They work as they should/advertised, but I am NOT interested in the transient results of the transient examples--- I only care about the PIN diode and it's transient response.

    "https://support.lumerical.com/hc/en-us/articles/360045467113-Small-Signal-AC-and-Transient-Simulations-Demo"

    "https://support.lumerical.com/hc/en-us/articles/360045467093-Small-Signal-AC-and-Transient-Simulations-Simulation-Settings"

    "https://support.lumerical.com/hc/en-us/articles/360044943574-Small-Signal-AC-and-Transient-Simulations-Small-Signal-AC-Simulations-Demo"

    "https://support.lumerical.com/hc/en-us/articles/360042273134-pn-junction-diode"

    "https://support.lumerical.com/hc/en-us/articles/360042957893-Vertical-photodetector"

    "https://support.lumerical.com/hc/en-us/articles/360042848673-CMOS-Transient-electrical-response"


    Thanks for your help, it is greatly appreciated.

    Below, I will copy and paste the word document I had attached in it's entirety:


    Begin document: ( EDIT: ok, I see that I am not allowed to put the entire document in, "Body is 7557 characters too long", I will break it in multiple comments then)

    ----------------------------------------------------------------------------------------------------------------------------------------




    Issue: no reasonable current increase that tracks the voltage step in transient simulation for the default pin_mzm.ldev file from https://support.lumerical.com/hc/en-us/articles/360042327854-PIN-Mach-Zehnder-modulator


    I will start with my last test result “..redo10”, that showed the same symptoms as others run before it.

    Below is a view of the PIN MZM in Device/CHARGE, it is the pin_mzm.ldev, with simulation changed to “transient” instead of “steady state”



    I will start from the beginning:

    I download pin_mzm.ldev, and change the “Edit Charge Solver” menu to:



    I make the input a voltage pulse, step up and down:



  • xw27xw27 Posts: 5Member


    Then I run, and the result after 20-30 min is:


    For this input:


    So the current never really rises.

    Following this, step 0.),  on the default pin_mzm.ldev with no further changes, I perform a series of simulations, with changes to the simulation settings, I do:



    1.)   

    I increase the rise time of the step voltage by 5x, and increase the time that the voltage step stays at 1.0V to 1e8 fs ( 100ns), and rerun.

    The result looks the same, the current on either end of anode/cathode does not rise above 10^-34 ish Amps.

    2.)   I add meshes, set the meshes to .005um, (5nm), in the following areas:


    and rerun. Still the same result.

    Then I disable the 2nd “surface recombination” item in the default download, and rerun, no changes in the result.


    3.)

    I make the minimum time step in the CHARGE transient setup 1000 fs ( 1 ps) and make the input:



    And rerun.

  • xw27xw27 Posts: 5Member

    There is a difference, but the current is still never above 6e-29A, and after a short 5 ns time, it dies down:

    Checking “p” from the results, looking at In


    Checking Ip:

    Check n looking at Ip



    In:



    4) I next make the time step min even smaller to 250fs ( and also try 500fs)

    The result goes to something that looks like:



    5.) Next I start increasing the time step min of the transient simulation setup, as well as increasing the time duration of the voltage square wave pulse, and the rise time of the voltage step as well.

    I change it to:  

    time entries:

    0;  2e8 fs; 2.5e8 fs; 2.5e9fs;  2.55e9fs; 2.65e9 fs; 

    for voltages 0; 0; 1.1; 1.1; 0;0




    Results still don’t show rising current:



  • xw27xw27 Posts: 5Member

    6.) next, I repeat all of the above with voltage of 0.85 instead of >1.0V.

    7.) I increase the number of attemps to 150.

    8.) I move the dopants a little bit beyond the silicon to make sure everything’s connect and repeat, nothing changes.  ( note that I started with default Lumerical download which works as a steady state simulation, so all shapes and items should be connected properly, but I checked the dopant coverage just in case).


    None of what I tried gives me reasonable current.



    Checking Jn and Jp, I see that the current densities never grow past the pwell (or nwell) regions:


    For any time.


    When running steady state simulations, they clearly do, as the results show a correct and typical IV curve:

    It is very weird to me why transient simulations don’t show a current tracking the square voltage, when everything( geometry and shape wise) in steady state simulation looks correct ( downloaded from Lumerical).

    I am at a loss as to what else there is to try.  Many thanks for your help.

  • gsungsun Posts: 729Ansys Employee

    Hi, thank you for the details. As you may be aware that Ansys staff are not allowed to open/check/run client files in this forum per the compliance. In addition, for this Learning Forum, we are helping users like you to get to know how to use Lumerical software, how to understand the settings in the online example files, and how to normally use the software. Although users can explore the simulation capability, unfortunately your specific question in this current post is out of the support scope in the forum. However, I would like to provide some suggestions: 1) do a simple transient simulation such as one PN junction with contacts, such as this example https://support.lumerical.com/hc/en-us/articles/360042273134-pn-junction-diode ; 2) use the pulse time scale larger than the simulation time steps. I simulated the simple PN junction in transient, and the results are reasonable:


Sign In or Register to comment.