The Carnot cycle is the perfect heat engine that no real machine can beat. A gas is taken around four reversible steps between a hot reservoir and a cold one — expanding while it draws heat in, being squeezed while it dumps heat out — and the loop it traces on a PV diagram encloses the net work. Because it is perfectly reversible, its efficiency hits the absolute ceiling, η = 1 − T꜀/Tʜ, set only by the two temperatures. Slide the hot and cold temperatures apart and watch the efficiency climb, the loop swell and the work grow. It all runs on your device.
You are in the Physics lab.
What the coloured loop, the shaded area and the energy-flow bar are telling you.
The moving dot traces the cycle in order: ① isothermal expansion along the red curve while the gas touches the hot reservoir at T_H; ② adiabatic expansion along the grey curve, insulated, cooling to T_C; ③ isothermal compression along the blue curve against the cold reservoir; and ④ adiabatic compression, insulated again, warming back to T_H. The piston inset shows the gas volume rising and falling and turns red, blue or grey to show which reservoir — if any — it is touching right now.
The shaded region enclosed by the loop is the net work W done per cycle. Expansion (the top of the loop) does work on the surroundings; compression (the bottom) takes work back; the area between them is what is left over. Widen the loop with the Expansion ratio slider or the Wide expansion preset and the shaded area — and the work — grows, even though the efficiency does not change.
The lower bar is the heat Q_H drawn from the hot reservoir, split into the useful work W (green) and the waste heat Q_C (blue) dumped to the cold side, so Q_H = W + Q_C exactly. The green fraction is the efficiency, η = 1 − T_C/T_H. Pull the temperatures apart and the green slice grows toward the ceiling; push them together, as in the refrigerator-range preset, and most of the heat passes straight through as waste.
Four reversible steps, a loop whose area is the work, and an efficiency set only by temperature.
Starting hot, the gas expands at constant temperature T_H while touching the hot reservoir, drawing in heat Q_H. Insulated, it expands further and cools to T_C. Touching the cold reservoir it is compressed at constant T_C, dumping heat Q_C. Insulated again, it is compressed back to the start and reheats to T_H. The red and blue curves on the diagram are the two isotherms; the grey ones are the insulated adiabatic steps.
Each trip around the closed loop returns the gas to exactly where it began, so all the energy that went in as heat comes out as work or waste heat: Q_H = W + Q_C. The net work per cycle is the area enclosed by the loop on the PV diagram — shaded here — equal to Q_H − Q_C = (T_H − T_C)·ln r, where r is the expansion ratio. A wider loop means more work.
Divide the work by the heat you paid for and, for a reversible Carnot engine, it comes out as exactly η = 1 − T_C/T_H — the highest any engine can reach between those two temperatures. It hits 100 percent only if the cold reservoir is at absolute zero. Run the same cycle backwards and it becomes a refrigerator with coefficient of performance T_C/(T_H − T_C). Real engines have friction and finite-speed heat flow, so they always sit below the Carnot line; Carnot tells you where the line is.
Teaching or blogging about thermodynamics? You can embed this simulator on your own site free — one line of code, no sign-up.
A ready-to-assign lab using the simulation above. Free to use — nothing to install or sign up for, and no student data leaves the browser.
Record the efficiency for several combinations of hot and cold temperatures.
The Carnot cycle — two isothermal and two adiabatic steps — is the most efficient possible engine between two reservoirs, with η = 1 − Tc/Th. Real engines fall short, and the second law forbids 100% efficiency.
Educators: link or embed this simulation freely in your LMS or course guide.
Put the Carnot Cycle Simulator on your own page — free, no sign-up, no watermark. It runs entirely in your visitors' browsers. Copy the snippet and paste it into your page's HTML.