آموزش تبدیل مش تالی با gridconv از خروجی MCNP + نرم افزار
در دنیای شبیهسازیهای علمی و فنی، روش مونت کارلو به عنوان یکی از ابزارهای قدرتمند برای تحلیل و مدلسازی فرآیندهای پیچیده شناخته میشود. از میان ابزارهای متنوعی که در این روش به کار میروند، مش تالی به دلیل دقت بالا و قابلیت ارائه جزئیات دقیق، جایگاه ویژهای دارد.
تالی (Tally) در شبیهسازیهای مونت کارلو به معنی اندازهگیری و جمعآوری اطلاعاتی از قبیل تعداد برخوردها، انرژی جذب شده، و سایر ویژگیهای فیزیکی ذرات در نقاط خاص یا مناطق خاصی از مدل شبیهسازی است. با این حال، هنگامی که نیاز به دقت بالاتر و جزئیات بیشتری داریم، از مش تالی (Mesh Tally) استفاده میکنیم. مش تالی، با تقسیمبندی منطقه شبیهسازی به شبکهای از سلولهای کوچکتر، اطلاعات بسیار دقیقتری را ارائه میدهد که برای تحلیلهای پیچیدهتر ضروری است.
در این مقاله، هدف ما بررسی نحوه استفاده از مش تالی در شبیهسازیهای مونت کارلو با استفاده از نرمافزار قدرتمند MCNP است. همچنین، روند تبدیل دادههای مش تالی به فرمتهای متنی و قابل خواندن توسط برنامههای گرافیکی خارجی با استفاده از نرمافزار Gridconv توضیح داده خواهد شد.
ابتدا به معرفی مفاهیم پایهای مش تالی و تفاوتهای آن با تالیهای معمولی خواهیم پرداخت. سپس، کاربردهای مختلف مش تالی در زمینههای پزشکی، طراحی راکتورهای هستهای، و محاسبات حفاظتی مورد بررسی قرار میگیرد. در نهایت، به صورت گام به گام روند تبدیل دادههای مش تالی به فایلهای متنی با استفاده از نرمافزار Gridconv شرح داده خواهد شد.
این مقاله برای محققان، مهندسان، و دانشجویانی که در زمینههای شبیهسازیهای مونت کارلو و تحلیل دادههای حاصل از آن فعالیت میکنند، مفید خواهد بود و ابزارها و روشهای جدیدی را برای بهبود دقت و کارایی شبیهسازیهایشان معرفی میکند.
مش تالی و تفاوت آن با تالی و کاربرد آن
تالی و مش تالی دو مفهوم مهم در شبیهسازیهای مونت کارلو (MCNP) هستند که هر کدام کاربردهای ویژهای دارند.
تالی چیست؟
تالی (Tally) در شبیهسازیهای مونت کارلو به معنی اندازهگیری و جمعآوری اطلاعات درباره تعداد برخوردها، انرژی جذب شده، و سایر ویژگیهای فیزیکی ذرات در نقاط خاص یا مناطق خاصی از مدل شبیهسازی است. تالیها اطلاعات آماری از شبیهسازی را ارائه میدهند و به تحلیل و تفسیر نتایج شبیهسازی کمک میکنند.
انواع تالیها
تالیها میتوانند بر اساس نیاز و نوع شبیهسازی متفاوت باشند. به عنوان مثال:
-
F1 Tally: تعداد برخوردها با سطحها.
-
F2 Tally: جریان عبور از سطحها.
-
F4 Tally: میانگین تعداد ذرات در حجمها.
مش تالی چیست؟
مش تالی (Mesh Tally) یک نوع خاص از تالی است که در آن منطقه شبیهسازی به شبکهای از سلولهای کوچکتر تقسیم میشود. این تقسیمبندی به صورت شبکهای، دقت بالاتری در جمعآوری دادهها ارائه میدهد. مش تالیها بهطور ویژه برای شبیهسازیهای پیچیده که نیاز به جزئیات دقیقتری دارند، استفاده میشوند.
تفاوت بین تالی و مش تالی
-
دقت: مش تالی به دلیل تقسیمبندی منطقه به سلولهای کوچکتر، دقت بالاتری در جمعآوری دادهها دارد.
-
جزئیات: مش تالی اطلاعات بیشتری درباره تغییرات محلی در منطقه شبیهسازی ارائه میدهد.
-
کاربرد: مش تالی برای شبیهسازیهای پیچیده که نیاز به اطلاعات دقیقتری در نقاط مختلف دارند، مناسب است، در حالی که تالیهای سادهتر برای اندازهگیریهای کلیتر استفاده میشوند.
کاربردهای مش تالی
-
شبیهسازیهای پزشکی: برای ارزیابی دوز اشعه در درمانهای سرطان.
-
طراحی راکتورهای هستهای: برای بهینهسازی طراحی و ایمنی راکتورها.
-
محاسبات حفاظتی: برای طراحی حفاظهای اشعه و ارزیابی ایمنی.
خروجی مش تالی و تحلیل نتایج آن
مش تالی ابزاری قدرتمند برای تحلیل دقیقتر و جزئیتر در شبیهسازیهای مونت کارلو است و به محققان و مهندسان کمک میکند تا نتایج دقیقتر و مطمئنتری از شبیهسازیهای خود به دست آورند.
gridconv خروجی مش و رادیوگرافی را به ورودی برای برنامه های گرافیکی خارجی تبدیل می کند. فایل mdata که از خروجی نرم افزار MCNP تولید می شود به صورت یک فایل به صورت ASCII است. به این معنی که اطلاعات آن قابل مشاهده مستقیم نیست. نمونه اطلاعات یک فایل ASCII در زیر نشان داده شده است.

برای تبدیل اطلاعات آن به فایل قابل مشاهده به نرم افزار gridconv نیاز است. روند تبدیل در زیر توضیح داده شده است.
در صورتی که نرم افزار ندارید می توانید از پیوست فایل را دانلود کنید. بعد از دانلود نرم افزار gridconv آن را باز کنید. بعد از باز کردن نرم افزار پیام زیر نمایش داده می شود.
Enter the type of data file: mdata or mctal.
<default=mdata>:
#
در مرحله اول از شما می پرسد که نوع فایل ورودی مشخص کنید. نوع فایل در حالت پیشفرض روی mdata است. با زدن اینتر می توانید وارد مرحله بعد شوید.
در ادامه اسم فایل ورودی را می خواهد که اسم فایل ووردی مشخص کنید. به صورت پیشفرض اسم فایل mdata است. در صورتی که اسم فایل ورودی فرق دارد نام آن را تایپ کنید و سپس اینتر بزنید.
Enter name of input file. <default=mdata>:
#
در این مرحله از شما می پرسد که آیا فایل یک یک فایل باینری است یا نه؟
Is this a binary data file? y/n
<default=yes>:
#
سپس می پرسد که آیا میخواهید فایل با فرمت خروجی متنی را تولید کنید یا نه؟
پیشفرض این مرحله به صورت خیر است. برای تولید فایل عبارت y را زده و اینتر بزنید.
Do you wish to create a text file? y/n
This file is portable to any system.
<default=no>:
#
در آخرین مرحله می خواهید اسم فایل خروجی را که میخواهید فرمت تکست فایل در آن قرار بگیرید مشخص کنید.
What do you want to name your file?
<default=mdata>:
#
mdata.txt
در اینجا فایل mdata به فرمت متنی در قالب فایل mdata.txt تولید می شود.

محتوای فایل مش تالی (Mesh Tally)
فایل مش تالی شامل اطلاعات زیر است:
-
عنوان برنامه: نام و توضیحات مربوط به برنامه یا شبیهسازی.
-
اطلاعات شبکهبندی: تنظیماتی که در فایل ورودی مشخص شدهاند و ساختار شبکهبندی منطقه شبیهسازی.
-
خروجی مورد نظر: دادههای حاصل از شبیهسازی که شامل نتایج مش تالی است.
-
خطاهای مربوط به خروجیها: خطاها و هشدارهایی که در هنگام تولید خروجیها رخ دادهاند.
برای استفاده از این فایل:
-
حذف قسمتهای اضافی: بخشهای غیرضروری را حذف کنید.
-
نگه داشتن بخش خروجی: بخش مربوط به خروجی را به صورت یک جدول نگه دارید.
-
فراخوانی دادهها در متلب: با استفاده از دستورات زیر، دادهها را به صورت یک ماتریس در برنامه متلب فراخوانی کنید.
دستورات متلب برای فراخوانی دادهها
فرض کنید دادههای مش تالی را به صورت یک فایل متنی ذخیره کردهاید. مراحل زیر را دنبال کنید تا این دادهها را در متلب وارد کنید و به صورت ماتریس نمایش دهید:
-
ایجاد فایل متنی از دادهها:
-
دادههای مش تالی را به صورت یک فایل متنی ذخیره کنید، مثلاً به نام
mdata.txt.
-
-
خواندن دادهها با استفاده از دستور
load:matlab% خواندن دادهها از فایل متنی data = load('mdata.txt'); % فرض کنید ستونهای اول و دوم مختصات و ستون سوم مقدار دوز هستند x = data(:, 1); y = data(:, 2); dose = data(:, 3); -
ایجاد ماتریس و رسم کانتور دوز:
matlab% ایجاد شبکهای از نقاط [X, Y] = meshgrid(unique(x), unique(y)); % درونیابی دادههای دوز Z = griddata(x, y, dose, X, Y); % رسم کانتور contourf(X, Y, Z); title('Dose Contour in Reactor Geometry'); xlabel('X-axis'); ylabel('Y-axis'); colorbar; % نمایش مقیاس رنگ
توضیح دستورات:
-
دستور
load: این دستور دادههای موجود در فایل متنیmdata.txtرا به متغیری در متلب بارگذاری میکند. -
دستور
meshgrid: شبکهای از نقاط مختصاتXوYایجاد میکند. -
دستور
griddata: دادههای دوز را بر اساس مختصاتxوyدرونیابی میکند تا یک ماتریسZایجاد شود. -
دستور
contourf: کانتور دوز را براساس مقادیرX,Y, وZرسم میکند.
با این روش، میتوانید دادههای مش تالی را به صورت ماتریس در متلب وارد کرده و مقدار دوز را به صورت کانتور رسم کنید.
% خواندن دادهها از فایل متنی
data = load('mdata.txt');
% فرض کنید ستونهای اول و دوم مختصات و ستون سوم مقدار دوز هستند
x = data(:, 1);
y = data(:, 2);
dose = data(:, 3);
% ایجاد شبکهای از نقاط
[X, Y] = meshgrid(unique(x), unique(y));
% درونیابی دادههای دوز
Z = griddata(x, y, dose, X, Y);
% رسم کانتور
contourf(X, Y, Z);
title('Dose Contour in Reactor Geometry');
xlabel('X-axis');
ylabel('Y-axis');
colorbar; % نمایش مقیاس رنگ