Pick any two elements — period-2 Li–F, or hydrogen — to see the full valence MO diagram for that pair. Real, unequal atomic energies pull each molecular orbital toward whichever atom it's closer to in energy, so the diagram (and the orbital shapes) genuinely polarise. Hydrogen has only a 1s orbital, and Li/Be's empty, high-energy 2p is excluded here too, so any pair involving H, Li or Be collapses to a smaller diagram — see the model notes below. Click any level to see that orbital's shape.
What this adds on top of the homonuclear sibling. That simulation fixes both atoms to be the same element, so every bonding/antibonding pair is an exactly-equal 50/50 mix of the two atomic orbitals. Here Atom A and Atom B are independent — their 2s and 2p atomic energies (and orbital sizes) are generally different, so the secular equation is the more general, non-degenerate case: each molecular orbital ends up weighted unequally toward whichever atom's atomic orbital sits closer to it in energy. That's the real, chemically important content of a heteronuclear MO diagram — it's what "the bonding electrons sit closer to the more electronegative atom" actually means in orbital language — and it's why the orbital-shape panel and the correlation-line weights below are genuinely asymmetric rather than mirror images.
Same atomic data as the homonuclear sibling, per atom instead of per molecule. Each element's occupied valence orbitals share one Slater exponent ζ = Zeff/2 (Slater's rules don't distinguish 2s from 2p): ζ = 0.65 (Li), 0.975 (Be), 1.3 (B), 1.625 (C), 1.95 (N), 2.275 (O), 2.6 (F). The atomic reference energies (eV) are the same real valence-orbital ionization energies used there — Gray's Electrons and Chemical Bonding (1964) spectroscopic VOIE table for B–F. Hydrogen doesn't fit this per-row formula at all (there's no core to shield it and no 2p to speak of) — it uses the textbook n=1 result directly, ζ = Zeff/n = 1/1 = 1, with its 1s ionization energy at the exact hydrogen-atom value, −13.6 eV. Li and Be have no 2p energy listed at all: unlike B–F, where 2p is occupied in the ground state, Li's and Be's 2p is empty and sits well above their 2s, so it's excluded here rather than guessed at — see the note on hydrogen and empty-2p atoms below. These numbers don't change when an atom is paired with a different partner — only the overlap integral and the resulting MO energies do.
Bond lengths: real data for 29 of 36 pairs, an estimate for the rest. All 8 homonuclear lengths (Li–Li … F–F, plus H–H 0.741 Å), all 8 hydrogen–heavy pairs (gas-phase diatomic hydrides, Huber & Herzberg / NIST CCCBDB: Li–H 1.596 Å, Be–H 1.343 Å, B–H 1.232 Å, C–H 1.120 Å, N–H 1.036 Å, O–H 0.970 Å, F–H 0.917 Å), and 14 of the 21 period-2 heteronuclear pairs use real experimental equilibrium bond lengths (NIST CCCBDB): Li–O 1.688 Å, Li–F 1.564 Å, Be–O 1.331 Å, Be–F 1.361 Å, B–C 1.491 Å, B–N 1.325 Å, B–O 1.205 Å, B–F 1.267 Å, C–N 1.172 Å, C–O 1.128 Å, C–F 1.276 Å, N–O 1.154 Å, N–F 1.317 Å, O–F 1.354 Å. The remaining 7 pairs (Li–Be, Li–B, Li–C, Li–N, Be–B, Be–C, Be–N) aren't well-characterised experimentally — some barely exist outside a handful of computational-chemistry papers — so those fall back to the Schomaker–Stevenson estimate d = rA + rB − 0.09|χA − χB| (Å), using standard Pauling single-bond covalent radii and electronegativities. Marked with * in the bond-length readout. Checked against the known pairs, this estimate is typically only 0.03–0.05 Å off for near-single-bond pairs (O–F, Be–F) but can run 0.15–0.22 Å too long for pairs with real multiple-bond character it has no way to anticipate (C–O, B–O, B–N) — worth keeping in mind for the estimated pairs too.
The secular equation, generalised to unequal atoms. For two atomic orbitals with different ionization energies Hii (Atom A) and Hjj (Atom B) and real overlap S, the non-orthogonal 2×2 secular determinant |Hii−E, Hij−ES; Hij−ES, Hjj−E| = 0 gives a quadratic in E rather than the simple ±-form the homonuclear sibling uses (that form is the special case A=B of this one — sanity-checked directly: picking the same element twice here reproduces its numbers exactly). Hij is still the standard Wolfsberg–Helmholz estimate, generalised as Hij = K·S·(Hii+Hjj)/2 (K=1.75). Solving the quadratic gives both the bonding/antibonding energies and, for the first time in this family of simulations, real LCAO coefficients cA ≠ cB — the actual polarisation of each MO. This is done independently for the σ(2s), σ(2p) and π(2p) pairs, exactly as in the homonuclear sibling.
Reading the coefficients. The formula tag above the orbital panel shows the real cA, cB for whatever level is selected. As a rule, a bonding MO's energy sits closer to whichever atom's atomic orbital was already lower (more stable), and the coefficient reflects that — e.g. for C–O, σ(2s) comes out roughly 92% oxygen / 8% carbon (O's 2s is far more stable than C's), while σ*(2s) flips the other way, roughly 90% carbon. This is the same physical content as the "the more electronegative atom keeps more of the bonding electron density" rule taught with dot-and-cross diagrams, just derived rather than asserted. The correlation lines in the diagram fade in proportion to |c|² on each side, so a glance at line strength shows which atom a given MO really belongs to.
s–p mixing, generalised. σ(2s) and σ(2p) still share σ symmetry and so can mix beyond their own independent bonding/antibonding pairs (and separately, so can σ*(2s)/σ*(2p)) — modelled the same avoided-crossing way as the homonuclear sibling, with the coupling V built from the average of the two (generally unequal, for a heteronuclear pair) 2s–2p cross overlaps and the average of all four atomic references. As there, only the energy of σ(2s)/σ(2p) responds to the toggle — the shape panel always shows the pure, unmixed combination for whichever level is selected. This only applies when both atoms have a real, modelled 2p (i.e. both are B–F) — whenever H, Li or Be is involved there's no second σ combination left for σ(2s) to mix with, so the toggle is disabled (see the note on light atoms below).
Light atoms (H, Li, Be): a genuinely smaller diagram, not just another element. Every other atom here contributes four valence AOs (2s + three 2p); H, Li and Be each contribute exactly one (H's real 1s; Li's and Be's real 2s, with their empty, high-lying 2p excluded — see the ATOMS comment in the model source and the entry above on why). So any pair including one of these three only ever has 2 or 5 AOs on the table, not 8 — it isn't a minor variation on the six-level picture above, it's a different-sized secular problem. Two light atoms together (H2, Li2, Be2, LiBe, LiH, BeH, …) are the simple case: a single σ(s)/σ*(s) pair, solved with the exact same machinery as σ(2s) above — and it's a genuine sanity check that this reproduces real, known chemistry: H2 comes out bond order 1 diamagnetic, Li2 bond order 1 diamagnetic, and Be2 bond order 0 — the standard simple-MO-theory answer for why Be2 is essentially unbound (real Be2 is only very weakly bound, by effects this simplified model doesn't capture). A light atom paired with a real 2p atom (B–F) is the more interesting case: with only 5 AOs total, there are only 5 MOs, not 6. The light atom's s orbital has no partner of matching (π) symmetry at all, so the heavy atom's two perpendicular 2p orbitals stay untouched, non-bonding lone pairs (labelled "2p (n.b.)", drawn in a third, neutral colour). Of the heavy atom's two remaining σ-symmetric orbitals, this model always lets the light atom's s orbital bond with the bond-axis 2p — forming a real σ(2p+s)/σ*(2p+s) pair — while the heavy atom's 2s is left untouched as a non-bonding lone pair ("2s (n.b.)"). That choice is deliberate, not arbitrary: for B, C, N, O and F, 2p sits far closer in energy to a light atom's valence s than 2s does (e.g. O 2p ≈ −15.9 eV vs H 1s = −13.6 eV, a 2.3 eV gap, against O 2s ≈ −32.4 eV, an 18.8 eV gap; Li 2s ≈ −5.5 eV sits closer still) — the same real physics behind why HF's and H2O's lowest valence MO is usually described as "mostly a fluorine/oxygen 2s lone pair," and why LiF/BeO are close to simple, mostly-ionic single bonds rather than the over-counted multiple bonds an earlier version of this model produced (see below). Because non-bonding levels aren't genuinely stabilised or destabilised by overlap, they're excluded from the bond-order count entirely (unlike the ordinary bonding/antibonding pairs above) — so HF and LiF, for instance, both come out bond order 1 as expected, not inflated by uninvolved lone pairs. One casualty of this simplification: s–p mixing (see below) has no second σ combination left to act on whenever a light atom is involved, so the toggle is disabled for those pairs.
A limitation this fixed, and the one it doesn't. An earlier version of this page modelled Li's and Be's empty 2p as a real bonding partner, the same way B–F's occupied 2p is treated. That let bond order over-count badly for the most mismatched pairs — LiF came out bond order 4, wildly overstating its real, essentially single, mostly-ionic bond — because the "bonding" fluorine/lithium 2p combination it computed was barely perturbed by overlap and looked almost exactly like an isolated fluorine lone pair, yet the simple count still labelled it bonding. Excluding Li/Be's unoccupied 2p (per the note above) resolves this for every Li/Be pair, and none of the remaining pairs here (all between B and F, whose electronegativity gaps top out around 2.0) get close to the ΔEN that triggered it. The general failure mode — overlap-insensitive "bonding" orbitals still counting fully towards bond order — remains a real limitation of this simplified model in principle, just not one any pair on this page currently exercises.
Filling: Aufbau + Hund's rule, same as always. All vA+vB valence electrons fill whichever levels exist for the current pair — six for two real-2p atoms, five if one is H/Li/Be, two if both are — lowest-energy-first, two per orbital, with the doubly-degenerate π pair filled singly before pairing. Try C–N or N–O: both come out bond order 2.5 with one unpaired electron, matching their real identity as well-known odd-electron radicals (CN and NO). Try H–O or H–C: both come out bond order 1 with one unpaired electron too, matching the real OH and CH radicals.