-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
chiAB_tau computed from M3 measurement with chiAB_from_chi2_PH function is smooth for certain values of n_tau_M3 (tested for n_tau_M3=801, 1201, 5601, and 6001) but not always (kinks present for 901, 1001, 1101, 5701, 5801, 5901).
The effect can be seen with the following simple script:
from pytriqs.gf import *
from pytriqs.gf.tools import *
from pytriqs.operators import *
from pytriqs.archive import *
from pytriqs.utility import mpi
from triqs_ctint import Solver
from triqs_ctint.post_process import chiAB_from_chi2_PH
import os
beta=100.
U = 3.2
mu = U/2.
n_tau_M3 = 1201
n_tau_chi2 = 2*n_tau_M3-1
# CONSTRUCT SOLVER
S=Solver(beta = beta,
gf_struct = [('up',[0]), ('dn',[0])],
)
# / CONSTRUCT
# INITIALIZE SOLVER
for name, g0 in S.G0_iw:
g0 << inverse(iOmega_n + mu - SemiCircular(2))
# / INITIALIZE
# SOLVE
S.solve(h_int = U * n('up',0) * n('dn',0),
length_cycle = 150,
n_cycles = 160000,
n_warmup_cycles = 500,
measure_M3ph_tau = True,
n_tau_M3 = n_tau_M3,
n_tau_chi2 = n_tau_chi2,
measure_histogram = True,
)
# / SOLVE
# CHI_AB
chi_A_vec = [n('up',0),n('dn',0)]
chi_B_vec = [n('up',0),n('dn',0)]
chiAB_tau = chiAB_from_chi2_PH(S.chi2ph_new_tau, [('up',[0]), ('dn',[0])], chi_A_vec, chi_B_vec)
output_G = S.G_iw
output_Q = 0.25*(chiAB_tau[0,0]+chiAB_tau[1,1]-chiAB_tau[0,1]-chiAB_tau[1,0])
# / CHI_AB
# SAVE
if mpi.is_master_node():
fname="testing-%i.h5"%(n_tau_M3)
if os.path.isfile(fname):
os.remove(fname)
with HDFArchive(fname) as A:
A['S']=S
A['G']=output_G
A['Q']=output_Q
# / SAVEFor demonstration, I'm attaching a plot of log(Q(tau)) vs tau (the log just makes the small kinks easier to see, although you may still need to zoom in) for n_tau_M3=1101,1201. (length_cycle=150, n_cycles=160000, 28 cores). Using more samples improves the statistics near tau=beta/2 but does not eliminate the kinks.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels

