Code: Select all
temp = Select[temp /.subZeroGaugeLess ,#[[1,2,1]]=!=0&];
Assuming that the terms are smooth in the neighbourhood of the couplings being equal to zero, then this can be fixed with the following patch:
Code: Select all
--- a/SARAH-4.8.5/Package/SPheno/SPhenoCoupling.m
+++ b/SARAH-4.8.5/Package/SPheno/SPhenoCoupling.m
@@ -99,7 +99,7 @@ CouplingUsedForEffPot=True; (* in order to apply the correct color sum *)
listBrokenGaugeCouplings=DeleteCases[Transpose[BetaGauge][[1]],strongCoupling];
(* listBrokenGaugeCouplings=Extract[Gauge,Join[#,{4}]&/@(Position[SGauge /. A_[{b__}]\[Rule]A,#][[1]]&/@Select[SGauge /. A_[{b__}]\[Rule]A,FreeQ[Particles[SA`CurrentStates],#]&])]; *)
subZeroGaugeLess=Table[listBrokenGaugeCouplings[[i]]->0,{i,1,Length[listBrokenGaugeCouplings]}];
-temp = Select[temp /. subZeroGaugeLess,#[[1,2,1]]=!=0&];
+temp = Select[Fold[Limit[#1, #2] &, temp, subZeroGaugeLess] ,#[[1,2,1]]=!=0&];
temp=SPhenoCouplingList[temp];
CouplingUsedForEffPot=False;
@@ -110,7 +110,7 @@ WriteSPhenoAllCouplings[SPhenoCouplings4P,parametersAll4P,namesAll4P,"CouplingsF
DynamicCouplingsEffpot="3 point vertices";
AllRelevant=getAllRelevantCouplings[VertexListNonCC];
-AllRelevant = Select[AllRelevant /. subZeroGaugeLess,If[Length[#[[1]]]===3,(#[[1,2,1]]=!=0) ||( #[[1,3,1]]=!=0),#[[1,2,1]]=!=0]&];
+AllRelevant = Select[Fold[Limit[#1, #2] &, AllRelevant, subZeroGaugeLess] ,If[Length[#[[1]]]===3,(#[[1,2,1]]=!=0) ||( #[[1,3,1]]=!=0),#[[1,2,1]]=!=0]&];
temp=SPhenoCouplingList[AllRelevant];
SPhenoCouplings3P=temp[[1]];
parametersAll3P=temp[[2]];