Path: | QuarkDwOvlpClass_v0.1/GenMult4DSSOR.rb |
Last Update: | Thu Feb 17 21:05:35 +0900 2011 |
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 $
# File QuarkDwOvlpClass_v0.1/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
# File QuarkDwOvlpClass_v0.1/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