PhysWallThe Physical-Logic Gateway

Your engine is 62% efficient. What is the most it could be?

A physics engine, and a verification tool enforced on top of it. PhysWall inverts a closed, published, non-linear physical law at a single measurement point — and refuses when the inverse is not unique. Seven laws, one engine, and the same refusal in all of them.

There is a hard ceiling, it was written in 1824, and almost everybody who quotes it uses the wrong temperature.

Work out the ceiling

Free. Three numbers, no sign-up, and the arithmetic runs in your browser.

What this is

The Carnot efficiency is the highest fraction of heat any engine can turn into work. It depends only on two temperatures — how hot the heat arrives, and how cold the surroundings are — and no design, material or budget moves it.

So if a gas turbine, a combined cycle plant, a steam plant or a car engine is quoted at some efficiency, there is a second number worth knowing: the maximum thermal efficiency available to it, and how much of that it is actually taking. The second number is the one that tells you whether there is room left.

What it refuses to answer

Three questions come up constantly and the law does not answer any of them. The tool says so rather than returning a number:

Each of those is a real machine somebody wanted a number for. A refusal with a reason is more use than a number with none.

Where the numbers come from, and where they stop

The law is Sadi Carnot, 1824. The correction that matters is that heat is not delivered at the peak temperature — it arrives across a range as the gas cools toward the stack, and what counts is the mean of that range weighted by entropy. Using the peak instead gives 82.8% where the honest figure is 64.6%, and a twenty-point gap that does not exist.

On why combustion sits outside Carnot rather than inside it: Wright, Renewable Energy 2003, and Hassanzadeh & Mansouri, Proc IMechE 2005, independently.

Where the source stops. The formula assumes a constant specific heat — it is not constant, and rises about 15% across the range. It assumes no pressure drop, and a heat source that is a flowing stream rather than an endless reservoir. None of those is small, and all three are stated on the tool itself rather than buried here.

The part that surprises people

A simple-cycle turbine throws its exhaust away at 550–600 °C. A combined cycle recovers it and stacks at about 100 °C. Same turbine, same firing temperature — and two completely different ceilings.

Measured against its own ceiling the simple cycle takes 87%, which is better than a typical combined cycle plant managing 90% of a much higher one. It is not a worse engine. It is a shorter one. A tool that asks for two temperatures instead of three cannot see the difference, and most of them ask for two.

Work out the ceiling

If this is not your question

If what you have is a measurement rather than a machine — two readings that disagree, or a percentage on a sample you are not sure is large enough — then three checks on a number is closer to it. If the question is whether a radio target is reachable before anybody builds it, that is seven published bounds, run backwards. And if you are not sure which of these applies, the router asks a few questions and is allowed to answer “none of them”.

What this is not

It is not a plant model and it will not design anything. It gives one number and the distance to it, which is the question worth asking before a simulation runs, not instead of one.

It is not a verdict on a machine either. An engine at 90% of its ceiling is not badly built; it is a long way from the physics because the physics is generous at that temperature. The ceiling is a fact about the heat source, not about the engineering.

Beta. The law is settled and the assumptions above are not. Three earlier versions of this tool were wrong, and each was corrected by somebody outside the project.

(function(){ var page = document.body.getAttribute('data-page') || 'carnot'; function send(o){ try{ o.page = o.page || page; var b = JSON.stringify(o); if(navigator.sendBeacon){ navigator.sendBeacon('/api/count', new Blob([b],{type:'application/json'})); } else { var x = new XMLHttpRequest(); x.open('POST','/api/count',true); x.setRequestHeader('Content-Type','application/json'); x.send(b); } }catch(e){} } send({kind:'view', ref: document.referrer || ''}); var t0 = Date.now(); document.addEventListener('click', function(e){ var a = e.target && e.target.closest ? e.target.closest('a') : null; if(!a) return; var h = a.getAttribute('href') || ''; if(h.indexOf('/app/')===0){ send({kind:'cross'}); } }); window.addEventListener('pagehide', function(){ send({kind:'dwell', s: (Date.now()-t0)/1000}); }); })();