Last active
December 4, 2023 19:43
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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