BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH

TRẦN BÌNH TRANG

LUẬN VĂN THẠC SĨ VẬT LÝ

Thành phố Hồ Chí Minh – 2011

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH

TRẦN BÌNH TRANG

Chuyên ngành: Vật lý nguyên tử, hạt nhân và năng lượng cao Mã số: 60. 44. 05

LUẬN VĂN THẠC SĨ VẬT LÝ

Người hướng dẫn khoa học: TS. VÕ XUÂN ÂN

Thành phố Hồ Chí Minh - 2011

LỜI CẢM ƠN

Trong quá trình thực hiện và hoàn thành luận văn này, tôi đã nhận được sự quan tâm và giúp

đỡ rất lớn từ Thầy cô và gia đình. Tôi xin được bày tỏ lòng biết ơn chân thành của mình đến:

Thầy TS. Võ Xuân Ân, người hướng dẫn khoa học, người đã mang đến cho tôi những kiến

thức phong phú, định hướng phương pháp nghiên cứu khoa học, truyền đạt tinh thần học hỏi, tìm tòi

và tận tình chỉ dẫn tôi, giúp tôi vượt qua những trở ngại, vướng mắc trong suốt quá trình thực hiện

luận văn.

Thầy TS. Nguyễn Văn Hoa, Thầy PGS. TS. Lê Văn Hoàng, hai người Thầy đã giúp đỡ tôi

vượt qua giai đoạn khó khăn, đóng góp ý kiến và động viên tôi từ những ngày đầu thực hiện luận

văn.

Thầy TS. Nguyễn Mạnh Hùng, Trưởng khoa Vật lý, trường Đại học Sư Phạm TPHCM đã tạo

điều kiện cho tôi được thực hiện luận văn này.

Cuối cùng, xin cảm ơn gia đình tôi, bạn bè tôi đã luôn bên cạnh động viên và giúp đỡ tôi

trong những lúc khó khăn nhất.

MỤC LỤC

BẢNG CÁC CHỮ VIẾT TẮT

Chữ viết tắt Tiếng Việt Tiếng Anh

ACTL Thư viện số liệu ACTL ACTivation Library

ENDF Thư viện số liệu ENDF Evaluated Nuclear Data File

ENDL Thư viện số liệu ENDL Evaluated Nuclear Data Library

Ge Germanium Germanium

Detector germanium siêu tinh khiết High Purity Germanium HPGe

KHTN Khoa học tự nhiên -

MCA Multi Channel Analyzer

MCNP Monte Carlo N – Particle

NAS Khối phân tích biên độ đa kênh Chương trình mô phỏng Monte Carlo MCNP Hãng cung cấp nguồn phóng xạ North American Scientific, Inc.

NEA Nuclear Energy Agency

NJOY - Cơ quan năng lượng hạt nhân Mã định dạng các thư viện số liệu hạt nhân trong MCNP

NSS Hãng cung cấp nguồn phóng xạ Nuclear Services & Supplies Rost GmbH

TP HCM Thành phố Hồ Chí Minh -

MỞ ĐẦU

Vật lý hạt nhân ngày nay đang có những bước phát triển rất mạnh mẽ, đặc biệt trong lĩnh vực

khoa học hạt nhân ứng dụng. Từ khi phát hiện ra hiện tượng phóng xạ, việc nghiên cứu các hiện

tượng vật lý hạt nhân dựa trên đo đạc phổ phóng xạ ngày càng trở nên phổ biến. Trong đó, lĩnh vực

đo phổ gamma được tập trung nghiên cứu và đem lại nhiều kết quả thực tiễn quan trọng. Hiện nay,

công nghệ đo phổ gamma được phát triển ở mức độ cao và được sử dụng phổ biến trong các phòng

nghiên cứu. Tại Việt Nam, Viện Khoa học và Kỹ thuật Hạt nhân Hà Nội, Viện Nghiên cứu Hạt nhân

Đà Lạt, Trung tâm Hạt nhân Thành phố Hồ Chí Minh (TPHCM) và một số phòng thí nghiệm vật lý

hạt nhân thuộc các trường đại học đã được trang bị các hệ phổ kế gamma để phục vụ nghiên cứu và

đo đạc, khảo sát các mẫu môi trường.

Có hai cách để tiến hành khảo sát phổ gamma, đo đạc trực tiếp hoặc sử dụng chương trình

mô phỏng. Một trong những chương trình mô phỏng đang được sử dụng rộng rãi hiện nay để giải

quyết các vấn đề trong vật lý hạt nhân là chương trình MCNP5. Đây là một chương trình mô phỏng

có độ tin cậy cao vì đã được kiểm chứng và sử dụng trong nhiều năm qua và ở nhiều phòng thí

nghiệm trong nước cũng như trên thế giới.

Đã có nhiều nghiên cứu trong nước và trên thế giới sử dụng chương trình MCNP5 để xây

dựng đường cong hiệu suất, phân bố suất liều, nghiên cứu lò phản ứng … nhưng tiến hành riêng lẻ

(chạy đơn). Một số công trình nghiên cứu trong nước gần đây như “tính toán tối ưu hộp chứa mẫu

phóng xạ” [8], “xây dựng ma trận đáp ứng nhờ phổ gamma đơn năng” [5] và nhiều công trình

nghiên cứu khác đã sử dụng chương trình MCNP5 mô phỏng phổ gamma để giải quyết bài toán.

Tuy nhiên, khó khăn chính mà các tác giả này gặp phải đó là trong quá trình mô phỏng phải tính

MCNP5 liên tục và nhiều lần, trong khi vẫn chưa có một công cụ giúp kết nối giữa MCNP5 và

chương trình tính toán. Do đó công việc buộc phải thực hiện rời rạc và vì vậy tốn kém nhiều thời

gian để thiết lập input và triển khai chạy chương trình MCNP5.

Việc nghiên cứu để kết nối giữa MCNP5 với chương trình tính toán sẽ giúp gia tăng đáng kể

hiệu quả của chương trình MCNP5 trong bài toán mô phỏng phổ gamma, nhờ đó rút ngắn thời gian

và giảm bớt khối lượng công việc cho các nhà nghiên cứu. Không những vậy, tự động hóa quá trình

tính toán giúp giảm thiểu sai sót, đảm bảo tính chính xác của kết quả.

Việc xây dựng chương trình tính toán kết nối với MCNP5 và tích hợp các modun tính toán

xử lý phổ gamma sẽ hỗ trợ người dùng MCNP5 trong việc giải quyết các bài toán vật lý hạt nhân,

giảm thiểu được thời gian và công sức thực hiện các quá trình tính toán lặp lại. Nhờ đó chương trình

MCNP5 sẽ được khai thác hiệu quả hơn, đặc biệt đối với những bài toán phải mô phỏng một số

lượng lớn phổ gamma.

Từ những phân tích trên tôi đã chọn đề tài: “Nghiên cứu sử dụng hiệu quả chương trình

MCNP5 trong bài toán mô phỏng phổ gamma” làm luận án tốt nghiệp.

Mục tiêu của luận án là: (1) Dựa trên phương pháp mô phỏng Monte Carlo để xây dựng các

modun tính toán trong bài toán mô phỏng phổ gamma; (2) Thiết lập chương trình tính toán bằng

ngôn ngữ lập trình Fortran; (3) Kết nối chương trình MCNP5 và chương trình tính toán, đảm bảo

quá trình tính toán được liền mạch, không rời rạc, đơn lẻ; (4) Đánh giá về kết quả thu được và đưa

ra các kiến nghị liên quan.

Đối tượng nghiên cứu của luận án này là chương trình MCNP5, đây là chương trình mô

phỏng do Phòng thí nghiệm quốc gia Los Alamos, Hoa Kỳ xây dựng. MCNP5 là một công cụ tính

toán mạnh, có thể mô phỏng các quá trình vận chuyển của neutron, photon, electron trong môi

trường vật chất. Phần mềm này được xây dựng dựa trên phương pháp mô phỏng Monte Carlo.

Phương pháp nghiên cứu của luận án là sử dụng ngôn ngữ lập trình Fortran để xây dựng

chương trình tính toán kết nối với MCNP5 trong bài toán mô phỏng phổ gamma.

Với nội dung đó, luận văn được trình bày thành bốn phần như sau:

+ Chương 1: TỔNG QUAN, giới thiệu một cách khái quát các vấn đề về tương tác của

photon với vật chất, về phương pháp mô phỏng Monte Carlo với chương trình MCNP5, về ngôn

ngữ lập trình Fortran.

+ Chương 2: MÔ HÌNH HÓA HỆ PHỔ KẾ GAMMA BẰNG CHƯƠNG TRÌNH MCNP5,

mô tả hệ phổ kế gamma, trình bày cách thiết lập input và các bước thực hiện một bài toán mô phỏng

bằng chương trình MCNP5.

+ Chương 3: XÂY DỰNG CHƯƠNG TRÌNH TÍNH TOÁN, xây dựng các modun tính toán

để sử dụng hiệu quả chương trình MCNP5 trong bài toán mô phỏng phổ gamma bằng ngôn ngữ lập

trình Fortran.

+ Chương 4: KẾT LUẬN VÀ KIẾN NGHỊ, tổng kết và đánh giá các kết quả đạt được, đưa ra

kiến nghị về những hướng nghiên cứu tiếp theo.

CHƯƠNG 1: TỔNG QUAN

1.1. TƯƠNG TÁC GIỮA PHOTON VỚI MÔI TRƯỜNG VẬT CHẤT – PHỔ

GAMMA

1.1.1. Tương tác của bức xạ gamma với vật chất

Bức xạ gamma tương tác với môi trường vật chất thông qua các quá trình hấp thụ và tán xạ.

Trong quá trình hấp thụ, tia gamma sẽ truyền toàn bộ năng lượng cho các hạt trong vật chất, sau đó

tia gamma biến mất. Còn trong quá trình tán xạ, tia gamma chỉ truyền cho các hạt vật chất một phần

năng lượng và nó bị tán xạ dưới một góc nào đó (phương chuyển động ban đầu bị thay đổi). Quá

trình tương tác giữa tia gamma và vật chất được gọi là sự ion hóa gián tiếp vì các sản phẩm tạo ra

sau va chạm (các hạt vi mô tích điện hay các photon thứ cấp) sẽ tác dụng tiếp với các hạt trong môi

trường vật chất và tạo ra phần lớn các ion.

Các tia gamma có thể tương tác với vật chất theo nhiều cơ chế khác nhau, tuy nhiên, trong

ghi đo phóng xạ, người ta dựa vào ba quá trình đóng vai trò quan trọng nhất: hấp thụ quang điện, tán

xạ Compton và hiệu ứng tạo cặp [15]. Một số hiệu ứng khác như tán xạ Thomson, phản ứng quang

hạt nhân,… có xác suất thấp nên có thể bỏ qua.

1.1.1.1. Hấp thụ quang điện

Hấp thụ quang điện là hiện tượng photon tới bị electron trong nguyên tử hấp thụ hoàn toàn

năng lượng, sau đó photon biến mất, electron bứt ra khỏi lớp vỏ nguyên tử. Các electron này được

gọi là electron quang điện.

lkε , tùy thuộc quỹ đạo

Mỗi electron quỹ đạo ứng với một giá trị năng lượng liên kết xác định

chuyển động (K, L, M, N,…) và số nguyên tử Z của hạt nhân. Năng lượng liên kết của nguyên tử

lớn hơn đối với các electron ở vỏ nguyên tử sâu hơn và với nguyên tử có số Z lớn hơn. Hiệu ứng

quang điện mạnh nhất xảy ra đối với lượng tử gamma có năng lượng có thể so sánh được với năng

lượng liên kết của nguyên tử.

lkε của electron để có thể phá vỡ liên kết của

Năng lượng của photon tới E phải lớn hơn

electron với hạt nhân. Phần năng lượng dư thừa chính là động năng cho quang electron:

lkε + ERe R (1.1)

E = hν =

Với động năng EReR đó, quang electron có khả năng ion hóa các nguyên tử và phân tử khác.

Phần động năng EReR của quang electron lớn hơn rất nhiều so với phần năng lượng để bứt electron ra

lkε .

khỏi quỹ đạo

Về phía nguyên tử vật chất, khi một electron bị bật ra khỏi quỹ đạo, electron khác ở vành

lkε giữa hai quỹ đạo sẽ được

ngoài có thể đến thế chỗ. Năng lượng dư thừa do sự chênh lệch của

lkε phụ thuộc vào các quỹ đạo và vào số nguyên

phát ra dưới dạng một photon. Giá trị năng lượng

tử Z nên photon thứ cấp này có giá trị xác định và được gọi là bức xạ đặc trưng.

lkε = Kε thì hiệu ứng quang điện không xảy ra với các electron lớp K mà chỉ xảy ra

Nếu E <

lkε =

Lε thì hiệu ứng quang điện không xảy ra với các

với các electron ở lớp L, M, N,… nếu E <

Lε > Mε ).

electron lớp K, L mà chỉ xảy ra với các electron ở lớp M, N, O,… (Vì Kε >

Hiệu ứng quang điện không xảy ra với electron tự do vì không bảo đảm quy luật bảo toàn

năng lượng và động lượng.

Như vậy muốn có hiệu ứng quang điện thì:

Electron phải liên kết trong nguyên tử •

Năng lượng tia gamma phải lớn hơn năng lượng liên kết của electron nhưng không •

được lớn quá vì khi đó electron có thể coi gần như tự do.

Nhận xét này được thể hiện trên hình mô tả sự phụ thuộc tiết diện hiệu ứng quang điện vào

năng lượng gamma

1/E7/2

0 E

Hình 1.1: Tiết diện hiệu ứng quang điện phụ thuộc năng lượng gamma E

Ở miền năng lượng gamma lớn thì tiết diện rất bé vì khi đó gamma coi electron là liên kết rất

1 E

ε K E

yếu. Khi giảm năng lượng gamma, tức là tăng tỉ số , tiết diện tăng theo quy luật . Khi E tiến

1 7/2 E

dần đến Kε , tiết diện tăng theo hàm và tăng cho đến khi E = Kε . Khi năng lượng gamma vừa

giảm xuống dưới giá trị Kε thì hiệu ứng quang điện không thể xảy ra với electron lớp K nữa nên tiết

diện giảm đột ngột. Tiếp tục giảm năng lượng gamma, tiết diện tăng trở lại do hiệu ứng quang điện

Lε rồi lại giảm đột ngột khi E giảm xuống thấp hơn

Lε . Sau đó hiệu ứng quang điện xảy ra đối với electron lớp M,…

đối với electron lớp L. Nó đạt giá trị lớn tại E =

5 thuộc vào Z, theo quy luật ZP

P.

Do năng lượng liên kết thay đổi theo số nguyên tử Z nên tiết diện tương tác quang điện phụ

Sự đóng góp của hiệu ứng quang điện đối với các lớp L, M,… bé so với electron lớp K. Các

nghiên cứu cho thấy hiệu ứng quang điện xảy ra chủ yếu với electron lớp K và với tiết diện rất lớn

đối với các nguyên tử nặng, chẳng hạn chì, ngay cả ở vùng năng lượng cao. Còn đối với các nguyên

tử nhẹ, chẳng hạn cơ thể sinh học, hiệu ứng quang điện chỉ xuất hiện ở vùng năng lượng thấp.

1.1.1.2. Hiệu ứng Compton

Khi tăng năng lượng gamma đến giá trị lớn hơn nhiều so với năng lượng liên kết của electron

K trong nguyên tử thì vai trò của hiệu ứng quang điện không còn đáng kể và bắt đầu hiệu ứng

Compton. Khi đó có thể bỏ qua năng lượng liên kết của electron so với năng lượng gamma và tán xạ

gamma lên electron có thể coi như tán xạ với electron tự do, gọi là tán xạ Compton.

Hiệu ứng Compton là sự tán xạ đàn hồi của gamma vào các electron chủ yếu ở quỹ đạo ngoài

cùng của nguyên tử. Sau quá trình tán xạ, lượng tử gamma thay đổi phương bay và bị mất một phần

năng lượng còn electron được giải phóng ra khỏi nguyên tử.

Hình 1.2: Hiệu ứng Compton

Trên cơ sở tính toán động học quá trình tán xạ đàn hồi của hạt gamma chuyển động với năng

lượng E lên electron đứng yên. Gọi năng lượng gamma sau tán xạ là E’, năng lượng electron sau tán

xạ EReR và θ là góc bay của gamma sau tán xạ, ta có

=

E

'

E

1 −

+

α

1

θ (1 cos )

=

E

(1.2)

eE

α +

− θ (1 cos ) − θ α (1 cos )

1

-31

2

α=

(1.3)

8 P m/s, P kg, c = 3.10P

em = 9,1.10P

em c = 0,51 MeV

2

E m c e

, Trong đó:

1

φ= −

Góc bay φ của electron sau tán xạ liên hệ với góc θ như sau:

tg

ctg

θ 2

1

E E

'

(1.4)

’ 'λ của gamma liên hệ với các giá trị năng lượng E và EP P của nó như sau:

λ=

λ = '

Các bước sóng λ và

hc E

hc E '

’ Theo công thức (1.2) thì EP P < E, nghĩa là năng lượng gamma giảm sau tán xạ Compton và

; (1.5)

bước sóng của nó tăng. Gia số tăng bước sóng phụ thuộc vào góc tán xạ θ của gamma theo biểu

∆ =

θ

− = '

2

2 sin (

/ 2)

thức:

λ λ λ λ c

12

=

=

m

2, 42.10

(1.6)

λ c

h m c e

λ∆ chỉ phụ thuộc vào góc θ nên không phụ thuộc vào vật liệu của môi trường. Từ công thức (1.6),

θ π=

/ 2

'λ tăng khi tăng góc tán xạ và

0λ∆ = khi

0ϕ= ;

là bước sóng Compton, được xác nhận bởi thực nghiệm. Do Trong đó:

cλ λ∆ =

0λ∆ = khi θ π= ; Tuy nhiên với một góc θ cho trước thì λ∆ không phụ thuộc vàoλ. Như vậy hiệu

∆ << vì khi đó

'λ λ= , chẳng hạn với ánh sáng

khi ; có thể thấy rằng bước sóng

ứng Compton không đóng vai trò đáng kể khi λ λ

nhìn thấy hoặc ngay cả với tia X năng lượng thấp. Hiệu ứng Compton chỉ đóng góp lớn đối với tia

gamma sóng ngắn, hay năng lượng cao, sao cho λ λ∆ ≈ .

Góc bay θ của gamma tán xạ có thể thay đổi từ 0o đến 180o. Khi tán xạ Compton, năng

lượng tia gamma giảm và phần năng lượng giảm đó truyền cho electron giật lùi. Như vậy năng

θ=

180

o, tức là khi tán xạ giật lùi (hay còn gọi là tán xạ

lượng electron giật lùi càng lớn khi gamma tán xạ với góc θ càng lớn. Gamma truyền năng lượng

lớn nhất cho electron khi tán xạ ở góc

ngược).

2

2

θ

=

Tiết diện vi phân của tán xạ Compton có dạng:

2 r e

2 α 2

σ d Ω d

) θ

+

(1.7)

( + 1 cos

+ 1 cos ( α − 1 cos

) θ

) ( θ − 1 cos ) ( − + θ α  1 1 cos 

 

    

  + 1 2    

 2 1 

2

=

=

α ;

r e

2

2

e m c e

E m c e

Trong đó

Tiết diện tán xạ Compton toàn phần nhận được bằng cách lấy tích phân biểu thức (1.7) theo

+

=

+

+

+

σ

tất cả các góc tán xạ:

( ln 1 2

) α

( ln 1 2

) α

Compton

2 π 2 er

2

) α 1 − α α

( 2 1 + 1 2

1 α 2

+ 1 3 ( + 1 2

α ) α

  

  

 + α  1  2 α  

    

(1.8)

1.1.1.3. Hiệu ứng tạo cặp

P). Đó là hiệu ứng

+ - P) và positron (eP với trường hạt nhân đó và biến chuyển thành một cặp electron (eP

Những photon có năng lượng E Rγ R≥ 1,022 MeV khi đến gần hạt nhân nguyên tử sẽ tương tác

P = 0,511 MeV).

2 khối lượng tĩnh mReR của hai hạt vi mô đó (E = mRe RcP

tạo cặp electron-positron. Năng lượng tối thiểu dùng cho hiệu ứng này là 1,022 MeV tương ứng với

Phần năng lượng còn lại của photon tới trở thành động năng của hai hạt vi mô mới xuất hiện.

Như vậy:

2 ERγ R = 2mReRcP

+ - PRd R + EP P + EP

PRd R

(1.9)

Các hạt thứ cấp này có động năng nên sẽ tương tác với vật chất và cũng gây ra quá trình ion

hóa thứ cấp. Electron sẽ mất dần động năng rồi chuyển về dạng chuyển động nhiệt hoặc gắn với một

ion dương nào đó. Positron mang điện tích dương nên sẽ dễ dàng kết hợp với các electron khác

trong vật chất, điện tích của chúng bị trung hòa, chúng hủy lẫn nhau, gọi là hiện tượng hủy electron-

positron. Khi hủy electron-positron, hai lượng tử gamma sinh ra bay ngược chiều nhau, mỗi lượng

tử có năng lượng 0,511 MeV, tức là năng lượng tổng cộng của chúng bằng tổng khối lượng hai hạt

electron và positron 1,022 MeV.

Sự biến đổi năng lượng thành khối lượng như trên phải xảy ra gần một hạt nào đó để hạt này

chuyển động giật lùi giúp tổng động lượng được bảo toàn. Quá trình tạo cặp cũng có thể xảy ra gần

electron nhưng xác suất bé so với quá trình tạo cặp gần hạt nhân khoảng 1000 lần.

Tiết diện hiệu ứng tạo cặp trong trường hạt nhân có dạng phức tạp. Sau đây là các biểu thức

2

=

σ

ln

tiết diện trong vài miền năng lượng của tia gamma:

pair

2 r e

Z 137

28 9

218 27

E 2 2 m c e

  

  

2

2

1/ 3

<<

<<

E

137

m c Z −

(1.10)

m c e

e

2

1/3

=

σ

Z

đối với khi không tính đến hiệu ứng màng che chắn.

pair

2 r e

Và: (1.11)

( ln 183

)

Z 137

28 9

2 27

  

  

2

1/ 3

>>

E

m c Z −

137 e

2

1/3

137

30

đối với , khi tính đến hiệu ứng màng che chắn toàn phần.

em c Z − = MeV đối với nhôm và 15MeV đối với chì.

2

2

<

<

E

5

50

2 tiết diện tạo cặp tỉ lệ với ZP

P và lnE.

Trong đó

m c e

m c e

2 Tiết diện tạo cặp electron-positron gần tỉ lệ với ZP

P nên có giá trị lớn đối với chất hấp thụ có

Trong miền năng lượng

số nguyên tử lớn.

1.1.1.4. Tổng hợp các hiệu ứng khi gamma tương tác với vật chất

Như đã trình bày ở trên, khi gamma tương tác với vật chất có ba hiệu ứng chính xảy ra, đó là

hiệu ứng quang điện, hiệu ứng Compton và hiệu ứng tạo cặp electron-positron. Tiết diện vi phân

= σ σ

+

σ

+

σ

tương tác tổng cộng của các quá trình này bằng:

photo

Compton

pair

5

(1.12)

photoσ tỷ lệ với

Z 7 / 2 E

Trong đó tiết diện quá trình quang điện

Comptonσ

Z E

2 lnZ

tỷ lệ với Tiết diện quá trình tán xạ Compton

E

pairσ tỷ lệ với

Tiết diện quá trình tạo cặp

Hình 1.3: Sự phụ thuộc năng lượng của các quá trình tương tác gamma khác nhau trong NaI

(Theo The Atomic Nuclear, R.D.Evans, 1955) [17]

Hình 1.3 là đồ thị biểu diễn sự phụ thuộc của tiết diện hấp thụ quang điện trong NaI theo

năng lượng. Ở vùng năng lượng thấp (tương ứng với năng lượng liên kết của các electron ở các lớp

khác nhau) có những mép hấp thụ xuất hiện. Những mép với năng lượng cao nhất sẽ ứng với các

electron lớp K. Ở phía trên ngay sát mép này, năng lượng photon chỉ đủ để chịu một hấp thụ quang

điện trong đó một electron lớp K bị bứt ra khỏi nguyên tử. Ở phía dưới ngay sát mép này, không có

đủ năng lượng để quá trình này xảy ra nên xác suất tương tác giảm nhanh đột ngột. Tương tự, các

mép hấp thụ ở năng lượng thấp hơn ứng với electron các lớp L, M,…trong nguyên tử.

Từ sự phụ thuộc các tiết diện vào năng lượng E của gamma và điện tích Z của vật chất như

trên, có thể thấy rằng trong miền năng lượng bé hơn ER1 R cơ chế cơ bản trong tương tác gamma với

vật chất là hiệu ứng quang điện, trong miền năng lượng trung gian ER1 R < E < E R2 R là hiệu ứng

Compton và trong miền năng lượng cao E > ER2 R là quá trình tạo cặp electron-positron. Các giá trị

năng lượng phân giới E R1 R và E R2 R phụ thuộc vào vật chất. Đối với nhôm thì ER1 R = 50 keV, ER2 R = 15

MeV. Còn đối với chì ER1 R = 500 keV và ER2 R = 5 MeV.

1.1.2. Nguyên tắc của sự hình thành phổ gamma

Vấn đề phân tích hạt nhân ngày càng trở thành nhu cầu bức thiết trong các nghiên cứu thực

nghiệm. Việc chế tạo thành công các loại detector bán dẫn germanium siêu tinh khiết (high purity

germanium – HPGe) với độ phân giải và hiệu suất đếm cao vào những năm 1980 là một bước ngoặt

trong lịch sử phát triển các thiết bị ghi nhận bức xạ tia X và tia gamma vì nó đã cải thiện đáng kể độ

chính xác của các phép phân tích bằng phương pháp hạt nhân. Sử dụng những detector ghi bức xạ

gamma trong phân tích phóng xạ có ưu điểm quan trọng là kỹ thuật phân tích không phá mẫu và khả

năng phân giải cao. Các thiết bị ghi nhận tia gamma và dựa vào những dữ liệu đó để xây dựng phổ

gamma. Phổ gamma chứa đựng những thông tin về những hiệu ứng xảy ra trong vật chất khi chiếu

bức xạ gamma vào, từ đó có thể phân tích, xác định năng lượng bức xạ gamma phát ra và hàm

lượng của các hạt nhân phóng xạ trong mẫu.

Khi đi qua môi trường của detector với cấu hình cụ thể, do bức xạ gamma không mang điện

tích nên không gây hiệu ứng ion hóa hoặc kích thích trực tiếp vào detector. Vì vậy, việc ghi nhận

chúng được thực hiện thông qua các tương tác mà trong đó một phần hoặc toàn bộ năng lượng của

chúng được truyền cho electron. Chính các electron này gây ion hóa tạo ra các xung điện ở lối ra

của detector. Như vậy detector đã biến đổi năng lượng tia gamma thành năng lượng của các electron

nhanh đồng thời ghi nhận chuyển đổi electron nhanh thành những tín hiệu điện.

Detector hoạt động theo kiểu xung, mỗi xung riêng rẽ mang thông tin quan trọng liên quan

đến điện tích được tạo ra bởi tương tác của bức xạ trong detector. Những xung này được tập hợp và

lưu trữ cho sự thể hiện phân bố biên độ xung của detector ở đầu ra. Một cách tổng quát phổ gamma

đo được là kết quả của sự tương tác của hệ detector lên phổ gamma tới, làm phân bố lại dạng của

phổ gamma tới, bao gồm đỉnh toàn phần do hiệu ứng quang điện và nền liên tục từ hiệu ứng tán xạ

Compton nhiều lần trong môi trường detector và các vật liệu xung quanh. Có hai cách thông thường

để trình bày thông tin về phân bố biên độ xung là phổ vi phân và phổ tích phân.

Quá trình này có thể cụ thể hóa bằng các bước sau:

1) Tia gamma có năng lượng hν đi vào detector Ge.

2) Các electron thứ cấp với tổng động năng E (eV) sinh ra trong vùng nhạy trong tinh thể Ge

bởi sự tương tác photon với Ge.

3) Các electron thứ cấp sinh ra một lượng lớn cặp electron – lỗ trống bởi sự ion hoá trong

tinh thể Ge.

4) Một tín hiệu xung có biên độ V (Volt) được sinh ra ở đầu vào tiền khuếch đại với điện

dung C (Farad).

5) Tín hiệu xung có biên độ V được khuếch đại và biến đổi thành số chỉ vị trí kênh (ch) bởi

khối xử lý biên độ đa kênh (MCA), một số đếm được cộng vào số đếm tổng tại vị trí kênh ch.

6) Nhiều tia gamma được phân tích bởi quá trình như trên, và sự phân bố độ cao của xung

được hình thành (phổ gamma).

Tia gamma

Electron thứ cấp

Cặp electron – lỗ trống

Tín hiệu xung

Phân tích độ cao xung

Phổ gamma

Hình 1.4: Sơ đồ sự hình thành phổ gamma

Như đã nói ở trên, phổ gamma đo được là kết quả của sự tương tác của hệ detector lên phổ

gamma tới, làm phân bố lại dạng của phổ gamma tới, sự phân bố này do hiệu ứng quang điện và

hiệu ứng tán xạ Compton nhiều lần trong môi trường detector và các vật liệu xung quanh. Kết quả

của hấp thụ quang điện là giải phóng các electron quang điện (mang hầu hết năng lượng của

gamma) cùng với một hoặc một số electron năng lượng thấp hơn ứng với sự hấp thụ năng lượng liên

kết của electron quang điện. Nếu không có sự thất thoát ra khỏi detector thì tổng động năng của các

electron được tạo ra phải bằng với năng lượng ban đầu của photon. Vì thế hấp thụ quang điện là một

quá trình lý tưởng cho việc đo đạc năng lượng của gamma. Với chùm gamma đơn năng và những

điều kiện lý tưởng, tổng động năng của các electron bằng với năng lượng gamma tới và phân bố vi

phân của động năng electron sau mỗi chuỗi các sự kiện hấp thụ quang điện sẽ có dạng một hàm

delta đơn giản như hình 1.5. Một đỉnh đơn xuất hiện tại năng lượng ứng với năng lượng của gamma

tới.

Hình 1.5: Đỉnh năng lượng toàn phần trong phổ độ cao xung vi phân

Trong tán xạ Compton, thông thường gamma có thể bị tán xạ ở bất kỳ góc nào khi tương tác

xảy ra trong detector. Do đó electron cũng có thể nhận một năng lượng bất kỳ từ 0 đến giá trị cực

đại ứng với θ π= và phân bố năng lượng electron có dạng tổng quát như hình dưới.

Hình 1.6: Nền Compton trong phổ độ cao xung vi phân

Trong quá trình tạo cặp, tổng động năng của các hạt tích điện (electron và positron) được tạo

bởi gamma tới cũng có dạng hàm delta đơn giản.

Hình 1.7: Đỉnh tạo cặp trong phổ độ cao xung vi phân

Tạo cặp là một quá trình phức tạp bởi positron là hạt không bền và chỉ đi được vài milimet.

Khi bị làm chậm trong môi trường hấp thụ đến năng lượng cỡ năng lượng nhiệt của electron,

positron sẽ hủy với một electron và một cặp photon 0,511 MeV xuất hiện. Có ba khả năng xảy ra:

hν MeV. Như vậy tia gamma mất hoàn toàn năng lượng nên có sự đóng góp vào số đếm toàn phần.

+ Cả hai photon đều bị hấp thụ. Năng lượng của tia gamma bị mất là: ( hν-1,022 + 1,022) =

+ Chỉ có một photon hủy bị hấp thụ, một photon thoát ra ngoài nên năng lượng tia gamma

mất trong vùng nhạy là: hν- 1,022 + 0,511 = hν- 0,511 MeV. Các xung này đóng góp số đếm vào

phổ biên độ xung tạo thành đỉnh thoát cặp thứ nhất (đỉnh thoát đơn, SE).

+ Khi cả hai photon hủy đều thoát khỏi tinh thể, năng lượng tia gamma mất trong vùng nhạy

của detector là: hν- 1,022 MeV. Các xung này đóng góp số đếm vào phổ biên độ xung tạo thành

đỉnh thoát cặp thứ hai (đỉnh thoát đôi, DE).

Tuy nhiên, các xác suất SE và DE này thường rất thấp. Do đó với nguồn cường độ mạnh

hoặc đo thời gian dài mới khảo sát được các đỉnh này.

Thời gian của quá trình hủy electron và positron rất ngắn, vì thế bức xạ hủy xuất hiện gần

như cùng lúc với tương tác tạo cặp ban đầu. Bức xạ hủy này gây ảnh hưởng đáng kể lên đáp ứng của

1.2. PHƯƠNG PHÁP MÔ PHỎNG MONTE CARLO VÀ CHƯƠNG TRÌNH MCNP5

1.2.1. Phương pháp mô phỏng Monte Carlo

các detector gamma.

1.2.1.1. Giới thiệu về mô phỏng

• Giới thiệu

Trên thế giới, trong nhiều lĩnh vực khoa học, để đáp ứng nhu cầu tìm hiểu và khám phá của

các nhà nghiên cứu, cùng với sự xuất hiện của máy tính thì việc mô phỏng các hiện tượng thí

nghiệm trở nên hết sức cần thiết.

Mô phỏng là việc sử dụng máy tính kết hợp với các quy luật toán học, vật lý, dựa trên phép

tính định lượng, tương đối hoá các tham số để giải các bài toán, nghiên cứu kết cấu hay quá trình,

thực hiện tính toán hay dựng lên các mô hình của các thí nghiệm.

• Các loại mô phỏng

Để thực hiện một bài toán mô phỏng dù đơn giản hay phức tạp thì đều phải mô hình hóa và

lựa chọn phương thức thích hợp để thực hiện trên máy tính.

Dựa trên nhiều tiêu chuẩn, mô phỏng có thể chia thành nhiều loại. Dưới đây là vài loại cơ

bản:

- Mô phỏng ngẫu nhiên: còn gọi là mô phỏng Monte Carlo, nó áp dụng nguyên tắc gieo các

số ngẫu nhiên để mô phỏng các hiện tượng ngẫu nhiên.

- Mô phỏng tất định: là phương pháp tính toán có thể đoán trước được. Nếu nó chạy với một

dữ liệu vào cụ thể thì các dữ liệu ra không đổi.

- Mô phỏng liên tục: bằng việc sử dụng các phương trình vi phân và giải tích số, máy tính sẽ

giải phương trình một cách tuần hoàn và sử dụng kết quả thu được để thay đổi trạng thái, số liệu

xuất ra.

- Mô phỏng rời rạc: người ta ghi lại một dãy các sự kiện đã được sắp xếp theo thời gian, khi

mô phỏng các sự kiện này sẽ tạo ra các sự kiện mới.

1.2.1.2. Phương pháp mô phỏng Monte Carlo

Thuật ngữ “phương pháp Monte Carlo” xuất hiện từ Thế chiến thứ hai khi tiến hành các mô

phỏng ngẫu nhiên trong quá trình chế tạo bom nguyên tử. Phương pháp Monte Carlo là phương

pháp giải số, áp dụng cho việc mô phỏng sự tương tác giữa các vật thể hay giữa vật thể với môi

trường nhờ lý thuyết cơ học và động lực học, dựa theo yêu cầu của hệ cần mô phỏng.

Đây là một phương pháp ngẫu nhiên, nhờ sự phát sinh các số ngẫu nhiên để tính toán.

Phương pháp này thường được dùng để mô phỏng các quá trình ngẫu nhiên của hệ, nó không liên

quan đến thời gian nên không thể sử dụng để mô phỏng các đại lượng phụ thuộc thời gian.

Các phương pháp Monte Carlo rất khác với các phương pháp vận chuyển tất định. Các

phương pháp tất định giải phương trình vận chuyển đối với trạng thái hạt trung bình. Ngược lại,

phương pháp Monte Carlo không giải phương trình tường minh mà là sự mô phỏng các hạt riêng rẽ

và ghi lại một số khía cạnh trạng thái trung bình của chúng. Trạng thái trung bình của các hạt trong

vật lý khi đó được rút ra từ trạng thái trung bình của các hạt được mô phỏng (bằng cách sử dụng

định lý giới hạn trung tâm). Phương pháp Monte Carlo cho phép biểu diễn chi tiết tất cả các khía

cạnh của các số liệu vật lý trong quá trình vận chuyển hạt.

Trong những năm gần đây, các chương trình mô phỏng vận chuyển bức xạ bằng phương

pháp Monte Carlo được sử dụng ngày càng rộng rãi. Điều này, một mặt do yêu cầu cấp bách giải

quyết nhiều bài toán quan trọng trong thực tế từ thiết kế lò phản ứng đến bảo vệ bức xạ và vật lý y

học. Mặt khác, các chi phí thực nghiệm tăng lên và các chi phí tính toán giảm xuống cũng làm cho

việc mô phỏng trở nên hấp dẫn hơn, đặc biệt khi các thí nghiệm được tiến hành trong môi trường

nguy hiểm. Hơn nữa, các kỹ thuật tính trong các chương trình này cũng nhanh hơn và các máy tính

cũng tốt hơn làm cho mô phỏng số trở nên đáng tin cậy.

Đa số các công trình nghiên cứu trên thế giới tập trung vào các vấn đề về mô phỏng đáp ứng

phổ, sử dụng mô phỏng trong việc hỗ trợ tính toán hiệu suất đối với các dạng hình học nguồn và

mẫu khác nhau, khảo sát hiệu suất theo năng lượng, theo khoảng cách, hiệu chỉnh trùng phùng tổng

đối với gamma phân rã nhiều tầng, hiệu chỉnh tự hấp thụ đối với hình học nguồn và mẫu thể tích,…

Phương pháp Monte Carlo phụ thuộc rất nhiều vào tập hợp các số ngẫu nhiên. Trên máy tính,

các số ngẫu nhiên trong các ngôn ngữ lập trình thường chỉ có giá trị từ 0 đến 1, trong khi phạm vi

của các đại lượng cần mô phỏng thì rất rộng lớn. Vì vậy cần có những kĩ thuật thích hợp để mô

phỏng bài toán.

Phương pháp này được ứng dụng rất rộng rãi trong nhiều lĩnh vực như thống kê, lượng tử,

mô phỏng cấu trúc vật liệu và cả trong kinh tế nữa. Trên thực tế, nó được sử dụng trong nghiên cứu

1.2.2. Chương trình MCNP5

sự vận chuyển bức xạ, tính toán và thiết kế lò phản ứng …

1.2.2.1. Tổng quan về MCNP

MCNP (Monte Carlo N-Particle) là chương trình phổ biến để mô phỏng tương tác giữa

neutron, gamma, electron với môi trường vật chất.

MCNP ban đầu được phát triển bởi nhóm Monte Carlo và sau này bởi nhóm Radiation

Transport (Nhóm X-5) của phòng Vật lý Lý thuyết Ứng dụng ở Phòng thí nghiệm quốc gia Los

Alamos (Hoa Kỳ). Nhóm X-5 cải tiến MCNP và cứ hai hoặc ba năm họ lại cho ra một phiên bản

MCNP mới, các phiên bản này được cung cấp tới người dùng thông qua Trung tâm Thông tin Che

chắn Bức xạ (RSICC) ở Oak Ridge, Tennessee (Hoa Kỳ) và ngân hàng dữ liệu OECD/NEA ở Pari

(Pháp). MCNP sử dụng các thư viện số liệu hạt nhân và nguyên tử từ các nguồn dữ liệu ENDF

(Evaluated Nuclear Data File), ENDL (Evaluated Nuclear Data Library) và ACTL (the Activation

Library).

MCNP là chương trình ứng dụng phương pháp Monte Carlo để mô phỏng các quá trình vật lý

hạt nhân đối với neutron, photon, electron mang tính thống kê (các quá trình phân rã hạt nhân,

tương tác giữa các tia bức xạ với vật chất, thông lượng neutron…). MCNP sử dụng các thư viện dữ

liệu của các quá trình hạt nhân, các quy luật phân bố thống kê, số ngẫu nhiên ghi lại các sự kiện của

một hạt trong suốt quá trình kể từ khi phát ra từ nguồn đến hết thời gian sống của nó. Chương trình

này là công cụ mô phỏng được thiết lập rất đáng tin cậy, cho phép người sử dụng xây dựng các dạng

hình học phức tạp và mô phỏng dựa trên các thư viện hạt nhân. Phương pháp Monte Carlo có thể

được sử dụng để sao chụp một cách lý thuyết một quá trình thống kê (chẳng hạn như tương tác

gamma qua vật chất) và rất hữu hiệu trong các bài toán phức tạp. Chương trình MCNP điều khiển

các quá trình này bằng cách gieo số theo quy luật thống kê cho trước và mô phỏng được thực hiện

trên máy tính vì số lần thử cần thiết thường rất lớn.

MCNP từ khi ra đời cho đến nay có rất nhiều phiên bản, mỗi phiên bản kế tiếp đều được cập

nhật thêm các tính năng mới :

- Phiên bản MCNP3, 3A và 3B ra đời vào thập niên 1980 tại Los Alamos.

- Năm 1993, MCNP4A ra đời.

- Năm 1997, MCNP4B xuất hiện với việc cập nhật thêm các tính năng về photon.

- Năm 2000, phiên bản 4C ra đời kèm thêm các tính năng về electron.

- Năm 2002, phiên bản MCNPX 2.4.0 ra đời.

- Năm 2003, MCNP5 xuất hiện với các mức năng lượng, chủng loại hạt được mở rộng. Đây

là phiên bản mới nhất của MCNP.

1.2.2.2. Chương trình MCNP5

• Giới thiệu

Chương trình MCNP5, cũng giống như các phiên bản khác, sử dụng việc gieo số ngẫu nhiên

tuân theo các quy luật phân bố, ghi lại quá trình sống của một hạt khi nó được phát ra từ nguồn.

Chương trình có nhiều ứng dụng như thiết kế lò phản ứng, an toàn tới hạn, che chắn và bảo vệ, vật

lý y học … Trong phạm vi của luận văn chỉ giới hạn sử dụng chương trình này để mô phỏng phổ

gamma và tính toán hiệu suất ghi của detector.

• Cấu trúc một input file của MCNP5

Phần input file của chương trình MCNP5 được xác định như sau:

Tiêu đề và thông tin về input file (nếu cần)

Cell Cards

Surface Cards

Data Cards

(Mode Cards, Material Cards, Source Cards, Tally Cards, . . .)

• Hình học trong MCNP5

Hình học của MCNP5 thể hiện là hình học có cấu hình ba chiều tùy ý. MCNP5 xử lý các

hình học trong hệ tọa độ Descartes. MCNP5 có một chương trình dựng sẵn để kiểm tra lỗi của dữ

liệu đầu vào, thêm vào đó khả năng vẽ hình học của MCNP5 cũng giúp người dùng kiểm tra các lỗi

hình học. Sử dụng các mặt biên được xác định trên các cell card và surface card, MCNP5 theo dõi

sự chuyển động của các hạt qua các hình học, tính toán các chỗ giao nhau của các quỹ đạo vết với

các mặt biên và tìm khoảng cách dương nhỏ nhất của các chỗ giao. Nếu khoảng cách tới lần va

chạm kế tiếp lớn hơn khoảng cách nhỏ nhất, hạt sẽ rời khỏi cell đang ở. Sau đó, tại điểm giao thu

được trên bề mặt, MCNP5 sẽ xác định cell tiếp theo mà hạt sẽ vào bằng cách kiểm tra giá trị của

điểm giao (âm hoặc dương) đối với mỗi mặt được liệt kê trong cell. Dựa vào kết quả đó, MCNP5

tìm được cell đúng ở phía bên kia và tiếp tục quá trình vận chuyển. Hình học trong MCNP5 được

thể hiện qua các cell card và surface card.

a. Cell Card:

Cell là một vùng không gian được hình thành bởi các mặt biên (được định nghĩa trong phần

surface card). Nó được hình thành bằng cách thực hiện các toán tử giao, hội và bù các vùng không

gian tạo bởi các mặt. Mỗi mặt chia không gian thành hai vùng với các giá trị dương và âm tương

ứng. Khi một cell được xác định, một vấn đề quan trọng là xác định được giá trị của tất cả những

điểm nằm trong cell tương ứng với một mặt biên. Giả sử rằng s = f(x,y,z) = 0 là phương trình của

một mặt trong bài toán. Đối với một điểm (x,y,z) mà có s = 0 thì điểm đó ở trên mặt, nếu s âm điểm

đó được gọi là ở bên trong mặt và được gán dấu âm. Ngược lại, nếu s dương, điểm ở bên ngoài mặt

thì được gán dấu dương. Cell được xác định bởi cell card. Mỗi cell được diễn tả bởi số cell (cell

number), số vật chất (material number), mật độ vật chất (material density), một dãy các mặt có dấu

(âm hoặc dương) kết hợp nhau thông qua các toán tử giao, hội, bù để tạo thành cell.

b. Surface Card:

Surface card được xác định bằng cách cung cấp các hệ số của các phương trình mặt giải tích

hay các thông tin về các điểm đã biết trên mặt. MCNP5 cũng cung cấp các các dạng mặt cơ bản

chẳng hạn như mặt phẳng, mặt cầu, mặt trụ, ... (có tất cả gần 30 loại mặt cơ bản) có thể được kết

hợp với nhau thông qua các toán tử giao, hội và bù. Có hai cách để xác định các thông số mặt trong

MCNP5:

– Cung cấp các hệ số cần thiết thỏa mãn phương trình mặt.

Ví dụ: P A B C D có nghĩa là xây dựng mặt phẳng Ax + By + Cz = D.

– Xác định các điểm hình học đã biết trên các mặt đối xứng quay trên một trục tọa độ.

• Dữ liệu hạt nhân

Các bảng dữ liệu hạt nhân là những phần không thể thiếu được trong chương trình MCNP5.

Ngoài việc sử dụng các bảng dữ liệu có sẵn trong MCNP5, người dùng còn có thể sử dụng các dữ

liệu được tái tạo từ các dữ liệu gốc bên ngoài thông qua một chương trình chuyển đổi chẳng hạn như

NJOY hay là các dữ liệu mới được đưa vào trong MCNP5 bởi chính bản thân người dùng. Có tất cả

9 loại dữ liệu hạt nhân trong MCNP5:

– Tương tác neutron có năng lượng liên tục

– Tương 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 quang hạt nhân năng lượng liên tục

– Các tiết diện để tính liều cho neutron

– Neutron S(a,b) nhiệt

– Tương tác neutron, cặp neutron/photon, các hạt tích điện giả neutron

– Tương tác photon

– Tương tác electron

Các dữ liệu hạt nhân được đưa vào trong MCNP5 qua phần khai báo material card.

• Mô tả nguồn

MCNP5 cho phép người dùng mô tả nguồn ở các dạng khác nhau thông qua các thông số

nguồn như năng lượng, thời gian, vị trí và hướng phát nguồn hay các thông số hình học khác như

cell hoặc surface. Bên cạnh việc mô tả nguồn theo phân bố xác suất, người dùng còn có thể sử dụng

các hàm dựng sẵn để mô tả nguồn. Các hàm này bao gồm các hàm giải tích cho các phổ năng lượng

phân hạch và nhiệt hạch chẳng hạn như các phổ Watt, Maxwell và các phổ dạng Gauss (dạng theo

thời gian, dạng đẳng hướng, cosin và dọc theo một hướng nhất định).

• Tally

Trong MCNP5 có nhiều loại tally tính toán khác nhau. Người sử dụng có thể dùng các tally

(đánh giá) khác nhau liên quan đến dòng hạt, thông lượng hạt, năng lượng để lại. Các tally trong

MCNP5 đã được chuẩn hoá trên một hạt phát ra, ngoại trừ một vài trường hợp đối với nguồn tới

hạn. Các loại tally thông dụng của MCNP5 được cho trong bảng 1.

Bảng 1: Các kiểu đánh giá (tally) trong MCNP5

Kí hiệu Tally Loại hạt

F1 Cường độ dòng qua bề mặt N, P, E

F2 Thông lượng trung bình qua một bề mặt N, P, E

F4 Thông lượng trung bình qua một cell N, P, E

F5 Thông lượng tại một điểm hay vòng N, P

F6 Năng lượng để lại trung bình qua một cell N, P

F7 Năng lượng phân hạch trung bình để lại trong một cell N

F8 Sự phân bố độ cao xung trong một cell P, E

• Output Ngoài các thông tin về kết quả, output file của MCNP5 còn có các bảng chứa các thông tin

tóm tắt cần thiết cho người sử dụng để biết rõ thêm về quá trình chạy mô phỏng của MCNP5. Các

thông tin này làm sáng tỏ vấn đề vật lí của bài toán và sự thích ứng của mô phỏng Monte Carlo. Nếu

có xảy ra sai sót trong khi chạy chương trình, MCNP5 sẽ in chi tiết cảnh báo trong phần output để

người sử dụng có thể tìm và loại bỏ. Các kết quả tính toán được in ra cùng với độ lệch chuẩn. Ngoài

ra, đi kèm với các kết quả còn là một bảng phân tích chi tiết để xác định độ tin cậy của các kết quả

này.

1.3. NGÔN NGỮ LẬP TRÌNH FORTRAN

1.3.1. Giới thiệu

Fortran là ngôn ngữ lập trình bậc cao lâu đời và được dùng phổ biến hiện nay trên thế giới,

nhất là trong lĩnh vực khoa học tự nhiên và khoa học kỹ thuật. Đây là ngôn ngữ lập trình bậc cao

xuất hiện ngay buổi đầu của kỹ thuật máy tính và phát triển cho đến ngày nay, do đó Fortran có một

kho dữ liệu là các chương trình chuẩn – chương trình mẫu phong phú nhất trong số các ngôn ngữ

lập trình bậc cao. Để tăng cường các tính năng mạnh hơn, phù hợp cho việc chuyển đổi từ hệ máy

tính này sang hệ máy tính khác, Fortran đã nhiều lần được chuẩn hóa và cải tiến. Phiên bản Fortran

đầu tiên được dùng vào năm 1957 và là ngôn ngữ lập trình bậc cao đầu tiên. Lúc đầu ngôn ngữ này

được dùng cho các tính toán khoa học nhưng theo năm tháng Fortran trở thành ngôn ngữ dùng cho

nhiều mục đích lập trình khác nhau. Tiếp theo phiên bản đầu tiên ra đời vào năm 1957, các phiên

bản khác đã lần lượt xuất hiện như Fortran II (1958), Fortran III (1958), Fortran IV (1961), Fortran

66 (1966), Fortran 77 (1977), Fortran 90 (1990), Fortran 95 (1995) và phiên bản cuối cùng gần đây

nhất là Fortran 2003 được hoàn thiện vào năm 2003 và chính thức xuất bản để ứng dụng vào năm

2004. Tuy nhiên các phiên bản được nhiều người sử dụng nhất hiện nay lại là Fortran 77 và Fortran

90. Các phiên bản mới của Fortran được phát triển trên cơ sở các phiên bản cũ chủ yếu bằng cách

thêm các tính năng mới và tiện ích mới mạnh hơn nhưng các câu lệnh cơ bản vẫn không đổi. Do đó,

việc sử dụng chương trình viết trên các phiên bản khác nhau là không gặp trở ngại.

1.3.2. Giải bài toán bằng ngôn ngữ lập trình Fortran

Để giải một bài toán bằng lập trình với ngôn ngữ Fortran, cần thực hiện theo trình tự các

bước sau:

1) Phân tích bài toán, xác định thuật giải, các bước thực hiện và trình tự thực hiện các bước.

Đây là bước hết sức quan trọng, vì nó quyết định sự đúng đắn về mặt lôgic của việc giải bài toán.

Do đó, nói chung cần phải lập một dàn bài cụ thể và biểu diễn nó qua các sơ đồ (thường gọi là sơ đồ

khối).

2) Soạn thảo mã nguồn của chương trình (chương trình nguồn, hay lời chương trình), tức là

ngôn ngữ hoá các thuật giải, theo đúng trình tự đã lập và lưu vào một (hoặc một số) file với phần

mở rộng là *.f90 (hoặc *.f, *.for, ngầm định đối với Fortran 77).

3) Tiến hành biên dịch chương trình. Ở bước này nếu chương trình vẫn còn lỗi cú pháp thì

quay lại bước 2 để chỉnh sửa rồi tiếp tục biên dịch lại chương trình. Quá trình cứ tiếp diễn cho đến

khi trình biên dịch tạo được file đích (Ojective file) và thực hiện liên kết (link) để nhận được file

thực hiện (executable file).

4) Chạy chương trình (tức chạy file thực hiện) để nhận được kết quả. Sau khi nhận được kết

quả tính toán, cần phân tích, xem xét tính hợp lý, đúng đắn của nó. Nếu kết quả không phù hợp cần

phải xem xét lại bước 1 và bước 2.

1.3.3. Cấu trúc chung của một chương trình Fortran

Cấu trúc chung của một chương trình Fortran đơn giản như sau:

PROGRAM TenChuongTrinh

Cac cau lenh khai bao

Cac cau lenh thuc hien

END PROGRAM TenChuongTrinh

TenChuongTrinh là tên của chương trình, thường được đặt một cách tùy ý sao cho mang tính

gợi nhớ, rằng chương trình sẽ giải quyết vấn đề gì.

Cac cau lenh khai bao là những câu lệnh khai báo biến, hằng,... và kiểu dữ liệu tương ứng

của chúng để trình biên dịch cấp phát bộ nhớ, phân luồng xử lý. Các câu lệnh khai báo nằm trong

nhóm các câu lệnh không thực hiện (nonexecutable statement).

Cac cau lenh thuc hien là những câu lệnh xác định qui tắc và trình tự thực hiện tính toán, xử

lý để đạt được kết quả.

PROGRAM là câu lệnh tùy chọn, không nhất thiết phải có. Nếu không được viết ra, chúng

có thể được chương trình dịch tự thêm vào.

Trong cấu trúc trên, các mục (nếu có) bắt buộc phải xuất hiện theo trình tự như đã mô tả. Có

nghĩa là sau câu lệnh mô tả tên chương trình sẽ là các câu lệnh khai báo, tiếp theo là các câu lệnh

thực hiện. Câu lệnh END phải đặt ở cuối chương trình.

Chỉ có một câu lệnh bắt buộc trong chương trình Fortran là END. Câu lệnh này báo cho

chương trình dịch rằng không còn câu lệnh nào hơn nữa để dịch. Có thể bỏ qua TenChuongTrinh

trong câu lệnh END, nhưng nếu có TenChuongTrinh thì từ khoá PROGRAM là bắt buộc.

Những dòng bắt đầu với dấu chấm than (Fortran 90) hoặc chữ “c” (Fortran 77) là lời giải

thích, làm rõ cho người đọc chương trình, và không ảnh hưởng gì tới chương trình dịch. Các biến

trong chương trình có thể có các kiểu (type) khác nhau. Các dòng trống (nếu có) trong chương trình

được xem như những câu lệnh không thực hiện (non-executable), tức là không có tác động nào được

thực hiện, có thể chèn thêm vào để cho chương trình được sáng sủa, không rối mắt.

1.3.4. Cấu trúc chung của một câu lệnh Fortran

Dạng câu lệnh cơ bản của mọi chương trình Fortran 90 có thể gồm từ 0 đến 132 ký tự (câu

lệnh có thể là trống rỗng; câu lệnh trống rỗng làm cho chương trình dễ đọc hơn bởi sự phân cách

lôgic giữa các đoạn). Đối với phiên bản Fortran 77 và các phiên bản trước đó, nội dung các câu lệnh

phải bắt đầu từ cột thứ 7 và kéo dài tối đa đến cột thứ 72. Nếu câu lệnh có nội dung dài hơn, nó sẽ

được ngắt xuống dòng dưới, và ở dòng nối tiếp này phải có một ký tự bất kỳ (khác dấu cách) xuất

hiện ở cột thứ 6. Fortran 90 không có sự hạn chế đó.

Một câu lệnh cũng có thể có nhãn. Nhãn là một số nguyên dương trong khoảng 1 đến 99999.

Nhãn (nếu có) phải là duy nhất trong một chương trình và phải đặt ở đầu câu lệnh, phân cách với

nội dung câu lệnh bởi ít nhất một dấu cách. Đối với Fortran 77 và các phiên bản trước, nhãn được

ghi vào các cột 1 đến 5.

Tất cả các câu lệnh, trừ câu lệnh gán, đều bắt đầu bằng các từ khoá (keyword). Ví dụ một số

từ khoá thường gặp như PROGRAM, OPEN, PRINT, READ, END...

CHƯƠNG 2: MÔ HÌNH HÓA HỆ PHỔ KẾ GAMMA BẰNG CHƯƠNG

TRÌNH MCNP5

Ngày nay khó có thể tìm thấy một lĩnh vực nào trong khoa học hạt nhân mà ở đấy đo phổ

gamma với việc sử dụng detector bán dẫn lại không có mặt. Đo phổ gamma trở thành công nghệ

phát triển. Trong nhiều lĩnh vực của khoa học hạt nhân ứng dụng, những tính chất của bức xạ được

sử dụng để đo nồng độ phóng xạ, chẳng hạn như xác định hàm lượng của các hạt nhân phóng xạ

phát gamma trong các mẫu môi trường. Những detector bán dẫn đã được đặt ở những vị trí chính

yếu trong các phòng thí nghiệm phân tích phóng xạ. Việc sử dụng các detector bán dẫn đã giúp tạo

nên các kết quả chính xác hơn cho việc ghi nhận các bức xạ gamma của detector với các năng lượng

khác nhau.

Có nhiều loại detector khác nhau nhưng tất cả đều dựa trên cùng một nguyên tắc là chuyển

một phần hay toàn bộ năng lượng bức xạ trong detector thành xung điện.

2.1. MÔ HÌNH HÓA HỆ PHỔ KẾ GAMMA

Để xây dựng một input (bộ số liệu đầu vào của chương trình mô phỏng MCNP5), trước hết

cần mô hình hóa hệ phổ kế gamma. Các hệ phổ kế được sử dụng trong các phòng thí nghiệm của

các trường đại học và các trung tâm nghiên cứu hiện nay về cơ bản có cấu trúc giống nhau, chỉ khác

nhau về thông số từng bộ phận. Hệ phổ kế được mô tả trong luận văn này là hệ phổ kế của Trung

tâm Hạt nhân TPHCM.

Để mô hình hoá hệ phổ kế gamma bằng chương trình MCNP5, cần phải xây dựng một cách

chính xác bộ số liệu đầu vào. Bộ số liệu này chứa đựng những thông tin về cấu trúc hình học, thành

phần vật liệu của detector, buồng chì và các nguồn phóng xạ. Đầu tiên việc mô hình hoá hệ phổ kế

được thực hiện dựa trên các chi tiết cấu hình của hệ đo, vật liệu, các thông số về mật độ, thành phần

hóa học, nồng độ từng nguyên tố tham gia trong chất cấu thành vật liệu nền tương ứng, các đặc

trưng của nguồn phóng xạ, loại phân bố năng lượng, xác suất phát hạt, loại hạt gây tương tác trên

detector, kiến thức về quá trình tương tác của các hạt quan tâm, các ảnh hưởng liên quan, loại đánh

giá cần xác định,... Việc hiểu biết tỉ mỉ mô hình giúp người sử dụng xây dựng input file chính xác.

Trong đó thông tin về cấu trúc hình học và thành phần vật liệu của buồng chì có được bằng cách

khảo sát đo đạc trực tiếp, thông tin của detector và các nguồn phóng xạ có được bằng cách dựa vào

số liệu do nhà sản xuất cung cấp. Bộ số liệu đầu vào này sẽ được đưa vào trong một input chuẩn của

chương trình MCNP5. Do đó input cần phải được chuẩn bị cẩn thận và phải đáp ứng chính xác các

yêu cầu, các khuôn mẫu của chương trình MCNP5, khi đó chương trình MCNP5 sẽ tái tạo lại mô

hình chính xác nhất trên máy tính về hệ phổ kế gamma trong phòng thí nghiệm. Sau đó dựa vào

những dữ liệu về tính chất hạt nhân và các quy luật tương tác hạt nhân từ thư viện dữ liệu nguồn của

chương trình, MCNP5 sẽ cho kết quả phổ gamma dựa trên mô phỏng Monte Carlo.

Khối xử lý Khối xử Tiền Bộ Detector HPGe biên độ đa lý và lưu kh ế h kh ế h

Nguồn

cung cấp

ế

Hình 2.1: Sơ đồ khối hệ phổ kế gamma dùng detector HPGe

Hệ phổ kế gamma tại Trung tâm Hạt nhân TPHCM bao gồm các phần chính như sau: buồng

chì, detector HPGe GC1518, nguồn cung cấp cao thế, tiền khuếch đại nhạy điện tích, khuếch đại,

khối phân tích biên độ đa kênh, khối xử lý và lưu trữ số liệu [11]. Ảnh chụp hệ phổ kế gamma

phông thấp hiện đang hoạt động được trình bày trong Phụ lục 1.

2.1.1. Cấu trúc của buồng chì

Trong quá trình đo đạc, các đồng vị phóng xạ tự nhiên và nhân tạo phân bố xung quanh

detector sẽ tạo ra phông phóng xạ làm ảnh hưởng đến kết quả phân tích phổ gamma đo được, để

P (tương đương 0,88 cm) cường độ chùm photon có năng lượng 1000

2 với tấm chì có bề dày 10 g/cmP

2 keV đã giảm bớt một nửa, tăng bề dày của tấm chì lên 10 lần, bề dày 100 g/cmP

P (tương đương 8,8

giảm bớt phổ phông này cần phải thiết kế vật liệu che chắn thích hợp. Chì là vật liệu được chọn vì

cm) thì cường độ chùm photon có năng lượng 1000 keV giảm đi 1000 lần. Do đó tấm chì có bề dày

210

10 cm thường được sử dụng để che chắn các bức xạ phông. Tuy nhiên, cần lưu ý là chì được sử

PPb (Chu kỳ bán rã

238

PU.

dụng để che chắn phải là chì “cổ” nhằm giảm đáng kể hoạt độ phóng xạ của P

T½ = 21 năm) được tạo ra từ quá trình phân rã của P

Buồng chì được chế tạo tại Trung tâm Hạt nhân TPHCM đáp ứng tốt đối với các yêu cầu trên

[4]. Cấu trúc của buồng chì được trình bày trên hình.

Hình 2.2: Mặt cắt dọc của buồng chì, kích thước tính bằng mm

Hình 2.3: Mặt cắt dọc của buồng chì được mô hình hoá bằng chương trình MCNP5. Các chữ số chỉ

thị số thứ tự thẻ mặt được mô tả trong input của chương trình MCNP5.

Trên hình này detector HPGe GC1518 là một ống hình trụ bán kính 3,81 cm với chiều cao

nằm bên trong buồng chì là 8,40 cm.

Buồng chì có dạng hình trụ với bán kính ngoài 25 cm, cao 50 cm, bán kính trong 15 cm, cao

30 cm. Bề dày tấm chì ở các mặt trên, mặt dưới và mặt bên hình trụ bằng 10 cm.

Ở mặt dưới của nắp buồng chì có một lớp thiếc dày 0,3 cm và một lớp đồng dày 0,1 cm. Mặt

trên của đáy buồng chì có lót một lớp đồng dày 0,8 cm. Mặt trong của thành buồng chì có một lớp

thiếc dày 0,8 cm, một lớp paraffin dày 6,25 cm nửa dưới và 4,75 cm nửa trên, và một lớp đồng dày

0,6 cm kể từ bên ngoài vào.

210

PPb phát ra tia X có năng lượng 46,5 keV ...) nên các

Buồng chì có thể chứa các đồng vị phóng xạ phát ra các tia X đặc trưng hoặc tia bêta bị hãm

và phát ra bức xạ bremsstrahlung (chẳng hạn P

lớp thiếc, đồng được lót thêm để hấp thụ các tia phóng xạ này.

Ngoài ra trong buồng chì còn lót thêm một lớp paraffin dùng để hấp thụ các neutron có

nguồn gốc từ vũ trụ hoặc do sự phá vỡ các hạt nhân nặng (chẳng hạn 1 kg chì có thể tạo ra 0,11

neutron/phút) là nguyên nhân gây ra phản ứng (neutron, gamma).

Lớp thiếc có bề dày 1 mm có thể hấp thụ đến 95% các tia X của chì và lớp đồng có bề dày

1,5 mm thêm vào có thể hấp thụ đến 98% các tia X của chì trong dải năng lượng từ 75 - 85 keV

[10]. Cấu trúc gồm các lớp thiếc, đồng và paraffin được lót thêm vào đã làm giảm đáng kể các tia X

trong dải năng lượng 70 - 90 keV [1].

2.1.2. Detector HPGe GC1518

Hình 2.4: Mặt cắt dọc của Detector HPGe GC1518, kích thước tính bằng mm

Hình 2.5: Mặt cắt dọc của Detector HPGe GC1518 được mô hình hoá bằng chương trình MCNP5.

Các chữ số chỉ thị số thứ tự thẻ mặt được mô tả trong input của chương trình MCNP5

Sơ đồ cấu trúc của detector HPGe GC1518 được trình bày trên hình 2.4 và hình 2.5. Đây là

detector germanium siêu tinh khiết có dạng hình trụ đồng trục. Detector có các thông số danh định

như sau:

60

PCo.

- Hiệu suất tương đối 15% so với detector nhấp nháy NaI (Tl) kích thước 7,62 cm × 7,62 cm.

60

- Độ phân giải năng lượng 1,8 keV tại vạch năng lượng 1332 keV của đồng vị P

PCo.

- Tỷ số đỉnh/Compton bằng 45:1 cũng tại vạch năng lượng 1332 keV của đồng vị P

Các thông số về cấu trúc hình học và thành phần vật liệu của detector do nhà sản xuất cung

10

cấp [11]. Phần chính của detector HPGe GC1518 là tinh thể germanium siêu tinh khiết (mức độ tạp

3 P nguyên tử/cmP

P) có đường kính ngoài 54 mm, chiều cao 32 mm, ở giữa

chất thuần vào khoảng 10P

có một hốc hình trụ đường kính 7 mm và chiều cao 17 mm. Tín hiệu lấy ra từ một điện cực bằng

P được

+ cùng với bề dày tương đương 0,35 mm. Ge được gọi là lớp germanium bất hoạt. Đó là lớp nP

đồng đặt ở trong hốc của tinh thể. Mặt trên và mặt bên tinh thể có một lớp lithium khuếch tán ngoài

+ P mm Ge. Đây là lớp pP

P được nối với cực âm của nguồn điện.

-3 dày tương đương 3.10P

nối với cực dương của nguồn điện. Mặt trong hốc của tinh thể có một lớp boron được cấy ion với bề

-3 0,1 mm và lớp dưới làm bằng mylar được kim loại hóa với bề dày 8,5.10P

P mm.

Mặt trên cùng của tinh thể có phủ hai lớp vật liệu gồm lớp trên làm bằng kapton với bề dày

Tinh thể germanium đặt trong một hộp kín bằng nhôm và ghép cách điện với que tản nhiệt

PC (77 K ) nhằm giảm tối thiểu ảnh hưởng nhiễu do dao động

0 đến bình chứa nitrogen lỏng -196 P

bằng đồng nhưng vẫn đảm bảo sự tản nhiệt tốt. Que tản nhiệt sẽ dẫn nhiệt từ tinh thể germanium

nhiệt trong tinh thể germanium và các linh kiện điện tử của tiền khuếch đại.

Hộp kín bằng nhôm có bề dày 2,7 mm ở chỗ dày nhất và 0,76 mm ở chỗ mỏng nhất để đảm

bảo tránh được sự hấp thụ các photon có năng lượng thấp và che chắn bức xạ hồng ngoại từ bên

ngoài vào tinh thể germanium.

Các điện cực cách điện với nhau bằng teflon và có một khoảng chân không ở dưới tinh thể.

Toàn bộ hộp kín này được đặt trong một vỏ bằng nhôm có đường kính 76,2 mm và bề dày 1,5 mm.

Khoảng chân không giữa mặt trên tinh thể germanium với mặt dưới của vỏ nhôm là 5 mm để tránh

các va chạm vào bề mặt tinh thể germanium khi lắp ráp detector. Detector HPGe GC1518 được đặt

trong buồng chì để giảm phông gamma từ môi trường.

2.1.3. Cấu trúc của các nguồn phóng xạ

Trong thực nghiệm nhiều loại nguồn phóng xạ do các hãng khác nhau sản xuất được sử dụng,

do đó cấu trúc hình học và thành phần vật liệu của chúng cũng rất đa dạng. Có loại là nguồn phóng

xạ chuẩn, hình học nguồn điểm thường dùng để hiệu chuẩn (calibration) hệ phổ kế gamma; có loại

là nguồn hỗn hợp, hình học nguồn rộng, trong đó chất phóng xạ được trộn đều với vật liệu nền như

bột đá vôi, bột zirconium silicate ...

Khi mô hình hóa hệ phổ kế gamma, việc mô phỏng nguồn phóng xạ cũng là một vấn đề rất

quan trọng, nguồn phóng xạ có nhiều loại khác nhau và cần được mô tả tỉ mỉ về cấu trúc hình học

cũng như thành phần vật liệu, từ đó mới có thể đảm bảo kết quả mô phỏng chính xác. Ở đây, chúng

137

tôi giới thiệu một nguồn phóng xạ chuẩn rất hay được sử dụng trong nghiên cứu phổ gamma là

PCs, đại diện cho phổ gamma đơn năng.

137

nguồn P

PCs của hãng Nuclear Services & Supplies - Rost GmbH đặt tại Trung tâm

Nguồn phóng xạ P

Hạt nhân TPHCM có dạng điểm đường kính 2 mm đặt trong một hốc hình giếng (giống như

collimator) của một giá đỡ bằng thép không gỉ dạng hình trụ được trình bày trong hình 2.7. Trên giá

đỡ này đầu đặt nguồn phóng xạ có dạng hình trụ chuẩn, đầu còn lại được vát phẳng ở hai mặt đối

137

diện nhằm thuận tiện trong việc lắp đặt nguồn để tiến hành thực nghiệm đo đạc. Sơ đồ phân rã của

PCs được trình bày trong hình 2.6.

đồng vị phóng xạ P

137

PCs

Hình 2.6: Sơ đồ phân rã của đồng vị phóng xạ P

Đường gạch ngang đậm: trạng thái cơ bản của hạt nhân mẹ hoặc hạt nhân con. Đường gạch ngang

nhạt: trạng thái kích thích của hạt nhân con. Cột số bên trái: spin và độ chẵn lẻ. Cột số bên phải:

137

năng lượng tính bằng MeV.

PCs của hãng Nuclear Servisces & Supplies

Hình 2.7: Cấu trúc của nguồn P

137

PCs

– Rost GmbH

Bảng 2: Các thông tin về nguồn P

137

P

Năng Cường Hoạt Nơi Ngày Tên Chu kỳ lượng độ phát độ sản xuất sản xuất nguồn bán rã (keV) xạ (%) (kBq)

PCs

30,04 năm 661,6 85,21 370 NSS, USA 30-11-1990

2.1.4. Mô phỏng phổ gamma của các nguồn phóng xạ

Các photon phát ra từ nguồn sẽ phân bố đều theo mọi hướng trong không gian. Chỉ có một

phần các photon đạt đến bề mặt detector, phần còn lại sẽ bị hấp thụ trong môi trường xung quanh hệ

phổ kế. Một photon kể từ khi phát ra từ nguồn cho đến lúc kết thúc có thể xảy ra các quá trình tương

tác với vật chất trên suốt quãng đường truyền qua của nó. Tuy nhiên chỉ có các quá trình tương tác

của photon với vật liệu bên trong thể tích germanium hoạt động mới đóng góp số đếm vào phổ

gamma. Dựa trên cơ sở các đặc điểm và chuẩn mực của chương trình MCNP5, bộ số liệu đầu vào về

cấu trúc hình học và thành phần vật liệu của buồng chì, detector và nguồn phóng xạ được đưa vào

input của chương trình MCNP5 để mô hình hoá hệ phổ kế gamma và mô phỏng phổ gamma của các

nguồn phóng xạ sao cho thời gian tính toán càng ngắn càng tốt nhưng vẫn phải đảm bảo độ tin cậy

của phổ gamma mô phỏng.

2.2. INPUT CỦA CHƯƠNG TRÌNH MCNP5

Mỗi tính toán MCNP5 cụ thể cần được cung cấp tập các số liệu đầu vào chứa đựng thông tin

liên quan đến thư viện các tiết diện và mô tả hình học vật lý của nguồn, detector và các vật liệu khác

cũng như năng lượng của gamma, các khe năng lượng (tương ứng với kênh trong phổ được đo) mà

trong đó các sự kiện được đánh giá đối với năng lượng bị mất trong thể tích detector và số các

photon được phát ra.

MCNP5 theo dõi mỗi photon khi nó truyền qua không gian và tương tác với các nguyên tử

trong các vật liệu khác nhau có mặt ở đó. Các electron và các photon thứ cấp được tạo ra trong

những tương tác này cũng được theo dõi cho đến khi toàn bộ năng lượng của chúng bị mất trong các

vật liệu khác nhau hoặc chúng thoát ra khỏi không gian vật lý được bao hàm trong mô hình.

Đối với các tương tác trong thể tích detector, MCNP5 tạo ra đánh giá số các sự kiện trong

mỗi khe năng lượng tức là nó cung cấp phổ mất mát năng lượng. Vì hệ đo không đo trực tiếp năng

lượng để lại trong detector nên phổ mô phỏng sẽ khác ở một chừng mực nào đó với phổ đo, thậm

chí nếu phổ mô phỏng không có bất kỳ sự xấp xỉ hay sai số. Đối với detector bán dẫn Ge, kiểu

detector có đặc trưng rất tuyến tính (tức là biên độ của tín hiệu từ detector tỷ lệ với năng lượng để

lại trong nó) và độ phân giải năng lượng rất tốt (tức các đỉnh quan sát được đều rất hẹp) nên sự khác

nhau này thường là rất nhỏ.

Như đã trình bày ở trên hệ phổ kế gamma gồm buồng chì, detector, nguồn phóng xạ và hệ

thống điện tử rất phức tạp. Tuy nhiên khi tiến hành mô hình hoá hệ phổ kế thì có thể bỏ qua những

phần không gian đóng góp không đáng kể vào phổ gamma mô phỏng [6], do đó chỉ cần mô tả cấu

trúc hình học và thành phần vật liệu của buồng chì, detector và nguồn phóng xạ.

Trong quá trình mô phỏng mode p được sử dụng bởi vì nguyên tố germanium có bậc số

nguyên tử Z lớn cho nên sự khác nhau giữa mode p và mode p e là không đáng kể [2]. Mặt khác mô

hình chi tiết về tương tác của photon với vật chất cũng được áp dụng, trong mô hình này ngoài việc

tính toán đối với các quá trình tương tác quan trọng như hấp thụ quang điện, tán xạ Compton (tán xạ

không kết hợp), hiệu ứng tạo cặp còn phải tính toán đối với quá trình tán xạ Thomson (tán xạ kết

hợp) và quá trình phát huỳnh quang xảy ra theo sau quá trình hấp thụ quang điện. Đối với mode p

quá trình tương tác của electron với vật chất được mô phỏng theo mô hình gần đúng TTB (thick

target bremsstrahlung) của chương trình MCNP5. Mô hình gần đúng TTB giả thiết rằng electron

được tạo thành di chuyển cùng hướng với photon tới và phát ra bức xạ bremsstrahlung ngay tức thì.

Khi photon đi xuyên qua vùng nghèo thì sẽ tạo ra các cặp hạt mang điện và được tập hợp về hai điện

cực. Thông qua bộ tiền khuếch đại nhạy điện tích, điện tích của các hạt mang điện chuyển đổi thành

xung điện áp. Xung điện áp tỉ lệ với phần năng lượng của photon được giữ lại trong detector. Khi đó

phổ phân bố độ cao xung hay còn gọi là phổ gamma mô phỏng được lấy ra bằng thẻ truy xuất kết

quả F8 của chương trình MCNP5. Khi được truy xuất bằng thẻ F8, kết quả phân bố độ cao xung

được tính bằng số đếm đối với năng lượng (chuẩn theo số quá trình photon phát ra từ nguồn tại năng

lượng đó). Ngoài ra do ảnh hưởng của ba hiệu ứng là sự giãn rộng thống kê số lượng các hạt mang

điện, hiệu suất tập hợp điện tích và đóng góp của các nhiễu điện tử [15] làm cho các quang đỉnh của

phổ gamma thực nghiệm có dạng Gauss. Do đó trong quá trình mô phỏng còn sử dụng lựa chọn

GEB (gaussian energy broadening) của thẻ FT8 đi kèm với thẻ kết quả phân bố độ cao xung F8. Với

lựa chọn GEB phổ gamma mô phỏng phù hợp tốt hơn với phổ gamma thực nghiệm. Trong phổ

gamma mô phỏng quang đỉnh được mở rộng bằng cách lấy mẫu ngẫu nhiên theo dạng hàm Gauss.

Input chuẩn được chia làm ba phần là định nghĩa ô, định nghĩa mặt và định nghĩa vật liệu.

Chúng được ngăn cách nhau bằng các dòng trống. Định nghĩa ô dựa trên các mặt biên được liên kết

lại với nhau tạo thành và được lấp đầy vật chất đồng nhất tương ứng. Định nghĩa mặt là các dạng

toàn phương liên kết tạo thành các ô. Trong định nghĩa dữ liệu cần phải khai báo nguồn, vật liệu cấu

tạo các ô, loại đánh giá cần tính toán, số hạt gieo, độ quan trọng của các ô. Một input điển hình của

chương trình MCNP5 được xây dựng để mô phỏng phổ gamma của các nguồn phóng xạ được trình

bày trong phụ lục 2. Trong đó:

Dòng 1 và 2 là các dòng tiêu đề và dòng thông báo bắt đầu khai báo thẻ ô tương ứng.

Các dòng từ 3 đến 28 khai báo các thẻ ô (cell card).

Dòng 29 là dòng thông báo bắt đầu khai báo thẻ mặt.

Các dòng từ 30 đến 70 khai báo các thẻ mặt (surface card).

Dòng 71 thông báo bắt đầu khai báo thẻ dữ liệu.

Các dòng còn lại khai báo các thẻ dữ liệu.

Cụ thể là dòng 72 mô tả mode p được sử dụng. Với mode p, quá trình vận chuyển của

electron được tính toán theo mô hình gần đúng TTB (thick target bremsstrahlung).

Dòng 95 và 88 mô tả thẻ truy xuất kết quả phân bố độ cao xung theo năng lượng F8 và thẻ xử

lý đặc biệt FT8 với lựa chọn GEB (gaussian energy broadening).

Dòng 99 mô tả kỹ thuật cắt năng lượng.

Dòng 101 và 102 mô tả điều kiện kết thúc quá trình mô phỏng gồm số photon phát ra từ

nguồn và thời gian tính toán tương ứng. Nếu trong input có các dòng bắt đầu bằng kí tự "c" thì các

dòng đó không có ý nghĩa hoặc tạm thời bỏ đi, khi chạy MCNP5 sẽ không xử lý các dòng này.

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH TÍNH TOÁN

3.1. TỔNG QUÁT VỀ CHƯƠNG TRÌNH AUT-MCNP5

Trong quá trình mô phỏng phổ gamma bằng chương trình MCNP5, người sử dụng chương

trình thường phải tiến hành những công đoạn rời rạc: tạo lập input, dùng MCNP5 để chạy input, sau

khi chương trình xuất ra file output thì người sử dụng sẽ tiếp tục quá trình lọc, tách những dữ liệu

cần thiết trong file output, vẽ phổ gamma, chuẩn phổ mô phỏng và phổ thực nghiệm để có thể so

sánh phổ gamma mô phỏng với phổ thu được từ kết quả thực nghiệm, tính toán các đại lượng liên

quan khác như diện tích đỉnh phổ, hiệu suất… Các công đoạn sau khi có file output thường được

thực hiện thủ công, vì vậy gây ra một số khó khăn cho người nghiên cứu, đặc biệt là trong những

trường hợp mà người nghiên cứu phải tiến hành chạy MCNP5 và xử lý một lượng lớn các file input

(ví dụ tính toán hiệu suất đối với các dạng hình học nguồn và mẫu khác nhau, khảo sát hiệu suất

theo năng lượng, theo khoảng cách, hiệu chỉnh trùng phùng tổng đối với gamma phân rã nhiều tầng,

hiệu chỉnh tự hấp thụ đối với hình học nguồn và mẫu thể tích,…). Chính vì vậy, chương trình AUT-

MCNP5 được xây dựng với mục đích giúp người sử dụng có thể sử dụng chương trình MCNP5 một

cách thuận tiện hơn trong bài toán mô phỏng phổ gamma, rút ngắn thời gian và giảm bớt khối lượng

công việc. Hơn nữa, việc tự động hóa quá trình tính toán còn giúp người sử dụng giảm thiểu sai sót,

đảm bảo tính chính xác của kết quả.

Chương trình AUT-MCNP5 được xây dựng trên cơ sở ngôn ngữ lập trình Fortran. Chương

trình tích hợp nhiều modun, mỗi modun của chương trình giải quyết một vấn đề khác nhau trong

quá trình tiến hành mô phỏng và xử lý phổ gamma mô phỏng. Mỗi modun đó ứng với một bước của

quá trình mô phỏng và xử lý thực tế, tuy nhiên, thời gian xử lý, tính toán được rút gọn đi rất nhiều,

USơ đồ khối chương trình

số liệu tính toán cũng đảm bảo độ chính xác cao hơn hẳn so với khi xử lý thủ công.

Bắt đầu

Nhập lựa chọn modun

Sai Lựa

h

Đúng

Modun tính toán

Hiển thị kết quả

Sai Chọn kết thúc

Chươ t ì h

Đúng

Kết thúc

Hình 3.1: Sơ đồ khối chương trình AUT-MCNP5

Dựa trên quy trình chạy MCNP5 và xử lý output thường gặp, chúng tôi xây dựng chương

trình gồm bảy lựa chọn modun tính toán và một sự lựa chọn để thoát khỏi chương trình. Mỗi modun

tính toán có một nhiệm vụ riêng.

1. Chạy MCNP5 tự động

2. Trích xuất dữ liệu từ file output

3.Trích xuất dữ liệu từ file thực nghiệm

4. Chuẩn phổ Modun tính toán

5. Tính diện tích đỉnh phổ và hiệu suất

6. Vẽ hình hệ phổ kế

7. Hình ảnh phổ gamma

Hình 3.2: Các modun tính toán của chương trình AUT-MCNP5

Hình 3.3: Cửa sổ chương trình AUT-MCNP5

Muốn sử dụng modun nào thì chọn số tương ứng, ví dụ muốn chạy MCNP5 thì nhập 1 rồi

nhấn Enter.

3.2. CÁC MODUN TÍNH TOÁN CỦA CHƯƠNG TRÌNH AUT-MCNP5

3.2.1. Modun 1 - Chạy MCNP5 tự động

Sau khi đã thiết lập các file input, nhiệm vụ tiếp theo là đưa các file input này vào chương

trình MCNP5 để chạy và xuất ra các file kết quả (file output). Quá trình chạy chương trình thường

được thực hiện thủ công bằng cách đưa lần lượt từng file input vào chương trình MCNP5. Việc này

sẽ gặp khó khăn nếu phải chạy nhiều hay rất nhiều file input (phải chờ chạy xong file này rồi tiếp

tục lặp lại thao tác để chạy file khác trong khi thời gian chạy một file input vào khoảng vài giờ đến

vài chục giờ). Vì lý do đó, chúng tôi viết chương trình chạy tự động MCNP5, chương trình này sẽ tự

động chạy các file input được chỉ định và xuất ra file output. Nhờ vậy, người sử dụng chỉ cần thực

hiện một số thao tác ban đầu mà không phải chờ đợi để lặp lại thao tác cho từng file input riêng lẻ.

Điều này rất tiện ích trong quá trình mô phỏng phổ gamma với hàng trăm, hàng ngàn file input được

đưa vào chương trình, việc chạy chương trình sẽ không bị ngắt quãng và người sử dụng có thể hoàn

toàn chủ động về mặt thời gian.

Vì thao tác “chạy chương trình MCNP5” được lặp lại nhiều lần nên trong modun này có tích

hợp chương trình con. Chương trình con “Chạy MCNP5” có nhiệm vụ quan trọng nhất là kết nối

với MCNP5 thông qua cửa sổ chương trình Fortran chính, từ đó các file input cần xử lý được tự

động đưa vào MCNP5 một cách tuần tự. Chương trình sẽ chạy liên tục cho đến khi xử lý hết số file

input mà người sử dụng yêu cầu.

USơ đồ khối chương trình

Bắt đầu

Nhập lựa chọn chạy bao nhiêu file

Sai 1 file

Đúng Nhập tên file chứa tên các file input

Nhập tên file input

Đọc lần lượt các file input

Kết nối với chương trình con chạy MCNP5

- Xuất ra file output

Kết thúc

Hình 3.4: Sơ đồ khối của chương trình “Chạy MCNP5 tự động”

USơ đồ khối của chương trình con

Bắt đầu

Kết nối chương trình Fortran và MCNP5

-> Chạy MCNP5

Xuất ra các file output

Thực hiện vòng lặp với các file input tiếp theo

Kết thúc

Hình 3.5: Sơ đồ khối của chương trình con “Chạy MCNP5 tự động”

Sơ đồ khối trên thể hiện thuật giải của chương trình, dựa vào thuật giải đó, chúng tôi viết

UĐoạn chương trình

thành đoạn chương trình như sau:

Program Chay tu dong MCNP5

use dflib

use portlib

use msflib

character*10 inputfile(100),tentaptin,ten

integer*2 N

print*,'***********************************'

print*,'* CHUONG TRINH CHAY TU DONG MCNP5 *'

print*,'***********************************'

print*,''

print*,'Ban muon chay MCNP5 bao nhieu file?'

read*,N

if(N.eq.1) then

print*,'Nhap ten file input'

read*,ten

call chayMCNP(ten)

else

print*,'Nhap ten tap tin chua ten cac file input'

read*,tentaptin

open(1,file=tentaptin)

do 1 i=1,N

read(1,'(a10)') inputfile(i)

1 enddo

do 2 j=1,N

call chayMCNP(inputfile(j))

2 enddo

goto 10

stop

endif

goto 10

UChương trình con

subroutine chayMCNP(ten)

use dflib

logical result2

character*10 ten

character*50 x

x='mcnp name='//ten//'xsdir=xsdir'

result2=systemqq(x)

return

end Đoạn chương trình trên nhằm thực hiện chạy MCNP5 tự động đối với file input được chỉ

định. Nếu muốn chạy tự động nhiều file chỉ cần thiết lập một file chứa tên tất cả các file input người

sử dụng muốn chạy. Thành công trong việc kết nối Fortran với MCNP5 sẽ là tiền đề để thiết lập một

chương trình liên tục từ chạy MCNP5, phân tích, xử lý output đến tính toán những đại lượng quan

trọng trong quá trình phân tích phổ gamma. Tất cả sẽ được kết nối với nhau và được xử lý tự động,

nhờ đó việc khảo sát những bài toán cần nhiều quá trình xử lý MCNP5 sẽ được tiến hành nhanh

chóng, chính xác và hiệu quả cao, thậm chí đối với những yêu cầu nghiên cứu trong đó phải tiến

UCửa sổ chương trình

hành phân tích phổ gamma hàng ngàn lần.

Hình 3.6: Cửa sổ chương trình “Chạy tự động MCNP5” – Nhập số file

Nếu muốn chạy MCNP5 một file, nhập 1 rồi nhấn Enter. Chương trình sẽ tiếp tục hỏi người

sử dụng tên của file input.

Hình 3.7: Cửa sổ chương trình “Chạy tự động MCNP5” – Nhập tên file input

Nhập tên file input muốn xử lý rồi nhấn Enter (ví dụ cs40g), tên file này không quá 7 ký tự,

file input phải được chép trong cùng folder chứa chương trình “Sử dụng hiệu quả MCNP5”. File

output tạo ra trong folder sẽ có tên “cs40go”.

Nếu muốn chạy nhiều file input, tạo một file chứa tên các file input, trong file này có thể

chứa nhiều hơn số file cần chạy. Ví dụ tạo một file có tên “fileinput” trong đó ghi tên 20 file input

u1, u2, u3,…, u20 (xuống dòng để ngăn cách tên các file).

Hình 3.8: Cửa sổ chương trình “Chạy tự động MCNP5” – Nhập tên tập tin chứa tên các file input

Trong cửa sổ trên nhập tên “fileinput” và nhấn Enter. Sau khi chạy chương trình, sẽ có ba file

output được tạo thành có tên là u1o, u2o và u3o.

3.2.2. Modun 2 - Trích xuất dữ liệu từ file output

Sau khi đã có được file output, người nghiên cứu thường chỉ cần lấy ra một số dữ liệu nhất

định. Trong vấn đề mô phỏng phổ gamma, những dữ liệu cần quan tâm gồm có số đếm tương ứng

với các kênh năng lượng (đối với MCNP5, số đếm này thể hiện dưới dạng phân bố độ cao xung vi

phân), tổng số hạt đầu vào để khảo sát, tổng số hạt để lại năng lượng khác 0 trong detector, tổng giá

USơ đồ khối chương trình

trị độ cao xung năng lượng.

Bắt đầu

Nhập lựa chọn trích xuất dữ liệu từ bao nhiêu file output

Sai

1 file

Đúng

Nhập file chứa các tên file output Nhập tên file output

Đọc lần lượt các file output

Trích xuất dữ

liệu từ file output Kết nối chương trình con trích

xuất dữ liệu từ file output

Xuất ra các file dữ liệu từ output

Kết thúc

Hình 3.9: Sơ đồ khối chương trình “Trích xuất dữ liệu từ file output”

Trong trường hợp chỉ xử lý một file output, chương trình sẽ trích xuất dữ liệu trực tiếp.

Trong trường hợp cần xử lý nhiều file output, chương trình sẽ kết nối với chương trình con để tiến

hành xử lý lần lượt từng file output.

USơ đồ khối của chương trình con

Bắt đầu

Mở file output

Xác định vị trí dòng bắt đầu đọc dữ liệu

Đọc các dòng dữ liệu được xác định, mỗi dòng lấy ra ba giá trị

tương ứng với kênh năng lượng, số đếm và sai số

Đọc dòng được xác định, lấy ra giá trị tổng số đếm ứng với tất cả

các kênh (dưới dạng phân bố độ cao xung năng lượng) có trừ đi

Xác định vị trí dòng, vị trí cột và lấy ra

tổng số hạt khảo sát

Xác định vị trí dòng, vị trí cột và lấy ra giá trị

tổng độ cao xung năng lượng

Xác định vị trí dòng, vị trí cột và lấy ra tổng số hạt

để lại năng lượng khác 0 trong detector

Thực hiện vòng lặp với các file output tiếp theo

Kết thúc

Hình 3.10: Sơ đồ khối chương trình con“Trích xuất dữ liệu từ file output”

Trong chương trình “Trích xuất dữ liệu từ file output”, chương trình chính sẽ đọc tên các file

output cần lấy dữ liệu và đưa vào chương trình con. Chương trình con có nhiệm vụ đọc từng file

output và xác định chính xác vị trí các số liệu cần lấy ra. Vì các file output có cùng định dạng nên để

xác định vị trí các dữ liệu này, chương trình sẽ xác định vị trí dòng, vị trí cột bắt đầu của dữ liệu và

UĐoạn chương trình

độ dài dữ liệu.

Program trichxuatoutput

use dflib

use portlib

use msflib

character*10 tenfile,out(100),tenoutput,filexuat

character*13 strnps

real*4 e2(100,10000),de(100,10000),re(100,10000),nat22,

+ nat(100),toteng(100),toteng22,e22(10000),

+ de22(10000),re22(10000)

integer nht(100),nps(100),T,nht22,nps22

character*1 aa2,bb2,cc2

print*,'************************************************'

print*,'*CHUONG TRINH TRICH XUAT DU LIEU TU FILE OUTPUT*’

print*,'************************************************'

print*,''

print*,'Ban muon trich xuat du lieu bao nhieu file?'

read*,T

select case(T)

case(1)

print*,'Nhap ten file output'

read*,tenoutput

print*,'Nhap ten file xuat ra'

read*,filexuat

open(15,file=tenoutput,form='formatted')

bb2='e'

cc2='y'

101 if(.not.eof(15)) read(15,'(130a1)') (dummy(l),l=1,130)

if((dummy(7).ne.bb2).or.(dummy(12).ne.cc2)) goto 101

do 1515 k=1,8194

1515 read(15,'(2en14.3,f7.4)') e22(k),de22(k),re22(k)

read(15,'(14a1,en14.3,7a1)')

+(dum(l),l=1,14),toteng22,(dum(l),l=1,7)

toteng22=toteng22-de22(1)-de22(2)

aa2='1'

2020 if(.not.eof(15)) read(15,'(130a1)') (dummy(l),l=1,130)

if(dummy(1).ne.aa2) goto 2020

write(strnps,*) (dummy(l),l=91,102)

read(strnps,'(i13)') nps22

do 2525 k=1,2

2525 read(15,'(130a1)') (dummy(l),l=1,130)

read(15,'(36a1,en12.3,54a1)')

+(dum(l),l=1,36),nat22,(dum(l),l=1,54)

do 3535 k=1,3

3535 read(15,'(130a1)') (dummy(l),l=1,130)

read(15,'(36a1,i12)') (dum(l),l=1,36),nht22

close(15)

open(99,file=filexuat)

write(99,7373)

7373 format('dien tich dinh nang luong toan phan:')

write(99,'(f12.7)') toteng22

write(99,7474)

7474 format('tong phan bo do cao xung nang luong:')

write(99,'(f12.7)') nat22

write(99,7575)

7575 format('tong so hat khao sat ban dau:')

write(99,'(i12)') nps22

write(99,7676)

7676 format('tong so hat bo nang luong khac 0 trong detector:')

write(99,'(i12)') nht22

write(99,787)

787 format('Kenh nang luong (MeV) Do cao xung Sai so')

do 7272 k=1,8194

7272 write(99,6868) e22(k),de22(k),re22(k)

6868 format(f12.7,5x,en14.3,7x,f7.4)

close(99)

goto 10

case(2:)

print*,'Nhap file chua ten cac file output'

read*,tenfile

open(8,file=tenfile)

do 66 j=1,T

read(8,'(a10)') out(j)

66 enddo

do 69 j=1,T

call extract_cal(j,out,e2,de,re,toteng,nat,nht,nps)

69 enddo

do 71 j=1,T

write(ordnum,'(i0)') j

open(9,file='extract'//ordnum,status='unknown')

write(9,73)

73 format('dien tich dinh nang luong toan phan:')

write(9,'(f12.7)') toteng(j)

write(9,74)

74 format('tong phan bo do cao xung nang luong:')

write(9,'(f12.7)') nat(j)

write(9,75)

75 format('tong so hat khao sat ban dau:')

write(9,'(i12)') nps(j)

write(9,76)

76 format('tong so hat bo nang luong khac 0 trong detector:')

write(9,'(i12)') nht(j)

write(9,78)

78 format('Kenh nang luong (MeV) Do cao xung Sai so')

do 72 k=1,8194

72 write(9,68) e2(j,k),de(j,k),re(j,k)

68 format(f12.7,5x,en14.3,7x,f7.4)

71 close(9)

end select

goto 10

stop UChương trình con

Subroutine extract_cal(j,out,e2,de,re,toteng,nat,nht,nps)

implicit real*8 (a-h,o-z)

save

character*10 out(100)

character*1 dummy(200),dum(200),aa,bb,cc

character*13 strnps

real*4 e2(100,10000),de(100,10000),re(100,10000),

+ toteng(100),nat(100)

integer nht(100),nps(100)

open(5,file=out(j),form='formatted')

bb='e'

cc='y'

10 if(.not.eof(5)) read(5,'(130a1)') (dummy(l),l=1,130)

if((dummy(7).ne.bb).or.(dummy(12).ne.cc)) goto 10

do 15 k=1,8194

15 read(5,'(2en14.3,f7.4)') e2(j,k),de(j,k),re(j,k)

read(5,'(14a1,en14.3,7a1)') (dum(l),l=1,14),

+ toteng(j),(dum(l),l=1,7)

toteng(j)=toteng(j)-de(j,1)-de(j,2)

aa='1'

20 if(.not.eof(5)) read(5,'(130a1)') (dummy(l),l=1,130)

if(dummy(1).ne.aa) goto 20

write(strnps,*) (dummy(l),l=91,102)

read(strnps,'(i13)') nps(j)

do 25 k=1,2

25 read(5,'(130a1)') (dummy(l),l=1,130)

read(5,'(36a1,en12.3,54a1)') (dum(l),l=1,36),

+ nat(j),(dum(l),l=1,54)

do 35 k=1,3

35 read(5,'(130a1)') (dummy(l),l=1,130)

read(5,'(36a1,i12)') (dum(l),l=1,36),nht(j)

close(5)

return

end

UCửa sổ chương trình

Hình 3.11: Cửa sổ chương trình “Trích xuất dữ liệu từ file output”-Nhập số file

Nhập số file output muốn lấy dữ liệu.

Hình 3.12: Cửa sổ chương trình “Trích xuất dữ liệu từ file output” - Nhập

tên file output

Nếu người sử dụng muốn trích xuất dữ liệu từ một file output, chương trình sẽ hỏi tên file

này. Trong ví dụ trên, tên file output được nhập vào là cs40go. Cần chú ý là tên file này chứa không

quá 10 ký tự.

Hình 3.13: Cửa sổ chương trình “Trích xuất dữ liệu từ file output” - Nhập

tên file xuất ra

Người sử dụng nhập tên file chứa các dữ liệu trích xuất được từ file output. Nếu muốn file

xuất ra có định dạng là file gì thì chọn phần mở rộng tương ứng. Ví dụ muốn file xuất ra có định

dạng file Excel thì nhập tên file xuất ra có phần mở rộng là “.xls” (cs.xls).

Hình 3.14: Cửa sổ chương trình “Trích xuất dữ liệu từ file output”-Nhập file chứa tên các file

output

Trong trường hợp người sử dụng muốn trích xuất dữ liệu nhiều file output thì liệt kê tên các

file output cần lấy dữ liệu vào một file, ví dụ “fileoutput”, xuống dòng để ngăn cách các tên file

output. Nhập “fileoutput” vào dấu nháy trên, khi đó chương trình sẽ trích xuất dữ liệu từ các file

output và xuất ra các file extract1, extract2, extract3,… Tên các file xuất đã được mặc định theo thứ

tự các file output được liệt kê. Người sử dụng có thể đổi tên các file xuất ra sau khi đã chạy xong

chương trình.

3.2.3. Modun 3 - Trích xuất dữ liệu từ file thực nghiệm

Để xác định độ tin cậy của kết quả mô phỏng bằng chương trình MCNP5, cần phải tiến hành

so sánh với kết quả thu được từ thực nghiệm. File kết quả ứng với mỗi chương trình hiển thị số liệu

trong thực nghiệm có định dạng cố định, do đó có thể thiết lập chương trình sắp xếp lại dữ liệu để

USơ đồ khối chương trình

tiện lợi cho việc tính toán và vẽ phổ gamma sau đó.

Nhập lựa chọn xử lý phổ thực nghiệm nào Bắt đầu

Đúng Sai

Chọn 1 (Phổ TT hạt nhân)

Nhập lựa chọn xử lý bao nhiêu file Nhập lựa chọn xử lý bao nhiêu file

Sai Sai

1 file 1 file

Đúng Nhập tên file Đúng Nhập tên file

chứa tên các file chứa tên các file Nhập tên file Nhập tên file thực nghiệm thực nghiệm Đọc lần lượt các Đọc lần lượt các file thực nghiệm file thực nghiệm

Kết nối với chương trình Kết nối với chương Xử lý file Xử lý file con xử lý phổ TT hạt nhân trình con xử lý phổ Bộ

Xuất file kết quả Kết thúc

USơ đồ khối chương trình con

Hình 3.15: Sơ đồ khối chương trình “Trích xuất dữ liệu từ file thực nghiệm”

Bắt đầu

Mở file kết quả thực nghiệm

- Bỏ các dòng không chứa dữ liệu trong file kết quả thực nghiệm

Xác định vị trí bắt đầu đọc dữ liệu

Xác định vị trí, khoảng cách các cột dữ liệu để đọc

dữ liệu (số đếm ứng với các mức năng lượng)

Định dạng dữ liệu xuất ra

Thực hiện vòng lặp với các file kết quả thực nghiệm tiếp theo

Kết thúc

Hình 3.16: Sơ đồ khối chương trình con “Trích xuất dữ liệu từ file thực nghiệm”

Các file kết quả thực nghiệm từ các chương trình khác nhau cũng như các hệ đo khác nhau sẽ

có định dạng khác nhau. Trong mỗi file, số đếm ứng với các kênh năng lượng được chia thành nhiều

cột dữ liệu với những khoảng cách nhất định giữa các cột dữ liệu đó. Trong chương trình này, chúng

tôi chia ra hai trường hợp là file thực nghiệm có định dạng khác nhau từ hệ phổ kế của Trung tâm

Hạt nhân TPHCM và từ Phòng thí nghiệm của Bộ môn Vật lý hạt nhân Đại học Khoa học tự nhiên

UĐoạn chương trình

TPHCM.

Program trichxuatthucnghiem

use dflib

use portlib

use msflib

character*1 dummy(200),aa

character*6 dumm,datfile2(100),ordnum2

dimension ib(10000),e(10000),ic(10000),ec(10000)

character*20 ten1,ten2,tentaptin3,ten4,ten5,tentaptin33,

+ datfile2(100),datfile(100)

integer N3,M,L3

character*4 datfile(100),ordnum

dimension ia(100,10000),id(100,10000)

integer nia(100,10000),nid(100,10000)

print*,'***************************************************'

print*,'CHUONG TRINH TRICH XUAT DU LIEU TU FILE THUC NGHIEM'

print*,'***************************************************'

print*,''

print*,'Ban muon xu ly pho thuc nghiem nao?'

print*,'1- Trung tam Hat nhan TP.HCM'

print*,'2- Bo mon VLHN Dai hoc KHTN'

read*,N3

if(N3.eq.1) then

print*,'Ban muon xu ly bao nhieu file?'

read*,M

if(M.eq.1) then

print*,’Nhap ten file thuc nghiem’

read *,ten1

open(3,file=ten1,form='formatted')

print*,’Nhap ten file xuat ra’

read *,ten2

open(33,file=ten2)

aa=':'

do i=1,9

read(3,'(76a1)')(dummy(j),j=1,76)

enddo

i=0

3 if (.not.eof(3)) then

read(3,'(6a1)') (dummy(j),j=1,6)

if(dummy(6).ne.aa) goto 3

backspace (3)

read(3,33) dumm,(ib(i+l), l=1,5)

i=i+5

max=i

goto 3

goto 10

else

do i=1,max

e(i) = .005616 + 0.000236*(i-1)

write(33,333) e(i),ib(i)

enddo

goto 10

endif

3030 format(a1)

33 format(a6,5i13)

333 format(f12.6,5i13)

else

print*,'Nhap file chua ten cac file thuc nghiem'

read*,tentaptin3

open(333,file=tentaptin3)

do 3333 i=1,M

read(333,'(a4)') datfile(i)

3333 enddo

do 3331 j=1,M

call extract(j,datfile,ia)

do 30 k=1,8195

30 nia(j,k)=ia(j,k)

3331 enddo

open(3333,file='allspecs',status='unknown')

do 300 k=1,8195

300 write(3333,'(25i10)') (nia(j,k),j=1,M)

do 3000 i=1,M

write(ordnum,'(i0)') i

open(33333,file='extru'//ordnum,status='unknown')

do 31 k=1,8195

31 write(33333,'(i25)') nia(i,k)

3000 close(33333)

goto 10

endif

else

print*,'Ban muon xu ly bao nhieu file?'

read*,L3

if(L3.eq.1) then

print*,’Nhap ten file thuc nghiem’

read*,ten4

open(30,file=ten4,form='formatted')

print*,’Nhap ten file xuat ra’

read*,ten5

open(300,file=ten5)

aa=':'

do i=1,14

read(30,'(76a1)')(dummy(j),j=1,76)

enddo

i=0

303 if (.not.eof(30)) then

read(30,'(6a1)') (dummy(j),j=1,6)

if(dummy(6).ne.aa) goto 303

backspace (30)

read(30,330) dumm,(ic(i+l), l=1,8)

i=i+8

max=i

goto 303

else

do i=1,max

ec(i) = 0.0062 + (1.9485-0.0062)/8192*(i-1)

write(300,3003) ec(i), ic(i)

enddo

goto 10

endif

3330 format(a1)

330 format(a6,8i8)

3003 format(f12.6,8i8)

else

print*,'Nhap file chua ten cac file thuc nghiem'

read*,tentaptin33

open(7,file=tentaptin33)

do 7 i=1,L3

read(7,'(a6)') datfile2(i)

7 enddo

do 77 j=1,L3

call extract2(j,datfile2,id)

do 70 k=1,8192

70 nid(j,k)=id(j,k)

77 enddo

open(8,file='allspecs2',status='unknown')

do 700 k=1,8192

700 write(8,'(25i10)') (nid(j,k),j=1,L3)

do 770 i=1,L3

write(ordnum2,'(i0)') i

open(9,file='extruBM'//ordnum2,status='unknown')

do 707 k=1,8192

707 write(9,'(i25)') nid(i,k)

770 close(9)

goto 10

endif

endif

stop UChương trình con

1. Đoạn chương trình xử lý Phổ Trung tâm Hạt nhân TPHCM

subroutine extract(j,datfile,ia)

character*4 datfile(100)

character*1 dummy(76), aa

character*6 dumm

dimension ia(100,10000),e(10000)

open(3,file=datfile(j),form='formatted')

aa=':'

2 do i=1,9

read(3,'(76a1)')(dummy(l),l=1,76)

enddo

i=0

11 if (.not.eof(3)) then

read(3,'(6a1)') (dummy(l),l=1,6)

if(dummy(6).ne.aa) goto 11

backspace (3)

read(3,111) dumm,(ia(j,i+m), m=1,5)

i=i+5

max=i

goto 11

endif

101 format(a1)

111 format(a6,5i13)

301 format(f12.6,5i13)

close(3)

return

end

2. Đoạn chương trình xử lý Phổ của Phòng thí nghiệm Bộ môn Vật lý hạt nhân Đại học Khoa

học tự nhiên TPHCM

subroutine extract2(j,datfile2,id)

character*6 datfile2(100)

character*1 dummy(76), aa

character*6 dumm

dimension id(100,10000)

open(6,file=datfile2(j),form='formatted')

aa=':'

6 do i=1,14

read(6,'(76a1)')(dummy(l),l=1,76)

enddo

i=0

66 if (.not.eof(6)) then

read(6,'(6a1)') (dummy(l),l=1,6)

if(dummy(6).ne.aa) goto 66

backspace (6)

read(6,660) dumm,(id(j,i+m), m=1,8)

i=i+8

max=i

goto 66

endif

606 format(a1)

660 format(a6,8i8)

666 format(f12.6,8i8)

close(6)

return

end

UCửa sổ chương trình

Hình 3.17: Cửa sổ chương trình “Trích xuất dữ liệu từ file thực nghiệm”

Chọn phổ thực nghiệm của Trung tâm Hạt nhân TPHCM hay Phòng thí nghiệm Bộ môn Vật lý

hạt nhân Đại học Khoa học tự nhiên TPHCM bằng cách nhập 1 hoặc 2. Các thao tác sau đó hoàn toàn

tương tự nhau ở cả hai trường hợp. Trong luận văn này, chúng tôi chỉ giới thiệu cách trích xuất dữ liệu

từ file thực nghiệm của Trung tâm Hạt nhân TPHCM.

Hình 3.18: Cửa sổ chương trình “Trích xuất dữ liệu từ file thực nghiệm”- Nhập số file cần xử lý

Nhập số file thực nghiệm muốn xử lý.

Hình 3.19: Cửa sổ chương trình “Trích xuất dữ liệu từ file thực nghiệm”-Nhập tên file thực

nghiệm”

Nếu chỉ xử lý một file thì nhập tên file đó.

Hình 3.20: Cửa sổ chương trình “Trích xuất dữ liệu từ file thực nghiệm”-Nhập tên file xuất ra”

Nhập tên file kết quả xử lý xuất ra (nếu muốn file có định dạng Excel thì chọn phần mở rộng

là .xls).

Trong file thực nghiệm ban đầu, các số liệu được sắp xếp thành nhiều cột, gây bất tiện cho

quá trình tính toán và vẽ phổ gamma. Do đó trong file kết quả thu được các số liệu sẽ được sắp xếp

lại thành hai cột. Cột thứ nhất là kênh năng lượng, cột thứ hai là số đếm tương ứng.

Hình 3.21: Cửa sổ chương trình “Trích xuất dữ liệu từ file thực nghiệm”-Nhập file chứa tên các

file thực nghiệm”

Trong trường hợp người sử dụng cần trích xuất dữ liệu thực nghiệm từ nhiều file, chương

trình sẽ hỏi file chứa tên các file thực nghiệm. Ở ví dụ này, người sử dụng viết tên 3 file thực

nghiệm cần xuất dữ liệu vào một file (xuống dòng để ngăn cách) và đặt tên là thucnghiem. Chương

trình sẽ xuất ra các file kết quả extru1, extru2, extru3 tương ứng.

3.2.4. Modun 4 - Chương trình chuẩn phổ mô phỏng và phổ thực nghiệm

Đối với người sử dụng các chương trình mô phỏng nói chung cũng như MCNP5 nói riêng,

việc so sánh phổ mô phỏng và phổ thực nghiệm là một bước không thể thiếu. Bước này nhằm kiểm

tra tính hiệu lực, độ tin cậy của chương trình mô phỏng trong bài toán về phổ gamma cũng như

kiểm tra độ tin cậy của các thông tin do nhà sản xuất cung cấp. Việc mô phỏng được thực hiện với

cấu hình hệ phổ kế tương tự như thực nghiệm.

Trong phổ thực nghiệm, khi bức xạ đi vào detector thì sẽ ghi nhận được các xung điện thế có

biên độ tỷ lệ với năng lượng của bức xạ tới trong vùng nhạy. Sau khi qua bộ tiền khuếch đại và

khuếch đại chính đến bộ đếm MCA các xung có biên độ khác nhau được sắp xếp vào các kênh khác

nhau. Xung có biên độ cao hơn được xếp vào vị trí kênh cao hơn, trong file kết quả thực nghiệm, ở

mỗi kênh sẽ thể hiện số đếm cho biết có bao nhiêu xung năng lượng có biên độ ứng với kênh này.

Tuy nhiên trong phổ mô phỏng, năng lượng ghi nhận được hiển thị dưới dạng độ cao xung vi phân.

Vì vậy, để có thể so sánh phổ mô phỏng và phổ thực nghiệm, cần một thao tác gọi là “chuẩn phổ”.

Trong quá trình chuẩn phổ này, chúng tôi tiến hành chuyển phân bố độ cao xung vi phân trong file

mô phỏng thành dạng số đếm tương ứng với file thực nghiệm bằng cách chọn một đỉnh năng lượng

làm chuẩn.

Đỉnh năng lượng được chọn để chuẩn phổ thường là đỉnh năng lượng có giá trị lớn nhất trong

phổ gamma. Chọn lựa này nhằm hạn chế tối đa ảnh hưởng bởi các nền Compton của các quang đỉnh

khác.

USơ đồ khối chương trình

Bắt đầu

Nhập tên file trích xuất dữ liệu từ output

Nhập tên file trích xuất dữ liệu từ thực nghiệm

Nhập đỉnh năng lượng chuẩn phổ

Nhập tên file kết quả xuất ra

Mở file output đã sắp xếp, xác định vị trí, lấy ra các giá trị độ cao xung năng lượng

Mở file thực nghiệm, lấy ra các giá trị số đếm

Xác định vị trí ứng với năng lượng chuẩn phổ đã được nhập vào. Rút ra xung năng lượng vi phân tương ứng

Tính tỷ số giữa số đếm và giá trị xung năng lượng vi phân

Chuyển các giá trị độ cao xung sang số đếm bằng cách

nhân mỗi giá trị xung năng lượng vi phân với tỷ số trên

Hiển thị file kết quả

Kết thúc

Hình 3.22: Sơ đồ khối chương trình “Chuẩn phổ”

UĐoạn chương trình

Program Chuanpho

use portlib

use msflib

use dflib

character*10 outfile,thucnghiem,kqchuanpho

character*1 dum(200)

real*4 zjcount(10000),de4(10000),ratio,zde(10000),

+e4(10000),min4,hieu4(10000),dinhnlcp

integer jcount(10000),dinh

print*,'****************************************************'

print*,'*CHUONG TRINH CHUAN PHO MO PHONG VA PHO THUC NGHIEM*'

print*,'****************************************************'

print*,''

print*,'Nhap ten file trich xuat du lieu tu output '

read*,outfile

print*,'Nhap ten file trich xuat du lieu tu thuc nghiem'

read*,thucnghiem

print*,'Nhap dinh nang luong chuan pho(keV)'

read*,dinhnlcp

print*,'Nhap ten file ket qua xuat ra'

read*,kqchuanpho

open(4,file=outfile)

do 46 k=1,9

46 read(4,'(40a1)')(dum(l),l=1,40)

do 4 k=1,8194

4 read(4,'(16a1,en12.3,65a1)')(dum(l),l=1,16),de4(k),

+(dum(l),l=1,65)

open(40,file=thucnghiem)

do 40 k=1,8194

40 read(40,43)(dummy(l),l=1,20),jcount(k),

+(dummy(l),l=1,65)

43 format(20a1,i5,65a1)

do 415 k=1,8194

415 hieu4(k)=abs(e4(k)*1000-dinhnlcp)

min4=hieu4(1)

dinh=1

do 405 k=2,8194

if (min4.gt.hieu4(k)) then

min4=hieu4(k)

dinh=k

405 endif

ratio=jcount(dinh)/de4(dinh)

do 41 k=1,8194

41 de4(k)=de4(k)*ratio

open(41,file=kqchuanpho,status='unknown')

write(41,48)

48 format('Dinh nang luong chuan pho (keV):')

write(41,'(f12.4)') e4(dinh)*1000

write(41,47)

47 format('Kenh nang luong(MeV) So dem thuc nghiem So dem + mo

phong')

do 42 k=1,8194

42 write(41,'(f12.7,10x,i5,10x,f12.0)')e4(k),jcount(k),de4(k)

close (41)

goto 10

stop

UCửa sổ chương trình

Hình 3.23: Cửa sổ chương trình “Chuẩn phổ” - Nhập tên file trích xuất dữ liệu từ output

Nhập tên file output đã trích xuất và sắp xếp dữ liệu, file này là kết quả của modun 2: “Trích

xuất dữ liệu từ file output”.

Hình 3.24: Cửa sổ chương trình “Chuẩn phổ” - Nhập tên file trích xuất dữ liệu từ thực nghiệm

Nhập tên file thực nghiệm đã trích xuất và sắp xếp dữ liệu, file này là kết quả của modun 3:

“Trích xuất dữ liệu từ file thực nghiệm”

Hình 3.25: Cửa sổ chương trình “Chuẩn phổ”- Nhập đỉnh năng lượng chuẩn phổ

137

PCs, đỉnh năng lượng ở mức 661,66 keV.

Chọn đỉnh năng lượng muốn chuẩn phổ, lấy đơn vị là keV. Đó thường là đỉnh năng lượng có

giá trị lớn nhất của phổ. Đối với P

Hình 3.26: Cửa sổ chương trình “Chuẩn phổ”- Nhập tên file kết quả xuất ra

Nhập tên file kết quả chuẩn phổ xuất ra. Trong file này, ứng với mỗi kênh năng lượng sẽ là

số đếm tương ứng của phổ thực nghiệm và phổ mô phỏng, từ đó, người sử dụng dễ dàng xác định

độ tin cậy của chương trình mô phỏng dựa trên so sánh hai số đếm này. Kết quả này cũng được sử

dụng để vẽ đồ thị biểu diễn phổ gamma mô phỏng và phổ gamma thực nghiệm. Đây là hình ảnh so

sánh rất trực quan và sẽ được nghiên cứu kỹ hơn trong modun 7 của chương trình.

3.2.5. Modun 5 - Chương trình tính diện tích đỉnh phổ và hiệu suất

Một trong những vấn đề thường được nghiên cứu là tính diện tích đỉnh phổ năng lượng và

hiệu suất của quá trình thực nghiệm hoặc quá trình mô phỏng. Chúng tôi thiết kế modun này nhằm

tính toán hiệu suất mô phỏng dựa trên những số liệu trích xuất được từ file output. Trong modun

này, chúng tôi chia ra hai trường hợp, tính hiệu suất đối với phổ gamma đơn năng (chỉ có một đỉnh

năng lượng) và tính hiệu suất đối với phổ gamma đa năng (chỉ xét trường hợp có hai đỉnh năng

lượng trong phổ).

Đối với một hệ phổ kế gamma cụ thể, bố trí hình học đo xác định và tại vạch năng lượng

quan tâm thì hiệu suất detector có giá trị xác định. Do đó, hiệu suất là một trong những thông số

quan trọng dùng để nghiên cứu các đặc trưng của detector, nguồn phóng xạ và hình học đo.

Trong đo đạc thực nghiệm trên hệ phổ kế gamma, khái niệm “hiệu suất” được hiểu là hiệu

suất đỉnh năng lượng toàn phổ (full energy peak effciency) được định nghĩa là tỷ số giữa tốc độ đếm

đỉnh ở năng lượng E (số đếm chia cho thời gian đo) và tốc độ phát gamma từ nguồn cũng ở năng

lượng E tương ứng.

Trong tính toán MCNP5, hiệu suất của detector được xác định bằng tỷ số giữa số photon phát

ra từ nguồn theo mọi hướng và số photon đóng góp vào quang đỉnh của phổ gamma mô phỏng.

Thực tế khi tính hiệu suất đỉnh năng lượng toàn phần của phổ gamma mô phỏng còn phải xét đến

một số yếu tố như tỷ số giữa số hạt để lại năng lượng khác 0 trong detector và tổng số hạt khảo sát,

suất phát tương ứng với mỗi đỉnh năng lượng trong trường hợp tính hiệu suất của phổ gamma đa

năng,…

USơ đồ khối chương trình

Nhập lựa chọn Bắ 2 Phổ đơn phổ gamma đơn t 1

Nhập giá trị đỉnh

Nhập suất phát tương ứng với đỉnh năng lượng 2 năng lượng (keV)

1

2 Nhập bề rộng đỉnh 1 2

Nhập tên file trích xuất

dữ liệu từ output

1

2 Nhập tên file kết quả xuất ra

1 2

Mở file trích xuất dữ liệu từ output, lấy ra

các giá trị độ cao xung năng lượng vi phân

1 2

Mở file trích xuất dữ liệu từ output, lấy ra các giá trị

tổng số hạt khảo sát, tổng số hạt để lại năng lượng

2 1 Kết nối chương

2 trình con tính

diện tích đỉnh Tính hiệu suất bằng tỷ số giữa diện tích đỉnh năng lượng trên tổng độ cao xung năng lượng vi phân, nhân với tỷ số giữa số hạt bỏ năng lượng khác 0 trong detector trên tích của tổng số hạt khảo sát và suất phát

1

Tính hiệu suất bằng tỷ số giữa diện tích đỉnh năng lượng trên tổng 2 độ cao xung năng lượng vi phân, nhân với tỷ số giữa số hạt bỏ

ổ ố

Hiển thị file kết quả Kết thúc

Hình 3.27: Sơ đồ khối chương trình “Tính diện tích đỉnh phổ và hiệu suất”

1. Đúng; 2. Sai

USơ đồ khối của chương trình con

Bắt đầu

Xác định bề rộng vùng đỉnh năng lượng

Xác định vùng xung quanh đỉnh năng lượng để tính năng lượng phông

Xác định giá trị phông năng lượng xung quanh đỉnh

Tính diện tích đỉnh năng lượng (bao gồm phông)

Tính diện tích đỉnh năng lượng đã trừ phông

Kết thúc

UĐoạn chương trình

Hình 3.28: Sơ đồ khối chương trình con “Tính diện tích đỉnh phổ và hiệu suất”

Program Tinh dien tich dinh pho va hieu suat

use portlib

use msflib

use dflib

integer phpos,phwid,l,r,lside,rside,NL,nht5,nps5

real*8 de5(8194),lsideba,rsideba,tpa,ba,

+ eff,pa,pc,nat5,e5(8194),dinhnl,min,hieu(8194),sp

character*10 outfile5,kqhieusuat

print*,'*************************************************'

print*,'*CHUONG TRINH TINH DIEN TICH DINH PHO VA HIEU SUAT*'

print*,'*************************************************'

print*,''

print*,'Pho nang luong:'

print*,'1- Don nang (mot dinh nang luong)'

print*,'2- Da nang (co hai dinh nang luong)'

read*,NL

select case (NL)

case(1)

print*,'nhap gia tri dinh nang luong (keV)'

read*,dinhnl

print*,'nhap be rong dinh'

read*,phwid

print*,'nhap ten file trich xuat du lieu tu output'

read*,outfile5

print*,'Nhap ten file ket qua xuat ra:'

read*,kqhieusuat

open(5,file=outfile5)

do 51 k=1,3

51 read(5,'(50a1)') (dum(l),l=1,50)

read(5,'(f12.4)') nat5

read(5,'(50a1)') (dum(l),l=1,50)

read(5,'(i12)') nps5

read(5,'(50a1)') (dum(l),l=1,50)

read(5,'(i12)') nht5

read(5,'(50a1)') (dum(l),l=1,50)

do 5000 k=1,8193

5000 read(5,'(f12.4,5a1,en14.3,65a1)')e5(k),

+(dum(l),l=1,5),de5(k),(dum(l),l=1,65)

do 515 k=1,8193

515 hieu(k)=abs(e5(k)*1000-dinhnl)

min=hieu(1)

phpos=1

do 505 k=2,8193

if (min.gt.hieu(k)) then

min=hieu(k)

phpos=k

505 endif

call compupa(phpos,phwid,de5,pa)

eff=pa/(nat5-de5(1)-de5(2))*nht5/nps5

pc=pa/(nat5-de5(1)-de5(2))*nht5

case(2)

print*,'nhap gia tri dinh nang luong (keV)'

read*,dinhnl

print*,'nhap suat phat tuong ung voi dinh nang luong'

read*,sp

print*,'nhap be rong dinh'

read*,phwid

print*,'nhap file output da sap xep'

read*,outfile5

print*,'Nhap ten file ket qua xuat ra:'

read*,kqhieusuat

open(5,file=outfile5)

do 512 k=1,3

512 read(5,'(50a1)') (dum(l),l=1,50)

read(5,'(f12.4)') nat5

read(5,'(50a1)') (dum(l),l=1,50)

read(5,'(i12)') nps5

read(5,'(50a1)') (dum(l),l=1,50)

read(5,'(i12)') nht5

read(5,'(50a1)') (dum(l),l=1,50)

do 5002 k=1,8193

5002 read(5,'(f12.4,5a1,en14.3,65a1)')e5(k),

+(dum(l),l=1,5),de5(k),(dum(l),l=1,65)

do 5152 k=1,8193

5152 hieu(k)=abs(e5(k)*1000-dinhnl)

min=hieu(1)

phpos=1

do 5052 k=2,8193

if (min.gt.hieu(k)) then

min=hieu(k)

phpos=k

5052 endif

call compupa(phpos,phwid,de5,pa)

eff=pa/(nat5-de5(1)-de5(2))*nht5/(nps5*sp)

pc=pa/(nat5-de5(1)-de5(2))*nht5

end select

open(50,file=kqhieusuat)

write(50,555)

555 format(' dinh NL(keV) dien tich dinh hieu suat')

write(50,'(f12.3,5x,f12.7,4x,f12.7)')1000*e5(phpos),pa,eff

close(5)

close(50)

goto 10

stop

UChương trình con

subroutine compupa(phpos,phwid,denew,pa)

integer phpos,phwid,l,r,lside,rside

real*8 denew(8194),lsideba,rsideba,tpa,ba,pa

l=phpos-phwid

r=phpos+phwid

lside=phpos-(2*phwid-9)

rside=phpos+(2*phwid-9)

lsideba=0

do 10 i=lside,l-1

10 lsideba=lsideba+denew(i)

rsideba=0

do 20 i=r+1,rside

20 rsideba=rsideba+denew(i)

tpa=0

do 30 i=l,r

30 tpa=tpa+denew(i)

ba=(lsideba+rsideba)*phwid/(phwid-9)

pa=tpa-ba

return

end UCửa sổ chương trình

Hình 3.29: Cửa sổ chương trình “Tính diện tích đỉnh phổ và hiệu suất”- Chọn phổ năng lượng

Nhập 1 nếu phổ gamma là phổ đơn năng (chỉ có một đỉnh năng lượng).

Hình 3.30: Cửa sổ chương trình “Tính diện tích đỉnh phổ và hiệu suất”- Nhập giá trị đỉnh năng

lượng

Nhập giá trị đỉnh năng lượng cần tính diện tích và hiệu suất, đơn vị là keV.

Hình 3.31: Cửa sổ chương trình “Tính diện tích đỉnh phổ và hiệu suất”- Nhập bề rộng đỉnh năng

lượng

Nhập bề rộng đỉnh năng lượng cần tính diện tích, bề rộng đỉnh thường chọn là 12 (khoảng 12

kênh năng lượng), bề rộng này là vừa đủ để tính diện tích nền đỉnh quan tâm mà không bị ảnh

hưởng bởi những đỉnh năng lượng khác liền kề.

Hình 3.32: Cửa sổ chương trình “Tính diện tích đỉnh phổ và hiệu suất”- Nhập tên file trích xuất dữ

liệu từ output

Nhập tên file output đã được trích xuất và sắp xếp dữ liệu (file kết quả thu được từ modun 2).

Hình 3.33: Cửa sổ chương trình “Tính diện tích đỉnh phổ và hiệu suất”- Nhập tên file kết quả xuất

ra

Nhập tên file kết quả xuất ra.

Trong trường hợp phổ gamma có hai đỉnh năng lượng, chương trình sẽ yêu cầu nhập thêm

suất phát tương ứng của mỗi đỉnh. Số liệu này lấy từ thư viện số liệu vật lý hạt nhân.

Hình 3.34: Cửa sổ chương trình “Tính diện tích đỉnh phổ và hiệu suất”- Nhập suất phát tương ứng

với đỉnh năng lượng

Khi nhập suất phát, nên nhập con số với độ chính xác cao như trong hình trên vì trong lúc

tính toán hiệu suất từng đỉnh năng lượng sẽ phải tính tích của tổng số hạt đầu vào để khảo sát và

suất phát, tổng số hạt đầu vào để khảo sát thường có giá trị rất lớn (vài trăm triệu đến vài trăm tỷ),

do đó một sự thay đổi nhỏ trong suất phát cũng làm thay đổi đáng kể hiệu suất tính được.

2.3.6. Modun 6 - Chương trình vẽ hệ phổ kế

Modun này có chức năng kết nối chương trình Fortran với phần mềm vẽ hệ phổ kế của

MCNP5. Khi lựa chọn modun này, cửa sổ chương trình Vised của MCNP5 sẽ xuất hiện, việc vẽ phổ

UĐoạn chương trình

sẽ được tiến hành trên cửa sổ này.

Program Vehephoke

logical result6

result6 = systemqq('D:\vised')

UCửa sổ chương trình

goto 10

Hình 3.35: Cửa sổ chương trình “Vẽ hệ phổ kế”

Trong cửa sổ này, người sử dụng mở file input cần vẽ hệ phổ kế rồi chọn Update, sau đó sẽ

được kết quả như hình 3.36.

Hình 3.36: Cửa sổ chương trình “Vẽ hệ phổ kế”- hình ảnh mặt cắt dọc hệ phổ kế

Có nhiều chức năng cho người sử dụng lực chọn để chỉnh sửa hình ảnh theo mong muốn.

2.3.7. Modun 7 - Hình ảnh phổ gamma

UĐoạn chương trình

Modun này sẽ kết nối chương trình MCNP5 với một số phổ gamma dựng sẵn.

Program Hinhanhphogamma

logical result3

result3 = systemqq('D:\Phogamma.xls')

goto 10

Khi lựa chọn modun này, người sử dụng sẽ nhận được một file định dạng Excel, file này

60

137

54

232

238

241 (P

PAm, P

PCo, P

PCs, P

PMn, P

PTh, P

PU). Đây là các nguồn điểm đặt dọc detector và cách detector

chứa dữ liệu phổ mô phỏng của một số nguồn phóng xạ thường gặp

15cm. Các dữ liệu này là kết quả thu được sau quá trình tiến hành mô phỏng (trên hệ phổ kế của

Trung tâm hạt nhân TPHCM) và xử lý phổ gamma (lập input, chạy MCNP5, xử lý output, tính toán

60

PCo

diện tích đỉnh năng lượng, hiệu suất, vẽ phổ gamma…).

2000

Hình sau minh họa phổ gamma mô phỏng của P

1332 keV

1600

1200

1173 keV

m ế đ ố S

800

BS

400

0

0.0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

DE 511 keV SE

Năng lượng (MeV)

60

PCo

60

Hình 3.37 : Phổ gamma mô phỏng của P

PCo là nguồn được sử dụng nhiều trong thực tế, đồng thời năng lượng gamma của

60

PCo có thể gây ra hầu hết các hiệu ứng đại diện cho tương tác của bức xạ gamma với

Nguồn P

nguồn P

detector. Nguồn được đo ở khoảng cách 15 cm so với bề mặt detector trong thời gian 14400 giây, số

lịch sử hạt là 900000000 nhằm loại bỏ những thăng giáng thống kê trong phổ gamma.

Trong phổ gamma trên, trục hoành biểu thị năng lượng, đơn vị MeV, trục tung là số đếm do

detector ghi nhận (dưới dạng phân bố độ cao xung). Trên nền Compton liên tục sẽ có những đỉnh

năng lượng sau:

Đỉnh năng lượng toàn phần ở 1173 keV và 1332 keV được hình thành bởi các tương tác mà ở

đó tia gamma mất toàn bộ năng lượng của nó bằng hiệu ứng quang điện hay một chuỗi các tán xạ

Compton và kết thúc cũng bằng một hiệu ứng quang điện.

Đỉnh nhỏ ở vị trí 310 keV là đỉnh thoát đôi (DE) còn đỉnh nhỏ ở vị trí 830 keV là đỉnh thoát

đơn (SE). Ở giữa hai đỉnh này là đỉnh bức xạ hủy (511 keV). Các đỉnh này hình thành do quá trình

tạo cặp.

CHƯƠNG 4: KẾT LUẬN VÀ KIẾN NGHỊ

KẾT LUẬN CHUNG

Từ những mục tiêu đặt ra ban đầu, chúng tôi đã đạt được những kết quả cụ thể sau đây:

- Đã kết nối được chương trình MCNP5 và chương trình Fortran để có thể chạy tự động các

file input được liệt kê, đây là một thành công quan trọng vì nó là bước đầu tiên để có thể thực hiện

các bước tiếp theo của quá trình dùng ngôn ngữ lập trình Fortran tăng tính hiệu quả trong việc sử

dụng chương trình MCNP5. Đối với mục tiêu này, chúng tôi đã đạt được yêu cầu đặt ra ban đầu,

chương trình có thể chạy tự động một file input hoặc nhiều file input như ý muốn mà không gặp khó

khăn gì.

- Đã xử lý được thông tin từ file output một cách tự động, trích xuất được những dữ liệu cần

thiết một cách đầy đủ và chính xác. Trong phần này, chúng tôi cũng có thể trích xuất dữ liệu từ một

file hoặc nhiều file theo ý muốn. Đối với dữ liệu có được từ các chương trình thực nghiệm, chúng

tôi cũng đã dùng Fortran để xử lý nhanh chóng các file kết quả thực nghiệm từ Trung tâm Hạt nhân

TPHCM và từ Phòng thí nghiệm bộ môn Vật lý hạt nhân Đại học Khoa học tự nhiên TPHCM.

- Đã thiết lập được chương trình chuẩn phổ thực nghiệm và phổ lý thuyết, từ đó có thể so sánh

độ tin cậy của kết quả có được từ chương trình mô phỏng MCNP5, đó cũng là những số liệu cơ sở

để tiến hành vẽ và so sánh phổ gamma mô phỏng và phổ gamma thực nghiệm.

- Xác định được diện tích đỉnh phổ gamma và hiệu suất. Đây là một trong những ứng dụng

tiếp theo của chương trình “AUT-MCNP5”. Diện tích đỉnh phổ và hiệu suất sẽ được tính dựa vào

năng lượng đỉnh, bề rộng đỉnh, suất phát được nhập vào. Chương trình tính được hiệu suất trong cả

hai trường hợp phổ gamma đơn năng và phổ gamma đa năng với hai đỉnh năng lượng.

- Kết nối nhanh với ứng dụng vẽ hình của MCNP5 bằng modun vẽ hình hệ phổ kế. Đây là

modun biểu diễn hình ảnh trực quan, giúp người sử dụng chương trình có thể tiện lợi trong việc mô

hình hóa hệ phổ kế bao gồm thiết lập, sửa chữa và cập nhật input MCNP5. Chương trình Fortran chỉ

có nhiệm vụ gọi ra cửa sổ vẽ hình này, còn những thao tác tiếp theo được tiến hành trực tiếp trên

cửa sổ chương trình Vised của MCNP5.

- Đã xây dựng modun truy xuất một số phổ gamma điển hình. Phần hình ảnh phổ gamma là

kết quả sau khi đã phân tích và trích xuất dữ liệu từ output.

KIẾN NGHỊ HƯỚNG NGHIÊN CỨU TIẾP THEO

Chương trình AUT-MCNP5 đã được phát triển và đạt được một số kết quả nhất định giúp

cho người sử dụng MCNP5 trong lĩnh vực mô phỏng phổ gamma giảm bớt các thao tác xử lý, tiết

kiệm thời gian, nâng cao độ tin cậy của các kết quả tính toán. Tuy nhiên, thời gian thực hiện của

luận văn có hạn nên chương trình AUT-MCNP5 vẫn còn một số hạn chế:

- Các modun hiện có của chương trình MCNP5 chỉ mới giải quyết một số vấn đề cơ bản của

quá trình mô phỏng phổ gamma một cách tổng quát nhất. Còn nhiều vấn đề khác như: “thiết lập

input tự động”, “tính toán và phân tích biến đổi hiệu suất theo những yếu tố khác nhau”…chúng tôi

chưa có điều kiện xử lý.

- Việc sử dụng các modun của chương trình AUT-MCNP5 vẫn còn phải tiến hành riêng lẻ

từng modun.

- Cửa sổ chương trình AUT-MCNP5 là cửa sổ DOS, giao diện chưa được bắt mắt và thuận

tiện.

Do đó, để hoàn thiện chương trình MCNP5 nên tiếp tục bổ sung:

- Một số modun có thể được nghiên cứu sâu hơn nhằm xử lý được vấn đề một cách tổng quát

hơn. Bên cạnh đó, người nghiên cứu tiếp theo có thể tiếp tục xây dựng những modun khác, xử lý

những vấn đề khác.

- Một hướng khác được đặt ra là hoàn thiện chương trình để có thể tạo nên một chương trình

xử lý liền mạch hoàn chỉnh, với những yêu cầu cụ thể cùng với file input ban đầu, chương trình sẽ

tiến hành tự động trong tất cả các bước tiếp theo và xuất ra những kết quả như mong muốn của

người sử dụng.

- Cũng có thể thiết kế giao diện đẹp mắt, dễ sử dụng hơn và nâng cấp thành một phần mềm

ứng dụng nhiều chức năng dành cho người cần sử dụng MCNP5 trong nghiên cứu.

TÀI LIỆU THAM KHẢO

UTiếng Việt

[1] Ngô Quang Huy (2006). Cơ sở vật lý hạt nhân. Nhà xuất bản Khoa học và kỹ thuật.

[2] Ngô Quang Huy, Đỗ Quang Bình, Võ Xuân Ân (2006). Mô phỏng các phổ gamma phức tạp đo

trên hệ phổ kế gamma dùng detector HPGe bằng chương trình MCNP. Tạp chí phát triển KH &

CN, ĐHQG TPHCM, Tập 9, Số 9, Trang 63-70.

[3] Ngô Quang Huy, Trần Văn Luyến và Nguyễn Văn Mai (1999). Khảo sát nền phông phóng xạ

đối với một số đặc trưng môi trường tại TP Hồ Chí Minh. Báo cáo kết quả nghiên cứu đề tài cấp

Bộ các năm 1996 – 1998, Trung tâm Hạt nhân TPHCM, Viện NLNT Việt Nam.

[4] Trần Văn Luyến (2005). Nghiên cứu nền phông phóng xạ vùng Nam bộ Việt Nam. Luận án tiến

sỹ, Trường Đại học Khoa học Tự nhiên. Đại học Quốc gia TPHCM.

[5] Trương Thị Hồng Loan (2010). Áp dụng phương pháp mô phỏng Monte Carlo để nâng cao chất

lượng hệ phổ kế gamma sử dụng detector bán dẫn HPGe. Luận án tiến sĩ, Trường Đại học Khoa

học Tự nhiên, Đại học Quốc gia TPHCM.

[6] Võ Văn Hoàng (2004). Mô phỏng trong Vật lý. Nhà xuất bản Đại học Quốc gia TPHCM.

[7] Võ Văn Hoàng (2007). Ngôn ngữ lập trình Fortran. Nhà xuất bản Giáo dục.

[8] Võ Xuân Ân (2008). Nghiên cứu hiệu suất ghi nhận của detector bán dẫn siêu tinh khiết (HPGe)

trong phổ kế gamma bằng phương pháp Monte Carlo và thuật toán di truyền. Luận án tiến sĩ,

Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia TPHCM.

[9] Võ Xuân Ân, Mai Văn Nhơn (2002). Phương pháp Monte Carlo trong mô phỏng tương tác của

bức xạ gamma với vật chất. Hội nghị Khoa học Trường Đại học Khoa học tự nhiên lần thứ III,

UTiếng Anh

ĐHQG TPHCM, Tóm tắt, Trang 99. [8]

[10] Canberra Industries, Inc (1995). Ultra Low Background Detector Systems. Canberra

P Edition.

th [11] Canberra Industries, Inc (2000). Germanium Detectors - User's Manual, 12P

Industries, Inc., Connecticut.

Canberra Industries, Inc., Connecticut.

[12] DIGITAL Visual Fortran Language Reference (1998). DIGITAL Visual Fortran Version 6.0.

Standard and Professional Editions.

[13] G. Haase, D.Tait, A. Wiechen (1995). Determination of full energy peak efficiency for

cylindrical volume sources by the use of a point source standard in gamma spectrometry.

Nucl. Instrum. and Methods in Phys. Res. A361, 240-244.

[14] J. F. Briesmeister (2000). MCNP – A General Purpose Monte Carlo N – Particle Transport

Code. Version 4C2, Los Alamos, LA.

[15] Knoll G.F. (1999). Radiation Detection and Measurement, Third Edition. John Wiley & Sons,

Inc., New York.

[16] M.A. Ludington, R.G. Helmer (2000). High accuracy measurememt and Monte Carlo

calculations of the relative efficiency curve of an HPGe detector from 433 to 2754 keV. Nucl.

Instrum. and Methods in Phys. Res. A446, 506-521.

[17] R.D.Evans (1955). The Atomic Nuclear.

[18] X-5 Monte Carlo Team (2003). MCNP - A General Purpose Monte Carlo N-Particle Transport

Code, Version 5, Volume I: Overview and Theory. Los Alamos National Laboratory, LA-UR-

03-1987.

PHỤ LỤC

UPhụ lục 1U: Ảnh chụp hệ phổ kế gamma phông thấp của Trung tâm Hạt nhân TPHCM

UPhụ lục U2: Một input điển hình của chương trình MCNP5

1

2

3

4

5

6

7

8

9

10

11

Problem - HPGe coaxial detector efficiencies and pulse height distribution c Cell cards 1 6 -8.94 -1 -23 21 imp:p,e=1 2 1 -5.35 (-55 -64 22)#1 imp:p=1 imp:e=0 $ cell detector 3 3 -0.00129 (1 -2 -22 21)#1 imp:p,e=1 4 2 -2.6989 (2 -3 -24 21):(-3 -21 20) imp:p,e=1 5 3 -0.00129 (-4 -25 24):(3 -4 -24 20):(-4 -20 16) imp:p,e=1 6 2 -2.6989 (-5 -26 25):(4 -5 -25 16):(-5 -16 15) imp:p,e=1 11 3 -0.00129((-13 -31 30):(-11 -30 26):(5 -9 -26 19)) - - - - - - - - - -#46 imp:p,e=1 $ - cs40e

12 6 -8.94 9 -10 -26 19 imp:p,e=1 13 7 -0.88 (11 -12 -30 26):(10 -12 -26 19) imp:p,e=1 - -

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

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

14 8 -7.28 12 -13 -30 19 imp:p,e=1 15 9 -11.34 (13 -14 -31 17):(5 -14 -17 16) imp:p,e=1 16 3 -0.00129 (-13 -32 31):(13 -14 -34 31) imp:p,e=1 17 8 -7.28 -13 -33 32 imp:p,e=1 18 6 -8.94 -13 -34 33 imp:p,e=1 19 10 -7.86 13 -14 -35 34 imp:p,e=1 20 9 -11.34 (-14 -36 35):(-13 -35 34) imp:p,e=1 21 10 -7.86 5 -14 -16 15 imp:p,e=1 22 8 -7.28 5 -13 -18 17 imp:p,e=1 23 6 -8.94 5 -13 -19 18 imp:p,e=1 24 0 14:36:-15 imp:p,e=0 34 15 -2.31 (1 -54 -23 22):(-54 -56 23) imp:p,e=1 $ dien cuc cay ion B 35 17 -5.05 (-55 -24 64):(55 -2 -24 22) imp:p,e=1 $ dien cuc khuech tan Li - th22a25 36 18 -1.435 -3 -81 24 imp:p,e=1 $ cua so IR mylar - cs40e 45 12 -8.92 -76 -79 78 imp:p,e=1 $ nguon Co - co40e 46 13 -1.15 (-77 -80 78)#45 imp:p,e=1 $ holder epoxy - cs40e 47 20 -1.11 -3 -57 81 imp:p,e=1 $ cua so IR kapton - cs40e c Surface cards 1 cz 0.35 2 cz 2.7 $ cs36a 3 cz 2.93 4 cz 3.66 5 cz 3.81 9 cz 7.35 10 cz 7.95 11 cz 9.45 12 cz 14.2 13 cz 15.0 14 cz 25.0 15 pz 0.0 16 pz 1.6 17 pz 10.0 18 pz 10.8 19 pz 11.6 20 pz 19.715 21 pz 19.815 22 pz 20.815 23 pz 22.515 24 pz 24.015 - - - - - - - - - - - - - - - - - - - - - - - - - -

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

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

25 pz 24.55 26 pz 24.7 30 pz 35.8 31 pz 43.6 32 pz 44.1 33 pz 44.5 34 pz 44.6 35 pz 46.2 36 pz 54.2 54 cz 0.3503 $ dien cuc khuech tan Li - i42 55 cz 2.665 $ dien cuc khuech tan Li - cs36a 56 pz 22.5153 $ dien cuc loi B - i42 57 pz 24.026 $ cua so IR - cs36a 64 pz 23.98 $ dien cuc cua so Li - cs36a 76 cz 0.05 $ hinh hoc nguon Co (2) - co40e 77 cz 1.27 $ hinh hoc nguon Co (2) - co40e 78 pz 39.7 $ hinh hoc nguon Co (2) - co40f 79 pz 39.8 $ hinh hoc nguon Co (2) - co40f 80 pz 40.34 $ hinh hoc nguon Co (2) - co40f 81 pz 24.016 $ split mylar and kapton - cs40e c Data cards mode p m1 32000 -1.0 $ Ge m2 13000 -1.0 $ Al m3 7000 -0.755 8000 -0.232 18000 -0.013 $ Atmosphere m6 29000 -1.0 $ Cu m7 1000 -0.1549 6000 -0.8451 $ Paraffin C9H20 m8 50000 -1.0 $ Sn m9 82000 -1.0 $ Pb m10 26000 -1.0 $ Fe m12 27000 -1.0 $ Co m13 1000 -0.06 6000 -0.721 8000 -0.219 $ Epoxy - cs40e m15 5000 -1.0 $ B m17 32000 -0.9 3000 -0.1 $ Ge Li - th22a24 m18 1000 -0.053 6000 -0.526 8000 -0.421 $ Mylar C10H12O6 - cs40e m20 1000 -0.028 6000 -0.720 7000 -0.077 8000 -0.175 $ Kapton C22H10N2O4 - cs40e sdef cel=45 pos=0 0 0 axs=0 0 1 ext=d1 rad=d2 erg=d3 par=2 wgt=10 ft8 geb 0.00071 0.00075 0.46493 si1 h 39.7 39.8 - - -

90

91

92

93

94

95

96

97

98

99

100

101

102

sp1 d -21 0 si2 h 0.0 0.05 sp2 -21 1 si3 l 1.17324 1.33250 sp3 d 0.999 0.999824 $ co40e f8:p 2 e8 0 .0001 .005471 8190i 1.942341 $ cs40e phys:p $ produce bremsstrahlung radiations - cs40e phys:e cut:p 2j 0 0 $ because of taking a tally of pulse height distributions cut:e nps 900000000 ctme 240 - - - - - - - - - - - - -