1 / 14

Lattice Tool Kit in f90 Project

Lattice Tool Kit in f90 Project. 野中千穂、中村純 2000 年10月12日 航空宇宙技術研究所. 動機と目的. 格子は場の量子論を研究するための道具。 得にハドロン物理の研究に有用 格子 QCD の基本的な部分の分かりやすいコードを書く それを基に、数値計算の非専門科でも、自分の目的に合ったプログラムが書けるように 「モジュール」機能を持った Fortran90 は C++ と同様のデータ構造記述力. プロジェクトメンバー. S.Choe ( 崔勝皓) T.Hatou ( 羽藤隆夫) S.Muroya ( 室谷心)

lila-le
Download Presentation

Lattice Tool Kit in f90 Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lattice Tool Kit in f90 Project 野中千穂、中村純 2000年10月12日 航空宇宙技術研究所

  2. 動機と目的 • 格子は場の量子論を研究するための道具。 • 得にハドロン物理の研究に有用 • 格子QCDの基本的な部分の分かりやすいコードを書く • それを基に、数値計算の非専門科でも、自分の目的に合ったプログラムが書けるように • 「モジュール」機能を持ったFortran90はC++と同様のデータ構造記述力

  3. プロジェクトメンバー • S.Choe (崔勝皓) • T.Hatou (羽藤隆夫) • S.Muroya (室谷心) • C.Nonaka (野中千穂) • A.Nakamura (中村純) • I.Pushkina (イリーナ・プシキーナ)

  4. 用意する予定のプログラム • Metropolis and Pseudo-Heatbath gauge update • Standard Wilson Action • (1x1+1x2) Imroved Action • Anisotropic Lattice • Hybrid Monte Carlo for dynamical fermions (Wilson Fermions) • Quark Propagators • Wilson Fermion + Clover • MPIで並列化 • コードは white box

  5. モジュール:データ構造+演算規則 • c-----------------------------c • program ex1 • c-----------------------------c • use vec_def • TYPE(vector) p, q, r • p = vector(0.5, -1.5); q = vector(0.5, 0.5) • r = p + q • write(*,*) r • end

  6. MODULE v e c_def TYPE v e c t o r r e a l x, y END TYPE INTERFACE OPERATOR(+) MODULE PROCEDURE vadd END INTERFACE CONTAINS FUNCTION vadd(a,b) RESULT(c) TYPE(vector), INTENT(IN):: a, b TYPE(vector) c c %x = a%x + b%x c %y = a%y + b%y END FUNCTION END MODULE

  7. : SU(3)行列 格子QCD(1) プラケット

  8. t emp1 = u(nu) • t emp2 = nu.gshift.u(mu) • t emp3 = temp1 * temp2 • t emp1 = mu.gshift.u(nu) • staple = staple + (temp3.prod1.temp1) TYPE(g_field1) staple, temp1, temp2, temp3

  9. TYPE g_field1 • SEQUENCE • COMPLEX*16, DIMENSION(NC,NC,NV/NBUSH) :: g • INTEGER parity, direction • END TYPE • parameter( NC=3 ) • TYPE g_field0 • SEQUENCE • COMPLEX*16, DIMENSION • (NC,NC,-NDW+1:NX+NDW,-NDW+1:NY+NDW, • & -NDW+1:NZ+NDW,-NDW+1:NT+NDW) :: g • INTEGER parity, direction • END TYPE

  10. c----------------------------------------------------------------------cc----------------------------------------------------------------------c FUNCTION gadd(a,b) RESULT(c) c----------------------------------------------------------------------c TYPE(g_field1), INTENT(IN):: a, b TYPE(g_field1) c do i = 1, NV/NBUSH c %g( 1, 1, i) = a%g( 1, 1, i) + b%g( 1, 1, i) c %g( 1, 2, i) = a%g( 1, 2, i) + b%g( 1, 2, i) c %g( 1, 3, i) = a%g( 1, 3, i) + b%g( 1, 3, i) c %g( 2, 1, i) = a%g( 2, 1, i) + b%g( 2, 1, i) c %g( 2, 2, i) = a%g( 2, 2, i) + b%g( 2, 2, i) c %g( 2, 3, i) = a%g( 2, 3, i) + b%g( 2, 3, i) c %g( 3, 1, i) = a%g( 3, 1, i) + b%g( 3, 1, i) c %g( 3, 2, i) = a%g( 3, 2, i) + b%g( 3, 2, i) c %g( 3, 3, i) = a%g( 3, 3, i) + b%g( 3, 3, i) enddo END FUNCTION

  11. 格子QCD(2)クォークプロパゲータ  : クォークプロパゲータ 通常CG(共役勾配法)で解かれる

  12. TYPE(f_field) wxvect, x, b, res, p, q, s REAL*8 alpha, beta, c1, c2, c3 c the initial condition ( for i=0 ) ! ... res = b - W*x r es = b - wxvect(x,2) ! ... p = W_adj * res p = wxvect(res,3) c ! ... c1 = < p | p > c 1 = p * p ! ... the iteration starts do i = 1, imax ! ... q = W * p q = wxvect(p,2) ! ... c2 = < q | q > c 2 = q * q

  13. 格子QCD(3)改良された作用 C0 + C1

  14. 並列化 のりしろを付ける

More Related