Skip to content
Snippets Groups Projects
Commit b64ddae2 authored by Nicolas Mantilla Molina's avatar Nicolas Mantilla Molina
Browse files

semi empirical mass

parent b93dd2d0
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# Formula de Masa Semi Empírica (Semi-Empirical Mass Formula - SEMF)
%% Cell type:code id: tags:
``` python
# Importamos las librerias necesarias
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
```
%% Cell type:code id: tags:
``` python
# Definimos constantes
e = 1.602e-19 # Carga del electrón en Coulombs
mn = 1.675e-27 # Masa del neutrón en kg
mp = 1.673e-27 # Masa del protón en kg
c = 3.0e8 # Velocidad de la luz en m/s
a_v = 15.56e6*e # J
a_s = 17.23e6*e # J
a_c = 0.7e6*e # J
a_a = 23.28e6*e # J
a_p = 12.0e6*e # J
# Hacemos una función para la masa semiempirica
def SEMF(Z, A):
# Verificamos la paridad
d = 1
if A%2 != 0:
d = 0
elif (A-Z)%2 != 0:
d = -1
# Calculamos la energía de enlace
B = a_v*A - a_s*A**(2/3) - a_c*Z**2/A**(1/3) - a_a*(A-2*Z)**2/A + d*a_p/A**(1/2)
# Devolvemos la masa y la energía de enlace
return [Z*mp + (A-Z)*mn - B/c**2, B]
# Hacemos una función para el Z donde la masa es mínima
def Zmin(A):
return round((mn - mp + 4*a_a/c**2)/(2*a_c/(c**2*A**(1/3)) + 8*a_a/c**2/A))
```
%% Cell type:code id: tags:
``` python
# Calculamos los valores minimos de Z para A = 16, 121, 122 y 208
A = [16, 121, 122, 208]
Z = [Zmin(a) for a in A]
# Imprimimos los valores
for i in range(4):
print(f"Para A = {A[i]} el valor de Z es {Z[i]}")
```
%% Output
Para A = 16 el valor de Z es 8
Para A = 121 el valor de Z es 52
Para A = 122 el valor de Z es 52
Para A = 208 el valor de Z es 83
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment