looking for Green's function poles
Go Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
Makefile
README
bisection.go
bisection_test.go
bracket.go
clean
cubicspline.go
cubicspline_test.go
environment.go
environment_test.go
environment_test.json
grapher.py
integrate.go
integrate_test.go
kramerskronig.go
list_cache.go
list_cache_test.go
mesh2d.go
mesh2d_test.go
mesh_aggregates.go
mesh_aggregates_test.go
mpljson.go
principalvalue.go
principalvalue_test.go
selfconsistent.go
selfconsistent_test.go
spectrum.go
spectrum_test.go
tridiagonal.go
tridiagonal_test.go
utility.go
utility_test.go
vector.go
vector_cache.go
vector_cache_test.go
zerotemp.go
zerotemp_greens.go
zerotemp_plots.go
zerotemp_test.go
zerotemp_test.json
zerotemp_test_gc0.json
zerotemp_test_gc0_cache.json

README

Find the poles of the Green's function G_{c0} for the physical electron

G_{c0}(k\omega) = \frac{1}{4N} \sum_{q} \left[ 
\left(1+\frac{\lambda}{\omega_q}\right) \left(1+\frac{\xi_h(q-k)}{E_h(q-k)}\right) \frac{n_q + f(E_h(q-k))}{i\omega - \omega_q + E_h(q-k)} 
+ \left(1+\frac{\lambda}{\omega_q}\right) \left(1-\frac{\xi_h(q-k)}{E_h(q-k)}\right) \frac{n_q + 1 - f(E_h(q-k))}{i\omega - \omega_q - E_h(q-k)}
- \left(1-\frac{\lambda}{\omega_q}\right) \left(1+\frac{\xi_h(q-k)}{E_h(q-k)}\right) \frac{n_q + 1 - f(E_h(q-k))}{i\omega + \omega_q + E_h(q-k)}
- \left(1-\frac{\lambda}{\omega_q}\right) \left(1-\frac{\xi_h(q-k)}{E_h(q-k)}\right) \frac{n_q + f(E_h(q-k))}{i\omega + \omega_q - E_h(q-k)} \right]

lambda is the boson chemical potential - treat as a free parameter (scaled with t0?)

at zero temperature, need to fix D1, mu, and F0 by self-consistent equations used before

at higher temperatures, beta is a free parameter; fix beta_c by looking at point where F0 = 0

-------

self-consistent equation:
-interface function "absError(val float64, env Environment) float64" gives lhs - rhs of equation (not abs(lhs - rhs) to avoid singularity in derivative)
-"solve(env Environment) Environment" finds the root of absError by building a closure around absError with env and passing the closure to a root-finder.  returned Environment has the appropriate variable set to the root of absError.

self-consistent system:
-interface function "solve(env Environment) Environment" solves all associated self-consistent equations iteratively. returns Environment after system has been solved.
-implementing type holds a slice of self-consistent equations.  those with lowest indexes are highest priority to solve.  start with eq[0]. then do eq[1] followed by eq[0], iterating until both are solved.  continue to eq[2]->1->0, etc.

----

requires packages gsl and gsl-devel to build on fedora