secs2d
A Drift-Diffusion simulator for 2d semiconductor devices
Select category:
Utilities
Finite Element matrix assembly functions
Physical constants and material properties
DDGOX
DDGOXT
METLINES
QDDGOX
ThDDGOX
[bp,bn]=Ubern(x) computes Bernoulli function B(x)=x/(exp(x)-1) corresponding to to input values Z and -Z, recalling that B(-Z)=Z+B(Z)
Ubernoulli
Not implemented.
Umediaarmonica
Not implemented.
UDXappend2Ddata(filename,p,t,u,attr_name,attr_rank,attr_shape)
UDXoutput2Ddata(filename,p,t,u,attr_name,attr_rank,attr_shape,endfile)
UDXoutput2Dtimeseries(filename,p,t,u,attr_name,attr_rank,attr_shape,time)
prcomputes cycling pattern for RRE extrapolation:
function r=columns(m)
Bmat = Ucompmass2 (imesh,Bvect,Cvect);
[odata,omesh] = Udescaling(imesh,idata);
Udopdepmob (mu,par,D);
Udrawedge(mesh);
mob = Ufielddepmob(imesh,u0,F,vsat,b) Computes field dependent mobility
c=Udriftdiffusion(mesh,Dsides,guess,M,U,V,Vth,u) solves the drift diffusion equation $ -div ( u ( \nabla (n Vth) - n \nabla V)) + M = U $
mob = Ufielddepmob(imesh,u0,F,vsat,b) Computes field dependent mobility
[jx,jy]=Udrawcurrent(omesh,n,psi,psith,coeffe);
[jx,jy]=Udrawcurrent2(omesh,n,psi,psith,coeffe);
Builds the Scharfetter-Gummel approximation of the vector field
[fd]=Uinvfermidirac(eta,par);
[mesh,data]=ise2pde3(grid_file,pref,data_file,load_data,out_file) ise2pde3 estrae dati dal formato DF-ISE di ISE a pdetool di Matlab grid_file contiene il nome del file di griglia da estrarre pre
mesh=Ujoinmeshes(mesh1,mesh2,side1,side2)
mesh=Umeshproperties(mesh) precomputes some useful mesh properties
Dnodes=Unodesonside(mesh,Dsides);
[Fx,Fy]=Updegrad(mesh,F);
Udrawedge(mesh);
Updemesh(varargin);
function r=rows(m)
s = Urrextrapolation(X) RRE vector extrapolation see Smith, Ford & Sidi SIREV 29 II 06/1987
[odata,omesh] = Uscaling(imesh,idata);
SG=Ufastscharfettergummel2(mesh,v,acoeff,bcoeff)
guess = Usmoothguess(mesh,new,old,Dsides);
[p,e,t]=Ustructmesh(x,y,region,sides,varargin)
[p,e,t]=Ustructmesh(x,y,region,sides)
[p,e,t]=Ustructmesh(x,y,region,sides)
[p,e,t]=Ustructmesh(x,y,region,sides)
[e,t]=Usubdomains(p,t,rcts,sidelist);
[omesh,onodes,oelements]=Usubmesh(imesh,intrfc,sdl,short)
Utemplogm
Not implemented.
PKG_ADD:# Run this only if the package is installed PKG_ADD:if (! exist (fullfile (fileparts (mfilename ("fullpath")), "inst"), "dir")) PKG_ADD: dirlist= {"Utilities","DDGOX","ThDDGOX","QDDGOX","M
c=Udriftdiffusion(mesh,Dsides,guess,M,U,V,u) solves the drift diffusion equation $ -div ( u ( \nabla n - n \nabla V)) + M = U $
L = Ucomplap (mesh,coeff) Builds the FEM matrix for the the discretization of the - Laplacian
L = Ucompconst (mesh,coeffn,coeffe) Builds the FEM vector for the the discretization of the RHS
Ucompmass
Not implemented.
Builds the Scharfetter-Gummel matrix for the discretization of the LHS of the equation:
This file is part of
[current,divrg]=DDGOXddcurrent(mesh,Sinodes,data,contacts);
n=DDGelectron_driftdiffusion(mesh,Dsides,nin,pin,V,un,tn,tp,n0,p0) IN: v = electric potential mesh = integration domain ng = initial guess and BCs for electron density p
[odata,it,res] = DDGOXgummelmap (imesh,Dsides,.
p=DDGhole_driftdiffusion(mesh,Dsides,nin,pin,V,up,tn,tp,n0,p0) IN: v = electric potential mesh = integration domain nin = initial guess and BCs for electron density pin =
[V,n,p,res,niter] = DDGOXnlpoisson (mesh,Dsides,Sinodes,Vin,nin,pin,.
DDGOXplotresults(mesh,Simesh,n,p,V,Fn,Fp,gi,nrm,step);
n=DDGelectron_driftdiffusion(mesh,Dsides,nin,pin,V,un,tn,tp,n0,p0,weight)
function [odata,it,res] = DDGOXTgummelmap (imesh,Dsides,.
p=DDGhole_driftdiffusion(mesh,Dsides,nin,pin,V,un,tn,tp,n0,p0,weight)
w = QDDGOXcompdens(mesh,Dsides,win,vin,fermiin,d2,toll,maxit,verbose);
[current,divrg]=QDDGOXddcurrent(mesh,Sinodes,data,contacts);
[odata,it,res] = QDDGOXgummelmap (imesh,Dsides,.
[V,n,p,res,niter] = QDDGOXnlpoisson (mesh,Dsides,Sinodes,SiDnodes,.
ThDDGOXMOBN0STD
Not implemented.
ThDDGOXMOBN1STD
Not implemented.
ThDDGOXMOBP0STD
Not implemented.
ThDDGOXMOBP1STD
Not implemented.
ThDDGOXTWN0STD
Not implemented.
ThDDGOXTWN1STD
Not implemented.
ThDDGOXTWP0STD
Not implemented.
ThDDGOXTWP1STD
Not implemented.
[current,divrg]=DDGOXddcurrent(Simesh,Sinodes,data,contacts);
n=ThDDGOXelectron_driftdiffusion(mesh,Dnodes,n,pin,V,Tn,un0,un1,tn,tp,n0,p0)
function [odata,nrm]=ThDDGOXeletiteration(imesh,Dsides,.
[odata,it,res] = ThDDGOXgummelmap (imesh,Dsides,.
p=ThDDGOXhole_driftdiffusion(mesh,Dnodes,nin,p,V,Tp,monp0,mobp1,tn,tp,n0,p0)
[V,n,p,res,niter] = DDGOXnlpoisson (mesh,Dsides,Sinodes,Vin,nin,pin,.
[thermdata,innrm] = ThDDGOXthermaliteration(imesh,Dsides,.
Tn = ThDDGOXupdateelectron_temp(mesh,Dnodes,Tn,n,p,Tl,Jn,E,mobn,.
Tp = ThDDGOXupdatehole_temp(mesh,Dnodes,Tp,n,p,Tl,Jp,E,mobp0,.
Tl = ThDDGOXupdatelattice_temp(mesh,Dnodes,Tl,Tn,Tp,n,p,.