• Support PF! Buy your school textbooks, materials and every day products via PF Here!

Quantum Monte-Carlo calculation of Green's function

2
1
Problem Statement
Hi there,

I'm trying to reproduce the results of one article and writing a program that performs calculation of two-point Green's function G(|x'-x|) in 4D using Quantum Monte-Carlo approach.

I'm cosidering the theory of a massive scalar field with a quartic potential (lambda-psi^4).

Here I will denote scalar field as 'psi' just not to mix it up with an azimuthal coordinate 'phi'.

I use spherical coordinates and want to calculate the Green's function along azimuthal coordinate and also to get its dependency on r-coordinate. I consider two points that have similar t, r and theta coordinates but phi-coordinates differ on pi. So that G(|x'-x|) = G(pi).

For different r-coordinates I will get different G(pi).

The problem is that I don't understand how to write down the exact computational formula to obtain this r-dependency.
Relevant Equations
After all the standard steps of Quantum Monte-Carlo simulation I get the configurations of the scalar fields psi(t, r, theta, phi).

Then G(pi) = <psi(t, r, theta, phi)*psi(t, r, theta, phi+pi)>
Introducing the spacetime spherical symmetric lattice, I use the following notifications in my program.
i - index enumerating the nodes along t-coordinate,
j - along the r-coordinate,
k - along the theta-coordinate,
l - along the phi-coordinate.

N_t - the number of nodes along t-coordinate.
N_r - along the r-coordinate,
N_theta - along the theta-coordinate,
N_phi - along the phi-coordinate.

I tried to get the r-dependency as following. I fixed the coordinate r by fixing the j-index, and then calculated G(pi) using the formula:

C++ code

C++:
for(int j=0; j<N_r; j++)
{

G(j) = 0;

for(int i =0: i<N_t; i++)
{
    for(int k=0; k<N_theta; k++)
        {
            for(int l = 0; l<N_phi; l++)
                {
                        G(j)=G(j) + psi(i, j, k, l)*psi(i, j, k, (l+N_phi/2)%N_phi);
                }
        }
}

G(j) = G(j)/(N_t*N_theta*N_phi) //average along t, theta, phi directions

}

Here (l+N_phi/2)%N_phi ensures that |x'-x| = π.

However, this algorithm seems to be incorrect. Comparing the results with an article, I obtain incorrect graphics for G(pi) dependence on r.

Would be glad if someone gives an advice on it. Thanks in advance!
 

Want to reply to this thread?

"Quantum Monte-Carlo calculation of Green's function" You must log in or register to reply here.

Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving
Top