WallGo.PotentialTools.effectivePotentialNoResum.EffectivePotentialNoResum

class EffectivePotentialNoResum(integrals=None, useDefaultInterpolation=False, imaginaryOption=EImaginaryOption.ERROR)[source]

Bases: EffectivePotential, ABC

One-loop thermal effective potential

Specialization of the abstract EffectivePotential class that implements common functions for computing the 1-loop potential at finite temperature, without any assumptions regarding the temperature (no high- or low-\(T\) approximations). In some literature this would be the 4D effective potential.

Initialisation of EffectivePotentialNoResum

Parameters:
  • integrals (Integrals, optional) – An object of the Integrals class. Default is None in which case the integrals will be done without interpolation. Beware this may be slow.

  • useDefaultInterpolation (bool, optional) – If True the default integration data will be loaded and used for interpolation.

  • imaginaryOption (EImaginaryOption) – Default is EImaginaryOption.ERROR which throws an error if nonzero imaginary parts arise. Alternatives are EImaginaryOption.PRINCIPAL_PART for the principal part of the integrals, EImaginaryOption.ABS_RESULT for taking the absolute part of the result, and EImaginaryOption.ABS_ARGUMENT for taking the absolute part of the argument.

Returns:

cls – An object of the EffectivePotentialNoResum class.

Return type:

EffectivePotentialNoResum

__init__(integrals=None, useDefaultInterpolation=False, imaginaryOption=EImaginaryOption.ERROR)[source]

Initialisation of EffectivePotentialNoResum

Parameters:
  • integrals (Integrals, optional) – An object of the Integrals class. Default is None in which case the integrals will be done without interpolation. Beware this may be slow.

  • useDefaultInterpolation (bool, optional) – If True the default integration data will be loaded and used for interpolation.

  • imaginaryOption (EImaginaryOption) – Default is EImaginaryOption.ERROR which throws an error if nonzero imaginary parts arise. Alternatives are EImaginaryOption.PRINCIPAL_PART for the principal part of the integrals, EImaginaryOption.ABS_RESULT for taking the absolute part of the result, and EImaginaryOption.ABS_ARGUMENT for taking the absolute part of the argument.

Returns:

cls – An object of the EffectivePotentialNoResum class.

Return type:

EffectivePotentialNoResum

Methods

__init__([integrals, ...])

Initialisation of EffectivePotentialNoResum

allSecondDerivatives(fields, temperature)

Computes \(d^2V/(d\text{Field}^2)\), \(d^2V/(d\text{Field} dT)\) and \(d^2V/(dT^2)\) at the ssame time.

areDerivativesConfigured()

True if derivative routines are ready to use.

bosonInformation(fields, temperature)

Calculate the boson particle spectrum.

configureDerivatives(settings)

Sets the temperature and field scales.

deriv2Field2(fields, temperature)

Computes the Hessian, \(d^2V/(d\text{Field}^2)\).

deriv2FieldT(fields, temperature)

Computes \(d^2V/(d\text{Field} dT)\).

derivField(fields, temperature)

Compute field-derivative of the effective potential with respect to all background fields, at given temperature.

derivT(fields, temperature)

Calculate derivative of the effective potential with respect to temperature.

evaluate(fields, temperature)

Implement the actual computation of \(V_{\rm eff}(\phi)\) here.

fermionInformation(fields, temperature)

Calculate the fermion particle spectrum.

findLocalMinimum(initialGuess, temperature)

Finds a local minimum starting from a given initial configuration of background fields.

getInherentRelativeError()

jCW(massSq, degreesOfFreedom, c, rgScale)

Coleman-Weinberg potential

potentialOneLoop(bosons, fermions)

One-loop corrections to the zero-temperature effective potential in dimensional regularization.

potentialOneLoopThermal(bosons, fermions, ...)

One-loop thermal correction to the effective potential without any temperature expansions.

Attributes

SMALL_NUMBER

fieldCount

Number of background fields in your potential.

effectivePotentialError

Typical relative accuracy at which the effective potential can be computed.

derivativeSettings

allSecondDerivatives(fields, temperature)

Computes \(d^2V/(d\text{Field}^2)\), \(d^2V/(d\text{Field} dT)\) and \(d^2V/(dT^2)\) at the ssame time. This function is more efficient than calling the other functions one at a time.

Parameters:
  • fields (Fields) – The background field values (e.g.: Higgs, singlet)

  • temperature (array_like) – The temperature

Returns:

  • d2VdField2 (list[Fields]) – Field Hessian of the potential. For each temperature, this is a matrix of the same size as Fields.

  • d2fdFielddT (list[Fields]) – Field derivatives of the potential, one Fields object for each temperature. They are of Fields type since the shapes match nicely.

  • d2VdT2 (array-like) – Temperature second derivative of the potential.

areDerivativesConfigured()

True if derivative routines are ready to use.

Return type:

bool

abstractmethod bosonInformation(fields, temperature)[source]

Calculate the boson particle spectrum. Should be overridden by subclasses.

Parameters:
  • fields (array_like) – Field value(s). Either a single point (with length Ndim), or an array of points.

  • temperature (float or array_like) – The temperature at which to calculate the boson masses. Can be used for including thermal mass corrrections. The shapes of fields and temperature should be such that fields.shape[:-1] and temperature.shape are broadcastable (that is, fields[0,…]*T is a valid operation).

Returns:

  • massSq (array_like) – A list of the boson particle masses at each input point X. The shape should be such that massSq.shape == (X[…,0]*T).shape + (Nbosons,). That is, the particle index is the last index in the output array if the input array(s) are multidimensional.

  • degreesOfFreedom (float or array_like) – The number of degrees of freedom for each particle. If an array (i.e., different particles have different d.o.f.), it should have length Ndim.

  • c (float or array_like) – A constant used in the one-loop zero-temperature effective potential. If an array, it should have length Ndim. Generally c = 1/2 for gauge boson transverse modes, and c = 3/2 for all other bosons.

  • rgScale (float or array_like) – Renormalization scale in the one-loop zero-temperature effective potential. If an array, it should have length Ndim. Typically, one takes the same rgScale for all particles, but different scales for each particle are possible.

Return type:

tuple[ndarray, float | ndarray, float | ndarray, float | ndarray]

configureDerivatives(settings)

Sets the temperature and field scales. These quantities are used together with the ‘effectivePotentialError’ attribute to estimate the optimal step size when computing derivatives with finite differences. It is done by requiring that the potential error and the error from finite difference calculation contribute similarly to the derivative error.

Parameters:

settings (VeffDerivativeSettings)

Return type:

None

deriv2Field2(fields, temperature)

Computes the Hessian, \(d^2V/(d\text{Field}^2)\).

Parameters:
  • fields (Fields) – The background field values (e.g.: Higgs, singlet)

  • temperature (npt.ArrayLike) – Temperatures. Either scalar or a 1D array of same length as fields.NumPoints()

Returns:

d2VdField2 – Field Hessian of the potential. For each temperature, this is a matrix of the same size as Fields.

Return type:

list[Fields]

deriv2FieldT(fields, temperature)

Computes \(d^2V/(d\text{Field} dT)\).

Parameters:
  • fields (Fields) – The background field values (e.g.: Higgs, singlet)

  • temperature (array_like) – The temperature

Returns:

d2fdFielddT – Field derivatives of the potential, one Fields object for each temperature. They are of Fields type since the shapes match nicely.

Return type:

list[Fields]

derivField(fields, temperature)

Compute field-derivative of the effective potential with respect to all background fields, at given temperature.

Parameters:
  • fields (Fields) – The background field values (e.g.: Higgs, singlet)

  • temperature (array_like) – The temperature

Returns:

dVdField – Field derivatives of the potential, one Fields object for each temperature. They are of Fields type since the shapes match nicely.

Return type:

list[Fields]

derivT(fields, temperature)

Calculate derivative of the effective potential with respect to temperature.

Parameters:
  • fields (Fields) – The background field values (e.g.: Higgs, singlet)

  • temperature (array_like) – The temperature

Returns:

dVdT – Temperature derivative of the potential, evaluated at each point of the input temperature array.

Return type:

array_like

effectivePotentialError: float

Typical relative accuracy at which the effective potential can be computed. For simple polynomial potentials this is probably close to machine precision of Python floats (1e-15). For loop-corrected potentials a limited factor can be the eg. accuracy of numerical integration. IMPORTANT: YOUR CONCRETE POTENTIAL MUST SET THIS TO A NONZERO POSITIVE FLOAT.

abstractmethod evaluate(fields, temperature)

Implement the actual computation of \(V_{\rm eff}(\phi)\) here. The return value should be (the UV-finite part of) \(V_{\rm eff}\) at the input field configuration and temperature.

Normalization of the potential DOES matter: You have to ensure that full T-dependence is included. Pay special attention to field-independent “constant” terms such as (minus the) pressure from light fermions.

Parameters:
  • fields (Fields | FieldPoint)

  • temperature (_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str])

Return type:

_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]

abstractmethod fermionInformation(fields, temperature)[source]

Calculate the fermion particle spectrum. Should be overridden by subclasses.

Parameters:
  • fields (array_like) – Field value(s). Either a single point (with length Ndim), or an array of points.

  • temperature (float or array_like)

Returns:

  • massSq (array_like) – A list of the fermion particle masses at each input point field. The shape should be such that massSq.shape == (field[…,0]).shape. That is, the particle index is the last index in the output array if the input array(s) are multidimensional.

  • degreesOfFreedom (float or array_like) – The number of degrees of freedom for each particle. If an array (i.e., different particles have different d.o.f.), it should have length Ndim.

  • c (float or array_like) – A constant used in the one-loop zero-temperature effective potential. If an array, it should have length Ndim. Generally c = 3/2 for all fermions.

  • rgScale (float or array_like) – Renormalization scale in the one-loop zero-temperature effective potential. If an array, it should have length Ndim. Typically, one takes the same rgScale for all particles, but different scales for each particle are possible.

Return type:

tuple[ndarray, float | ndarray, float | ndarray, float | ndarray]

fieldCount: int

Number of background fields in your potential. IMPORTANT: YOUR CONCRETE POTENTIAL MUST SET THIS TO A NONZERO POSITIVE INTEGER.

findLocalMinimum(initialGuess, temperature, tol=None, method=None)

Finds a local minimum starting from a given initial configuration of background fields. Feel free to override this if your model requires more delicate minimization.

Returns:

  • minimum, functionValue (tuple.)

  • minimum (list[float] is the location x of the minimum in field space.)

  • functionValue (float is Veff(x) evaluated at the minimum.)

  • If the input temperature is a numpy array, the returned values will be arrays of same length.

Parameters:
  • initialGuess (Fields)

  • temperature (_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str])

  • tol (float)

  • method (str | None)

Return type:

Tuple[Fields, ndarray]

static jCW(massSq, degreesOfFreedom, c, rgScale)[source]

Coleman-Weinberg potential

Parameters:
  • msq (array_like) – A list of the boson particle masses at each input point X.

  • degreesOfFreedom (float or array_like) – The number of degrees of freedom for each particle. If an array (i.e., different particles have different d.o.f.), it should have length Ndim.

  • c (float or array_like) – A constant used in the one-loop zero-temperature effective potential. If an array, it should have length Ndim. Generally c = 1/2 for gauge boson transverse modes, and c = 3/2 for all other bosons.

  • rgScale (float or array_like) – Renormalization scale in the one-loop zero-temperature effective potential. If an array, it should have length Ndim. Typically, one takes the same rgScale for all particles, but different scales for each particle are possible.

  • massSq (ndarray)

Returns:

jCW – One-loop Coleman-Weinberg potential for given particle spectrum.

Return type:

float or array_like

potentialOneLoop(bosons, fermions)[source]

One-loop corrections to the zero-temperature effective potential in dimensional regularization.

Parameters:
  • bosons (tuple) – bosonic particle spectrum (here: masses, number of dofs, ci)

  • fermions (tuple) – fermionic particle spectrum (here: masses, number of dofs)

  • RGscale (float) – RG scale of the effective potential

Returns:

potential

Return type:

float or array_like

potentialOneLoopThermal(bosons, fermions, temperature)[source]

One-loop thermal correction to the effective potential without any temperature expansions.

Parameters:
  • bosons (tuple) – bosonic particle spectrum (here: masses, number of dofs, ci)

  • fermions (tuple) – fermionic particle spectrum (here: masses, number of dofs)

  • temperature (float or array_like)

Returns:

potential

Return type:

float or array_like