# Lesson 2 — What are we actually describing when we describe electrons?

Last time, we chose a question:

> What is the ground-state energy of a nitrogen molecule whose nuclei are held 1.85 Å apart?

Now imagine we are implementing that calculation.

We already have the positions of the two nuclei. But we have not yet described the electrons—or explained what an electronic “solution” actually looks like.

This lesson builds that description, all the way from atomic coordinates to the mathematical objects that QDK Chemistry stores and processes.

## 1. Start with what we know—and separate it from what we must calculate

For our nitrogen example, we specify:

- Two nitrogen nuclei, each with nuclear charge \(+7\).
- Their positions.
- A net molecular charge of zero.
- A target electronic spin state, which we’ll explain shortly.

For this **all-electron model**, meaning that we explicitly account for all the electrons, the electron count is

\[
N_{\mathrm{electrons}}
=
\sum_A Z_A-Q.
\]

Here, \(Z_A\) is the atomic number of nucleus \(A\), and \(Q\) is the molecule’s net charge in units of the proton’s charge.

For neutral nitrogen:

\[
N_{\mathrm{electrons}}=7+7-0=14.
\]

A positive molecular charge would mean that electrons had been removed. A negative charge would mean that extra electrons had been added.

Notice what we **did not** specify: which electron belongs to which nitrogen atom. Within the molecule, electrons are indistinguishable, and the electronic state can extend across both nuclei.

### Why we temporarily hold the nuclei still

Nuclei are much heavier than electrons. This often makes it useful to separate the electronic problem from nuclear motion.

The **Born–Oppenheimer approximation** provides the usual starting point: solve the electronic problem for a specified arrangement of nuclei, then use the resulting energies to describe nuclear behavior.

For our first calculation, the nuclei are fixed parameters.

This does not mean that nuclei never move, or that nuclear motion is fundamentally nonquantum. It is a deliberate separation of the problem.

If we repeat the electronic calculation for different nuclear separations, we obtain an energy curve. Nuclear motion can then be studied using that curve.

The approximation has limitations, particularly when electronic states come close in energy and electronic and nuclear motion become strongly coupled. We are not solving those complications simply by obtaining an accurate fixed-geometry energy.

### Where that distinction appears in the repository

The [`Structure` class](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/cpp/include/qdk/chemistry/data/structure.hpp) stores nuclear information: coordinates, elements, masses, and nuclear charges.

It does **not** itself specify the complete electronic state. Charge and spin multiplicity are separate inputs to the electronic solver.

There is also a concrete units contract:

- XYZ input uses **ångströms**.
- `Structure` stores coordinates internally in **bohr**.
- Direct coordinate constructors and coordinate getters use bohr.

A bohr is an atomic-scale length unit:

\[
1\ \mathrm{bohr}\approx 0.529177\ \text{Å}.
\]

Our 1.85 Å separation is therefore approximately 3.496 bohr.

Passing `1.85` to an interface expecting bohr would specify a different molecule from passing `1.85` through XYZ input. The number alone is not sufficient; its unit is part of the input.

The conversion constants come from the externally established **CODATA** recommended physical constants, represented in [`constants.hpp`](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/cpp/include/qdk/chemistry/constants.hpp). This checkout defaults to the 2022 values.

---

## 2. The missing object is a wavefunction—not a collection of electron trajectories

A familiar picture of an atom shows electrons orbiting a nucleus like planets.

That is not the representation used here.

An **orbital** is not an orbit, and the calculation does not assign each electron a definite path around the nuclei.

Instead, quantum mechanics describes the electronic state using a **wavefunction**.

For one electron, a spatial wavefunction assigns an **amplitude** to each position. Amplitudes determine probabilities, but they are not themselves probabilities.

The basic relationship is:

\[
\text{probability density at position }\mathbf r
=
|\psi(\mathbf r)|^2.
\]

Here:

- \(\mathbf r\) means a three-dimensional position.
- \(\psi\) is the wavefunction.
- The vertical bars mean magnitude.
- Squaring the magnitude produces a nonnegative probability density.

A **probability density** is not the probability of a mathematical point. To obtain the probability of finding the electron within a region, we add up—mathematically, integrate—the density over that region.

### Why amplitudes contain more information than probabilities

Amplitudes can have signs and, more generally, can be complex numbers.

A complex number has two real components. In quantum mechanics, this allows an amplitude to carry a **phase**, which describes how it combines with other amplitudes.

For now, the simplest example is a plus sign versus a minus sign:

- An amplitude of \(+0.5\) gives probability \(0.25\).
- An amplitude of \(-0.5\) also gives probability \(0.25\).

But those amplitudes can combine differently with other amplitudes. They may reinforce or cancel each other.

This is **interference**.

We will see a numerical example below where changing only a relative sign changes the energy.

### Fourteen electrons require a joint description

A general fourteen-electron wavefunction describes the electrons **together**.

It depends on all fourteen positions and their spin information—not merely fourteen independent pictures.

There are already 42 spatial coordinates: three per electron. The crucial difficulty is that the dependence on those coordinates generally cannot be separated into independent one-electron pieces.

That is the many-electron problem we are trying to make computationally manageable.

---

## 3. Build the description in layers: basis functions, orbitals, and electron states

The repository uses several objects that can initially sound interchangeable. They are not.

The first distinction is between a **basis function** and a **molecular orbital**.

### Basis functions: the available mathematical building blocks

A **basis set** is a finite collection of known functions used to represent the spatial behavior of electrons.

For molecular calculations, many of these functions are centered on nuclei. Different functions provide different spatial shapes and extents.

A useful analogy is representing a sound by combining a chosen collection of tones. The available tones limit which sounds you can represent.

Likewise, the basis set limits which orbital shapes the calculation can represent.

QDK Chemistry has a `BasisSet` data class and supports named collections such as `sto-3g`, `cc-pvdz`, and `cc-pvtz`. Those names identify different predefined collections—not different quantum algorithms.

We will examine their construction and tradeoffs in the basis-set lesson.

### Molecular orbitals: combinations of those building blocks

A **molecular orbital** is a one-electron spatial function built by combining basis functions:

\[
\phi_p(\mathbf r)
=
\sum_\mu C_{\mu p}\chi_\mu(\mathbf r).
\]

Read this as:

> “Orbital \(p\) is a weighted sum of the available basis functions.”

The symbols mean:

- \(\chi_\mu\): basis function number \(\mu\).
- \(C_{\mu p}\): the weight of that basis function in orbital \(p\).
- \(\phi_p\): the resulting molecular orbital.
- \(\sum\): add the contributions together.

The weights \(C_{\mu p}\) are called **orbital coefficients**.

Optimizing molecular orbitals means adjusting these coefficients.

The [`Orbitals` data model](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/docs/source/user/comprehensive/data/orbitals.rst) carries this representation, along with information such as orbital energies, basis information, and which orbitals belong to selected subsets.

Two vocabulary labels you will encounter repeatedly are:

- **AO:** atomic orbital; in this context, usually an atom-centered basis function.
- **MO:** molecular orbital; a combination that can extend across the molecule.

Not every computational AO is an exact orbital of an isolated atom. “AO basis” is also a description of how the functions are organized.

### Bonding and antibonding orbitals

Some combinations of atom-centered functions support bonding. Others oppose it.

In a simple two-center picture, combining functions constructively between nuclei can produce a **bonding orbital**. A different combination can introduce a node—a region where the orbital amplitude vanishes—between the nuclei, producing an **antibonding orbital**.

The complete energetic explanation involves both electron motion and interactions, not just a picture of electron density.

Nevertheless, orbital shapes are useful for understanding why different electron occupations strengthen or weaken a bond.

When the repository displays differently colored orbital lobes, those colors commonly represent **opposite signs of the orbital amplitude**, not positive and negative electric charge.

### An orbital is not an individually named electron

It is tempting to say, “Electron 1 lives in orbital 1.”

That is not a generally valid interpretation.

Orbitals are building blocks used to represent the state. Identical electrons do not acquire permanent individual identities from that representation.

---

## 4. Add spin, and specify which one-electron states are occupied

An electron has an intrinsic quantum property called **spin**.

It is not adequately described as a little ball physically rotating. For the usual nonrelativistic electronic models considered here, a measurement of spin along a selected axis has two possible projections.

We label them:

- \(\alpha\): the \(+\tfrac12\) projection.
- \(\beta\): the \(-\tfrac12\) projection.

A **spin orbital** combines a spatial orbital with a spin function.

For a shared spatial orbital \(\phi_p\), we can form an alpha spin orbital and a beta spin orbital.

### The Pauli exclusion principle

Electrons obey the **Pauli exclusion principle**:

> No two electrons can occupy the same spin orbital.

Consequently, a spatial orbital can accommodate at most two electrons in this description: one alpha and one beta.

This is why these counts differ:

- Six spatial orbitals.
- Twelve corresponding spin orbitals.
- Some chosen number of electrons occupying those spin orbitals.

The number of orbitals is not the number of electrons.

### Total spin is a separate concept

The spins of all the electrons combine into a total spin, conventionally labeled \(S\).

The **spin multiplicity** is

\[
2S+1.
\]

A singlet has \(S=0\), a doublet has \(S=\tfrac12\), and a triplet has \(S=1\).

For our singlet nitrogen calculation, the solver uses seven alpha and seven beta electrons.

But there is an important qualification:

> Equal alpha and beta populations establish zero spin projection along the chosen axis. They do not, by themselves, prove that a wavefunction is a pure total-spin singlet.

A correlated singlet can also involve singly occupied spatial orbitals. “Singlet” does not universally mean “every orbital is either empty or doubly occupied.”

These distinctions matter when we later compare restricted and unrestricted methods.

### Configurations: occupation bookkeeping

An **electron configuration**, as represented by QDK Chemistry’s `Configuration` class, records an occupation pattern.

Its spin-half string format uses:

| Character | Occupation of the corresponding spatial orbital |
|---|---|
| `0` | Empty |
| `u` | One alpha electron |
| `d` | One beta electron |
| `2` | One alpha and one beta electron |

For example:

```python
from qdk_chemistry.data import Configuration

configuration = Configuration.from_spin_half_string("2du0")
```

This describes four spatial orbitals:

- The first is doubly occupied.
- The second contains a beta electron.
- The third contains an alpha electron.
- The fourth is empty.

There are four electrons altogether: two alpha and two beta.

This is an example of the representation, not our fourteen-electron nitrogen calculation.

The format is defined in [`configuration.hpp`](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/cpp/include/qdk/chemistry/data/configuration.hpp) and exposed to Python through the [configuration bindings](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/python/src/pybind11/data/configuration.cpp).

An occupation string is not a complete physical description on its own. We also need to know **which orbitals the entries refer to**.

---

## 5. A configuration needs a valid many-electron wavefunction: the Slater determinant

We cannot construct an electronic wavefunction by assigning electron 1 to one orbital, electron 2 to another, and simply multiplying everything together.

Electrons are **fermions**, a class of particles whose wavefunctions must change sign when two identical particles are exchanged.

That property is called **antisymmetry**.

For two electrons occupying spin orbitals \(\psi_a\) and \(\psi_b\), a valid antisymmetric wavefunction is

\[
\Phi(x_1,x_2)
=
\frac{
\psi_a(x_1)\psi_b(x_2)
-
\psi_b(x_1)\psi_a(x_2)
}{\sqrt{2}}.
\]

Here, \(x_1\) and \(x_2\) each include both position and spin.

The two terms include both possible assignments of the electron coordinates to the occupied orbitals. The minus sign makes exchanging the electrons change the wavefunction’s sign.

The normalization factor \(1/\sqrt2\) gives the correct total probability when the spin orbitals are normalized and mutually orthogonal. **Orthogonal** means that their mathematical overlap is zero.

If we try to use the same spin orbital twice, the two terms cancel. The result is zero rather than a valid state. That is how exclusion appears in this construction.

For more electrons, the compact mathematical construction is called a **Slater determinant**.

A determinant is a particular mathematical operation on a matrix. Here, it combines all the assignments with the signs required by electron exchange.

So there is a useful distinction:

- A **configuration** records occupations.
- A **Slater determinant** supplies the corresponding antisymmetric state, given the orbitals and an ordering convention.

### One determinant versus many determinants

A general electronic state may require a combination:

\[
|\Psi\rangle
=
\sum_I c_I|\Phi_I\rangle.
\]

The bracket notation \(|\Psi\rangle\), pronounced “ket psi,” is simply a way of writing a quantum state.

In this expression:

- \(I\) labels different determinants.
- \(|\Phi_I\rangle\) is determinant \(I\).
- \(c_I\) is its amplitude in the state.

These \(c_I\) coefficients are **not** the orbital coefficients \(C_{\mu p}\) introduced earlier.

They operate at different levels:

> Orbital coefficients combine basis functions into orbitals.  
> Determinant coefficients combine many-electron configurations into a many-electron state.

For an orthonormal determinant basis, a normalized state satisfies

\[
\sum_I |c_I|^2=1.
\]

The squared magnitudes give probabilities for a measurement that distinguishes those occupation patterns. Their relative signs and phases still matter for other properties.

### This is where electron correlation enters

**Hartree–Fock** uses one optimized determinant.

It does include electron–electron interactions and the consequences of antisymmetry called **exchange**. It does not simply ignore repulsion.

However, one determinant cannot represent all the ways interacting electrons coordinate their behavior.

The additional behavior beyond the Hartree–Fock description is called **electron correlation** in the usual quantum-chemistry terminology.

Two useful descriptions are:

- **Static correlation:** several configurations are important, so relying on one is inadequate. Bond stretching is a classic setting.
- **Dynamic correlation:** finer adjustments in the joint electronic behavior, often associated with how electrons avoid each other, require additional contributions.

This is not a perfectly sharp, universal division. It is a practical way of understanding which approximations are likely to struggle.

---

## 6. The Hamiltonian tells us which combinations have which energies

We now have a language for candidate electronic states.

We still need the rule that evaluates their energy.

That rule is the **Hamiltonian**, written \(\hat H\).

An **operator** is a mathematical rule that acts on a state to produce another mathematical state. The Hamiltonian is the operator associated with energy.

For our fixed-nuclei electronic problem, its contributions describe:

- Electron kinetic energy: energy associated with electron motion.
- Electron–nucleus attraction.
- Electron–electron repulsion.

The fixed nuclear repulsion contributes separately to the total energy, as discussed in Lesson 1.

### State versus Hamiltonian

These are fundamentally different objects:

- The Hamiltonian describes the problem.
- The wavefunction describes a possible state of that problem.

We can evaluate several different trial wavefunctions using the same Hamiltonian.

A **trial wavefunction** is a candidate state that we hope approximates a state of interest.

### Energy eigenstates

An energy eigenstate satisfies

\[
\hat H|\Psi\rangle=E|\Psi\rangle.
\]

This says:

> Applying the Hamiltonian leaves the state proportional to itself, with proportionality factor \(E\).

The state is an **eigenstate**, and \(E\) is its **eigenvalue**, here an energy.

The lowest energy in the specified model and allowed set of states is the ground-state energy.

For a state that is not an energy eigenstate, an energy measurement can have different outcomes. We can still discuss its **expectation value**, meaning the average energy over many identical preparations.

An average energy is not automatically an energy eigenvalue. This distinction later separates expectation-value estimation from phase estimation.

### A small numerical example: why relative signs matter

Consider an intentionally simplified model containing just two determinants:

- \(A\): both electrons occupy the first spatial orbital.
- \(B\): both electrons occupy the second.

These correspond conceptually to the occupation patterns `20` and `02`.

**The following numbers are a teaching example, not a nitrogen result.**

Suppose the Hamiltonian in this two-determinant basis is

\[
H=
\begin{pmatrix}
-1.0 & -0.2\\
-0.2 & -1.0
\end{pmatrix}
\quad\text{hartree}.
\]

A **matrix** is an arrangement of numbers in rows and columns. Here, it records how the Hamiltonian acts within our two-state description.

The diagonal entries give the energy expectation of each individual determinant. The off-diagonal entries describe coupling between them.

Either determinant alone has average energy \(-1.0\) hartree.

Now form two normalized combinations:

\[
|\Psi_+\rangle=\frac{|A\rangle+|B\rangle}{\sqrt2},
\qquad
|\Psi_-\rangle=\frac{|A\rangle-|B\rangle}{\sqrt2}.
\]

Both have a 50% probability of yielding occupation pattern \(A\) and a 50% probability of yielding \(B\).

Yet their energies differ:

\[
H|\Psi_+\rangle=-1.2|\Psi_+\rangle,
\qquad
H|\Psi_-\rangle=-0.8|\Psi_-\rangle.
\]

For the plus combination, each matrix row effectively adds \(-1.0\) and \(-0.2\), producing \(-1.2\). The opposite relative sign changes how the coupling contributes.

Thus the ground state of this toy model is the plus combination, not either determinant individually.

This illustrates three important facts:

**Mixing configurations can lower the energy.** A one-configuration description can miss that improvement.

**Probabilities alone do not specify the state.** The two combinations have identical occupation probabilities but different energies.

**A coherent combination is not a classical lottery.** Randomly selecting \(A\) or \(B\) with equal probability would give average energy \(-1.0\), not \(-1.2\).

An ordinary computer can calculate all of this. Describing a quantum state mathematically does not require executing the calculation on a quantum processor.

The repository’s [`Hamiltonian` object](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/docs/source/user/comprehensive/data/hamiltonian.rst) generally stores more compact ingredients from which such many-electron matrix elements can be constructed, rather than requiring us to store the complete enormous matrix.

Those ingredients include **one- and two-electron integrals**: numbers obtained by combining orbital functions with the relevant one-electron and electron-pair energy operators. Their construction gets its own detailed treatment later.

---

## 7. Now connect the mathematics to actual QDK Chemistry methods

We can already understand the essential difference between several methods the repository offers.

### Hartree–Fock: optimize one determinant

Hartree–Fock searches for good orbitals while restricting the state to one determinant.

Changing the orbitals changes the determinant. The method seeks an energy-minimizing choice within that restricted family.

Its computational advantage comes from avoiding a general coefficient for every possible configuration.

Its limitation is equally direct: if no single determinant is a sufficiently good description, improving the numerical convergence does not remove that limitation.

In QDK Chemistry, the native route is the `"qdk"` implementation of `"scf_solver"`, with `"method"` set to `"hf"`.

The interface returns **both the energy and a `Wavefunction` containing the resulting orbitals**. See the [SCF interface](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/cpp/include/qdk/chemistry/algorithms/scf.hpp).

### Self-consistent field: the loop used to find the orbitals

**Self-consistent field**, or **SCF**, describes an iterative solution procedure.

The circular dependence is:

1. The occupied orbitals determine an electron distribution.
2. That distribution determines an effective field experienced by the electrons.
3. Solving in that field produces updated orbitals.
4. Those orbitals produce a new distribution.

The process repeats until the solution is sufficiently self-consistent.

The **mean field** is an effective description of the other electrons’ influence, rather than a full account of every correlated fluctuation.

SCF is not synonymous with Hartree–Fock. Other models also use self-consistency.

### Density functional theory: a different scientific starting point

**Density functional theory**, or **DFT**, uses the electron density as a central variable.

The electron density tells us how the expected electron population is distributed in space. It is not the full many-electron wavefunction.

A **functional** is a rule that takes an entire function as input and returns a value. An energy functional takes a density function and returns an energy.

The commonly used **Kohn–Sham** approach introduces an auxiliary orbital system to help calculate that density. The remaining electronic effects are treated through an **exchange-correlation functional**.

Practical choices such as PBE or B3LYP approximate that functional.

QDK Chemistry’s SCF interface can select DFT by supplying a supported functional name instead of `"hf"`.

A critical distinction: the auxiliary Kohn–Sham determinant is **not generally the true interacting many-electron wavefunction**. DFT can account approximately for correlation in the energy without explicitly storing a large determinant expansion.

### Configuration interaction: optimize combinations of determinants

**Configuration interaction**, or **CI**, takes a set of determinants and solves for their mixing coefficients.

Our two-by-two example is a miniature illustration.

For fixed orbitals, constructing and solving the Hamiltonian in a determinant space determines combinations with definite energies. This process is commonly called **diagonalization**.

QDK Chemistry provides these concrete implementations:

| Implementation | What it does | Central tradeoff |
|---|---|---|
| **`"macis_cas"`** | Performs complete-active-space CI: includes all allowed configurations for the chosen active electrons and orbitals. | A reference solution within that chosen space, up to numerical tolerances, but the configuration count grows rapidly. |
| **`"macis_asci"`** | Performs adaptive sampling CI: estimates which configurations are important, expands the selected set, solves within it, and refines the selection. | Can address larger spaces by retaining fewer configurations, but introduces a selection approximation. |

An **active space** is the set of orbitals in which electron occupations are allowed to vary explicitly. Orbitals outside it are treated under additional restrictions, such as fixed occupations.

“Complete” in complete-active-space CI means complete **inside that chosen space**, not an exact solution of every aspect of the real molecule.

These implementations use **MACIS**, the Many-body Adaptive Configuration Interaction Solver, whose source is included under `external\macis`. The registrations are visible in [`mc.cpp`](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/cpp/src/qdk/chemistry/algorithms/mc.cpp), and the [method documentation](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/docs/source/user/comprehensive/algorithms/mc_calculator.rst) describes their settings.

We will later derive the selection procedure, examine its limits, and trace the solver implementation. These are introductory distinctions, not substitutes for those method lessons.

### Keep the different layers separate

This is the classification we will use throughout preprocessing:

| Layer | Examples in this repository | The question being answered |
|---|---|---|
| **Scientific approximation** | Hartree–Fock, a particular DFT functional, complete or selected CI | What family of electronic descriptions are we allowing? |
| **Orbital restrictions** | Shared or separate spatial orbitals for alpha and beta electrons | What constraints do we impose on the orbitals? |
| **Numerical solution method** | DIIS, geometric direct minimization | How do we find a solution to the chosen equations? |
| **Software implementation** | Native `"qdk"` or the `"pyscf"` adapter | Which package performs the work? |

**DIIS**, short for direct inversion in the iterative subspace, uses information from previous iterations to construct an improved next estimate.

**Geometric direct minimization**, or **GDM**, directly reduces the energy by changing the orbitals through rotations that preserve the required orbital relationships.

The native solver supports a DIIS/GDM strategy, controlled in part by `enable_gdm`; see its [implementation](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/cpp/src/qdk/chemistry/algorithms/microsoft/scf.cpp).

PySCF is a separate electronic-structure package. The repository’s [PySCF adapter](https://github.com/microsoft/qdk-chemistry/blob/97a3ff4f/python/src/qdk_chemistry/plugins/pyscf/scf_solver.py) translates between QDK Chemistry’s interfaces and that package.

Changing the numerical solver can improve convergence without changing the scientific approximation. Changing the approximation can change the answer even when both calculations are perfectly converged.

And **convergence does not by itself establish that we found the best possible solution**. That is why stability analysis receives a separate lesson.

---

## 8. Why the number of possible configurations becomes the bottleneck

Suppose we have:

- \(K\) spatial orbitals.
- \(N_\alpha\) alpha electrons.
- \(N_\beta\) beta electrons.

The number of determinants with those spin-projection populations is

\[
N_{\mathrm{det}}
=
\binom{K}{N_\alpha}
\binom{K}{N_\beta}.
\]

The notation \(\binom{K}{N}\), pronounced “K choose N,” counts the ways to select \(N\) items from \(K\).

We choose which spatial orbitals carry alpha electrons and which carry beta electrons. The same spatial orbital can appear in both choices.

For six orbitals with three alpha and three beta electrons:

\[
N_{\mathrm{det}}
=
\binom63\binom63
=
20\times20
=
400.
\]

The nitrogen tutorial’s `cc-pvdz` calculation has 28 spatial molecular orbitals. Keeping all fourteen electrons, with seven alpha and seven beta, gives

\[
N_{\mathrm{det}}
=
\binom{28}{7}^{2}
=
1{,}401{,}950{,}721{,}600.
\]

That is about **1.4 trillion determinants**, before using further restrictions such as total-spin or molecular symmetry.

Merely storing one general coefficient vector with a 16-byte complex number per determinant would require approximately **22.4 terabytes**. That is not the storage for the Hamiltonian, intermediate work, or multiple states.

This is an illustrative cost of an explicit, uncompressed representation—not a claim that every classical algorithm stores such a vector or that nitrogen cannot be studied classically.

It explains the motivation behind several major parts of the repository:

- Better orbital choices can make the state easier to represent.
- Active spaces reduce the number of orbitals and electrons treated in full detail.
- Selected CI keeps a chosen subset of determinants.
- Other classical approximations encode correlation differently.
- Quantum algorithms explore a different way of representing and processing the state.

In a straightforward occupation-based quantum encoding, the qubits correspond to **spin orbitals**, not to individual electrons. Six retained spatial orbitals would ordinarily start with twelve occupation qubits, before additional work qubits or reductions.

That representation does not make the calculation automatically efficient. Loading a useful state, applying the energy model, obtaining the desired measurement, and protecting the computation from errors still have costs.

## 9. What our first classical calculation must actually hand to the next stage

At this point, we can interpret the repository’s data flow more precisely.

`Structure` tells us where the nuclei are.

`BasisSet` specifies the available one-electron building blocks.

`Orbitals` records how those building blocks have been combined.

`Configuration` identifies an occupation pattern.

`Wavefunction` carries a representation of the electronic state. The exact information available depends on its representation; not every method stores an explicit list of all determinant coefficients.

`Hamiltonian` records the energy model against which states are evaluated.

This is why the first classical solver returns more than an energy. A number can tell us the value of one calculation, but it cannot by itself supply the orbital basis, the reference state, or the information needed to build a quantum circuit.

**The central engineering handoff is a reusable electronic description—not just an energy printed on the screen.**