Kjemiske beregninger (kjemi)#

Eksempler på bruk av chemlib og pHcalc#

La oss se hvordan vi kan bruke Python som en kjemisk kalkulator. Du kan installere bibliotekene vi skal bruke ved å gå inn på “Anaconda Prompt”. Dette er en terminal du har installert dersom du har Anaconda-pakka på datamaskinen din. Mac-brukere kan bare benytte den vanlige terminalen (“Terminal”) som finnes på Mac-en fra før av. I denne terminalen skriver du så:

pip install chemlib

Følg eventuelle instruksjoner og vent til installasjonen er ferdig. Kjør deretter neste installasjon:

pip install phcalc

Før vi ser på disse bibliotekene, skal vi derimot se litt på håndtering av eksperimentelle data.

Nedenfor ser du noen eksempler på nyttig bruk av chemlib og pHcalc. Bibliotekene kan brukes til å utføre støkiometriske og elektrokjemiske beregninger, i tillegg til beregninger av pH i syrer og baser.

Oppgave

Studer eksemplene og prøv å forklare hvordan hvert av programmene fungerer. Hvordan kan slike biblioteker brukes på en fornuftig måte i undervisningen?

1. Støkiometri#

from chemlib import Compound, Reaction

etanol = Compound("C2H6O")
print(etanol.get_amounts(grams=3))
{'grams': 3, 'molecules': 3.92e+22, 'moles': 0.065}

2. Reaksjonslikninger#

SO2 = Compound("SO2")
O2 = Compound("O2")
SO3 = Compound("SO3")

reaksjon = Reaction([SO2, O2], [SO3])
reaksjon.balance()
print(reaksjon.formula)
print(reaksjon.is_balanced)
2S₁O₂ + 1O₂ --> 2S₁O₃
True
begrenset_reaktant = reaksjon.limiting_reagent(12, 20) # 12 g SO2, 20 g O2
print(begrenset_reaktant)
begrenset_reaktant2 = reaksjon.limiting_reagent(0.8, 0.1, mode="moles") # 0.8 mol SO2, 0.1 mol O2
print(begrenset_reaktant2)
S₁O₂
O₂

3. Elektrokjemiske celler#

from chemlib import Galvanic_Cell

celle = Galvanic_Cell("Ag", "Pb")
print(celle.properties)
{'Cell': 'Pb | Pb2+ || Ag+ | Ag', 'Anode': 'Pb', 'Cathode': 'Ag', 'Cell Potential': 0.93}
celle.draw() # Tegner elementet som et bilde i et nytt vindu
from chemlib import electrolysis
el = electrolysis('Ag', n = 2, amps = 20, seconds=2*60*60) # Ag^+ --> Ag, forsølving i 2 timer med 20 A
print(el)
{'element': 'Ag', 'n': 2, 'seconds': 7200, 'amps': 20, 'grams': 80.49433590713582}

4. pH-beregninger#

from pHcalc.pHcalc import Acid
from pHcalc.pHcalc import Acid, Neutral, System

# 1 M NaOH. Definerer det pH-nøytrale systemet, OH- legges på automatisk
Na = Neutral(charge=1, conc=1) 
sol1 = System(Na)
sol1.pHsolve()
print("pH =", round(sol1.pH,2)) # Gir pH ca. lik 14

# 1 M HCl. Definerer det pH-nøytrale systemet, H+ legges på automatisk
Cl = Neutral(charge=-1, conc=1) 
sol2 = System(Cl)
sol2.pHsolve()
print("pH =", round(sol2.pH,2)) # Gir pH ca. lik 0

# 1 M HF (svak syre)
hf = Acid(Ka=6.76E-4, charge=0, conc=1) # eventuelt pKa=3.17
sol3 = System(hf)
sol3.pHsolve()
print("pH =", round(sol3.pH,2)) # Gir pH ca. lik 1.59
pH = 14.0
pH = -0.0
pH = 1.59