شبیهسازی یکی از مراحل تولید و ساخت هر محصولی، در هر ابعاد و کاربردی، است. این محصول میتواند فیزیکی (لمس کردنی) و یا غیرفیزیکی باشد. ابتدا ببینیم شبیهسازی چیست؟
شبیهسازی به فرایندی گفته میشود که یک شیء، یک وسیله یا یک دستگاه را به صورت برنامهنویسی شده طراحی کنیم. این کار با مطالعه جزئیات سیستم مورد نظر ما امکانپذیر است. فرض کنید میخواهیم یک تلویزیون بسازیم. به جای آنکه به صورت آزمایشگاهی کار کنیم، که امکان خطر فردی و نیز خطاهای آزمایشگاهی و تحمیل هزینههای بسیار زیاد وجود دارد، تلویزیون را مورد مطالعه قرار میدهیم و با بررسی موارد حاکم بر آن، اقدام به برنامهنویسی آن میکنیم. در این فرایند با بررسی تمام قطعات و وظایف آن و وابستگیهایی که میان آنها وجود دارد، مرحله به مرحله، آنها را برنامهنویسی میکنیم.
همانطور که در قسمت قبلی گفته شد، برای جلوگیری از خطرات آزمایشگاه و هزینههای آزمایش، نیاز داریم تا شبیهسازی را جدیتر بگیریم. همچنین گاهی اوقات سیستمی را میخواهیم بسازیم که هیچ اطلاعی از اثرات و خروجی آن نداریم. در این حالت هم باید شبیهسازی انجام شود.
یکی از مواردی که شبیهسازی در آن بسیار کاربرد دارد، بومی سازی تجهیزات است. با مطالعه یک نمونه و بررسی فیزیکِ دستگاه و فرایندهای حاکم بر آن، میتوانیم به راحتی یک سیستم را بسازیم. البته مطالعه دقیق و بررسی فرایندهای حاکم آنقدر زمانبر است که نیاز به کار تیمی و حمایتهای فراوان وجود دارد.
تقریباً با تمام زبانهای برنامهنویسی حال حاضر میتوانیم شبیهسازی کنیم. به عنوان مثال
الف) متلب (MATLAB)
ب) پایتون (PYTHON)
ج) سیپلاسپلاس (++C)
د) جاوا (JAVA)
هـ) جولیا (JULIA)
برای آغاز یادگیری شبیهسازی، باید مقدمات و نحوه کار کردن با یکی از این زبانها را شروع کنید. تاکید میکنیم که یک مورد نه همه آنها. میتوانید از مقالات و دورههای این مجموعه و یا با جستجو در گوگل محتواهای رایگان زیادی را مشاهده کنید و آموزش هدفمند خود را شروع کنید. اما یادتان باشد، هرچه دیرتر شروع به یادگیری کنید، نه تنها از افراد جامعه ایران، بلکه از جامعه جهانی هم عقب میمانید.
نرمافزارهایی که برای شبیهسازی از آنها استفاده میشود، زیاد هستند اما آنهایی که کاربرد و طرفدار زیادی دارند را به همراه کاربردهای تخصصیشان عنوان میکنیم.
الف) کامسول (COMSOL): این نرمافزار هم فن حریف است. از مسائل ساده فیزیک تا شبیهسازی سیستمهای ذرهای و شبیهسازی اپتیک کاربرد دارد. در رشتههای مختلف فیزیک (تمام گرایشها)، شیمی (تمام گرایش) و پرتوپزشکی کاربرد دارد.
ب) سالیدورک (SOLIDWORK): از این نرمافزار برای شبیهسازی سیستمهای مکانیکی و سختافزاری استفاده میشود. اگر علاقمند هستید تا بدنه یک دستگاه را شبیهسازی کنید یادگیری این مورد باید در اولویتهای شما باشد. تمام تجهیزاتی که در صنعت و پزشکی مورد استفاده قرار میگیرد، با این نرمافزار میتوانید شبیهسازی و تولید کنید.
ج) زیمکس (ZEMAX): این نرمافزار به طور اختصاصی برای طراحی سیستمهای نوری (اپتیکی) و لیزری استفاده میشود. اگر رشته تخصصی شما فیزیک - اتمی مولکولی (اپتیک لیزر) باشد و یا علاقمند به شبیهسازی سیستمهای اپتیکال داشته باشید، یادگیری این نرمافزار الزامی است. البته نرمافزار کامسول در زمینه اپتیک هم کاربردهای فراوانی دارد.
د) MCNP: این کد براساس روش مونتکارلو نوشته شده است. از این کد شبیهسازی برای حوزههای مختلف رشته مهندسی هستهای گرایشهای مختلف مثل رآکتور، گداخت، کاربردپرتو و پرتوپزشکی استفاده میشود. همچنین رشتههای فیزیک پزشکی، مهندسی پزشکی، تصویربرداری پزشکی و نیز رادیوبیولوژی و حفاظت در برابر اشعه هم از این کد استفاده میکنند.
از این کد در زمینههای مختلفی میتوانیم استفاده کنیم:
الف) طراحی حفاظ و آشکارساز و دزیمتری
ب) طراحی هدف در شتابدهنده
ج) ایمنی و بحرانیت هستهای
د) محاسبات مصرف سوخت
هـ) رادیوگرافی
و) ...
هـ) جیانت (Geant4): این کد هم مثل MCNP براساس روش مونتکارلو نوشته شده است. این کد در تمام زمینههای حوزه علوم پرتویی مثل تصویربرداری، دزیمتری و طراحی درمان، طراحی آشکارساز و غیره کاربرد دارد. برای اینکه بتوانید از تمام قابلیتهای این کد مونتکارلو به خوبی استفاده کنید باید بر زبان برنامهنویسی سیپلاسپلاس تسلط کافی داشته باشید در غیر اینصورت حتما با مشکلاتی مواجه خواهید شد.
و) فلوکا (Fluka): این کد مونتکارلو شبیهساز در زمینههای مختلفی همچون کالریمتری، دزیمتری، طراحی آشکارسازها و مطالعات مربوط به تابشهای فضایی، فیزیک نوترونها و رادیوتراپی کاربرد دارد. در حال حاضر علاوه بر کاربردهایی که اشاره شد، از این کد برای شبیهسازی ذره درمانی (هادرون تراپی) بیشتر استفاده میشود.
ز) گیت (GATE): آخرین کد مونتکارلویی که قصد داریم تا در این مقاله آن را معرفی کنیم، کد گِیت است. این کد را دختر کد Geant4 مینامند. از این کد در حوزههای مختلفی میتوان استفاده کرد اما کاربرد اصلی آن «تصویربرداری» میباشد. اگر به دنبال شبیهسازی تصویربرداری با سیستمهای پزشکیهستهای، اپتیکال (نوری)، تشدید مغناطیسی و یا حتی ذرهای هستید، یادگیری این کد را فراموش نکنید.
زبانها، کدها و نرمافزارهایی که در این مقاله آموزشی به آنها اشاره شد، تنها وسیلهای برای تولید علم و پیشرفت علمی هستند. تا زمانی که حداقلهایی از دانش تئوری مربوط به حوزه مورد نظر را نداشته باشیم، کار کردن با نرمافزارها و زبانهای برنامهنویسی بسیار سختتر هم میشود. پس قبل از هر چیز به خواندن و مطالعه و کسب دانش در زمینههای تئوریتان بپردازید و از علم شبیهسازی غافل نشوید.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
نویسنده: تیم تحریریه AiFa Academy
منابع:
1- تیم تحریریه AiFa Academy
2- کتاب «آموزش کد MCNPX» نوشته دکتر یاسر کاسهساز و دکتر مصطفی حسن زاده
3- کتاب «مقدمهای بر شبیهسازی با کد مونت کارلوی فلوکا» نوشته دکتر جمشید سلطانی نبیپور و مهندس مرتضی جوان
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
با نظرات خود ما را در جهت بهبود کیفیت محتوا و خدمات همراهی کنید