clwainwright / CosmoTransitions

A package for analyzing finite or zero-temperature cosmological phase transitions driven by single or multiple scalar fields.
MIT License
25 stars 19 forks source link

Issue with extend_to_minima in findAllTransitions() #33

Open mb-1054571817 opened 1 year ago

mb-1054571817 commented 1 year ago

Hi!

I have encountered an issue when using the generic_potential.findAllTransitions function in CosmoTransitions. For a 1D toy model that I am considering, the function generic_potential.findAllTransitions fails to find a transition even though I am manually able to tune the temperature T until the nucleation criterion S/T = 140 is satisfied, when S is calculated manually (fixing the false and the true vacuum to reasonable values, based on plots of the effective potential around the critical temperature) using pathDeformation.fullTunneling.

I think I have been able to trace the issue to the option extend_to_minima in pathdeformation.SplinePath, which is set to True when the latter function is called from pathDeformation.fullTunneling. What happens when I call generic_potential.findAllTransitions is that the minimum temperature Tmin for the phase tracing of the false vacuum at X = 0 is set to the temperature when the minimum disappears (the second derivative becomes negative). My model features a Z2 symmetry, and when the extend_to_minima option is set to True, the minimum is pushed from X = 0 down to (approximately) X = -v, with X = +v denoting the true vacuum. Of course, a transition is then no longer possible, because there is (approximately) no difference between the potential at the false vacuum and the true vacuum.

Please note that the above issue cannot, as far as I can tell, be resolved by making using of the forbidPhaseCrit function to say exclude phases with a negative vev. Indeed, the forbidPhaseCrit function is not invoked when extending the minimum in pathdeformation.SplinePath if extend_to_minima is set to True.

I would like to know if the above behavior should be considered a bug or not, and what the best way to resolve it would be. In principle, I can just change extend_to_minima from True to False in pathDeformation.SplinePath, but perhaps this is not an ideal solution.

From what I understand, the minimum temperature Tmin from the phase tracing well be set to the value when the phase in question disappears. If so, it seems to me that extend_to_minima being set to True will always give somewhat strange behavior at T = Tmin whether or not the model has a particular symmetry, because the minimum would always be moved to some more or less strange value due to the phase no longer being a minimum at T = Tmin, by definition of Tmin.

Thanks in advance!