Born-Haber Cycle Calculator (Crystal Lattice Energy)

Use this interactive Born–Haber cycle calculator to compute the lattice energy of an ionic solid – or solve for any missing thermodynamic term – from standard enthalpies such as formation, sublimation, ionization energy, electron affinity and bond dissociation.

Born–Haber Cycle Solver

Sign convention: enter endothermic steps as positive (e.g. +108 kJ/mol) and exothermic steps as negative (e.g. −349 kJ/mol). Units: kJ/mol.

M(s) + ½X2(g) → MX(s)

M(s) → M(g)

M(g) → M+(g) + e

X2(g) → 2X(g)

X(g) + e → X(g) (usually negative)

M+(g) + X(g) → MX(s) (negative)

Energy level sketch (not to scale)

Gaseous
atoms/ions
Separated
ions (g)
Ionic
solid MX(s)

Bar heights are based on the magnitudes of the summed endothermic steps and lattice energy to give a qualitative picture of the cycle.

How the Born–Haber cycle works

The Born–Haber cycle is a thermochemical cycle that breaks the formation of an ionic solid MX(s) from its elements into a series of hypothetical steps. By applying Hess’s law, the enthalpy of formation is related to measurable quantities such as sublimation enthalpy, ionization energy, bond dissociation enthalpy, electron affinity and lattice energy.

Standard Born–Haber cycle for a 1:1 ionic solid MX

For a simple monatomic metal M and non‑metal X forming MX(s):

  • Formation enthalpy (overall reaction):
    M(s) + ½X2(g) → MX(s)   ΔHf°
  • Sublimation of the metal:
    M(s) → M(g)   ΔHsub > 0
  • Ionization energy of the metal:
    M(g) → M+(g) + e   IE > 0
  • Bond dissociation of the non‑metal molecule:
    ½X2(g) → X(g)   ½D(X2) > 0
  • Electron affinity of the non‑metal:
    X(g) + e → X(g)   EA < 0 (exothermic)
  • Lattice energy (definition used here):
    M+(g) + X(g) → MX(s)   U < 0 (exothermic)

Hess’s law relation (1:1 salt):

\[ \Delta H_f^\circ = \Delta H_{sub} + IE + \tfrac{1}{2}D(X_2) + EA + U \]

Rearranged to solve for lattice energy: \[ U = \Delta H_f^\circ - \Delta H_{sub} - IE - \tfrac{1}{2}D(X_2) - EA \]

The calculator on this page uses this equation and automatically rearranges it to solve for whichever term you choose as the unknown. You can therefore estimate lattice energies or check the consistency of thermodynamic data sets.

Worked example: NaCl(s)

Typical textbook values (all in kJ/mol):

  • ΔHf°[NaCl(s)] = −411
  • ΔHsub[Na(s)] = +108
  • IE[Na(g)] = +496
  • D(Cl2) = +242 ⇒ ½D = +121
  • EA[Cl(g)] = −349

Substitute into the lattice energy expression:

\[ U = -411 - 108 - 496 - 121 - (-349) \] \[ U = -411 - 108 - 496 - 121 + 349 = -786\ \text{kJ mol}^{-1} \]

The result (≈ −786 kJ/mol) matches standard values for the lattice energy of NaCl(s) using this sign convention. If you click “Load NaCl example” in the calculator, these numbers are pre‑filled and the cycle is solved automatically.

Common pitfalls and sign conventions

  • Lattice energy sign: many tables quote lattice energy as a positive magnitude (energy required to separate the lattice). Here we use the thermodynamic definition for formation from gaseous ions, which is negative.
  • Electron affinity: the first electron affinity of halogens is exothermic and therefore negative. Be careful not to enter a positive magnitude by mistake.
  • Bond dissociation term: the Born–Haber cycle uses ½D(X2) because only one X atom is needed per MX formula unit.
  • Units: keep all quantities in kJ/mol. Convert J/mol to kJ/mol by dividing by 1000.

FAQ

Can this calculator handle multivalent ions (e.g. MgCl2)?

The interface is written for the simplest 1:1 salt MX. For multivalent systems, the same Hess’s law idea applies but with additional ionization energies and electron affinities, and different stoichiometric factors. You can still use the calculator by combining those steps into effective values before entering them.

Where do the thermodynamic data come from?

In practice, values are taken from standard data tables (e.g. NIST, CRC Handbook, or reliable textbooks). Always check that all data refer to the same standard state (usually 298 K, 1 bar) and that the sign convention matches the one used here.