Skip to content

Commit 543ee44

Browse files
committed
some docu update
1 parent 8aee149 commit 543ee44

6 files changed

+106
-86
lines changed

README.phmc

+13-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
See doc/2+1+1_howto.text for more details
22

3+
as a test the following parameter set can be used (see also
4+
sample-input/sample-hmc2.input):
5+
Kappa = 0.170
6+
2KappaMu = 0.01
7+
2Kappamubar = 0.1105
8+
2Kappaepsbar = 0.0935
9+
beta=3.3
10+
tlsym gauge action
11+
antiperiodic boundary conditions for quark fields
12+
13+
P = 0.53347(17)
14+
P_rec = 0.30393(22)
15+
316

417
How it roughly works:
518
- Decide for a fixed order n of the less accurate polynomial
@@ -27,12 +40,3 @@ todo:
2740
- on BG/L?
2841
- reduce memory usage?
2942

30-
-------
31-
comment by Thomas Chiarappa:
32-
33-
Untill today, May 17. 2006
34-
35-
If one want to compute EV, remember to configure with
36-
37-
--disable-gaugecopy
38-

benchmark.c

+4-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "boundary.h"
2929
#include "Hopping_Matrix.h"
3030
#include "Hopping_Matrix_nocom.h"
31+
#include "tm_operators.h"
3132
#include "global.h"
3233
#include "xchange.h"
3334
#include "init_gauge_field.h"
@@ -252,8 +253,9 @@ int main(int argc,char *argv[])
252253
#endif
253254
for (j=0;j<j_max;j++) {
254255
for (k=0;k<k_max;k++) {
255-
Hopping_Matrix(0, g_spinor_field[k+k_max], g_spinor_field[k]);
256-
Hopping_Matrix(1, g_spinor_field[k+2*k_max], g_spinor_field[k+k_max]);
256+
Qtm_plus_psi(g_spinor_field[k+2*k_max], g_spinor_field[k]);
257+
/* Hopping_Matrix(0, g_spinor_field[k+k_max], g_spinor_field[k]); */
258+
/* Hopping_Matrix(1, g_spinor_field[k+2*k_max], g_spinor_field[k+k_max]); */
257259
}
258260
}
259261
#if defined BGL

doc/2+1+1_howto.text

+85-75
Original file line numberDiff line numberDiff line change
@@ -17,84 +17,94 @@ polynomial.
1717
------------------------------------
1818

1919
Well, this should be quite automatic. However, you need lapack and
20-
blas in order to build the phmc_tm executable. Make sure that you have
20+
blas in order to build the executable. Make sure that you have
2121
both available and configure/make the hmc code accordingly. If
22-
successful, you will find the executable phmc_tm in your build
22+
successful, you will find the executable hmc_tm in your build
2323
directory.
2424

2525
1. Setup the "hmc.input" file
2626
------------------------------------
2727

28-
Set the parameters for your desired simulation (only 2+1+1 specific parameters are
29-
discussed here) :
30-
hmc.input:
31-
32-
# hopping parameter
33-
# set this to kappa_critical for maximum twist
34-
kappa = 0.1234
35-
36-
# twisted mass, set this parameter to
37-
# 2*kappa*mu_desired
38-
# where mu_desired is the quark mass you want to simulate
39-
# in the LIGHT quark sector
40-
mu = 0.00005
41-
42-
# twisted mass for the heavy sector
43-
# set this to the mean value of the mass of the HEAVY quarks
44-
# you want to simulate e.g. M_s=0.02 M_c=0.2 ==>
45-
PhmcMubar = 0.11
46-
47-
# split of the mass in the HEAVY quark sector
48-
# set this to (M_c-M_s)/2
49-
# such that you get finally:
50-
# M_s=PhmcMubar - PhmcEpsbar
51-
# M_c=PhmcMubar + PhmcEpsbar
52-
PhmcEpsbar = 0.09
53-
54-
# As we want to simulate "2+1+1" we have to say this to the program
55-
PhmcNoFlavours = 2+1+1
56-
57-
# If you want to calculate the eigenvalues every n'th trajectory
58-
# then set this parameter to n if you want no eigenvalues set this to 0
59-
# during thermalization you should set this to 1 or 2 to follow the evolution
60-
# of smallest and largest eigenvalue to adjust the approximation interval
61-
# of the polynomial (see below)
62-
PhmcRecEVInterval = 1
63-
64-
# Setting the polynomial parameters:
65-
# ---------------------------------
66-
# you should have a first estimate for the smallest and largest eigenvalue
67-
# of the HEAVY quark operator. as an estimate you can take
68-
# PhmcStildeMin = 2*(PhmcMubar^2-PhmcEpsbar^2) and
69-
# PhmcStildeMax = 1/2/sqrt(PhmcMubar^2 + PhmcEpsbar^2) (taken from
70-
# [1] )
71-
# set the following parameter to your estimate of the smallest eigenvalue
72-
PhmcStildeMin = 0.008
73-
74-
# and this to an upper bound of all eigenvalues
75-
#
76-
PhmcStildeMax = 3.6
77-
78-
# an estimate for the error of an approximation of 1/sqrt(x) by a chebycheff
79-
# polynomial is given by (found in [2]):
80-
# delta = 2*((1-sqrt(ratio))/(1+sqrt(ratio)))^(n+1)
81-
# where ratio = PhmcStildeMin/PhmcStildeMax
82-
# and "n" is the degree of the chebycheff polynomial
83-
# e.g.: if you take the values from above and want an delta of 0.0001
84-
# you have to set the degree to 104:
85-
PhmcDegreeOfP = 104
86-
87-
# To make the calculation of the hamiltonian more precise the program uses
88-
# a second polynomial Ptilde.
89-
# with the following parameter you can adjust the
90-
# precision of the whole approximation of 1/sqrt(x)= Ptilde(x)*P(x)*(1+Rtilde(x))
91-
# with |Rtilde(x)| ~ PhmcPrecisionPtilde (see also [1])
92-
93-
PhmcPrecisionPtilde = 1.0e-9
94-
95-
# end of hmc.input
96-
97-
Now you should have a proper hmc.input file
28+
Set the parameters for your desired simulation (only 1+1 specific parameters are
29+
discussed here) :
30+
hmc.input:
31+
32+
# hopping parameter
33+
# set this to kappa_critical for maximum twist
34+
kappa = 0.1234
35+
36+
# twisted mass, set this parameter to
37+
# 2*kappa*mu_desired
38+
# where mu_desired is the quark mass you want to simulate
39+
# in the LIGHT quark sector
40+
mu = 0.00005
41+
42+
# twisted mass for the heavy sector
43+
# set this to the mean value of the mass of the HEAVY quarks
44+
# you want to simulate e.g. M_s=0.02 M_c=0.2 ==>
45+
2KappaMubar = 0.11
46+
47+
# split of the mass in the HEAVY quark sector
48+
# set this to (M_c-M_s)/2
49+
# such that you get finally:
50+
# M_s=PhmcMubar - PhmcEpsbar
51+
# M_c=PhmcMubar + PhmcEpsbar
52+
2KappaEpsbar = 0.09
53+
54+
# Setting the polynomial parameters:
55+
# create a NDPOLY monomial first (see docu)
56+
BeginMonomial NDPOLY
57+
58+
# If you want to calculate the eigenvalues every n'th trajectory
59+
# then set this parameter to n if you want no eigenvalues set this to 0
60+
# during thermalization you should set this to 1 or 2 to follow the evolution
61+
# of smallest and largest eigenvalue to adjust the approximation interval
62+
# of the polynomial (see below)
63+
ComputeEVFreq = 1
64+
65+
# ---------------------------------
66+
# you should have a first estimate for the smallest and largest eigenvalue
67+
# of the HEAVY quark operator. as an estimate you can take
68+
# StildeMin = 2*(PhmcMubar^2-PhmcEpsbar^2) and
69+
# StildeMax = 1/2/sqrt(PhmcMubar^2 + PhmcEpsbar^2) (taken from
70+
# [1] )
71+
# set the following parameter to your estimate of the smallest eigenvalue
72+
# or a little below
73+
#
74+
StildeMin = 0.008
75+
76+
# and this to an upper bound of all eigenvalues
77+
#
78+
StildeMax = 3.6
79+
80+
# an estimate for the error of an approximation of 1/sqrt(x) by a chebycheff
81+
# polynomial is given by (found in [2]):
82+
# delta = 2*((1-sqrt(ratio))/(1+sqrt(ratio)))^(n+1)
83+
# where ratio = PhmcStildeMin/PhmcStildeMax
84+
# and "n" is the degree of the chebycheff polynomial
85+
# e.g.: if you take the values from above and want an delta of 0.0001
86+
# you have to set the degree to 104:
87+
DegreeOfMDPolynomial = 104
88+
89+
# To make the calculation of the hamiltonian more precise the program uses
90+
# a second polynomial Ptilde.
91+
# with the following parameter you can adjust the
92+
# precision of the whole approximation of 1/sqrt(x)= Ptilde(x)*P(x)*(1+Rtilde(x))
93+
# with |Rtilde(x)| ~ PhmcPrecisionPtilde (see also [1])
94+
95+
PrecisionPtilde = 1.0e-9
96+
97+
# and you have to specify on which timescale to integrate the 1+1 part
98+
Timescale = 1
99+
100+
EndMonomial
101+
# you will need other monomials and an integrator, see docu
102+
# end of hmc.input
103+
104+
Now you should have a proper hmc.input file. For a complete example
105+
see the file
106+
hmc/sample-input/sample-hmc2.input
107+
and the comments therein.
98108

99109
2. Creating a polynomial
100110
-----------------------------------
@@ -146,11 +156,11 @@ During the thermalization you should keep track of the lowest and largest
146156
eigenvalue. this can be done by filtering the job output file.
147157
cat job.12345.out|grep -A6 LAMBDA
148158
. Alternating you get the (actually) four smallest and four largest
149-
eigenvalues normalized to the value of PhmcStildeMax you set in
159+
eigenvalues normalized to the value of StildeMax you set in
150160
hmc.input file. To get the unscaled eigenvalue you have to multiply the
151-
values by PhmcStildeMax.
161+
values by StildeMax.
152162
If the eigenvalues you measured are outside the approximation interval
153-
[PhmcStildeMin,PhmcStildeMax] you have to re-adjust these values (in hmc.input) and
163+
[StildeMin, StildeMax] you have to re-adjust these values (in hmc.input) and
154164
also regenerate the files
155165

156166
Square_root_BR_roots.dat

sample-input/sample-hmc0.input

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# $Id$
22
# this sample corresponds to the first case in README
3+
# the expected plaquette value is 0.62457(7)
34
L=4
45
T=4
56
Measurements = 100000

sample-input/sample-hmc1.input

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# $Id$
22
# this sample corresponds to the first case in README
33
# like sample-hmc0.input, but with preconditioning
4+
# the expected plaquette value is 0.62457(7)
45
L=4
56
T=4
67
Measurements = 100000

sample-input/sample-hmc2.input

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# and normierungLocal.dat in this directory
55
# they were generated using the chebyRoot.H file, which can also
66
# be found in this directory
7+
# the expected plaquette value is 0.53347(17)
8+
# the expected rect. plaq. value is 0.30393(22)
79
L=4
810
T=4
911
Measurements = 35000

0 commit comments

Comments
 (0)