18 #ifndef BUBBLEPROFILER_SHOOTING_HPP_INCLUDED 19 #define BUBBLEPROFILER_SHOOTING_HPP_INCLUDED 34 #include <boost/array.hpp> 35 #include <boost/numeric/odeint.hpp> 89 void solve(
const std::function<
double(
double)>& potential_,
90 const std::function<
double(
double)>& potential_first_,
91 const std::function<
double(
double)>& potential_second_,
92 double false_min_,
double true_min_,
double barrier_,
94 unsigned int options = (Solver_options::Compute_action |
95 Solver_options::Compute_profile));
101 double true_min_,
double barrier_,
int dim_ = 3,
102 unsigned int options = (Solver_options::Compute_action |
103 Solver_options::Compute_profile));
119 boost::numeric::odeint::runge_kutta_dopri5<state_type>;
121 boost::numeric::odeint::controlled_runge_kutta<error_stepper_type>;
159 std::function<double(double)> potential{
nullptr};
182 const std::function<
double(
double)>& potential_,
183 const std::function<
double(
double)>& potential_first_,
184 const std::function<
double(
double)>& potential_second_,
185 double false_min_,
double true_min_,
double barrier_,
int dim_);
214 double d2Vdphi2)
const;
225 double dVdphi,
double d2Vdphi2)
const;
256 double energy(
double phi,
double dot_phi)
const;
267 double shoot(
double lambda);
270 double unmap(
double lambda)
const;
302 double integrand(
double dot_phi,
double rho)
const;
305 double action(
double lambda);
316 #endif // BUBBLEPROFILER_SHOOTING_HPP_INCLUDED
contains the definition of the Field_profiles clas
void set_shooting_rel_tol(double tol)
void set_max_iterations(int i)
evolve_type evolve(double lambda) const
Uses an approximation solution to evolve the system forward until the field changes by a required amo...
boost::array< double, 2 > state_type
void solve(const std::function< double(double)> &potential_, const std::function< double(double)> &potential_first_, const std::function< double(double)> &potential_second_, double false_min_, double true_min_, double barrier_, int dim_=3, unsigned int options=(Solver_options::Compute_action|Solver_options::Compute_profile))
double calculate_roll_velocity(double lambda, double y, double dVdphi, double d2Vdphi2) const
Find velocity .
boost::numeric::odeint::runge_kutta_dopri5< state_type > error_stepper_type
void set_bisect_lambda_max(double l)
controlled_stepper_type action_stepper
const Field_profiles & get_bubble_profile() const
Field_profiles calculate_bubble_profile(double lambda)
double get_euclidean_action() const
double interior(double lambda)
double action_arrived_rel
void set_f_y_max(double f)
double quadratic_potential_solution(double) const
double shooting()
Solve for by bisection.
double calculate_roll_time(double lambda, double dVdphi, double d2Vdphi2) const
Find the (dimensionless) time at which the field changes by a small amount, .
void set_action_rel_tol(double tol)
std::function< double(double)> potential_first
double bubble_scale() const
Characteristic scale of bubble.
boost::array< double, 3 > evolve_type
double action(double lambda)
void set_f_y_min(double f)
void initialize_potential_parameters(const std::function< double(double)> &potential_, const std::function< double(double)> &potential_first_, const std::function< double(double)> &potential_second_, double false_min_, double true_min_, double barrier_, int dim_)
void set_evolve_change_rel(double frac)
std::function< double(double)> potential_second
void ode(const state_type &x, state_type &dxdt, double rho)
ODE for bounce solution.
void set_action_arrived_rel(double tol)
double shoot(double lambda)
Performs a single shot of our shooting method.
void set_action_abs_tol(double tol)
void set_max_periods(double p)
void set_drho_frac(double frac)
double integrand(double dot_phi, double rho) const
Action integrand from kinetic term without pre-factor.
Solve the one-dimensional problem using the shooting method.
double energy(double phi, double dot_phi) const
double unmap(double lambda) const
std::function< double(double)> potential
Abstract base class for a generic potential.
boost::numeric::odeint::controlled_runge_kutta< error_stepper_type > controlled_stepper_type
void set_shooting_abs_tol(double tol)
void set_bisection_precision_bits(int b)
Discretized set of field profiles.
controlled_stepper_type shoot_stepper