54 minimavector(0)=-807192.888;
55 minimavector(1)=807260.056;
56 minimavector(2)=-803413.309;
65 int NofMinima=lengthofminima/3;
70 double x1, x2, x3, Vmin;
72 for(i=0;i<NofMinima;i++)
75 x2=minimavector(3*i+1);
76 x3=minimavector(3*i+2);
78 std::cout <<
"Vmin = " << Vmin << std::endl;
85 deeperminima(4*n)=minimavector(3*i);
86 deeperminima(4*n+1)=minimavector(3*i+1);
87 deeperminima(4*n+2)=minimavector(3*i+2);
88 deeperminima(4*n+3)=Vmin;
93 std::cout <<
"2." << std::endl;
101 x1=deeperminima(4*i);
102 x2=deeperminima(4*i+1);
103 x3=deeperminima(4*i+2);
104 Vmin=deeperminima(4*i+3);
113 double distance=x1*x1+x2*x2+x3*x3;
114 double stepsize=distance/double(steps-1);
118 linearpath(k)=stepsize*k;
140 std::cout <<
"2.1.1" << std::endl;
147 double min = 1.0e-12;
151 while(fabs(pos1-pos2) >
min)
162 pos = 0.5*(pos1+pos2);
168 std::cout <<
"2.1.2" << std::endl;
171 int iter = 0, max_iter = 100;
172 const gsl_min_fminimizer_type *T;
173 gsl_min_fminimizer *s;
176 std::cout <<
"pos =" << pos << std::endl;
183 T = gsl_min_fminimizer_brent;
184 s = gsl_min_fminimizer_alloc(T);
185 gsl_min_fminimizer_set(s, &F, m, a, b);
189 status = gsl_min_fminimizer_iterate(s);
190 m = gsl_min_fminimizer_x_minimum(s);
191 std::cout <<
"m =" << m << std::endl;
192 a = gsl_min_fminimizer_x_lower(s);
193 b = gsl_min_fminimizer_x_upper(s);
194 status = gsl_min_test_interval(a, b, 0.0, 1.0e-3);
195 }
while(status == GSL_CONTINUE && iter<max_iter);
196 gsl_min_fminimizer_free(s);
198 if(barriertop<=0.0 || barriertop>=pos)
200 throw std::runtime_error(
"Error in Metastability.cpp: Potential barrier top outside the barrier range!");
204 if(barrierheight<=0.0)
206 throw std::runtime_error(
"Error in Metastability.cpp: No potential barrier!");
208 double rscale = barriertop/
sqrt(6.0*barrierheight);
212 double x = -
log(pos);
215 double rmin = 1.e-4*rscale;
216 double rmax = 1.e4*rscale;
218 double drmin = 0.01*rmin;
220 double delta_phi = distance;
221 double delta_phi_cutoff = 1.e-2 * delta_phi;
222 double epsabs[2] = {fabs(delta_phi)*1.e-4 , fabs(delta_phi/rscale)*1.e-4};
223 double epsfrac[2] = {1.e-4 , 1.e-4};
225 double eps = distance*1.e-3;
229 double delta_phi0 = distance -
exp(-x)*delta_phi;
230 double sdp = delta_phi0/distance;
232 double dV_at_delta_phi0 = (
mySUSYScalarPotential->
potential(potentialcoefficients, (delta_phi0-2.0*eps)*x1/distance, (delta_phi0-2.0*eps)*x2/distance, (delta_phi0-2.0*eps)*x3/distance)
233 -8.0*
mySUSYScalarPotential->
potential(potentialcoefficients, (delta_phi0-eps)*x1/distance, (delta_phi0-eps)*x2/distance, (delta_phi0-eps)*x3/distance)
234 +8.0*
mySUSYScalarPotential->
potential(potentialcoefficients, (delta_phi0+eps)*x1/distance, (delta_phi0+eps)*x2/distance, (delta_phi0+eps)*x3/distance)
235 -
mySUSYScalarPotential->
potential(potentialcoefficients, (delta_phi0+2.0*eps)*x1/distance, (delta_phi0+2.0*eps)*x2/distance, (delta_phi0+2.0*eps)*x3/distance) ) / (12.0*eps);
237 double d2V_at_phi0 = (-
mySUSYScalarPotential->
potential(potentialcoefficients, (delta_phi0-2.0*eps)*x1/distance, (delta_phi0-2.0*eps)*x2/distance, (delta_phi0-2.0*eps)*x3/distance)
238 +16.0*
mySUSYScalarPotential->
potential(potentialcoefficients, (delta_phi0-eps)*x1/distance, (delta_phi0-eps)*x2/distance, (delta_phi0-eps)*x3/distance)
240 +16.0*
mySUSYScalarPotential->
potential(potentialcoefficients, (delta_phi0+eps)*x1/distance, (delta_phi0+eps)*x2/distance, (delta_phi0+eps)*x3/distance)
241 -
mySUSYScalarPotential->
potential(potentialcoefficients, (delta_phi0+2.0*eps)*x1/distance, (delta_phi0+2.0*eps)*x2/distance, (delta_phi0+2.0*eps)*x3/distance) ) / (12.0*eps*eps);
243 inconds =
InitialConditions(delta_phi0, rmin, delta_phi_cutoff, distance, dV_at_delta_phi0, d2V_at_phi0);
244 if(!std::isfinite(inconds(0)) || !std::isfinite(x))
251 r_y =
integrateProfile(inconds(0), inconds(1), inconds(2), dr0, epsfrac, epsabs, drmin, rmax, distance);
294 double VphiMin_i =
deformedV(phi(rlength));
296 double integral = 0.0;
297 for(
int j=1;j<rlength;j++)
299 integral += (r(j)-r(j-1))*(
Simpsonintegrand(r(j-1),phi(j-1),dphi(j-1),VphiMin_i)
300 +4.0*
Simpsonintegrand((r(j)+r(j-1))/2.0,(phi(j)+phi(j-1))/2.0,(dphi(j)+dphi(j-1))/2.0,VphiMin_i)