1 from __future__
import print_function
16 gPrime = sqrt((4.0*(Mz**2 - Mw**2))/(vEW**2))
17 h_t = (sqrt(2)*Mt)/vEW
18 lambda_h = (Mh**2)/(2.0*vEW**2)
21 cli_tool =
"../../build/bin/run_cmd_line_potential" 26 c_h = (1.0/48.0)*(9*(g**2) + 3*(gPrime**2) + 2*(6*h_t + 12*lambda_h + lambda_m));
27 c_s = (1.0/12.0)*(2*lambda_m + 3*lambda_s)
30 v =
lambda T: sqrt(vEW**2 - (c_h/lambda_h)*T**2)
33 m_h =
lambda T: sqrt(2.0*lambda_h*(v(T)**2))
36 m_s_Tc = sqrt(((v(Tc)**2)/2)*(lambda_m - 2*sqrt(lambda_h*lambda_s)));
39 m_s =
lambda T: sqrt(m_s_Tc**2 + (((lambda_m*c_h)/(2*lambda_h)) - c_s)*(Tc**2 - T**2))
42 lambda_e_sq = (m_s_Tc**4 - lambda_m*(v(Tc)**2)*m_s_Tc**2)/(v(Tc)**4)
45 w =
lambda T: sqrt((m_h(T)**2 * (lambda_m*v(T)**2 - 2*m_s(T)**2)) /
46 (v(T)**2 * (4*lambda_e_sq + lambda_m**2)))
49 Rh = (m_h(Tc)**2)/(w(Tc)**2)
50 Rs = (m_s_Tc**2)/(v(Tc)**2)
54 lambda_smin = (4.0/lambda_h)*(2*c_h**2 - lambda_h*(lambda_m/6.0)
55 - 2*c_h*sqrt(c_h**2 - lambda_h*(lambda_m/6.0)))
56 lambda_smax = (lambda_m**2)/(4*lambda_h)
58 if (lambda_s < lambda_smin)
or (lambda_s > lambda_smax):
59 raise Exception(
"Error: for these parameters, lambda_s must be " 60 "in the interval ({}, {}) to obtain a barrier " 61 "between vacua at the critical temperature".format(
62 lambda_smin, lambda_smax))
65 potential_str =
"(1.0/8.0)*{m_h_Tc}^2*{v_Tc}^2*(" \
66 "(4*{Rs}*h^2*s^2)/({Rh}*{v_Tc}^2*{w0}^2) + " \
67 "((h^2)/({v_Tc}^2) + (s^2)/({w0}^2) - 1)^2) " \
68 "- (1.0/2.0)*({Tc}^2 - {T}^2)*({c_h}*h^2 + {c_s}*s^2)" 71 "true_vac" : (v(T), 0),
72 "false_vac" : (0, w(T)),
73 "order_param" : v(Tc) / Tc,
74 "potential_str" : potential_str.format(
75 m_h_Tc=m_h(Tc), v_Tc=v(Tc), Rs=Rs, Rh=Rh, w0=w(Tc), Tc=Tc, T=T, c_h=c_h, c_s=c_s
81 :param data: output of generate_potential... 82 :return: dict containing "cli_output","action" 88 "--global-minimum", str(data[
"true_vac"][0]), str(data[
"true_vac"][1]),
89 "--local-minimum", str(data[
"false_vac"][0]), str(data[
"false_vac"][1]),
90 "--output-path",
"output",
93 "--potential", data[
"potential_str"]
98 cli_output = subprocess.check_output(command).splitlines()
102 for entry
in cli_output:
103 if entry.startswith(
"# Action"):
104 action =
float(entry.split(
" ")[2])
106 return {
"cli_output" : cli_output,
"action": action}
108 if __name__ ==
"__main__":
110 parser = argparse.ArgumentParser(description=
'SM + singlet: Z2-symmetric example from arxiv:1107.5441')
112 parser.add_argument(
'-T',
'--temp', type=float, required=
True,
113 help=
'create potential at this temperature')
114 parser.add_argument(
'-Tc',
'--crit-temp', type=float, required=
True,
115 help=
'critical temperature for this potential')
116 parser.add_argument(
'--lambda-m', type=float, required=
True,
117 help=
'mixed quartic coupling parameter')
118 parser.add_argument(
'--lambda-s', type=float, required=
True,
119 help=
'singlet quartic coupling parameter')
121 args = parser.parse_args()
127 print(output[
"action"])
def generate_potential(T, Tc, lambda_m, lambda_s)