Numerical work has consequences when people treat a model output as evidence. Ethical practice is not a final disclaimer. It is part of implementation: preserve assumptions, make uncertainty visible, enable reproduction, avoid misleading visual defaults, and stop a model from being used outside its supported purpose.
type ReportedValue = {
value: number;
unit: string;
uncertainty?: number;
assumptions: string[];
modelVersion: string;
dataVersion?: string;
warnings: string[];
};
This type does not make a model ethical by itself. It makes omission harder. If a simulation uses a seeded random number generator, report the seed. If it uses a simplified geometry, say so next to the result. If a reader enters a value outside the validated range, show a recoverable warning rather than silently extrapolating.
Smooth curves, saturated colors, and animation can imply certainty that the calculation does not have. Show sampled points when appropriate, label interpolation, distinguish measured data from a model curve, and give text alternatives to a color-only status. For sensitive topics, do not turn a simplified nuclear, climate, health, or safety-related model into a confident recommendation.
Reproducibility also includes access. Keyboard controls, readable equations, text values outside a canvas, and no-WebGL fallbacks let more people inspect and challenge a result. Accessibility is part of scientific accountability: a conclusion cannot be independently checked if the interface hides it from part of its audience.
Before publishing, ask: “What decision could someone make from this output, and what missing assumption could reverse that decision?” If the answer is material, narrow the claim, add uncertainty, improve validation, or do not publish the feature as a predictive tool.
Prediction: Re-running a seeded random model with the same seed should reproduce its sequence, while a different seed should make a distinguishable but statistically comparable run.
Run a seeded sampling model twice with the same seed and once with a new seed. Record what stayed identical, what changed, and which summary statistic should remain comparable across runs.Numerical ethics means shipping context with computation: provenance, uncertainty, assumptions, validation evidence, accessible inspection paths, and clear limits on use.
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 Numerical Ethics, write down the quantities you can control, the values your program must retain, and the result a reader could inspect. In Thinking Like a Computational Physicist, 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 Numerical Ethics 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.
Publish numerical results with provenance, uncertainty, accessibility, and explicit limits.