راهنمای اجرای مجازی Geant4
برای شروع کار با ابزار Geant4 استفاده از این روش پیشنهاد می گردد. فرآیند نصب زمان کمتری نیاز دارد و بسیار آسان تر از نصب واقعی آن در محیط لینوکس است. فقط باید یک اینترنت پرسرعت برای دانلود فایل اصلی داشته باشید و کمی حوصله!
شکل 1
شکل 2
شکل 3
اجزای DetectorConstruction و نحوه تعریف آنها-مقدماتی (1)
برای درک بهتر لطفاً مثال B1 را باز کنید و سپس از فولدر src فایل B1DetectorConstruction را باز کنید.
در ابتدای فایل یک سری کلاس اصطلاحاً Include شده است که با توجه به تعاریف و توضیحات بعدی متوجه خواهید شد که برای مثال خاص خودتان نیاز هست که چه اجزایی را اضافه کنید.
اما یک تعداد فایل مشخص باید وجود داشته باشد که ابتد ا یک به یک آنها توضیح داده می شود:
#include "B1DetectorConstruction.hh"
همان کلاس مکمل فایلتان است که در فولدر Include قرار دارد و گاهی نیاز هست تغییراتی در آن انجام داد.
همان طور که قبلاْ گفته شد به ازای هر کلاسی در فولدر src نیاز به مکمل آن در فولدر Include است.
#include "G4NistManager.hh"
#include "G4Material.hh"
همچنین با کمک این دو کلاس می توانید اطلاعات خروجی تان را، برای مثال در چاپ در ترمینال، به صورت زیر تعریف کنید. طول stepsize را بر اساس واحد طول متناسب با مقدار آن چاپ خواهد کرد. برای کمیت های دیگر نیز مانند انرژی و زمان و طول و ...می توان از این دستورات استفاده کرد: Length, Time, Energyو ...
با این دستور چاپ
G4cout << G4BestUnit(StepSize, "Length");
خروجی در ترمینال نمایش داده خواهد شد طول گام به همراه واحدش است.
نیاز هست که سه بخش اصلی برای تک تک بخشهای سیستم تعریف کنید.
تعریف هندسه مساله
اولین بخش تعریف هندسه است. به این معنا که باید مشخص کنید حجم مورد نظرتان چه هندسه ای است و چه ابعادی دارد. برای مثال کره هست یا مکعب یا .... و اندازه ابعادش چقدر است.
با کمک دستورات زیر هندسه تعریف خواهد شد:
G4Box* solidWorld =
new G4Box("World", //its name
0.5*world_sizeXY, 0.5*world_sizeXY, 0.5*world_sizeZ); //its size
یا
G4Trd* solidShape2 =
new G4Trd("Shape2", //its name
0.5*shape2_dxa, 0.5*shape2_dxb,
0.5*shape2_dya, 0.5*shape2_dyb, 0.5*shape2_dz); //its size
G4Box* solidWorld یعنی از کلاس G4Box یک هندسه به نام solidWorld ساخته خواهد شد. گاهی برای برون کشی داده فقط نیاز به نام solidهندسه هست.
یا
G4Trd* solidShape2 یعنی از کلاس G4Trd یک هندسه به نام solidShape2 ساخته خواهد شد.
در خط دوم مشخصات هر هندسه تعریف میشود:
اسم کلی آن: "world" یا "Shape2"
ابعاد "world" یعنی طول و عرض و ارتفاع آن:
0.5*world_sizeXY, 0.5*world_sizeXY, 0.5*world_sizeZ
ابعاد "Shape2" یعنی طول (کمترین و بیشترین مقدار آن) و عرض (کمترین و بیشترین مقدار آن) و ارتفاع: 0.5*shape2_dxa, 0.5*shape2_dxb, 0.5*shape2_dya, 0.5*shape2_dyb, 0.5*shape2_dz
۴ نوع هندسه می توان تعریف کرد:
تعریف موقعیت هندسه
حال باید موقعیت هندسه ساخته شده را تعیین کرد. مرکز جهان مرکز محور مختصات است و جهت خاصی را هم به آن نسبت نمی دهند زیرا معنایی ندارد. در مورد هندسه های بعدی که اجزای سازنده خواهند بود باید دقت کرد که محل شان و دروان شان (اگر وجود داشته باشد) باید نسبت به مرکز جهان و محورهای مختصات تعریف شده اولیه مشخص شود. هنگامی که هندسه ای درون هندسه ی دیگری قرار می گیرد باید دقت کرد که برای آن باید مادری تعریف کرد که آن را در بر گرفته است.
G4VPhysicalVolume* physWorld =
new G4PVPlacement(0, //no rotation
G4ThreeVector(), //at (0,0,0)
logicWorld, //its logical volume
"World", //its name
0, //its mother volume
false, //no boolean operation
0, //copy number
checkOverlaps); //overlaps checking
برای تعریف فیزیک به ترتیب دوران، محل مرکز جسم، نام logic آن، نام کلی آن، نام مادر (اولین هندسه در بردارنده آن هندسه)، استفاده از متغیرهای بولین برای تعاریف هندسه های پیچیده تر، عدد کپی هندسه و در نهایت بررسی روی هم افتادگی تعربف خواهد شد. برای هندسه جهان دروان آن معنایی ندارد زیرا هندسه ی غیر از آن وجود ندارد. محل مرکز آن هم مرکز محور مختصات خواهد بود. اما برای هندسه های بعدی موقعیت شان باید با توجه به مرکز هندسی مادرشان تعریف شود. برای مثال شکل ۲ در هندسه دیگری به نام logicEnv قرار دارد. دقت کنید که نام logic مادر باید نوشته شود نه نام کلی آن!
new G4PVPlacement(0, //no rotation
pos2, //at position
logicShape2, //its logical volume
"Shape2", //its name
logicEnv, //its mother volume
false, //no boolean operation
0, //copy number
checkOverlaps); //overlaps checking
در انتهای کلاس دتکتور باید return physWorld; وجود داشته باشد.
معرفی اجزای یک مثال Geant4
هر مثال به صورت فولدری هست که از دو فولدر src و include و تعدادی فایل تشکیل شده است. برای درک و آَشنایی بهتر لطفاً از قسمت مثالها و فولدر basic مثال B1 را باز کنید.
دقت کنید که با اضافه شدن کلاسی به برنامه، باید دوباره cmake انجام دهید. ولی برای تغییرات در هر کلاس فقط نیاز به make کردن هست. |
حال به فولدر src بروید.
با تعیین شدن این سه کلاس اصلی یعنی Physicslist، PrimaryGeneratorAction و DetectorConstruction برنامه شبیهسازی شما تکمیل شده است به این معنا که با اجرای برنامه، با توجه به فیزیک تعریف شده، تابش تعریف شده در هندسه تعیین شده ردیابی خواهد شد تا جایی که با توجه به انرژی تابشی ذره و فیزیک و هندسه مساله امکان ردیابی آن باشد و همچنین تابش از محیط خارج نشده باشد.
برون کشی داده
برای داشتن اطلاعات رخ داده در هر بخش هندسه، باید کاربر اطلاعات مورد نظر را خودش مشخص کند و سپس به کمک دستوارت و کلاسهای خاصی استخراج کند. برای اطلاعات بیشتر این صفحه را ببنید.
نحوه اجرای مثالها با روش cmake
چند نکته دیگر
به دنیای Geant4 خوش آمدید.
نصب geant4 بر روی سیستم عامل لینوکس
نصب پیشنیازها
دانلود Geant4
نصب Geant4
برای مشاهدهی فایل های C++ می توانید برنامه ویرایش متن geany را با دستور sudo apt-get install geany نصب کنید.
اما پیشنهاد می کنم حتماْ ویراستار eclipse را به عنوان ادیتورتان انتخاب کنید تا بتوانید حرفه ای تر کار کنید.
حال نصب برنامه شما با موفقیت انجام شده است.
برای اطمینان از نصب کامل و در ست برنامه، به این لینک بروید و یک مثال را اجرا کنید.
دانش پایهی C++
برای برنامه نویسی با ابزار Geant4 و انجام تغییرات در آن نیاز هست که زبان C++ را بفهمید. همچنین با مفاهیم الگوریتم نویسی آشنا باشید و بتوانید دستوراتی را به برنامه خاص خودتان اضافه کنید.
الگوریتم
برای آشنایی با مفاهیم الگوریتم نویسی این چند لینک را ببینید.
زبان C++
برای آشنایی با مفاهیم پایه برنامه نویسی C++ این چند لینک را ببینید.
به پیشنهاد سازندگان و تیم اصلی طراحان، نصب Geant4 بهتر است که بر روی یکی از نسخههای لینوکس نصب شود.
به علت اینکه دو سیستم عامل بر روی سیستم و در کنار یکدیگر نصب خواهند شد، نیاز هست حتماً با مطالعه کامل روش نصب و با دقت و حوصله بسیار این مرحله انجام گیرد.
پیشنهاد میشود که Ubuntu، یکی از نسخههای لینوکس نصب شود. ابتدا باید آخرین نسخه را از سایت اصلی یا سایت فارسی بردارید. حتما نسخه دسک تاپ و با پسوند LTS ا انتخاب کنید.
در اینجا لینکهای مناسب برای راهنمایی نصب معرفی شده است. پیشنهاد میکنم خودتان هم سایتها و وبلاگهای دیگری را برای اطمینان از نحوه نصب مطالعه کنید.
برای کار با ابزار جینت نیاز هست آشنایی اولیهای با محیط اوبنتو وجود داشته باشد. در زیر لینکهای مناسب معرفی میگردند. در انجمنها به راحتی میتوانید پاسخ همه سوالات خود را بیابید.