Giter Site home page Giter Site logo

dqmc_sign's Introduction

Determinant Quantum Monte Carlo

Algorithm

  1. Initialize H-S field for all space-time point by choosing randomly from $[-1,1]$.
  2. Calculate propagators $B_{\phi}(\tau,0)$ for all time slice between $[\beta, 0]$, use UDV stablization technique and store all U,D,V matrices.
  3. Sweep backward then forward
  4. Perform measurements after each sweep
  5. Iterate 3-4 until measurement operator converge

Details of sweep

Define direction of propagating: forward $[0,1,...,N_\tau]$, backward $[N_\tau,N_\tau-1,...,1]$.

For each $B_{\phi}(\tau,0)$, $U$, $D$, $V$ is stored,

$U = [U_0,U_1,...,U_{N_\tau}] $, $D = [D_0, D_1,..., D_{N_\tau}] $, $V = [V_0, V_1,..., V_{N_\tau}] $.

  1. For each time-slice,

    1. flip each field at space according to acceptance ratio
    2. Update H-S field, Green function if accept proposal
    3. Replace the elements of $U$, $D$, $V$ by the new one after Green function is computed
  2. Advance equal time Green function by $$ G(\tau_2,\tau_2) = B(\tau_2,\tau_1) G(\tau_1,\tau_1) B(\tau_2,\tau_1)^{-1}. $$ PS. propagator of $B(\tau_2,\tau_1)$ is calculated using the new configuration of H-S field.

  3. Every $N_{stable}$ time slice, recompute equal time Green function from propagator using SVD decomposition

$$ G(\tau,\tau) = [I - B(\tau,0)B(\beta,\tau)]^{-1}. $$

Details on update of $U$, $D$, $V$

Starting from $B(\beta,\beta)$, replace the SVD decompostion of $B(\beta,0)$ by that of $I$ after comptating the equal time Green function $G(\beta,\beta)$.

Then replace the SVD decompostion of $B(\beta-\Delta \tau,0 )$ by that of $B(\beta,\beta -\Delta \tau)$.

For both backward sweep and forward sweep, we just need to do the replacement along the direction defined above.

Measurement

Total number of electrons to determine the doping of electron. $$ \hat{N} = \sum_i c_i^\dagger c_i. $$

It is equal to average of $ N - \text{Tr}(G(\tau,\tau))$, where $N$ is the largest electron number.

If we sample the distribution $|P_{\phi}|$ instead of $P_{\phi}$, the measurement of an operator should be modified as

$$ \langle \hat{O} \rangle = \frac{\langle O_{\phi} \times sign[P_{\phi}] \rangle_{\phi} }{ \langle sign[P_{\phi}] \rangle_{\phi}}. $$

Sign of Monte Carlo weight $$ sign[\det[I-B(\beta,0)]] $$

In pratical, we collect quantity

$$ sign[\det[G(\beta,\beta)^{-1}]] = sign[\det[G(\beta,\beta)]] \ = sign[\det[G(0,0)]] $$

Other Mathematical formula

Propagator

$$ B_{\phi}(\tau,\tau-d\tau) = e^{-d\tau T} e^{V(\phi(\tau))} $$

Green function

$$ G(\tau,\tau)_{i,j} = \langle c(\tau)_i c(\tau)^\dagger_j \rangle $$

Deviation of $\exp(-V(\phi))$, $\Delta$

Only flip one site each time

$$\Delta(\tau){ij} = \delta{i,n}\delta_{j,n} \Delta(\tau)_{nn}$$

Furthermore, we have

$$ \Delta(\tau)_{ii} = e^{\alpha\sigma (\phi(i)' - \phi(i)) } - 1 \\ = e^{-2\alpha\sigma \phi(i) } - 1 $$

with $\phi(i)' = -\phi(i)$

Acceptance ratio

$$R = \det[I + \Delta(i,\tau) (I - G(\tau,\tau))] \ = 1+ \Delta(\tau){ii}(1 - G(\tau,\tau){ii})$$

Green function update

$$ G_{jk} \rightarrow G_{jk} - \frac{1}{R} G_{ji} \Delta(\tau){ii} (I - G){ik} $$

For spin up or spin down $R$ should be $R^{\sigma}$

Compute Green function by SVD

$$ G(\tau,\tau) = [I-B_{\phi}(\tau,0) B_{\phi}(\beta,\tau)]^{-1} = (VU_L)^{-1} D^{-1} (U_RU)^{-1}. $$

$U$,$D$,$V$ are the decompostion of $$ (U_LU_R)^{-1} + D_RV_RV_LD_L. $$

$$ B_{\phi}(\tau,0) = U_R D_R V_R $$ and

$$ B_{\phi}(\beta,\tau) = V_L D_L U_L $$

Spinful case

Parts for spin up and spin down are decoupled. $B_\phi$, $G_{\phi}$ are both direct product of spin up and spin down.

The acceptance ratio should be product of contributions of spin up and spin down as $$ R = R^{\uparrow} R^{\downarrow} $$

Reference

Chapter 7 in Quantum Monte Carlo Methods

A brief introduction of DQMC study in itinerant quantum critical point

dqmc_sign's People

Contributors

l0s0dragon avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.