Skip to content

Commit d54b769

Browse files
authored
Create molecular_chemistry.py
1 parent 5440138 commit d54b769

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

conversions/molecular_chemistry.py

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
def molarity_to_normality(nfactor: int, moles: float, volume: float) -> float:
2+
"""
3+
Convert molarity to normality.
4+
Volume is taken in litres.
5+
6+
Wikipedia reference: https://en.wikipedia.org/wiki/Equivalent_concentration
7+
Wikipedia reference: https://en.wikipedia.org/wiki/Molar_concentration
8+
9+
>>> molarity_to_normality(2, 3.1, 0.31)
10+
20.0
11+
>>> molarity_to_normality(4, 11.4, 5.7)
12+
8.0
13+
14+
"""
15+
return (float(moles/volume) * nfactor)
16+
17+
def moles_to_pressure(volume: float, moles: float, temperature: float) -> float:
18+
"""
19+
Convert moles to pressure.
20+
Ideal gas laws are used.
21+
Temperature is taken in kelvin.
22+
Volume is taken in litres.
23+
Pressure has atm as SI unit.
24+
25+
Wikipedia reference: https://en.wikipedia.org/wiki/Gas_laws
26+
27+
>>> moles_to_pressure(0.82, 3, 300)
28+
90
29+
>>> moles_to_pressure(8.2, 5, 200)
30+
10
31+
32+
"""
33+
return float((moles * 0.0821 * temperature)/(volume))
34+
35+
def moles_to_volume(pressure: float, moles: float, temperature: float) -> float:
36+
"""
37+
Convert moles to volume.
38+
Ideal gas laws are used.
39+
Temperature is taken in kelvin.
40+
Volume is taken in litres.
41+
Pressure has atm as SI unit.
42+
43+
Wikipedia reference: https://en.wikipedia.org/wiki/Gas_laws
44+
45+
>>> moles_to_volume(0.82, 3, 300)
46+
90
47+
>>> moles_to_volume(8.2, 5, 200)
48+
10
49+
50+
"""
51+
return float((moles * 0.0821 * temperature)/(pressure))
52+
53+
def pressure_and_volume_to_temperature(pressure: float, moles: float, volume: float) -> float:
54+
"""
55+
Convert pressure and volume to temperature.
56+
Ideal gas laws are used.
57+
Temperature is taken in kelvin.
58+
Volume is taken in litres.
59+
Pressure has atm as SI unit.
60+
61+
Wikipedia reference: https://en.wikipedia.org/wiki/Gas_laws
62+
63+
>>> pressure_and_volume_to_temperature(0.82, 1, 2)
64+
20
65+
>>> pressure_and_volume_to_temperature(8.2, 5, 3)
66+
60
67+
68+
"""
69+
return float((pressure * volume)/(0.0821 * moles))
70+
71+
72+
if __name__ == "__main__":
73+
74+
import doctest
75+
doctest.testmod()
76+

0 commit comments

Comments
 (0)