BubbleProfiler
0.3.0
by Peter Athron, Csaba Balazs, Michael Bardsley, Andrew Fowlie, Dylan Harries & Graham White
|
Bounce solver using perturbative method. More...
#include <generic_perturbative_profiler.hpp>
Public Member Functions | |
void | set_domain_start (double start) |
void | set_domain_end (double end) |
void | set_initial_step_size (double h) |
void | set_interpolation_points_fraction (double f) |
void | set_number_of_dimensions (int d) |
void | set_initial_guesser (std::shared_ptr< Profile_guesser > g) |
void | set_root_finder (std::shared_ptr< Root_finder< Eigen::VectorXd > > rf) |
void | set_convergence_tester (std::shared_ptr< Profile_convergence_tester > ct) |
void | set_true_vacuum_loc (const Eigen::VectorXd &tv) |
void | set_false_vacuum_loc (const Eigen::VectorXd &fv) |
template<class Observer > | |
void | calculate_bubble_profile (Potential &, Observer &) |
void | calculate_bubble_profile (Potential &) |
Calculate the bubble profile for the specified potential. More... | |
const Field_profiles & | get_bubble_profile () const |
Retrieve the field profiles after running calculate_bubble_profile. More... | |
double | get_euclidean_action () const |
Retrieve the action after running calculate_bubble_profile. More... | |
Private Member Functions | |
void | check_setup (Potential &) const |
Field_profiles | construct_initial_profiles (Potential &) const |
int | get_max_iterations () const |
bool | check_convergence (const Potential &) const |
void | integrate_ivp (const Perturbations_ODE_system &, Eigen::VectorXd &, double) const |
template<class Observer > | |
void | integrate_ivp (const Perturbations_ODE_system &, Eigen::VectorXd &, double, Observer) const |
std::tuple< Eigen::VectorXd, Eigen::MatrixXd > | calculate_perturbation (Potential &) |
void | integrate_system_to (const Perturbations_ODE_system &, double rho) const |
void | update_field_profiles (const Eigen::VectorXd &, const Eigen::MatrixXd &) |
Private Attributes | |
double | domain_start {-1.} |
double | domain_end {-1.} |
double | initial_step_size {1.e-2} |
int | n_grid_points {1000} |
double | interpolation_points_fraction {1.} |
int | n_dims {3} |
int | iteration {0} |
Field_profiles | profiles {} |
double | euclidean_action {0.} |
std::shared_ptr< Profile_guesser > | guesser |
std::shared_ptr< Profile_convergence_tester > | convergence_tester |
std::shared_ptr< Root_finder< Eigen::VectorXd > > | root_finder |
logging::Basic_logger | logger {} |
Eigen::VectorXd | true_vacuum {} |
Eigen::VectorXd | false_vacuum {} |
Bounce solver using perturbative method.
This is the main interface class for the BubbleProfiler. The workflow for using this class is as follows:
Definition at line 71 of file generic_perturbative_profiler.hpp.
void BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile | ( | Potential & | potential, |
Observer & | observer | ||
) |
Calculate the bubble profile for the specified potential.
BVP_solver | algorithm to solve BVP for perturbative corrections |
Observer | to report output |
Definition at line 178 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::calculate_action(), BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_perturbation(), BubbleProfiler::Perturbative_profiler< Integration_policy >::check_convergence(), BubbleProfiler::Perturbative_profiler< Integration_policy >::check_setup(), BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles(), BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_end, BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_start, BubbleProfiler::Perturbative_profiler< Integration_policy >::euclidean_action, BubbleProfiler::Field_profiles::get_domain_end(), BubbleProfiler::Field_profiles::get_domain_start(), BubbleProfiler::Field_profiles::get_field_profiles(), BubbleProfiler::Perturbative_profiler< Integration_policy >::get_max_iterations(), BubbleProfiler::Field_profiles::get_number_of_fields(), BubbleProfiler::Field_profiles::get_spatial_grid(), BubbleProfiler::Perturbative_profiler< Integration_policy >::initial_step_size, BubbleProfiler::Perturbative_profiler< Integration_policy >::interpolation_points_fraction, BubbleProfiler::Perturbative_profiler< Integration_policy >::iteration, BubbleProfiler::logging::Basic_logger::log_message(), BubbleProfiler::Perturbative_profiler< Integration_policy >::logger, gaussian_alpha_tests::n_fields, BubbleProfiler::Perturbative_profiler< Integration_policy >::n_grid_points, BubbleProfiler::Perturbative_profiler< Integration_policy >::profiles, BubbleProfiler::logging::Trace, and BubbleProfiler::Perturbative_profiler< Integration_policy >::update_field_profiles().
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile(), main(), BubbleProfiler::run_perturbative_profiler(), BubbleProfiler::Perturbative_profiler< Integration_policy >::set_false_vacuum_loc(), and BubbleProfiler::solve_perturbative().
void BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile | ( | Potential & | potential | ) |
Calculate the bubble profile for the specified potential.
BVP_solver | algorithm to solve BVP for perturbative corrections |
Definition at line 169 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
private |
Definition at line 311 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Field_profiles::derivative_at(), BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_end, BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_start, BubbleProfiler::Field_profiles::evaluate_at(), BubbleProfiler::Field_profiles::get_number_of_fields(), BubbleProfiler::Perturbative_profiler< Integration_policy >::integrate_ivp(), BubbleProfiler::Perturbative_profiler< Integration_policy >::n_dims, gaussian_alpha_tests::n_fields, BubbleProfiler::Perturbative_profiler< Integration_policy >::n_grid_points, BubbleProfiler::Perturbative_profiler< Integration_policy >::profiles, BubbleProfiler::Perturbative_profiler< Integration_policy >::root_finder, and BubbleProfiler::SUCCESS.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
private |
Definition at line 303 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::convergence_tester, and BubbleProfiler::Perturbative_profiler< Integration_policy >::profiles.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
private |
Definition at line 260 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::convergence_tester, BubbleProfiler::Perturbative_profiler< Integration_policy >::false_vacuum, BubbleProfiler::Perturbative_profiler< Integration_policy >::guesser, BubbleProfiler::Perturbative_profiler< Integration_policy >::root_finder, and BubbleProfiler::Potential::translate_origin().
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
private |
Definition at line 283 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_end, BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_start, BubbleProfiler::Perturbative_profiler< Integration_policy >::false_vacuum, BubbleProfiler::Perturbative_profiler< Integration_policy >::guesser, BubbleProfiler::Perturbative_profiler< Integration_policy >::initial_step_size, BubbleProfiler::Perturbative_profiler< Integration_policy >::interpolation_points_fraction, BubbleProfiler::Perturbative_profiler< Integration_policy >::n_dims, and BubbleProfiler::Perturbative_profiler< Integration_policy >::true_vacuum.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
inline |
Retrieve the field profiles after running calculate_bubble_profile.
Definition at line 125 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::profiles.
Referenced by BubbleProfiler::solve_perturbative().
|
inline |
Retrieve the action after running calculate_bubble_profile.
Definition at line 128 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::euclidean_action.
Referenced by main(), BubbleProfiler::run_perturbative_profiler(), and BubbleProfiler::solve_perturbative().
|
private |
Definition at line 297 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::convergence_tester.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
private |
Definition at line 450 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_perturbation().
|
private |
Definition at line 460 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_end, and BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_start.
|
private |
|
inline |
ct | Profile_convergence_tester to determine stopping criterea |
Definition at line 100 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::convergence_tester.
Referenced by main(), BubbleProfiler::run_perturbative_profiler(), and BubbleProfiler::solve_perturbative().
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_domain_end | ( | double | end | ) |
end | of the domain (radial coordinate) |
Definition at line 242 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_end.
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_domain_start | ( | double | start | ) |
start | of the domain (radial coordinate) |
Definition at line 233 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_start.
|
inline |
fv | location of false vacuum in field space |
Definition at line 108 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::false_vacuum.
Referenced by main(), BubbleProfiler::run_perturbative_profiler(), and BubbleProfiler::solve_perturbative().
|
inline |
g | Profile_guesser class to generate an initial ansatz solution |
Definition at line 92 of file generic_perturbative_profiler.hpp.
References sm_plus_singlet::g, and BubbleProfiler::Perturbative_profiler< Integration_policy >::guesser.
Referenced by main(), BubbleProfiler::run_perturbative_profiler(), and BubbleProfiler::solve_perturbative().
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_initial_step_size | ( | double | h | ) |
n | number of grid points per dimension. |
Definition at line 251 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::initial_step_size.
Referenced by BubbleProfiler::run_perturbative_profiler(), and BubbleProfiler::solve_perturbative().
|
inline |
f | fraction of grid points to use in interpolating fields |
Definition at line 84 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::interpolation_points_fraction.
|
inline |
d | number of dimensions (scalar fields) |
Definition at line 89 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::n_dims.
Referenced by BubbleProfiler::run_perturbative_profiler(), and BubbleProfiler::solve_perturbative().
|
inline |
Definition at line 96 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::root_finder.
Referenced by BubbleProfiler::run_perturbative_profiler(), and BubbleProfiler::solve_perturbative().
|
inline |
tv | location of true vacuum in field space |
Definition at line 105 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::true_vacuum.
Referenced by main(), BubbleProfiler::run_perturbative_profiler(), and BubbleProfiler::solve_perturbative().
|
private |
Definition at line 390 of file generic_perturbative_profiler.hpp.
References BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_end, BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_start, BubbleProfiler::Field_profiles::get_field_profiles(), BubbleProfiler::Field_profiles::get_spatial_grid(), BubbleProfiler::interpolate_f_at(), BubbleProfiler::Perturbative_profiler< Integration_policy >::interpolation_points_fraction, BubbleProfiler::Perturbative_profiler< Integration_policy >::n_dims, gaussian_alpha_tests::n_fields, BubbleProfiler::Perturbative_profiler< Integration_policy >::profiles, and BubbleProfiler::Field_profiles::set_number_of_dimensions().
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
private |
Definition at line 142 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::check_convergence(), BubbleProfiler::Perturbative_profiler< Integration_policy >::check_setup(), BubbleProfiler::Perturbative_profiler< Integration_policy >::get_max_iterations(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::set_convergence_tester().
|
private |
Definition at line 132 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile(), BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_perturbation(), BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles(), BubbleProfiler::Perturbative_profiler< Integration_policy >::integrate_ivp(), BubbleProfiler::Perturbative_profiler< Integration_policy >::set_domain_end(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::update_field_profiles().
|
private |
Definition at line 131 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile(), BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_perturbation(), BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles(), BubbleProfiler::Perturbative_profiler< Integration_policy >::integrate_ivp(), BubbleProfiler::Perturbative_profiler< Integration_policy >::set_domain_start(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::update_field_profiles().
|
private |
|
private |
Definition at line 149 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::check_setup(), BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::set_false_vacuum_loc().
|
private |
Definition at line 140 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::check_setup(), BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::set_initial_guesser().
|
private |
Definition at line 133 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile(), BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::set_initial_step_size().
|
private |
Definition at line 135 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile(), BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles(), BubbleProfiler::Perturbative_profiler< Integration_policy >::set_interpolation_points_fraction(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::update_field_profiles().
|
private |
Definition at line 137 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
private |
Definition at line 146 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile().
|
private |
Definition at line 136 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_perturbation(), BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles(), BubbleProfiler::Perturbative_profiler< Integration_policy >::set_number_of_dimensions(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::update_field_profiles().
|
private |
|
private |
Definition at line 138 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile(), BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_perturbation(), BubbleProfiler::Perturbative_profiler< Integration_policy >::check_convergence(), BubbleProfiler::Perturbative_profiler< Integration_policy >::get_bubble_profile(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::update_field_profiles().
|
private |
Definition at line 144 of file generic_perturbative_profiler.hpp.
Referenced by BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_perturbation(), BubbleProfiler::Perturbative_profiler< Integration_policy >::check_setup(), and BubbleProfiler::Perturbative_profiler< Integration_policy >::set_root_finder().
|
private |