#The first thing to do is to make the Toolbox available import sys #pretty printing %load_ext sympy.interactive.ipythonprinting sys.path.append('Source/Output') from Toolbox import * #Now we can load a result which will serve as an example. For that purpose use the load function of the Toolbox RGEs,info = loadmodel('SM-BL.pickle') info #Print all the results available in the dictionary RGEs.keys() #Let's have a look at the lambda_1 coupling and we use the getoneloop function to get rid of the 4pi factors Lambda1 = getoneloop(RGEs['\\lambda_1']) Lambda1 #Let's declare symbols for each yukawas yl = Symbol('Y_l',commutative=False) ye= Symbol('Y_e',commutative=False) yu= Symbol('Y_u',commutative=False) yd= Symbol('Y_d',commutative=False) yt=Symbol('yt',real=True) #List of substitutions Subs = ((yl,0),(yd,0),(yl,0),(ye,0),(yu,yt)) Lambda1 = Lambda1.subs(Subs) Lambda1 #load the trace and MatMul classes from RGEsmathModule import trace,MatM #declare some wild cards for the mapping p,q,r,s,t,u,v,w = map(Wild,['p','q','r','s','t','u','v','w']) #Remove the 0 traces Lambda1 =Lambda1.replace(trace(p,q),p*q).replace(trace(p,q,r,s),p*q*r*s) Lambda1 #Now Let's try to obtain the beta function for the parameter lambda_1 - lambda_3 in the same approximation #We first filter the rges for the lambda3 result yh = Symbol('Y_H',real=True) YH = Symbol('Y_H',commutative=False) Lambda3=getoneloop(RGEs['\\lambda_3']).subs(Subs).replace(trace(p,q),p*q).replace(trace(p,q,r,s),p*q*r*s).subs(YH,yh) Lambda3 #We can now do the difference Diff = (Lambda3 - Lambda1).expand() Diff bYl = getoneloop(RGEs['Y_l']) bYl #If we want to match the object representing the Yukawa with indices i.e. outside of the traces we need to use functions FYl = Function('Y_l') #Let's get rid of the indices and translate Y_l into the Symbol Yl that we have introduced above bYl = bYl.replace(FYl(p,q),yl) bYl #Now to be consistent we should remove the indices in the MatM function and also transforms all the Yukawa as scalars bYl.replace(MatM((p,q,r),u,v),MatM((p,q,r)))