ALF
dev.
A QMC Code for fermionic models
|
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. | |
Handles global updates on a single time slice.
subroutine wrapgr_mod::wrapgr_alloc | ( | ) |
Allocate, Deallocate space.
Definition at line 71 of file Wrapgr_mod.F90.
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 )
[in,out] | gr | Note that m,m1 in [0,n] |
Definition at line 248 of file Wrapgr_mod.F90.
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.
[in,out] | gr | The 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.
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].
[in,out] | gr |
Definition at line 161 of file Wrapgr_mod.F90.
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].
[in,out] | gr |
Definition at line 82 of file Wrapgr_mod.F90.