خطا ها در MCNP

image

خطا ها در MCNP

مقدمه

در این درس از مجموعه آموزش کد MCNP از وب سایت پرتویار میخواهم در باره انواع خطاهای ممکن در کد MCNP با شما صحبت کنم. مطالب را به این ترتیب خدمتتان بیان میکنم

 

تا اینجا که مطلب خیلی گنگ هست ادامه کمی مطلب را باز خواهم کرد. نمیتوان بین این خطاها دسته بندی مشخصی کرد اما سعی میکنم موضوع را باز کنم

 

1. خطا چیست؟

خطا دستوری است که ما به کامپیوتر داده ایم اما کامپیوتر( در اینجا برنامه MCNP) از فهمیدن آن عاجز است. این خطاها در دو صورت رخ میدهد، اول اینکه  دستور وارد شده اشتباه باشد، دوم اینکه دستور را در جای مناسبی وارد نکرده باشیم. 

2- انواع خطاها در کد MCNP

در کد MCNP   با سه نوع خطا روبه رو می شویم.

  1.  هشدارها
  2. خطای اساسی
  3. خطای مشکل ساز

در ادامه در مورد هر کدام از خطاها توضیح بیشتری می دهیم.

 

2.1- هشدارها

همانطور که میدانید کد MCNP دارای نسخه های مختلفی است. برخی دستورات در یکی از نسخه ها درست و در نسخه دیگر به عنوان waning در نظر گرفته میشود. در مواقعی این خطاها، باید رفع شوند و در مواقعی فقط یک هشدا هست. هرچند این نوع خطا در حالت کلی نمیتواند صحیح باشد ولی در تمام برنامه ها با این خطا هها توجه شود.  و به دقت مورد مطالعه قرار گیرند.. در ادامه برخی از خطا را به عنوان نمونه ذکر میکنیم

  1. warning.  universe map (print table 128) disabled.
  2.  warning.  zero photon      importance within non-void cell    7. 
  3.  warning.    2 materials had unnormalized fractions. print table 40.
  4.  warning.  zero photon      importance within non-void cell    6.

 

2.2-خطای اساسی

این خطا با نام  Fatal error شناخته  میشود و  نشان دهنده خطا در اصول اولیه برنامه نویسی می باشد. مواردی مثل کامل نبودن فضا، استفاده ناصحیح از کاراکتر ها و ... میتواند از دلیل بوجود آمدن این خطا باشد. در مواردی در حین برنامه به دلیل کامل نبودن فضا، ذرات گم می شوند( یعنی وارد فضایی میشوند که مشخصات آن نقطه در کد تعریف نشده است و کد نمی داند چه کاری انجام دهد) که این نیز خطای fatal  است.

 

2.3- خطای مشکل ساز

 Bad trouble این خطا رد واقع خطای محاسباتی محسوب می شود مثل گم شدن یک ذره و ...

  1.  bad trouble in imcn     in routine latcon           wrong order of surfaces in lattice cell 1   

3-چطور خطا را پیدا کرده و رفع خطا کنیم؟

برای رفع خطا در کد حالت های مختلفی وجود دارد که به تفکیک نوع خطا در مورد هر کدام توضیح مختصری داده میشود.

3.1- هشدارها

 هرگاه با خطای warning روبه رو شدید خطا را بخوانید و مطمئن شوید این فقط یک پیام هشدار است. اگر خطا بود باید رفع شود

3.2-خطای اساسی

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

3.3- خطای مشکل ساز

پیدا کردن این خطا کمی دشوار است چرا که از عبارت خلاصه شده در کد استفاده میکند  و نیاز به دانش و تجربه دارد. به عنوان مثال  در پیام خطای بالا داریم

 bad trouble in imcn     in routine latcon           wrong order of surfaces in lattice cell 1  

 در این  خط imcn مخخف ورودی برنامه MCNP است 

4- آیا برنامه من بدون خطا اجرا شده است؟

مهمترین  چیزی که وجود دارد این است گه آیا برنامه نوشته شده بدون خطا اجرا شده است یا خیر

پاسخ بسیار ساده است. کافی است  خروجی برنامه را باز کرده و در آخر آن دنبال عبارت زیر باشید

run terminated when     1000 particle histories were done.

در این خط 1000 تعداد nps برنامه شما است پس اگر در برنامه شما تعداد nps برابر با 10000 باشد باید نوشته شده باشد 

run terminated when     10000 ​particle histories were done.