solving 1D drift diffusion model for a semiconductor using FDTD. Can anyone rectify this error.

조회 수: 34 (최근 30일)
% 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

채택된 답변

Star Strider
Star Strider 2023년 5월 15일
편집: Torsten 2023년 5월 15일
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개)

카테고리

Help CenterFile Exchange에서 Sources에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by