-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
99 lines (81 loc) · 3.66 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
CONTENTS
--Compilation and dependencies
--Usage and input
--Output
--A brief sketch of the phase diagram
--Comparison with arXiv:0902.0045
+++COMPILATION AND DEPENDENCIES
To compile the (serial) executable `2d_phi4` using g++, just run `make`
GSL is required: https://www.gnu.org/software/gsl/
+++USAGE AND INPUT
The `2d_phi4` program takes five command-line parameters:
$ ./2d_phi4 mu_0^2 lambda L init meas
* mu_0^2 is the bare mass squared in the lagrangian
* lambda is the bare phi^4 coupling in the lagrangian
* L is the length of each side of the (square) lattice
* init is the number of iterations with which to initialize the system
* meas is the number of iterations subsequently run with measurements
Lagrangian normalization conventions (in euclidean space):
L = (1/2)d_nu phi d^nu phi + (1/2)mu_0^2 phi^2 + (1/4)lambda phi^4
+++OUTPUT
Each iteration consists of _gap_ Metropolis sweeps of the lattice,
followed by a Wolff cluster flip acting on the embedded Ising system
Currently gap=5 is hard-coded, but may not be optimal...
After each Metropolis + Wolff iteration we print:
* The energy E and magnetization phi
* The position-space two-point function (L/2 real components)
* The momentum-space two-point function (L/2 complex components)
The spatial two-point function uses simple "Manhattan distances"
This can be improved if it would be worthwhile...
At the end of the _meas_ iterations we print:
* The autocorrelation time of |phi|,
the resulting (non-integer) number of decorrelated measurements
and the normalization Chi[0] of the autocorrelation function
* The average energy <E> and <|phi|>
with uncertainties incorporating the autocorrelation time,
and <phi> itself
(which should be near zero due to either disorder or cluster flipping)
* Derived quantities:
The specific heat <E^2> - <E>^2
The susceptibility <phi^2> - <|phi|>^2
The Binder cumulant 1 - <phi^4> / (3 * <phi^2>^2);
The bimodality (with a 21-bin histogram currently hard-coded)
* The average position-space two-point function (without uncertainties)
* The average momentum-space two-point function (without uncertainties)
Currently no uncertainties are estimated for the derived quantities
If we continue to include them
(rather than moving these analyses to offline scripts)
then a jackknife or bootstrap procedure should be added...
+++A BRIEF SKETCH OF THE PHASE DIAGRAM
We typically fix lambda and vary mu_0 to find the transition
Listed below are the approximate mu_0 of the transition for various lambda
The transitions are broader for smaller L and sharpen as L increases
Less negative mu_0 put the system in the symmetric (disordered) phase
More negative mu_0 put the system in the broken (ordered) phase
lambda = 1.00 --> mu_0 ~ -1.27
lambda = 0.70 --> mu_0 ~ -0.95
lambda = 0.50 --> mu_0 ~ -0.72
lambda = 0.25 --> mu_0 ~ -0.40
lambda = 0.10 --> mu_0 ~ -0.18
lambda = 0.05 --> mu_0 ~ -0.10
lambda = 0.03 --> mu_0 ~ -0.06
lambda = 0.02 --> mu_0 ~ -0.04
lambda = 0.01 --> mu_0 ~ -0.02
+++COMPARISON WITH arXiv:0902.0045
These are some 32x32 lambda=0.5 results included in arXiv:0902.0045
$ cd ~/zarchives/Amherst/thesis/code/Phi4/productionRun/
$ grep "^-0.7,0.5" 32-50.csv
arXiv:0902.0045 says that file used 16384+16384 iterations, so compare it with
$ time ./2d_phi4 -0.7 0.5 32 16384 16384
Comparison: arXiv current
<E> 0.359025 0.359657
<E>_err 0.000979 0.000906
<|phi|> 0.434639 0.432487
<|phi|>_err 0.006402 0.005864
spec heat 0.806815 0.798230
suscept 34.468476 33.440455
binder 0.524037 0.526073
bimod 0.707902 0.751980
<phi> 0.001692 0.006261
autocor 9.974279 8.625745
autocor(0) 0.033661 0.032657