|
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. | |
| 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]. | |
| 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]. | |
| 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 ). | |
| 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. | |
| 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 70 of file Wrapgr_mod.F90.
| subroutine wrapgr_mod::wrapgr_dealloc |
Definition at line 75 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 247 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 317 of file Wrapgr_mod.F90.
| subroutine wrapgr_mod::wrapgr_sort | ( | integer, intent(in) | flip_length, |
| integer, dimension(:), intent(inout), allocatable | flip_list, | ||
| complex (kind=kind(0.d0)), dimension(:), intent(inout), allocatable | flip_value ) |
Definition at line 437 of file Wrapgr_mod.F90.
| subroutine wrapgr_mod::wrapgr_test | ( | complex (kind=kind(0.d0)), dimension(:,:,:), intent(inout), allocatable | gr, |
| integer | ntau ) |
Definition at line 483 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 160 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 81 of file Wrapgr_mod.F90.
|
private |
Privat.
Definition at line 60 of file Wrapgr_mod.F90.