Chương trình MCNP
MCNP (Monte Carlo N−Particle) là phần mềm sử dụng phương pháp Monte Carlo để mô phỏng các quá trình vật lý hạt nhân liên quan đến neutron, photon và electron, bao gồm các quá trình phân rã hạt nhân và tương tác của tia bức xạ với vật chất Chương trình được phát triển bởi nhóm Monte Carlo, hiện thuộc nhóm Transport Methods Group (XTM) của phòng Applied Theoretical & Computational Physics Division (X Division) tại Trung tâm Thí nghiệm Quốc gia Los Alamos (Mỹ) Mỗi hai hoặc ba năm, nhóm phát hành một phiên bản mới của chương trình.
Chương trình MCNP, với khoảng 45.000 dòng lệnh FORTRAN và 1.000 dòng lệnh C, bao gồm khoảng 400 chương trình con, là một công cụ tính toán mạnh mẽ cho việc mô phỏng vận chuyển neutron, photon và electron Nó có khả năng giải quyết các bài toán vận chuyển bức xạ trong không gian 3 chiều, phụ thuộc thời gian và năng lượng liên tục, phục vụ cho nhiều lĩnh vực như thiết kế lò phản ứng, an toàn bức xạ và vật lý y học MCNP hỗ trợ các miền năng lượng neutron từ 10 −11 MeV đến 20 MeV (và lên đến 150 MeV cho một số đồng vị), photon từ 1 keV đến 100 GeV và electron từ 1 keV đến 1 GeV Chương trình cho phép xây dựng hình học phức tạp và mô phỏng dựa trên thư viện hạt nhân, điều khiển các quá trình tương tác bằng cách sử dụng số ngẫu nhiên theo quy luật thống kê, với số lần thử cần thiết thường rất lớn.
The MCNP program is accessible to users through the Radiation Safety Information Computational Center (RSICC) in Oak Ridge, Tennessee, and the Nuclear Energy Agency (NEA/OECD) database in Paris, France Currently, there are approximately 250 users at Los Alamos and over 3,000 users worldwide across more than 200 application facilities.
Lịch sử của chương trình MCNP
Phương pháp Monte Carlo
Phương pháp này mang tên một thành phố ở Monaco, nổi tiếng với các sòng bạc, do nó dựa vào việc gieo các số ngẫu nhiên Tuy nhiên, việc sử dụng số ngẫu nhiên để giải quyết các bài toán đã tồn tại từ rất lâu.
Vào thế kỷ 18, các thí nghiệm đã được tiến hành bằng cách ném một cây kim ngẫu nhiên lên một mặt phẳng có các đường thẳng song song, từ đó người ta đã suy ra giá trị của π thông qua việc đếm số điểm giao nhau giữa cây kim và các đường thẳng.
Vào những năm 1930, Enrico Fermi đã áp dụng phương pháp Monte Carlo để giải quyết các bài toán liên quan đến khuếch tán neutron, mặc dù ông không công bố bất kỳ nghiên cứu nào về lĩnh vực này.
Phương pháp Monte Carlo được phát triển như một công cụ nghiên cứu trong quá trình chế tạo bom nguyên tử trong Thế chiến thứ hai, nhằm mô phỏng các vấn đề xác suất liên quan đến sự khuếch tán neutron trong vật liệu phân hạch Năm 1946, các nhà vật lý tại Phòng thí nghiệm Los Alamos, dưới sự dẫn dắt của Nicholas Metropolis, John von Neumann và Stanislaw Ulam, đã đề xuất ứng dụng này.
Bài toán cây kim Buffon (Buffon’s needle problem) nghiên cứu xác suất cây kim dài l rơi ngẫu nhiên trên một mặt sàn có các đường thẳng song song cách nhau một khoảng t (với điều kiện l ≤ t) và xác định xác suất cây kim cắt ngang đường thẳng.
Gọi x là khoảng cách từ tâm cây kim đến đường thẳng gần nhất và θ là góc giữa cây kim và đường thẳng Hàm mật độ xác suất (probability density function) của x và θ được xác định như sau.
2 : 2 π dθ Hàm mật độ xác suất kếp hợp (joint probability density function)
4 tπ dxdθ Điều kiện để cây kim cắt ngang đường thẳng x ≤ l
2 sin θ, xác suất để cây kim cắt ngang đường thẳng sẽ thu được bằng cách lấy tích phân hàm mật độ xác suất kết hợp
4 tπ dxdθ = 2l tπ Gỉa sử ta gieo N kim, trong đó có n kim cắt các đường thẳng n
Bài toán tính số π được minh họa qua việc sử dụng các cây kim và đường thẳng song song, thể hiện ứng dụng của phương pháp số ngẫu nhiên trong tính toán vận chuyển neutron trong các vật liệu phân hạch Do tính chất bí mật của dự án, nó được đặt mật danh “Monte Carlo”, từ đó phương pháp này cũng mang tên gọi tương tự Các tính toán Monte Carlo được thực hiện bởi John von Neumann trên máy tính điện tử đa mục đích đầu tiên thế giới, ENIAC (Electronic Numerical Integrator And Computer).
Hình 1.2: Máy tính điện tử ENIAC được đặt tại BRL building 328
Phương pháp này được phát triển và hệ thống hóa dựa trên các công trình của Harris và Herman Kahn vào năm 1948 Cùng thời điểm đó, Fermi, Metropolis và Ulam đã sử dụng phương pháp Monte Carlo để ước lượng trị riêng của phương trình Schrödinger.
Từ những năm 1970, các lý thuyết mới về độ phức tạp trong tính toán đã dẫn đến sự phát triển của phương pháp Monte Carlo, mang lại độ chính xác cao hơn và cơ sở lý luận thuyết phục cho việc áp dụng nó Ngày nay, với sự tiến bộ của máy tính điện tử, phương pháp Monte Carlo được sử dụng rộng rãi trong các nghiên cứu khoa học và công nghệ, đặc biệt trong lĩnh vực công nghệ hạt nhân.
MCNP
Tại Trung tâm Thí nghiệm Quốc gia Los Alamos, phương pháp Monte Carlo đã được ứng dụng từ những năm 1940, dẫn đến sự ra đời của chương trình MCNP Chương trình này bắt nguồn từ MCS, một phần mềm Monte Carlo vận chuyển hạt được phát triển từ năm 1963 Năm 1965, chương trình MCN ra đời, cho phép giải quyết các bài toán liên quan đến neutron tương tác với vật chất trong không gian ba chiều, sử dụng các thư viện số liệu vật lý.
1.2 Lịch sử của chương trình MCNP 10
Năm 1973, MCN đã được hợp nhất với MCG, chương trình Monte Carlo gamma xử lý photon năng lượng cao, để tạo ra MCNG - chương trình ghép cặp neutron-gamma Cùng năm đó, MCNG tiếp tục được hợp nhất với MCP, chương trình Monte Carlo photon, nhằm cải thiện xử lý vật lý chi tiết ở mức năng lượng.
Chương trình MCNP, viết tắt của Monte Carlo neutron-photon, được phát triển để mô phỏng chính xác các tương tác giữa neutron và photon với năng lượng 1 keV Đến năm 1990, khi quá trình vận chuyển electron được tích hợp, MCNP đã trở thành Monte Carlo N-Particle như hiện nay.
Các phiên bản của MCNP
MCNP3, được phát triển và công bố vào năm 1983 thông qua Trung tâm Thông tin An toàn Bức xạ (RSICC), là phiên bản đầu tiên của phần mềm này được phân phối quốc tế Trong suốt thập niên 1980, các phiên bản tiếp theo như MCNP3A và MCNP3B đã được ra mắt tại Phòng Thí nghiệm Quốc gia Los Alamos.
MCNP4, được phát hành vào năm 1990, cho phép mô phỏng trên các cấu trúc máy tính song song và đã tích hợp vận chuyển electron thông qua gói ITS (Integrated TIGER Series).
MCNP4A, được ra mắt vào năm 1993, nổi bật với khả năng phân tích thống kê nâng cao và tính năng phân phối cho phép chạy song song trên các cụm máy (cluster) và máy trạm (workstation).
• MCNP4B được công bố năm 1997 với việc tăng cường các quá trình vật lý của photon và đưa vào các toán tử vi phân nhiễu loạn,
• MCNP4C được công bố năm 2000 với các tính năng của electron được cập nhật, các xử lý cộng hưởng gần nhau (unresolved resonance), hình học khối (macrobody),
MCNP4C2, được công bố vào năm 2001, đã bổ sung các đặc trưng mới như hiệu ứng quang hạt nhân (photonuclear effect) và cải tiến cửa sổ trọng số (weight window).
MCNP5, được phát triển hoàn toàn bằng Fortran 90 và ra mắt vào năm 2003, đã cập nhật nhiều quá trình tương tác mới như va chạm quang hạt nhân và hiệu ứng giãn nở Doppler Phiên bản này cũng cải thiện khả năng tính toán song song nhờ vào việc hỗ trợ OpenMP và MPI.
Ngoài ra, phiên bản MCNPX đã được phát triển từ dự án Accelerator Production of Tritium (APT), với việc mở rộng các mức năng lượng và chủng loại hạt.
• Phiên bản MCNPX đầu tiên được phát hành rộng rãi là MCNPX2.1.5 vào năm 1999, dựa trên phiên bản MCNP4B.
• Phiên bản MCNPX2.4.0 phát hành vào năm 2002 dựa trên MCNP4C, có trên hệ điều hành Windows, hỗ trợ Fortran 90.
• MCNPX2.5.0 vào năm 2005 có tới 34 loại hạt, các phiên bản tiếp theo MCNPX2.6.0 phát hành năm 2008 và MCNPX2.7.0 năm 2011.
Từ năm 2006, đã có những nỗ lực để hợp nhất hai chương trình MCNP và MCNPX, dẫn đến việc tích hợp MCNPX2.6.B vào MCNP5 Kết quả của những nỗ lực này là sự ra đời của phiên bản MCNP6.1.0 vào tháng 5/2013.
MCNPX
MCNPX là phiên bản mở rộng của MCNP, được phát triển bởi Phòng Thí nghiệm Quốc gia Los Alamos (Mỹ), cho phép mô phỏng nhiều loại hạt hơn Được ra mắt vào năm 1994, MCNPX kết hợp giữa MCNP và hệ thống ngôn ngữ lập trình LAHET (LCS).
Chương trình MCNPX có khả năng mô phỏng sự vận chuyển của 34 loại hạt, bao gồm neutron, proton, electron, photon, 5 loại hạt lepton, 11 loại hạt baryon, 11 loại hạt meson và 4 loại hạt ion nhẹ như deuteron, triton, helium-3 và alpha, theo năng lượng và hướng Ngoài ra, chương trình cũng hỗ trợ xử lý hình học 3 chiều của vật chất trên các bề mặt sơ cấp và thứ cấp, hình xuyến, cũng như dạng lưới.
MCNPX sử dụng dữ liệu tiết diện liên tục kết hợp với các mô hình vật lý để mô phỏng năng lượng mở rộng trên 150 MeV Bảng 1.1 trình bày danh sách các loại hạt được mô phỏng bởi MCNPX, trong đó phản hạt được khai báo bằng cách đặt dấu trừ (−) trước ký hiệu hạt.
Bảng 1.1: Các loại hạt được mô phỏng trong MCNPX
IPT Loại hạt Kí hiệu Khối lượng Ngưỡng năng Thời gian
(MeV) lượng (MeV) sống (s) Các hạt trong MCNP
1.3 Cách thức cài đặt chương trình MCNP 12
MCNP6
MCNP6 là phiên bản hợp nhất giữa MCNP và MCNPX, hiện hỗ trợ 37 loại hạt được phân thành ba nhóm chính: hạt cơ bản, hạt tổng hợp (hay hadrons) và hạt nhân Hình 1.3 minh họa các khoảng năng lượng tương ứng cho từng loại hạt cùng với mô hình vật lý trong MCNP6.
Hình 1.3: Bảng các loại hạt, dải năng lượng và mô hình tương tác vật lý trong MCNP6
Cách thức cài đặt chương trình MCNP
MCNP6 là phiên bản hợp nhất giữa MCNP và MCNPX, hiện bao gồm 37 loại hạt được phân chia thành các nhóm như hạt cơ bản, hạt tổng hợp (hay hadrons) và hạt nhân Hình 1.3 minh họa các khoảng năng lượng tương ứng cho từng loại hạt cũng như mô hình vật lý trong MCNP6.
Hình 1.3: Bảng các loại hạt, dải năng lượng và mô hình tương tác vật lý trong MCNP6
1.3 Cách thức cài đặt chương trình MCNP
Trong phần này tôi sẽ hướng dẫn cách cài đặt phiên bản chương trình MCNP5.1.4 trên hệ điều hành Windows, cách thức tiến hành như sau
Để cài đặt chương trình MCNP5, bạn cần mở đĩa cài đặt và truy cập vào thư mục MCNP\MCNP_Win\Windows_Installer Tiếp theo, hãy chạy chương trình setup.exe và nhấn Next để giữ nguyên các cài đặt mặc định.
Sau khi cài đặt xong chương trình MCNP5, bạn cần quay lại ổ đĩa và truy cập vào thư mục MCNP_MCNPX_Win_Data\Disk1 Tại đây, hãy chạy file setup.exe để tiến hành cài đặt thư viện cho MCNP5.
Sau khi hoàn tất cài đặt MCNP5, file thực thi chương trình sẽ nằm mặc định trong thư mục C:\Program Files\LANL\MCNP5\bin Để chạy chương trình MCNP5, bạn chỉ cần nhấp đúp chuột vào file vised.exe trong thư mục này.
Cách khai báo đường dẫn vào thư viện dữ liệu
• Trên thanh công cụ, chọnData → Material.
• Trên thanh công cụ của Material, chọnFiles.
• Khai báo các đường dẫn tới file xsdir trong thư mục MCNPDATA như trong Hình 1.4 rồi chọn Apply.
Hình 1.4: Khai báo đường dẫn choxsdir
Cách thực thi chương trình MCNP
Sử dụng Visual Editor
• Chạy chương trình Visual Editor bằng cách nhấp đôi chuột vào vised.exe trong thư mục bin hoặc vàoStart → All Programs → MCNP5 → VisEd.
• Mở input file có sẵn bằng cách vàoFile → Open, hiển thị input file hoặc soạn thảo trực tiếp trên editor bằng cách nhấp vàoInput trên thanh menu (Hình 1.5).
• Hiển thị plot bằng cách nhấp vào Update Plots trên menu hoặc nhấp vào Update trên các cửa sổVised (Hình 1.6).
• Vẽ 3D bằng cách nhấp vào3D View trên menu (Hình 1.7).
• Chạy chương trình bằng cách nhấp vào Run trên menu.
Một số option trên thanh công cụ cửa số Vised (sử dụng bằng cách nhấp vào ô tương ứng):
Zoom cho phép người dùng phóng to hoặc thu nhỏ hình ảnh dễ dàng bằng cách nhấp và kéo chuột trên hình vẽ Ngoài ra, người dùng cũng có thể sử dụng thanh trượt Zoom out và Zoom in trên cửa sổ để điều chỉnh kích thước hình ảnh theo ý muốn.
• Origin: thay đổi gốc toạ độ vẽ hình bằng cách nhấp chuột vào vị trí bất kì trên hình vẽ.
• Surf: hiển thị các chỉ số mặt.
• Cell: hiển thị các chỉ số cell.
Sử dụng câu lệnh trong Command Prompt
Command Prompt là cửa sổ dòng lệnh DOS trên hệ điều hành Windows, cho phép người dùng thực hiện các lệnh giống như trong môi trường DOS Ngoài việc sử dụng Visual Editor, MCNP cũng có thể được chạy bằng cách nhập lệnh thông qua ứng dụng này.
Cách thức thực thi MCNP trong Command Prompt như sau:
• Vào Start → All Programs → Accessories → Command Prompt
1.4 Cách thực thi chương trình MCNP 14
Hình 1.5: Giao diện chương trình Visual Editor
Hình 1.6: Đồ họa củaVisual Editor
• Sử dụng lệnhcd để di chuyển đến ổ đĩa chứa chương trình MCNP.
Ví dụ:cd c:\mcnp(trong trường hợp thư mụcmcnp nằm ở ổ đĩad: thì ta chuyển ổ đĩa bằng cách gõ d:và bấm enter)
• Thực thi chương trình MCNP bằng cách gõ lệnh mcnp (trong trường hợp sử dụng chương trình MCNP5 thì gõ lệnhmcnp5)
Ví dụ:mcnp inp=file1 outp=file1o runtpe=file1r mctal=filetally xsdir=xs
Trong đó, "inp" là tùy chọn để khai báo tên file đầu vào, "oupt" là tên file đầu ra, "runtpe" là tên file lưu trữ thông tin trong suốt quá trình chạy chương trình, "mctal" là tên file chứa kết quả tally, và "xsdir" là tên thư mục chứa các tiết diện.
• Ngoài ra, ta có thể khai báo tắt bằng cách sử dụng tuỳ chọnname
Hình 1.7: Đồ họa 3D củaVisual Editor
Khi sử dụng lệnh mcnp với cú pháp "mcnp name=file1", chương trình sẽ tự động thực thi file1 và tạo ra file output, trong đó các file đầu ra sẽ được đặt tên là file1o và file1r, bằng cách thêm các ký tự 'o' và 'r' ngay sau tên file đầu vào.
• Ta có thể viết tắt tên các tuỳ chọn bằng cách sử dụng kí tự đầu tiên.
Ví dụ: mcnp i=file1 o=file1o r=file1rhay mcnp n=file1
Khi sử dụng trình soạn thảo văn bản để tạo file input, file này sẽ mặc định có đuôi txt Để chạy MCNP, chúng ta cần chuyển đổi file này thành file không có đuôi mở rộng bằng cách sử dụng lệnh copy hoặc ren.
Ví dụ: copy file1.txt file1
Khi chạy lại file input cũ trong MCNP, bạn cần phải xoá hoặc đổi tên các file output và runtpe đã được tạo ra trước đó Nếu không thực hiện việc này, MCNP sẽ tự động thay đổi tên của file output mới để tránh ghi đè lên các file cũ.
Để đơn giản hóa việc thực thi chương trình MCNP trên nền DOS, người dùng có thể tạo các file batch với đuôi bat để lưu trữ các dòng lệnh cần thiết.
1.4 Cách thực thi chương trình MCNP 16
MCNP cho DOS Cách thức thực hiện như sau:
• Mở trình soạn thảo text (notepad, wordpad).
• Gõ vào các dòng lệnh thực thi MCNP, ví dụ:mcnp n=file1 ip
• Lưu lại file text dưới tên có đuôi bat (ví dụ run_mcnp.bat) vào trong thư mục có chứa MCNP.
Để chạy chương trình, bạn chỉ cần nhấp đôi chuột vào file vừa tạo Nếu cần sửa đổi dòng lệnh trong file, hãy mở file bằng trình soạn thảo văn bản và thực hiện chỉnh sửa.
Ngoài các tùy chọn khai báo input và output file, MCNP còn hỗ trợ một số tùy chọn khác để điều khiển quá trình thực thi, bao gồm: 'i' để đọc và kiểm tra lỗi trong input file, 'p' để vẽ hình học mô tả trong input file, 'x' để truy cập các bảng tiết diện tương tác, 'r' để chạy bài toán vận chuyển hạt, và 'z' để vẽ các kết quả tally từ file RUNTPE hay MCTAL.
Các tùy chọn như ip (vẽ hình học và kiểm tra lỗi trong tệp đầu vào) và ixz (đọc tệp đầu vào, đọc và vẽ các tiết diện tương tác) có thể được kết hợp với nhau để tối ưu hóa quy trình làm việc.
Ví dụ:mcnp n=file1 ip (đọc file1 và vẽ hình học mô tả trong file đó).
Để vẽ hình học trong MCNP, bạn cần sử dụng một số lệnh cơ bản Đầu tiên, lệnh "origin x y z" xác định gốc tọa độ, với giá trị mặc định là 0 0 0 Tiếp theo, lệnh "basis x1 y1 z1 x2 y2 z2" cho phép bạn chọn mặt phẳng vẽ, với giá trị mặc định là 0 1 0 0 0 1 Cuối cùng, lệnh "extent h v" được sử dụng để thiết lập thang chia cho việc vẽ, với giá trị mặc định là 100 100.
(nếu không khai báo v thì mặc định v = h) label s c des ghi các chỉ số lên hình vẽ
Ví dụ:or 0 -2 10 (chọn gốc toạ độ để vẽ hình tại (0,-2,10), gốc toạ độ luôn nằm giữa hình vẽ).
Hình 1.9: Đồ họa trên nền DOS của MCNP
Cơ sở phương pháp Monte Carlo
MCNP là phần mềm mô phỏng vận chuyển hạt dựa trên phương pháp Monte Carlo, vì vậy việc nắm vững kiến thức cơ bản về phương pháp này là rất quan trọng Điều này giúp người dùng hiểu rõ cách thức hoạt động của chương trình và phân tích chính xác các kết quả thu được sau khi thực hiện mô phỏng.
Khi sử dụng chương trình MCNP, người dùng chủ yếu tập trung vào hai khâu: cung cấp dữ liệu đầu vào và phân tích dữ liệu đầu ra Việc cung cấp dữ liệu đầu vào yêu cầu thông tin quan trọng về cách thức lấy mẫu phân bố, bao gồm phân bố vị trí nguồn, phân bố năng lượng và phân bố xác suất phát Chương này sẽ trình bày các khái niệm cơ bản về số ngẫu nhiên, phân bố xác suất và phương pháp lấy mẫu phân bố bằng Monte Carlo Đối với dữ liệu đầu ra, việc hiểu rõ cách ước lượng kết quả mô phỏng Monte Carlo là cần thiết để đánh giá kết quả thu được Phần cuối của chương sẽ tập trung vào các khái niệm ước lượng mẫu và đánh giá độ chính xác của kết quả ước lượng.
Cơ sở của phương pháp Monte Carlo
Phương pháp Monte Carlo được xây dựng dựa trên nền tảng
Các số ngẫu nhiên đóng vai trò quan trọng trong việc xây dựng "thương hiệu" của phương pháp, vì chúng không chỉ giúp mô phỏng các hiện tượng ngẫu nhiên trong thực tế mà còn được sử dụng để lấy mẫu ngẫu nhiên từ một phân bố nhất định, ví dụ như trong tính toán các tích phân số.
Luật số lớn (law of large numbers) đảm bảo rằng khi chọn ngẫu nhiên các giá trị trong một quần thể, kích thước mẫu thử càng lớn thì các đặc trưng thống kê như trung bình và phương sai càng gần với các đặc trưng của quần thể Điều này rất quan trọng trong phương pháp Monte Carlo, vì nó giúp đảm bảo sự ổn định của các giá trị trung bình của các biến ngẫu nhiên khi số phép thử đạt đủ lớn.
Định lý giới hạn trung tâm (central limit theorem) khẳng định rằng, dưới những điều kiện nhất định, trung bình số học của một tập hợp lớn các biến ngẫu nhiên độc lập sẽ tiệm cận phân bố chuẩn Phương pháp Monte Carlo, với đặc điểm là chuỗi các phép thử lặp lại, sẽ được hỗ trợ bởi định lý này, giúp chúng ta dễ dàng xấp xỉ trung bình và phương sai của các kết quả thu được.
Số ngẫu nhiên
Các loại số ngẫu nhiên
Có 3 loại số ngẫu nhiên chính
• Số ngẫu nhiên thực (real random number): các hiện tượng ngẫu nhiên trong tự nhiên.
• Số giả ngẫu nhiên (pseudo-random number): các dãy số xác định mà nó vượt qua được các kiểm tra về tính ngẫu nhiên.
• Số gần ngẫu nhiên (quasi-random number): các điểm có sự phân bố tốt (có sự không nhất quán thấp).
Những điều cần lưu ý khi mô phỏng số ngẫu nhiên
Có hai điều chúng ta cần lưu ý khi mô phỏng các số ngẫu nhiên
• Máy tính không thể tạo ra các dãy số ngẫu nhiên thật sự mà chỉ là các số giả ngẫu nhiên.
• Bản thân các số không phải là ngẫu nhiên mà chỉ có dãy số mới có thể được xem là ngẫu nhiên
Một dãy số ngẫu nhiên tốt phải hội tụ đầy đủ các yếu tố sau đây
Chu kỳ lặp lại cần phải đủ dài để việc sinh số ngẫu nhiên tạo ra nhiều giá trị khác nhau trước khi lặp lại dãy số cũ Điều này đảm bảo rằng không có phần nào trong dãy số bị trùng lặp trong quá trình tính toán.
Các số được tạo ra cần phải đảm bảo phân bố đồng đều, nghĩa là một dãy số gồm vài trăm số phải hướng tới việc phân bố đồng nhất trong toàn bộ khu vực khảo sát.
• Các số không tương quan với nhau, tức là các số trong dãy phải độc lập về mặt thống kê với các số trước nó.
• Thuật toán phải truy xuất nhanh, tức là thời gian máy tính tạo ra số ngẫu nhiên phải nhỏ
Trong phương pháp Monte Carlo, các số giả ngẫu nhiên cần phải đạt được mức độ ngẫu nhiên nhất định, tức là phải tuân theo phân bố đều hoặc một phân bố đã được xác định trước Điều này đặc biệt quan trọng khi số lượng các số này lớn.
Phương pháp tạo số ngẫu nhiên
Để tạo ra một dãy số ngẫu nhiên, có nhiều phương pháp khác nhau, trong đó phương pháp đồng dư tuyến tính (linear congruential generator) là một trong những phương pháp phổ biến nhất, được áp dụng trong nhiều ngôn ngữ lập trình như C và Fortran Thuật toán của phương pháp này bao gồm các bước: x₀ là số gieo ban đầu, là số nguyên lẻ nhỏ hơn M; xₙ = axₙ₋₁ + c mod M; và ξₙ = xₙ / M Trong đó, a và c là các số nguyên, M thường là một số nguyên lớn, và số gieo ban đầu x₀ có thể được người dùng xác định trong quá trình tính toán.
Thuật toán này không phải là phương pháp tạo số ngẫu nhiên tối ưu nhất, nhưng nó có những ưu điểm nổi bật như đơn giản, dễ sử dụng và tính toán nhanh Hơn nữa, dãy số ngẫu nhiên mà thuật toán này tạo ra cũng đạt chất lượng khá tốt.
Trong dãy số được tạo ra bởi phương pháp đồng dư tuyến tính, mỗi số chỉ xuất hiện một lần trước khi dãy lặp lại, dẫn đến chu kỳ của phương pháp này không vượt quá M Điều này có nghĩa là trong trường hợp tốt nhất, xn có thể lấy tất cả các giá trị trong đoạn [0, M −1] Chu kỳ cực đại của phương pháp đồng dư tuyến tính phụ thuộc vào độ dài ký tự của máy tính; cụ thể, chu kỳ lớn nhất trên máy 16 bit với độ chính xác đơn là 2^16 = 65536, trong khi với độ chính xác kép là 2^32 = 4.29×10^9.
Phân bố xác suất
Biến ngẫu nhiên
Biến ngẫu nhiên, hay còn gọi là biến ngẫu nhiên thống kê, là những biến có giá trị được xác định một cách ngẫu nhiên Mỗi biến ngẫu nhiên có thể bao gồm một tập hợp các giá trị, trong đó mỗi giá trị tương ứng với một xác suất trong trường hợp giá trị rời rạc, hoặc được mô tả bằng hàm mật độ xác suất trong trường hợp giá trị liên tục.
Hình 2.2: Minh họa phân bố xác suất của biến rời rạc (trái) và liên tục (phải)
Khi tiến hành đo lường một biến ngẫu nhiên x trong thực nghiệm hoặc thực hiện việc gieo giá trị của biến này theo phương pháp Monte Carlo N lần, chúng ta sẽ thu được một tập hợp các giá trị của biến, được biểu diễn dưới dạng {x1, x2, , xn}.
Giá trị kỳ vọng (expected value hay expectation) hay còn gọi là giá trị trung bình (mean) của biến x, được ký hiệu là E(x), là giá trị mà ta kỳ vọng sẽ thu được khi lặp lại N lần phép đo với N tiến đến vô cực Nói cách khác, giá trị kỳ vọng chính là trung bình có trọng số của tất cả các giá trị khả dĩ của biến x, trong đó trọng số là xác suất tương ứng với các giá trị của biến.
Phương sai (variance) là chỉ số dùng để đánh giá mức độ phân tán của một tập hợp giá trị Khi phương sai bằng 0, điều này cho thấy tất cả các giá trị trong tập hợp đều đồng nhất Phương sai thường được ký hiệu là σ².
Độ lệch chuẩn (σ) được định nghĩa là căn bậc hai của phương sai, thể hiện sự phân tán của biến x Nó có cùng đơn vị với giá trị của biến x và thường được sử dụng cùng với giá trị trung bình để diễn đạt kết quả một cách rõ ràng và chính xác.
Hàm mật độ xác suất
Hàm mật độ xác suất (PDF) của một biến ngẫu nhiên liên tục là một hàm thể hiện khả năng nhận được giá trị cụ thể của biến đó.
Hàm mật độ xác suất được xem như là chuẩn hóa khi
Hàm xác suất, còn được gọi là hàm phân bố xác suất, là một khái niệm quan trọng trong thống kê Mặc dù không có quy định thống nhất về tên gọi, hàm xác suất thường được sử dụng để chỉ hàm mật độ tích lũy, giúp mô tả phân bố của các biến ngẫu nhiên.
Hàm mật độ tích lũy (cumulative density function hay cumulative distribution function − CDF) được tính như là tích phân của hàm mật độ xác suất (Hình 2.3)
Hình 2.3: So sánh hai hàm PDF và CDF, giá trị của hàm CDF tại vị tríx chính là tích phân của hàm PDF từ−∞ đến x
Trong trường hợp ta có hàm g(x) vớix là biến ngẫu nhiên với mật độf(x), giá trị trung bình của hàm g(x) sẽ được tính theo công thức
Luật số lớn
Luật số lớn (Law of Large Numbers - LLN) mô tả rằng khi thực hiện nhiều phép đo, giá trị trung bình của các kết quả sẽ ngày càng gần với giá trị kỳ vọng Điều này cho thấy sự ổn định lâu dài của giá trị trung bình trong các sự kiện ngẫu nhiên, đặc biệt khi số lượng phép đo tăng lên.
Định lý giới hạn trung tâm
According to the Central Limit Theorem (CLT), the sum of independent random variables that are identically distributed will converge to a certain random variable.
Giả sử có N biến ngẫu nhiên độc lập X_i (X_1, X_2, , X_N) với phân bố tùy ý P(x_1, x_2, , x_N), mỗi biến có giá trị trung bình μ_i và phương sai hữu hạn.
Hình 2.4 minh họa Luật số lớn thông qua thí nghiệm tung đồng xu, trong đó đồ thị thể hiện tỷ lệ phần trăm xuất hiện mặt ngửa (head) nhiều hơn mặt sấp (tail) theo số lần tung σ i 2 tương ứng Đại lượng này có dạng chuẩn hóa, cho thấy sự phân bố tỷ lệ giữa hai mặt khi số lần tung tăng lên.
(2.9) sẽ có một hàm phân bố tích lũy giới hạn xấp xỉ theo phân bố chuẩn.
Hình 2.5: Minh họa Định lý giới hạn trung tâm, trung bình của các phân bố từ X 1 đến X 5 sẽ có dạng phân bố chuẩn
Định lý giới hạn trung tâm khẳng định rằng khi kích thước mẫu tăng lên, phân bố của các mẫu ngẫu nhiên sẽ dần tiến gần đến phân bố chuẩn, bất kể phân bố thực tế của biến (hay phân bố quần thể) có phải là phân bố chuẩn hay không.
Lưu ý: điền kiện của Định lý giới hạn trung tâm là cả trị trung bình và phương sai của phân bố phảitồn tại hữu hạn.
Lấy mẫu phân bố
Phân bố mẫu, hay còn gọi là phân bố mẫu hữu hạn, là phân bố xác suất thống kê của các giá trị trong mẫu ngẫu nhiên được lấy từ một phân bố quần thể Phân bố mẫu chịu ảnh hưởng bởi nhiều yếu tố, bao gồm phân bố của quần thể, phương pháp lấy mẫu và kích cỡ mẫu.
Giả sử ta cú một quần thể cú phõn bố chuẩn với trị trung bỡnhàvà phương saiσ 2 , được kớ hiệu là
Phân phối của các giá trị trung bình mẫu được tạo ra bằng cách lấy các mẫu có kích thước n từ quần thể phân phối chuẩn N(μ, σ^2) và phân phối trung bình của các mẫu này sẽ tuân theo phân phối chuẩn N(μ, σ^2/n) Độ lệch chuẩn của phân phối trung bình mẫu được gọi là sai số chuẩn (standard error), và trong trường hợp các mẫu độc lập với nhau, sai số chuẩn được tính bằng σx¯ = σ / √n.
√n (2.10) với σ là độ lệch chuẩn của quần thể vàn là kích cỡ mẫu.
Bảng 2.1: Một số ví dụ phân bố mẫu ngẫu nhiên được lấy từ quần thể
Phân bố quần thể Phân bố mẫu
Ước lượng mẫu
Trung bình mẫu (sample mean) là giá trị ước lượng cho trung bình quần thể (population mean) dựa trên một mẫu ngẫu nhiên được chọn từ quần thể đó Để tính toán trung bình của mẫu, ta áp dụng công thức ¯ x = 1/N.
X i=1 x i (2.11) với xi là các giá trị trong mẫu vàN là kích thước mẫu 4
Giá trị x¯ này sẽ phân bố quanh giá trị trung bình của quần thể với à ¯ x = E(¯x) =à (2.12) σ 2 ¯ x = V ar(¯x) = σ 2
Dự cho phõn bố của x¯là đồng nhất với giỏ trị trung bỡnhàcủa quần thể nhưng phương sai sẽ nhỏ hơn nhiều nếu kích thước của mẫu là lớn.
2 Lưu ý phân bố chuẩn này khác với phân bố chuẩn của quần thể
3 Cần phân biệt với độ lệch chuẩn của quần thể vốn được gọi với tên standard deviation
4 Giỏ trị x ¯ cũn được xem là trung bỡnh khụng trọng số của cỏc giỏ trị, ngược lại với à là trung bỡnh cú trọng số,xem công thức (2.4)
Phương sai mẫu (sample variance) thường được kí hiệu làS 2 hay S N 2 được xác định bởi công thức 5
Nếu ta xemx¯ như là một ước lượng của trung bỡnh quần thểàvới
E(¯x) =à (2.15) thì S 2 cũng được xem như là một ước lượng của phương sai quần thể σ, tuy nhiên đây lại là một ước lượng bị chệch (biased estimator)
N σ 2 < σ 2 (2.16) Điều này có nghĩa làE(S 2 )6=σ 2 , kì vọng củaS 2 không phải là phương sai σ 2 của quần thể 6 Để hiệu chỉnh cho sự chệch này, chúng ta thay thếS 2 bằng s 2 = 1
Tỉ số giữa phương sai chưa hiệu chỉnh trên phương sai đã hiệu chỉnh(S/s) 2 =N/(N−1)được gọi là hệ số hiệu chỉnh Bessel (Bessel’s correction).
Độ chính xác của ước lượng
Error, also known as uncertainty, represents the inaccuracy of an estimate compared to its true value Errors can be categorized into two main types: random errors, also referred to as statistical errors, and systematic errors The total error can be expressed mathematically as σ total² = σ² statistical + σ systematic².
Sai số ngẫu nhiên xuất phát từ kích thước mẫu hạn chế, trong khi sai số hệ thống liên quan đến việc mẫu thu được không đại diện đầy đủ cho quần thể do các yếu tố như sai số thiết bị hoặc con người Mặc dù sai số hệ thống thường khó định lượng, trong một số trường hợp cụ thể, chúng ta vẫn có thể ước lượng giá trị của nó Độ chính xác (accuracy) được sử dụng để đánh giá mức độ gần gũi (closeness) hoặc độ chệch (bias) của giá trị trung bình ước lượng so với giá trị thực của đại lượng vật lý, và đôi khi còn được mô tả thông qua sai số hệ thống.
5 Cần lưu ý phân biệt giữa các đại lượng σ 2 (phương sai của quần thể), σ 2 ¯ x (phương sai của phân bố trung bình mẫu) và S 2 (phương sai mẫu)
6 Lý do là vỡ trung bỡnh mẫu x ¯ là một ước lượng bỡnh phương cực tiểu tuyến tớnh (linear least squares) của à, giỏ trị của x ¯ được chọn sao cho tổng P
(x i − ¯ x) 2 đạt giá trị nhỏ nhất Do vậy, khi đưa thêm số hạng vào trong tổng, giá trị của tổng chỉ cú thể tăng lờn, đặc biệt khi à 6= ¯ x ta cú
(x i − à) 2 thống (systematic error) Trong Monte Carlo, ta không thể ước lượng độ chính xác này một cách trực tiếp được.
Các nhân tố chính ảnh hưởng lên độ chính xác gồm có
• Độ chính xác của code (mô hình vật lý, )
• Mô hình bài toán (hình học, nguồn, )
Sai số do người dùng có thể xuất phát từ độ tập trung (precision) 7, thể hiện sự bất định trong các thăng giáng thống kê khi thực hiện lấy mẫu Mối quan hệ giữa độ chính xác và độ tập trung được minh họa rõ ràng trong Hình 2.6 và Hình 2.7.
Hình 2.6: Minh họa độ chính xác và độ tập trung của một phân bố ước lượng
Hình 2.7: Minh họa các mức độ của độ chính xác và độ tập trung
Khoảng tin cậy
Khoảng tin cậy (Confidence Interval - CI) là một khoảng giá trị có khả năng chứa tham số cần ước lượng Độ rộng của khoảng tin cậy cung cấp thông tin về mức độ bất định trong quá trình ước lượng tham số.
Trong thực tế, thuật ngữ precision thường được dịch là độ chính xác, nhưng dễ bị nhầm lẫn với accuracy Để phân biệt, tôi sẽ sử dụng thuật ngữ độ tập trung cho precision.
Nhiều người hiểu sai rằng xác suất trong khoảng tin cậy phản ánh khả năng giá trị trung bình của quần thể nằm trong khoảng đó Thực tế, giá trị trung bình của quần thể là một hằng số không thay đổi, do đó xác suất để giá trị trung bình rơi vào khoảng tin cậy chỉ có thể là 0 hoặc 1.
Các khoảng tin cậy thông dụng đối với phân bố chuẩn như sau (Hình 2.8) 9
Hình 2.8: Minh họa khoảng tin cậy của phân bố chuẩn
9 Các giá trị xác suất như 68%, 95%, 99% được cho bởi khoảng tin cậy tính theo σ chỉ đúng trong trường hợp phân bố một chiều (1-dimension)
Cấu trúc chương trình MCNP
Trong chương này, chúng ta sẽ khám phá các thành phần chính của chương trình MCNP, bao gồm thư viện dữ liệu, thủ tục thực thi, file dữ liệu đầu vào và file dữ liệu đầu ra Ngoài ra, chúng ta cũng sẽ tìm hiểu quy trình mô phỏng và cấu trúc của các file dữ liệu trong MCNP.
Cách thức hoạt động của MCNP
Các thủ tục chính trong MCNP
MCNP được viết trên nền tảng ngôn ngữ lập trình ANSI-Standard Fortran 90 Dưới đây là một số thủ tục (subroutine) chính trong MCNP
• Đọc input file (INP) và lấy kích thước (PASS1).
• Khởi tạo kích thước của các biến (SETDAS).
• Đọc lại input file (INP) lần nữa để lấy các thông số đầu vào (RDPROB).
• Khởi động thủ tục cho nguồn phát ((ISOURC).
• Khởi động thủ tục chotally (ITALLY).
• Khởi động thủ tục cho vật liệu (STUFF) kể cả khối lượng mà chưa cần tải các file dữ liệu.
• Tính thể tích và diện tích của cell (VOLUME).
PLOT đồ họa hình học.
MCNP_RANDOM tạo và quản lý các số ngẫu nhiên.
XACT tính toán tiết diện
• Đọc các thư viện (GETXST).
• Loại bỏ các dữ liệu neutron nằm ngoài khoảng năng lượng khảo sát trong bài toán (EXPUNG).
Trong bài toán giãn nở Doppler, cần tính toán tiết diện toàn phần tương ứng khi nhiệt độ vượt quá mức trong thư viện BROADN Việc này đảm bảo rằng các kết quả thu được chính xác và phù hợp với điều kiện thực tế.
3.1 Cách thức hoạt động của MCNP 28
• Truy xuất các thư viện multigroup (MGXSPT).
• Truy xuất các thư viện electron (XSGEN), tính toán các quãng chạy, tán xạ, phân bố góc,
• Phát hạt từ nguồn (STARTP).
• Tìm khoảng cách đến biên (TRACK), đi qua bề mặt (SURFAC) để vào cell kế tiếp (NEW- CEL).
• Tìm tiết diện toàn phần của neutron (ACETOT), tán xạ neutron (COLIDN) và tạo photon tương ứng nếu có (ACEGAM).
• Tìm tiết diện toàn phần của photon (PHOTOT), tán xạ photon (COLIDP) và tạo electron tương ứng nếu có (EMAKER).
• Sử dụng xấp xỉ bremsstrahlung trong trường hợp không khảo sát electron (TTBR).
• Theo vết của electron (ELECTR).
• Sử dụng các tán xạ multigroup nếu được chọn (MGCOLN, MGCOLP, MGACOL).
• Tính toán các tally detector (TALLYD) hoặc DXTRAN.
• Tính toán các tally mặt, cell hoặc độ cao xung (TALLY).
Trong quá trình chạy, hệ thống sẽ tuần tự in ra các file output và kết quả thống kê tạm thời, đồng thời cập nhật các chu kỳ kế tiếp trong bài toán ngưỡng như KCALC và DXTRAN Cuối cùng, kết quả thống kê sẽ được tổng hợp trong báo cáo SUMARY và ACTION, cùng với kết quả tally được ghi lại trong TALLYP.
Cách thức mô phỏng vận chuyển hạt
Quá trình mô phỏng vận chuyển hạt trong bài toán neutron, photon và electron bắt đầu bằng việc MCNP tạo ra một chuỗi số ngẫu nhiên cho mỗi lịch sử hạt Biến flag IPT được sử dụng để xác định loại hạt đang được khảo sát, với giá trị 1 cho neutron, 2 cho photon và 3 cho electron.
Các thủ tục nguồn phát sẽ được gọi, bao gồm nguồn cố định, nguồn mặt và nguồn tự định nghĩa Tất cả các thông số của hạt như hướng phát, vị trí, năng lượng và trọng số sẽ được khởi tạo giá trị bằng cách lấy mẫu ngẫu nhiên theo phân bố đã được khai báo trong file đầu vào Đồng thời, một số kiểm tra sẽ được thực hiện để đảm bảo rằng hạt nguồn nằm đúng trong cell hoặc mặt đã xác định trong file input.
Quá trình mô phỏng bắt đầu bằng việc in ra các thông số ban đầu của 50 lịch sử hạt đầu tiên Tiếp theo, các thông tin tóm tắt quan trọng như năng lượng, thời gian và trọng số sẽ được ghi lại Sau đó, các thông số cần thiết cho quá trình mô phỏng sẽ được khởi tạo và thủ tục DXTRAN sẽ được gọi để tạo ra các hạt trên mặt cầu nếu cần thiết.
Quá trình mô phỏng vận chuyển hạt bắt đầu bằng việc khảo sát các electron từ nguồn phát riêng lẻ Đối với nguồn phát neutron hoặc photon, điểm giao của các hạt với mặt biên của cell được tính toán để xác định khoảng cách dương nhỏ nhất (DLS) từ vị trí hạt đến mặt biên, từ đó xác định mặt kế tiếp (JSU) mà hạt hướng tới Khoảng cách đến mặt cầu DXTRAN gần nhất cũng được xem xét, cùng với việc tính toán các tiết diện tương tác trong cell (ICL) dựa trên bảng số liệu của neutron và photon Tiết diện toàn phần được xác định qua exponential transform, và khoảng cách đến vị trí va chạm kế tiếp cũng được tính toán Độ dài vết của hạt trong cell được xác định dựa trên nhiều yếu tố như khoảng cách đến lần va chạm kế tiếp và khoảng cách đến mặt JSU Các tally ghi nhận vết được tính toán và thông số mới của hạt được cập nhật Nếu khoảng cách đến hình cầu DXTRAN bằng với độ dài vết nhỏ nhất, hạt sẽ kết thúc; nếu vượt quá thời gian ngưỡng, vết cũng sẽ được ngắt Khi hạt rời khỏi hình cầu DXTRAN, biến flag sẽ được gán giá trị 0 và quá trình cutoff trọng số sẽ diễn ra, quyết định việc kết thúc hoặc tiếp tục với trọng số tăng lên Các hiệu chỉnh trọng số cũng được thực hiện khi sử dụng exponential transform.
Khi độ dài vết nhỏ nhất tương đương với khoảng cách đến mặt biên, hạt sẽ được chuyển đến mặt JSU nếu có tally mặt, và tiếp tục vào cell kế tiếp Tại thời điểm này, các phương pháp tính toán như mặt phản xạ, biên tuần hoàn, phân chia hình học và Russian roulette sẽ được áp dụng Nếu xảy ra phân chia, chương trình sẽ ghi nhận vết của tất cả các hạt được phân chia và thực hiện khảo sát lần lượt sau đó.
Khi khoảng cách đến lần va chạm kế tiếp nhỏ hơn khoảng cách đến mặt biên hoặc các hạt mang điện tích đạt ngưỡng năng lượng khảo sát, hạt sẽ được mô phỏng va chạm Đối với neutron, tính toán va chạm xác định loại hạt nhân bia tham gia, lấy mẫu vận tốc hạt nhân bia trong tương tác với khí tự do chuyển động nhiệt, và ghi nhận các photon tạo ra (ACEGAM) Hiệu ứng bắt neutron được xem xét là không hay có trọng số, xử lý các va chạm nhiệt theo S(α, β) và phân loại tán xạ thành đàn hồi hoặc không đàn hồi Đối với bài toán ngưỡng, sản phẩm phân hạch sẽ được lưu lại cho các tính toán sau, cùng với các thông số của hạt tạo ra trong va chạm như năng lượng và hướng bay Các va chạm có nhiều hạt sẽ được xử lý riêng biệt.
Tính toán va chạm của photon tương tự như neutron, với các mô hình vật lý đơn giản chỉ xem xét tương tác của photon với electron tự do, trong khi mô hình chi tiết bao gồm các yếu tố như form factor và hiệu ứng liên kết của electron trong tán xạ Compton Ngoài ra, mô hình chi tiết cũng xem xét các hiệu ứng tán xạ Thomson và phát quang sau hiệu ứng quang điện Phiên bản MCNP5 mở rộng thêm các hiệu ứng quang hạt nhân, nơi các hạt thứ cấp từ phản ứng quang hạt nhân được lấy mẫu tương tự như va chạm neutron không đàn hồi Các electron sinh ra từ tán xạ Compton, tạo cặp và hiệu ứng quan điện có thể để lại năng lượng tại chỗ hoặc phát bức xạ hãm, tùy thuộc vào các tham số trong thẻ PHYS.
Sau khi hạt vượt qua mặt biên hoặc trải qua quá trình va chạm, nó sẽ tiếp tục được tính khoảng cách đến mặt biên tiếp theo Nếu hạt bị mất trong quá trình va chạm hoặc trong các phép tính giảm phương sai, chương trình sẽ kiểm tra xem có hạt thứ cấp nào được tạo ra hay không Nếu không còn hạt thứ cấp, lịch sử của hạt sẽ kết thúc Thông tin liên quan sẽ được tổng hợp và đưa vào kết quả tally cùng với các bảng thống kê.
Cuối mỗi lịch sử hạt, chương trình sẽ kiểm tra các điều kiện kết thúc như số lịch sử hạt và thời gian chạy Nếu các điều kiện này được thỏa mãn, MCRUN sẽ kết thúc và in ra kết quả.
Dữ liệu hạt nhân và phản ứng của MCNP
Các thư viện dữ liệu được sử dụng
MCNP sử dụng các thư viện dữ liệu hạt nhân và nguyên tử năng lượng liên tục, với các nguồn cung cấp dữ liệu hạt nhân chính cho MCNP.
• The Evaluated Nuclear Data File (ENDF)
• The Evaluated Nuclear Data Library (ENDL)
3.2 Dữ liệu hạt nhân và phản ứng của MCNP 30
• Applied Nuclear Science (T−2) Group tại Phòng Thí nghiệm Los Alamos.
Các dữ liệu hạt nhân được xử lý theo định dạng thích hợp đối với MCNP bằng chương trình NJOY(https://t2.lanl.gov/nis/codes/NJOY12/index.html).
Các bảng dữ liệu
Các bảng số liệu hạt nhân cung cấp thông tin quan trọng về các tương tác neutron, tương tác photon, cũng như các tương tác photon phát sinh từ neutron Chúng cũng bao gồm phép đo liều, kích hoạt neutron và tán xạ nhiệt S(α, β).
Có hơn 500 bảng dữ liệu tương tác neutron cho khoảng 100 đồng vị và nguyên tố khác nhau, được phân loại thành 9 nhóm chính Những nhóm này bao gồm neutron năng lượng liên tục, neutron phản ứng rời rạc, tương tác quang nguyên tử năng lượng liên tục, tương tác electron năng lượng liên tục, tương tác quang hạt nhân năng lượng liên tục, liều neutron, nhiệt S(α, β), neutron multigroup và photoatomic multigroup.
Mỗi bảng số liệu trong MCNP được liệt kê trong file xsdir, cho phép người dùng chọn lựa các bảng số liệu đặc thù thông qua các kí hiệu nhận dạng duy nhất, gọi là ZAID Các kí hiệu này bao gồm số nguyên tử Z, số khối A và kí hiệu xác nhận thư viện ID.
Các kí hiệu ZAID có dạng ZZZAAA.nnX với ZZZ là số hiệu nguyện tử (ví dụ carbon có kí hiệu là
Trong trường hợp của carbon-12 (C-12), số liệu tiết diện tương tác được chỉ định bằng 006, với nn là số chỉ của bộ số liệu X đại diện cho kiểu dữ liệu, ví dụ C tương ứng với dữ liệu tương tác ở năng lượng liên tục.
Dtương ứng với dữ liệu phản ứng rời rạc, ) 1
Một số lưu ý khi sử dụng các bảng dữ liệu tương tác
Người dùng nên ưu tiên sử dụng các bảng dữ liệu mới nhất để đảm bảo tính chính xác và cập nhật Tuy nhiên, trong một số trường hợp, bảng dữ liệu mới có thể phức tạp hơn và yêu cầu thời gian xử lý lâu hơn Nếu bạn gặp phải giới hạn về kích thước bộ nhớ, việc sử dụng các bảng dữ liệu cũ hơn có thể là một giải pháp hợp lý.
Khi mô phỏng tương tác của neutron, cần lưu ý đến phổ năng lượng của hạt này Đối với các bài toán năng lượng cao, có thể sử dụng bảng tương tác với năng lượng rời rạc hoặc bảng xấp xỉ Tuy nhiên, trong trường hợp năng lượng thấp hoặc khi có sự ảnh hưởng của tương tác neutron ở các vùng cộng hưởng, nên sử dụng bảng năng lượng liên tục để đạt được kết quả chính xác hơn.
Trước khi sử dụng các bảng dữ liệu tương tác cho từng bài toán cụ thể, cần kiểm tra nhiệt độ mà các bảng này được xây dựng Ví dụ, không thể áp dụng các bộ số liệu có giãn nở Doppler ở nhiệt độ 3000K cho các tính toán ở nhiệt độ phòng.
• Đối với bài toán vận chuyển neutron/photon, cần lưu ý sử dụng các bộ số liệu có tính đến quá trình tạo photon từ neutron.
XSDIR là file lưu trữ thông tin của các bảng dữ liệu cũng như vị trí của các bảng đó Nội dung của file xsdir gồm ba phần
• Phần đầu: dòng đầu tiên của file có dạng
DATAPATH =
1 Trong trường hợp số nguyên tử Z có ít hơn ba chữ số, người ta thường viết ngắn lại là Z hoặc ZZ, ví dụ 13027.24y thay vì 013027.24y
Từ khóa DATAPATH cần được đặt ở 5 ký tự đầu tiên của dòng Khi chương trình MCNP được thực thi, nó sẽ lần lượt tìm kiếm file xsdir và các thư viện dữ liệu tương tác theo thứ tự đã được khai báo.
– Khai báo XSDIR = trong câu lệnh thực thi chương trình.
– Khai báo DATAPATH = ở dòng thông tin (message block) của input file.
– Khai báo DATAPATHtrong file xsdir.
– Thông tin của từng dòng khai báo báo bảng dữ liệu trong filexsdir.
– Thư viện được khai báo trong thủ tụcBLOCK_DATA khi biên dịch MCNP.
Khối lượng tương đối của nguyên tử, hay còn gọi là tỷ lệ khối lượng nguyên tử, là một khái niệm quan trọng trong hóa học Tỷ lệ này được xác định thông qua việc so sánh khối lượng của các nguyên tử với khối lượng của nguyên tử carbon-12, mà được xem là tiêu chuẩn Các giá trị khối lượng nguyên tử được biểu diễn theo một cú pháp nhất định, giúp dễ dàng nhận biết và so sánh giữa các nguyên tố Việc hiểu rõ về khối lượng tương đối của nguyên tử không chỉ hỗ trợ trong việc nghiên cứu hóa học mà còn ứng dụng trong nhiều lĩnh vực khoa học khác.
ZAID AWR với ZAIDlà kí hiệu của nguyên tử có dạng ZZAAAvà AWRlà khối lượng tương đối của nguyên tử tương ứng với kí hiệu.
Phần cuối của bài viết chứa danh sách các bảng dữ liệu tương tác, bắt đầu bằng từ khóa "directory" trong năm ký tự đầu tiên của dòng Các dòng tiếp theo cung cấp từ 7 đến 11 thông tin về các bảng tương tác, với ký hiệu ZAID luôn xuất hiện đầu tiên Nếu một bảng cần nhiều hơn một dòng để mô tả, cần thêm ký tự '+' ở cuối dòng để tiếp tục trên dòng mới Số 0 được sử dụng để chỉ thông tin không hữu dụng Các thông tin của bảng được cung cấp trong xsdir.
Khối lượng tương đối nguyên tử real
Tên file 3 character*8 Đường dẫn truy cập character*70
Kiểu file 4 integer Địa chỉ 5 integer Độ dài bảng 6 integer Độ dài bản ghi 7 integer
Số dữ liệu mỗi bản ghi integer
2 Đây là tỉ số của khối lượng nguyên tử chia cho khối lượng neutron
3 Là tên của thư viện chứa bảng dữ liệu.
Có hai kiểu mang: kiểu 1 và kiểu 2 Kiểu 1 tương ứng với bảng định dạng chuỗi, cho phép tối đa 80 ký tự mỗi dòng, trong khi kiểu 2 sử dụng định dạng nhị phân (binary) Kiểu 2 thường được ưa chuộng hơn vì tính gọn nhẹ và tốc độ truy cập nhanh Việc chuyển đổi từ kiểu 1 sang kiểu 2 được thực hiện thông qua chương trình MAKXSF.
Đối với file kiểu 1, địa chỉ được xác định là vị trí dòng trong file thư viện nơi bảng dữ liệu bắt đầu, trong khi đối với file kiểu 2, địa chỉ là số bản ghi của bản ghi đầu tiên trong bảng.
Một bảng dữ liệu thông thường bao gồm hai khối thông tin: khối đầu tiên chứa các đặc trưng của bảng, trong khi khối thứ hai là một chuỗi số Độ dài của bảng được xác định bởi độ dài (theo ký tự) của khối thông tin thứ hai.
Đối với kiểu 1, độ dài là 0, trong khi đối với kiểu 2, độ dài phụ thuộc vào đặc trưng của bộ xử lý Độ dài này được tính bằng tổng số bit của tất cả dữ liệu (entry) trong một bản ghi (record), thường là 512 bit cho mỗi bản ghi.
8 Chỉ sử dụng cho dữ liệu neutron, tính theo đơn vị MeV.
9 Từ khóa ptable dùng để báo rằng đây là bảng dữ liệu năng lượng liên tục cho neutron có vùng cộng hưởng gần(unresolved resonance)
3.2 Dữ liệu hạt nhân và phản ứng của MCNP 32
Các bảng dữ liệu cho neutron cung cấp các quá trình tương tác của neutron với vật chất Các
ID của bảng tiết diện tương tác cho neutron có định dạng ZZZAAA.nnC, áp dụng cho tương tác với năng lượng liên tục, trong khi ZZZAAA.nnD được sử dụng cho phản ứng rời rạc (tham khảo Bảng G.2 trong Hướng dẫn MCNP).
Input file
Cấu trúc input file
Cấu trúc của một file inputinitiate-run cho MCNP như sau
Tiêu đề và thông tin về input file (nếu cần)
Cell Cards (định nghĩa các ô mạng)
Surface Cards (định nghĩa các mặt)
Data Cards (Mode Cards,Material Cards,Source Cards,Tally Cards, )
Cấu trúc của một file inputcontinue-run cho MCNP như sau
Tiêu đề và thông tin về input file (nếu cần)
Data Cards (Mode Cards,Material Cards,Source Cards,Tally Cards, )
Lưu ý: để chạy đượccontinue-runcần phải có hai file chính: file khởi động (tên mặc định RUNTPE) và file input (tên mặc định INP).
Ví dụ cấu trúc input file
Hình 3.1 minh họa cấu trúc của một file input trong MCNP, với dòng đầu tiên là tiêu đề có thể để trống File input bao gồm ba khối chính: cell, surface và data, được phân cách bởi đúng một dòng trắng; nếu có nhiều hơn một dòng trắng, chương trình sẽ báo lỗi.
Cell cards Cell là một không gian được tạo thành từ các mặt biên, như đã được định nghĩa trong phần Surface cards Khi một cell được xác định, việc quan trọng là xác định giá trị của tất cả các điểm nằm trong cell đó tương ứng với mặt biên.
Khi định nghĩa mặt (surface), không gian được chia thành hai vùng với các giá trị dương và âm Cell được hình thành thông qua các toán tử giao (khoảng trắng), hội (:) và bù (#) giữa các vùng không gian do các mặt tạo ra Để đảm bảo tính chính xác, cell cần phải được bao kín bởi các mặt; nếu không, chương trình sẽ báo lỗi sai hình học.
Hình 3.1: Ví dụ cấu trúc input file
Hình 3.2 trình bày các thông tin về cell, bao gồm chỉ số của cell, loại vật liệu được lấp đầy, mật độ vật liệu (không cần khai báo nếu là chân không), định nghĩa vùng không gian hình thành cell từ các mặt, và độ quan trọng của cell.
Chi tiết về Cell cards có thể được xem trong Phần 4.2.
Hình 3.2: Ví dụ cell cards
Surface cards được sử dụng để khai báo tất cả các mặt tạo nên cell Cách thức khai báo mặt được thể hiện trong Hình 3.3, trong đó cột đầu tiên chỉ số mặt tương ứng với các chỉ số trong cột thứ tư của Cell cards Cột thứ hai định nghĩa loại mặt như mặt phẳng, mặt cầu, trụ, ellip, và cột cuối cùng chứa các tham số khai báo tương ứng với từng loại mặt đó.
Chi tiết về Surface cards có thể được xem trong Phần 4.1.
Data cards bao gồm nhiều loại khai báo khác nhau như vật liệu, nguồn phát, chủng loại hạt và năng lượng Chi tiết về các khai báo này sẽ được trình bày trong các chương sau Hình 3.4 minh họa một ví dụ về Data cards, trong đó có thông tin về loại vật liệu sử dụng trong Cell cards, với hai loại vật liệu m1 và m2 tương ứng với các chỉ số 1 và 2 trong cột thứ hai của Cell cards, cùng với khai báo về nguồn phát và phương thức ghi nhận kết quả trong quá trình mô phỏng.
Hình 3.3: Ví dụ surface cards
Hình 3.4: Ví dụ data cards
Một số lưu ý khi xây dựng input file
• Nên dùng các trình soạn thảo văn bản như notepad hoặc wordpad để soạn thảo input file, không dùng các chương trình nhưMicrosoft Word.
• Tên của input file không được vượt quá 8 kí tự.
• Dòng đầu tiên trong input file là dòng ghi thông tin của input, nếu không có thông tin thì để trống dòng này.
• Không được sử dụng phím tab để tạo khoảng trắng trong khi viết input, chỉ được sử dụng phím spacebar.
• Trong Cell card hoặc Surface card, 5 kí tự đầu tiên trong mỗi dòng được dùng để khai báo chỉ số của cell hoặc mặt.
• Số kí tự tối đa cho mỗi dòng là 80 kí tự, nếu vượt quá thì phải xuống dòng và dùng kí tự
Ký hiệu '&' ở cuối dòng cho biết rằng thông tin vẫn tiếp tục ở dòng tiếp theo Nếu không có ký hiệu này, dòng tiếp theo cần phải để trống 5 ký tự đầu tiên.
Kí tự 'c' được sử dụng trong 5 kí tự đầu tiên của dòng để tạo chú thích, khiến MCNP bỏ qua các dòng này khi thực hiện chương trình.
• Kí tự ‘$’ có tác dụng comment các thông tin phía sau nó.
• Kí tự ‘#’ được đặt trong vòng 5 kí tự đầu tiên của dòng có chứa tên card có tác dụng chuyển khai báo dạng dòng sang khai báo dạng cột.
Trong MCNP, các đơn vị được quy định mặc định bao gồm: năng lượng tính bằng MeV, khối lượng tính bằng gram, không gian tính bằng centimet, thời gian tính bằng shake (10^-8 giây), nhiệt độ cũng tính bằng MeV, mật độ nguyên tử được đo bằng nguyên tử trên barn-centimet, mật độ khối lượng tính bằng gram trên centimet khối và tiết diện đo bằng barn.
Cách viết ngắn gọn đối với những tham số lặp lại: nr lặp lại tham số đứng phía trước n lần.