SPheno compilation error if OutputName differs from symbol

Questions about the interface between SARAH and SPheno as well as the FlavorKit functionality
Post Reply
Socob
Posts: 30
Joined: 7. Dec 2017, 16:18

SPheno compilation error if OutputName differs from symbol

Post by Socob » 17. Apr 2018, 00:49

I’ve been trying to make files for a model with multiple generations of inert real triplet scalars, but depending on the names I choose for the mixing matrices in the model files, I get some strange compiler errors when compiling SPheno.

The basic setup looks like this (but also see the attached model files):

Code: Select all

Global[[1]] = {Z[2], Z2};
…
ScalarFields[[1]]  = {H,   1, {Hp, H0},    1/2, 2,     1,     1};
ScalarFields[[2]]  = {phi, 2, {{phi0/Sqrt[2], phip}, {conj[phip], -phi0/Sqrt[2]}}, 0, 3, 1, -1};
RealScalars = {phi0};
…
LagNoHC = … - 1/2 mphi2 phi.phi - lamphi conj[H].H.phi.phi;
…
DEFINITION[EWSB][MatterSector] = {
	…
	{{phip}, {etap, Uetap}},
	{{phi0}, {eta0, Ueta0}}
};
I have defined the scalar mixing matrices as follows in parameters.m:

Code: Select all

	{Uetap, {Description -> "BSM charged (+1) scalar mixing matrix",
			LaTeX -> "U_{\\eta^+}",
			OutputName -> "Uetp",
			LesHouches -> "ETAPMIX"
		}
	},
	{Ueta0, {Description -> "BSM neutral scalar mixing matrix",
			LaTeX -> "U_{\\eta^0}",
			OutputName -> "Uet0",
			LesHouches -> "ETA0MIX"
		}
	},
It seems that the SPheno compilation only works if the OutputName for these mixing matrices exactly matches the Mathematica symbol, i. e. if I call the mixing matrices “Uetp” and “Uet0” instead of “Uetap” and “Ueta0”. Otherwise, the compilation fails with the messages shown below.

With {Uetap, {OutputName -> "Uetp"}} and {Uet0, {OutputName -> "Uet0"}}, I get

Code: Select all

OneLoopDecays_Test.f90:2059:18:

 & cplAhAhUetpcUetp,cplUetphhhhcUetp,cplUetpHpcUetpcHp,cplUetpcUetpVPVP,cplUetpcUetpcVWpVWp,&
                  1
Error: Symbol ‘cplahahuetpcuetp’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2058:35:

 & MAh,MAh2,MHp,MHp2,cpleta0cUetpVWp,cpletaphhcUetp,cpletapcUetpVP,cpletapcUetpVZ,        &
                                   1
Error: Symbol ‘cpleta0cuetpvwp’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2058:65:

 & MAh,MAh2,MHp,MHp2,cpleta0cUetpVWp,cpletaphhcUetp,cpletapcUetpVP,cpletapcUetpVZ,        &
                                                                 1
Error: Symbol ‘cpletapcuetpvp’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2058:80:

 MHp,MHp2,cpleta0cUetpVWp,cpletaphhcUetp,cpletapcUetpVP,cpletapcUetpVZ,        &
                                                                     1
Error: Symbol ‘cpletapcuetpvz’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2058:50:

 & MAh,MAh2,MHp,MHp2,cpleta0cUetpVWp,cpletaphhcUetp,cpletapcUetpVP,cpletapcUetpVZ,        &
                                                  1
Error: Symbol ‘cpletaphhcuetp’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2059:90:

 Uetp,cplUetphhhhcUetp,cplUetpHpcUetpcHp,cplUetpcUetpVPVP,cplUetpcUetpcVWpVWp,&
                                                                            1
Error: Symbol ‘cpluetpcuetpcvwpvwp’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2059:70:

  cplAhAhUetpcUetp,cplUetphhhhcUetp,cplUetpHpcUetpcHp,cplUetpcUetpVPVP,cplUetpcUetpcVWpVWp,&
                                                                     1
Error: Symbol ‘cpluetpcuetpvpvp’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2060:18:

 & cplUetpcUetpVZVZ,kont,Pietap(i1,:,:))
                  1
Error: Symbol ‘cpluetpcuetpvzvz’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2059:35:

 & cplAhAhUetpcUetp,cplUetphhhhcUetp,cplUetpHpcUetpcHp,cplUetpcUetpVPVP,cplUetpcUetpcVWpVWp,&
                                   1
Error: Symbol ‘cpluetphhhhcuetp’ at (1) has no IMPLICIT type
OneLoopDecays_Test.f90:2059:53:

 & cplAhAhUetpcUetp,cplUetphhhhcUetp,cplUetpHpcUetpcHp,cplUetpcUetpVPVP,cplUetpcUetpcVWpVWp,&
                                                     1
Error: Symbol ‘cpluetphpcuetpchp’ at (1) has no IMPLICIT type
With {Uetp, {OutputName -> "Uetp"}} and {Ueta0, {OutputName -> "Uet0"}}, I get

Code: Select all

TreeLevelMasses_Test.f90:293:61:

 Call CalculateMeta0EffPot(mph2,lamp,v,Uet0,Meta0,Meta02,kont)
                                                             1
Error: Type mismatch in argument ‘uet0’ at (1); passed REAL(8) to COMPLEX(8)
TreeLevelMasses_Test.f90:144:55:

 Call CalculateMeta0(mph2,lamp,v,Uet0,Meta0,Meta02,kont)
                                                       1
Error: Type mismatch in argument ‘uet0’ at (1); passed REAL(8) to COMPLEX(8)
Is this some kind of bug or is there a problem with my model files?
Attachments
test.m
(2.41 KiB) Downloaded 177 times
SPheno.m
(622 Bytes) Downloaded 168 times
particles.m
(2.4 KiB) Downloaded 187 times
parameters.m
(2.57 KiB) Downloaded 165 times

FStaub
Site Admin
Posts: 822
Joined: 13. Apr 2016, 14:05

Re: SPheno compilation error if OutputName differs from symbol

Post by FStaub » 18. Apr 2018, 15:31

Hi,

the origin of the second problem is that the OutputName was not transfered to the list of real Variables. That's easy to fix. You can do it by your own by adding to SPheno.m

Code: Select all

realVar = 
  Join[realVar, 
   ToExpression /@ 
    getOutputNameParameter /@ 
     Select[realVar, getOutputNameParameter[#] =!= # &]];
 
The other problem is more subtle: SARAH has internally also the parameter "U+particle name" for 'unrotated' external states in loop calculations. Those matche exactly your names of the rotation matrices. So, I wouldn't have been surprised if this would have caused even more problems without chaniging the OutputName...

Cheers,
Florian

Post Reply