BSMPT 3.0.7
BSMPT - Beyond the Standard Model Phase Transitions : A C++ package for the computation of the EWPT in BSM models
Loading...
Searching...
No Matches
BSMPT::MinimumTracer Class Reference

Public Member Functions

 MinimumTracer ()
 default constructor
 
 MinimumTracer (const std::shared_ptr< Class_Potential_Origin > &pointer_in, const int &WhichMinimizer_in, const bool &UseMultithreading_in)
 constructor
 
void FindFlatDirections ()
 Calculates flat field directions.
 
void ConvertToNonFlatDirections (std::vector< double > &point)
 Convert point into minimal non-flat space, reduces dimension in case of flat directions, point has to have VEV dimension.
 
void FindDiscreteSymmetries ()
 Calculates the list of symmetries that leave V unchanged.
 
std::vector< double > ConvertToVEVDim (const std::vector< double > &point)
 ConvertToVEVDim converts point from full to reduced (VEV) dimension.
 
std::vector< double > GetGlobalMinimum (const double &Temp, std::vector< double > &check, const std::vector< double > &start)
 get global minimum of effective potential
 
std::vector< double > GetGlobalMinimum (const double &Temp, const std::vector< double > &start)
 get global minimum of effective potential
 
std::vector< double > GetGlobalMinimum (const double &Temp)
 get global minimum of effective potential
 
void IsGlobMin (Minimum &min)
 IsGlobMin checks whether current minimum is the global minimum.
 
StatusNLOStability GetStatusNLOVEV (const bool &out)
 GetStatusNLOVEV convert bool output of CheckNLOVEV to status string.
 
StatusEWSR GetStatusEWSR (const int &out)
 GetStatusEWSR convert double output of IsThereEWSymmetryRestoration to status string.
 
int IsThereEWSymmetryRestoration ()
 IsThereEWSymmetryRestoration checks if there is EW symmetry restoration at high temperatures.
 
double SmallestEigenvalue (const std::vector< double > &point, const std::function< std::vector< std::vector< double > >(std::vector< double >)> &Hessian)
 SmallestEigenvalue calculate Eigenvalues of Hessian and returns smallest.
 
std::vector< double > FindZeroSmallestEigenvalue (std::vector< double > point_1, double T_1, std::vector< double > point_2, double T_2)
 FindZeroSmallestEigenvalue.
 
std::vector< MinimumTrackPhase (double &globMinEndT, const std::vector< double > &point_In, const double &currentT_In, const double &finalT, const double &dT_In=1, const bool &output=true, const bool &unprotected=false)
 TrackPhase with enforced global minimum tracing (= phase is checked if it is still the global minimum until it is no longer, then the current temperature is stored in globMinEndT)
 
std::vector< MinimumTrackPhase (const std::vector< double > &point_In, const double &currentT_In, const double &finalT, const double &dT_In=1, const bool &output=true, const bool &unprotected=false)
 TrackPhase.
 
void ReduceVEV (std::vector< double > &vev)
 Reduce the VEV into the same principal quadrant.
 
void ReduceVEV (Minimum &min)
 Reduce the VEV of the minimum into the same principal quadrant.
 
const std::vector< std::vector< double > > WarpPath (const std::vector< std::vector< double > > &path, const std::vector< double > &T1, const std::vector< double > &F1, const std::vector< double > &T2, const std::vector< double > &F2)
 WarpPath.
 
std::vector< double > LocateMinimum (const std::vector< double > &guess_In, std::function< std::vector< double >(std::vector< double >)> &df, std::function< std::vector< std::vector< double > >(std::vector< double >)> &Hessian, const double &error=1e-4, const double &const_multiplier=1e-2, const int &maxiter=100)
 Finds stationary points of a function (not only minimas).
 
std::vector< std::string > GetLegend (const int &num_coex_phases, const bool &do_gw_calc)
 GetLegend derive legend.
 

Public Attributes

double GradientThreshold = 1e-3
 Threshold for the acceptable gradient.
 
double HessianDiagonalShift = 1e-3
 Add a constant to the diagonals of the hessian matrix in the LocateMinimum function. Helps with convergence.
 
std::vector< double > HighTemperatureVEV
 Minimum found in IsThereEWSymmetryRestoration()
 
std::vector< MinimumSavedMinimaFromVEVSplitting
 Vector to store minima that appeared from VEV splittings.
 
bool flat_dirs_found = false
 bool to store whether flat directions are found
 
std::vector< int > NonFlatDirections
 storage of all non-flat VEV-directions
 
std::vector< std::size_t > flat_1D_dirs
 storage of indices of flat 1D directions in VEV basis
 
std::vector< std::vector< std::size_t > > flat_2D_dirs
 storage of indices of flat 2D directions in VEV basis
 
std::vector< std::vector< std::size_t > > flat_3D_dirs
 storage of indices of flat 3D directions in VEV basis
 
std::vector< Eigen::MatrixXd > GroupElements
 List of group elements allowed by the potential.
 

Protected Attributes

std::shared_ptr< Class_Potential_OriginmodelPointer
 modelPointer for the used parameter point
 

Private Attributes

int WhichMinimizer
 
bool UseMultithreading
 

Constructor & Destructor Documentation

◆ MinimumTracer()

BSMPT::MinimumTracer::MinimumTracer ( const std::shared_ptr< Class_Potential_Origin > &  pointer_in,
const int &  WhichMinimizer_in,
const bool &  UseMultithreading_in 
)

constructor

Parameters
pointer_inthis->modelPointer for used parameter point
WhichMinimizer_inwhich minimizers are used
UseMultithreading_inwhether or not multithreading is used

Member Function Documentation

◆ ConvertToVEVDim()

std::vector< double > BSMPT::MinimumTracer::ConvertToVEVDim ( const std::vector< double > &  point)

ConvertToVEVDim converts point from full to reduced (VEV) dimension.

Parameters
pointpoint in full field dimension
Returns
point in reduced VEV dimension

◆ FindZeroSmallestEigenvalue()

std::vector< double > BSMPT::MinimumTracer::FindZeroSmallestEigenvalue ( std::vector< double >  point_1,
double  T_1,
std::vector< double >  point_2,
double  T_2 
)

FindZeroSmallestEigenvalue.

Parameters
point_1first point
T_1temperature of first point
point_2second point
T_2temperature of second point
Returns
stationary point found in between point_1 and point_2

◆ GetGlobalMinimum() [1/3]

std::vector< double > BSMPT::MinimumTracer::GetGlobalMinimum ( const double &  Temp)

get global minimum of effective potential

Parameters
Temptemperature
Returns
global minimum at temperature Temp

◆ GetGlobalMinimum() [2/3]

std::vector< double > BSMPT::MinimumTracer::GetGlobalMinimum ( const double &  Temp,
const std::vector< double > &  start 
)

get global minimum of effective potential

Parameters
Temptemperature
startstart value for CMA-ES minimization
Returns
global minimum at temperature Temp

◆ GetGlobalMinimum() [3/3]

std::vector< double > BSMPT::MinimumTracer::GetGlobalMinimum ( const double &  Temp,
std::vector< double > &  check,
const std::vector< double > &  start 
)

get global minimum of effective potential

Parameters
Temptemperature
checkstorage for minimization debugging options
startstart value for CMA-ES minimization
Returns
global minimum at temperature Temp

◆ GetLegend()

std::vector< std::string > BSMPT::MinimumTracer::GetLegend ( const int &  num_coex_phases,
const bool &  do_gw_calc 
)

GetLegend derive legend.

Parameters
num_coex_phasesnumber of coexisting phase regions
do_gw_calcbool that determines whether gw calculation is performed
Returns
vector of column label strings

◆ GetStatusEWSR()

StatusEWSR BSMPT::MinimumTracer::GetStatusEWSR ( const int &  out)

GetStatusEWSR convert double output of IsThereEWSymmetryRestoration to status string.

Parameters
outint output of IsThereEWSymmetryRestoration
Returns
status string for output

◆ GetStatusNLOVEV()

StatusNLOStability BSMPT::MinimumTracer::GetStatusNLOVEV ( const bool &  out)

GetStatusNLOVEV convert bool output of CheckNLOVEV to status string.

Parameters
outbool output of CheckNLOVEV
Returns
status string for output

◆ IsGlobMin()

void BSMPT::MinimumTracer::IsGlobMin ( Minimum min)

IsGlobMin checks whether current minimum is the global minimum.

Parameters
minMinimum to check, sets is_glob_min to true if min is global minimum

◆ IsThereEWSymmetryRestoration()

int BSMPT::MinimumTracer::IsThereEWSymmetryRestoration ( )

IsThereEWSymmetryRestoration checks if there is EW symmetry restoration at high temperatures.

Returns
status; if status < -1: no minimum if status = 0: calculation failed, if status = 1: flat region with minimum, if status = 2: there is a minimum but no symmetry restoration, if status = 3: symmetry restoration

◆ LocateMinimum()

std::vector< double > BSMPT::MinimumTracer::LocateMinimum ( const std::vector< double > &  guess_In,
std::function< std::vector< double >(std::vector< double >)> &  df,
std::function< std::vector< std::vector< double > >(std::vector< double >)> &  Hessian,
const double &  error = 1e-4,
const double &  const_multiplier = 1e-2,
const int &  maxiter = 100 
)

Finds stationary points of a function (not only minimas).

Parameters
guess_Inis the initial guess for the minimum
dfgradient of the function to be minimized
Hessianhessian of the function
errorMaximum size of \( | \vec{df} | \) that is considered a minimum
const_multiplierIf \( \det{Hessian} = 0\) this method does not work. In that case we move the guess as \( \vec{p} \rightarrow \vec{p} - const\_multiplier * \vec{df}\)
maxiterMaximum iteration exiting function
Returns
std::vector<double>

◆ ReduceVEV() [1/2]

void BSMPT::MinimumTracer::ReduceVEV ( Minimum min)

Reduce the VEV of the minimum into the same principal quadrant.

Parameters
minto be rotated

◆ ReduceVEV() [2/2]

void BSMPT::MinimumTracer::ReduceVEV ( std::vector< double > &  vev)

Reduce the VEV into the same principal quadrant.

Parameters
pointto be rotated

◆ SmallestEigenvalue()

double BSMPT::MinimumTracer::SmallestEigenvalue ( const std::vector< double > &  point,
const std::function< std::vector< std::vector< double > >(std::vector< double >)> &  Hessian 
)

SmallestEigenvalue calculate Eigenvalues of Hessian and returns smallest.

Parameters
pointpoint where to evaluate the Hessian
HessianHessian function
Returns
smallest Eigenvalue of Hessian

◆ TrackPhase() [1/2]

std::vector< Minimum > BSMPT::MinimumTracer::TrackPhase ( const std::vector< double > &  point_In,
const double &  currentT_In,
const double &  finalT,
const double &  dT_In = 1,
const bool &  output = true,
const bool &  unprotected = false 
)

TrackPhase.

Parameters
point_Instart point for tracking
currentT_Instart point temperature for phase tracking
finalTend point temperature
dT_Ininitial temperature step size
outputif true tracking output is printed on the screen
unprotectedif true we dont check the hessian

◆ TrackPhase() [2/2]

std::vector< Minimum > BSMPT::MinimumTracer::TrackPhase ( double &  globMinEndT,
const std::vector< double > &  point_In,
const double &  currentT_In,
const double &  finalT,
const double &  dT_In = 1,
const bool &  output = true,
const bool &  unprotected = false 
)

TrackPhase with enforced global minimum tracing (= phase is checked if it is still the global minimum until it is no longer, then the current temperature is stored in globMinEndT)

Parameters
globMinEndTtemperature at which phase is no longer global minimum
point_Instart point for tracking
currentT_Instart point temperature for phase tracking
finalTend point temperature
dT_Ininitial temperature step size
outputif true tracking output is printed on the screen
unprotectedif true we dont check the hessian

◆ WarpPath()

const std::vector< std::vector< double > > BSMPT::MinimumTracer::WarpPath ( const std::vector< std::vector< double > > &  path,
const std::vector< double > &  T1,
const std::vector< double > &  F1,
const std::vector< double > &  T2,
const std::vector< double > &  F2 
)

WarpPath.

Parameters
path
T1
F1
T2
F2
Returns
wraped path

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