ALF  dev.
A QMC Code for fermionic models
Functions/Subroutines | Variables
wrapgr_mod Module Reference

Handles global updates on a single time slice. More...

Functions/Subroutines

subroutine wrapgr_alloc
 Allocate, Deallocate space. More...
 
subroutine wrapgr_dealloc
 
subroutine wrapgrup (GR, NTAU, PHASE, Propose_S0, Nt_sequential_start, Nt_sequential_end, N_Global_tau)
 Given the green function matrix GR at time NTAU the routine propagates it to time NTAU + 1 and carries out an update of the fields at time NTAU+1 NTAU: [0:LTROT-1]. More...
 
subroutine wrapgrdo (GR, NTAU, PHASE, Propose_S0, Nt_sequential_start, Nt_sequential_end, N_Global_tau)
 Given the green function matrix GR at time NTAU the routine carries out an update of the fields at time NTAU and propagates it to time NTAU-1 NTAU: [LTROT:1]. More...
 
subroutine wrapgr_placegr (GR, m, m1, ntau)
 The Green function on a given time slice reads G(tau) = ( 1 + B(tau) B(tau-1,0) B(beta,tau))^(-1) with B(tau) = U_n e^(d_n) U_n^(dag) .... U_1 e^(V_1) U_1^(dag) e^(-dtau H_t) On input you have G(tau,m) = [ 1 + U_m e^(d_m) U_m^(dag) U_m^(dag) ... U_1 e^(V_1) U_1^(dag) e^(-dtau H_t) B(tau-1,0) B(Beta,tau) U_n e^(d_n) U_n^(dag) ...U_(m+1) e^(d_(m+1)) U_(m+1)^(dag) U_(m+1) ] On output you have G(tau, m1 ) More...
 
subroutine wrapgr_random_update (GR, m, ntau, PHASE, N_Global_tau)
 On input: GR(tau,m) as defined in Global_tau_mod_PlaceGR and the direction of updating scheme direction=u –> You are visiting the time slices from tau = 1 to tau =Ltrot direction=d –> You are visiting the time slices from tau = Ltrot to tau = 1. More...
 
subroutine wrapgr_sort (Flip_length, Flip_list, Flip_value)
 
subroutine wrapgr_test (Gr, ntau)
 

Variables

complex(kind=kind(0.d0)), dimension(:,:,:), allocatable, private gr_st
 Privat.
 

Detailed Description

Handles global updates on a single time slice.

Author
ALF-project

Function/Subroutine Documentation

◆ wrapgr_alloc()

subroutine wrapgr_mod::wrapgr_alloc ( )

Allocate, Deallocate space.

Author
ALF-project

Definition at line 71 of file Wrapgr_mod.F90.

◆ wrapgr_placegr()

subroutine wrapgr_mod::wrapgr_placegr ( complex (kind=kind(0.d0)), dimension(:,:,:), intent(inout), allocatable  GR,
integer, intent(in)  m,
integer, intent(in)  m1,
integer, intent(in)  ntau 
)

The Green function on a given time slice reads G(tau) = ( 1 + B(tau) B(tau-1,0) B(beta,tau))^(-1) with B(tau) = U_n e^(d_n) U_n^(dag) .... U_1 e^(V_1) U_1^(dag) e^(-dtau H_t) On input you have G(tau,m) = [ 1 + U_m e^(d_m) U_m^(dag) U_m^(dag) ... U_1 e^(V_1) U_1^(dag) e^(-dtau H_t) B(tau-1,0) B(Beta,tau) U_n e^(d_n) U_n^(dag) ...U_(m+1) e^(d_(m+1)) U_(m+1)^(dag) U_(m+1) ] On output you have G(tau, m1 )

Parameters
[in,out]grNote that m,m1 in [0,n]

Definition at line 248 of file Wrapgr_mod.F90.

◆ wrapgr_random_update()

subroutine wrapgr_mod::wrapgr_random_update ( complex (kind=kind(0.d0)), dimension(:,:,:), intent(inout), allocatable  GR,
integer, intent(inout)  m,
integer, intent(in)  ntau,
complex (kind=kind(0.d0)), intent(inout)  PHASE,
integer, intent(in)  N_Global_tau 
)

On input: GR(tau,m) as defined in Global_tau_mod_PlaceGR and the direction of updating scheme direction=u –> You are visiting the time slices from tau = 1 to tau =Ltrot direction=d –> You are visiting the time slices from tau = Ltrot to tau = 1.

Parameters
[in,out]grThe routine calls Global_move_tau(T0_Proposal_ratio, Flip_list, Flip_length,ntau,m,direction) in the Hamiltonian module and then carries out the update

On output

Flip_length==1 Green function is on GR(tau,Flip_list(1) +1 ) if direction = u Green function is on GR(tau,Flip_list(1) -1 ) if direction = d This is valid if the move has or has not been accepted.

Flip_length > 1 Let m_min = min(Flip_list), m_max = max(Flip_list) direction = u –> On output Green on m_max is accepted. Green is on m_min if not accepted. direction = d –> On output Green on m_min if accepted. Green is on m_max if not accepted.

Definition at line 318 of file Wrapgr_mod.F90.

◆ wrapgrdo()

subroutine wrapgr_mod::wrapgrdo ( complex (kind=kind(0.d0)), dimension(:,:,:), intent(inout), allocatable  GR,
integer, intent(in)  NTAU,
complex (kind=kind(0.d0)), intent(inout)  PHASE,
logical, intent(in)  Propose_S0,
integer, intent(in)  Nt_sequential_start,
integer, intent(in)  Nt_sequential_end,
integer, intent(in)  N_Global_tau 
)

Given the green function matrix GR at time NTAU the routine carries out an update of the fields at time NTAU and propagates it to time NTAU-1 NTAU: [LTROT:1].

Parameters
[in,out]gr

Definition at line 161 of file Wrapgr_mod.F90.

◆ wrapgrup()

subroutine wrapgr_mod::wrapgrup ( complex (kind=kind(0.d0)), dimension(:,:,:), intent(inout), allocatable  GR,
integer, intent(in)  NTAU,
complex (kind=kind(0.d0)), intent(inout)  PHASE,
logical, intent(in)  Propose_S0,
integer, intent(in)  Nt_sequential_start,
integer, intent(in)  Nt_sequential_end,
integer, intent(in)  N_Global_tau 
)

Given the green function matrix GR at time NTAU the routine propagates it to time NTAU + 1 and carries out an update of the fields at time NTAU+1 NTAU: [0:LTROT-1].

Parameters
[in,out]gr

Definition at line 82 of file Wrapgr_mod.F90.