SPEEDUP codes for Phys. Rev. Lett. 94, 180403 (2005)

Codes used in:

A. Bogojevic, A. Balaz and A. Belic
"Systematically accelerated convergence of path integrals"
Phys. Rev. Lett. 94 (2005) 180403
arXiv e-print: cond-mat/0508545

In this paper we presented a new analytical method that systematically improves the convergence of path integrals of a generic N-fold discretized theory. Using it we calculated the effective actions S(p) which lead to the same continuum amplitudes as the starting action, but that converge to that continuum limit as 1/Np. The derived speedup in convergence was checked by performing Monte Carlo simulations on several different models. These ideas are further developed in the following papers:

A. Bogojevic, A. Balaz, and A. Belic,
"Systematic speedup of path integrals of a generic N-fold discretized theory",
Phys. Rev. B 72, 064302 (2005)

A. Bogojevic, A. Balaz, and A. Belic,
"Generalization of Euler's summation formula to path integrals",
Phys. Lett. A 344, 84 (2005)

A. Bogojevic, A. Balaz, and A. Belic,
"Jaggedness of pathe integral trajectories",
Phys. Lett. A 345, 258 (2005)

A. Bogojevic, A. Balaz, and A. Belic,
"Asymptotic Properties of Path Integral Ideals",
Phys. Rev. E 72, 036128 (2005)

The SPEEDUP code contains explicit expressions for the effective actions S^(p) for p <= 18 for the case of a generic theory.

README file from above MPI code

/* Path Integral Monte Carlo code developed by A. Balaz
(antun [at] ipb [dot] ac [dot] rs) for the paper:

"Systematically accelerated convergence of path integrals"
by A. Bogojevic, A. Balaz, and A. Belic
Phys. Rev. Lett. 94, 180403 (2005)

Address: Institute of Physics, Belgrade, Serbia
Scientific Computing Laboratory, http://www.scl.rs/speedup/

Public use and modification of this code is allowed providing the above paper is properly acknowledged. The author would be grateful for all information and/or comments regarding the use of the code.
*/

This MPI code gives a Monte Carlo simulation that calculates imaginary time amplitudes for the transition from a to b in time T for generic thery. The Planck constant hbar=1. Trajectories are generated using the bisection method. The variable s determines the level of bisection, i.e. time discretization N takes the values 2^0, 2^1, ..., 2^s.

The user configurable section is in file p.c. In it users need to define the level parameter p (1 <= p <= 18) and to supply the potential V and its derivatives.

COMPILING:

1) Supply the appropriate level p (by adjusting #define statement) and function V0() in file p.c.
2) A typical serial compiling line (e.g. for level p=2) looks like:

mpicc -O5 -o speedup-p2 main.c p.c nr.c -lm -lsprng -I.

Note that you need to have installed SPRNG libraries, http://sprng.cs.fsu.edu/
(The above example [-lsprng] is for the case of system wide installation of SPRNG.
In the case of a custom installation this needs to be changed appropriatel.)

USAGE:

mpirun [-nolocal] -np NP speedup-p2 T a b s Nmc seed par[0] ...

NP is the number of processes.
speedup-p2 is the compile name of the simulation working at level p=2.

T is the time of propagation.
a is the position at time t=0.
b is the position at time t=T.
s is the bisection level.
Nmc is the number of Monte Carlo samples used.
seed is seed value used by the SPRNG (random number generator).
par[0], ... are additional parameters defining the potential
(initialize as many as needed and use them in the same order
in the user supplied function V0 in file p.c).