Механизмы имплантации в металлы и сплавы ионов азота с энергией 1-10 кэВ

psi_S=pow(Temp2,-3.885);//psi of Sommerfeld

//Аппроксимация Гаспара

Temp1=-0.1837*f_psi_arg;

Temp2=1+1.05*f_psi_arg;

psi_G=exp(Temp1)/Temp2;//psi of Gaspar

//Аппроксимация Тейтца

Temp=1+f_psi_arg*pow(PI/double(8),double(2)/double(3));

psi_T=pow(Temp,-2);//psi of Teitz

//Аппроксимация Видефола

Temp=-6.62*pow(f_psi_arg,0.25);

psi_W=317*f_psi_arg*exp(Temp);/

/psi of Wedephol

//Функция экранирования Томаса-Фарми-Фирсова

psi=psi_T;

return psi;

}

fastcall TIonImpl::TIonImpl(TComponent* Owner)

: TForm(Owner)

{

}

void fastcall TIonImpl::About1Click(TObject *Sender)

{

AboutBox->ShowModal();

}

void fastcall TIonImpl::ResultClick(TObject *Sender)

{

if (EndInf) {ENum=0;VInf_N=0;}

//Get data

//Element Information

Elem_Info->SelectAll(); InfoTemp=Elem_Info->SelText; EInf=InfoTemp;

SubInf[ENum][0]=EInf;

Elem1_Name->Caption=SubInf[0][0];

Elem2_Name->Caption=SubInf[1][0];

Elem3_Name->Caption=SubInf[2][0];

Elem4_Name->Caption=SubInf[3][0];

Elem5_Name->Caption=SubInf[4][0];

Elem6_Name->Caption=SubInf[5][0];

Elem7_Name->Caption=SubInf[6][0];

Elem8_Name->Caption=SubInf[7][0];

Elem9_Name->Caption=SubInf[8][0];

Elem10_Name->Caption=SubInf[9][0];

Elem11_Name->Caption=SubInf[10][0];

Elem12_Name->Caption=SubInf[11][0];

Elem13_Name->Caption=SubInf[12][0];

Elem14_Name->Caption=SubInf[13][0];

//Lattice Parameter 1

LatParam1->SelectAll(); InfoTemp=LatParam1->SelText; LP=InfoTemp.ToDouble();

//Lattice Parameter 2

LatParam2->SelectAll(); InfoTemp=LatParam2->SelText; LP_gpu=InfoTemp.ToDouble();

//Atom Charge

AtomCharge->SelectAll(); InfoTemp=AtomCharge->SelText; AC=InfoTemp.ToDouble();

//Atom Mass

AtomMass->SelectAll(); InfoTemp=AtomMass->SelText; AM=InfoTemp.ToDouble();

//Atom Radius

AtomRadius->SelectAll(); InfoTemp=AtomRadius->SelText; AR=InfoTemp.ToDouble();

//Atoms In Low Level Cell

AILLCell->SelectAll(); InfoTemp=AILLCell->SelText; Density=InfoTemp.ToDouble();

//Ion Energy

IonEnergy->SelectAll(); InfoTemp=IonEnergy->SelText; IE=InfoTemp.ToDouble();

//Ion Charge

IonCharge->SelectAll(); InfoTemp=IonCharge->SelText; IC=InfoTemp.ToDouble();

//Ion Mass

IonMass->SelectAll(); InfoTemp=IonMass->SelText; IM=InfoTemp.ToDouble();

//Ion Radius

IonRadius->SelectAll(); InfoTemp=IonRadius->SelText; IR=InfoTemp.ToDouble();

//Ion Number

IonNum->SelectAll(); InfoTemp=IonNum->SelText; INum=InfoTemp.ToDouble();

//Ion Beam Density

IonBeamDensity->SelectAll(); InfoTemp=IonBeamDensity->SelText; IBD=InfoTemp.ToDouble();

//Processing data

if ((IE<10)&&(IE>0)) VInf_N=IE/1000;

LP*=ET.A; AR*=ET.A; IR*=ET.A;//To Angstrems

AM*=ET.AMU; IM*=ET.AMU;//To Atomic Mass Unit

IE*=ET.EV;//To Electron-Volt

SAD=Density/AM;//Substrate Atoms Density

V_atom=4/3*PI*pow(AR,3);

R=0;Rp=0;delta_R=0;delta_Rp=0;En=0;

ResultData->Lines->Append(InfoField6->Caption);

ResultData->Lines->Append(IE);

//Ion implantation task solution

//Общие константы

lambda=1.309;

ksi_e=pow(IC,double(1)/double(6));

//Рассчёт параметра экранирования

Temp=pow(IC,double(2)/double(3))+pow(AC,double(2)/double(3));

ShldPrm_tf=0.8853*ShldPrm0/pow(Temp,double(1)/double(2));//Параметр экранирования Томаса-Ферми

Temp=pow(IC,double(1)/double(2))+pow(AC,double(1)/double(2));

ShldPrm_f=0.8853*ShldPrm0/pow(Temp,double(2)/double(3));//Параметр экранирования Фирсова

randomize();//Инициализация счётчика случайных чисел

TPPrc=11;//Target Parameter Precision

//Вычисление минимального значения прицельного параметра

TgtPrmMIN=0;

//Вычисление максимального значения прицельного параметра

TgtPrmMAX=LP/2;

//Интервал значений прицельного параметра

TgtPrmRange=TgtPrmMAX-TgtPrmMIN;

for (k=1;k<=INum;k++)

{

//Начало цикла по энергии.

//Потери энергии вычисляются в соответствии с типом модели.

E_ND=100;//Число разбиений (Number of Divisions)

E_Cntr=IE;//Счётчик (Counter)

E_Step=IE/E_ND;//Приращение (Step)

E_Int=0;

for (i=E_ND;i>=1;i--)

{

Energy=E_Cntr-E_Step/2;//Ion Energy

Rm_IL=0;//Rmin First Value

Rm_SL=LP/2;//Rmin Last Value

Rm_Range=Rm_SL-Rm_IL;

Rm_ND=100; DifferTemp=1;

Rm_Step=Rm_Range/Rm_ND;

Rm_Cntr=Rm_IL+Rm_Step;

for (j=1;j<=Rm_ND;j++)

{

Rm=Rm_Cntr-Rm_Step/2;

Temp=1-(IC*AC*pow(EC,2)*fTFF(Rm)*(IM+AM))/(4*PI*eps*eps0*Rm*Energy*AM);

Differ = (Temp<0) ? -Temp : Temp;

if (Differ<DifferTemp)

{DifferTemp=Differ; Rmin_0=Rm;}

Rm_Cntr+=Rm_Step;

}

IV=sqrt(2*Energy/IM);

Temp=pow(IC,double(2)/double(3))+pow(AC,double(2)/double(3));

NE_EW=(8*PI*ShldPrm0*SAD*ksi_e*IC*AC*pow(EC,2)*IV)/(V0*4*PI*eps*eps0*pow(Temp,double(3)/double(2)));//Неупругие потери E_NE=0.525*pow(Temp,2)*pow(IM,2)*EC*1E3/(pow(ksi_e,2)*pow(IM+AM,2));

E_EW=0;En_Temp=0;

if (Energy<E_NE)

{

//Потери энергии при столкновениях (модель Томаса-Ферми-Фирсова)

ro_ND=100;//Число разбиений (Number of Divisions)

ro_IL=0; ro_SL=LP/2-Rmin_0;//Пределы интегрирования: Inferior Limit - нижний, Superrior Limit - верхний

ro_Range=ro_SL-ro_IL; //Длина интервала

ro_Cntr=ro_IL+ro_Range/ro_ND; ro_Step=ro_Range/ro_ND;//Счётчик и приращение

E_EW_Int=0;

for (l=1;l<=ro_ND;l++)

{

ro=ro_Cntr-ro_Step/2;//Переменная цикла

//Вычисление расстояния максимального сближения частиц

Rm_IL=0;//Rmin First Value

Rm_SL=LP/2;//Rmin Last Value

Rm_Range=Rm_SL-Rm_IL;

Rm_ND=100; DifferTemp=1;

Rm_Step=Rm_Range/Rm_ND;

Rm_Cntr=Rm_IL+Rm_Step;

for (j=1;j<=Rm_ND;j++)

{

Rm=Rm_Cntr-Rm_Step/2;

Temp=1-pow(ro/Rm,2)-(IC*AC*pow(EC,2)*fTFF(Rm)*(IM+AM))/(4*PI*eps*eps0*Rm*Energy*AM);

Differ = (Temp<0) ? -Temp : Temp;

if (Differ<DifferTemp)

{DifferTemp=Differ; Rmin=Rm;}

Rm_Cntr+=Rm_Step;

}

//Потенциал Томаса-Ферми-Фирсова

U=IC*AC*pow(EC,2)*fTFF(Rmin)/(4*PI*eps*eps0*Rmin);

fi_ND=100;//Число разбиений (Number of Divisions)

fi_IL=Rmin; fi_SL=1E-9;//Пределы интегрирования: Inferior Limit - нижний, Superrior Limit - верхний

fi_Range=fi_SL-fi_IL; //Длина интервала

fi_Cntr=fi_IL+fi_Range/fi_ND; fi_Step=fi_Range/fi_ND;//Счётчик и приращение

fi_Int=0;

for (p=1;p<=fi_ND;p++)

{

fi=fi_Cntr-fi_Step/2;//Переменная цикла

Temp=1-pow(ro/fi,2)-IC*AC*pow(EC,2)*fTFF(fi)*(IM+AM)/(4*PI*eps*eps0*Energy*AM*fi);

Temp = (Temp<0) ? -Temp : Temp;

fi_Int+=(ro/pow(fi,2))*fi_Step/sqrt(Temp);

fi_Cntr+=fi_Step;//Приращение переменной цикла

}

alpha=PI-2*fi_Int;

alpha = (alpha<0) ? -alpha : alpha;

Temp=sin(alpha/2);

En_Temp+=4*Energy*IM*AM*pow(Temp,2)/pow(IM+AM,2);

E_EW_Int+=pow(Temp,2)*ro*ro_Step;

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
 16  17  18 


Другие рефераты на тему «Производство и технологии»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы