Skip to content

Instantly share code, notes, and snippets.

@alonsoir
Last active December 4, 2023 19:43
Show Gist options
  • Save alonsoir/331378665579efb6f98a663a6f3c053f to your computer and use it in GitHub Desktop.
Save alonsoir/331378665579efb6f98a663a6f3c053f to your computer and use it in GitHub Desktop.
version inicial simplificada del cálculo de la ecuacion lagrangiana que trata de incluir todas las interacciones del modelo standard de física de partículas. El test de la invarianza de Lorentz no funciona por un problema con la libreria sfl.
import sympy as sp
# Define measured values
m_W = 80.379 # W boson mass in GeV/c^2
m_Z = 91.1876 # Z boson mass in GeV/c^2
m_h = 125.1 # Higgs boson mass in GeV/c^2
m_e = 0.511e-3 # Electron mass in GeV/c^2
m_mu = 105.66e-3 # Muon mass in GeV/c^2
m_tau = 1776.86e-3 # Tau mass in GeV/c^2
m_c = 1.27 # Charm quark mass in GeV/c^2
m_s = 95e-3 # Strange quark mass in GeV/c^2
m_t = 172.76 # Top quark mass in GeV/c^2
m_b = 4.18 # Bottom quark mass in GeV/c^2
# Gauge boson terms
term_bosons = -1/4 * sp.symbols('F_a_mu_nu') * sp.symbols('F_a_mu_nu')
term_bosons = term_bosons.subs(sp.symbols('m_W'), m_W).subs(sp.symbols('m_Z'), m_Z)
# Fermion field terms
term_fermions = sp.summation(sp.conjugate(sp.symbols('psi_f')) * (sp.I * sp.symbols('gamma_mu') * sp.symbols('D_mu') - sp.symbols('m_f')) * sp.symbols('psi_f'), (sp.symbols('f'), 1, sp.symbols('N_f')))
# Higgs field terms
term_higgs = sp.symbols('D_mu_phi').conjugate() * sp.symbols('D_mu_phi') - sp.symbols('V_phi')
# Terms for additional fields (e.g., neutrinos and electrons)
term_additional = sp.summation(sp.conjugate(sp.symbols('e_i')) * (sp.I * sp.symbols('gamma_mu') * sp.symbols('partial_mu') * sp.symbols('e_i')), (sp.symbols('i'), 1, sp.symbols('N_i')))
# Terms for additional Higgs bosons
term_higgs_additional = 1/2 * sp.symbols('partial_mu_phi_i') * sp.symbols('partial_mu_phi_i') - 1/2 * sp.symbols('m_phi_i')**2 * sp.symbols('phi_i')**2
# Potential involving multiple Higgs fields
term_potential = sp.symbols('V_phi_1_phi_2_phi_N')
# Construct the Lagrangian
lagrangian = term_bosons + term_fermions + term_higgs + term_additional + term_higgs_additional + term_potential
def test_invariance_under_lorentz_transformations():
"""
Verifies that the Lagrangian is invariant under Lorentz transformations.
"""
# Import the Lorentz module
import sympy.physics.special_functions.lorentz as sfl
# Expand the Lagrangian
lagrangian_expanded = lagrangian.expand()
# Create a list of terms in the expanded Lagrangian
lagrangian_terms = list(lagrangian_expanded)
# Apply the Lorentz transformation to each term in the expanded Lagrangian
transformed_terms = []
for term in lagrangian_terms:
transformed_term = term.transform(sfl.LorentzTransform())
transformed_terms.append(transformed_term)
# Reconstruct the transformed Lagrangian
lagrangian_transformed = sp.Add(*transformed_terms)
# Verify that the transformed Lagrangian is equal to the original Lagrangian
assert lagrangian_transformed == lagrangian_expanded
# test_invariance_under_lorentz_transformations()
# Print the Lagrangian
print("Lagrangian of the Standard Model:")
print(lagrangian)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment