Смекни!
smekni.com

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

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

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;//RminFirstValue

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;

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

}

En_Temp/=100;

E_EW=8*PI*IM*AM*SAD*Energy*E_EW_Int/pow(IM+AM,2);//Упругиепотери (Elastic Energy Waste)

}

En+=En_Temp; EW=NE_EW+E_EW;

Temp=(1/EW)*E_Step; E_Int+=Temp;

E_Cntr-=E_Step;

}

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

//Пробег и проецированный пробег ионов

R+=E_Int;

Temp1=double(AM/IM);

Rp+=R/(1+0.36*pow(Temp1,1.15));

}

//Конец цикла по прицельному параметру.

//Средний пробег и проецированный пробег ионов

R/=INum;

Rp/=INum;

Temp=double(3-1)/double(3*(2*3-1))*4*IM*AM/pow(IM+AM,2);

delta_R=sqrt(Temp)*R;

delta_Rp=sqrt(Temp)*Rp;

ResultData->Lines->Append("Среднийпробегионов:");

ResultData->Lines->Append(R);

ResultData->Lines->Append("Страгглингсреднегопробегаионов:");

ResultData->Lines->Append(delta_R);

ResultData->Lines->Append("Средний проецированный пробег ионов:");

ResultData->Lines->Append(Rp);

ResultData->Lines->Append("Страгглинг среднего проецированного пробега ионов:");

ResultData->Lines->Append(delta_Rp);

SubInf[ENum][2]=Rp;SubInf[ENum][3]=delta_Rp;

VInf[ENum][0]=Rp+20E-10;VInf[ENum][1]=delta_Rp;VInf[ENum][2]=En/(2*Ed)/100;

ENum++;

}

void __fastcall TIonImpl::Save1Click(TObject *Sender)

{

ResultData->Lines->SaveToFile("Ion_Run_Calculation_Results.txt");

}

void __fastcall TIonImpl::PropsClick(TObject *Sender)

{

Elem1_Info->SelectAll();InfoTemp=Elem1_Info->SelText;SubInf[0][1]=InfoTemp;

Elem2_Info->SelectAll();InfoTemp=Elem2_Info->SelText;SubInf[1][1]=InfoTemp;

Elem3_Info->SelectAll();InfoTemp=Elem3_Info->SelText;SubInf[2][1]=InfoTemp;

Elem4_Info->SelectAll();InfoTemp=Elem4_Info->SelText;SubInf[3][1]=InfoTemp;

Elem5_Info->SelectAll();InfoTemp=Elem5_Info->SelText;SubInf[4][1]=InfoTemp;

Elem6_Info->SelectAll();InfoTemp=Elem6_Info->SelText;SubInf[5][1]=InfoTemp;

Elem7_Info->SelectAll();InfoTemp=Elem7_Info->SelText;SubInf[6][1]=InfoTemp;

Elem8_Info->SelectAll();InfoTemp=Elem8_Info->SelText;SubInf[7][1]=InfoTemp;

Elem9_Info->SelectAll();InfoTemp=Elem9_Info->SelText;SubInf[8][1]=InfoTemp;

Elem10_Info->SelectAll();InfoTemp=Elem10_Info->SelText;SubInf[9][1]=InfoTemp;

Elem11_Info->SelectAll();InfoTemp=Elem11_Info->SelText;SubInf[10][1]=InfoTemp;

Elem12_Info->SelectAll();InfoTemp=Elem12_Info->SelText;SubInf[11][1]=InfoTemp;

Elem13_Info->SelectAll();InfoTemp=Elem13_Info->SelText;SubInf[12][1]=InfoTemp;

Elem14_Info->SelectAll();InfoTemp=Elem14_Info->SelText;SubInf[13][1]=InfoTemp;

//Elasticity

K_Elasticity->SelectAll(); InfoTemp=K_Elasticity->SelText; MU=InfoTemp.ToDouble();

//Графикконцентрациивнедрённойпримеси

GrphArea1->Canvas->MoveTo(50,250);GrphArea1->Canvas->LineTo(350,250);

GrphArea1->Canvas->MoveTo(50,250);GrphArea1->Canvas->LineTo(50,20);

for (i=-2;i<=2;i++)

{

j=(i<0) ? -i : i;

GrphArea1->Canvas->MoveTo(350,250);GrphArea1->Canvas->LineTo(350-5-j,250+i);

GrphArea1->Canvas->MoveTo(50,20);GrphArea1->Canvas->LineTo(50+i,20+5+j);

}

for (i=0;i<=280;i+=10)

{

GrphArea1->Canvas->MoveTo(50+i,248);

GrphArea1->Canvas->LineTo(50+i,252);

}

for (i=0;i<=220;i+=10)

{

GrphArea1->Canvas->MoveTo(48,250-i);

GrphArea1->Canvas->LineTo(52,250-i);

}

Ci_max=0;

for (i=0;i<=ENum-1;i++)

{

Ci_max+=(IBD/sqrt(2*PI))*(SubInf[i][1].ToDouble()/100/SubInf[i][3].ToDouble());

}

ResultData->Lines->Append("Максимальная концентрация внедрённой примеси:");

ResultData->Lines->Append(Ci_max);

GrphArea1->Canvas->MoveTo(50,250);

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

{

Temp=j*ET.A*2;

Ci=0;

for (i=0;i<=ENum-1;i++)

{

Temp1=Temp-SubInf[i][2].ToDouble();

Ci+=(IBD/sqrt(2*PI))*(SubInf[i][1].ToDouble()/100/SubInf[i][3].ToDouble()*exp(-pow(Temp1,2)/(2*pow(SubInf[i][3].ToDouble(),2))));

}

X_coord=Ci/1E28*10;

if ((double(j)/double(5)-int(j/5))==0) ResultData->Lines->Append(X_coord);

GrphArea1->Canvas->LineTo(50+j,250-int(X_coord));

}

//Графикконцентрациивакансий

GrphArea2->Canvas->MoveTo(50,250);GrphArea2->Canvas->LineTo(350,250);

GrphArea2->Canvas->MoveTo(50,250);GrphArea2->Canvas->LineTo(50,20);

for (i=-2;i<=2;i++)

{

j=(i<0) ? -i : i;

GrphArea2->Canvas->MoveTo(350,250);GrphArea2->Canvas->LineTo(350-5-j,250+i);

GrphArea2->Canvas->MoveTo(50,20);GrphArea2->Canvas->LineTo(50+i,20+5+j);

}

for (i=0;i<=280;i+=10)

{

GrphArea2->Canvas->MoveTo(50+i,248);

GrphArea2->Canvas->LineTo(50+i,252);

}

for (i=0;i<=220;i+=20)

{

GrphArea2->Canvas->MoveTo(48,250-i);

GrphArea2->Canvas->LineTo(52,250-i);

}

Cv_max=0;

for (i=0;i<=ENum-1;i++)

{

Cv_max+=(VInf[i][2]*IBD/(sqrt(2*PI)*VInf[i][1]));

}

ResultData->Lines->Append("Максимальная концентрация вакансий:");

ResultData->Lines->Append(Cv_max);

GrphArea2->Canvas->MoveTo(50,250);

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

{

Temp=j*ET.A*2;

Cv=0;

for (i=0;i<=ENum-1;i++)

{

Temp1=Temp-VInf[i][0];

Cv+=(VInf[i][2]*IBD/(sqrt(2*PI)*VInf[i][1]))*exp(-pow(Temp1,2)/(2*pow(VInf[i][1],2)));

}

X_coord=Cv/1E28*4;

if ((double(j)/double(5)-int(j/5))==0) ResultData->Lines->Append(X_coord);

GrphArea2->Canvas->LineTo(50+j,250-int(X_coord));

}

//Графикостаточныхконцентрационныхнапряжений

GrphArea3->Canvas->MoveTo(50,20);GrphArea3->Canvas->LineTo(350,20);

GrphArea3->Canvas->MoveTo(50,20);GrphArea3->Canvas->LineTo(50,250);

for (i=-2;i<=2;i++)

{

j=(i<0) ? -i : i;

GrphArea3->Canvas->MoveTo(350,20);GrphArea3->Canvas->LineTo(350-5-j,20+i);

GrphArea3->Canvas->MoveTo(50,250);GrphArea3->Canvas->LineTo(50+i,250-5-j);

}

for (i=0;i<=280;i+=10)

{

GrphArea3->Canvas->MoveTo(50+i,18);

GrphArea3->Canvas->LineTo(50+i,22);

}

for (i=0;i<=220;i+=8)

{

GrphArea3->Canvas->MoveTo(48,20+i);

GrphArea3->Canvas->LineTo(52,20+i);

}

sigma_max=-2*V_atom*MU*(Vv_relax*Cv_max+Vi_relax*Ci_max);

ResultData->Lines->Append("Максимальное значение остаточных концентрационных напряжений:");

ResultData->Lines->Append(sigma_max);

GrphArea3->Canvas->MoveTo(50,20);

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

{

Temp=j*ET.A*2;

Ci=0; Cv=0;

for (i=0;i<=ENum-1;i++)

{

Temp1=Temp-SubInf[i][2].ToDouble();

Ci+=(IBD/sqrt(2*PI))*(SubInf[i][1].ToDouble()/100/SubInf[i][3].ToDouble()*exp(-pow(Temp1,2)/(2*pow(SubInf[i][3].ToDouble(),2))));

Temp2=Temp-VInf[i][0];

Cv+=(VInf[i][2]*IBD/(sqrt(2*PI)*VInf[i][1]))*exp(-pow(Temp2,2)/(2*pow(VInf[i][1],2)));

}

X_coord=-2*V_atom*(Vv_relax*Cv+Vi_relax*Ci)*80;

if ((double(j)/double(5)-int(j/5))==0) ResultData->Lines->Append(X_coord);

GrphArea3->Canvas->LineTo(50+j,20-int(X_coord));

}

EndInf=1;

}

ПРИЛОЖЕНИЕ Б

Результаты работы Программы ION_IMPLANTATION для стали Р6М5

Ion Energy :

3,204384E-16

Средний пробег ионов:

2,32613035597026E-8

Страгглинг среднего пробега ионов:

6,79506169419965E-9

Средний проецированный пробег ионов:

8,38895746733611E-9

Страгглинг среднего проецированного пробега ионов:

2,45057132736608E-9

Максимальная концентрация внедрённой примеси:

1,30236551593508E29

Максимальная концентрация вакансий:

4,42091861648541E29

Максимальное значение остаточных концентрационных напряжений:

-367938963,822719

Ion Energy :

7,209864E-16

Средний пробег ионов:

5,078510843904E-8

Страгглинг среднего пробега ионов:

1,48352797212844E-8

Средний проецированный пробег ионов:

1,83151435849541E-8

Страгглинг среднего проецированного пробега ионов:

5,35019588556022E-9

Максимальная концентрация внедрённой примеси:

5,9652761494482E28

Максимальная концентрация вакансий:

9,08301934476326E28

Максимальное значение остаточных концентрационных напряжений:

-185484054,22526

Ion Energy :

1,1215344E-15

Средний пробег ионов:

7,04012176741875E-8

Страгглинг среднего пробега ионов:

2,05655119978581E-8

Средний проецированный пробег ионов:

2,53894980219664E-8

Страгглинг среднего проецированного пробега ионов:

7,41674708819403E-9

Максимальная концентрация внедрённой примеси:

4,30315278807487E28

Максимальная концентрация вакансий:

4,09627015317492E28

Максимальное значение остаточных концентрационных напряжений:

-137531263,764993