X
تبلیغات
کالج کارآفرینی تیوان

Learning MCNP4C and MCNPX

روش تبدیل تصاویر ct scan به فرمت 3D و قابل نمایش در برنامه های Blender یا Meshlab



با سلام

//////////

پیش از شروع : جهت اموزش برنامه های ITK snap  و MeshLab میتوانند به ادرس های زیر در سایت یوتیوب youtube مراجعه نمایند :

ITK snap : https://www.youtube.com/channel/UCmjrCaGMtwwBXppAberTrjg/videos

Meshlab : https://www.youtube.com/user/MrPMeshLabTutorials/videos

\\\\\\\\\\

پیش از شروع مجموعه تصاویر سی تی اسکن خودتونو در یک فولدر قرار داده برنامه MRIconvert اجرا کنید :

برای مشاهده تصویر بزرگتر کلیک کنید


همانگونه که از روی شکل مشخص شده با انتخاب add files میتوانید به پوشه مورد نظر رفته و تمامی تصاویر سی تی را انتخاب کرده و سپس ok را انتخاب نمایید. در قسمت پایین با انتخاب directory میتوانید مسیر فایل تبدیل شده را انتخاب نمائید، توجه کنید که فرمت فایل میبایستی همانند فرمت فایلی که در تصویر بالا انتخاب شده باشد سپس convert all را انتخاب کنید. فایل تبدیل شده بصورت زیر در پوشه ذخیره خواهد شد :

برای مشاهده تصویر بزرگتر کلیک کنید

اکنون میتوانید برنامه ITK Snap را اجرا کنید و از منوی بالا فایل را انتخاب کرده سپس open image را کلیک کنید

برای مشاهده تصویر بزرگتر کلیک کنید


سپس تصویر زیر را مشاهده خواهید کرد

برای مشاهده تصویر بزرگتر کلیک کنید

در ادامه با توجه به شکل ها عمل کنید

برای مشاهده تصویر بزرگتر کلیک کنید

گزینه ها را مطابق با آنچه روی شکل تایین شده انتخاب نمائید

برای مشاهده تصویر بزرگتر کلیک کنید

با انتخاب finish به قسمت بعد کار خواهیم پرداخت

برای مشاهده تصویر بزرگتر کلیک کنید


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

برای مشاهده تصویر بزرگتر کلیک کنید


بعد از اینکه محدوده را تایین کردید گزینه segment 3D را انتخاب کنید 

برای مشاهده تصویر بزرگتر کلیک کنید


سپس به مرحله اول کار وارد میشوید

برای مشاهده تصویر بزرگتر کلیک کنید

در این بخش در چند حالت مختلف نحوه نمایش و توانایی های گزینشی این برنامه را در تصاویر زیر نمایش میدهم البته کاربر برحسب نوع نیازمندی میتواند گزینش مناسبی داشته باشد

برای مشاهده تصویر بزرگتر کلیک کنید


برای مشاهده تصویر بزرگتر کلیک کنید


دوباره برمیگردیم به تصویر اولی که داشتیم در این قسمت میتوانید استانه را تغییر دهید و بخش هایی را که لازم ندارید محو کنید

برای مشاهده تصویر بزرگتر کلیک کنید


اگر توجه کرده باشید قبلا گفتم که میتوانید جای جای تصویر سی تی را با گزینه ای در قسمت سمت راست پنجره مشاهده کنید در تصویر زیر مشخص شده 

برای مشاهده تصویر بزرگتر کلیک کنید

سپس با انتخاب next به مرحله بعدی خواهیم رفت

برای مشاهده تصویر بزرگتر کلیک کنید

در این قسمت شما باید با استفاده از کروسور موس روی بخش هایی که تمایل دارید بصورت سه بعدی تبدیل شوند کلیک کنید و نشانگر را روی هر بخش با استفاده از موس ببرید و سپس add bubble at cursor را انتخاب نمایید توجه داشته باشید که در سه بعد میبایستی این حباب ها را قرار دهید

برای دقت در این امر هم میتوانید شعاع این حباب ها را تغییر دهید

برای مشاهده تصویر  بزرگتر کلیک کنید


اگر حبابی را اشتباه وارد کردید از جدول کنار سمت راست میتوانید ان را گزینش و حذف کنید

برای مشاهده تصویر بزرگتر کلیک کنید


سپس با انتخاب Next به مرحله پایانی وارد میشویم

برای مشاهده تصویر بزرگتر کلیک کنید

در صورتی که تمام بخش های مورد نظر را انتخاب کرده اید میتوانید Finish را انتخاب کنید

در این بخش میتوانید پیش نمایشی 3 بعدی را از این گزینش ها را در پنجره پایین سمت چپ با انتخاب ایکون گزینه play و سپس pause ان و کلیک کردن روی update پایین همان پنجره نمای سه بعدی رو ببینید 

برای مشاهده تصویر بزرگتر کلیک کنید

سپس برای ذخیره فایل طبق شکل زیر عمل کنید

برای مشاهده تصویر بزرگتر کلیک کنید

از منوی بالا segmentation را انتخاب کنید سپس export as surface mesh را گزینش کنید

برای مشاهده تصویر بزرگتر کلیک کنید

سپس Finish را انتخاب نمایید و فایل ذخیره خواهد شد دقت کنید گزینه ها مطابق شکل انتخاب شده باشند

برای مشاهده تصویر بزرگتر کلیک کنید

سپس برنامه MeshLab را اجرا کنید 

برای مشاهده تصویر بزرگتر کلیک کنید


در نهایت تصویر زیر  را خواهیم دید / البته بدلیل اینکه تمام بخش ها را گزینش نکرده بودم تصویر ناقص نشان داده میشود اما اگر بخش خاصی را انتخاب و ان را تماما گزینش کنید ان عضو یا اندام تماما بصورت 3 بعدی ترسیم خواهد شد

برای مشاهده تصویر بزرگتر کلیک کنید

اما این پایان کار نیست شما میتوانید در همین برنامه که پایه و اساس مشبندی دارد ادامه دهید و یا اینکه در محیطی دیگر همانند Belender با این فایل کار کنید

برای مشاهده تصویر بزرگتر کلیک کنید

البته در بلندر امکان تبدیلفایل سه بعدی به voxel وجود دارد منتها در ان بخش باید خروجی را برای کدهایی مثل mcnpx مهیا کرد

برای مشاهده تصویر بزرگتر کلیک کنید


با تشکر از توجه شما

علی اصغر محمدزاده

گروه پژوهشی افق امید نو

how to import materials in data card - چطور متریال ها را وارد کارت داده ها کنیم - Part 4

4 - علاوه بر سه روش گذشته استفاده از این کتاب نیز توصیه میشود

4 - By Using this Book

Compendium of Material Composition Data for Radiation Transport Modeling



Download it

how to import materials in data card - چطور متریال ها را وارد کارت داده ها کنیم - Part 3

This is part 3 of how to import materials in data card for mcnp code

بخش سوم از چگونگی وارد کردن مواد در کد mcnp

------------------------------------------------------------------

3 - با استفاده از برنامه Periodic Table Explorer

3 - By using Periodic Table Explorer



first select open toolbox then

ابتدا مطابق شکل بالا گزینه مورد نظر را انتخاب کنید



همه جزییات در شکل اشاره شده و نیازی به توضیح نیست 

فقط : با این برنامه میتونید فرمول مواد یا ترکیبات رو بدست بیارین و از روی فرکشن اتمی در کد وارد کنید

you can follow the pictures all of options are clear and there is no need to describe them

how to import materials in data card - چطور متریال ها را وارد کارت داده ها کنیم - Part 2

This is part 2 of how to import materials in data card for mcnp code

این بخش دوم از چگونگی وارد کردن مواد در کد mcnp است

--------------------------------------------------------------

2 - استفاده از برنامه Rad toolBox

2 - By Using Rad toolbox



برای مثال در اینجا پیرکس را انتخاب کردم

For example here i selected Pyrex



Select Display and then



در نهایت فرکشن جرمی و اتمی بهمراه چگالی ماده رو خواهید داشت با این اطلاعات براحتی میتونید مواد را در کد وارد کنید

Finally you have weight and atomic fractions + density so you can write material card for mcnp code

---------------------------------------------------

note that : this option for radtoolbox isn't complete and maybe you didn't find your material in it

توجه کنید این قسمت از برنامه شامل همه مواد نیست یعنی هنوز کامل نشده امیدوارم کامل تر بشه

Also you can Export Data's to Excel

-------------------------------------------------

here is more : about biological data 

اگه دنبال متریال فانتوم ها یاتیشو ها هستین مراحل زیر رو دنبال کنید



Then select Display 


برچسب‌ها: rad toolbox، mcnpx، mcnp4c، material card

how to import materials in data card - چطور متریال ها را وارد کارت داده ها کنیم - Part 1

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

This is a short cut way to write materials in material card , here i explane some programs that made it easy for us lets see bellow


1- استفاده از برنامه SRIM

First by using SRIM code


طبق شکل روی گزینه مورد اشاره کلیک کنید تا پنجره زیر باز شود

According to the above picture select compound dictionary then 



با توجه به شکل بالا دو گزینه کلی مشاهده میشه : 1 - انتخاب متریال بواسطه گروه بندی و 2 - بواسطه حروف الفبا

as you can see there is 2 main option : 1 -  chosen by category , 2 - by the name of material


  


با توجه به شکل بالا و انجام مراحل اشاره شده به صفحه نخست باز خواهید گشت

Just follow the pictures



این مرحله پایانی بود و حال میتوانید از روی اطلاعات بدست امده متریال ها را وارد کد کنید

Now you can write material in mcnp code


برچسب‌ها: srim، material card، mcnpx، mcnp4c، mcnp4b، data card

مشبندی - Meshing


قبل از هر صحبتی شما رو به صفحه ۱۶۶ / ۴۲۷ mcnpx نسخه 2.4 ارجاع میدهم .

تعریف مشبندی :

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

در این مرحله هیچ کاه سطح یا سلولی تعریف نمیکنیم فقط به کد میفهمانیم که مساله ما را با استفاده از این دستگاه مختصات (دکارتی یا استوانه ای یا کروی که باید تقارن را نیز در نظر داشته باشید مثلا برای یک کره از مشبندی مستطیلی یا همان دستگاه دکارتی استفاده نکنید) شبکه بندی کن (شبکه های کوچک)

مشبندی نوع اول : track averaged mesh tally

از این مشبندی برای محاسبه : شار / انرژی توزیع شده / دوز / و ... استفاده میکنیم

پرکاربرد ها رو در بالا اشاره کردم

tmesh                                                                          
rmesh11:p pedep                                                                 
cora11 -25 25                                                                  
corb11 -25 100i 25                                                             
corc11 0 40i 50
endmd

مثال بالا یک شبکه مستطیلی را توصیف میکند

همیشه tmesh شروع کار و endmd پایان کار است

rmesh یعنی مشبندی مستطیلی

cora=x

corb=y

corc=z

cmesh یعنی مشبندی استوانه ای

smesh یعنی مشبندی کروی

عدد جلوی rmesh باید 1 / 11 / 21 / 31 / ... عدد اخر باید 1 باشد که معرف مشبندی نوع اول است به مثال توجه کنید !

در بالا مختصه x هیچ تغییری نمیکند تنها مختصه های y , z را قسمت بندی کرده ایم به عبارت دیگر بصورت دوبعدی مساله را بررسی میکنیم و تغییرات انرژی توضیع شده را در راستای y تحلیل خواهیم کرد تصویر زیر یک مثال از این نوع است :

نکته : شماره مشتالی هایی که مینویسید نباید با تالی های اصلی مساله یکی باشد . (به پانویس ص 145 منوال 2.4 دقت کنید )

تصویر بالا پلات کانتور مشبندی مستطیلی است که میزان انرژی توزیع شده فوتون را در اب نشان میدهد

البته عملگر pedep معادل F6 است منتها با یک تفاوت که F6 انرژی توزیع شده در سلول به ازای واحد جرم سلول است و pedep به ازای واحد مشبندی شبکه . این دو اختلاف اندکی دارند که با انتخاب درست دستگاه مختصات و اندازه واحد های شبکه به حدقل میرسند . البته هر دو مقدار قابل تایید اند .

مشبندی نوع دوم : مشبندی چشمه

برای حفاظ سازی به کاربر اجازه میدهد تا نشتی ها رو مشخص کند (منوال 2.6 صفحه 198/551)

tmesh
rmesh2 p trans
cora2 -25 25 
corb2 -25 100i 25
corc2 0 50i 50
endmd

مساله قبل را برای یافتن نشتی فوتونی با همان ساختار بستیم

شما میتوانید برای ذرات مختلف این کار را انجام دهید

نکته : شماره مش تالی باید 2 یا 12 یا 22 یا ... عدد اخر به 2 ختم شود

مشبندی نوع سوم : Energy Deposition Mesh Tally

نتایج این مشتالی با تالی F6+ یکسان است حتما میدانید که F6+ انرژی توزیع شده به ازای واحد حجم را بدست میدهد . (صفحه ۱۹۹/ ۵۵۱ منوال ۲.۶)

tmesh
rmesh3 de/dx
cora3 cora11 -25 25
corb3 corb11 -25 50i 25
corc3 corc11 0 50i 50
endmd

کلمات کلیدی که در این مشبندی استفاده میشوند :

dE/dx توان توقف ذره تابیده شده در محیط

recol میزان طیف بازتابش شده در محیط

و ... سایر عملگر ها را میتوانید در منوال مطالعه کنید

نکته : شماره مشتالی کماکان طبق روالهای ذکر شده در بالا این بار عدد اخر باید به 3 ختم شود


خروجی این مشتالی ها بصورت فایل mdat ذخیره میشود که باید با gridconv تبدیل کنید به ورودی مناسب برای برنامه هایی مثل tecplot (من از این استفاده میکنم) و gnuplot و دو تا برنامه دیگه که در طی مراحل تبدیل اسم این برنامه ها رو مینویسه . قبلا نحوه تبدیل این فایل ها رو توضیح دادم امید وارم این توضیحات مفید واقع بشه هرچند چند بار اصلاح شد و حجم متنش رو به حداقل رسوندم تا خسته کننده نشه . موفق باشید


output Analyzing With Matlab - انالیز خروجی ها ی mcnp با matlab

Output Analysis of MCNP Code with Matlab

This is simple program that me and one of my best friend was wrote it and it's for surface flux and variation in parameters that i mentioned them bellow

First Download my program

ابتدا برنامه را دانلود کنید

نکته : من این برنامه را برای تحلیل رفتار فوتونها و الکترون ها نوشته ام

with the help of this program you can read more output as you can see in bellow picture and analysis them very easily at the lowest time - just it take some seconds 2 or less than it and then work with data in matlab or copy them where you prefer for analysis mathematica , origin lab , excel and so on

مزیت ها : با استفاده از این برنامه میتوانیم تعداد زیادی از خروجی های mcnpx را در یک پوشه قرار داد سپس انها را در مدت چند ثانیه تحلیل کرد

در این برنامه این تحولات بررسی میشود

bremsstrahlung و p-annihilation و photonuclear و electron x-rays و 1st fluorescence و 2nd fluorescence و (gamma,xgamma) و compton scatter و escape و capture و pair production و compton recoil و photo-electric و photon auger و electron auger و knock-on و (gamma,xelectron) و scattering 

-------------------------------------------------

نمایی از دایرکتوری و پوشه فایل های من

This my directory view

matlab را اجرا کنید و مانند زیر یک فایل جدید ایجاد کنید

start matlab and set a new file


فایل دانلود شده را به پنجره زیر بکشید

drag and drop my file [my download] in this environment / look at bellow picture

بقیه در ادامه مطالب

click this message to see complete note


ادامه مطلب

مثالی از مش بندی کروی در MCNPX

c Cells Cards 
1    1 -3.21      -1      $ SiC Sphere, 20 micron radius 
2    0         1  -2      $ Void 

3    0         2          $ Void 


c Surfaces Cards 

1  so 0.002 
2  so 1 


c Mode cards 
mode a 

c Source Definition 
SDEF PAR=a POS= 0 0 0  erg=5.407 

c Materials 
m1   14028.00a  0.5      $ 50% Carbon, 50% Silicon 
     6012.00a   0.5 
imp:a   1 0r        0 1r          $ 1, 2, 3 

c Tallies 
tmesh 
 smesh3 total 
 cora3  0.0 19i 0.02 
 corb3  4.0     180.0 
 corc3  4.0     360.0 
endmd 

nps 1E4 


ادامه مطلب

نحوه تعریف یک حسابگر مش در فایل ورودی

یک حسابگر مش بوسیله تعدادی کارت که در ادامه توضیح داده می شود، تعریف می گردد. تمام دستور های مربوط حسابگرهای مش باید در یک بلوک که شامل کارتی با عنوان tmesh است، در 5 ستون اول قرار گرفته و بعد از تعریف تمام دستور ها در خاتمه باید یک کارت که شامل دستور endmd در 5 ستون اول قرار بگیرد. برای هر یک از دستور های این حسابگر، دستورات زیر که شامل جزئیاتی از مختصات مش است، قرار می گیرد.

CORAn

CORBn

CORCn corrc(n,1), corrc(n,2), ... corrc(n,N)

دستورهای CORAn، CORBn و CORCn برای تعیین سه محوری که نوع حسابگر مش را مشخص می کنند، به کار می روند. منظور ار نوع حسابگر مش، مستطیلی، استوانه ای و یا کروی بودن آن است.  
در مورد مش های مستطیلی،
CORAn صفحات عمود بر محور x، CORBn صفحات عمود بر محور y و CORCn هم صفحات عمود بر محور z را مشخص می کند. در مش های استوانه ای، CORBn محور غیر قابل تغییر z را که در واقع همان محور تقارن استوانه است، مشخص می کند. CORAn در این مختصات تغییرات شعاع را نشان می دهد. کوچکترین مقدار (مقدار اولیه) برای شعاع برابر صفر است که مقدار این دستور صفحات عمود بر محور غیر قابل تغییر z را مشخص می کند. CORCn زاویه با چرخش ساعتگرد نسبت به محور z را نشان میدهد. این زاویه بر حسب درجه بوده که نسبت به جهت مثبت محور x از صفر تا 360 درجه تغییر می کند. مقدار صفر روی این کارت تعریف ناپذیر است.

در مش­های کروی، CORAn شعاع کره، CORBn زاویه قطبی و CORCn شبیه به آن چیزیی است که در مختصات استوانه ای تعریف می شود. MCNPX این قابلیت را دارد که تعداد زیادی از نقاط مش بوسیله حداقل ورودی روی محورهای مختصات، را بوجود بیاورد. تمام مقادیر ورودی مربوط به مختصات باید به صورت یکنواخت افزایش پیدا کنند تا بتوان به جوابی مناسب دست پیدا کرد. واضح است که اندازه مش به مقادیر ورودی مختصات بستگی دارد. لازم بذکر است که برای مش های با تعداد خیلی زیاد به کامپیوتری با کارایی و حافظه بالا نیاز است.

دستورات دیگری که می توانند با حسابگر مش مورد استفاده قرار بگیرند از قرار زیر هستند:

ERGSHn E1 E2

MSHMFn E1 F1 E2 F2 ...

FMn ...

E1 حد پایین انرژی مورد نظرو E2 حد بالایی انرژی هستند که در کارت ERGSH به کار می روند. پیش فرض نرم افزار همه انرژی ها را در نظر می گیرد.

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

کارت FM هم شبیه آن چیزی است که قبلا ذکر شده است. این کارت نباید بین کارت های tmesh و endmd قرار بگیرد. ساختار مش ها با توجه به نیازی که از مسئله و خروجی برنامه داریم به سه گروه تقسیم بندی می شوند. این فرم ها به صورت زیر هستند:

RMESHn:P keyword(i), i=1,10

CMESHn:P keyword(i), i=1,10

SMESHn:P keyword(i), i=1,10

 

RMESHمش مستطیلی، CMESH، مش استوانه ای و SMESH یک مش کروی است. n شماره حسابگر است که توسط کاربر تعریف می گردد. شماره مش نباید با شماره دیگر حسابگر هایی که در مسئله به کار رفته است یکسان باشد، مثلا اگر حسابگر F1 در فایل ورودی وجود دارد شماره حسابگر مش نباید برابر با 1 قرار داده شود. عدد n نوع اطلاعاتی که در مش ذخیره می شود را مشخص می کند.

ادامه مطلب

مش بندی در mcnpx قسمت دوم مش بندی استوانه ای

 - مش بندی استوانه ای

مثال :


توضیح :

cora11 برای تعیین شعاع استوانه است

corb11 در واقع محور z یا محور استوانه است

corc11 زاویه صفر تا 360 درجه است که این سه مختصه با هم یک استوانه کامل را میسازند

همان طور که برای مشبندی مستطیلی گفتیم برای این نوع مشبندی هم همان ها صدق میکنند

- برای پلوت کانتور گرفتن یکی از مولفه ها را ثابت گرفتم اینجا من زاویه صفر درجه را فقط در نظر گرفتم و r , Z هرکدام متحول میشوند

وقتی برنامه را در mcnpx نوشتیم یه فایل mdat به ما میدهد + خروجی و... که با gridconv فایل mdat را باید تبدیل کنیم به فایلی مناسب برای برنامه tecplot

من این کار را انجام دادم و برای برنامه بالا خروجی به شکل زیر در امد

نکته :

این مش بندی که انجام دادیم در زاویه 0 درجه و پلوت 2 بعدی rz بوده و برای شار نوشتم که در تصویر متن برنامه نوشته شده track که ان را به flux تغییر دادم شما میتوانید با تغییر کلمات کلیدی وهمچنین تغییر پارامتر های شعاع و زاویه و... شکل های 2 بعدی و 3 بعدی خوبی ترسیم کنید.

در برنامه تغییراتی دادم و این بار pedep را حساب کردم  شکل زیر

شار را نیز حساب کردم شکل زیر

1 2 >>
PageRank