-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathpyR@TE.py
More file actions
executable file
·106 lines (78 loc) · 2.55 KB
/
pyR@TE.py
File metadata and controls
executable file
·106 lines (78 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/env python3
try:
import sys
from sys import exit
import os
import time
wd = os.path.abspath(os.path.dirname(__file__))
os.chdir(wd)
sys.path.append(os.path.join(wd, 'src'))
sys.path.append(os.path.join(wd, 'src', 'Core'))
sys.path.append(os.path.join(wd, 'src', 'GroupTheory'))
sys.path.append(os.path.join(wd, 'src', 'IO'))
sys.path.append(os.path.join(wd, 'src', 'PyLie'))
except:
raise SystemExit("Error while importing one of the modules `sys, os, yaml`")
print(
"""
============================================================================
PyR@TE version 3.0 released August 4th 2020
L. Sartore,
F. Lyonnet, I. Schienbein (version 2)
and F.Staub, A.Wingerter (version 1)
Please cite arXiv:2007.12700
Also, please consider citing 1906.04625 when using the 3-loop results
============================================================================
"""
)
try:
from Logging import loggingInfo
from Inputs import Inputs
except ImportError:
exit("Error while importing the 'Inputs' module")
inputs = Inputs(wd)
runSettings, yamlSettings = inputs.getSettings()
import traceback
from PyLieDB import PyLieDB
from ModelsClass import Model
from RGEsModule import RGEsModule
t0 = time.time()
# Create the interactive database instance
idb = PyLieDB(raiseErrors=True, logLevel=runSettings['VerboseLevel'])
error = False
# Whatever happens (errors or not) the DB is properly closed
try:
idb.load()
# Create the instance of the model
model = Model(yamlSettings, runSettings, idb)
# Create the instance of the RG module
RGmodule = RGEsModule(model)
# Fill the information in RGmodule using the Lagrangian expression
model.expandLagrangian(RGmodule)
# Map the model onto the general Lagrangian form
model.constructMapping(RGmodule)
# Initialize various gauge and tensor quantities + check gauge invariance
RGmodule.initialize()
except SystemExit:
exit()
except KeyboardInterrupt:
exit()
except:
error = True
track = traceback.format_exc()
finally:
idb.close()
if error:
print(track)
exit()
# Actual beta-function computation
model.defineBetaFunctions(RGmodule)
model.computeBetaFunctions()
model.mapBetaFunctions()
# Apply the user-defined substitutions (replacements, GUT normalization, ...)
model.doSubstitutions()
loggingInfo(f"-> All done in {time.time()-t0:.3f} seconds.", end='\n\n')
# Now export the results
import Exports
Exports.exports(runSettings, model)
loggingInfo("End of the run.")