Atomvekt

Hva er greia: Utregninger som involverer atomvekt for ulike element er en gjenganger i flere tema. Det samme er tilfelle for konstanter som Avogadros tall, Bolzmanns konstant, etc. For å slippe å hard-kode disse for hver gang, er de lagt i modulen matek.py. Atomvekter for de første 100 grunnstoffene ligger en dictionary A der verdiene (for alle praktisk hensyn i hvert fall) er identiske med verdiene oppgitt i Callister 9th.

In [1]:
# fra matek.py: Diverse konstanter og funksjoner for TMM4100 Materialteknikk

# Atomvekter:

A = {'H' :  1.008, 'He':  4.002, 'Li':  6.940, 'Be':  9.012, 'B' : 10.810, 
     'C' : 12.011, 'N' : 14.007, 'O' : 15.999, 'F' : 18.998, 'Ne': 20.180, 
     'Na': 22.989, 'Mg': 24.305, 'Al': 26.981, 'Si': 28.085, 'P' : 30.973, 
     'S' : 32.060, 'Cl': 35.450, 'Ar': 39.948, 'K' : 39.098, 'Ca': 40.078,
     'Sc': 44.955, 'Ti': 47.867, 'V' : 50.942, 'Cr': 51.996, 'Mn': 54.938, 
     'Fe': 55.845, 'Co': 58.933, 'Ni': 58.693, 'Cu': 63.546, 'Zn': 65.380, 
     'Ga': 69.723, 'Ge': 72.630, 'As': 74.921, 'Se': 78.971, 'Br': 79.904, 
     'Kr': 83.798, 'Rb': 85.468, 'Sr': 87.620, 'Y' : 88.905, 'Zr': 91.224, 
     'Nb': 92.906, 'Mo': 95.950, 'Tc': 97.000, 'Ru':101.070, 'Rh':102.905,
     'Pd':106.420, 'Ag':107.868, 'Cd':112.414, 'In':114.818, 'Sn':118.710, 
     'Sb':121.760, 'Te':127.600, 'I' :126.904, 'Xe':131.293, 'Cs':132.905, 
     'Ba':137.327, 'La':138.905, 'Ce':140.116, 'Pr':140.907, 'Nd':144.242, 
     'Pm':145.000, 'Sm':150.360, 'Eu':151.964, 'Gd':157.250, 'Tb':158.925, 
     'Dy':162.500, 'Ho':164.930, 'Er':167.259, 'Tm':168.934, 'Yb':173.045, 
     'Lu':174.969, 'Hf':178.490, 'Ta':180.947, 'W' :183.840, 'Re':186.207, 
     'Os':190.230, 'Ir':192.217, 'Pt':195.084, 'Au':196.966, 'Hg':200.592, 
     'Tl':204.380, 'Pb':207.200, 'Bi':208.980, 'Po':209.000, 'At':210.000, 
     'Rn':222.000, 'Fr':223.000, 'Ra':226.000, 'Ac':227.000, 'Th':232.038, 
     'Pa':231.035, 'U' :238.028, 'Np':237.000, 'Pu':244.000, 'Am':243.000, 
     'Cm':247.000, 'Bk':247.000, 'Cf':251.000, 'Es':252.000, 'Fm':257.000 }

NA    = 6.022E23   # Avogadros tall         [antall/mol]

Anvendelse

  • Best practice er nok å importere kun det du har bruk for ved f.eks from matek import A, NA.
  • Det er sjelden lurt å bruke metoden from matek import * siden du neppe har oversikt over potensielle konflikter med andre variabler.
  • Alternativt er import matek en trygg og grei måte, men påfølgende anvendelse av konstanter i koden blir jo litt mindre kompakt og oversiktlig da.

Eksempler

In [2]:
from matek import A, NA
print('Avogadros tall =',NA)
Avogadros tall = 6.022e+23
In [3]:
# Antall kobberatomer i kg ren kobber:
masse = 1000 # [gram]
print('Antall atomer i 1 kg kobber: {:.2E} stk.'.format(masse*NA/A['Cu']))
Antall atomer i 1 kg kobber: 9.48E+24 stk.
In [4]:
# Grunnstoff som begynner på M eller N....
for key in A.keys():
    if key[0] in ('M','N'):
        print('{} : {} g/mol'.format(key,A[key]))
N : 14.007 g/mol
Ne : 20.1797 g/mol
Na : 22.989 g/mol
Mg : 24.305 g/mol
Mn : 54.938 g/mol
Ni : 58.693 g/mol
Nb : 92.906 g/mol
Mo : 95.95 g/mol
Nd : 144.242 g/mol
Np : 237.0 g/mol
In [5]:
# Grunnstoff med atomvekt mellom 30 og 40 g/mol:
for key in A.keys():
    if A[key] > 30 and A[key] < 40:
        print('{} : {} g/mol'.format(key,A[key]))
P : 30.973 g/mol
S : 32.06 g/mol
Cl : 35.45 g/mol
Ar : 39.948 g/mol
K : 39.0983 g/mol

Mer om atomvekt, isotoper og amu

1 amu = 1 g/mol og er definert som 1/12 av massen til Karbon-12 isotopen, som igjen består av 6 protoner og 6 nøytroner. Altså, massen til Karbon-12 blir dermed eksakt 12 amu.

Det betyr at et atom med 3 protoner og 3 nøytroner vil ha en masse på 6 amu, og dette er altså en isotop av Litium (Litium-6). Atomvekten til Litium er derimot høyere:

In [6]:
A['Li']
Out[6]:
6.94

... noe som forklares enkelt med at Litium består i hovedsak av en isotop med 4 nøytroner. Utregning av atomvekt basert på isotoper når vi antar at massen til protoner og nøytroner er identiske (ikke helt sant) blir dermed:

In [7]:
w_Li = (0.0485*6 + 0.9515*7)
print(w_Li, 'amu')
6.9515 amu

Nå ble det et lite avvik som vi ikke skal bry oss med å forklare i dette emnet, for da må vi ned i et kaninhull der kvarker og gluoner i nukleoner har energi (= masse!) som er x 100 ganger (ish) høyere en hvilemassen til summen av elementærpartikler enkeltvis, .... uh (gjesp), glem det.

Jern har atomnummer og atomvekt:

In [8]:
atomnummer = list(A.keys()).index('Fe')+1
atomvekt = A['Fe']
print(atomnummer,atomvekt)
26 55.845

Det betyr at jern i hovedsak består av isotoper med rundt 56 kjærnepartikler (26 protoner og 29 nøytroner), noe som viser seg å vært ganske presist og vi kan gjøre følgende overslag av atomvekten:

In [9]:
(6*54 + 92*56 + 2*57)/100
Out[9]:
55.9

Disclaimer:This site is designed for educational purposes only. There are most likely errors, mistakes, typos, and poorly crafted statements that are not detected yet... www.ntnu.edu/employees/nils.p.vedvik

Copyright 2023, All rights reserved