Thuật giải hàm tính điện trở tuyến tính

Một phần của tài liệu KHẢO SÁT CHUYỂN PHA VORTEX LIQUID - VORTEX GLASS TRONG SIÊU DẪN LOẠI II MẤT TRẬT TỰ BẰNG MÔ PHỎNG ĐIỆN TRỞ TUYẾN TÍNH CHO MÔ HÌNH MẠNG XY (Trang 48 - 51)

4 Thuật giải và kết quả tính điện trở tuyến tính theo mô hình RSJ

4.1.2 Thuật giải hàm tính điện trở tuyến tính

Hàm resistivity()

Mục đích: tính điện trở tuyến tính theo công thức (4.3)

Input: tương tác(n), thế vec-tơ(n), biến pha khởi tạoθ(n, t= 0)

Output: giá trị điện trở tuyến tínhρlin

Hàm con: hàmlhs(): xây dựng ma trậnM, hàmrhs(): xây dựng vec-tơc, hàm

LaLinearSolve(M,x,c): giải hệ phương trình tuyến tính M.x =c, hàminvert_base(i,&x,&y,&z): chuyển kí hiệu i→(x, y, z)

Thuật giải:

Bước 1: Tính và lưu giá trị biến thăng giángαµ(t) 1. αµ←0,m0 và gọi hàmlhs() 2. Lặpttừ 1 đến tr+ta (a) gọi hàm rhs() (b) gọi hàmLaLinearSolve(M,x,c) (c) lặpitừ 1 đến L3 i. gọi hàm invert_base(i,&x,&y,&z) ii. θ(x,y,z)←θ(x,y,z) +Hx[i] (d) αµ←αµ+H∗dαµ/dt

(e) nếu t≥tr vàt−tr chia hết cho ∆t

i. saveµ[m]←αµ

ii. mm+ 1

Bước 2: Tính điện trở tuyến tínhρlin theo hệ thức Kubo

1. MAXm1,count0,temp0.0và NT2Θ/t

2. Lặpmtừ NT2 đến MAX

(a) temptemp+Pµ(saveµ[m]saveµ[mNT2])2

(b) countcount+ 1

3. ρlin=3Θ1 2LT2counttemp

Mục này chỉ nói đến hàm tính điện trở tuyến tính resistivity(), là hàm quan trọng nhất trong toàn bộ chương trình (cấu trúc toàn bộ chương trình chính có thể xem ở phụ lục B). Chi tiết thuật giải hàm resistivity()được trình bày ở hình 4.1. Hàm resistivty() được xây dựng gồm hai bước chính như đã phân tích ở phần trước. Trong bước thứ nhất có một số vần đề cần lưu ý:

1. Để có thể gọi hàm giải hệ phương trình tuyến tính LaLinearSolve(M,x,c), ta phải sử dụng thư viện LAPACK++. Thư viện LAPACK++ cho phép lập trình bằng ngôn ngữ C++, được xây dựng trên nền tảng là thư viện LAPACK cho ngôn ngữ

FORTRAN. Nguyên nhân sử dụng thư viện LAPACK++ là do tính đơn giản trong việc khai báo các hàm. Ví dụ để giải hệ phương trình A.x=B, ta có thể khai báo như sau

1 #include "lapackpp.h" 2

3 int main(int argc, char *argv[]) 4 { 5 int N; 6 LaGenMatDouble A(N,N); 7 LaVectorDouble B(N), x(N); 8 9 ... 10 11 LaLinearSolve(A,x,b); 12 }

Dòng 1 khai báo thư viện hàm lapackpp.h, dòng 6 khai báo mảng hai chiều kích thước N × N, dòng 7 khai báo vec-tơ B và vec x kích thước N, hàm

LaLinearSolve() ở dòng 11 dùng để giải hệ phương trình. Do vậy, ma trậnM

được xây dựng trong hàmlhs()phải khai báo là một mảng hai chiều như dòng 6 và vec-tơc trongrhs() được khai báo như mảng một chiều trong dòng 7 của đoạn mã giải (code) trên.

2. Như phân tích trong mục 3.4.1, để tránh khỏi tình trạng định thức của ma trận

Mbằng không, ta cố định gốc điện thế bằng cách thay một phương trình trong hệ phương trình tuyến tính bởi hệ thứcPn(n)/dt = 0. Điều này tương đương với việc thay tất cả các phần tử trong một dòng của ma trận M bởi phần tử 1 và thay phần tử tương ứng trong vec-tơc bởi phần tử 0.

3. Để giải phương trình vi phân cho biến thăng giáng cũng như biến pha, chúng tôi sử dụng phương pháp gần đúng bậc nhất Euler với bước nhảy thời gian

H = 0.05t0 (t0 là đơn vị thời gian). Để có kết quả tốt hơn, ta có thể sử dụng các phương pháp gần đúng bậc cao hơn như Runge-Kutta bậc 2 hay bậc 4. Tuy

nhiên thời gian tính toán tăng tỉ lệ thuận với số bậc của phương pháp nên chúng tôi tạm thời dùng phương pháp Euler.

Đối với bước thứ hai, có một lưu ý là thời gian Θcần đủ lớn (ΘÀt0) để đảm bảo sự gần đúng của công thức tính điện trở tuyến tính, cụ thể trong chương trình của chúng tôi Θ = 20.000 t0 tương đương với 4×105 bước nhảy. Giá trị này lớn hơn giá trị Θ = 16.000 t0 được sử dụng trong [41]. Có một cách để thu được kết quả đáng tin cậy hơn là thay vì chỉ sử dụng một giá trị Θ, ta có thể chạy cho nhiều Θ khác nhau [42]. Với mỗi Θ ta tính giá trị của hàm

f(Θ) L2 2T P µ ­ [αµ(Θ)−αµ(0)]2® 3 (4.6)

và giá trị điện trở tuyến tính ρlin được suy ra từ hàm f(Θ) = ρlinΘ. Tuy nhiên vì khối lượng tính toán lớn và giới hạn về thời gian cho một khoá luận nên chúng tôi chưa sử dụng được phương pháp này.

Một phần của tài liệu KHẢO SÁT CHUYỂN PHA VORTEX LIQUID - VORTEX GLASS TRONG SIÊU DẪN LOẠI II MẤT TRẬT TỰ BẰNG MÔ PHỎNG ĐIỆN TRỞ TUYẾN TÍNH CHO MÔ HÌNH MẠNG XY (Trang 48 - 51)

Tải bản đầy đủ (PDF)

(72 trang)