BubbleProfiler
0.3.0
by Peter Athron, Csaba Balazs, Michael Bardsley, Andrew Fowlie, Dylan Harries & Graham White
|
Constructs a solution ansatz using the overshoot/undershoot method. More...
#include <shooting_profile_guesser.hpp>
Public Member Functions | |
virtual | ~Shooting_profile_guesser ()=default |
virtual Field_profiles | get_profile_guess (const Potential &, const Eigen::VectorXd &, int, double, double, double, double) override |
Calculate an initial guess for the bubble profile. More... | |
void | set_trial_distance (double dist) |
void | set_solver (const Shooting &s) |
const Shooting & | get_solver () const |
Shooting & | get_solver () |
![]() | |
virtual | ~Profile_guesser ()=default |
Private Member Functions | |
void | compute_vacuum_distance (const Potential &, const Eigen::VectorXd &) |
void | calculate_potential_parameters (const Potential &, const Eigen::VectorXd &) |
double | calculate_false_min_location () const |
double | calculate_barrier_location () const |
double | calculate_true_min_location () const |
double | get_large_distance_solution (double, const Field_profiles &, int) const |
void | solve_one_dimensional (int) |
Field_profiles | calculate_field_profiles (int, double, double, double, double) |
Eigen::VectorXd | update_spatial_grid (const Eigen::VectorXd &, double, double, int) const |
Private Attributes | |
double | trial_dist {0.5} |
double | alpha {0.5} |
double | E {1.} |
double | dist_true_vacuum {0.} |
int | num_fields {0} |
Shooting | solver {} |
Eigen::MatrixXd | cob_matrix {} |
logging::Basic_logger | logger {} |
Constructs a solution ansatz using the overshoot/undershoot method.
Given a multi-field potential and the location of the true vacuum, the initial guess for the bubble profile is found by first reducing the problem to an approximate 1D problem. This is then solved using the undershoot/overshoot method, and the obtained solution is converted back into the original field basis.
Definition at line 39 of file shooting_profile_guesser.hpp.
|
virtualdefault |
|
private |
Definition at line 462 of file shooting_profile_guesser.cpp.
Referenced by solve_one_dimensional().
|
private |
Definition at line 433 of file shooting_profile_guesser.cpp.
Referenced by get_large_distance_solution(), and solve_one_dimensional().
|
private |
Definition at line 316 of file shooting_profile_guesser.cpp.
References cob_matrix, dist_true_vacuum, BubbleProfiler::Field_profiles::evaluate_at(), BubbleProfiler::Shooting::get_bubble_profile(), BubbleProfiler::Field_profiles::get_domain_end(), BubbleProfiler::Field_profiles::get_domain_start(), get_large_distance_solution(), BubbleProfiler::Field_profiles::get_number_of_grid_points(), BubbleProfiler::Field_profiles::get_spatial_grid(), num_fields, BubbleProfiler::Shooting::quadratic_potential_solution(), BubbleProfiler::Field_profiles::set_interpolation_points_fraction(), BubbleProfiler::Field_profiles::set_number_of_dimensions(), solve_one_dimensional(), solver, and update_spatial_grid().
Referenced by get_profile_guess().
|
private |
Definition at line 237 of file shooting_profile_guesser.cpp.
References BubbleProfiler::Abs(), alpha, BubbleProfiler::calculate_rotation_to_target(), BubbleProfiler::Potential::clone(), cob_matrix, dist_true_vacuum, E, BubbleProfiler::logging::Basic_logger::log_message(), logger, num_fields, BubbleProfiler::logging::Trace, and trial_dist.
Referenced by get_profile_guess().
|
private |
Definition at line 493 of file shooting_profile_guesser.cpp.
Referenced by solve_one_dimensional().
|
private |
Definition at line 219 of file shooting_profile_guesser.cpp.
References BubbleProfiler::Abs(), dist_true_vacuum, BubbleProfiler::Potential::get_number_of_fields(), and num_fields.
Referenced by get_profile_guess().
|
private |
Definition at line 522 of file shooting_profile_guesser.cpp.
References BubbleProfiler::Abs(), alpha, BubbleProfiler::BesselK(), calculate_false_min_location(), BubbleProfiler::Field_profiles::derivative_at(), E, BubbleProfiler::Exp(), BubbleProfiler::Field_profiles::get_domain_end(), and BubbleProfiler::Sqrt().
Referenced by calculate_field_profiles().
|
overridevirtual |
Calculate an initial guess for the bubble profile.
The calculated profiles should be evaluated at the requested number of points, n_grid_points
, between the minimum and maximum radial coordinate values, domain_start
and domain_end
, respectively. If a negative value is given for either of these, appropriate values are to be guessed based on the given potential and vacuum location.
potential | the potential for which the profiles are to be computed |
true_vacuum | the location of the true vacuum in field space |
n_dimensions | the number of space-time dimensions |
domain_start | the minimum value of the radial coordinate at which the profiles are evaluated. If negative, the function should guess an appropriate value. |
domain_end | the maximum value of the radial coordinate at which the profiles are evaluated. If negative, the function should guess an appropriate value. |
initial_step_size | the initial step size to be used in constructing the discretized solution |
interpolation_points_fraction | fraction of grid points to use for interpolation |
Implements BubbleProfiler::Profile_guesser.
Definition at line 207 of file shooting_profile_guesser.cpp.
References calculate_field_profiles(), calculate_potential_parameters(), and compute_vacuum_distance().
|
inline |
Definition at line 51 of file shooting_profile_guesser.hpp.
References solver.
|
inline |
Definition at line 52 of file shooting_profile_guesser.hpp.
References solver.
|
inline |
Definition at line 49 of file shooting_profile_guesser.hpp.
References solver.
|
inline |
Definition at line 48 of file shooting_profile_guesser.hpp.
References trial_dist.
|
private |
Definition at line 287 of file shooting_profile_guesser.cpp.
References alpha, calculate_barrier_location(), calculate_false_min_location(), calculate_true_min_location(), E, BubbleProfiler::Shooting::solve(), and solver.
Referenced by calculate_field_profiles().
|
private |
Definition at line 388 of file shooting_profile_guesser.cpp.
Referenced by calculate_field_profiles().
|
private |
Definition at line 56 of file shooting_profile_guesser.hpp.
Referenced by calculate_barrier_location(), calculate_false_min_location(), calculate_potential_parameters(), calculate_true_min_location(), get_large_distance_solution(), and solve_one_dimensional().
|
private |
Definition at line 63 of file shooting_profile_guesser.hpp.
Referenced by calculate_field_profiles(), and calculate_potential_parameters().
|
private |
Definition at line 58 of file shooting_profile_guesser.hpp.
Referenced by calculate_field_profiles(), calculate_potential_parameters(), and compute_vacuum_distance().
|
private |
Definition at line 57 of file shooting_profile_guesser.hpp.
Referenced by calculate_barrier_location(), calculate_false_min_location(), calculate_potential_parameters(), calculate_true_min_location(), get_large_distance_solution(), and solve_one_dimensional().
|
private |
Definition at line 64 of file shooting_profile_guesser.hpp.
Referenced by calculate_potential_parameters().
|
private |
Definition at line 59 of file shooting_profile_guesser.hpp.
Referenced by calculate_field_profiles(), calculate_potential_parameters(), and compute_vacuum_distance().
|
private |
Definition at line 60 of file shooting_profile_guesser.hpp.
Referenced by calculate_field_profiles(), get_solver(), set_solver(), and solve_one_dimensional().
|
private |
Definition at line 55 of file shooting_profile_guesser.hpp.
Referenced by calculate_potential_parameters(), and set_trial_distance().