Наклонная ионная имплантация. Бормонтов Е.Н - 7 стр.

UptoLike

7
Задав число точек по координате x, в которых будут рассчитываться
значения концентрации, например 20, получим шаг h : h=x
max
/20.
Для решения данной задачи составлена программа на языке Паскаль .
program Nakl;
const pi=3.1415926; eq=1.6e-19;
var N,x:array [0..200] of double;
q,e,Rp,dRp1,dRp2,dR,tetta,xj1,xj2:double;
econs,Nmax,Nicx,ro,mu,xmax,h:double;
j,j1:integer; o,tip:char;
function lg(z:double):double;
begin lg:=ln(z)/2.3; end;
function Rpp(E1:double):double;
var lgRp:double; i:integer;
a:array[0..3] of double;
begin
E1:=ln(lg(E1)); lgRp:=0.0;
a[0]:=0.682; a[1]:=0.1861; a[2]:=0.3769; a[3]:=-0.0581;
for i:=0 to 3 do lgRp:=lgRp+a[i]*exp(i*E1);
Rpp:=exp(2.3*lgRp)*1e-7;
end;
function dRpp1(E1:double):double;
var lgRp:double; i:integer;
a:array[0..3] of double;
begin
E1:=ln(lg(E1)); lgRp:=0.0;
a[0]:=0.401; a[1]:=0.2209; a[2]:=0.3478; a[3]:=-0.0711;
for i:=0 to 3 do lgRp:=lgRp+a[i]*exp(i*E1);
dRpp1:=exp(2.3*lgRp)*1e-7;
end;
function dRpp2(E1:double):double;
var lgRp:double; i:integer;
a:array[0..3] of double;
begin
E1:=ln(lg(E1)); lgRp:=0.0;
a[0]:=0.205; a[1]:=0.537; a[2]:=0.051; a[3]:=0.015;
for i:=0 to 3 do lgRp:=lgRp+a[i]*exp(i*E1);
dRpp2:=exp(2.3*lgRp)*1e-7;
end;
function erf(z:double):double;
var s,sx:double; j2:integer;
begin
sx:=z;s:=z;j2:=1;
repeat
sx:=-sx*z/(2*j2+1)*z/j2*(2*j2-1);
                                      7

       Задав число точек по к оордин ате x, в к оторы х будут рассчиты вать ся
зн ачен ия к он цен трации, н апример 20, получим ш аг h: h=xmax/20.
       Д ля реш ен ия дан н ой задачи составлен апрограмман аязы к е Паск аль .

     program Nakl;
     const pi=3.1415926; eq=1.6e-19;
     var N,x:array [0..200] of double;
          q,e,Rp,dRp1,dRp2,dR,tetta,xj1,xj2:double;
          econs,Nmax,Nicx,ro,mu,xmax,h:double;
          j,j1:integer; o,tip:char;
     function lg(z:double):double;
        begin lg:=ln(z)/2.3; end;
     function Rpp(E1:double):double;
           var lgRp:double; i:integer;
              a:array[0..3] of double;
           begin
            E1:=ln(lg(E1)); lgRp:=0.0;
            a[0]:=0.682; a[1]:=0.1861; a[2]:=0.3769; a[3]:=-0.0581;
            for i:=0 to 3 do lgRp:=lgRp+a[i]*exp(i*E1);
            Rpp:=exp(2.3*lgRp)*1e-7;
          end;
     function dRpp1(E1:double):double;
           var lgRp:double; i:integer;
              a:array[0..3] of double;
           begin
            E1:=ln(lg(E1)); lgRp:=0.0;
            a[0]:=0.401; a[1]:=0.2209; a[2]:=0.3478; a[3]:=-0.0711;
            for i:=0 to 3 do lgRp:=lgRp+a[i]*exp(i*E1);
            dRpp1:=exp(2.3*lgRp)*1e-7;
          end;
     function dRpp2(E1:double):double;
           var lgRp:double; i:integer;
              a:array[0..3] of double;
           begin
            E1:=ln(lg(E1)); lgRp:=0.0;
            a[0]:=0.205; a[1]:=0.537; a[2]:=0.051; a[3]:=0.015;
            for i:=0 to 3 do lgRp:=lgRp+a[i]*exp(i*E1);
            dRpp2:=exp(2.3*lgRp)*1e-7;
          end;
     function erf(z:double):double;
     var s,sx:double; j2:integer;
         begin
          sx:=z;s:=z;j2:=1;
         repeat
          sx:=-sx*z/(2*j2+1)*z/j2*(2*j2-1);