Class field_clover_class
In: FieldCloverClass/field_clover_class.F90
lattice_class sf_lattice_class field_clover_class dot/f_21.png

Define Fields used in Wilson-Clover quark action

version

$Id: field_clover_class.F90,v 1.2 2011/09/25 06:10:59 ishikawa Exp $

Methods

Included Modules

lattice_class sf_lattice_class

Public Instance methods

field_clover_leaf
Derived Type :
eo(0:1) :type(field_clover_leaf_eo)

clover leaf term

field_clover_leaf_eo
Derived Type :
t(COL,COL,NTH*NZ*NY*NX,NDIM*(NDIM-1)/2) :complex(DP)
ieo :integer
idummy(3) :integer

clover leaf term on even/odd sites

field_clover_term
Derived Type :
eo(0:1) :type(field_clover_term_eo)

quark clover term in chiral rep. linear form (21 vector x 2)

field_clover_term_eo
Derived Type :
l(CLSPH,2,NTH,NZ,NY,NX) :complex(DP)
ieo :integer
idummy(3) :integer

quark clover term in chiral rep. linear form (21 vector x 2) on even/odd sites

Subroutine :
this :type(field_clover_leaf), intent(inout)

[Source]

subroutine new_f_c_l(this)
  implicit none
  type(field_clover_leaf), intent(inout) :: this
  call new(this%eo(0),0) 
  call new(this%eo(1),1) 
  return
end subroutine
Subroutine :
this :type(field_clover_term), intent(inout)

[Source]

subroutine new_f_c_t(this)
  implicit none
  type(field_clover_term), intent(inout) :: this
  call new(this%eo(0),0) 
  call new(this%eo(1),1) 
  return
end subroutine
Subroutine :
this :type(field_clover_leaf_eo), intent(inout)
ieo :integer, intent(in)

[Source]

subroutine new_f_c_l_eo(this,ieo)
  implicit none
  type(field_clover_leaf_eo), intent(inout) :: this
  integer,                    intent(in) :: ieo
  this%ieo=ieo
  return
end subroutine
Subroutine :
this :type(field_clover_term_eo), intent(inout)
ieo :integer, intent(in)

[Source]

subroutine new_f_c_t_eo(this,ieo)
  implicit none
  type(field_clover_term_eo), intent(inout) :: this
  integer,                    intent(in) :: ieo
  this%ieo=ieo
  return
end subroutine
Subroutine :
ucl :type(field_clover_leaf), intent(inout)

Set Schroedinger Functional boundary condition on clover leaf term (set zero at itt=1)

ucl : clover leaf

[Source]

subroutine set_sf_boundary_clv(ucl)
!
! Set Schroedinger Functional boundary condition on clover leaf term
! (set zero at itt=1)
!
! ucl : clover leaf
!
  implicit none
  type(field_clover_leaf), intent(inout) :: ucl
  call set_sf_boundary(ucl%eo(0))
  call set_sf_boundary(ucl%eo(1))
  return
end subroutine
Subroutine :
ucle :type(field_clover_leaf_eo), intent(inout)

Set Schroedinger Functional boundary condition on clover leaf term (set zero at itt=1)

ucle : clover leaf (even/odd sites)

[Source]

subroutine set_sf_boundary_clv_eo(ucle)
!
! Set Schroedinger Functional boundary condition on clover leaf term
! (set zero at itt=1)
!
! ucle : clover leaf (even/odd sites)
!
  use sf_lattice_class
  implicit none
  type(field_clover_leaf_eo), intent(inout) :: ucle
  type(sf_lattice_world) :: sf_lattice
  integer :: ieo,ipl,ix,iy,iz,ieoxyz,isite,ic,jc

  if (.not.is_initialized(sf_lattice)) call new(sf_lattice)

  ieo = ucle%ieo
  do ix=1,NX
  do iy=1,NY
  do iz=1,NZ
    ieoxyz=mod(ipeo+ix+iy+iz+ieo,2)
!========================================================
! SF boundary memo (wo ghost sites)
! do itb=1-ieoxyz,NTH-ieoxyz
! itb0 = itb + ieoxyz
! ieoxyz = 0 => itb = 1..NTH => it = 2,4,6,..,NTT
!               itb = 0   => it = 0  (outside of physical sites)
!
! ieoxyz = 1 => itb = 0,..NTH-1 => it = 1,3,5,...,NTT-1
!               itb = NTH => it = NTT+1 (outside of physical sites)
!               itb = 0   => it = 1 => itb0 = 1 
!========================================================
    if (1 == ieoxyz) then
      !==========
      ! t = 1
      !==========
      isite = 1 + (iz-1)*NTH + (iy-1)*NTH*NZ + (ix-1)*NTH*NZ*NY
      do ipl=1,NDIM*(NDIM-1)/2
        do jc=1,COL
        do ic=1,COL
          ucle%t(ic,jc,isite,ipl) = Z0
        enddo
        enddo
      enddo
    endif
  enddo
  enddo
  enddo  ! end of do ix,iy,iz

  return
end subroutine