GenMult4DSSOR.rb

Path: QuarkDwOvlpClass/GenMult4DSSOR.rb
Last Update: Thu Feb 17 21:05:35 +0900 2011
dot/f_3.png

Generates 4-D SSOR Kernel for Hermitian Squared Domainwall operator (D‘D)

$Id: GenMultSSOR.rb,v 1.2 2010/09/01 04:21:07 ishikawa Exp $

Required files

FieldClasses  

Methods

Public Instance methods

[Source]

    # File QuarkDwOvlpClass/GenMult4DSSOR.rb, line 9
 9: def mult_inv_mass_matrix(mmatP,mmatN,yt,dagger)
10: #
11: #  yt = K \ yt
12: #
13: print "
14:   do iw=1,NS
15:     yy(iw)%y(:,1:2) = #{yt.get_name}(:,1:2) - #{yt.get_name}(:,3:4)
16:     yy(iw)%y(:,3:4) = #{yt.get_name}(:,1:2) + #{yt.get_name}(:,3:4)
17:   enddo
18:   do iw=1,NS
19:     ww%y(:,:) = Z0
20:     do jw=1,NS"
21: if (dagger == 0)
22: print "
23:       ww%y(:,1:2) = ww%y(:,1:2) + #{mmatP}(iw,jw) * yy(jw)%y(:,1:2)
24:       ww%y(:,3:4) = ww%y(:,3:4) + #{mmatN}(iw,jw) * yy(jw)%y(:,3:4) "
25: else
26: print "
27:       ww%y(:,1:2) = ww%y(:,1:2) + #{mmatP}(jw,iw) * yy(jw)%y(:,1:2)
28:       ww%y(:,3:4) = ww%y(:,3:4) + #{mmatN}(jw,iw) * yy(jw)%y(:,3:4) "
29: end
30: print "
31:     enddo
32:     #{yt.get_name}(:,1:2) = (+ ww%y(:,1:2) + ww%y(:,3:4))*0.5_DP
33:     #{yt.get_name}(:,3:4) = (- ww%y(:,1:2) + ww%y(:,3:4))*0.5_DP
34:   enddo
35: "
36: end

[Source]

    # File QuarkDwOvlpClass/GenMult4DSSOR.rb, line 38
38: def mult_inv_mass_matrix2(mmatP,mmatN,st,yt,dagger)
39: #
40: #  st = K \ yt
41: #
42: print "
43:   do iw=1,NS
44:     yy(iw)%y(:,1:2) = #{yt.get_name}(:,1:2) - #{yt.get_name}(:,3:4)
45:     yy(iw)%y(:,3:4) = #{yt.get_name}(:,1:2) + #{yt.get_name}(:,3:4)
46:   enddo
47:   do iw=1,NS
48:     ww%y(:,:) = Z0
49:     do jw=1,NS"
50: if (dagger == 0)
51: print "
52:       ww%y(:,1:2) = ww%y(:,1:2) + #{mmatP}(iw,jw) * yy(jw)%y(:,1:2)
53:       ww%y(:,3:4) = ww%y(:,3:4) + #{mmatN}(iw,jw) * yy(jw)%y(:,3:4) "
54: else
55: print "
56:       ww%y(:,1:2) = ww%y(:,1:2) + #{mmatP}(jw,iw) * yy(jw)%y(:,1:2)
57:       ww%y(:,3:4) = ww%y(:,3:4) + #{mmatN}(jw,iw) * yy(jw)%y(:,3:4) "
58: end
59: print "
60:     enddo
61:     #{st.get_name}(:,1:2) = (+ ww%y(:,1:2) + ww%y(:,3:4))*0.5_DP
62:     #{st.get_name}(:,3:4) = (- ww%y(:,1:2) + ww%y(:,3:4))*0.5_DP
63:   enddo
64: "
65: end