Skip to content
Snippets Groups Projects
Commit 28d3caeb authored by Luca Gravina's avatar Luca Gravina
Browse files

Added convergence check

parent c29f83bf
No related branches found
No related tags found
No related merge requests found
File added
File added
......@@ -130,6 +130,7 @@ def get_cutoff(p, c0=5, cmax=100, step=5, precision=0.005):
c += step
return np.inf
def map_cutoff(Utilderange, Δrange, Grange):
"""Create map with optimal truncations for a user-defined parameter range.
......@@ -150,4 +151,56 @@ def map_cutoff(Utilderange, Δrange, Grange):
Grat=Grange[k]
p = Parameters(Δ=Δ, N=10, Grat=Grat, ηtilde=1, Utilde=Utilde)
C[i,j,k] = get_cutoff(p, c0=5, cmax=100, step=5, precision=0.005)
return C
\ No newline at end of file
return C
#Previous iterations
""" def get_cutoff_MK1(cuts, p, precision=0.01):
metric = lambda x1,x2 : ((np.abs(x1-x2)/np.abs(np.min([x1,x2])))<precision)
q = deque()
k = Kerr_2γ(Nfock=cuts[0], p=p)
q.append(0)
q.append(k.bd()[0])
for i in range(1,cuts.size):
k = Kerr_2γ(Nfock=cuts[i], p=p)
ni = k.bd()[0]
μi = metric(ni,q.pop())
q.append(μi)
print(q[0],q[1],i)
if (q.popleft())*(q[0])==True :
return i-1
q.append(ni)
if q[0]==True:
print("Carefull: Convergence on border")
return i
else: return np.inf
def get_cutoff_MK2(p, c0=5, cmax=100, step=5, precision=0.005):
metric = lambda x1,x2 : ((np.abs(x1-x2)/np.abs(np.min([x1,x2])))<precision)
k = Kerr_2γ(Nfock=c0,p=p)
nprev = k.bd()[0]
c = c0+step
while c<cmax:
k = Kerr_2γ(Nfock=c,p=p)
n = k.bd()[0]
if metric(n,nprev):
c -= step
while 1:
k = Kerr_2γ(Nfock=c-1,p=p)
if metric(k.bd()[0],n): c -= 1
else: return c
else:
nprev = n
c += step
return np.inf """
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment