DOCUMENTATION
Si PN DIODE 1D |
TUTORIALS |
In this tutorial we will show a simple 1D Si pn diode example.
The semi-classical transport simulation of electrons and holes is based on the driftdiffusion approximation.
where P is the electric polarization due to e.g. piezoelectric effects and R is the net recombination rate, i.e. recombination rate minus generation rate.
In order to execute correctly the example you should have the following files in the same working directory:
The mesh has been obtained from the GMSH geo script file diode_1D.geo.
MODELING OF THE DEVICE WITH GMSH
In this script, first the geometrical entities Points and Lines are defined. Then, two physical regions are defined, each associated to one of the two geometrical entities:
Physical Line("p_side") = {1}; In this way, these physical regions are made available for tiberCAD, and will be associated to a tiberCAD Region (see in the following). Then, two Physical Points are defined, anode and cathode, and associated to the first and to the last point of our 1D device.
Physical Point("anode") = {1}; These points are needed to impose some boundary conditions and in this way they are made available for TiberCAD, and will be associated each to a boundary condition region (see in the following). A non-interactive mode is also available in GMSH, without graphical user interface. For example, to mesh this first 1D tutorial in non-interactive mode, just type:
where diode.geo is the geometrical description of the device with GMSH syntax. Some command line options are
DEVICE STRUCTURELet's have a look to the input file; for further details you can refer to the reference manual.
Device { meshfile = diode_1D.msh material = Si Region n_side { Doping { Nd = 1e18 type = donor } } Region p_side { Doping { Nd = 1e18 type = acceptor } } }
First we define the device structure: it is composed by two Regions, both constituted of the material Silicon, respectively n and p doped with a concentration of 1e18 cm-3.
SIMULATION MODULESNow, we have to define the simulations which we are going to execute in our calculations.
One simulation is a particular set of equations, boundary conditions, physical parameters, solver parameters, which describes a physical problem to be solved by TiberCAD. TiberCAD, being a multiphysics software tool, includes several simulation models, each one describing a physical problem to be solved, e.g driftdiffusion (to solve Poisson and DriftDiffusion equations), efaschroedinger (to solve Schroedinger equation in effective mass approximation), Elasticity (to calculate macroscopical strain and ..) and others. To create a TiberCAD simulation, we first have to declare the tiberCAD Module to which our simulation belongs:
Module driftdiffusion { name = dd
Here, we declare that the simulation to be created will belong to the Module driftdiffusion (
Module driftdiffusion { name = dd plot = (Ec, Ev, Eg, ElField, ElPotential, eQFermi, hQFermi, eDensity, hDensity, NetRecombination, eCurrentDensity, hCurrentDensity, CurrentDensity, ContactCurrent, eMobility, hMobility, IonizedDonors, IonizedAcceptors) Physics { particle_density { statistics = boltzmann } # use a field dependent mobility model with the # gradient of the electrochem. potential as field # parameter mobility field_dependent { low_field_model = doping_dependent } # use SRH and Auger recombination recombination (srh, auger) {} } } Thus, in this simulation we are going to calculate Poisson and Drift-diffusion (Module driftdiffusion) for all the device.
Next, the Physics section follows. Here, for example, we choose a Schottky-Read-Hall (SRH) and Auger models to describe recombination in our driftdiffusion calculations.
recombination (srh, auger)
Also, we choose a field dependent model to describe electron and hole mobility (
mobility field_dependent { low_field_model = doping_dependent }Now, we have to specify the Boundary conditions for the PDE problem represented by the simulation dd : they are defined in Contact blocks.
Here, two boundary conditions are defined, corresponding to the two contacts of our pn diode, anode and cathode.
Contact anode { type = ohmic voltage = $Vb[0.0] } Contact cathode { type = ohmic voltage = 0.0 }
Here the
Besides, the type of Boundary condition is assigned (in this case
Note that the anode voltage is expressed by the notation
SWEEP BLOCK
Module sweep { variable = $Vb solve = dd start = 0.0 stop = 1.2 steps = 60 plot_data = true # to write data for each step }
The sweep block allows us to perform the calculation of the IV characteristic of the diode: it uses the variable
RUN SIMULATIONSFinally, in Simulation section, we define the actual simulation to be performed, specified by
this determines the execution of
Results of the calculation will be in ascii column data format (
Simulation { verbose = 2 solve = sweep resultpath = diode1D_results output_format = grace }
Now we can run TiberCAD.... Then, the defined Modules are initialised and the selected options and available output variables are shown on screen
If all is ok, the calculation is started:
Ramping to sweep valueThen, current continuity equations are solved together with Poisson eq., for each step of the sweep. The voltage and current found for each contact is displayed: Ramping to sweep value $Vb = 0.02
OUTPUT
Now, the output directory contain the simulation results, as defined in In dd_Vb_0_msh.dat and all the other files for each bias step, we have the output for the quantities which have been calculated, e.g. conduction and valence bands, (quasi)fermi levels, electron and hole density and mobility. Here is, for example, the band profile obtained at the last step of calculation, for V = 2V.
The IV characteristic of the diode is contained in the file sweep_dd.dat, where the currents at both the contacts are reported.
In the file dd_Vb_0_msh.dat etc., you can find also the other quantities which have been calculated, in this case the electron, hole and total current density (Jn_x, Jp_x , J_x).
ATTACHMENTS |