38const std::unordered_map<StatusNLOStability, std::string>
40 {StatusNLOStability::NotSet,
"not_set"},
41 {StatusNLOStability::Off,
"off"},
42 {StatusNLOStability::Success,
"success"},
43 {StatusNLOStability::NoNLOStability,
"no_nlo_stability"}};
63 {StatusEWSR::NotSet,
"not_set"},
64 {StatusEWSR::Off,
"off"},
65 {StatusEWSR::Failure,
"failure"},
66 {StatusEWSR::NotBFB,
"non_bfb"},
67 {StatusEWSR::FlatRegion,
"flat_region"},
68 {StatusEWSR::EWSymNonRes,
"ew_sym_non_res"},
69 {StatusEWSR::EWSymRes,
"ew_sym_res"}};
88 {StatusTracing::NotSet,
"not_set"},
89 {StatusTracing::Success,
"success"},
90 {StatusTracing::NoCoverage,
"no_coverage"},
91 {StatusTracing::NoMinsAtBoundaries,
"no_mins_at_boundaries"},
92 {StatusTracing::NoGlobMinCoverage,
"no_glob_min_coverage"},
93 {StatusTracing::Failure,
"failure"}};
109 {StatusCoexPair::NotSet,
"not_set"},
110 {StatusCoexPair::Success,
"success"},
111 {StatusCoexPair::NoCoexPairs,
"no_coex_pair"}};
130 {StatusCrit::NotSet,
"not_set"},
131 {StatusCrit::Success,
"success"},
132 {StatusCrit::FalseLower,
"false_lower"},
133 {StatusCrit::TrueLower,
"true_lower"},
134 {StatusCrit::CoincideSinglePoint,
"coincide_single_point"},
135 {StatusCrit::Failure,
"failure"}};
152const std::unordered_map<StatusTemperature, std::string>
154 {StatusTemperature::Success,
"success"},
155 {StatusTemperature::NotMet,
"not_met"},
156 {StatusTemperature::NaN,
"nan"}};
172 {StatusGW::NotSet,
"not_set"},
173 {StatusGW::Success,
"success"},
174 {StatusGW::Failure,
"failure"}};
279 std::vector<double> point;
282 bool is_glob_min =
false;
285 bool operator<(
const Minimum &a)
const {
return temp < a.temp; }
292 bool UseMultithreading;
337 MinimumTracer(
const std::shared_ptr<Class_Potential_Origin> &pointer_in,
338 const int &WhichMinimizer_in,
339 const bool &UseMultithreading_in);
376 std::vector<double> &check,
377 const std::vector<double> &start);
386 const std::vector<double> &start);
435 const std::vector<double> &point,
436 const std::function<std::vector<std::vector<double>>(std::vector<double>)>
449 std::vector<double> point_2,
464 std::vector<Minimum>
TrackPhase(
double &globMinEndT,
465 const std::vector<double> &point_In,
466 const double ¤tT_In,
467 const double &finalT,
468 const double &dT_In = 1,
469 const bool &
output =
true,
470 const bool &unprotected =
false);
481 std::vector<Minimum>
TrackPhase(
const std::vector<double> &point_In,
482 const double ¤tT_In,
483 const double &finalT,
484 const double &dT_In = 1,
485 const bool &
output =
true,
486 const bool &unprotected =
false);
524 void ReduceVEV(std::vector<double> &vev);
542 const std::vector<std::vector<double>>
543 WarpPath(
const std::vector<std::vector<double>> &path,
544 const std::vector<double> &T1,
545 const std::vector<double> &F1,
546 const std::vector<double> &T2,
547 const std::vector<double> &F2);
564 const std::vector<double> &guess_In,
565 std::function<std::vector<double>(std::vector<double>)> &df,
566 std::function<std::vector<std::vector<double>>(std::vector<double>)>
568 const double &error = 1e-4,
569 const double &const_multiplier = 1e-2,
570 const int &maxiter = 100);
578 std::vector<std::string>
GetLegend(
const int &num_coex_phases,
579 const bool &do_gw_calc);
591std::vector<std::vector<double>>
594 const double low_value,
595 const double high_value,
596 const int nsteps = 100);
606std::vector<std::vector<double>>
608 const std::vector<double> &min_end,
609 const int npoints = 100);
672 Phase(
const std::vector<double> &phase_start,
673 const double &initialT,
674 const double &finalT,
676 std::shared_ptr<MinimumTracer> &MinTracerIn);
689 Phase(
const double &initialT,
690 const std::vector<double> &phase_start,
694 std::shared_ptr<MinimumTracer> &MinTracerIn);
706 Phase(
const std::vector<double> &phase_start,
707 const double &initialT,
708 const double &finalT,
709 std::shared_ptr<MinimumTracer> &MinTracerIn);
720 Phase(
const double &initialT,
721 const std::vector<double> &phase_start,
724 std::shared_ptr<MinimumTracer> &MinTracerIn);
734 Phase(
const double &initialT,
737 std::shared_ptr<MinimumTracer> &MinTracerIn);
751 double crit_temp = -1;
763 const Phase &false_phase,
764 const Phase &true_phase,
765 const double &Tlow_in,
766 const double &Thigh_in);
874 Vacuum(
const double &T_lowIn,
875 const double &T_highIn,
876 std::shared_ptr<MinimumTracer> &MinTracerIn,
877 std::shared_ptr<Class_Potential_Origin> &modelPointerIn,
879 const int &num_pointsIn = 10,
880 const bool &do_only_tracingIn =
false);
954 const std::vector<double> &HighTempPoint);
962 const std::vector<double> &HighTempPoint);
981 const std::vector<double> &HighTempPoint);
Definition minimum_tracer.h:289
MinimumTracer()
default constructor
Definition minimum_tracer.cpp:795
StatusEWSR GetStatusEWSR(const int &out)
GetStatusEWSR convert double output of IsThereEWSymmetryRestoration to status string.
Definition minimum_tracer.cpp:1175
std::vector< std::vector< std::size_t > > flat_2D_dirs
storage of indices of flat 2D directions in VEV basis
Definition minimum_tracer.h:506
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).
Definition minimum_tracer.cpp:66
std::vector< Minimum > TrackPhase(double &globMinEndT, const std::vector< double > &point_In, const double ¤tT_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...
Definition minimum_tracer.cpp:267
std::vector< Eigen::MatrixXd > GroupElements
List of group elements allowed by the potential.
Definition minimum_tracer.h:517
std::vector< double > FindZeroSmallestEigenvalue(std::vector< double > point_1, double T_1, std::vector< double > point_2, double T_2)
FindZeroSmallestEigenvalue.
Definition minimum_tracer.cpp:160
void IsGlobMin(Minimum &min)
IsGlobMin checks whether current minimum is the global minimum.
Definition minimum_tracer.cpp:1131
std::shared_ptr< Class_Potential_Origin > modelPointer
modelPointer for the used parameter point
Definition minimum_tracer.h:298
int IsThereEWSymmetryRestoration()
IsThereEWSymmetryRestoration checks if there is EW symmetry restoration at high temperatures.
Definition minimum_tracer.cpp:1210
std::vector< std::vector< std::size_t > > flat_3D_dirs
storage of indices of flat 3D directions in VEV basis
Definition minimum_tracer.h:511
StatusNLOStability GetStatusNLOVEV(const bool &out)
GetStatusNLOVEV convert bool output of CheckNLOVEV to status string.
Definition minimum_tracer.cpp:1165
std::vector< double > GetGlobalMinimum(const double &Temp, std::vector< double > &check, const std::vector< double > &start)
get global minimum of effective potential
Definition minimum_tracer.cpp:1104
std::vector< std::string > GetLegend(const int &num_coex_phases, const bool &do_gw_calc)
GetLegend derive legend.
Definition minimum_tracer.cpp:2850
std::vector< double > ConvertToVEVDim(const std::vector< double > &point)
ConvertToVEVDim converts point from full to reduced (VEV) dimension.
Definition minimum_tracer.cpp:1090
std::vector< int > NonFlatDirections
storage of all non-flat VEV-directions
Definition minimum_tracer.h:496
bool flat_dirs_found
bool to store whether flat directions are found
Definition minimum_tracer.h:491
void FindDiscreteSymmetries(const Order &order=Order::OneLoop)
Calculates the list of symmetries that leave V unchanged.
Definition minimum_tracer.cpp:1001
double HessianDiagonalShift
Add a constant to the diagonals of the hessian matrix in the LocateMinimum function....
Definition minimum_tracer.h:312
void ConvertToNonFlatDirections(std::vector< double > &point)
Convert point into minimal non-flat space, reduces dimension in case of flat directions,...
Definition minimum_tracer.cpp:984
std::vector< Minimum > SavedMinimaFromVEVSplitting
Vector to store minima that appeared from VEV splittings.
Definition minimum_tracer.h:324
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.
Definition minimum_tracer.cpp:771
void ReduceVEV(std::vector< double > &vev)
Reduce the VEV into the same principal quadrant.
Definition minimum_tracer.cpp:736
void FindFlatDirections(const Order &order=Order::OneLoop)
Calculates flat field directions.
Definition minimum_tracer.cpp:812
std::vector< double > HighTemperatureVEV
Minimum found in IsThereEWSymmetryRestoration()
Definition minimum_tracer.h:318
std::vector< std::size_t > flat_1D_dirs
storage of indices of flat 1D directions in VEV basis
Definition minimum_tracer.h:501
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.
Definition minimum_tracer.cpp:136
double GradientThreshold
Threshold for the acceptable gradient.
Definition minimum_tracer.h:305
This classes calculates the Bounce action of the potential with a set temperature.
Definition CalculateEtaInterface.h:24
StatusEWSR
Possible electroweak symmetry restoration status.
Definition minimum_tracer.h:49
const std::unordered_map< StatusEWSR, std::string > StatusEWSRToString
Map to convert StatusEWSRToString to strins.
Definition minimum_tracer.h:62
const std::unordered_map< StatusCrit, std::string > StatusCritToString
Map to convert StatusCritToString to strings.
Definition minimum_tracer.h:129
StatusNLOStability
Possible NLO stability status.
Definition minimum_tracer.h:28
Order
Order of the potential.
Definition ClassPotentialOrigin.h:52
const double EmptyValue
Value to be store in the columns without any values.
Definition minimum_tracer.h:22
MultiStepPTMode
Available multistep modes.
Definition minimum_tracer.h:203
const std::unordered_map< StatusGW, std::string > StatusGWToString
Map to convert StatusGWToString to strings.
Definition minimum_tracer.h:171
StatusGW
Possible results for the GW and bounce_sol class.
Definition minimum_tracer.h:162
StatusTracing
Possible tracing results.
Definition minimum_tracer.h:75
StatusCoexPair
Possible status for the coex phase.
Definition minimum_tracer.h:99
const std::unordered_map< StatusTemperature, std::string > StatusTemperatureToString
Map to convert StatusTemperature to strings.
Definition minimum_tracer.h:153
TransitionTemperature
Possible transitions temperatures.
Definition minimum_tracer.h:181
StatusCrit
Possible status for the critical temperature.
Definition minimum_tracer.h:117
StatusTemperature
Possible status for the approximated nucleation, exact nucleation, percolation and completion tempera...
Definition minimum_tracer.h:142
const std::unordered_map< StatusNLOStability, std::string > StatusNLOStabilityToString
Map to convert StatusNLOStability to strins.
Definition minimum_tracer.h:39
const std::unordered_map< StatusCoexPair, std::string > StatusCoexPairToString
Map to convert StatusCoexPairToString to strings.
Definition minimum_tracer.h:108
std::ostream & operator<<(std::ostream &os, const StatusNLOStability &status)
Override << operator to handle StatusNLOStability.
Definition minimum_tracer.cpp:30
const std::unordered_map< StatusTracing, std::string > StatusTracingToString
Map to convert StatusTracingToString to strins.
Definition minimum_tracer.h:87
std::vector< std::vector< double > > Create1DimGrid(const std::vector< double > &point, const int k, const double low_value, const double high_value, const int nsteps=100)
Create1DimGrid creates a 1-dim grid of given size in index-direction.
Definition minimum_tracer.cpp:1428
CoexPhases struct to save pair of coexisting phases (false and true phase)
Definition minimum_tracer.h:745
void CalculateTc()
CalculateTc critical temperature for coexising phase pair.
Definition minimum_tracer.cpp:1327
CoexPhases()
empty constructor
Definition minimum_tracer.cpp:1308
struct to store minimum and temperature
Definition minimum_tracer.h:278
Phase object.
Definition minimum_tracer.h:616
void Add(Minimum min)
Function that adds min to MinimumPhaseVector.
Definition minimum_tracer.cpp:1720
Phase()
empty constructor
Definition minimum_tracer.cpp:1475
double T_low
Lowest temperature of the phase.
Definition minimum_tracer.h:625
double T_high
Highest temperature of the phase.
Definition minimum_tracer.h:630
Minimum Get(double T)
Calculates the minimum of the phase at temperature T. This function assumes that T is inside the temp...
Definition minimum_tracer.cpp:1668
std::shared_ptr< MinimumTracer > MinTracer
MinTracer object.
Definition minimum_tracer.h:640
std::vector< Minimum > MinimumPhaseVector
Set of Minimum that compose the phase.
Definition minimum_tracer.h:635
Complete vacuum structure of the theory for this parameter point.
Definition minimum_tracer.h:779
void MultiStepPTMode0(const std::vector< double > &LowTempPoint, const std::vector< double > &HighTempPoint)
MultiStepPTMode0 single-step PT mode.
Definition minimum_tracer.cpp:1768
void addPhase(Phase &phase)
Adds a phase to the phase list.
Definition minimum_tracer.cpp:2734
int MinimumFoundAlready(const Minimum &minimum)
This function checks if the minimum already exists in one of the phases in the phase list.
Definition minimum_tracer.cpp:2826
void PrintPhasesDiagram(int size=100)
prints the phases from T_low up to T_high on the terminal
Definition minimum_tracer.cpp:2193
std::vector< CoexPhases > CoexPhasesList
List of different phase pairs.
Definition minimum_tracer.h:858
void MultiStepPTTracer(const double &Temp, const double &deltaT=0)
MultiStepPTTracer traces all phases between T_high and T_low assuming that we start and end in a glob...
Definition minimum_tracer.cpp:2470
void EnsureHighTemperatureGlobalMininum()
If the global minimizer, incorrectly, finds a high temperature non-global minimum and but then anothe...
Definition minimum_tracer.cpp:2417
double T_high
Highest temperature, 300 GeV or set in input file.
Definition minimum_tracer.h:790
bool do_only_tracing
if true only tracing and no identification of all possible coexisting phase pairs and their critical ...
Definition minimum_tracer.h:824
StatusCoexPair status_coex_pairs
coexisting phases status code = success, no_coex_pairs
Definition minimum_tracer.h:834
std::shared_ptr< MinimumTracer > MinTracer
MinTracer object.
Definition minimum_tracer.h:840
void setCoexRegion(const MultiStepPTMode &MultiStepPTMode)
setCoexRegion Calculates all coexisting phase regions with phase pairs included from the phase vector
Definition minimum_tracer.cpp:2612
int num_points
number of equally-spaced intermediate points to check for new phases
Definition minimum_tracer.h:810
std::shared_ptr< Class_Potential_Origin > modelPointer
Model pointer.
Definition minimum_tracer.h:846
void MultiStepPTMode2(const std::vector< double > &LowTempPoint, const std::vector< double > &HighTempPoint)
MultiStepPTMode2 multi-step global minimum coverage PT mode.
Definition minimum_tracer.cpp:2081
void print(const Phase &phase)
print info on phase
Definition minimum_tracer.cpp:2564
double T_high_lowTempPhase
Highest temperature at which low-temperature phase is found to exist.
Definition minimum_tracer.h:804
void setCoexPhases()
setCoexPhases Calculates all coexisting phase pairs irrespective of borders of coexisiting phase regi...
Definition minimum_tracer.cpp:2575
bool DoGlobMinOverlap(const Phase &new_phase, const Phase &old_phase)
DoGlobMinOverlap check for global minimum at left-/rightmost overlap and choose endpoint of previous ...
Definition minimum_tracer.cpp:1864
double T_low
Lowest temperature 0 GeV.
Definition minimum_tracer.h:784
MultiStepPTMode UseMultiStepPTMode
Minimum tracing mode.
Definition minimum_tracer.h:816
double T_low_highTempPhase
Lowest temperature at which high-temperature phase is found to exist.
Definition minimum_tracer.h:797
std::vector< Phase > PhasesList
List of different phases.
Definition minimum_tracer.h:852
bool DoPhasesOverlap(Phase &new_phase, Phase &old_phase)
DoPhasesOverlap checks if two phases overlap.
Definition minimum_tracer.cpp:1849
void orderPhases()
Orders the phases.
Definition minimum_tracer.cpp:2447
StatusTracing status_vacuum
vacuum status code = success, no_coverage, no_glob_min_coverage
Definition minimum_tracer.h:829
void MultiStepPTMode1(const std::vector< double > &LowTempPoint, const std::vector< double > &HighTempPoint)
MultiStepPTMode1 multi-step coverage PT mode.
Definition minimum_tracer.cpp:1907
Definition transition_tracer.h:154