# Application Gallery

 Navigation: » No topics above this level « Vertical Photodetector

This example describes a complete multiphysics (optical, electrical) simulation of a vertical Ge-Si photodetector, ending with a compact model circuit simulation in INTERCONNECT. It also provides an automated workflow to run the device level simulations and collect data for CML Compiler for compact model generation. Key results such as dark and photo currents, responsivity, bandwidth, and eye diagram are calculated. Two methods of bandwidth calculation, small signal AC and transient + FFT, are described and compared in the appendix, as well as photodetector length optimization using EME and power absorption calculation. Links to other types of photodetectors, such as lateral and uni-travelling carrier can be found in the additional resources.

### Files and Required Products

Minimum product version: 2019a r3

### Contents

Overview

Run and results

Important model settings

Updating the model with your parameters

Parameter extraction for CML Compiler

Taking the model further

Appendix: Detector length optimization

Appendix: Calculating power absorption

Appendix: Step 4 using transient simulation

Appendix: Transient vs. small signal AC bandwidth simulation

## Overview

Understand the simulation workflow and key results

This example is taken from T.-Y Liow et al.1, where a Ge-on-Si vertical photodetector illuminated at 1.55 um wavelength is fed from a Si waveguide into a Ge absorption layer through a taper. This input light signal generates electron hole pairs in Ge, which are subsequently separated under internal electric fields in the photodetector and flow towards electrical contacts forming charge current. FDTD is used to characterize the optical performance of the detector, while CHARGE is used to obtain the electric performance. Parameters from these simulations are imported into a compact model in INTERCONNECT to perform a photonic circuit simulation and obtaine an eye diagram.

1 T.-Y Liow et al., “Silicon Modulators and Germanium Photodetectors on SOI: Monolithic Integration, Compatibility and Performance Optimization”, IEEE Journal of Selected Topics in Quantum Electronics, Vol. 16, No.1 (2010)

### Step 1:

A detailed electromagnetic simulation using 3D FDTD with a mode source at 1.55 um wavelength calculates the field propagation through the taper and into the detector. The field distribution inside the Ge layer is used to calculate the absorption profile and optical generation rate. The optical generation rate is then imported into CHARGE to perform the electrical simulations. Single frequency simulations are appropriate for narrow band devices where the mode profiles are relatively constant over the wavelength range of operation.

### Step 2:

The CHARGE solver is first used to calibrate the material properties in order to fit the calculated dark current to the dark current in the publication. This step does not require the generation rate data from FDTD. The dark current is sensitive to bulk and surface recombination rate material parameters. Run a parameter sweep over the Ge bulk recombination lifetime, surface recombination velocity at Ge/SiO2 interface, and the order of temperature dependency for surface recombination (eta). Once the recombination rates are optimized for a good fit of dark current values at different temperatures they will be imported into steps 3 (photocurrent) and 4 (bandwidth) and the dark current will be imported into the compact model for circuit simulation in INTERCONNECT in step 5.

### Step 3:

To calculate the photo current, we need to import the optical generation rate from step 1 and use calibrated recombination parameters from step 2. Since the photodetector is relatively uniform along its length, the 3D optical generation rate from FDTD is averaged along the length, which allows doing 2D CHARGE simulations. This reduces the electrical simulation time significantly. Once the photo current is available, it is possible to calculate the responsivity as well, which will be later imported into the compact model in step 5 for circuit simulation.

### Step 4:

The bandwidth of the photodetector is calculated by running a CHARGE small signal AC simulation with optical source having both DC and AC components. The bandwidth can also be calculated by running a transient simulation and performing a Fourier transform of the impulse current response. For this purpose, a global shutter is used to simulate turning on of the optical generation rate. The transient method is described in the appendix. The 3dB bandwidth will be imported into the compact model in step 5 for circuit simulation with INTERCONNECT.

### Step 5:

Using simulation results from previous steps, we create a compact model of the photodetector in INTERCONNECT. It is then possible to perform circuit simulations. We calculate the eye diagram at different data rates.

### Compact model generation with CML Compiler

To generate the compact model of the photodetector with CML Compiler, simply skip Step 5 and provide the data extracted in Steps 1 to 4 to CML Compiler. The Parameter extraction for CML Compiler section uses the workflow management to automatically go through all the device level steps and extract the data for CML Compiler in the required format. Advanced users already familiar with this example can proceed to this section directly. If you are new to this example, we strongly recommend going through the preceding sections and learn about the individual steps before moving to the Parameter extraction for CML Compiler section.

### Other types of photodetectors

For examples of Ge-on-Si lateral and InP based uni-travelling carrier photodetector see ‘Taking the model further’ section.

### Detector length optimization

To optimize the photodetector length for maximum absorption it is much more efficient to run MODE (EME solver) parameter sweep than full FDTD simulations. For more information see Appendix.

## Run and results

Instructions for running the model and discussion of key results

### Step 1: Absorption and generation rate

1.Open vertical_photodetector_FDTD.fsp using FDTD.

2.Run the simulation. Since the photodetector length is 50 um and taper length is 18 um, this simulation will takes a few minutes to run.

3.Run the analysis by right clicking on ‘Generation_rate’ object in ‘Objects Tree’ window. This will calculate the generation rate due to absorption in Ge for 1 W injection source. The result will be saved in vertical_photodetector_generation.mat.

### Step 2: Dark current fitting

1.Open the original file vertical_photodetector_CHARGE.ldev. This file has a nested parameter sweep set up to find the optimal material recombination parameters to match the dark current from the publication. The optical generation rate object ‘gen’ is disabled since we are interested in dark current. The reverse bias is set to -1 V.

2.Run the ‘life_time’ sweep in ‘Optimizations and Sweeps’ window. Since the nested sweep needs 135 simulations to run it may take a few hours. The parameters to sweep are bulk recombination time in Ge, surface recombination velocity at Ge-SiO2 interface, temperature dependence parameter eta for the surface recombination velocity, and global temperature.

3.Run script vertical_photodetector_dark_current_sweep.lsf, which will find the optimal parameters to fit the dark current from the publication and print them (eta=-3.8, surface recombination velocity=225000 cm/s, tau=1.5e-009 s), as well as plot the dark current vs. temperature curve and its comparison with the publication. The dark current at -1V reverse bias and 300K temperature is 0.34 uA, which agrees well with the publication. [Note that the actual device has a length of 100 um while the simulated device has a length of 50 um. This is why the script multiplies the simulation result by a factor of 2 to calculate the dark current.]

### Step 3: Photocurrent and responsivity

1.Open the original file vertical_photodetector_CHARGE.ldev.

2.Update the simulation setup to measure the photocurrent and responsivity. The following script will make the appropriate modifications. Additionally, remember to use recombination parameters found in the previous step.

#Make sure the recombination rate parameters found in Step 2 are set.
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','recombination.trap assisted.active model','Universal Temperature');
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','recombination.trap assisted.taun.universal temperature.A',1.5e-9);
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','recombination.trap assisted.taup.universal temperature.A',1.5e-9);
setnamed('CHARGE::boundary conditions::surface_recombination_Ge_SiO2','electron velocity',2250); #m/s
setnamed('CHARGE::boundary conditions::surface_recombination_Ge_SiO2','enable temperature model',true);
setnamed('CHARGE::boundary conditions::surface_recombination_Ge_SiO2','electron eta',-3.8);

#Enable optical generation rate object ‘gen’ and set power scale factor to give around 1 mA short circuit current
#(remember that the optical generation rate from FDTD was normalized to 1 W). This object already has generation
#data imported from file vertical_photodetector_generation.mat:
setnamed('CHARGE::gen','enabled',true);
setnamed('CHARGE::gen','scale factor',1.2e-3);

#In ‘anode’ object set reverse bias sweep:
setnamed('CHARGE::boundary conditions::anode','sweep type','range');
setnamed('CHARGE::boundary conditions::anode','range start',0.25);
setnamed('CHARGE::boundary conditions::anode','range stop',-2);
setnamed('CHARGE::boundary conditions::anode','range num points',26);

3.Run the simulation.

4.To plot the normalized photo current and responsivity vs. voltage run the following lines:

Pin=1.2e-3; # Watts
I=-2*getdata("CHARGE", "anode.I");
I_norm=I/max(I);
V=linspace(-0.25,2,26);
Resp=I/Pin;
plot(V,I_norm,"photo detector bias voltage(v)","I_(photo,norm)=I_(photo)/I_(norm)  a.u ");
plot(V,Resp,"photo detector bias voltage(v)","Responsivity (A/W) ");

The responsivity at -1 V reverse bias is 0.95 A/W, which agrees well with the publication.

Step 4: Small signal AC optical bandwidth.

In this approach a small-signal perturbation is added to the DC optical generation rate and the small-signal response (photocurrent) of the photodetector is recorded as a function of the frequency of the small-signal.

1.Open the original file vertical_photodetector_CHARGE.ldev.

2.Set recombination parameters using the first block of code in the script in step 3.2.

3.Use the following lines to set the remaining parameters:

#Turn on high field mobility model in Ge
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','electronic.l.mun.high field.active model','monotonic');
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','electronic.l.mun.high field.driving field','grad Phi');
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','electronic.l.mup.high field.active model','monotonic');
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','electronic.l.mup.high field.driving field','grad Phi');

#Make convergence more stable when high field mobility model is turned on
setnamed('CHARGE','global iteration limit',100);
setnamed('CHARGE','use default update limits',false);
setnamed('CHARGE','dds max update',2);
setnamed('CHARGE','poisson max update',2);

#Set ssac simulation and small signal optical source:
setnamed('CHARGE','solver mode','ssac');
setnamed('CHARGE','small signal ac optical generation',true);
setnamed('CHARGE','frequency spacing','log');
setnamed('CHARGE','log start frequency',100e6);
setnamed('CHARGE','log stop frequency',20e9);
setnamed('CHARGE','num frequency points per dec',10);

#Enable the optical generation rate object and set scale factor so that the DC current
#is approximately equal to the peak impulse current in the publication of around 0.1 mA.
#DC current should be multiplied by 2 to account for simulation domain symmetry
#(only half of the contact is simulated). This object should already have data file imported:
setnamed('CHARGE::gen','enabled',true);
setnamed('CHARGE::gen','scale factor',1.2e-4);

#Set reverse bias sweep.
setnamed('CHARGE::boundary conditions::anode','sweep type','range');
setnamed('CHARGE::boundary conditions::anode','range start',0);
setnamed('CHARGE::boundary conditions::anode','range stop',-1);
setnamed('CHARGE::boundary conditions::anode','range num points',3);

4.Run the simulation.

5.Run script vertical_photodetector_3dB_ssac_bandwidth.lsf, which will plot the normalized small signal AC contact current vs frequency at the last DC operating point (-1 V) along with the 3dB cutoff line. It will also save the frequency response and 3dB bandwidth in files. The bandwidth is found to be around 4 GHz at -1 V reverse bias agreeing well with the publication.

### Step 5: Compact model and circuit simulation

1.Open file vertical_photodetector_INTERCONNECT.icp which represents a photonic circuit consisting of a CW laser source with 0.12 mW power (from step 4) and 1.55 um wavelength (from step 1), whose amplitude is modulated according to a random series of bits, driving a photodetector with 0.95 A/W responsivity (from step 3), 4 GHz bandwidth (from step 4), and 0.34 uA dark current (from step 2). The finite bandwidth of the photodetector is modeled by including an RC low pass filter with the cut-off frequency equal to the bandwidth.

2.Run 3 simulations, corresponding to different bit rates that can be set in the field ‘bitrate’ of ‘Root Element’: 2.5 Gb/s, 10 Gb/s, and 25 Gb/s.

3.For each of the 3 simulations visualize the eye diagram that can be accessed in ‘Result View’ window after selecting element ‘EYE_1’. Among other things, the eye diagrams shows the finite bandwidth of the photodetector with increasing bit rates of the source.

## Important model settings

Description of important objects and settings used in this model

### Step 1: FDTD simulation of absorption and optical generation rate

Ge absorption: At 1.55 um most of the optical absorption is in Ge layer on top of Si, while Si absorption can be neglected. The region where the optical generation rate is calculated can be limited to Ge layer.

Mode source: Only the fundamental mode is considered, which is calculated at the central frequency of the injected pulse at 1.55 um. The mode profile at other frequencies of the injected pulse is assumed constant, which is a good approximation for narrow band inputs.

Ge absorption layer length: While this length is reported to be 100 um in the publication, it is limited in the simulation to 50 um to minimize the simulation time. This is a good approximation as most of the light gets absorbed in the first 50 um (refer to Detector length optimization section in the Appendix).

Boundary conditions: y min boundary is set to anti-symmetric according to the symmetry rules of the fundamental TE mode. This will reduce the simulation region by a factor of two.

Generation rate analysis group: This object calculates the absorption and generation rate according to a theory described in the appendix. The optical source input power is normalized to 1 W, by setting the source intensity parameter to be equal to 1/(source area), where source plane is normal to x direction and from the source object it can be seen to be 15 um2.

### Step 2: CHARGE simulation of the dark current

Trap recombination (Rsrh): This Ge material parameter is one of the parameters in the sweep. The fitting of this parameter enables a good match of simulated and experimental dark currents. It is a reasonable assumption that this parameter will be process dependent and may need tweaking.

Surface recombination at Ge-SiO2 interface: The surface recombination velocity as well as its temperature dependence at the Ge-SiO2 interface are the other two parameters that are expected to play an important role in the dark current and whose values may be subject to some uncertainty, so they are also included in the sweep.

Doping: Doping is an important parameter that determines the internal electric field, which in turn determines the electron-hole separation dynamics and current flow. Therefore, it is important to create doping objects to resemble the doping profile in the real device as accurately as possible. This is especially important in devices with very high internal fields.

Surface recombination at other boundaries: Every interface has, to at least some extent, traps that lead to increased dark current, so it is important to include surface recombination objects at Si-Metal, Ge-Metal, and Si-Ge interfaces, with some reasonable values.

Photodetector length: Since CHARGE simulation is 2D the length of device should be specified in the field ‘norm length’ in ‘CHARGE’ edit window.

### Step 3: CHARGE simulation of the photo current and responsivity

Here it is important to reuse all the parameters found in Step 2.

Optical generation rate: The generation rate object calculated with FDTD was for 1 W input power. Here, it is important to properly set ‘scale factor’ in ‘gen’ object to represent the actual power used in the publication. An input power of 1.2 mW has been used, which corresponds to ~1 mA of short circuit current (i.e. current for zero bias) reported in the paper.

### Step 4: CHARGE simulation of the 3 dB bandwidth

Here it is important to reuse all the parameters found in Step 3.

Optical generation rate: The generation rate object calculated with FDTD was for 1 W input power. Here, it is important to properly set ‘scale factor’ in ‘gen’ object to represent the actual power used in the publication. Again, the paper reported the peak impulse response of 0.1 mA, so 0.12 mW input power was used (proportionally 10 times smaller than in Step 3).

High field mobility model: The photodetector bandwidth will depend on how fast generated electron-hole pairs can be separated under the internal electric field and how fast they will reach contacts. For this reason, it is important to turn on the high-field mobility model (i.e. velocity saturation) in material properties to avoid overestimating the bandwidth. In this example, we turned on the high field mobility model in Ge layer only as the electric field is highest there.

Small signal AC parameters: In order to calculate the 3dB bandwidth we need to define the proper frequency range and number of points. This can be done in CHARGE edit window under Small signal AC tab. Usually, log scale for frequency has to be used to accommodate large frequency ranges. Small signal perturbation value will not have an impact on bandwidth because the current response is linear in perturbation and the amplitude will be cancelled when taking the ratio of currents to find the 3dB drop.

### Step 5: INTERCONNECT simulation of the photodetector eye diagram

Circuit simulation in INTERCONNECT is done using an amplitude modulated CW laser source and assuming -1 V reverse bias of the photodetector. Since the bandwidth due to the amplitude modulation is much smaller than the optical frequency, using single frequency parameters for responsivity (steps 1 and 3) is a good approximation.

Bit rate: Random sequence of bits drives the amplitude modulation of the CW laser source. This quantity should be set at the root element, so that it can be reused in all the elements that need to know about it, which are in this case the PRBS generator and the eye diagram analyzer. To set the bit rate at these lower level elements set their bitrate expression field to %bitrate%.

Photodetector dark current and response: The photodetector circuit element accepts responsivity parameter as a constant or as a frequency dependent table. In this simulation we will set constant responsivity that was calculated in step 3 for a single frequency (1.55 um) and photodetector bias -1 V. Dark current is also set as a constant at -1 V bias.

Photodetector bandwidth: The easiest way to include a finite bandwidth of the photodetector in INTERCONNECT is by adding a low pass RC filter element, connect it to the output of the photodetector element, and set its cutoff frequency to the value of the 3dB bandwidth calculated in step 4.

CW laser frequency: this frequency should correspond to the optical source frequency in step 1 (1.55 um).

## Updating the model with your parameters

Instructions for updating the model based on your device parameters

When updating the model to match your parameters, it is important to remember that multiple solvers and simulation files are involved. Changes must be made consistently in all the files. Some key parameters are listed below:

Photodetector geometry:

Change the photodetector length or width in steps 1-4. Rerun step 1 and import new optical generation rate into steps 3-4. Rerun step 2 with possibly different sweep recombination parameters or with fixed parameters and rerun to get the dark current and set the same recombination rate parameters (if changed) in steps 3-4. Rerun steps 3-4. Update the dark current, responsivity, and bandwidth parameters in step 5 and rerun.

Change the taper length in step 1 and rerun. Import new optical generation rate into steps 3-4 and rerun. Update the responsivity and bandwidth parameters in step 5 and rerun.

Optical source frequency: Change the source frequency in step 1 and rerun. Import new optical generation rate in steps 3-4 and rerun. Update the responsivity and bandwidth parameters and source frequency in step 5 and rerun.

Material: Change photodetector material in steps 1-4. Rerun step 1 and import new optical generation rate into steps 3-4. Rerun step 2 with possibly different sweep recombination parameters or with fixed parameters and rerun to get the dark current and set the same recombination rate parameters (if changed) in steps 3-4. Rerun steps 3-4. Update the dark current, responsivity, and bandwidth parameters in step 5 and rerun.

Doping profile: Change the doping profile in CHARGE simulations in steps 2-4. Rerun step 2 with possibly different sweep recombination parameters or with fixed parameters and rerun to get the dark current and set the same recombination rate parameters (if changed) in step 3-4. Rerun steps 3-4. Update the dark current, responsivity, and bandwidth parameters in step 5 and rerun.

Photodetector reverse bias: Change bias in step 2 and rerun using fixed recombination parameters. Step 3 already has bias sweep, so may not need to be rerun. Change bias in step 4 and rerun. Update the dark current, responsivity, and bandwidth parameters in step 5 at the new reverse bias and rerun.

## Parameter Extraction for CML Compiler

Instructions for parameter extraction for CML Compiler for compact model generation

This section describes how to automatically run the device level simulations of the vertical photodetector and extract the parameters for CML Compiler.  Note that the simulation workflow is identical to the one described at the beginning of this example except for two changes:

the tuning of the recombination rates is skipped and it is assumed that the values such as carrier lifetime and surface recombination velocity are known,

the bandwidth calculation in Step 4 is done using transient simulation instead of small-signal ac (for information about the transient simulation see Appendix: Step 4 using transient simulation).

Once the parameters are extracted in the required format, they can be used in CML Compiler to generate the compact model. Note that the running of the CML Compiler is beyond the scope of this example. For more information about CML Compiler visit the product page.

1.Open the vertical_photodetector_CHARGE.ldev simulation file.

2.Select and run the workflow object labeled parameter_extraction.

Some important considerations for running the workflow object:

The Lumerical API must be configured beforehand. For Windows users the configuration is done automatically during installation of the software; however, for Linux and Mac users some additional steps are required, as explained here.

The workflow creates a subfolder with the name vertical_photodetector_CHARGE_parameter_extraction and copies all the project and script files inside it. The workflow only runs the project and script files in this subfolder and all the original project and script files in the parent folder remain unchanged (except for the vertical_photodetector_CHARGE.ldev file which will contain the results from the workflow).

The data file generated by the workflow will be saved in the parent folder along with the original project and script files.

The different components of the workflow object are described below:

parameter_extraction: This is the workflow object that drives all the device level simulations and extracts the data.  It contains user defined parameters such as the names of the different project files, the simulation wavelength (for optical simulations), and the name and type (.mat or .json supported) of the data file.

step_1_FDTD: This is a script task that runs the Step 1 in the simulation workflow. It uses Lumerical API to open FDTD and loads the vertical_photodetector_FDTD.fsp project file and runs the simulation. Once the simulation finishes it runs the generation analysis group to calculate the optical generation rate.

step_2_dark_current: This step contains a script task to set up the simulation for a bias sweep followed by a solver task to run the CHARGE simulation. Once simulation finishes it records the current at the anode contact which is the dark current of the photodetector.

step_3_photocurrent: This step contains two script tasks and a solver task. The 'setup' script task sets up the simulation by enabling the optical generation (gen) object and by loading the generation data saved by FDTD.  The solver task then runs the CHARGE simulation and records the anode current (photocurrent). The 'analyze' script task then calculates the responsivity from the photocurrent.

step_4_optical_BW: This step also contains two script tasks and a solver task. The 'setup' script tasks sets up a transient simulation for bandwidth calculation. The solver task then runs the simulation and finally the 'analyze' script task calculates the 3dB cutoff frequency of the photodetector.

create_datafile: This is a script task that takes all the data from Step 1 to 4 and combines them to create the data file. Any additional data required by the CML Compiler besides the simulations results are provided in this step as part of the script (e.g. saturation power and thermal noise).

## Taking the model further

Information and tips for users that want to further customize the model

There are other photodetector examples in the Photonic Integrated Circuits > Photodetectors section that give details about simulating other important types of photodetectors. These examples focus on some of the important steps 1-5 (mainly FDTD and CHARGE simulations without parameter sweeps), but not all. The users can refer to those examples to find out how to simulate those steps for other types of photodetectors:

Germanium-on-Silicon Lateral Photodetector: An example of a lateral p-i-n photodetector.

InP/InGaAs Uni-Traveling Carrier Photodetector: An example of a uni-travelling carrier photodetector optimized for high speed.

Additional documentation, examples and training material

## Appendix: Detector length optimization

It is important to determine the optimum device dimension, such as device length, since it may affect its performance, for example its ability to absorb light. However, such calculations (e.g. absorption vs. device length), can be time consuming when using FDTD. A length sweep of this VPD device can be done efficiently using the EME solver. The VPD structure is divided into several EME cell groups. Since the Ge structure has a uniform cross-section along the propagation axis, it is ideal to use the EME solver to sweep the length. In port 1, the fundamental TE mode is injected. Light is then coupled from the silicon waveguide to the Ge structure, and therefore light is absorbed. In this example, an analysis group is used to calculate the absorption.

The taper is not included in the structure and the waveguide is assumed to be constant in width that is equal to the wider end of the taper. This is an approximation because the taper will cause transmission to higher modes of such wide waveguide, while we only consider the fundamental mode. However, it is a good approximation, since around 80% of the power still remains in the fundamental mode after transmission through the taper.

Open vertical_photodetector_absorption_length_optimization.lms with MODE and run the simulation to find the modes. Once the simulation is run, we can make re-use of the calculated eigenmodes and the overlap results for propagation and return absorption as a function of device length. An absorption vs device length plot can be generated using vertical_photodetector_absorption_length_optimization.lsf. It is expected to observe a larger absorption as the device length increases. We can see that most of the light is absorbed in the first 50 um of the photodetector.

EME convergence testing: It is also important to check results convergence for the EME simulations. Number of eigenmodes used in the simulation is usually a critical parameter. In the plot below, the absorption of a 50 um long Ge VPD starts to converge when more than 70 modes are used in the EME simulations. Use vertical_photodetector_mode_convergence.lsf to generate the plot.

The number of modes used in the the EME calculations also affect the E-field profile. When more modes are used, we can observe that the field profiles can converge and become more comparable to the FDTD results. For devices that support a lot of modes, it is recommended to check results convergence with respect to the number of modes.

## Appendix: Calculating power absorption

As light is incident on the Germanium layer, it gets absorbed. The absorption per unit volume can be calculated from the divergence of the Poynting vector,

$$P_{abs}=-0.5\textrm{real}\left(\vec{\nabla}\cdot\vec{P}\right)$$

It is possible to calculate the absorption directly from this formula (see the Divergence of Poynting vector section), but divergence calculations tend to be very sensitive to numerical problems. Fortunately, there is a more numerically stable form. It can be shown that the above formula is equivalent to

$$P_{abs}=0.5\textrm{real}\left(i\omega\vec{E}\cdot\vec{D}^*\right)$$

With a little more work, we get the desired result

$$P_{abs}=-0.5\omega\left|{E}\right|^2\textrm{imag}\left(\epsilon\right)$$

To calculate the absorption as a function of space and frequency, we only need to know the electric field intensity and the imaginary part of the permittivity.  Both quantities are easy to measure in an FDTD simulation. The number of absorbed photons per unit volume can then be calculated by dividing this value by the energy per photon:

$$g=\frac{P_{abs}}{\hbar\omega}=\frac{-0.5\left|E\right|^2\textrm{imag}\left(\epsilon\right)}{\hbar}$$

The absorbed photons will generate electron hole pairs which will be separated out of the depletion region by the electric field and produce a flow of current.

## Appendix: Step 4 using transient simulation

Alternative method of calculating bandwidth in step 4 using transient simulation

1.Open the original file vertical_photodetector_DEVICE.ldev.

2.Set recombination parameters using the first block of code in the script in step 3.2.

3.Use the following lines to set the remaining parameters:

#Turn on high field mobility model in Ge
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','electronic.l.mun.high field.active model','monotonic');
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','electronic.l.mun.high field.driving field','grad Phi');
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','electronic.l.mup.high field.active model','monotonic');
setnamed('materials::Ge (Germanium) thin film::Ge (Germanium) thin film','electronic.l.mup.high field.driving field','grad Phi');

#Make convergence more stable when high field mobility model is turned on
setnamed('CHARGE','global iteration limit',100);
setnamed('CHARGE','use default update limits',false);
setnamed('CHARGE','dds max update',1);
setnamed('CHARGE','poisson max update',1);

#Set transient simulation and optical source shutter:
setnamed('CHARGE','solver mode','transient');
setnamed('CHARGE','transient min time step',100e-15); #s
setnamed('CHARGE','transient max time step',5e-12); #s
setnamed('CHARGE','shutter mode','step on');
setnamed('CHARGE','shutter ton',1e-12); #s
setnamed('CHARGE','shutter tslew',2e-12); #s
setnamed('CHARGE','shutter slew function','log');
setnamed('CHARGE','shutter slew cutoff',1e-6);

#Enable the optical generation rate object and set scale factor so that the step on current is approximately equal to the peak impulse current
#in the publication of around 0.1 mA. This object should already have data file imported:
setnamed('CHARGE::gen','enabled',true);
setnamed('CHARGE::gen','scale factor',1.2e-4);

#Set transient reverse bias:
setnamed('CHARGE::boundary conditions::anode','bc mode','transient');
t=[0,500e-12]; #s
V=[-1,-1]; #V
setnamed('CHARGE::boundary conditions::anode','transient voltage time steps',t);
setnamed('CHARGE::boundary conditions::anode','transient voltage table',V);

4.Run the simulation. ‘Global Source Shutter’ in edit window of ‘CHARGE’ object under ‘Transient’ tab is set up to turn on the optical generation rate object ‘gen’ as a step function.

5.Run script vertical_photodetector_3dB_bandwidth.lsf, which will first calculate the impulse response from the step response and then perform a Fourier transform to find the frequency response. It will plot the impulse and step responses, as well as the 3 dB bandwidth, which is found to be 4 GHz at -1 V reverse bias agreeing well with the publication.

## Appendix: Transient vs. small signal AC bandwidth simulation

Comparison of transient and small signal AC bandwidth calculation

### Comparison

Transient + Fourier transform

Small signal AC

Large signal1

YES

NO

Simple setup2

NO

YES

Efficient simulation3

NO

YES

No post-processing4

NO

YES

1 Transient simulation is fully nonlinear and it can capture all the effects of a large signal. Small signal simulation is based on explicit linearization of drift-diffusion equations around the DC operating point, so any nonlinear effects arising from the presence of a large signal will be missed. Small signal AC simulation is more accurate for smaller signal as shown in the figures below (optical source power for the left-hand side figure is 1.2e-4 W and for the right-hand side figure is 1.2e-5 W):

2 Bandwidth calculated from a transient simulation will be sensitive to the following parameters:

Time step size -- even if the transient simulation converges nonlinear drift-diffusion equations successfully at each time step, the users may want to perform a result convergence test with respect to the time step size, by limiting the global min and max time step values in CHARGE’s edit window under Transient tab (the most stringent test would be to set max and min to the same small value). Sometimes smaller time steps will be required to get a more accurate and stable result for the bandwidth.

Total simulation time -- it must be long enough for the device to reach steady state.

Shutter slew time -- it should be small enough so that the shutter bandwidth is larger than the device bandwidth.

The user must ensure that the bandwidth value is converged with respect to these parameters. Also, transient simulations, being more numerically complex, are usually more difficult to converge than steady state simulations.

3 Transient simulation usually takes longer because one nonlinear equation needs to be solved for each time step for each steady state bias. Small signal simulation just needs a steady state solution for each bias.

4 When transient simulation is used to calculate the bandwidth, the user needs to perform a Fourier transform as a post-process, while small signal simulation directly produces frequency domain data.

Copyright Lumerical Inc. | Privacy | Site Map