main
index
/mnt/ufs18/home-115/daviso53/Research/im-srg_tensorflow/main.py

# Main program for IM-SRG(2).

 
Modules
       
oop_imsrg.ci_pairing.cipy_pairing_plus_ph
glob
itertools
numpy
numba
os
pickle
matplotlib.pyplot
benchmarking_wd.imsrg_pairing
random
sys
time
tensornetwork
tracemalloc

 
Functions
       
derivative(t, y, hamiltonian, occ_tensors, generator, flow)
Defines the derivative to pass into ode object.
 
Arguments:
(required by scipy.integrate.ode)
t -- points at which to solve for y
y -- in this case, 1D array that contains E, f, G
 
(additional parameters)
hamiltonian -- Hamiltonian object
occ_tensors -- OccupationTensors object
generator   -- Generator object
flow        -- Flow object
 
Returns:
 
dy -- next step in flow
get_vacuum_coeffs(E, f, G, basis, holes)
main(n_holes, n_particles, ref=[], d=1.0, g=0.5, pb=0.0, verbose=1, flow_data_log=0, generator='wegner')
Main method uses scipy.integrate.ode to solve the IMSRG(2) flow
equations.
 
Arguments:
 
n_holes -- number of hole states in the SP basis (int)
n_particles -- number of particle states in the SP basis (int)
 
Keyword arguments:
 
ref           -- reference state for the IM-SRG flow (1D array)
d             -- energy spacing in Pairing model (default: 1.0)
g             -- pairing strength in Pairing model (default: 0.5)
pb            -- pair-breaking in Pairing-plus-ph model (default: 0.0)
verbose       -- toggles output of flow information
flow_data_log -- toggles output of flow data (pickled IM-SRG coefficients every 10 integrator steps)
generator     -- specify generator to produce IM-SRG flow
 
Returns:
 
convergence -- 0 if diverged, 1 if converged (little bit outdated)
iters       -- number of iterations before integrator stopped
d           -- energy spacing in pairing model
g           -- pairing strength in pairing model
pb          -- pair-breaking strength in Pairing-plus-ph model
num_sp      -- number of single particle states
s_vals      -- 1D array of flow parameter values
E_vals      -- 1D array of zero-body energy values
time_str    -- time taken for flow completion (string)
ravel(y, bas_len)
Transforms 1D array into E, f, and G. Facilitates
compatability with scipy.integrate.ode.
 
Arguments:
 
y       -- 1D data array (output from unravel)
bas_len -- length of single particle basis
 
Returns:
 
E, f, G -- normal-ordered pieces of Hamiltonian
unravel(E, f, G)
Transforms E, f, and G into a 1D array. Facilitates
compatability with scipy.integrate.ode.
 
Arguments:
 
E, f, G -- normal-ordered pieces of Hamiltonian
 
Returns:
 
concatenation of tensors peeled into 1D arrays