یکی از سوالاتی که برای خیلی از کاربران پیش میاد این هست که اگر ماده ای در کتابخانه atlas تعریف نشده باشد به چه طریقی میتوانیم آن را تعریف کنید یا اگر ماده ای وجود داشته باشه به چه روشی میتونیم خواص جدیدی با فرمولهای مورد نظر خودمان برای آن ماده اضافه کنیم. اما قبل از آن چگونه مطمئن شویم ماده ای در کتابخانه سیلواکو موجود است یا خیر؟

به این منظور به HELP نرم افزار سیلواکو بخش اطلس مراجعه کنید. یا برروی این فایل کلیک کنید. در بخش پیوست ها به سراغ بخش Appendix B Material Systems رفته و سپس در آن قسمت میتوانید لیست مواد و نحوه محاسبه مواد چند جزیی را ببینید. اگر ماده مورد نظر شما موجود باشد که مشکلی باقی نمی ماند اما اگر ماده وجود نداشته باشد شما میتوانید یکی از موادی که در کتابخانه موجود است را تغییر دهید و ویژگی ها مورد نظر خود را اعمال کنید. برای این کار در دستور Material این تغییرات را اعمال می کنید.

Material AlGaN EG300=..   ….

در انتخاب ماده پایه سعی می کنیم ماده ای که شباهت بیشتری به ماده نهایی ما دارد را انتخاب کنیم. سپس در صورتی که کار ما با همان پارامترهای ساده در دستور متریال قابل انجام باشد در این مرحله کار به پایان رسیده است. مثلا شما میتوانید پارامترهای نظیر EG300 و … را اضافه کنید و مقدار عددی به آن ها نسبت دهید. اما گاهی شما به دنبال مدل کردن ماده جدید هستید مثلا میخواهید موبیلیتی ماده جدید، از رابطه خاصی که شما میگویید محاسبه شود. در این صورت مراحل زیر را ادامه می دهیم.

فرض کنید میخواهیم موبیلیتی ماده ای را به روش مد نظر خود بدست آوردیم. به این منظور در دستور Material پارامتر f.conmob را اضافه می کنیم( برای این که از لیست پارامترهایی که قابل تعریف با روش پیش رو هست به بخش Appendix A C-Interpreter Functions مراجعه کنید) . در ادامه باید مقدار آن را ذکر کنیم. به همین منظور یک نام دلخواه برای فایل با پسوند lib. انتخاب می کنیم. حال با برنامه نوت پد(ترجیحا با نوت پد پلاس) فایلی ایجاد می کنیم و به همان اسمی که در جلو f.conmob نوشته ایم نامگذاری و ذخیره می کنیم. 

Material AlGaN f.conmob=mob.lib …

در مرحله دوم باید وارد این فایل شویم و برنامه را به زبان C بنویسیم. زبان C را با توجه به این که در مقطع کارشناسی اکثریت افراد گذارنده اند لذا آشنایی با آن وجود دارد. در ادامه کد به زبان C را می بینیم.

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <malloc.h>
#include <string.h>
#include <template.h>

* Composition, temperature and doping dependent electron mobility
* Statement: MATERIAL
* Parameter: F.CONMUN
* Arguments:
* xcomp composition fraction x
* ycomp composition fraction y
* temp temperature (K)
* nd net concentration of donors
* na net concentration of acceptors
* *mun electron mobility
*/

int conmun(double xcomp,double ycomp,double temp,double nd,double na,double x,double y,double taun,double *mun)
{
double mu0, ntot;
ntot = nd+na;
if(xcomp < 0.429)
mu0 = (8000.0-1.818e4*xcomp);
else if(xcomp < 0.46)
mu0 = (90.0 + 1.145e5*(xcomp-0.46)*(xcomp-0.46));
else if(xcomp < 0.5)
mu0 = (90.0 + 3.75e4*(xcomp-0.46)*(xcomp-0.46));
else
mu0 = (200.0-2.0/(xcomp-0.46));

*mun = (mu0*(0.34+0.66/(1.0+pow(ntot/9.85e16,0.553))));

return(0); /* 0 – ok */
}

نکته مهم آن است که فایل با پسوند lib. در همان پوشه فایل اصلی که برنامه اتلس را در آن نوشته ایم باید باشد.

 برای دیدن نمونه برنامه نوشته که این کدها هم مربوط به آن می باشد به مثال های خود نرم افزار سیلواکو بخش HEMT مثال اول مراجعه کنید. و هم چنین برای یافتن و دیدن فایل lib. آن هم میتوانید به مسیر مشابه C:\sedatools\examples\hemt\hemtex01_interp.lib  بروید و این فایل را میتوانید با نوتپد یا نوتپد پلاس باز کنید.