آموزش کپی کردن یک سلول با like n but در MCNP
MCNP (Monte Carlo N-Particle) یک کد شبیهسازی قدرتمند برای ترابرد ذرات است که در آن هندسه مسئله با استفاده از سلولها (Cells) و سطحها (Surfaces) تعریف میشود. هنگام مدلسازی سازههای پیچیده و تکراری (مانند آرایه میلههای سوخت در راکتور، شبکهی بلورها، یا آرایهای از آشکارسازها)، تعریف دستی هر سلول به صورت جداگانه میتواند بسیار زمانبر، پرخطا و باعث حجیم شدن فایل ورودی شود.
در چنین مواردی، MCNP یک قابلیت بسیار کارآمد و انعطافپذیر به نام کارت LIKE n BUT ارائه میدهد. این کارت به کاربر اجازه میدهد تا از یک سلول اصلی (سلول مادر) کپی بگیرد و سپس تغییرات خاصی را در کپی جدید اعمال کند. این روش، بهرهوری در کدنویسی را به شدت افزایش داده و از بروز خطاهای ناشی از تکرار جلوگیری میکند.
۱. فلسفه و ساختار اصلی کارت LIKE n BUT
ایده اصلی بسیار ساده است: "سلول جدید را دقیقاً مشابه سلول شماره n بساز، اما با تغییرات زیر..."
ساختار کلی کارت سلول در این روش به صورت زیر است:
c <cell card>
<Cell Number> <Material Number> <Density> LIKE <Mother Cell Number> BUT
<List of Modifiers>
-
<Cell Number>: شماره یکتای سلول جدید (کپی). -
<Material Number> & <Density>: در حالت عادی، این پارامترها تعریف میشوند. اما وقتی ازLIKE n BUTاستفاده میکنید، این مقادیر به طور پیشفرض از سلول مادر به ارث میروند. میتوان آنها را در بخشBUTتغییر داد. -
LIKE <Mother Cell Number>: این بخش به MCNP دستور میدهد که تمام خصوصیات هندسی، مواد و شرایط سلول با شماره<Mother Cell Number>را برای سلول جدید کپی کند. -
BUT: این کلمه کلیدی، آغازگر بخش "تغییرات" است. در ادامه این بخش، اصلاحگرها (Modifiers) لیست میشوند.
۲. فهرست جامع اصلاحگرها (Modifiers)
اصلاحگرها پارامترهایی هستند که مشخص میکنند کدام ویژگی سلول مادر باید در سلول جدید تغییر کند. این اصلاحگرها میتوانند به چند دسته اصلی تقسیم شوند:
۲. ۱. اصلاحگرهای مکانی (جابجایی و چرخش)
این مهمترین دسته برای کپیکردن هندسی است.
-
TRCL(TRanslation and CLone):-
این اصلاحگر سلول کپی شده را در فضای مدل جابجا میکند.
-
میتواند یک عدد باشد که به شماره یک کارت
TR(Transform) اشاره میکند. -
میتواند مستقیماً بردار جابجایی باشد.
مثال با بردار جابجایی مستقیم:
فرض کنید سلول ۱ یک استوانه کوچک در مرکز مختصات است. میخواهیم یک کپی از آن در موقعیت (x=5, y=0, z=0) داشته باشیم.1 1 -0.001 -1 2 -3 4 imp:n=1 $ Mother Cell: a small cylinder 2 0 -5 6 -7 8 imp:n=1 $ A large outside universe cell c Now, we create a copy of cell 1, shifted by 5 cm in x-direction. 3 1 -0.001 like 1 but trcl=(5 0 0) imp:n=1
در این مثال، سلول ۳ دقیقاً همان هندسه سلول ۱ را دارد، اما کل آن به اندازه ۵ سانتیمتر در جهت محور X جابجا شده است.
-
-
TR(TRansform):-
مشابه
TRCLعمل میکند اما برای تبدیلهای پیچیدهتر شامل چرخش و جابجایی به کار میرود. -
باید به شماره یک کارت تبدیل از پیش تعریف شده اشاره کند.
مثال با کارت
TR: (تعریف یک تبدیل شامل چرخش)TR1: 5 0 0 90 1 1 1 $ Tx=5cm, then 90 degrees rotation about vector (1,1,1) ... 3 1 -0.001 like 1 but tr=1 imp:n=1
-
-
LAT(LATtice):-
برای تغییر نوع یا شماره شبکه (Lattice) سلول استفاده میشود. اگر سلول مادر بخشی از یک شبکه باشد، این گزینه امکان تغییر آن را فراهم میکند (کاربرد پیشرفته).
-
۲. ۲. اصلاحگرهای مربوط به ماده و چگالی
-
MAT(MATerial): شماره ماده سلول کپی شده را تغییر میدهد. -
RHO(mass density): چگالی جرمی ماده را تغییر میدهد.مثال: ایجاد دو کپی با مواد مختلف از یک هندسه یکسان.
1 1 -8.65 -1 imp:n=1 $ Mother Cell: a sphere made of Uranium 2 0 -2 imp:n=1 $ Outside world c A copy filled with Lead instead of Uranium 3 2 -11.34 like 1 but mat=2 rho=11.34 imp:n=1 c Another copy filled with Water 4 3 -1.0 like 1 but mat=3 rho=1.0 imp:n=1
۲. ۳. اصلاحگرهای مربوط به سطحها
این یک قابلیت بسیار قدرتمند است که به شما اجازه میدهد یک یا چند سطح تعریفکننده سلول مادر را در سلول جدید با سطحهای جدید جایگزین کنید.
-
ساختار:
OLD=(NEW LIST)-
OLD: شماره سطحی از سلول مادر که میخواهید تغییر کند. -
NEW LIST: لیست جدیدی از سطحها که جایگزینOLDمیشوند. این لیست میتواند شامل یک سطح یا یک عبارت بولین از چند سطح باشد.
مثال کاربردی: فرض کنید سلول ۱ یک مکعب است که توسط سطحهای ۱ تا ۶ تعریف شده است. میخواهیم یک کپی از آن ایجاد کنیم که به جای سطح بالا (مثلاً سطح ۳)، یک سطح استوانهای (سطح ۱۰) داشته باشد.
1 1 -0.001 (1 -2 3 -4 5 -6) imp:n=1 $ Mother Cell: a cube 2 0 -7 imp:n=1 $ Outside world c We create a copy, but we replace surface 3 (a plane) with a cylindrical surface (10). 3 1 -0.001 like 1 but 3=10 imp:n=1
در این مثال، سلول ۳ دیگر یک مکعب کامل نیست، بلکه شکلی است که پنج وجه آن صفحه و وجه ششم آن یک سطح استوانهای است.
-
۲. ۴. سایر اصلاحگرها
-
U(Universe): شماره جهان (Universe) سلول را تغییر میدهد. این برای مدلسازی سلسله مراتبی هندسه (مثلاً در شبکهبندی راکتور) حیاتی است. -
FILL(FILL): محتوای یک سلول را به یک جهان دیگر تغییر میدهد. این کارت معمولاً به تنهایی و نه در کنارLIKE n BUTاستفاده میشود، اما از نظر مفهومی مرتبط است. -
IMP:N(IMPortance): اهمیت ذرات را برای سلول جدید مشخص میکند. همانطور در مثالها دیده شد، این پارامتر باید حتماً در سلول کپی شده مشخص شود، چرا که از سلول مادر به ارث برده نمیشود.
۳. یک مثال کامل و کاربردی
فرض کنید میخواهیم یک آرایه ۲x۲ از میلههای سوخت یکسان را درون یک محفظه آب مدل کنیم.
مراحل مدلسازی:
۱. تعریف سلول میله سوخت (سلول مادر): یک استوانه ساده.
۲. تعریف سلول محفظه آب: یک محفظه بزرگ که فضای آرایه را در بر میگیرد.
۳. کپیگیری با LIKE n BUT و جابجایی: ایجاد ۴ کپی از میله سوخت و قرار دادن آنها در موقعیتهای مختلف.
کد MCNP:
c --- Surface Cards --- c Fuel Rod Surfaces (Mother Cell) 1 cz 0.5 $ Fuel rod radius: 0.5 cm 2 pz 0 $ Bottom of fuel rod 3 pz 100 $ Top of fuel rod c Water Box Surface 4 rpp -10 10 -10 10 0 100 $ A box of water (20x20x100 cm3) c --- Cell Cards --- c Mother Cell: The Original Fuel Rod at the center (will be overridden by fill) 11 1 -10.4 (-1 -2 3) imp:n=1 u=1 $ Uranium fuel rod, assigned to Universe 1 c Water Cell (This cell will be FILLed with the lattice of rods) 20 2 -1.0 (-4) fill=2 imp:n=1 $ Water box, assigned to Universe 2 c Define the Lattice Universe (a 2x2 grid) c Cell 30 is the universe that contains our array. 30 0 like 11 but trcl=(-5 -5 0) imp:n=1 31 0 like 11 but trcl=(-5 5 0) imp:n=1 32 0 like 11 but trcl=( 5 -5 0) imp:n=1 33 0 like 11 but trcl=( 5 5 0) imp:n=1 c The lattice universe cell is defined as the space containing these 4 rods. c In a more advanced model, you might use a LAT card here. c Outside World 99 0 4 imp:n=0 c --- Data Cards --- mode n m1 92235.80c 1.0 $ Uranium-235 m2 1001.80c 2.0 8016.80c 1.0 $ Water (H2O) sdef pos=0 0 50 erg=2.5 nps 100000
توضیح مثال:
در این کد، سلول ۱۱ به عنوان سلول مادر تعریف شده است. سپس سلولهای ۳۰، ۳۱، ۳۲ و ۳۳ با استفاده از LIKE 11 BUT و اصلاحگر TRCL ایجاد شدهاند. هر کدام از این سلولها یک کپی دقیق از میله سوخت هستند که به مختصات مختلف (۵±, ۵±) در صفحه XY منتقل شدهاند. این آرایه سپس درون سلول آب (سلول ۲۰) با دستور FILL قرار گرفته است.
۴. مزایای کلیدی استفاده از LIKE n BUT
-
کاهش حجم کد: از تکرار چندین باره تعریف یک سلول مشابه جلوگیری میکند.
-
کاهش خطا: هرگونه تغییر در هندسه پایه فقط需要在 سلول مادر اعمال شود و تمام کپیها به طور خودکار بهروز میشوند.
-
خوانایی و سازماندهی: فایل ورودی تمیزتر و قابل درکتر میشود.
-
انعطافپذیری: امکان ایجاد تغییرات موضعی و سریع در نمونههای کپی شده را فراهم میکند.
۵. نکات مهم و هشدارها
-
اهمیت (IMP): پارامتر اهمیت (
IMP:N) از سلول مادر به ارث برده نمیشود و حتماً باید برای هر سلول کپی شده مجدداً تعریف شود. -
ترتیب سطوح: هنگام استفاده از اصلاحگر جایگزینی سطح (مثلاً
3=10)، مطمئن شوید که عبارت بولین جدید از نظر منطقی معتبر باشد و سلول بستهای ایجاد کند. -
تبدیلها: درک صحیح از تبدیلهای
TRوTRCLبرای قرارگیری دقیق سلولهای کپی شده در فضای مدل ضروری است. -
عیبیابی: همیشه پس از استفاده از
LIKE n BUT، با استفاده از ابزارهای بصریسازی (مانند VisEd) هندسه تولید شده را بررسی کنید تا از صحت کپیگیری و تبدیلها اطمینان حاصل کنید.
جمعبندی
کارت LIKE n BUT یک ابزار ضروری برای هر کاربر MCNP است که قصد مدلسازی هندسههای پیچیده و تکراری را دارد. این کارت نه تنها در زمان و تلاش کاربر صرفهجویی میکند، بلکه قابلیت اطمینان و صحت مدل را به طور چشمگیری افزایش میدهد. با تسلط بر این دستور و اصلاحگرهای مختلف آن (به ویژه TRCL برای جابجایی و جایگزینی سطوح)، میتوانید مدلهای MCNP خود را به صورت حرفهای و کارآمد بسازید.