GenMult4DSSOR_v2.rb

Path: QuarkDwOvlpClass/PREVS/GenMult4DSSOR_v2.rb
Last Update: Wed Jan 18 16:14:48 +0900 2012
dot/f_2.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/PREVS/GenMult4DSSOR_v2.rb, line 9
 9: def mult_inv_mass_matrix(mmatL,mmatR,yt,dagger)
10: y  = Spinor.new("y")
11: w  = Spinor.new("w")
12: print "
13:   do iw=1,NS
14:     yy(:,:,iw) = Z0
15:     ww(:,:,iw) = Z0
16:   enddo
17:   fac = 0.5_DP
18:   do iw=1,NS
19: "
20: puts y.assign_proj_up(-5,yt)  # y := (1-gamma_5)/2 yt
21: puts w.assign_proj_up(+5,yt)  # w := (1+gamma_5)/2 yt
22: print "
23:     do jw=1,NS
24: "
25: if (dagger == 1)
26: print "
27:       yy(:,1,jw) = yy(:,1,jw) + #{mmatR}(jw,iw)*y(:,1)
28:       yy(:,2,jw) = yy(:,2,jw) + #{mmatR}(jw,iw)*y(:,2)
29:       ww(:,1,jw) = ww(:,1,jw) + #{mmatL}(jw,iw)*w(:,1)
30:       ww(:,2,jw) = ww(:,2,jw) + #{mmatL}(jw,iw)*w(:,2)
31: "
32: else
33: print "
34:       yy(:,1,jw) = yy(:,1,jw) + #{mmatL}(jw,iw)*y(:,1)
35:       yy(:,2,jw) = yy(:,2,jw) + #{mmatL}(jw,iw)*y(:,2)
36:       ww(:,1,jw) = ww(:,1,jw) + #{mmatR}(jw,iw)*w(:,1)
37:       ww(:,2,jw) = ww(:,2,jw) + #{mmatR}(jw,iw)*w(:,2)
38: "
39: end
40: print "
41:     enddo
42:   enddo
43:   do iw=1,NS
44:     y(:,1) = yy(:,1,iw)
45:     y(:,2) = yy(:,2,iw)
46:     w(:,1) = ww(:,1,iw)
47:     w(:,2) = ww(:,2,iw)
48: "
49: puts yt.assign_proj_low(-5,y)
50: puts  yt.accum_proj_low(+5,w)
51: print "
52:   enddo
53: "
54: end