BubbleProfiler  0.3.0
by Peter Athron, Csaba Balazs, Michael Bardsley, Andrew Fowlie, Dylan Harries & Graham White
Public Member Functions | Private Member Functions | Private Attributes | List of all members
BubbleProfiler::Perturbative_profiler< Integration_policy > Class Template Reference

Bounce solver using perturbative method. More...

#include <generic_perturbative_profiler.hpp>

Inheritance diagram for BubbleProfiler::Perturbative_profiler< Integration_policy >:
Inheritance graph
[legend]
Collaboration diagram for BubbleProfiler::Perturbative_profiler< Integration_policy >:
Collaboration graph
[legend]

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_profilesget_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_guesserguesser
 
std::shared_ptr< Profile_convergence_testerconvergence_tester
 
std::shared_ptr< Root_finder< Eigen::VectorXd > > root_finder
 
logging::Basic_logger logger {}
 
Eigen::VectorXd true_vacuum {}
 
Eigen::VectorXd false_vacuum {}
 

Detailed Description

template<class Integration_policy>
class BubbleProfiler::Perturbative_profiler< Integration_policy >

Bounce solver using perturbative method.

This is the main interface class for the BubbleProfiler. The workflow for using this class is as follows:

  1. Specify the domain size and discretization parameters via the set_ methods.
  2. Supply a Profile_guesser class via set_initial_guesser to generate an initial ansatz solution.
  3. Supply a Profile_convergence_tester via set_convergence_tester to determine the stopping critera.
  4. Call calculate_bubble_profile to perform the calculation. Callers of this method supply:
    • A scalar field potential (Potential).
    • An algorithm for solving the ODE which determines the perturbative corrections (BVP_solver).
    • An Observer to monitor the output.
  5. Retrieve the resulting Field_profiles via get_bubble_profile.

Definition at line 71 of file generic_perturbative_profiler.hpp.

Member Function Documentation

template<class Integration_policy >
template<class Observer >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile ( Potential potential,
Observer &  observer 
)

Calculate the bubble profile for the specified potential.

Template Parameters
BVP_solveralgorithm to solve BVP for perturbative corrections
Observerto 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().

template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_bubble_profile ( Potential potential)

Calculate the bubble profile for the specified potential.

Template Parameters
BVP_solveralgorithm 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().

template<class Integration_policy >
std::tuple< Eigen::VectorXd, Eigen::MatrixXd > BubbleProfiler::Perturbative_profiler< Integration_policy >::calculate_perturbation ( Potential potential)
private
template<class Integration_policy >
bool BubbleProfiler::Perturbative_profiler< Integration_policy >::check_convergence ( const Potential potential) const
private
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::check_setup ( Potential potential) const
private
template<class Integration_policy >
Field_profiles BubbleProfiler::Perturbative_profiler< Integration_policy >::construct_initial_profiles ( Potential potential) const
private
template<class Integration_policy >
const Field_profiles& BubbleProfiler::Perturbative_profiler< Integration_policy >::get_bubble_profile ( ) const
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().

template<class Integration_policy >
double BubbleProfiler::Perturbative_profiler< Integration_policy >::get_euclidean_action ( ) const
inline
template<class Integration_policy >
int BubbleProfiler::Perturbative_profiler< Integration_policy >::get_max_iterations ( ) const
private
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::integrate_ivp ( const Perturbations_ODE_system system,
Eigen::VectorXd &  perturbations,
double  step_size 
) const
private
template<class Integration_policy >
template<class Observer >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::integrate_ivp ( const Perturbations_ODE_system system,
Eigen::VectorXd &  perturbations,
double  step_size,
Observer  observer 
) const
private
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::integrate_system_to ( const Perturbations_ODE_system ,
double  rho 
) const
private
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_convergence_tester ( std::shared_ptr< Profile_convergence_tester ct)
inline
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_domain_end ( double  end)
Parameters
endof the domain (radial coordinate)

Definition at line 242 of file generic_perturbative_profiler.hpp.

References BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_end.

template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_domain_start ( double  start)
Parameters
startof the domain (radial coordinate)

Definition at line 233 of file generic_perturbative_profiler.hpp.

References BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_start.

template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_false_vacuum_loc ( const Eigen::VectorXd &  fv)
inline
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_initial_guesser ( std::shared_ptr< Profile_guesser g)
inline
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_initial_step_size ( double  h)
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_interpolation_points_fraction ( double  f)
inline
Parameters
ffraction 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.

template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_number_of_dimensions ( int  d)
inline
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_root_finder ( std::shared_ptr< Root_finder< Eigen::VectorXd > >  rf)
inline
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::set_true_vacuum_loc ( const Eigen::VectorXd &  tv)
inline
template<class Integration_policy >
void BubbleProfiler::Perturbative_profiler< Integration_policy >::update_field_profiles ( const Eigen::VectorXd &  new_grid,
const Eigen::MatrixXd &  perturbations 
)
private

Member Data Documentation

template<class Integration_policy >
std::shared_ptr<Profile_convergence_tester> BubbleProfiler::Perturbative_profiler< Integration_policy >::convergence_tester
private
template<class Integration_policy >
double BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_end {-1.}
private
template<class Integration_policy >
double BubbleProfiler::Perturbative_profiler< Integration_policy >::domain_start {-1.}
private
template<class Integration_policy >
double BubbleProfiler::Perturbative_profiler< Integration_policy >::euclidean_action {0.}
private
template<class Integration_policy >
Eigen::VectorXd BubbleProfiler::Perturbative_profiler< Integration_policy >::false_vacuum {}
private
template<class Integration_policy >
std::shared_ptr<Profile_guesser> BubbleProfiler::Perturbative_profiler< Integration_policy >::guesser
private
template<class Integration_policy >
double BubbleProfiler::Perturbative_profiler< Integration_policy >::initial_step_size {1.e-2}
private
template<class Integration_policy >
double BubbleProfiler::Perturbative_profiler< Integration_policy >::interpolation_points_fraction {1.}
private
template<class Integration_policy >
int BubbleProfiler::Perturbative_profiler< Integration_policy >::iteration {0}
private
template<class Integration_policy >
logging::Basic_logger BubbleProfiler::Perturbative_profiler< Integration_policy >::logger {}
private
template<class Integration_policy >
int BubbleProfiler::Perturbative_profiler< Integration_policy >::n_dims {3}
private
template<class Integration_policy >
int BubbleProfiler::Perturbative_profiler< Integration_policy >::n_grid_points {1000}
private
template<class Integration_policy >
Field_profiles BubbleProfiler::Perturbative_profiler< Integration_policy >::profiles {}
private
template<class Integration_policy >
std::shared_ptr<Root_finder<Eigen::VectorXd> > BubbleProfiler::Perturbative_profiler< Integration_policy >::root_finder
private
template<class Integration_policy >
Eigen::VectorXd BubbleProfiler::Perturbative_profiler< Integration_policy >::true_vacuum {}
private

The documentation for this class was generated from the following file: