1 Introduction

Since some fundamental symmetries are expected to break in the early Universe the accompanying phase transitions are critical to our understanding of the phenomenon (see e.g. Ref. [1] for a review). These transitions occur when the system of scalar fields transits between two distinct minima, also called vacua, of the effective potential. If the vacua are separated by a barrier the transition is first order, and if the deeper minimum is charged a symmetry breaks spontaneously.

Finite temperature corrections to effective potentials result in important modifications to the free energy typically restoring spontaneously broken symmetries at high temperatures [2, 3]. Consequently, if a symmetry is broken at zero temperature, a phase transition probably occurred as the Universe cooled. We therefore expect that there was an electroweak phase transition associated with electroweak symmetry breaking. There may have been other phase transitions in the early Universe, such as one that breaks symmetries of a Grand Unified Theory (GUT) that embeds the Standard Model (SM) gauge groups into a unified gauge group [4,5,6,7,8]. Alternatively, other gauge groups may have broken at intermediate scales, for example, extra U(1) gauge groups that are fairly generic predictions of string theory [9,10,11,12,13,14] and can solve the \(\mu \)-problem of the Minimal Supersymmetric Standard Model (MSSM) [15,16,17]. These phase transitions played an important role in the evolution of the Universe and it is vital to understand their detailed mechanisms.

First order electroweak phase transitions are particularly interesting as they could help to satisfy Sakharov’s third condition for baryogenesis [18] – a departure from thermal equilibrium. Provided there is sufficient CP violation, they could trigger electroweak baryogenesis and explain the observed baryon asymmetry of the Universe (see e.g., Refs. [19,20,21,22] for reviews). Determining if an electroweak baryogenesis mechanism in a particular extension of the Standard Model can successfully predict the observed baryon asymmetry of the Universe is rather involved, as described by Refs. [19,20,21,22]. Nonetheless finding the critical temperature of the phase transition is a very important step in this calculation and many studies have focused on this and on the calculation of the order parameter of the first order phase transition (see for example Refs. [23,24,25,26]).

First order phase transitions also generate gravitational waves via collisions, sound waves and turbulence from expanding bubbles of a new phase (see e.g., Refs. [27,28,29,30]). The recent detection of gravitational waves [31,32,33,34,35] has opened a new window through which we can directly access physics beyond the Standard Model [36,37,38,39,40,41,42,43,44,45,46,47]. Gravitational waves accompanying first order phase transitions could be observable at current or future gravitational wave detectors, such as the Einstein Telescope [48], the Laser Interferometer Gravitational Wave Observatory (LIGO) [49], the Virgo interferometer [50], the Kamioka Gravitational-Wave Detector (KAGRA) [51], the Cosmic Explorer [52], the Laser Interferometer Space Antenna (LISA) [53], the Deci-hertz Interferometer Gravitational wave Observatory (DECIGO) [54], the Big Bang Observer (BBO) [55] or the Taiji program [56].

This would provide new tests of models beyond the SM (BSM), including electroweak baryogenesis, that are complementary to collider physics experiments and measurements of electric dipole moments (EDMs). Even if the energy scale associated with the phase transition is far higher than that which could be probed in any foreseeable collider experiments, gravitational wave detection is still a possibility. For example, it was shown in Ref. [57] that gravitational waves from the breakdown of a Pati–Salam group [4] at about \(10^5\,\text {GeV}\) can give rise to detectable signatures at the Einstein Telescope.

The gravitational wave spectrum is determined by thermal quantities such as the nucleation temperature (and rate) of the bubbles, \(T_n\), the latent heat released during the phase transition (relative to the radiation energy density of the plasma), \(\alpha \), the (inverse) duration of the transition, \(\beta \), and the velocity of the expanding bubble walls, \(v_w\). There are significant subtleties involved in calculating these and a variety of approaches have been taken in the literature [58,59,60,61,62]. Nonetheless, finding the first order phase transitions and their associated critical temperatures is an important step towards testable gravitational wave predictions.

To help study phase transitions and their associated phenomenology, we present PhaseTracer , a code to analyse the possible phases and phase transitions as the Universe cooled for any scalar potential. There are two other public codes with similar goals: CosmoTransitions [63] and BSMPT [64].Footnote 1 Our code is most similar to the former, which facilitated over a hundred studies. Compared to CosmoTransitions, the advantages of PhaseTracer are speed, as it is written in

figure b

rather than

figure c

; flexibility, as it can be linked to models in BSMPT and FlexibleSUSY [66,67,68]; robustness, as it includes a test-suite of known analytic and numerical results and correctly handles discrete symmetries; and lastly, active maintenance and development by several authors. Our code is public and we encourage contributions (such as repository pull requests) from the community.

BSMPT and PhaseTracer have different strategies for finding and tracing the temperature dependence of vacua. In the cases that we tested, however, PhaseTracer was able to identify more transitions than BSMPT. The public code Vevacious uses a numerical polyhedral homotopy continuation method, a powerful way to find all the roots of a system of polynomial equations, to identify vacua at zero temperature. This technique is more robust than the one used presently in PhaseTracer . However it requires the potential to be written in a special symbolic format and can only be used directly to find the tree-level minimum at zero temperature. After this, adjustments to the minima locations from one-loop Coleman-Weinberg corrections are then found using the MINUIT algorithms [69]. Minima at finite temperature are also found via MINUIT, using each minimum at zero temperature as a starting point and assuming that these two minima belong to the same phase, which is not always true.

With PhaseTracer our aim is to improve the calculation of phase transitions on several fronts. We intend to locate all minima at zero temperature and a high temperature and find the thermal phases of the potential by following the temperature dependence of the minima. We attempt to reliably distinguish phases during the evolution of the minima with temperature. We try to properly map the temperature dependence of all phases being aware that minima may appear and disappear with the temperature evolution. Finally, we aim to properly identify the potential transitions between the identified thermal phases including cases when the potential may have discrete symmetries.

The structure of our paper is as follows. In Sect. 2 we provide quickstart instructions for installing and running PhaseTracer . Then in Sect. 3 we describe the physics problem and our numerical methods to solve it, as well as presenting the zero- and finite-temperature corrections that we include in our calculations. After this we briefly describe the structure of the code in Sect. 4 before providing detailed instructions and examples on how to implement new models in Sect. 5. In Sect. 6 we provide an extensive set of example results and comparisons between PhaseTracer and other codes or analytic results. Finally in Sect. 7 we present our conclusions.

2 Quick start

2.1 Requirements

Building PhaseTracer requires the following:

  • A

    figure d

    compatible compiler (tested with

    figure e

    4.8.5 and higher, and

    figure f

    3.3)

  • CMake,Footnote 2 version 2.8.12 or higher.

  • The

    figure g

    library,Footnote 3 version 2.4.1 or higher.

  • Eigen library,Footnote 4 version 3.1.0 or higher

  • Boost libraries,Footnote 5 version 1.53.0 or higher, specifically:

    • *

      figure h
    • *

      figure i
  • Our EffectivePotential library, which itself requires

    • The

      figure j

      library

On Ubuntu, they can be installed by

figure k

Furthermore, one of our example programs (

figure l

) uses a potential built with FlexibleSUSY. Our build script attempts to build FlexibleSUSY, but there are further dependencies; see the FlexibleSUSY manuals [66, 68] or the FlexibleSUSY README file for further details.

To visualize our results, our package includes plot scripts that require:

  • figure m

    and the external modules

    figure n

    ,

    figure o

    ,

    figure p

    and

    figure q

    .

  • figure r

On Ubuntu, they can be installed by

figure s

Finally, for testing, we provide BSMPT programs that require

  • figure t

    . If this is absent, it is built automatically but this requires the

    figure u

    and

    figure v

    build tools.

2.2 Downloading and running PhaseTracer

PhaseTracer can be obtained by doing,

figure w

where the master branch will have the latest stable version, and the development branch will have the latest in-development features.

To build PhaseTracer on a UNIX-like system with the Make build system installed as the default build tool, run at the command line:

figure x

The resulting library and executables are located in the

figure y

and

figure z

subdirectories of the main package directory, respectively. The built-in examples can be executed by running

figure aa

The results described in Sect. 6 will be generated, including Fig. 3.

By default, the example

figure ab

is not compiled, as it needs FlexibleSUSY. To build the

figure ac

model, run at the command line:

figure ad

Then the example can be executed by

figure ae

Finally, by default comparisons with BSMPT are not compiled, but may be enabled by the

figure af

flag.

3 The physics problem

Our aim is to trace the minima of the effective potential for some arbitrary BSM physics theory, and find the critical temperatures for possible phase transitions between them. The first task is to construct the effective potential.

3.1 Constructing the effective potential

The effective potential typically includes the following contributions,

$$\begin{aligned} V_\text {eff} = V^\text {tree} + \Delta V^{\text {1-loop}} + \Delta V_T^{\text {1-loop}} + V_\text {daisy}, \end{aligned}$$
(1)

where \(V^\text {tree}\) is the tree-level potential expressed in terms of \(\overline{\text {MS}}\) parameters. The contribution \(\Delta V^{\text {1-loop}}\) stands for the one-loop zero temperature corrections to the effective potential, which in the \(R_\xi \) gauge are given by [70],

$$\begin{aligned} \Delta V^{\text {1-loop}} = \;&\frac{1}{64 \pi ^2} \Bigg ( \sum _\phi n_\phi m_\phi ^4(\xi ) \left[ \ln \left( \frac{m_\phi ^2(\xi )}{Q^2}\right) - 3/2\right] \nonumber \\&\quad + \sum _V n_V m_V^4 \left[ \ln \left( \frac{m_V^2}{Q^2}\right) - 5/6\right] \nonumber \\&- \quad \sum _V \tfrac{1}{3} n_V (\xi m_V^2)^2 \left[ \ln \left( \frac{\xi m_V^2}{Q^2}\right) - 3/2\right] \nonumber \\&- \quad \sum _f n_f m_f^4 \left[ \ln \left( \frac{m_f^2}{Q^2}\right) - 3/2\right] \Bigg ). \end{aligned}$$
(2)

where the sums over \(\phi \), V and f represent sums over the scalar, vector and fermion fields respectively and we have introduced the renormalization scale, Q, the field dependent \(\overline{\text {MS}}\) mass eigenstates of the considered BSM theory \(m_i\), where there i stands for the BSM fields which are summed over, and finally \(n_i\), which gives the numbers of degrees of freedom for field i. With the potential constructed in this way we are assuming that the \(\overline{\text {MS}}\) parameters have been chosen or adjusted to fulfill the electroweak symmetry breaking conditions at the one-loop order, as would automatically be the case if one is obtaining them from a mass spectrum generator.

Please also note that if the parameters are input in a different scheme then one may need to modify these corrections, see e.g. section 3 of Ref. [71] for a review of the known one-loop corrections in the \(\overline{\text {MS}}\), \(\overline{\text {DR}}\) [72, 73] and \(\overline{\text {DR}}^\prime \) [74] schemes in the Landau gauge. One could also add counter-terms to the potentialFootnote 6 in (1), i.e. change \(V_\text {eff} \rightarrow V_\text {eff} + V_\text {c.t.}\) modifying the \(\overline{\text {MS}}\) scheme. This can be used to e.g. ensure that the one-loop zero temperature minimum matches the tree-level minimum and that the pole masses correspond to tree-level mass eigenstates.

The contribution \(\Delta V_T^{\text {1-loop}}\) is the one-loop finite-temperature correction to the effective potential and in the \(R_\xi \) gauge it is given by,

(3)

where \(J_\text {B}\) and \(J_\text {F}\) are the thermal functions,

$$\begin{aligned} J_\text {B/F}(y^2) = \pm {{\,\mathrm{Re}\,}}\int _0^{\infty } x^2 \ln \left( 1 \mp e^{-\sqrt{x^2 + y^2}} \right) dx. \end{aligned}$$
(4)

The upper (lower) sign above applies for bosons (fermions). Strong Boltzmann suppression occurs in these thermal functions for \(m^2 \gg T^2\).

Finally if the Debye masses are provided then the daisy corrections can be included. Following the Arnold-Espinosa approach we include these in an additive potential of the form,

$$\begin{aligned} V_{\text {daisy}}= & {} -\frac{T}{12 \pi } \left( \sum _\phi n_\phi \left[ \left( {\overline{m}}_\phi ^2\right) ^{\frac{3}{2}} - \left( m^2_\phi \right) ^{\frac{3}{2}} \right] \right. \nonumber \\&\left. + \sum _V \tfrac{1}{3} n_V \left[ \left( {\overline{m}}_V^2\right) ^{\frac{3}{2}} - \left( m^2_V\right) ^{\frac{3}{2}} \right] \right) , \end{aligned}$$
(5)

where in the first two terms we sum over the Higgs fields (including Goldstone bosons) and in the second two terms we sum over the massive gauge bosons. We use \({\overline{m}}^2\) to denote field-dependent mass eigenvalues that include Debye corrections. If there are no Debye corrections to the masses this contribution will vanish. We always take the real part of the potential, which deals with the possibility of tachyonic masses in (5). If Debye masses are not supplied by the user then this contribution will be neglected.

The effective potential presented is not gauge invariant [70, 75]. In our implementation, as described in Sect. 5, we allow the user to choose any \(R_\xi \) gauge for the calculation, allowing them to test variation in a variety of gauges. In future releases we plan to add additional methods to allow an alternative gauge-independent calculation based on the procedure in Ref. [70]. We also note that there are well-known problems associated with perturbative approaches near phase transitions [76, 77]. Nevertheless, lattice approaches are not currently a tractable alternative for phenomenological studies in arbitrary models of new physics.

3.2 Critical temperature and transition strengths

Having constructed a temperature dependent effective potential, we wish to trace its possible phases as the temperature changes. Tracing phases means tracking the temperature dependence of the minima of the effective potential. We will describe our method to do this in a separate section below. The result of this tracing are the phases of the potential, that is the locations of all minima as functions of temperature.

After we identified the phases of the potential we also wish to find critical temperatures at which the potential has degenerate minima. We define the critical temperature, \(T_C\), to be the temperature at which the potential has two degenerate minima,

$$\begin{aligned} V_\text {eff}({x}_{\text {min}}, T_C) = V_\text {eff}({x}_{\text {min}}^\prime , T_C) . \end{aligned}$$
(6)

Here \({x}_{\text {min}}\) and \({x}_{\text {min}}^\prime \) are two distinct minima in the field space, that is they are separated by a barrier. Without loss of generality we can assume that the deepest vacuum of the system was \({x}_{\text {min}}\) above \(T_C\). In most cases, below \(T_C\) the minima \({x}_{\text {min}}^\prime \) becomes the deepest vacuum. Just below the critical temperature, however, the system may remain at \({x}_{\text {min}}\), i.e., in a false vacuum. Somewhat below \(T_C\) the system may fluctuate over or tunnel through the barrier to the lower minimum, \({x}_{\text {min}}^\prime \), called the true vacuum [78,79,80].

We also define the quantity which is useful for characterising the strength of the transition,

$$\begin{aligned} \gamma\equiv & {} \frac{\Delta v (T_C)}{T_C} \qquad \text {where}\nonumber \\&\qquad \Delta v(T) = \sqrt{\sum _{i=1}^N ({x_i}_{\text {min}} (T) - {x_i}_{\text {min}}^{\prime } (T))^2}, \end{aligned}$$
(7)

and N is the number of scalar fields considered. By default all scalar fields in the potential are considered in the quadratic sum defining \(\Delta v(T)\), but as described later this may also be restricted, allowing, for example, one to output \(\gamma _\text {EW}\equiv (v_\text {EW} (T_c) - v_\text {EW}^\prime (T_C)) / T_C \) which may be more relevant for electroweak baryogenesis.

The strength of a first order phase transition can be a useful heuristic for assessing whether the phase transition is strong enough for a successful electroweak baryogenesis mechanism, with \(\gamma _\text {EW}> 1\) being a commonly applied rule of thumb. Similarly the strength of a first order phase transition also has an impact on the detectability of gravitational waves that are generated from the transition.

However it is important to note that for a full calculation of the baryon asymmetry of the Universe or gravitational wave spectra many other steps are required, which PhaseTracer alone does not take care of. For example another very important quantity, the so-called nucleation temperature can only be calculated by using PhaseTracer in combination with a cosmological bounce solver, such as BubbleProfiler [81], which calculates the bounce action for the potential at a given temperature. A first order transition proceeds via bubbles of broken phase nucleating in space-time. If these bubbles prove to be stable and grow, somewhat below \(T_C\) there will be a nucleation temperature, \(T_n\), at which the mean number of bubbles nucleated within the relevant space-time volume is one. For the early Universe the time of nucleation can be written as

$$\begin{aligned} \int _{t_c}^{t_n} dt \frac{\Gamma (t)}{H(t)^3} = \int _{T_n}^{T_C} \frac{dT}{T} \frac{\Gamma (T)}{H(t)^4} = 1 , \end{aligned}$$
(8)

where H is the Hubble parameter and \(\Gamma (T)\) is the nucleation rate per unit volume, which may be expressed as, \(\Gamma (T)= A(T)e^{-{S_E}/{T}}\) where \(S_E\) is the bounce action that can be obtained from a bounce solver. Ultimately, the physical problem becomes computing observable quantities – such as gravitational wave signatures or the baryon asymmetry of the Universe – using some of the above thermal properties of the transition. For reviews on how to do such calculations see e.g. Refs. [1, 20,21,22, 82, 83]. While PhaseTracer does not provide all of these quantities, the outputs of PhaseTracer , namely the phase structure and its temperature evolution, the critical temperatures and the strengths of the transitions, are important ingredients in such calculations and have quite broad utility.

3.3 Locating minima of the potential

We locate all minima of the potential at \(T = 0\) and \(T = 1000 \,\text {GeV}\) (which may be changed by

figure ag

and

figure ah

). To do so, we first generate a set of guesses by uniform sampling. We polish the guesses using local minimization and keep the unique minima. There are obviously more sophisticated techniques for global optimization that we do not implement. Nonetheless our method is fast and we have tested that it gives reliable results (see Sect. 6). If the performance of our implementation is a bottleneck or fails, we advise that a user implements techniques tailored to their particular physics problem or supplies guesses for the locations of the minima (

figure ai

). After locating the minima at low and high temperature, we trace the high-temperature minima down in temperature, and the low-temperature minima up.

3.4 Tracing a minima

After identifying the minima, we trace them with temperature using

figure aj

with an estimate of the derivative of the fields with respect to temperature,

(9)

Note that the minima, \({x}_{\text {min}}\), carries an implicit dependence on temperature, i.e., by \({x}_{\text {min}}\) we denote the trajectory of a minimum with temperature. We find the derivative by noting that

(10)

must vanish when evaluated along the trajectory of a minima, \({x}_{\text {min}}\), since by definition of the trajectory

(11)

for all temperatures, T, and all fields, \(x_i\). Thus we find the derivative in Eq. 9 by solving

(12)

This is implemented in

figure ak

. The derivatives of the potential with respect to the fields and temperature are found by a finite difference method. We use it to predict the minima at temperature \(T_1 = T_0 + \Delta T\),

$$\begin{aligned} x_{\text {predict}} \equiv {x_0}_{\text {min}} + \Delta {x_0}_{\text {min}}. \end{aligned}$$
(13)

We polish this prediction with the

figure al

method to find \({x_1}_{\text {min}}\). Let us furthermore define a postdiction for \({x_0}_{\text {min}}\) in a similar manner,

$$\begin{aligned} x_{\text {postdict}} \equiv {x_1}_{\text {min}} - \Delta {x_1}_{\text {min}}. \end{aligned}$$
(14)

Thus we trace a minimum in steps of \(\Delta T\) by guessing the minimum at temperature \(T_1 = T_0 + \Delta T\), polishing that guess, and iterating. We interrupt tracing if the step in temperature \(\Delta T\) is smaller than a user-specified level (changed by

figure am

) and if any of the following occurs:

  • We encounter a discontinuous jump in the minimum.

    We define a discontinuous jump by a significant difference between the minima, \({x_1}_{\text {min}}\) and \({x_0}_{\text {min}}\), and a significant difference between a minima and its expected location, that is, between \({x_1}_{\text {min}}\) and \(x_{\text {predict}}\) or between \({x_0}_{\text {min}}\) and \(x_{\text {postdict}}\). A significant difference is defined by the absolute and relative tolerances,

    figure an

    and

    figure ao

    , that we use in Eq. 16. Their default values are shown in Table 1.

  • The minimum goes out of bounds or into a forbidden region of field space.

  • The Hessian is not positive semi-definite at what should be a minima. There is a possibility that the

    figure ap

    method may return a saddle point, instead of a local minimum. Thus if the Hessian at \(x_1\) has any negative eigenvalues then the phase ends.

  • The determinant of the Hessian matrix is zero, as this indicates that there is probably a transition. Note that this criteria (disabled by

    figure aq

    ) can separate phases by first- and second-order transitions (without it, they are separated only by first-order ones).

If tracing isn’t interrupted, we stop once we reach the desired temperature. If a jump or the Hessian indicated that a phase ended, we check where the minimum went by finding and tracing the new minimum. For performance, before tracing a minimum, we check that it doesn’t belong to an existing known phase. This enables our method to efficiently trace intermediate phases that do not exist at the low or high temperature.

At each iteration, we re-evaluate the step size. If we find reason for interrupting tracing, we reduce the step size by a factor of two. If the guess of the minima, \(x_{\text {guess}}\) lay far away from the real minima, we reduce the step size by a factor of two; if not, we increase the step size by a factor of two. We define far away by the relevant absolute and relative tolerances,

figure ar

and

figure as

, that we use in Eq. 16. Their default values are shown in Table 1.

Our strategy for tracing a minima relies on local optimization of a reasonable guess, found from Eq. 9. By default, we use a Nelder-Mead variant called subplex [84] implemented in

figure at

[85] as

figure au

. This can fail. If we are tracing a second-order phase transition, the minimum won’t change smoothly and thus our guess, based upon a first order Taylor expansion, may be poor. If the potential is pathological in the vicinity of the local minimum – e.g., particularly flat – the local optimization may fail even with a reasonable guess. Unfortunately, second-order transitions can present both problems simultaneously. In these cases, a phase may be incorrectly broken into two pieces that are discovered separately by the algorithm, since due to the discontinuity, tracing up and down can yield different results. The field values at the joint may be unreliable and the phases could slightly overlap.

To remedy this, note that we can predict first- and second-order transitions by singularities in the Hessian matrix in Eq. 12. For second-order transitions, a singular Hessian matrix means that there may be multiple solutions for the change in minimum with respect to temperature. The presence of multiple solutions for indicates a possible jump discontinuity in at that temperature and thus a second-order transition. In cases in which a phase ends by a first order transition, on the other hand, two extrema – a minima and a barrier – merge into a double root. The Hessian matrix must vanish at a double root. Let us denote the magnitude of the smallest eigenvalue of the Hessian matrix at \({x}_{\text {min}}\) at temperature T by \({\lambda _T}_{\text {min}}\) and at zero temperature by \({\lambda _0}_{\text {min}}\). We judge the Hessian matrix to be singular if

$$\begin{aligned} {\lambda _T}_{\text {min}} < \epsilon _{\text {hess}} \cdot {\lambda _0}_{\text {min}}. \end{aligned}$$
(15)

where \(\epsilon _{\text {hess}}\) is a relative tolerance for this, stored in a member of the

figure av

class of PhaseTracer ,

figure aw

. This has a default value of 0.01 which we recommend for most cases, but this may be reset by the user, via the method

figure ax
figure ay

. We use the smallest eigenvalue of the Hessian at zero temperature as an appropriate numerical scale, as if Eq. 15 is satisfied it means that there must be cancellations in the Hessian matrix caused by the finite-temperature corrections at that particular temperature. This partially alleviates the potential problems discussed in the previous paragraph.

3.5 Dealing with discrete symmetries

Discrete symmetries are common in scalar potentials. In a model with n discrete symmetries, each phase is potentially duplicated \(2^n\) times (though it may transform trivially under some transformations). The duplicates, however, cannot be ignored. Let us denote two phases by P and Q, which transform to \(P^\prime \) and \(Q^\prime \) by a discrete symmetry of the model. Suppose that at some critical temperature a transition from \(P \rightarrow Q\) is possible. The discrete symmetry means that the transitions \(P \rightarrow Q\) and \(P^\prime \rightarrow Q^\prime \) are equivalent, and that the transitions \(P \rightarrow Q^\prime \) and \(P^\prime \rightarrow Q\) are equivalent, but it does not mean that e.g., \(P \rightarrow Q\) and \(P \rightarrow Q^\prime \) are equivalent. In fact, in the presence of n discrete symmetries, each transition belongs to a set of up to \(2^n\) inequivalent “cousin” transitions.

Thus, to account for discrete symmetries efficiently, we allow a user to specify them if they want in the virtual

figure az

function. This insures that only one copy of a phase is traced, but all copies related by discrete symmetries are taken into account when calculating possible transitions. The function should return the result of each discrete symmetry on the set of fields, i.e., for n symmetries the returned

figure ba

should have size n. We do not address global or local continuous symmetries, leaving it to a user to gauge fix them appropriately in their potential if they wish. See Sect. 6.2 for an example.

3.6 Finding possible first order transitions

Having identified the phases, we check for possible first order transitions (FOPTs) between them. For every pair of phases, we find the temperature interval in which they coexist. If the interval is non-vanishing and if the difference in potential between the two phases, \(\Delta V\), changes sign over the interval, we look for a critical temperature with a root-finding algorithm. By default, we assume there can be no more than one critical temperature between any two phases. This can be switched off by

figure bb

and specifying the minimum separation between critical temperatures by e.g.,

figure bc

. With these settings, we would look for critical temperatures in every \(1.5\,\text {GeV}\) interval in temperature in which the phases coexisted. The current default value for this setting is 1 GeV, based on experience with phase transitions that we have tested PhaseTracer on, i.e. the examples discussed in Sect. 6.

To check the validity of critical temperatures by eye, in

figure bd

we provide a plotting routine that shows the potential along a straight line between the true and false minima at the critical temperature. We suggest that it is called as e.g.,

figure be

. For a genuine critical temperature, we should see degenerate minima separated by a barrier. We warn readers that we encountered cases in which numerical artefacts in the potential – e.g., small jump discontinuities in potentials that were constructed in a piece-wise manner – were located by our code and mistaken for minima. Thus, we advise checking a few transitions by eye if the potential contains any possible numerical pathologies.

4 PhaseTracer structure

The problem is divided into three steps: constructing the potential, finding phases and checking for critical temperatures between them. They are performed by the EffectivePotential library, and the

figure bf

and

figure bg

classes, respectively. The latter are implemented in the

figure bh

and

figure bi

files in the source code, respectively. The structure is illustrated in Fig. 1.

Fig. 1
figure 1

Outline of the structure of PhaseTracer . We highlight the most important files in red and do not show all files

5 Implementing new models and running the code

5.1 The EffectivePotential library

New models are implemented in our EffectivePotential library, which provides pure virtual classes that represent a tree-level (

figure bj

) and a one-loop effective potential (

figure bk

). The latter automatically includes one-loop zero- and finite temperature corrections, as well as daisy corrections.

PhaseTracer comes with example models that publicly inherit from the pure virtual

figure bl

class. The pure virtual classes make it easy to implement a new model. For example, we may implement the simple 1D model in Sect. 6.1 as,

figure bm

We have overriden two pure virtual methods:

figure bn

, the scalar potential as a function of the fields and the temperature, and

figure bo

, the number of scalar fields in this problem. We have furthermore overridden the virtual method

figure bp

, which ensures that our field always has non-negative values. In the implementation of this model packaged with PhaseTracer in

figure bq

we furthermore implement analytic derivatives of the potential. In this simple example we are not including any additional perturbative corrections.

To include such perturbative corrections one can instead implement one-loop effective potentials through the pure virtual

figure br

class. For example, we may implement the 2D example in Sect. 6.2 as

figure bs

This time we have overridden five methods of the pure virtual

figure bt

class to define our model:

figure bu

, the tree-level potential;

figure bv

, the field-dependent scalar squared masses;

figure bw

, the numbers of degrees of freedom for the scalars;

figure bx

, the number of scalar fields (2) in this problem; and lastly,

figure by

, which returns the result of the model’s discrete symmetry, \(\phi \rightarrow -\phi \), on the fields.

The

figure bz

class itself implements methods for the one-loop zero-temperature and finite-temperature corrections to the potential. Fermion and vector contributions are calculated if the methods

figure ca

and

figure cb

are implemented. By default, it works in the \(\xi =0\) (Landau) gauge, but this may be changed to any \(R_\xi \) gauge by the

figure cc

method. Note, though, that it is up to the user to correctly implement the \(\xi \)-dependence of the scalar masses if they depart from \(\xi = 0\). Daisy contributions are added using the Arnold-Espinosa [86] method if Debye masses are supplied by implementing

figure cd

. Furthermore, counter-terms can be added to the potential by overriding the virtual method

figure ce

.

The only methods that must be overriden (i.e., that are pure virtual), however, are the tree-level potential and the number of scalar fields. The

figure cf

and

figure cg

methods aren’t compulsory – they default to one degree of freedom per scalar field and numerical estimates of the eigenvalues of the Hessian matrix of the tree-level potential, respectively. If you change the numbers of degrees of freedom, it is vital to change

figure ch

too, as the order of the eigenvalues when found numerically won’t be stable and won’t correspond correctly to the intended degrees of freedom per scalar field. For this reason and for accuracy, wherever possible it is wise to implement derivatives and eigenvalues analytically. By default, there are no fermions or vectors in the model and the

figure ci

method trivially returns the coordinates with no changes.

The

figure cj

class automatically includes one-loop thermal corrections to the potential in (3). This requires an implementation of the thermal functions in (4). We interpolated them from a set of look-up tables generated from CosmoTransitions.

5.2 Running PhaseTracer

PhaseTracer may be called in an example program as follows (using the

figure ck

as an example),

figure cl

For a new model,

figure cm

should be replaced with the name of the new model. The line

figure cn

produces output about the phases with the format:

figure co

We see the number of phases found, and for each phase, the minimum and maximum temperature, the corresponding field values and potential, and an explanation about why the phase ended. In this case, the first phase ended at \(T = 1000\,\text {GeV}\) because that was the highest temperature under consideration (see

figure cp

) and at \(T \approx 33\,\text {GeV}\) because the fields made a discontinuous jump. Each phase is numbered by a key, e.g.

figure cq

.

The line

figure cr

produces output about the transitions with the format:

figure cs

We see the number of potential first order phase transitions, and for each one, the keys of the false and true phases (i.e.,

figure ct

), followed by the true and false vacua at the critical temperature, information about which elements of the field changed in the transition, the critical temperature, transition strength \(\gamma \) ( or \(\gamma _\text {EW}\) if

figure cu

is used) and difference in potential between the true and false vacua at the critical temperature. The latter serves as a sanity check: it should of course be close to zero.

5.2.1 The Phase and Transition objects

The objects containing this information may be accessed though

figure cv

and

figure cw

, which return a

figure cx

of

figure cy

and

figure cz

objects, respectively. The

figure da

object is a

figure db

containing, amongst other things, the attributes:

  • figure dc

    – The field values, \({x}_{\text {min}}\), through the phase

  • figure dd

    – The temperature, T, through the phase

  • figure de

    – The change in minima with respect to temperature, , through the phase

  • figure df

    – The potential, \(V({x}_{\text {min}}, T)\), through the phase

  • figure dg

    – The reason why the phase ended at the lowest temperature

  • figure dh

    – The reason why the phase ended at the highest temperature

The

figure di

attributes are all ordered in ascending temperature. The

figure dj

object, on the other hand, contains

  • figure dk

    – The critical temperature, \(T_C\)

  • figure dl

    – The phase associated with the true vacuum

  • figure dm

    – The phase associated with the false vacuum

  • figure dn

    – The true vacuum at the critical temperature

  • figure do

    – The false vacuum at the critical temperature

  • figure dp

    – The key indicating unique cousin transition.

For example, we may retrieve and print information about the first transition by

figure dq

which would tell us the critical temperature of the first transition, and then print a summary of information about the true phase, the key corresponding to the true phase, and finally a summary of information about the transition.

5.2.2 Settings for finding phases and transitions

There are many adjustable settings that control the behavior of

figure dr

and

figure ds

objects, listed in Tables 1 and 2, respectively. They are altered by setters, i.e.,

figure dt

methods, and read by

figure du

methods. The detailed usage of settings is introduced in Sect. 3 when we describe our algorithms of tracing phases and finding critical temperatures.

The attribute

figure dv

in both

figure dw

and

figure dx

is the number of scalar fields charged under electroweak symmetry, which we assume are the first

figure dy

scalar fields. By default

figure dz

checks that the zero-temperature vacuum agrees with \(v = 246\,\text {GeV}\) only if a user sets

figure ea

to a non-zero value. By default

figure eb

calculates the transition strength \(\gamma \) using all scalar fields; it calculates \(\gamma _\text {EW}\) only if a user sets

figure ec

.

When comparing floating point numbers, we typically check relative and absolute differences, i.e., our checks are of the form,

(16)

When tracing phases in temperature, we restrict the largest and smallest possible step sizes. The largest permissible step-size

figure ed

is the minimum of

figure ee

and the temperature interval multiplied by

figure ef

. Similarly, the smallest permissible step-size

figure eg

is the maximum one found from the relative and absolute settings.

Table 1 Adjustable settings that control the behavior of a
figure eh
object. Each setting has
figure ei
and
figure ej
getter and setter methods
Table 2 Adjustable settings that control the behavior of
figure fy
object

5.3 Plotting results

The header

figure gj

provides a function

figure gk

that takes a

figure gl

object and plots the phases, using

figure gm

to construct file names for the resulting plots and data files:

  • figure gn

    – Data file containing phases and transitions in a particular format

  • figure go

    etc – The phases and transitions on plane of the first and second field, e.g., the left panel of Fig. 3

  • figure gp

    – The minima, \({x}_{\text {min}}\), versus temperature, T, for every phase, e.g., the right panel of Fig. 3

  • figure gq

    – The potential, \(V({x}_{\text {min}}, T)\), versus temperature, T, for every phase.

The plots are produced by the script

figure gr

. To make plots with LaTeX fonts, . Note that in models with discrete symmetries supplied by a user, the plots do not show cousin transitions (see Sect. 3.5).

We furthermore provide to check critical temperatures by plotting the minima between the true and false vacuum at the critical temperature – see Sect. 3.6 for further details.

6 Examples/comparisons with existing codes and analytic solutions

6.1 One-dimensional test model

To exhibit the usage of PhaseTracer , we consider a one-dimensional potential,

$$\begin{aligned} V(\phi , T) = (c T^2 - m^2) \phi ^2 + \kappa \phi ^3 + \lambda \phi ^4 \end{aligned}$$
(17)

for \(\phi \ge 0\) and \(\kappa < 0\) as a simple dummy model, without physical meaning. We consider the specific numerical constants,

$$\begin{aligned} V(\phi ,T) = (0.1 T^2 - 100)\phi ^2 - 10\phi ^3 +0.1\phi ^4. \end{aligned}$$
(18)

The simplicity of the model means that it can be solved analytically, giving

$$\begin{aligned} T_C = \sqrt{\frac{\kappa ^2 + 4 \lambda m^2}{4c\lambda }} = 59.1608 \end{aligned}$$
(19)

with minima at 0 and \(-\kappa / (2\lambda ) = 50\) separated by a barrier at \(-\kappa / (4\lambda ) = 25\). We show the potential and the phase transition in Fig. 2. We find a numerical result of \(T_C = 59.1608\) with minima at \(4.92767\text {e}{-6}\) and 50.0003, i.e. the numerical result matches the exact analytic result up to at least six significant figures implying excellent agreement.Footnote 7 This result may be reproduced by

figure gw

The argument –

figure gx

– indicates that we want to produce debugging information including plots named

figure gy

.

Fig. 2
figure 2

The one-dimensional potential at different temperatures (left) and the subsequent phase structure of the model (right). On the right panel, the lines show the field values at a particular minimum as a function of temperature. The arrows indicate that at that temperature the two phases linked by the arrows are degenerate and thus that a FOPT could occur in the direction of the arrow. The label x was autogenerated by our plotting code. In this example it stands for \(\phi \)

6.2 Two-dimensional test model

To compare the performance of PhaseTracer with CosmoTransitions, we adopt the test model with two scalar fields in CosmoTransitions. The tree-level potential is

$$\begin{aligned} V(\phi _1,\phi _2) {=} \frac{1}{8}\frac{m_1^2}{v^2}(\phi _1^2{-}v^2)^2 {+}\frac{1}{8}\frac{m_2^2}{v^2}(\phi _2^2-v^2)^2 {-} \mu ^2 \phi _1\phi _2.\nonumber \\ \end{aligned}$$
(20)

The resulting field-dependent mass matrix for the pair of scalar fields isFootnote 8

$$\begin{aligned} M^2 (\phi _1,\phi _2) = \begin{pmatrix} \frac{m_1^2}{2v^2} (3\phi _1^2-v^2) &{} -\mu ^2 \\ -\mu ^2 &{} \frac{m_2^2}{2v^2} (3\phi _2^2-v^2) \\ \end{pmatrix}. \end{aligned}$$
(21)

Here \(m_1\), \(m_2\), v and \(\mu \) take the values listed in Table 1 of Ref. [63], i.e. \(120\,\text {GeV}\), \(50 \,\text {GeV}\), \(246 \,\text {GeV}\) and \(25 \,\text {GeV}\), respectively. In addition to the scalar fields in the tree-level potential, we add a scalar boson X with \(n_X=30\) degrees of freedom and the field-dependent mass

$$\begin{aligned} m_X(\phi _1,\phi _2) = y_A^2(\phi _1^2+\phi _2^2)+y_b^2\phi _1\phi _2, \end{aligned}$$
(22)

where \(Y_A^2=0.1\) and \(Y_B^2=0.15\). We set the renormalization scale in the one-loop potential to \(246 \,\text {GeV}\).

We compare our results against CosmoTransitions- 2.0.3 (at present the latest version) using its default settings.Footnote 9 After checking our implementation of the potential, by making sure we obtain exactly the same potential for given field values and temperature, we test the critical temperature and true and false vacuums found by our code. Our results may be reproduced by

figure gz

The argument –

figure ha

– indicates that we want to produce debugging information including plots named

figure hb

.

Table 3 Results and elapsed time of PhaseTracer and CosmoTransitions for the 2D test model. All dimensionful quantities are in GeV. The base of the VEV is \((\phi _1,\phi _2)\)

We show in Table 3 that our results agree extremely wellFootnote 10 with CosmoTransitions for the critical temperature and field values for the first possible transition; however, our code is about 100 times faster for this problem.Footnote 11 The phase transitions in this problem are shown in Fig. 3. We see in the left panel a parametric plot of the two fields as functions of temperature. The distinct phases are shown by blue, orange and green colors, and the FOPT is shown by a black arrow. In the right panel, we see each field as a function of temperature.

Note, however, that PhaseTracer found two transitions whereas CosmoTransitions only found one. Due to the discrete symmetry, \(\phi \rightarrow -\phi \), there is in fact a cousin transition \((220.0, -150.0)\rightarrow (-263.5, -314.7)\) that accopanies the one found by CosmoTransitions (see Sect. 3.5). We always save all the transitions in the results, as we do not know a priori which transition has the greatest tunnelling probability. For this example, we calculated the bounce actions at \(T=100\,\text {GeV}\) using CosmoTransitions to be \(S_E=102659.3\) for \((224.5, -148.3)\rightarrow (275.3, 351.0)\) and \(S_E=1402952.5\) for \((224.5, -148.3)\rightarrow (-275.3, -351.0)\). In the CosmoTransitions example, the duplicated phase and thus the cousin transition is removed by forbidding \(\phi _1<0\) and it returns only the transition with the smaller action.Footnote 12 However, this appears to be a coincidence: forbidding \(\phi _2 < 0\) instead of \(\phi _1 < 0\) would result in CosmoTransitions finding only the transition with the larger actionFootnote 13. Note that in the automatically generated plots, such as Fig. 3, the symmetric cousin transitions are not shown, as their inclusion makes the plots hard to read.

Fig. 3
figure 3

Phase structure of the 2D test model. In the left panel, the changes in field values at a particular minimum with decreasing temperature are indicated by colored arrows in steps of \(\Delta T = 10 \,\text {GeV}\). The star represents a phase that does not change with temperature. The meaning of the right panel is same as the right panel in Fig. 2. The labels \(x_1\) and \(x_2\) were autogenerated by our plotting code. In this example they stand for \(\phi _1\) and \(\phi _2\), respectively

6.3 \({\mathbb {Z}}_2\) Scalar Singlet Model

As a more realistic two-dimensional example, we consider the \({\mathbb {Z}}_2\) scalar singlet extension of the SM. Unlike the SM, this model can accommodate a \(125\,\text {GeV}\) Higgs and a first order phase transition, as well as possibly providing a viable dark matter candidate. The potential consists of the ordinary SM Higgs potential and gauge- and \({\mathbb {Z}}_2\) invariant interactions involving a real singlet,

$$\begin{aligned} V(H, s) {=} \mu ^2_H |H|^2 {+} \lambda _H |H|^4 {+} \lambda _{Hs} |H|^2 s^2 {+} \tfrac{1}{2} \mu ^2_s s^2 {+} \tfrac{1}{4} \lambda _s s^4.\nonumber \\ \end{aligned}$$
(23)

After EWSB, the real scalar obtains a tree-level mass \(m_S^2 = \mu ^2_s + \tfrac{1}{2} \lambda _{Hs} v^2\). We implement one-loop and daisy corrections to this tree-level potential. Under certain circumstances, a first order transition between an EW preserving and an EW breaking vacuum may be possible and the critical temperature can be found analytically; see, e.g., Ref. [36] for an analysis of the PTs in this model.

We reproduce the behaviour of the critical temperature as a function of \(\lambda _{Hs}\) and \(m_S\) that was found in Ref. [36] (see, e.g., Figure 1 of Ref. [36]) in Fig. 4. On the right panel, we show that the differences between numerical results from PhaseTracer and the analytic formulae are at most about \(0.01\%\). To reproduce it,

figure hh

The first command scans the relevant parameter space and writes a data file named

figure hi

that the second command plots in

figure hj

.

Fig. 4
figure 4

The critical temperature, \(T_C\), as a function of \(\lambda _{hs}\) and \(m_s\) in the \({\mathbb {Z}}_2\) SSM calculated by PhaseTracer (left) and the relative difference versus the analytic result (right). There is no FOPT in the white regions

6.4 Two-Higgs-Doublet Models

We next consider three Two-Higgs-Doublet Models (2HDMs) which are implemented in BSMPT. We do not reimplement their potentials; instead, we link PhaseTracer directly to the models implemented in BSMPT and directly call the BSMPT potentials. The general 2HDM tree-level scalar potential is

$$\begin{aligned} \begin{aligned} V ={}&m_{11}^2 |H_1|^2 + m_{22}^2 |H_2|^2 - m_{12}^2\left( H_1^\dagger H_2 + \text {h.c.}\right) + \tfrac{1}{2} \lambda _1 |H_1|^4 + \tfrac{1}{2} \lambda _2 |H_2|^4\\&+ \lambda _3 |H_1|^2 |H_2|^2 + \lambda _4 |H_1^\dagger H_2|^2 + \tfrac{1}{2} \lambda _5 \left[ \left( H_1^\dagger H_2\right) ^2 + \text {h.c.}\right] . \end{aligned} \end{aligned}$$
(24)

The two Higgs doublets take the form

$$\begin{aligned} \begin{aligned} H_1&= \frac{1}{\sqrt{2}} \begin{pmatrix} \rho _1 + i\eta _1 \\ v_1 + \zeta _1 + i\psi _1 \\ \end{pmatrix} \\ H_2&= \frac{1}{\sqrt{2}} \begin{pmatrix} v_{\mathrm{CB}} + \rho _2 + i\eta _2 \\ v_2 + \zeta _2 + i(v_{\mathrm{CP}}+\psi _2) \\ \end{pmatrix} \\ \end{aligned} \end{aligned}$$
(25)

where \(\rho _i\) and \(\eta _i\) \((i=1,2)\) represent the charged field components, \(\zeta _i\) and \(\psi _i\) \((i=1,2)\) indicate the neutral CP-even and CP-odd fields, and the VEVs \(v_i\) \((i=1,2,\mathrm{CB},\mathrm{CP})\) are real.

First, we consider the real, CP-conserving 2HDM (R2HDM) with the parameters

$$\begin{aligned} \begin{array}{lcllcl} \text{ Type } &{} = &{} 1 &{} \; \tan \beta &{} = &{} 4.63286 \\ \lambda _1 &{} = &{} 2.740594787 &{} \; \lambda _2 &{} = &{} 0.2423556498 \\ \lambda _3 &{} = &{} 5.534491052 &{} \; \lambda _4 &{} = &{} -2.585467181 \\ \lambda _5 &{} = &{} -2.225991025 &{} \; m_{12}^2 &{} = &{} 7738.56 \,\text {GeV}^2. \end{array} \end{aligned}$$
(26)

Second, we consider the complex, CP-violating 2HDM (C2HDM) with the parameters

$$\begin{aligned} \begin{array}{lcllcl} \text{ Type } &{} = &{} 1 &{} \; \tan \beta &{} = &{} 4.64487 \\ \lambda _1 &{} = &{} 3.29771 &{} \; \lambda _2 &{} = &{} 0.274365 \\ \lambda _3 &{} = &{} 4.71019 &{} \; \lambda _4 &{} = &{} -2.23056\\ \text{ Re } (\lambda _5) &{} = &{} -2.43487 &{} \; \text{ Im } (\lambda _5) &{} = &{} 0.124948\\ \text{ Re } (m_{12}^2) &{} = &{} 2706.86 \,\text {GeV}^2 \;. \end{array} \end{aligned}$$
(27)

Note that in this case we consider a complex phase for \(\lambda _5\). Lastly, we consider the Next-to-2HDM (N2HDM) with the parameters

$$\begin{aligned} \begin{array}{lcllcl} \text{ Type } &{} = &{} 1 &{} \; \tan \beta &{} = &{} 5.91129 \\ \lambda _1 &{} = &{} 0.300812 &{} \; \lambda _2 &{} = &{} 0.321809 \\ \lambda _3 &{} = &{} -0.133425 &{} \; \lambda _4 &{} = &{} 4.11105\\ \lambda _5 &{} = &{} -3.84178 &{} \; \lambda _6 &{} = &{} 9.46329\\ \lambda _7 &{} = &{} -0.750455 &{} \; \lambda _8 &{} = &{} 0.743982\\ v_s &{} = &{} 293.035 \,\text {GeV}&{} \; m_{12}^2 &{} = &{} 4842.28 \,\text {GeV}^2. \end{array} \end{aligned}$$
(28)

Compared to the 2HDM models, this model contains an extra complex singlet with \({\mathbb {Z}}_2\) symmetric interactions,

$$\begin{aligned} \tfrac{1}{2} m_S^2 S^2 + \tfrac{1}{8} \lambda _6 S^4 + \tfrac{1}{2} \lambda _7 |H_1|^2 S^2 + \tfrac{1}{2} \lambda _8|H_2|^2 S^2. \end{aligned}$$
(29)

The singlet field S is expanded as \(S=v_S+\zeta _S\) with \(v_S\) denoting singlet VEV.

To run our code on these models,

figure hk

Note that these examples require BSMPT; see Sect. 2.2 for installation instructions. Regarding finding the critical temperature, our code is slower than BSMPT as we perform more checks and thoroughly map out the whole phase structure.

Table 4 Results of PhaseTracer and BSMPT-1.1.2 for the R2HDM, C2HDM and N2HDM benchmark points

We show results from all three models with our code and BSMPT in Table 4. In BSMPT, the tolerance of the bisection method used to locate the \(T_C\) is \(0.01\,\text {GeV}\) , while our default relative precision

figure hl

is 0.01%. Thus our results for R2HDM and C2HDM benchmark points are in agreement with that from BSMPT in the range of these errors. In addition, we find an extra group of transitions at \(T_C=161.205\,\text {GeV}\) for R2HDM, which is missed by BSMPT because it focuses only on the transition that starts in the symmetric vacuum. For the N2HDM benchmark point, the discrepancy of \(T_C\) is larger than the expected precision. This is related to the fact that BSMPT assumes that the false vacuum lies at the origin and with its default settings BSMPT misses the minimum around at (0, 0, 0, 0, 301.0) at \(T\simeq 121.00\,\text {GeV}\), mistakenly treating the minimum around at (0, 0, 32.5, 176.5, 297.1) as the deepest minima at that temperature.Footnote 14 By increasing the number of random starting points for finding multiple local minima in BSMPT, it finds this minima and agrees with our result, \(T_C=120.73\,\text {GeV}\), though the agreement may be partially an accident since the false vacuum does not lie at the origin, contrary to the assumption in BSMPT.

6.5 Next-to-Minimal Supersymmetric Standard Model

In Ref. [26] we explored the Next-to-Minimal Supersymmetric Standard Model (NMSSM) with a preliminary version of PhaseTracer . We include our NMSSM model (in which we match the NMSSM to a model with two-Higgs doublets and a singlet; see Ref. [26] for further details) as an example. The effective potential depends upon FlexibleSUSY (see Sect. 2.2 for the relevant installation instructions) for the matching conditions, tadpole equations and field-dependent masses. We show a benchmark point from this model in Fig. 5. To reproduce it,

figure hm

which will solve this problem and produce the figures shown in Fig. 5 in files named

figure hn

.

Fig. 5
figure 5

Phase structure of the NMSSM. The meanings of the upper panels and the lower left panel is same to the left panel of Fig. 3. The meanings of the right panel is similar to the right panel of Fig. 2. The dots represent transitions that do not change the corresponding field values. The labels \(x_1\), \(x_2\) and \(x_3\) were autogenerated by our plotting code. In this example they stand for \(h_u\), \(h_d\) and s, respectively

Because this model point is particularly pathological, there is a chance that PhaseTracer may miss Phase 4 and part of Phase 3 shown in Fig. 5. This is because at \(T=127.1\,\text {GeV}\), there exists a saddle point at \((h_u=0\,\text {GeV}, h_d=211.0\,\text {GeV}, s=0\,\text {GeV})\) near a minimum. When PhaseTracer traces the phases near this saddle point, it may correctly find the real minimum near the saddle point or mistake the saddle point for a minimum. In the latter case, when PhaseTracer discovers that the Hessian isn’t positive semi-definite, it stops tracing Phase 3 at the saddle point, and then will miss Phase 4. We will address this problem by improving the

figure ho

method in a future version so that it cannot mistake saddle points for minima. The behaviour of PhaseTracer in these cases isn’t deterministic since it depends on random number generation for locating minima.

7 Conclusions

In this paper we have presented PhaseTracer , a fast and reliable

figure hp

software package for finding the cosmological phases and the critical temperatures for phase transitions. For any user supplied potential, PhaseTracer first maps out all of the phases over the relevant temperature range.Footnote 15 Once the phases have been identified PhaseTracer checks each pair of phases to see if there may be a first order phase transition between them and calculates the critical temperature.

To do this PhaseTracer uses a similar algorithm to that of CosmoTransitions, but our implementation has a number of advantages: (i) PhaseTracer is orders of magnitude faster, as we have demonstrated in Sect. 6.2; (ii) PhaseTracer has been carefully designed to provide clear error information for cases where a solution cannot be found and has many adjustable settings which may be varied to find solutions in such cases; (iii) PhaseTracer will be maintained by an active team of developers (the authors of this manual) and is distributed with a suite of unit tests to validate the code and ensure results do not change unintentionally as the code evolves. In addition PhaseTracer has been designed so that it can be easily linked with FlexibleSUSY spectrum generators, making it easy to embed it in a much wider tool set for investigating the phenomenology of an arbitrary BSM extension. Furthermore we have also made it possible to link to potentials implemented in BSMPT, another tool for finding critical temperatures. This makes it possible for users to compare results in both BSMPT and PhaseTracer , as we have demonstrated for two Higgs doublet and two Higgs plus singlet extensions of the Standard Model in Sect. 6.4. This is particularly useful since BSMPT has a complementary approach, implementing a method that is simpler and faster, but finds exactly one transition that starts from the symmetric vacuum. Therefore BSMPT will miss other transitions and the transition it does find may not be in the cosmological history, while PhaseTracer will find all potential transitions.

With PhaseTracer it is therefore very easy to find the phases and critical temperatures of arbitrary Standard Model extensions. This is an important and useful tool for investigating both electroweak baryogenesis and gravitational waves, and can be used in thorough phenomenological investigations of realistic Standard Model extensions with many parameters, as we have demonstrated in Ref. [26] where an early prototype of PhaseTracer was used. Furthermore PhaseTracer is part of a wider goal to develop a set of tools that can be used to automatically calculate the baryon asymmetry of the Universe, predict the stochastic gravitational wave background from first order phase transitions and test this against observations from gravitational wave experiments.

  • Program Summary

  • Program title: PhaseTracer

  • Program obtainable from: https://github.com/PhaseTracer/PhaseTracer

  • Distribution format: tar.gz

  • Programming language: C++

  • Computer: Personal computer

  • Operating system: Tested on FreeBSD, Linux, Mac OS X

  • External routines: Boost library, Eigen library, NLopt library, AlgLib library

  • Typical running time: 0.01 (0.05) seconds for one (two) scalar fields

  • Nature of problem: Finding and tracing minima of a scalar potential

  • Solution method: Local optimisation of judicious guesses

  • Restrictions: Performance inevitably deteriorates for high numbers of scalar fields