diff --git a/Models/InertDoubletModel/inertDoubletModel.py b/Models/InertDoubletModel/inertDoubletModel.py index 163480d9..1e0c1995 100644 --- a/Models/InertDoubletModel/inertDoubletModel.py +++ b/Models/InertDoubletModel/inertDoubletModel.py @@ -125,15 +125,11 @@ def topMsqVacuum(fields: Fields) -> Fields: def topMsqDerivative(fields: Fields) -> Fields: return self.modelParameters["yt"] ** 2 * fields.getField(0) - def topMsqThermal(T: float) -> float: - return self.modelParameters["g3"] ** 2 * T**2 / 6.0 - topQuarkL = Particle( name="TopL", index=0, msqVacuum=topMsqVacuum, msqDerivative=topMsqDerivative, - msqThermal=topMsqThermal, statistics="Fermion", totalDOFs=6, ) @@ -144,7 +140,6 @@ def topMsqThermal(T: float) -> float: index=1, msqVacuum=topMsqVacuum, msqDerivative=topMsqDerivative, - msqThermal=topMsqThermal, statistics="Fermion", totalDOFs=6, ) @@ -157,15 +152,11 @@ def WMsqVacuum(fields: Fields) -> Fields: # pylint: disable=invalid-name def WMsqDerivative(fields: Fields) -> Fields: # pylint: disable=invalid-name return self.modelParameters["g2"] ** 2 * fields.getField(0) / 2 - def WMsqThermal(T: float) -> float: # pylint: disable=invalid-name - return self.modelParameters["g2"] ** 2 * T**2 * 11.0 / 6.0 - wBoson = Particle( name="W", index=4, msqVacuum=WMsqVacuum, msqDerivative=WMsqDerivative, - msqThermal=WMsqThermal, statistics="Boson", totalDOFs=9, ) @@ -177,16 +168,12 @@ def heavyScalarMsqVacuum(fields: Fields) -> Fields: def heavyScalarMsqDerivative(fields: Fields) -> Fields: return self.modelParameters["lambda3"]*fields.getField(0) - - def heavyScalarThermal(T: float) -> float: - return self.modelParameters["lambda3"] * T**2 / 24.0 heavyScalar = Particle( name="A", index=6, msqVacuum=heavyScalarMsqVacuum, msqDerivative=heavyScalarMsqDerivative, - msqThermal=heavyScalarThermal, statistics="Boson", totalDOFs=3, ) diff --git a/Models/ManySinglets/manySinglets.py b/Models/ManySinglets/manySinglets.py index 202dc03f..79aad551 100644 --- a/Models/ManySinglets/manySinglets.py +++ b/Models/ManySinglets/manySinglets.py @@ -123,15 +123,11 @@ def topMsqDerivative(fields: Fields) -> Fields: ] ) - def topMsqThermal(T: float) -> float: - return self.modelParameters["g3"] ** 2 * T**2 / 6.0 - topQuark = Particle( "top", index=0, msqVacuum=topMsqVacuum, msqDerivative=topMsqDerivative, - msqThermal=topMsqThermal, statistics="Fermion", totalDOFs=12, ) diff --git a/Models/SingletStandardModel_Z2/singletStandardModelZ2.py b/Models/SingletStandardModel_Z2/singletStandardModelZ2.py index 6c53cc8a..1d56e925 100644 --- a/Models/SingletStandardModel_Z2/singletStandardModelZ2.py +++ b/Models/SingletStandardModel_Z2/singletStandardModelZ2.py @@ -130,15 +130,11 @@ def topMsqDerivative(fields: Fields) -> Fields: [fields.getField(0), 0 * fields.getField(1)] ) - def topMsqThermal(T: float) -> float: - return self.modelParameters["g3"] ** 2 * T**2 / 6.0 - topQuark = Particle( "top", index=0, msqVacuum=topMsqVacuum, msqDerivative=topMsqDerivative, - msqThermal=topMsqThermal, statistics="Fermion", totalDOFs=12, ) @@ -155,15 +151,11 @@ def gluonMsqVacuum(fields: Fields) -> Fields: def gluonMsqDerivative(fields: Fields) -> Fields: return np.zeros_like(fields) - def gluonMsqThermal(T: float) -> float: - return self.modelParameters["g3"] ** 2 * T**2 * 2.0 - gluon = Particle( "gluon", index=1, msqVacuum=gluonMsqVacuum, msqDerivative=gluonMsqDerivative, - msqThermal=gluonMsqThermal, statistics="Boson", totalDOFs=16, ) diff --git a/Models/StandardModel/standardModel.py b/Models/StandardModel/standardModel.py index 2698a324..9dc51d0a 100644 --- a/Models/StandardModel/standardModel.py +++ b/Models/StandardModel/standardModel.py @@ -119,15 +119,11 @@ def topMsqVacuum(fields: Fields) -> Fields: def topMsqDerivative(fields: Fields) -> Fields: return self.modelParameters["yt"] ** 2 * fields.getField(0) - def topMsqThermal(T: float) -> float: - return self.modelParameters["g3"] ** 2 * T**2 / 6.0 - topQuarkL = Particle( name="TopL", index=0, msqVacuum=topMsqVacuum, msqDerivative=topMsqDerivative, - msqThermal=topMsqThermal, statistics="Fermion", totalDOFs=6, ) @@ -138,7 +134,6 @@ def topMsqThermal(T: float) -> float: index=1, msqVacuum=topMsqVacuum, msqDerivative=topMsqDerivative, - msqThermal=topMsqThermal, statistics="Fermion", totalDOFs=6, ) @@ -151,15 +146,11 @@ def WMsqVacuum(fields: Fields) -> Fields: # pylint: disable=invalid-name def WMsqDerivative(fields: Fields) -> Fields: # pylint: disable=invalid-name return self.modelParameters["g2"] ** 2 * fields.getField(0) / 2 - def WMsqThermal(T: float) -> float: # pylint: disable=invalid-name - return self.modelParameters["g2"] ** 2 * T**2 * 3.0 / 5.0 - wBoson = Particle( name="W", index=4, msqVacuum=WMsqVacuum, msqDerivative=WMsqDerivative, - msqThermal=WMsqThermal, statistics="Boson", totalDOFs=9, ) diff --git a/Models/Yukawa/yukawa.py b/Models/Yukawa/yukawa.py index 01810278..dfc1c17e 100644 --- a/Models/Yukawa/yukawa.py +++ b/Models/Yukawa/yukawa.py @@ -64,16 +64,11 @@ def psiMsqDerivative(fields: Fields) -> Fields: ) ) - # Asymptotic thermal mass (twice the static thermal mass) - def psiMsqThermal(T: float) -> float: - return 1 / 8 * self.modelParameters["y"] ** 2 * T**2 - psiL = Particle( "psiL", index=1, msqVacuum=psiMsqVacuum, msqDerivative=psiMsqDerivative, - msqThermal=psiMsqThermal, statistics="Fermion", totalDOFs=2, ) @@ -82,7 +77,6 @@ def psiMsqThermal(T: float) -> float: index=2, msqVacuum=psiMsqVacuum, msqDerivative=psiMsqDerivative, - msqThermal=psiMsqThermal, statistics="Fermion", totalDOFs=2, ) diff --git a/docs/source/faqs.rst b/docs/source/faqs.rst index 9135e49b..259c6b1f 100644 --- a/docs/source/faqs.rst +++ b/docs/source/faqs.rst @@ -99,11 +99,6 @@ Model requirements Note that this parameter needs to be of the type Fields. If the particle is in equilibrium the type does not matter, and it msqVacuum can simply be set to zero. -- **What is the msqThermal in the Particle defintion?** - - This is the (field-independent) thermal mass of the particle. It is used in the propagator in the matrix elements, and - regularizes the IR-divergence in the limit of vanishing Mandelstam variables t and u. - - **How do I cound the totalDOFs in the Particle definition?** totalDOFs counts the total number of degrees of freedom for a particle species. This includes summing over e.g. spins and colors. diff --git a/docs/source/firstExample.rst b/docs/source/firstExample.rst index 9785b12f..6b68766c 100644 --- a/docs/source/firstExample.rst +++ b/docs/source/firstExample.rst @@ -18,7 +18,7 @@ The definition of the Model starts by inheriting from the :py:data:`WallGo.Gener .. literalinclude:: ../../Models/Yukawa/yukawa.py :language: py - :lines: 6-90 + :lines: 6-84 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. @@ -45,7 +45,7 @@ The implementation in WallGo is as follows: one defines a class, here called :py .. literalinclude:: ../../Models/Yukawa/yukawa.py :language: py - :lines: 93-152 + :lines: 88-146 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. @@ -53,7 +53,7 @@ Once these two classes have been defined, we can now run WallGo to compute the b .. literalinclude:: ../../Models/Yukawa/yukawa.py :language: py - :lines: 155-216 + :lines: 149-210 ********** References diff --git a/src/WallGo/particle.py b/src/WallGo/particle.py index 5fd9904e..35809179 100644 --- a/src/WallGo/particle.py +++ b/src/WallGo/particle.py @@ -22,7 +22,6 @@ def __init__( index: int, msqVacuum: typing.Callable[[Fields | FieldPoint], np.ndarray], msqDerivative: typing.Callable[[Fields | FieldPoint], np.ndarray], - msqThermal: typing.Callable[[float], float], statistics: str, totalDOFs: int, ) -> None: @@ -42,10 +41,6 @@ def __init__( msqDerivative : function Function :math:`d(m_0^2)/d(\phi)`, should take a Fields or FieldPoints object and return an array of shape Fields.shape. - msqThermal : function - Function :math:`m^2_T(T)`, should take a float and return one. The - temperature dependent but background field independent part of the - effective mass squared. statistics : {\"Fermion\", \"Boson\"} Particle statistics. totalDOFs : int @@ -63,7 +58,6 @@ def __init__( index, msqVacuum, msqDerivative, - msqThermal, statistics, totalDOFs, ) @@ -71,7 +65,6 @@ def __init__( self.index = index self.msqVacuum = msqVacuum self.msqDerivative = msqDerivative - self.msqThermal = msqThermal self.statistics = statistics self.totalDOFs = totalDOFs @@ -81,7 +74,6 @@ def _validateInput( # pylint: disable=unused-argument index: int, msqVacuum: typing.Callable[[Fields], np.ndarray], msqDerivative: typing.Callable[[Fields], np.ndarray], - msqThermal: typing.Callable[[float], float], statistics: str, totalDOFs: int, ) -> None: @@ -92,13 +84,6 @@ def _validateInput( # pylint: disable=unused-argument # assert isinstance(msqVacuum(fields), float), \ # f"msqVacuum({fields}) must return float" - # LN: comment mass check out to prevent errors at model creation time if no valid params have yet been passed - """ - temperature = 100 - assert isinstance( - msqThermal(temperature), float - ), f"msqThermal({temperature}) must return float" - """ if statistics not in Particle.STATISTICS_OPTIONS: raise ValueError(f"{statistics=} not in {Particle.STATISTICS_OPTIONS}") assert isinstance(totalDOFs, int), "totalDOFs must be an integer" diff --git a/tests/conftest.py b/tests/conftest.py index 6d63a1a5..bba4f9e8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -53,7 +53,6 @@ def particle() -> WallGo.Particle: msqDerivative=lambda fields: np.transpose( [fields.getField(0), 0 * fields.getField(1)] ), - msqThermal=lambda T: 0.1 * T**2, statistics="Fermion", totalDOFs=12, )