آموزش ساخت ورودی برای نرم افزار محاسباتی گوسین

نرم افزارهای محاسبات علمی به رغم اینکه بسیار پیچیده و متشکل از هزاران خط کد هستند، ظاهر بسیار ساده ای دارند. برخلاف بسیاری از نرم افزارهای متداول مانند نرم افزارهای آفیس، نرم افزارهای طراحی، فتوشاپ و غیره که از تعداد زیادی منو و دکمه تشکیل شده اند، نرم افزارهای محاسباتی فاقد رابط گرافیکی اند (و یا دارای رابط گرافیکی بسیار ساده در برخی از پلت فرمها هستند). تنظیمات و اطلاعات مورد نیاز این نرم افزارها نه از طریق رابط گرافیکی بلکه به وسیله یک فایل ساده متنی به این نرم افزارها منتقل می شود.به صورت کلی انجام یک محاسبه علمی را می توان به سه مرحله تقسیم کرد: 1) ساخت فایل ورودی 2) اجرای دستور محاسبه 3) تفسیر فایل خروجی.فایل ورودی برای هر نرم افزاری دارای قالب (فرمت) خاص خود است و از کلمات کلیدی خاصی تشکیل شده است که به نرم افزار می گوید: برای چه ساختاری، چه محاسبه ای، و به چه نحوی انجام دهد.

در این مقاله و چند مقاله آتی قالب فایل ورودی نرم افزارهای محاسباتی مختلف معرفی خواهد شد. در اولین مقاله از این سری از مقالات ابتدا به سراغ متداول ترین نرم افزار محاسباتی (Gaussian 09)خواهیم رفت.

g09 input

همانطور که گفته شده فایل ورودی نرم افزار Gaussian یک فایل ساده متنی (با استانداردASCII) است. ساده بودن این فایل به این معنی است فایل باید فاقد هرگونه قالب نگارشی مانند نوع و اندازه قلم، پاراگراف بندی، رنگ و غیره باشد. به همین علت برای تهیه فایل­های ورودی باید از یک نرم افزار text editor ساده مانند vi یا gedit در محیط یونیکس و یا notepad در محیط ویندوز استفاده شود.

برای آشنایی بهتر با فایل ورودی Gaussian یک نمونه فایل ورودی در شکل بالا آورده شده است. همانطور که در این شکل ملاحظه می شود، فایل ورودی از قسمت های مختلفی تشکیل شده که در ادامه هر یک از قسمت ها توضیح داده خواهد شد. توجه کنید که برخی از این قسمت ها به یک خط خالی ختم می شوند و برخی دیگر نیازی به خط خالی در انتها ندارند که این خط خالی قسمتی از قالب ورودی است و دقیقا باید رعایت شود. در ورودی نمایش داده شده اولین قسمت link 0 نام دارد که با علامت % شروع می شود. لینک صفر حاوی کلید واژه هایی است که نحوه ی به کار گیری منابع سخت افزاری مانند آدرس و نام فایل های اسکرچ، میزان حافظه ای که باید استفاده شود، تعداد هسته سی پی یو و غیره را مشخص می کنند. یک فایل ورودی می توانند بدون لینک صفر و یا دارای بیش از یک لینک صفر باشد. در مثال بالا عبارت %Chk=water.chk مشخص می کند که نتایج محاسبات باید در فایلی با نام water.chk ذخیره شود و عبارت %nProsShared=4 تعیین می کند که باید از چهار هسته پردازنده برای انجام محاسبه استفاده شود. توجه کنید که لینک صفر به خط خالی ختم نمی شود.

قسمت بعدی در فایل ورودی خط دستور یا route section است. خط دستور همواره با علامت # شروع می شود. این خط به نرم افزار می گوید که چه نوع محاسبه ای را انجام دهد و همچنین شامل تنظیمات نرم افزاری مربوط به انجام محاسبه است. برای کنترل سطح ذخیره سازی اطلاعات در فایل خروجی می توان به جای علامت # از علامت #T و یا #P استفاده کرد که به ترتیب باعث خلاصه شدن و افزوده شدن اطلاعات این فایل می شوند. در فایل ورودی بالا سه کلید واژه در خط دستور وجود دارد. کلید واژه اول عبارت HF است که مشخص می کند محاسبه باید با استفاده از روش هارتری- فک انجام شود. کلید واژه دوم عبارت 6-31G(d,p) است که نوع تابع پایه مورد استفاده را تعیین می کند. دقت نتایج یک محاسبه ساختار الکترونی وابسته به تابع پایه آن است. هرچه تابع پایه مورد استفاده بزرگتر باشد، دقت نتایج نیز بیشتر است. کلید واژه سوم عبارت opt است که نوع محاسبه را تعیین می کند. در این مثال یک محاسبه بهینه سازی ساختار (optimization) از نرم افزار درخواست شده است. توجه کنید که ترتیب کلید واژه ها در خط دستور اهمیت ندارد. این کلید واژه ها را می توان با استفاده از فضای خالی، کاما و یا اسلش (space, commas or slash) از یکدیگر جدا کرد. همچنین ورودی نرم افزار به صورت کلی حساس به حروف بزرگ و کوچک نیست بنابراین خط دستور بالا را می توان به شکل های زیر نیز نوشت:

# hf 6-311G(d,p) OPT

# HF,OPT,6-311G(d,P)

# opt 6-311g(d,p)/hf

در پایان توجه کنید که خط دستور باید به یک خط خالی ختم شود.

قسمت بعدی در فایل ورودی، عنوان(title) کار است. عنوان یک کار معمولاً شامل توصیفی مختصر از کار است. عبارات نوشته شده در این قسمت توسط نرم افزار تفسیر نمی شود و می تواند شامل هر عبارت دلخواهی باشد با این حال عنوان نباید شامل کارکترهای @ # ! - _ \ و کارکترهای کنترل (به خصوص Ctrl + G) باشد. توجه کنید که عنوان باید به یک خط خالی ختم شود.

آخرین قسمت در ورودی بالا شامل مشخصات مولکول مورد نظر است. در این قسمت ابتدا به ترتیب بار و چندگانگی (multiplicity) مولکول مورد نظر و سپس مختصات آن نوشته شده است. براین اساس مشخص است که مولکول مثال ما خنثی و یکتایی (singlet) است. همچنین با نگاه کردن به مختصات مولکول می توان دریافت که محاسبه بر روی یک مولکول آب انجام خواهد شد. در مثال ما ساختار مولکول آب با استفاده از سیستم مختصات کارتزین (دکارتی) نوشته شده است. مزیت استفاده از سیستم از کارتزین عمومی بودن آن است. به این معنی که این سیستم ساختار یکسانی در تمام نرم افزارهای محاسباتی و رسم ساختار مولکولی دارد. با این حال مختصات دکارتی تنها سیستم مختصات مورد قبول نرم افزار Gaussian نیست. هر چند ساختار یک مولکول را می توان به صورت دستی در فایل ورودی نوشت ولی این کار بجز برای ساختارهای بسیار کوچک بسیار طاقت فرسا است و معمولاً برای تهیه مختصات مولکول از یک نرم افزار سه بعدی رسم ساختار مولکول مانند Gaussview استفاده می شود.

g09 input2

در پایان ذکر چند نکته درباره فایل ورودی Gaussian ضروری است.

- با استفاده از علامت ! می توان در هر قسمت از فایل ورودی توضیح (comment) نوشت.

- برای وارد کردن محتویات یک فایل در فایل ورودی می توان از  علامت @ به شکل @filename استفاده کرد. با این کار نرم افزار Gaussian محتویات فایل خارجی را قرائت و به جای این عبارت قرار خواهد داد.

- برخی از کلید واژه های Gaussian دارای آپشن های خاصی هستند که این آپشن ها را می توان به یکی از شکل های زیر وارد کرد.

Keyword=option

Keyword(option)

Keyword=(option1, option2, …)

Keyword(option1, option2, …)

به عنوان مثال برای تعیین حداکثر تعداد سیکل های بهینه سازی، کلید واژه opt را می توان همراه با آپشن maxcycle به صورت: opt(maxcycle=n) به کار برد که n برابر با تعداد حداکثر سیکل های مورد نظر است.

- کلید واژه ها و آپشن های Gaussian می توانند به کوتاه ترین شکل بی مانندشان خلاصه شوند. به عنوان مثال آپشن conventional ( مربوط به کلید واژه SCF) می تواند به صورت conven نوشته شود. ولی این آپشن را نمی توان به صورت conv خلاصه کرد زیرا این عبارت حروف اول آپشن convergence نیز است.

- تمامی پارامترهای ورودی Gaussian دارای مقادیر پیش فرضی هستند که در صورت مشخص نشدن آنها در فایل ورودی از مقادیر پیش فرض استفاده می شود. به عنوان مثال در صورت مشخص نشدن نوع محاسبه در فایل ورودی، یک محاسبه انرژی (SP) انجام خواهد شد.

دیدگاه‌ها   

0 #144 نجمه 1396-10-29 10:52
سلام.من از خروجی فایل opt شده یک ورودی تهیه کردم برای انجام محاسبات فرکانس.ایا باید در خط دستور فرکانس هم عبارت scrf= را ذکر کنم؟
نقل قول کردن
0 #143 fz 1396-10-04 20:54
به نقل از حسین حجی آبادی:
به نقل از fz:
سلام
دستوری که برای بدست اوردن رفرکتیو ایندکس یا دانسیته هستش رو می تونید لطف کنید بهم بگین

سلام
تا جایی که من میدونم گوسین رفرکتیو ایندکس رو حداقل به صورت مستقیم محاسبه نمیکنه! برای بدست آوردن این پارامتر احتمالا باید محاسبات دیگه ای انجام بدید و بعد از نتایج اونها رفرکتیو ایندکس رو حساب کنید.
برای محاسبه دانسیته الکترونی هم از pop=reg استفاده کنید.
با احترام

ببخشید برای محاسبه دانسیته که گفتین pop=reg داخل خروجی باید چی سرچ کنم تا دانسیته رو که حساب کرد ببینم....
ممنونم از پاسخگویتون
نقل قول کردن
0 #142 حسین حجی آبادی 1396-10-04 19:26
به نقل از fz:
سلام
دستوری که برای بدست اوردن رفرکتیو ایندکس یا دانسیته هستش رو می تونید لطف کنید بهم بگین

سلام
تا جایی که من میدونم گوسین رفرکتیو ایندکس رو حداقل به صورت مستقیم محاسبه نمیکنه! برای بدست آوردن این پارامتر احتمالا باید محاسبات دیگه ای انجام بدید و بعد از نتایج اونها رفرکتیو ایندکس رو حساب کنید.
برای محاسبه دانسیته الکترونی هم از pop=reg استفاده کنید.
با احترام
نقل قول کردن
0 #141 fz 1396-10-04 16:30
سلام
دستوری که برای بدست اوردن رفرکتیو ایندکس یا دانسیته هستش رو می تونید لطف کنید بهم بگین
نقل قول کردن
0 #140 حسین حجی آبادی 1396-09-24 15:08
به نقل از کوثر:
سلام ببخشید چجوری میتونم فاصله موکلول ها رو با هم فیکس و درست باشه برای گوسین تو گوسیو رو انجام بدم؟

سلام
برای تنظیم کردن فاصله بین مولکول‌ها کافیه که فاصله بین ۲ اتم - هر اتم از یک مولکول - رو با استفاده از ابزار modify band تنظیم کنید. و دقت کنید که برای هر دو اتم translate group انتخاب شده باشه.
با احترام
نقل قول کردن
0 #139 کوثر 1396-09-22 17:32
سلام ببخشید چجوری میتونم فاصله موکلول ها رو با هم فیکس و درست باشه برای گوسین تو گوسیو رو انجام بدم؟
نقل قول کردن
0 #138 zf 1396-09-13 15:14
سلام
ممنونم از پاسخگویتون
ببخشید من می خوام قدرت یونی رو در آب با گوسین تحت لینوکس بدسن بیارم لطف می کنید دستورشو بهم بگین
نقل قول کردن
0 #137 شیمی فیزیک 1396-09-10 19:16
به نقل از حسین حجی آبادی:
[quote name="شیمی فیزیک"]با سلام
دستور انجام محاسبات طیف EPR در دو فاز گاز و محلول رو میخواستم. لطف می کنید.
و این که در خروجی گوسین دنبال چه داده ای باشم؟

سلام

برای محاسبه EPR این عبارت رو در خط دستور قرار بدید prop=epr و برای شبیه سازی محلول این عبارت رو هم اضافه کنید. (SCRF=(Solvent=item که به جای item باید اسم حلالتون رو بذارید.
در نهایت در انتهای فایل خروجی به دنبال Electric Potential باشید

با احترام[/quote

ممنونم.
من عبارت electric potential رو در فایل خروجی پیدا نکردم. مقادیر g و a در طیف های epr رو میشه با این محاسبات به دست اورد؟؟؟؟
نقل قول کردن
0 #136 حسین حجی آبادی 1396-09-10 16:06
به نقل از مینا خیرالله پور:
سلام.استادتوی nmrبرای مقایسه باطیف های تجربی،فقط کربن وهیدروژن های متصل به هم رودر نظرمیگیریم هم درtmsوهم درترکیبمون.مثلا باکربن مربوط به کربونیل توی استون دیگه کاری نداریم؟ومقادیرترکیبمون روازمقادیر tmsکم میکنیم ودرآخرفقط دوتا جواب خواهیم داشت؟

سلام
ببینید TMS فقط هیدروژن متصل به کربن داره و چون متقارنه عدد مربوط به شیلد برای همه کربن ها یکسانه. اما در ترکیب مورد تحقیق شما باید تمام کربنها و هیدروژن ها رو در نظر بگرید و از کربن و هیدروژن TMS کم کنید.
با احترام
نقل قول کردن
0 #135 حسین حجی آبادی 1396-09-10 16:00
به نقل از شیمی فیزیک:
با سلام
دستور انجام محاسبات طیف EPR در دو فاز گاز و محلول رو میخواستم. لطف می کنید.
و این که در خروجی گوسین دنبال چه داده ای باشم؟

سلام

برای محاسبه EPR این عبارت رو در خط دستور قرار بدید prop=epr و برای شبیه سازی محلول این عبارت رو هم اضافه کنید. (SCRF=(Solvent=item که به جای item باید اسم حلالتون رو بذارید.
در نهایت در انتهای فایل خروجی به دنبال Electric Potential باشید

با احترام
نقل قول کردن

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید