“Current flows” is a description of an output, not a model. Depending on scale, conduction may be represented by Ohm's law, a carrier-density calculation, a drift–diffusion equation, or a quantum transport calculation. Pick the smallest model that predicts the quantity you need and name what it deliberately ignores.
For a uniform ohmic conductor,
\[R=\rho\frac{L}{A},\qquad I=\frac{V}{R},\qquad P=IV\]ρ is resistivity, L is length, and A is cross-sectional area. The formula predicts a linear relationship only while the material properties and temperature are treated as constant. It is an excellent first test fixture because changing one input has an expected direction: doubling length doubles resistance; doubling area halves it.
At a microscopic teaching level, the same current density can be written as
\[J=nqv_d\]This connects a macroscopic current with a population of charge carriers. It does not mean signal propagation occurs at the slow drift speed. Circuit fields and boundary changes establish on different timescales, which a resistor-only model hides.
const resistanceOhms = resistivityOhmMetres * lengthMetres / areaSquareMetres;
const currentAmps = appliedVolts / resistanceOhms;
expect(currentAt(0)).toBe(0);
The final assertion is a limiting-case check. If it fails, inspect the sign convention and any source offset before blaming the material model.
Use a lumped resistor when geometry can be represented by L and A and you only need steady-state terminal values. Move to a spatial potential or carrier model when local heating, nonuniform material, junctions, or transient charge storage affects the question. A more detailed model needs more boundary data; complexity without measurements is not accuracy.
Prediction: For an ideal uniform conductor held at fixed voltage, doubling length halves the current.
Chooseρ, A, and V. Calculate current for length L and 2L, then check the ratio. State the material change that could make the simple prediction fail in a real wire.Conduction is a modeling choice. Begin with an explicit input contract and a limiting-case test, then add carrier, spatial, or time dependence only when the question and available data require it.
Treat the lesson as a small function before treating it as a fact to memorize. Give every value a unit, keep only the state needed for the next step, and make the output easy to inspect.
\[\text{observable output} = f(\text{inputs},\,\text{state})\]For Conduction Models, write down the quantities you can control, the values your program must retain, and the result a reader could inspect. In Atoms and Solids, the useful program is not the drawing: it is the smallest explicit model that makes a prediction you can test.
Prediction: changing one declared input while holding the others fixed should change only the outputs that the model connects to that input. Choose one input, predict the direction of change, then check a limiting case such as zero, a symmetric arrangement, or a familiar low-speed or small-change approximation.
This lesson is a teaching model, not a complete simulator. Before using it outside the stated question, check which interactions, scales, uncertainties, boundary conditions, and measurement limits it leaves out.
Treat Conduction Models as a contract: named inputs and units enter a rule, the rule produces an observable result, and a known limit or invariant checks whether the implementation deserves trust.
Select a scale-appropriate carrier model and make material and transport assumptions explicit.