% /home/cdimarzio/Documents/working/12198/matlab/doping.m
% Mon Feb  6 21:20:36 2017
% Chuck DiMarzio, Northeastern University, February 2017


ni=1e10;
ND=10.^[8:0.1:12];NA=0;
%NA + n = ND + p;
%n+NA-ND-ni^2./n=0;
%n^2+(NA-ND)*n-ni.2=0;
a=1;b=NA-ND;c=-ni^2;
n=(-b+sqrt(b.^2-4*a*c))./(2*a); % Positive root is the right one
p=ni^2./n;
if(length(ND)>1);
   figure;loglog(ND,n,'k--',...
		 ND,p,'r',...
		 ND,ND,'b:',ND,ni.^2./ND,'b:');grid on;axis equal;
   xlabel('ND');ylabel('n,p');title(['NA = ',num2str(NA)]);
   legend('n','p');
elseif(length(NA)>1);
   figure;loglog(NA,n,'k--',...
		 NA,p,'r',...
		 NA,NA,'b:',NA,ni.^2./ND,'b:');grid on;axis equal;
   xlabel('NA');ylabel('n,p');title(['ND = ',num2str(ND)]);
   legend('n','p');
else;
   n
   p
end;

ni=1e10;
NA=10.^[8:0.1:12];ND=0;
%NA + n = ND + p;
%n+NA-ND-ni^2./n=0;
%n^2+(NA-ND)*n-ni.2=0;
a=1;b=NA-ND;c=-ni^2;
n=(-b+sqrt(b.^2-4*a*c))./(2*a); % Positive root is the right one
p=ni^2./n;
if(length(ND)>1);
   figure;loglog(ND,n,'k--',...
		 ND,p,'r',...
		 ND,ND,'b:',ND,ni.^2./ND,'b:');grid on;axis equal;
   xlabel('ND');ylabel('n,p');title(['NA = ',num2str(NA)]);
   legend('n','p');
elseif(length(NA)>1);
   figure;loglog(NA,n,'k--',...
		 NA,p,'r',...
		 NA,NA,'b:',NA,ni.^2./NA,'b:');grid on;axis equal;
   xlabel('NA');ylabel('n,p');title(['ND = ',num2str(ND)]);
   legend('n','p');
else;
   n
   p
end;

ni=1e10;
NA=10.^[8:0.1:12];ND=1E11;
%NA + n = ND + p;
%n+NA-ND-ni^2./n=0;
%n^2+(NA-ND)*n-ni.2=0;
a=1;b=NA-ND;c=-ni^2;
n=(-b+sqrt(b.^2-4*a*c))./(2*a); % Positive root is the right one
p=ni^2./n;
if(length(ND)>1);
   figure;loglog(ND,n,'k--',...
		 ND,p,'r',...
		 ND,ND,'b:',ND,ni.^2./ND,'b:');grid on;axis equal;
   xlabel('ND');ylabel('n,p');title(['NA = ',num2str(NA,4)]);
   legend('n','p');
elseif(length(NA)>1);
   figure;loglog(NA,n,'k--',...
		 NA,p,'r',...
		 NA,NA,'b:',NA,ni.^2./NA,'b:');grid on;axis equal;
   xlabel('NA');ylabel('n,p');title(['ND = ',num2str(ND,4)]);
   legend('n','p');
else;
   n
   p
end;