ALF dev.
A QMC Code for fermionic models
Loading...
Searching...
No Matches
wrapgr_mod Module Reference

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.

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 70 of file Wrapgr_mod.F90.

◆ wrapgr_dealloc()

subroutine wrapgr_mod::wrapgr_dealloc

Definition at line 75 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]gr

Note that m,m1 in [0,n]

Definition at line 247 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]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.

◆ wrapgr_sort()

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.

◆ wrapgr_test()

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.

◆ 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 160 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 81 of file Wrapgr_mod.F90.

Variable Documentation

◆ gr_st

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

Privat.

Definition at line 60 of file Wrapgr_mod.F90.