Class | sf_lattice_class |
In: |
LatticeClass/sf_lattice_class.F90
|
SF boundary memo
U_4(t=1), U_4(t=2), …, U_4(t=NTT) : physical U_4(t=0) = U_4(t=NTT) : ghost boundary (not used) U_4(t=NTT+1) = U_4(t=1) : ghost boundary (not used)
U_k(t=1) = U0 : SF boundary at t=0 U_k(t=NTT+1) = U1 : SF boundary at t=T U_k(t=2), U_k(t=3), …, U_k(t=NTT) : phsyical
do itb=1-ieoxyz,NTH-ieoxyz it = 2*itb + ieoxyz ieoxyz = 0 => itb = 1..NTH => it = 2,4,6,..,NTT
itb = 0 => it = 0
ieoxyz = 1 => itb = 0,..NTH-1 => it = 1,3,5,…,NTT-1
itb = NTH => it = NTT+1 itb = 0 => it = 1
Subroutine : | |
this : | type(sf_lattice_world), intent(in) |
subroutine delete_sf_lattice_world(this) use error_class use comlib implicit none type(sf_lattice_world), intent(in) :: this m_is_initialized = .false. return end subroutine
Function : | |
phase(COL,NDIM-1) : | complex(DP) |
this : | type(sf_lattice_world), intent(in) |
function get_phase0_sf_lattice_world(this) result(phase) use error_class use comlib implicit none type(sf_lattice_world), intent(in) :: this complex(DP) :: phase(COL,NDIM-1) phase(:,:) = m_phase0(:,:) return end function
Function : | |
phase(COL,NDIM-1) : | complex(DP) |
this : | type(sf_lattice_world), intent(in) |
function get_phase1_sf_lattice_world(this) result(phase) use error_class use comlib implicit none type(sf_lattice_world), intent(in) :: this complex(DP) :: phase(COL,NDIM-1) phase(:,:) = m_phase1(:,:) return end function
Function : | |
status : | logical |
this : | type(sf_lattice_world), intent(in) |
function is_initialized_sf_lattice_world(this) result(status) type(sf_lattice_world), intent(in) :: this logical :: status status = m_is_initialized return end function
Subroutine : | |
this : | type(sf_lattice_world), intent(in) |
bc_type : | integer, optional, intent(in) |
subroutine new_sf_lattice_world(this,bc_type) use error_class use comlib implicit none type(sf_lattice_world), intent(in) :: this integer, optional, intent(in) :: bc_type integer :: ic if (m_is_initialized) return if (present(bc_type)) then m_boundary_type = bc_type else !============================ ! set default boundary type !============================ m_boundary_type = DEFAULT_BOUNDARY_TYPE endif select case(m_boundary_type) case(0) ! ! itt = 1 boundary ! m_phi0(1)=-PI/COL m_phi0(2)= 0.0_DP m_phi0(3)=-(m_phi0(1)+m_phi0(2)) ! ! itt = NTT+1 boundary ! m_phi1(1)=-PI m_phi1(2)= PI/COL m_phi1(3)=-(m_phi1(1)+m_phi1(2)) case(1) ! ! itt = 1 boundary ! m_phi0(1)=-PI/2.0_DP/COL m_phi0(2)= 0.0_DP m_phi0(3)=-(m_phi0(1)+m_phi0(2)) ! ! itt = NTT+1 boundary ! m_phi1(1)=-5*PI/2.0_DP/COL m_phi1(2)= 2*PI/2.0_DP/COL m_phi1(3)=-(m_phi1(1)+m_phi1(2)) case default call error_stop("SF boundary type should be 0 or 1.(new_sf_lattice_world)") end select do ic=1,COL m_phase0(ic,1)=cmplx(cos(m_phi0(ic)/NTX),sin(m_phi0(ic)/NTX),kind=DP) m_phase1(ic,1)=cmplx(cos(m_phi1(ic)/NTX),sin(m_phi1(ic)/NTX),kind=DP) m_phase0(ic,2)=cmplx(cos(m_phi0(ic)/NTY),sin(m_phi0(ic)/NTY),kind=DP) m_phase1(ic,2)=cmplx(cos(m_phi1(ic)/NTY),sin(m_phi1(ic)/NTY),kind=DP) m_phase0(ic,3)=cmplx(cos(m_phi0(ic)/NTZ),sin(m_phi0(ic)/NTZ),kind=DP) m_phase1(ic,3)=cmplx(cos(m_phi1(ic)/NTZ),sin(m_phi1(ic)/NTZ),kind=DP) enddo if (0==nodeid) then write(*,'(80("="))') write(*,'(" SF boundary condition is initialized. (SF_LATTICE_CLASS)")') write(*,'(" phase(t=0) :",3F14.6)')m_phi0(1),m_phi0(2),m_phi0(3) write(*,'(" phase(t=T) :",3F14.6)')m_phi1(1),m_phi1(2),m_phi1(3) write(*,'(" U_k(t) = exp(i phase(t)/NS_k) ")') write(*,'(80("="))') endif m_is_initialized = .true. return end subroutine