Skip to content

Commit 0afaf6e

Browse files
jorindevandevisbenoitlaurent96og113
authored
Remove thermal mass (#352)
* removed thermal mass from particle.py and inert doublet model * fixed conftest * removed thermal mass from singletZ2 * removed thermal mass from ManySinglets, Yukawa and SM * Removed the question about msqThermal in the FAQ * Fixed line numbers in first example --------- Co-authored-by: Benoit Laurent <benoit.laurent96@gmail.com> Co-authored-by: Oliver Gould <oliver.gould@nottingham.ac.uk>
1 parent 79adb5c commit 0afaf6e

File tree

9 files changed

+3
-64
lines changed

9 files changed

+3
-64
lines changed

Models/InertDoubletModel/inertDoubletModel.py

-13
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,11 @@ def topMsqVacuum(fields: Fields) -> Fields:
125125
def topMsqDerivative(fields: Fields) -> Fields:
126126
return self.modelParameters["yt"] ** 2 * fields.getField(0)
127127

128-
def topMsqThermal(T: float) -> float:
129-
return self.modelParameters["g3"] ** 2 * T**2 / 6.0
130-
131128
topQuarkL = Particle(
132129
name="TopL",
133130
index=0,
134131
msqVacuum=topMsqVacuum,
135132
msqDerivative=topMsqDerivative,
136-
msqThermal=topMsqThermal,
137133
statistics="Fermion",
138134
totalDOFs=6,
139135
)
@@ -144,7 +140,6 @@ def topMsqThermal(T: float) -> float:
144140
index=1,
145141
msqVacuum=topMsqVacuum,
146142
msqDerivative=topMsqDerivative,
147-
msqThermal=topMsqThermal,
148143
statistics="Fermion",
149144
totalDOFs=6,
150145
)
@@ -157,15 +152,11 @@ def WMsqVacuum(fields: Fields) -> Fields: # pylint: disable=invalid-name
157152
def WMsqDerivative(fields: Fields) -> Fields: # pylint: disable=invalid-name
158153
return self.modelParameters["g2"] ** 2 * fields.getField(0) / 2
159154

160-
def WMsqThermal(T: float) -> float: # pylint: disable=invalid-name
161-
return self.modelParameters["g2"] ** 2 * T**2 * 11.0 / 6.0
162-
163155
wBoson = Particle(
164156
name="W",
165157
index=4,
166158
msqVacuum=WMsqVacuum,
167159
msqDerivative=WMsqDerivative,
168-
msqThermal=WMsqThermal,
169160
statistics="Boson",
170161
totalDOFs=9,
171162
)
@@ -177,16 +168,12 @@ def heavyScalarMsqVacuum(fields: Fields) -> Fields:
177168

178169
def heavyScalarMsqDerivative(fields: Fields) -> Fields:
179170
return self.modelParameters["lambda3"]*fields.getField(0)
180-
181-
def heavyScalarThermal(T: float) -> float:
182-
return self.modelParameters["lambda3"] * T**2 / 24.0
183171

184172
heavyScalar = Particle(
185173
name="A",
186174
index=6,
187175
msqVacuum=heavyScalarMsqVacuum,
188176
msqDerivative=heavyScalarMsqDerivative,
189-
msqThermal=heavyScalarThermal,
190177
statistics="Boson",
191178
totalDOFs=3,
192179
)

Models/ManySinglets/manySinglets.py

-4
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,11 @@ def topMsqDerivative(fields: Fields) -> Fields:
123123
]
124124
)
125125

126-
def topMsqThermal(T: float) -> float:
127-
return self.modelParameters["g3"] ** 2 * T**2 / 6.0
128-
129126
topQuark = Particle(
130127
"top",
131128
index=0,
132129
msqVacuum=topMsqVacuum,
133130
msqDerivative=topMsqDerivative,
134-
msqThermal=topMsqThermal,
135131
statistics="Fermion",
136132
totalDOFs=12,
137133
)

Models/SingletStandardModel_Z2/singletStandardModelZ2.py

-8
Original file line numberDiff line numberDiff line change
@@ -130,15 +130,11 @@ def topMsqDerivative(fields: Fields) -> Fields:
130130
[fields.getField(0), 0 * fields.getField(1)]
131131
)
132132

133-
def topMsqThermal(T: float) -> float:
134-
return self.modelParameters["g3"] ** 2 * T**2 / 6.0
135-
136133
topQuark = Particle(
137134
"top",
138135
index=0,
139136
msqVacuum=topMsqVacuum,
140137
msqDerivative=topMsqDerivative,
141-
msqThermal=topMsqThermal,
142138
statistics="Fermion",
143139
totalDOFs=12,
144140
)
@@ -155,15 +151,11 @@ def gluonMsqVacuum(fields: Fields) -> Fields:
155151
def gluonMsqDerivative(fields: Fields) -> Fields:
156152
return np.zeros_like(fields)
157153

158-
def gluonMsqThermal(T: float) -> float:
159-
return self.modelParameters["g3"] ** 2 * T**2 * 2.0
160-
161154
gluon = Particle(
162155
"gluon",
163156
index=1,
164157
msqVacuum=gluonMsqVacuum,
165158
msqDerivative=gluonMsqDerivative,
166-
msqThermal=gluonMsqThermal,
167159
statistics="Boson",
168160
totalDOFs=16,
169161
)

Models/StandardModel/standardModel.py

-9
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,11 @@ def topMsqVacuum(fields: Fields) -> Fields:
119119
def topMsqDerivative(fields: Fields) -> Fields:
120120
return self.modelParameters["yt"] ** 2 * fields.getField(0)
121121

122-
def topMsqThermal(T: float) -> float:
123-
return self.modelParameters["g3"] ** 2 * T**2 / 6.0
124-
125122
topQuarkL = Particle(
126123
name="TopL",
127124
index=0,
128125
msqVacuum=topMsqVacuum,
129126
msqDerivative=topMsqDerivative,
130-
msqThermal=topMsqThermal,
131127
statistics="Fermion",
132128
totalDOFs=6,
133129
)
@@ -138,7 +134,6 @@ def topMsqThermal(T: float) -> float:
138134
index=1,
139135
msqVacuum=topMsqVacuum,
140136
msqDerivative=topMsqDerivative,
141-
msqThermal=topMsqThermal,
142137
statistics="Fermion",
143138
totalDOFs=6,
144139
)
@@ -151,15 +146,11 @@ def WMsqVacuum(fields: Fields) -> Fields: # pylint: disable=invalid-name
151146
def WMsqDerivative(fields: Fields) -> Fields: # pylint: disable=invalid-name
152147
return self.modelParameters["g2"] ** 2 * fields.getField(0) / 2
153148

154-
def WMsqThermal(T: float) -> float: # pylint: disable=invalid-name
155-
return self.modelParameters["g2"] ** 2 * T**2 * 3.0 / 5.0
156-
157149
wBoson = Particle(
158150
name="W",
159151
index=4,
160152
msqVacuum=WMsqVacuum,
161153
msqDerivative=WMsqDerivative,
162-
msqThermal=WMsqThermal,
163154
statistics="Boson",
164155
totalDOFs=9,
165156
)

Models/Yukawa/yukawa.py

-6
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,11 @@ def psiMsqDerivative(fields: Fields) -> Fields:
6464
)
6565
)
6666

67-
# Asymptotic thermal mass (twice the static thermal mass)
68-
def psiMsqThermal(T: float) -> float:
69-
return 1 / 8 * self.modelParameters["y"] ** 2 * T**2
70-
7167
psiL = Particle(
7268
"psiL",
7369
index=1,
7470
msqVacuum=psiMsqVacuum,
7571
msqDerivative=psiMsqDerivative,
76-
msqThermal=psiMsqThermal,
7772
statistics="Fermion",
7873
totalDOFs=2,
7974
)
@@ -82,7 +77,6 @@ def psiMsqThermal(T: float) -> float:
8277
index=2,
8378
msqVacuum=psiMsqVacuum,
8479
msqDerivative=psiMsqDerivative,
85-
msqThermal=psiMsqThermal,
8680
statistics="Fermion",
8781
totalDOFs=2,
8882
)

docs/source/faqs.rst

-5
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,6 @@ Model requirements
9999
Note that this parameter needs to be of the type Fields. If the particle is in equilibrium the type does not matter, and it
100100
msqVacuum can simply be set to zero.
101101

102-
- **What is the msqThermal in the Particle defintion?**
103-
104-
This is the (field-independent) thermal mass of the particle. It is used in the propagator in the matrix elements, and
105-
regularizes the IR-divergence in the limit of vanishing Mandelstam variables t and u.
106-
107102
- **How do I cound the totalDOFs in the Particle definition?**
108103

109104
totalDOFs counts the total number of degrees of freedom for a particle species. This includes summing over e.g. spins and colors.

docs/source/firstExample.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ The definition of the Model starts by inheriting from the :py:data:`WallGo.Gener
1818

1919
.. literalinclude:: ../../Models/Yukawa/yukawa.py
2020
:language: py
21-
:lines: 6-90
21+
:lines: 6-84
2222

2323
The scalar potential is used both for determining the free energy of homogeneous phases and for the shape and width of the bubble wall. In principle the potentials determining these two phenomena are different, as the former is coarse grained all the way to infinite length scales, while the latter can only consistenly be coarse grained on length scales shorter than the bubble wall width. :footcite:p:`Langer:1974cpa` Nervertheless, at high temperatures and to leading order in powers of the coupling, these two potentials agree.
2424

@@ -45,15 +45,15 @@ The implementation in WallGo is as follows: one defines a class, here called :py
4545

4646
.. literalinclude:: ../../Models/Yukawa/yukawa.py
4747
:language: py
48-
:lines: 93-152
48+
:lines: 88-146
4949

5050
The initialisation of an :py:data:`WallGo.EffectivePotential` object takes the model parameters and the number of background scalar fields as arguments and stores them for use in evaluating the potential. It is possible to override other member functions when defining :py:data:`WallGo.EffectivePotentialYukawa`, such as the initialisation function, or to add additional member functions and variables, though we haven't done so in this simple example.
5151

5252
Once these two classes have been defined, we can now run WallGo to compute the bubble wall speed.
5353

5454
.. literalinclude:: ../../Models/Yukawa/yukawa.py
5555
:language: py
56-
:lines: 155-216
56+
:lines: 149-210
5757

5858
**********
5959
References

src/WallGo/particle.py

-15
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ def __init__(
2222
index: int,
2323
msqVacuum: typing.Callable[[Fields | FieldPoint], np.ndarray],
2424
msqDerivative: typing.Callable[[Fields | FieldPoint], np.ndarray],
25-
msqThermal: typing.Callable[[float], float],
2625
statistics: str,
2726
totalDOFs: int,
2827
) -> None:
@@ -42,10 +41,6 @@ def __init__(
4241
msqDerivative : function
4342
Function :math:`d(m_0^2)/d(\phi)`, should take a Fields or FieldPoints
4443
object and return an array of shape Fields.shape.
45-
msqThermal : function
46-
Function :math:`m^2_T(T)`, should take a float and return one. The
47-
temperature dependent but background field independent part of the
48-
effective mass squared.
4944
statistics : {\"Fermion\", \"Boson\"}
5045
Particle statistics.
5146
totalDOFs : int
@@ -63,15 +58,13 @@ def __init__(
6358
index,
6459
msqVacuum,
6560
msqDerivative,
66-
msqThermal,
6761
statistics,
6862
totalDOFs,
6963
)
7064
self.name = name
7165
self.index = index
7266
self.msqVacuum = msqVacuum
7367
self.msqDerivative = msqDerivative
74-
self.msqThermal = msqThermal
7568
self.statistics = statistics
7669
self.totalDOFs = totalDOFs
7770

@@ -81,7 +74,6 @@ def _validateInput( # pylint: disable=unused-argument
8174
index: int,
8275
msqVacuum: typing.Callable[[Fields], np.ndarray],
8376
msqDerivative: typing.Callable[[Fields], np.ndarray],
84-
msqThermal: typing.Callable[[float], float],
8577
statistics: str,
8678
totalDOFs: int,
8779
) -> None:
@@ -92,13 +84,6 @@ def _validateInput( # pylint: disable=unused-argument
9284
# assert isinstance(msqVacuum(fields), float), \
9385
# f"msqVacuum({fields}) must return float"
9486

95-
# LN: comment mass check out to prevent errors at model creation time if no valid params have yet been passed
96-
"""
97-
temperature = 100
98-
assert isinstance(
99-
msqThermal(temperature), float
100-
), f"msqThermal({temperature}) must return float"
101-
"""
10287
if statistics not in Particle.STATISTICS_OPTIONS:
10388
raise ValueError(f"{statistics=} not in {Particle.STATISTICS_OPTIONS}")
10489
assert isinstance(totalDOFs, int), "totalDOFs must be an integer"

tests/conftest.py

-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ def particle() -> WallGo.Particle:
5353
msqDerivative=lambda fields: np.transpose(
5454
[fields.getField(0), 0 * fields.getField(1)]
5555
),
56-
msqThermal=lambda T: 0.1 * T**2,
5756
statistics="Fermion",
5857
totalDOFs=12,
5958
)

0 commit comments

Comments
 (0)