# Energy enters through a source

This analytical teaching study uses assigned hypothetical inputs. No machine or material was measured. Run `python generate.py` with matplotlib to regenerate CSV, metadata and the original PNG/SVG/PDF figure.

Generator: 1 N m prescribed shaft torque, 0–600 rpm in 5 rpm increments, efficiencies 0%, 50%, 80% and 100% (484 rows). Angular speed is rpm × 2π/60; mechanical power is torque × angular speed. Electrical output is efficiency × input, with the remainder assigned to heat. At 600 rpm and 80%, the input is 62.8319 W, output 50.2655 W and loss 12.5664 W. Efficiency is assumed constant, not a measured or realistic speed-dependent machine map. This is steady accounting of magnitudes; magnetic-field excitation, startup and stored energy are not separately modeled.

Heating: a hypothetical inert material starts at 20 C and changes phase at 120 C. Assigned constant specific heat is 800 J/(kg K) and assigned latent heat is 200,000 J/kg. Mass spans 0–5 kg in 0.05 kg steps at absorbed powers 100, 500 and 1000 W (303 rows). These are invented teaching parameters, not rock properties. Heating 1 kg to the transition requires 80 kJ; completing the transition adds 200 kJ. The 280 kJ total takes 560 seconds at 500 W absorbed power under the ideal assumptions.

The heating endpoint is completed phase change; there is no post-completion temperature model. Container heat, thermal losses, reactions, gas production, melt transport and cooling are excluded. Absorbed power is power delivered to the material, not wall-plug power. The model provides no excavation rate, cost or process-feasibility prediction. Zero power gives no finite completion time when positive energy is needed; the function returns null. Zero mass has zero required energy and zero time.

Independent checks derive generator power from work per revolution and revolutions per second, reconstruct sensible heat by summing 100 one-kelvin increments, and check absorbed power × completion time. All generator rows conserve input = output + loss; zero-speed, zero/full efficiency, zero-mass and zero-power cases pass. Eight invalid-input cases are rejected. Maximum independent generator discrepancy is 7.11e-15 W from floating-point arithmetic.

The figure shows the 80% generator slice and the heating energy partition; all four efficiencies and three heating power cases are in the downloadable CSV. Heat energy depends on the assigned endpoint and mass, while completion time additionally depends on absorbed power. Lines are analytical calculations, not fitted measurements; no statistical uncertainty is implied. NASA's linked dynamo explanation supports the source-of-energy lesson, not the numerical efficiency. The heat formulas follow the explicitly stated definitions of constant specific heat and specific latent heat.
