Chemical potential vs. temperature
The chemical potential of an extrinsic semiconductor is plotted as a function of temperature. A new plot can be generated by inputing parameters and pressing the 'Replot' button.
This plot is generated with the following code:
var d1 = [];
function plot() {
Nc=eval(data.Nc.value);
Nv=eval(data.Nv.value);
Nd=eval(data.Nd.value);
Na=eval(data.Na.value);
Ed=eval(data.Ed.value);
Ea=eval(data.Ea.value);
Eg=eval(data.Eg.value);
T1=eval(data.T1.value);
T2=eval(data.T2.value);
for (j=0; j<101; j++) {
T=T1 + j*(T2-T1)/100;
if (Na > Nd) {
for (i=0; i<500; i++) {
Ef = i*Eg/500;
n=Nc*Math.pow(T/300,1.5)*Math.exp(1.6022E-19*(Ef-Eg)/(1.38E-23*T));
p=Nv*Math.pow(T/300,1.5)*Math.exp(1.6022E-19*(-Ef)/(1.38E-23*T));
Namin = Na/(1+4*Math.exp(1.6022E-19*(Ea-Ef)/(1.38E-23*T)));
Ndplus = Nd/(1+2*Math.exp(1.6022E-19*(Ef-Ed)/(1.38E-23*T)));
logn = Math.log(Namin +n);
logp = Math.log(Ndplus +p);
if (logn > logp) {
Ef = Ef-Eg/500 + (Eg/500)*(logp0-logn0)/((logn-logn0)-(logp-logp0));
break;
}
else {
logn0 = logn;
logp0 = logp;
}
}
d1[j] = [T,Ef];
}
else {
for (i=500; i>0; i--) {
Ef = i*Eg/500;
n=Nc*Math.pow(T/300,1.5)*Math.exp(1.6022E-19*(Ef-Eg)/(1.38E-23*T));
p=Nv*Math.pow(T/300,1.5)*Math.exp(1.6022E-19*(-Ef)/(1.38E-23*T));
Namin = Na/(1+4*Math.exp(1.6022E-19*(Ea-Ef)/(1.38E-23*T)));
Ndplus = Nd/(1+2*Math.exp(1.6022E-19*(Ef-Ed)/(1.38E-23*T)));
logn = Math.log(Namin +n);
logp = Math.log(Ndplus +p);
if (logp > logn) {
Ef = Ef + (Eg/500)*(logp-logn)/((logn0-logn)-(logp0-logp));
break;
}
else {
logn0 = logn;
logp0 = logp;
}
}
d1[j] = [T,Ef];
}
}
var data1 = [{ data: d1, color: "rgb(0, 0, 0)", shadowSize:0, lines: {show:true} }];
$.plot($("#placeholder"), data1);
}