solving 1D drift diffusion model for a semiconductor using FDTD. Can anyone rectify this error.
34 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ashi Khajotia
le 15 Mai 2023
Modifié(e) : Torsten
le 15 Mai 2023
% Constants and parameters
q = 1.602e-19; % elementary charge
k = 1.38e-23; % Boltzmann constant
eps0 = 8.85e-12; % vacuum permittivity
epsr = 11.7; % relative permittivity of silicon
Na = 1e17; % doping concentration (p-type)
L = 1e-6; % length of the semiconductor
mu_e = 1000*1e-4; % electron mobility
mu_h = 1000*1e-4; % hole mobility
D_e = k*300*mu_e/q; % electron diffusion coefficient
D_h = k*300*mu_h/q; % hole diffusion coefficient
T = 300; % temperature
V = 0.1; % applied voltage
% Spatial and time parameters
nx = 100; % number of spatial grid points
dx = L/nx; % spatial step
dt = 1e-9; % time step
nt = 100; % number of time steps
% Initialize carrier densities and electric potential
n = zeros(nx, 1); % electron density
p = zeros(nx, 1); % hole density
phi = zeros(nx, 1); % electric potential
phi(1) = V; % boundary condition at x=0
% Simulation loop
for t = 1:nt
% Calculate electric field
E = -(phi(2:end) - phi(1:end-1))/dx;
% Calculate electron and hole densities
Jn = q*D_e*(n(3:end) - n(2:end-1))/dx - q*mu_e*E.*n(2:end-1);
Jp = q*D_h*(p(3:end) - p(2:end-1))/dx + q*mu_h*E.*p(2:end-1);
% Update carrier densities
n(2:end-1) = n(2:end-1) + dt*Na./(1+exp((phi(2:end-1)-V/2)/(k*T))) - dt*Jn;
p(2:end-1) = p(2:end-1) + dt*Na./(1+exp((V/2-phi(2:end-1))/(k*T))) - dt*Jp;
% Update electric potential
rho = q*(Na - n - p); % charge density
phi(2:end-1) = phi(2:end-1) + dt*1/(epsr*eps0)*rho(2:end-1);
end
0 commentaires
Réponse acceptée
Star Strider
le 15 Mai 2023
Modifié(e) : Torsten
le 15 Mai 2023
In the ‘Jp’ and ‘Jn’ calculations, the relevant ‘n’ vectors are (98x1) while ‘E’ is(99x1). That appears to be the problem.
I leave its resolution to you.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Sources dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!