TÓM TẮT Trong thời công nghệ, máy tính và công nghệ thông tin phát triển mạnh mẽ việc sử dụng công nghệ để áp dụng vào khoa học vật liệu đang được phổ biến, chúng tôi đã tìm hiểu khả năn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHENIKAA
ĐỒ ÁN TỐT NGHIỆP
PHÁT TRIỂN HỆ THỐNG THU THẬP DỮ LIỆU VỀ VẬT
LIỆU VÀ ỨNG DỤNG TRÍ TUỆ NHÂN TẠO
Sinh viên: Trịnh Xuân Việt
Mã số sinh viên: 18010217 Khóa: K12
Ngành: Công Nghệ Vật Liệu Hệ: Đại học chính quy
Giảng viên hướng dẫn: TS Đặng Thế Hùng
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHENIKAA
ĐỒ ÁN TỐT NGHIỆP
PHÁT TRIỂN HỆ THỐNG THU THẬP DỮ LIỆU VỀ VẬT
LIỆU VÀ ỨNG DỤNG TRÍ TUỆ NHÂN TẠO
Sinh viên: Trịnh Xuân Việt
Ngành: Công nghệ Vật liệu Hệ: Đại học chính quy Giảng viên hướng dẫn: TS Đặng Thế Hùng
Hà Nội - Năm 2023
Trang 11TÓM TẮT
Trong thời công nghệ, máy tính và công nghệ thông tin phát triển mạnh mẽ việc
sử dụng công nghệ để áp dụng vào khoa học vật liệu đang được phổ biến, chúng tôi đã tìm hiểu khả năng phát triển hệ thống thu thập dữ liệu về vật liệu và ứng dụng trí tuệ nhân tạo bằng cách thử nghiệm với một bài toán cụ thể về tính toán
mô phỏng trong vật liệu, bài toán thay thế nguyên tử trong một cấu trúc tinh thể cho trước bằng các nguyên tử của nguyên tố khác và tìm cấu trúc bền vững Chúng tôi đã cung cấp một phương pháp xây dựng trang web tính toán dự đoán tính chất vật liệu, các dữ liệu cấu trúc vật liệu và tính toán được thực hiện được lưu lại trên một hệ cơ sở dữ liệu thống nhất
Luận văn “Nghiên cứu phát triển hệ thống thu thập dữ liệu về vật liệu và ứng dụng trí tuệ nhân tạo” gồm ba phần chính là tổng quan, phương pháp nghiên cứu và kết quả:
• Phần tổng quan giới thiệu về các hệ thống lưu trữ dữ liệu vật liệu trên thế giới và các cụ hỗ trợ cho dự án
• Phần phương pháp nghiên cứu trình bày về phương pháp để thực hiện xây dựng nghiên cứu trang web tính toán vật liệu
• Phần kết quả trình bày kết quả đạt được của dự án, cụ thể là bài toán thay thế nguyên tử nhằm dự đoán các vật liệu mới có cấu trúc tinh thể bền vững
Trang 12LỜI CAM ĐOAN
Tên tôi là: Trịnh Xuân Việt
Mã sinh viên: 18010217 Lớp: K12- Công Nghệ Vật Liệu
Ngành: Vật liệu điện tử nano
Tôi đã thực hiện đồ án tốt nghiệp với đề tài: Nghiên cứu phát triển hệ thống thu thập dữ liệu về vật liệu và ứng dụng trí tuệ nhân tạo
Tôi xin cam đoan đây là đề tài nghiên cứu của riêng tôi và được sự hướng dẫn của:
TS Đặng Thế Hùng
Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa được các tác giả khác công bố dưới bất kỳ hình thức nào Nếu phát hiện có bất kỳ hình thức gian lận nào tôi xin hoàn toàn chịu trách nhiệm trước pháp luật
GIẢNG VIÊN HƯỚNG DẪN
Trang 13LỜI CẢM ƠN
Để hoàn thành được luận văn tốt nghiệp này em xin chân thành gửi lời cảm ơn tới
TS Đặng Thế Hùng, người đã trực tiếp hướng dẫn giúp đỡ và tạo điều kiện tốt nhất cho em trong suốt quá trình làm đề tài
Em rất biết ơn các thầy cô trong khoa Khoa Học và Kỹ Thuật Vật Liệu và khoa Công Nghệ Thông Tin đã trang bị cho em những kiến thức vô cùng quý giá trong quá trình học tập và tích lũy kinh nghiệm tại đây
Em cũng xin gửi lời cảm ơn tới nhóm QMat của trường đại học Phenikaa đã giúp
em có một đề tài rất hữu ích để làm luận văn tốt nghiệp
Cuối cùng em cảm ơn đến bố mẹ, anh chị em, bạn bè những người đã luôn ở bên động viên, đồng hành, quan tâm và chia sẻ mọi khó khăn trong quá trình thực hiện
đề tài
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Trịnh Xuân Việt
Trang 14MỤC LỤC
Danh sách hình ảnh vi
Danh sách bảng biểu viii
Mở đầu 1
I Lý do chọn đề tài 1
II Mục đích 1
III Đối tượng và phạm vi nghiên cứu 2
IV Ý nghĩa của đề tài 2
1 Ý nghĩa khoa học 2
2 Ý nghĩa thực tiễn 2
Chương 1: Tổng quan về vấn đề được nghiên cứu 4
I Hệ thống lưu trữ dữ liệu về khoa học vật liệu 4
1 Hệ thống Open Quantum Materials Database (OQMD) 4
3 Materials Project 6
4 Hệ thống NOvel MAterials Discovery (NOMAD) 7
5 Materials Cloud 7
II Các công cụ hỗ trợ 8
1 Ngôn ngữ lập trình Python 9
2 Thư viện Pymatgen 10
3 Thư viện Atomic Simulation Environment 12
4 Mã nguồn AiiDA 14
5 AiiDA Lab 16
Trang 15III Đề tài nghiên cứu 18
Chương 2: Phương pháp nghiên cứu 22
I Sơ đồ quy trình tiến hành 22
II Vai trò AiiDA và AiiDA Lab 24
1 Sử dụng AiiDA 24
2 Sử dụng AiiDA Lab 26
III Các bước thực hiện của đề tài 28
Chương 3: Kết quả và thảo luận 30
I Bài toán thay thế nguyên tử 30
II Chạy và kiểm tra tính toán 33
III Chu trình chạy bài toán thay thế nguyên tử 38
Chương 4: Kết luận 42
I Kết quả 42
II Ý nghĩa 42
III Nêu ra những thiếu sót, điểm hạn chế của kết quả 42
Danh mục Tài liệu tham khảo 44
Trang 16Danh sách hình ảnh Hình 1: Trang chủ OQMD https://oqmd.org với một số chức năng điển hình 5Hình 2: Các đầu mục cơ sở dữ liệu trong Materials Project theo từng năm Nguồn:https:/materialsproject.org 6Hình 3: Số lượng tính toán năng lượng tổng cộng dựa trên DFT theo từng năm của
hệ thống NOMAD Nguồn:Ghiringhelli et al [4] 7Hình 4 : Hệ thống với 5 nội dung chính: Lưu trữ dữ liệu, Khám phá vật liệu mới, Khai thác dữ liệu đã có, Môi trường làm việc, Tài liệu học tập Nguồn: Talirz et al.[3] 8Hình 5: Python, một ngôn ngữ lập trình đa dụng, được sử dụng trong nhiều lĩnh vực khác nhau 9Hình 6: Tổng quan quy trình làm việc của pymatgen Nguồn S P Ong et al.[10] 12Hình 7: Đồ thị miêu tả một quy trình tính toán sinh bởi AiiDA Nguồn: Basic tutorial — AiiDA 2.2.2.post0 documentation 15Hình 8: Sơ đồ tổng quan về kiến trúc AiiDA 1.0 Nguồn: S P Huber et al [7] 16Hình 9: Sơ đồ cấu tạo của AiiDA Lab Nguồn: A V Yakutovich et al [10] 17Hình 10: Hình ảnh giao diện của AiiDA Lab Nguồn: https://aiidalab.github.io/ [17] 17Hình 11: Minh họa bài toán thay thế nguyên tử 19Hình 12: Mạng neuron cho mô hình học máy thiết lập mối liên hệ giữa các nguyên
tử và khả năng tương thích của chúng với nhau 20Hình 13: Quy trình tiến hành vấn đề xác định cấu trúc tinh thể bền vững 22
Trang 17Hình 14: Thông qua hệ thống máy tính ảo được cài đặt AiiDA và các công cụ hỗ trợ khác, người dùng sử dụng tập lệnh cho sẵn của AiiDA để cung cấp thông tin truy cập máy tính từ xa 25Hình 15: Hình ảnh mô tả quá trình cung cấp thông tin chương trình chạy trên máy tính từ xa 26Hình 16: Hình ảnh giao diện đồ họa được tạo bởi AiiDA Lab 27Hình 17: Tiến trình làm việc của hệ thống áp dụng cụ thể cho bài toán thay thế nguyên tử 30Hình 18: Một phần chương trình cho giao diện web của bài toán thay thế nguyên
tử 31Hình 19: Hình ảnh giao diện khi chạy code cho bài toán thay thế nguyên tử 32Hình 20: Tạo computer sử dụng dòng lệnh 33Hình 21: Quá trình tạo code với giao diện Web 34Hình 22: Quá trình tạo computer với giao diện Web 35Hình 23: Hình ảnh danh sách các tính toán đã thực hiện trên hệ thống máy tính hiệu năng cao 36Hình 24: Quá trình sử dụng dòng lệnh kiểm tra trình tính toán trên hệ thống PIAS Cluster 37Hình 25: Giao diện Web theo dõi quá trình tính toán trên hệ thống HPC 37Hình 26: Nhập cấu trúc nguyên tử ban đầu cần khảo sát 38Hình 27: Chọn lựa các nguyên tố sẽ sử dụng để thay thế nguyên tử trong cấu trúc tinh thể cho trước 39Hình 28: Dự đoán các khả năng thay thế nguyên tử 39Hình 29: Kết quả dự đoán của bài toán thay thế nguyên tử 40
Trang 18Danh sách bảng biểu Bảng 1: Danh sách các máy tính của ASE Nguồn: S P Ong et al [11] 13
Trang 19Mở đầu
I Lý do chọn đề tài
Trong thời đại công nghệ phát triển, việc mô phỏng tính toán cho vật liệu dựa trên
sự phát triển mạnh mẽ của máy tính và công nghệ thông tin hình thành một trụ cột thứ ba, mô phỏng và tính toán trong vật liệu, kết hợp với lý thuyết và thực nghiệm, trong việc phát triển các nghiên cứu về khoa học vật liệu và tìm kiếm vật liệu mới Việc mô phỏng tính toán vật liệu và xây dựng kho dữ liệu vật liệu đang được nước
Mỹ và các nước Châu Âu xây dựng nền tảng và phát triển mạnh mẽ, họ đã có những nền tảng dữ liệu vật liệu đồ sộ được phát triển lâu năm và phương pháp mô phỏng tính toán vật liệu đa dạng góp phần làm giàu cho kho lưu trữ dữ liệu vật liệu Ngược lại ở Việt Nam lĩnh vực này còn đang gặp nhiều khó khăn do nguồn nhân lực, kinh tế, còn hạn chế, do vậy việc tính toán vật liệu trong nước gây tốn thời gian và kinh tế; hệ thống kho dữ liệu vật liệu phục vụ cho khoa học chưa phát triển mạnh
Để có thể thu hẹp khoảng cách giữa Việt Nam với các nước phát triển, cụ thể trong việc phát triển các hệ thống cơ sở dữ liệu, chúng ta cần những giải pháp nhằm tận dụng các hệ thống dữ liệu mở quốc tế, cũng như cung cấp những tiện ích tới các nghiên cứu viên để họ có thể cung cấp dữ liệu hữu ích, từ đó dần dần làm giàu thêm cơ sở dữ liệu của mình, tiến tới tự chủ và đảm bảo an ninh về mặt dữ liệu Dựa trên những nền tảng về mô phỏng và lưu trữ dữ liệu đã có trên thế giới cùng với các kết quả mô phỏng tính toán cho vật liệu đã có được, chúng tôi đề xuất khởi tạo một hệ thống website phục vụ cho tính toán vật liệu và xây dựng hệ thống lưu trữ dữ liệu vật liệu
II Mục đích
Đề tài về hệ thống lưu trữ dữ liệu về vật liệu này được đặt ra nhằm các mục tiêu
cụ thể như sau:
Trang 20- Xây dựng giao diện trang web phục vụ cho tính toán vật liệu, có thể chuyển thành dạng website chạy trên máy chủ trên Internet để có thể chia sẻ tới các đối tượng người dùng khác nhau
- Giao diện có cách trình bày đơn giản, dễ hiểu, nhằm giúp người dùng dễ dàng tính toán vật liệu thông qua một số thao tác cơ bản và không phải đào tạo thêm
về công nghệ thông tin
- Trong quá trình xây dựng hệ thống, xác định được cách thức lưu trữ dữ liệu vật liệu hiệu quả
- Triển khai các ý tưởng của hệ thống thông qua việc thực hiện được một ứng dụng cụ thể
III Đối tượng và phạm vi nghiên cứu
Chúng tôi hướng đến ba đối tượng nghiên cứu:
- Xây dựng trang web thông qua nền tảng AiiDA sử dụng AiiDA Lab để tạo giao diện
- Mô phỏng tính toán thông qua hệ thống máy tính hiệu năng cao
- Hướng tới một nền tảng lưu trữ dữ liệu tính toán trong khoa học vật liệu (và
- Bước đầu định hình cách lưu trữ dữ liệu vật liệu trong một hệ cơ sở dữ liệu
- Giúp những nhà nghiên cứu tiết kiệm thời gian về tính toán vật liệu bằng cách tái sử dụng những kết quả đã có
- Cung cấp cho người dùng nói chung các công cụ để dự đoán tính chất vật liệu
2 Ý nghĩa thực tiễn
Trang 21- Giúp người dùng đơn giản hóa việc sử dụng các tính toán về tính toán trong vật liệu
- Thu thập dữ liệu cung cấp bởi người dùng để làm giàu kho dữ liệu về vật liệu (có nhiều dữ liệu thì có thể phát triển nhiều tính toán khác sau này)
Trang 22Chương 1: Tổng quan về vấn đề được nghiên cứu
I Hệ thống lưu trữ dữ liệu về khoa học vật liệu
Vấn đề lưu trữ một cách có hệ thống các dữ liệu mô phỏng tính toán nói chung và
mô phỏng tính toán trong khoa học vật liệu nói riêng đã được phát triển mạnh trong khoảng 20 năm trở lại đây Một mặt, quá trình này được thúc đẩy do các điều kiện
về máy tính và khả năng lưu trữ đã mạnh hơn rất nhiều so với những năm 1990 trở
về trước Mặt khác, sự phát triển của các công nghệ về trí tuệ nhân tạo và học máy dựa trên cơ sở dữ liệu lớn cho phép khai thác hiệu quả các dữ liệu lưu trữ Luận văn này có thể coi là một bước khởi đầu cho việc khởi tạo một hệ thống lưu trữ cho các tính toán mô phỏng và ứng dụng học máy vào trong khoa học vật liệu Hiện nay có nhiều dự án lớn trong lĩnh vực lưu trữ dữ liệu mô phỏng và tính toán, đặc biệt trong khoa học và kỹ thuật vật liệu đã được hình thành và đang tiếp tục phát triển, điển hình như OQMD [1], Materials Project [2] , Materials Cloud [3] , NOMAD [4], [5]… Do đó, tìm hiểu các hệ thống lưu trữ trên là bước đầu tiên và quan trọng để hiểu hơn vấn đề của luận văn, từ đó giúp chúng tôi định hình hướng phát triển của hệ thống một cách phù hợp Dưới đây là những nét sơ lược cho một
số hệ thống lưu trữ lớn
1 Hệ thống Open Quantum Materials Database (OQMD)
Hệ thống Open Quantum Materials Database (OQMD) [1] là một cơ sở dữ liệu về tính toán dựa trên lý thuyết phiếm hàm mật độ (density functional theory - DFT) ở quy mô lớn của khoảng 1.000.000 cấu trúc tinh thể của các vật liệu vô cơ (tới thời điểm hiện tại), đồng thời liên tục được bổ sung và cập nhật các cấu trúc mới Hệ thống OQMD được phát triển bởi nhóm nghiên cứu của Giáo sư Chris Wolverton tại Đại học Northwestern - bang Illinoise, Hoa Kỳ
Hệ thống OQMD cho phép người dùng có thể tải về máy tính toàn bộ cơ sở dữ liệu (thông qua đường dẫn https://www.oqmd.org/download/) và cung cấp cho người dùng ba lợi ích quan trọng từ việc cung cấp toàn bộ dữ liệu [1] Đầu tiên, sự sẵn
có của một tập hợp dữ liệu DFT lớn như vậy cho phép những người khác trong các
Trang 23lĩnh vực khác nhau của nghiên cứu và sản xuất có thể sử dụng và sáng tạo những kết quả mới, ngay cả khi họ không đủ tài nguyên để tạo cơ sở dữ liệu của riêng
họ Kết quả này rất phù hợp mục tiêu của Materials Genome Initiative [6], một chiến lược khởi tạo quá trình phát triển vật liệu, tìm kiếm vật liệu mới nhanh hơn với chi phí thấp hơn của chính phủ Hoa Kỳ Thứ hai, bộ dữ liệu OQMD có thể đóng vai trò hạt nhân mà từ đó các dự án bên ngoài có thể tham gia và phối hợp để cùng phát triển OQMD bằng cách cung cấp các cấu trúc điện tử được tính toán cho rất nhiều các vật liệu đã biết, cùng với tiện ích để thực hiện các phép tính mới
dễ dàng, các dự án mới từ đó có thể bắt đầu nhanh hơn Thứ ba, trên OQMD, mỗi loại vật liệu có thể có nhiều lần tính toán khác nhau, với những cách thức khác nhau Dựa trên các tính toán này, các thông số đặc trưng của từng loại vật liệu thu nhận được có độ tin cậy cao hơn
Hình 1: Trang chủ OQMD https://oqmd.org với một số chức năng điển hình
Ngoài khả năng tải dữ liệu của OQMD xuống máy tính cá nhân, người dùng có thể khai thác trực tiếp các dữ liệu này ngay trên trang chủ https://oqmd.org Hình 1 minh họa cho một số chức năng điển hình như tìm kiếm và truy xuất dữ liệu của các loại vật liệu cụ thể, xây dựng giản đồ pha cho một họ các vật liệu gần giống nhau, xác định trạng thái bền vững của vật liệu, trực quan hóa các cấu trúc vật liệu
Trang 24và các giao diện lập trình (application programming interface - API) cho phép dễ dàng truy xuất dữ liệu
3 Materials Project
Hình 2: Các đầu mục cơ sở dữ liệu trong Materials Project theo từng năm
Nguồn: https:/materialsproject.org
Bên cạnh OQMD, Materials Project [2] cũng là một dự án lớn về hệ thống cơ sở
dữ liệu mở, cung cấp các đặc trưng và thuộc tính vật liệu để đẩy nhanh quá trình tìm kiếm và phát hiện các vật liệu mới Dự án được thành lập vào năm 2011 bởi Kristin Persson (Lawrence Berkeley National Lab) với trọng tâm là nghiên cứu pin Đây là một trong những dự án cốt lõi cho chiến lược Materials Genome Initiative của chính phủ Hoa Kỳ Hệ thống sử dụng các tính toán DFT trên nhiều
hệ thống siêu máy tính khác nhau nhằm xác định cấu trúc tinh thể và các trạng thái bền vững của vật liệu, cũng như cấu trúc vùng năng lượng Hệ thống cũng cho phép sử dụng dữ liệu theo nhiều cách khác nhau, từ tương tác trực tiếp trên giao diện web cho tới khai thác dữ liệu thông qua các giao diện lập trình Hiện tại đã bao gồm các tính toán thuộc tính cho vật liệu ứng dụng trong nhiều lĩnh vực khác nhau với khoảng gần 150.000 vật liệu, 25.000 cấu trúc phân tử và trên 200.000 người dùng Hầu hết trong số 35.000 phân tử đã biết và hơn 130.000 hợp chất vô
cơ đều được đưa vào cơ sở dữ liệu (xem Hình 2)
Trang 254 Hệ thống NOvel MAterials Discovery (NOMAD)
Song song với chính phủ Hoa Kỳ, các nước trong liên minh châu Âu, cụ thể Cộng Hòa Liên Bang Đức, cũng phát triển riêng một hệ thống cơ sở dữ liệu được gọi là NOvel MAterials Discovery (NOMAD) [4], [5] Kho lưu trữ NOMAD chứa các thông tin của hơn 40 triệu phép tính tổng năng lượng (các điểm hội tụ của các cấu trúc vật liệu, cấu trúc nguyên tử ), tương đương với hàng tỷ giờ CPU NOMAD cho phép người dùng lưu trữ riêng các dữ liệu của mình trong vòng tối đa 3 năm, sau thời gian đó các dữ liệu sẽ trở thành dữ liệu mở Hình 3 cho thấy sự phát triển theo thời gian của nội dung truy cập mở của NOMAD từ 2014 tới nay Số lượng các dữ liệu đóng trên NOMAD không xác định được, tuy nhiên ước tính có 2%, tương đương với một triệu tính toán là dữ liệu đóng Ngoài ra, hệ thống NOMAD cũng có các giao diện lập trình để khai thác các dữ liệu từ các cơ sở dữ liệu khác như AFLOW, OQMD và Materials Project, từ đó làm tăng hiệu quả sử dụng của
hệ thống Mặc dù còn các vấn đề như sự không thống nhất trong cách lưu trữ dữ liệu (hay dữ liệu không đồng nhất), hệ thống NOMAD vẫn đang tiếp tục được phát triển, khắc phục các thiếu sót để hoàn thiện hơn [4], [5]
Hình 3: Số lượng tính toán năng lượng tổng cộng dựa trên DFT theo từng năm của hệ
thống NOMAD Nguồn:Ghiringhelli et al [4]
5 Materials Cloud
Trang 26Hình 4 : Hệ thống với 5 nội dung chính: Lưu trữ dữ liệu, Khám phá vật liệu mới, Khai thác dữ liệu đã có, Môi trường làm việc, Tài liệu học tập Nguồn: Talirz et al.[3]
Cuối cùng, không thể không nhắc tới hệ thống Materials Cloud [3] (https://www.materialscloud.org/home), được phát triển phần lớn bởi các trường đại học và viện nghiên cứu, trong đó đặc biệt là vai trò của Đại học Bách Khoa Lausanne, Thụy Sĩ (École Polytechnique Fédérale de Lausanne – EPFL) Đây là một hệ thống lưu trữ tích hợp khá mới nhưng có những ưu điểm và vị thế khá nổi bật trong danh sách các hệ thống cơ sở dữ liệu về vật liệu Nền tảng được thiết kế
để cho phép chia sẻ tài nguyên mở trong các quá trình tính toán và mô phỏng, được thúc đẩy bởi các ứng dụng trong mô hình hóa và mô phỏng vật liệu Materials Cloud có thể lưu trữ các dữ liệu thô và dữ liệu đã được chọn lọc ở tất cả các bước khác nhau của quá trình tính toán, lưu trữ lịch sử một quy trình tính toán cùng rất nhiều tiện ích khác (xem Hình 4) Dựa trên nền tảng là công cụ AiiDA [7], [8], Materials Cloud có thể lưu trữ liên tục quá trình tính toán, từ đó có thể biểu diễn toàn bộ quá trình tính toán mô phỏng ở dạng đồ thị, với các nút của đồ thị là từng
bộ phận dữ liệu hoặc một công đoạn tính toán nhỏ Người dùng nhờ đó có thể chạy lại quá trình tính toán ở bất kỳ bước nào của quá trình Vì vậy, với các dữ liệu lưu trữ trên Materials Cloud, người dùng có thể khai thác và sử dụng dữ liệu ở bất kỳ công đoạn nào của quá trình tính toán, từ đó có thể phát triển các tính toán mới một cách hiệu quả và tiết kiệm thời gian và chi phí Đây là những điểm khác biệt của Materials Cloud khi so sánh với các hệ thống lưu trữ khác trên thế giới
II Các công cụ hỗ trợ
Trang 27Sự phát triển đa dạng của nhiều hệ thống lưu trữ khác nhau trên thế giới dẫn tới sự hình thành của các công cụ khác nhau hỗ trợ việc xây dựng các hệ thống này Vì vậy, để phát triển một hệ thống lưu trữ của riêng một cá nhân hoặc một tổ chức, chúng ta không thể phát triển từ đầu mà hoàn toàn có thể dựa trên các công cụ đã
Được phát triển từ đầu những năm 1990, trải qua 30 năm, Python đã trở thành một ngôn ngữ đa dụng, phục vụ cho nhiều mục đích khác nhau (xem Hình 5) Người ta
có thể sử dụng Python trong lập trình web, xử lý văn bản, mô phỏng và tính toán,
Trang 28quản trị hệ thống Trong hơn 10 năm trở lại đây, trí tuệ nhân tạo và khoa học dữ liệu đang đẩy mạnh phát triển và ứng dụng
Python trở thành ngôn ngữ chủ đạo để triển khai xử lý dữ liệu, huấn luyện các mô hình học máy hoặc dự đoán kết quả học máy Điện toán đám mây cũng sử dụng Python mạnh mẽ để quản lý các container được triển khai trên các máy ảo
Những lợi ích của Python bao gồm:
- Các nhà phát triển có thể dễ dàng đọc và hiểu một chương trình Python vì ngôn ngữ này có cú pháp cơ bản giống ngôn ngữ tự nhiên
- Python giúp cải thiện năng suất làm việc của các nhà phát triển vì so với những ngôn ngữ khác, họ có thể sử dụng ít dòng mã hơn để viết một chương trình Python
- Python có một thư viện tiêu chuẩn lớn, chứa nhiều dòng mã có thể tái sử dụng cho hầu hết mọi tác vụ Nhờ đó, các nhà phát triển sẽ không cần phải viết mã
- Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau, chẳng hạn như Windows, macOS, Linux và Unix
2 Thư viện Pymatgen
The Python Materials Genomics (pymatgen) [10] là một thư viện Python mã nguồn
mở để phân tích vật liệu Một công cụ hỗ trợ chính trong các nghiên cứu tính toán vật liệu phức tạp là một bộ công cụ phần mềm hiện đại để thực hiện các dữ liệu đầu vào cho các tính toán vật liệu (ví dụ: tạo cấu trúc) và phân tích sau khi tính
Trang 29toán để thu được các thuộc tính vật liệu hữu ích từ tính toán Thư viện pymatgen được xây dựng để đáp ứng những nhu cầu này bằng 3 cách: (1) xác định các lớp đối tượng Python cốt lõi để biểu diễn dữ liệu vật liệu, (2) cung cấp một bộ phân tích cấu trúc có thể hoạt động tương thích với nhiều ứng dụng và (3) thiết lập một nền tảng mở cho các nhà nghiên cứu để hợp tác phát triển các phân tích phức tạp
về dữ liệu vật liệu thu được từ các tính toán và thử nghiệm
Thư viện pymatgen cũng cung cấp giao diện lập trình ứng dụng (Application Programming Interface – API) để thu thập dữ liệu vật liệu một cách thuận tiện theo dạng REST API (REpresentational State Transfer) trực tiếp cho hệ thống Materials Project
Hiện tại đang có nhiều mã nguồn mở phân tích vật liệu nhưng pymatgen được sử dụng phổ biến do nó có các lợi thế như:
- Pymatgen được nhiều nhà nghiên cứu sử dụng và là mã nguồn mở phân tích cung cấp năng lượng cho Material Project Phân tích mà nó tạo ra vẫn tồn tại qua sự theo dõi kỹ lưỡng hàng ngày Các lỗi được tìm thấy và sửa chữa một cách nhanh chóng Pymatgen cũng sử dụng Github Actions để tích hợp liên
đóng góp cho sản phẩm nghiên cứu nào mà bạn chỉ định
- Nhiều phương pháp số cốt lõi trong pymatgen đã được tối ưu hóa bằng cách vector hóa trong numpy/scipy Điều này có nghĩa là các thao tác tọa độ cực kỳ nhanh và trên thực tế có thể so sánh với các mã nguồn được viết bằng các ngôn ngữ khác Pymatgen cũng đi kèm với một hệ thống hoàn chỉnh để xử lý các
điều kiện biên tuần hoàn
- Pymatgen có sự đóng góp của các nhà khoa học vật liệu trên khắp thế giới Hiện họ cũng có một kiến trúc để hỗ trợ các tiện ích bổ sung giúp mở
rộng chức năng của pymatgen hơn nữa
Trang 30Hình 6: Tổng quan quy trình làm việc của pymatgen Nguồn S P Ong et al.[10]
3 Thư viện Atomic Simulation Environment
Thư viện Atomic Simulation Environment (ASE) [11] là một tập hợp các mô-đun Python nhằm thiết lập, quản lý và phân tích các mô phỏng nguyên tử ASE cung cấp các lớp Python như Atoms lưu trữ thông tin về các thuộc tính và vị trí của từng nguyên tử Theo cách này, ASE hoạt động như một ứng dụng cho các mô phỏng nguyên tử trong đó có thể dễ dàng xác định các cấu trúc nguyên tử và các tham số của mô phỏng vật liệu Đồng thời, toàn bộ tiện ích của ngôn ngữ Python
có sẵn để người dùng có thể kiểm soát một số mô phỏng có liên quan với nhau một cách chi tiết Việc thực hiện nhiều mô phỏng nguyên tử yêu cầu thông tin về năng lượng của nguyên tử, và chúng có thể được tính toán bằng một số phương pháp Một trong những cách tiếp cận phổ biến nhất là lý thuyết phiếm hàm mật độ (Density Functional Theory - DFT) [12], [13] được thực hiện theo những cách khác nhau trong hàng loạt các mã có sẵn DFT tính toán năng lượng và lực nguyên
tử bằng cách giải một tập hợp các phương trình giá trị riêng mô tả hệ thống các điện tử Một cách tiếp cận đơn giản hơn nhưng cũng gần đúng hơn là sử dụng thế năng tương tác giữa các nguyên tử (hay còn gọi là trường lực – force fields) để tính toán lực trực tiếp từ vị trí nguyên tử Khi đó, vấn đề chuyển thành bài toán của hệ các phương trình Newton Nếu giải quyết được các phương trình này, ta có thể
Trang 31nắm bắt động học của từng nguyên tử/phân tử của cấu trúc vật liệu Đó chính là nền tảng của phương pháp mô phỏng động học phân tử (Molecular Dynamics – MD) [14]
Bằng cách viết một giao diện Python đơn giản giữa ASE và DFT, ASE cho phép người dùng có thể sử dụng các chương trình DFT hoặc MD trực tiếp từ ASE Vì vậy, người dùng chỉ cần nắm cấu trúc sử dụng của ASE là có thể gọi và sử dụng rất nhiều gói phần mềm khác nhau mà không phải học cách sử dụng của từng phần mềm cụ thể Nhờ đó người dùng có thể khai thác thế mạnh của mỗi phần mềm mô phỏng Hiện tại ASE đã có giao diện cho hơn 33 phần mềm mô phỏng MD và DFT phổ biến (xem Bảng 1) và đang trở nên phổ biến trong cộng đồng mô phỏng và tính toán cho vật liệu
Bảng 1: Danh sách các máy tính của ASE Nguồn: S P Ong et al [11]
Jones
Trang 3228 Quantum
Espressoc
4 Mã nguồn AiiDA
AiiDA (Automated Interactive Infrastructure and Database for Computational Science - https://www.aiida.net) [7], [8] một mã nguồn mở với ý tưởng khá hiện đại trong việc quản lý quy trình công việc và ghi lại nguồn gốc dữ liệu AiiDA hiện tại rất phát triển với hiệu quả làm việc với công suất cao và bền vững, AiiDA xử
lý các quy trình tính toán vật liệu đến hàng chục nghìn quy trình/giờ, đồng thời tự động bảo toàn và lưu trữ toàn bộ nguồn gốc dữ liệu trong cơ sở dữ liệu làm cho nó
có thể kiểm duyệt dữ liệu, do đó cho phép phân tích dữ liệu vật liệu với hiệu suất cao
Quy trình làm việc của AiiDA cung cấp các tính năng xử lý lỗi, tự động hóa và mô hình plugin linh hoạt để cho phép liên kết với các phần mềm mô phỏng bên ngoài (xem Hình 8) Các plugin có thể liên kết và cho phép chia sẻ liền mạch các tiện ích
mở rộng, người dùng có thể truy cập và điều chỉnh quy trình tính toán làm cho các
mô phỏng trở nên mạnh mẽ hơn, thân thiện với người dùng và có thể tái sản xuất các mô phỏng tính toán đã thực hiện AiiDA là công cụ cốt lõi để phục vụ cho hệ thống Materials Cloud, vì vậy được tập trung phát triển và đang trở nên hoàn thiện hơn Cách thức tiếp cận của AiiDA trong việc lưu trữ dữ liệu là mới và khác biệt Với mục đích đảm bảo tính chân thật, trong sáng của các tính toán khoa học (data provenance), AiiDA không chỉ lưu trữ các dữ liệu đầu vào và kết quả cuối cùng
mà còn lưu trữ dữ liệu ở tất cả các bước trung gian của quá trình tính toán Việc này đem lại rất nhiều lợi ích Thứ nhất, nó đem lại khả năng tính toán lại để kiểm tra tính chính xác của các kết quả tính toán do một bên thứ ba (third party) thực hiện, do kết quả của từng bước tính toán đều được lưu trữ, việc kiểm tra tính toán nhờ đó được thực hiện dễ dàng hơn Thứ hai, dữ liệu lưu trữ một cách đa dạng, đó