What if the Titanic had rammed the iceberg head-on? What is Finite Element Modeling engineering simulation, and how it chooses its simplifications to put physics-accurate structural behavior prediction in the palm of your hand.
We rebuild the Titanic's final moments as a measured simulation, to answer a counterfactual the 1912 inquiry itself raised: if the ship had rammed the iceberg head-on instead of turning, would she have survived?
On the night of April 14, 1912, the Titanic's lookout saw the iceberg and the officer of the watch did the human thing: he turned. The ship answered the helm just enough to trade a head-on collision for a glancing blow β a long, shallow wound opening the ship's side across five or six forward compartments. Her watertight bulkheads only reached partway up; as the flooding bow dragged the ship down at the nose, water topped each bulkhead in turn and filled the next compartment. She sank by sequence, not by a single wound.
At the British inquiry weeks later, the shipbuilder's own naval architect, Edward Wilding, was asked the question this program now measures. His answer, verbatim from the transcript: "I am quite sure she would [have been saved], My Lord. I am afraid she would have killed every fireman down in the firemen's quarters, but I feel sure the ship would have come in." Pressed on the mechanism: "The momentum of the ship would have crushed in the bows for 80 or perhaps 100 feet" β and, he estimated, stopped before the second bulkhead, leaving fourteen compartments dry. A head-on strike trades a long tear along many compartments for a brutal crush of one or two. The program's pipeline exists to check that 1912 expert estimate with modern measurement: crush distance, deceleration, casualties in the crushed zone, and the flooding verdict.
To measure any of that, the simulation has to break the hull the way the real hull broke. Which brings us to the rivets.
The popular picture is torn steel. The metallurgy says otherwise. When hull pieces were recovered from the wreck and sectioned at the U.S. National Institute of Standards and Technology, the plates' steel told one story β brittle at ice-water temperatures β but the sharper finding was in the rivets. Wrought iron normally carries 2β3% slag (glassy silicate residue) by volume. The sectioned Titanic hull rivet measured 9.3 Β± 0.3% β more than three times normal β arranged partly in long stringers, and near the formed head those stringers lie perpendicular to the load: the weakest possible orientation, exactly where the rivet must hold hardest. NIST's conclusion was that rivet failure, not plate failure, is "the most likely candidate for becoming a quantifiable metallurgical factor" in the loss (see the NIST report).
There is even a photographic control experiment. When Titanic's sister ship Olympic was rammed by the cruiser HMS Hawke in 1911, image analysis of the damage shows more than fifty rivets simply missing around the impact zone β heads popped, shanks gone, seams held only by their neighbors. Hulls of this construction fail at their seams. A model that cannot fail at its seams is a model of some other ship.
So the rivets must be in the model. The engineering question is how. There are exactly three options, and one of them is dishonest: ignore the rivets (a homogeneous hull β which contradicts the NIST evidence the study cites, and gets the failure mode wrong); model them discretely, every rivet a little structure of its own; or smear them β keep the seam lines in the model as strips of measured weakness, without individual rivets. The interactive figure below shows the same piece of hull both ways, with the computer's own accounting running live.
The discrete option founders on two rocks, and only one of them is the computer. A rivet is not a dot: it is a hole through two overlapping plates, a shank clamping them, friction between the laps. Capturing one rivet's pop-out costs on the order of a hundred small elements plus its own contact calculation. Three million rivets at that price is hundreds of millions of elements β three to four orders of magnitude beyond what this program's cluster (or most clusters) can crush through β against the 10,000 to 50,000 elements the whole-ship model is designed to run.
The second rock is the honest one: the data does not exist. The program's 3D Titanic is a visual model with no rivet geometry, and the historical record gives rivet strength as a statistical property β a distribution with large scatter driven by that slag β not a per-rivet map. A discrete model would be three million precisely placed guesses wearing the costume of precision. Simulation ethics has a name for that: false fidelity. The model would look more real and be less honest.
A mesh alone proves nothing. Before any historical structure is solved, the crush physics must earn trust on cases with known answers: small test articles β a box tube crushed end-on into a wall β compared against closed-form theories published in the crashworthiness literature in 1983β84. This is the validation ladder: no rung of complexity is attempted until the previous rung passes. A first coarse test typically reads high against theory, and that is the part of engineering culture this paper most wants to teach: a surprising first number is not a failure β it is a diagnosis. Each gap between measurement and theory must be understood and priced (a short tube develops fewer folds; a fast test adds dynamic overshoot; a coarse mesh stiffens folds) before the model advances a rung.
Strip away the software and finite-element analysis is one idea from physics and one idea from arithmetic. The physics idea: a structure at rest sits where its stored energy is lowest, like a ball at the bottom of a bowl. Write that stored energy as a formula β step 2 of the figure below: the "spring" energy of every element, minus the work the applied forces would do β and "the bottom of the bowl" becomes an equation: the point where every internal push exactly balances every external one. For a real mesh that is not one equation but hundreds of thousands, all coupled, because every element leans on its neighbors.
The arithmetic idea is how the computer finds that bottom, and it is humbler than most people expect β step 3: guess a deformed shape, measure the leftover unbalanced force the guess leaves behind, use the local stiffness to correct the guess, and repeat. That loop is Newton's method, and its signature is dramatic: once a guess is close enough, each pass roughly squares the error that is left. Squaring sounds like it should make the error bigger, and it would β if the error were bigger than one. By that stage it is a fraction, and squaring a fraction drives it down hard: 10% becomes 1%, and 1% becomes 0.01%. So an imbalance of hundreds of percent collapses to a fraction of a percent in a handful of corrections. Engineers call that curve "relaxation" for the right reason: it is the structure being allowed, iteration by iteration, to settle into the shape the physics demands β and in step 4 you can watch it: a lattice of nodes and springs jiggling its way downhill in energy until the stored energy bottoms out. Step 1 in the figure animates the process and shows it's result β a test article mid-crush, colored by accumulated plastic strain: red where the metal has permanently folded, because the "spring" or "elastic" nature or deformation range of the metal has been overcome, and it has entered the permanent, "plastic" regime, and blue where it is still elastic; that quantity, not stress or load, as in the new resting state post-crush, the load imbalances have all been resolved, is what visually separates crushed metal from merely loaded metal, because stress saturates at the material's flow strength once metal yields.
| Model every rivet | Smear the seams | |
|---|---|---|
| Elements, whole ship | ~300,000,000+ | 10,000β50,000 |
| Contact problems | ~3,000,000 | dozens |
| Memory | hundreds of GB | a few GB |
| Runtime, one compute node (order-of-magnitude engineering accounting) | years-to-centuries class | hours-to-days class |
| Input data honesty | 3M per-rivet guesses (only statistical data exists) | seam strength calibrated from published rivet tests |
| Individual rivet events | yes | no β stated lower bound on local realism |
| Failure mode (seams weaker than plate) | yes | yes |
| Reproducible & auditable | practically never rerun | every run re-runnable, ledgered |
Notice what the smeared column does not give up: the failure mode. The seams remain the weak paths, at the measured strength, in the measured places. What it gives up is local theater β no individual rivet pops, no seam unzipping rivet-by-rivet, and the rivet-to-rivet scatter that slag creates collapses into one average with an uncertainty band. The study's fidelity contract records this in exactly those words: a smeared seam is a lower bound on local realism, and the paper built on it must say so plainly, because the rivet mechanism is what the historical comparison turns on.
The Titanic crash/crush model is tractable because it smears its rivets in a way the evidence can actually support: as measured seam weakness, not as three million individually invented parts. The discrete alternative costs four orders of magnitude more computer and is still a guess as to the accurate arrangement of the rivets, without the detailed engineering blueprints of the ship. The smear keeps the failure mode, fits the machine, stays auditable, and carries both its price tag (a stated lower bound on local realism) and its tripwire (a sensitivity test that can overturn it). That is what a good simulation decision looks like from the inside: not the most realistic model in terms of atom-level accuracy, but still an honest one in that the method is proven to generate realistic end-state results.
The measurement the preceding sections were written ahead of has now been run, on the modeling decision exactly as priced above. The forward 60 metres of hull β meshed, plated, decked, bulkheaded, seams smeared per Β§3 β was driven into a rigid ice face at 22.5 knots, with the remaining 209 metres of ship riding in as 52,000 tonnes of momentum behind it. Nothing about the outcome was prescribed: the solver steps the collision forward a fraction of a millisecond at a time, and the bow does whatever the steel and the arithmetic make it do. The apparatus lives in Β§8; this section is what it said.
It folds. The film below is the solved run played back at real geometry, coloured by the same accumulated plastic strain Fig. 6 taught: blue is metal that is merely loaded and would spring back; orange and yellow is metal that has folded for good.
Twenty-four and a half metres β 80 feet β of bow consumed, in under four seconds. Wilding said "80 or perhaps 100 feet." The measurement lands on the lower edge of his band and stops seven and a half metres short of bulkhead B at the 32-metre station. On the question he was actually asked, the 1912 estimate and the 2026 simulation agree.
Two details the testimony could not have supplied. First, the deceleration is survivable: about a third of a gravity, sustained for the four seconds of the crush, with a brief spike near 0.9 g in the first hundredth of a second as the stem takes the ice. That is a hard bus stop, not a wall β nobody aft of the damage is killed by the stopping itself. Wilding's grim aside about the firemen is nonetheless correct, and the film shows why: it is not the deceleration that kills them, it is that the first 24 metres of the ship, where they berthed and worked, ceases to exist. Second, the ship rebounds: peak intrusion is 24.5 m, but roughly 2.8 m of that is elastic β the bow springs partway back as the stored energy releases. Peak intrusion is what determines whether a bulkhead is reached, so it is the number quoted against Wilding.
A ship's bow is not a steel box; it is plating stiffened by a dense grid of frames, stringers and web plates that the model does not resolve individually. Their contribution enters as one number β a smeared framing factor multiplying the plating's effective stiffness. The run above uses 1.5. That choice is not measured, and the answer moves with it β so it was swept, three arms run concurrently across the program's cluster:
| Framing factor | Bow crushed | Mean crush force | Reaches bulkhead B (32 m)? |
|---|---|---|---|
| 1.0 β bare plating | 40.0 m | 86 MN | yes β she does not come in |
| 1.5 β the reported run | 24.5 m | 145 MN | no β 7.5 m to spare |
| 2.0 β heavily framed | 18.1 m | 193 MN | no β 14 m to spare |
So the study does not independently prove Wilding right. It establishes something more useful and more checkable: stopping the ship inside 80β100 feet requires a mean crush force of 118β148 MN, and a structural framing (stringers, etc.) of the bow of an ordinary merchant ship delivers it. The reported arm produces 145 MN, at the top of that window. A bare unframed shell produces 86 MN and fails the test outright. Wilding's estimate is not a lucky guess; it is the answer a correctly-stiffened bow gives, and the sweep is what pins that down. Whether Titanic's actual forward framing was worth a factor of 1.5 is a question for her construction drawings β which is precisely the check this parameter still owes, and it is now the single largest open item in the study.
"Stops before bulkhead B" is a clean sentence, and the first version of the figure below drew it as a clean line: everything forward of the crush destroyed, everything aft pristine. That was wrong, and checking it changed the conclusion. Reading the plastic strain along the model's seam strips β the smeared rivet rows of Β§3, doing exactly the job they were built for β shows heavy straining, around 7% mean permanent strain, continuing to about 30 metres, well beyond the 24.5 metres of outright crushing. The boundary is sharp when it comes: at the 32-metre station the mean seam strain collapses to 1.7%. But that boundary is at bulkhead B's own station, not comfortably forward of it. The conservative reading is therefore not "compartment 1 floods" but compartments 1 and 2 both flood.
Which raises Wilding's real claim. He did not say the bow would be undamaged; he said the ship would have come in. So: flood the damaged compartments and see whether she stays up. A screening hydrostatic calculation floods each forward compartment in turn, adds the water as weight, finds the new sinkage and trim β then asks the question that actually sank her: does the tilted waterline reach the top of the aftmost flooded bulkhead? If it does, water spills into the next compartment and the sequence becomes unstoppable.
| Flooded back to | Compartments open | Water aboard | Bow-down trim | Margin at bulkhead top |
|---|---|---|---|---|
| bulkhead B (32 m) | 2 | 1,160 t | 0.93 m | +5.69 m β floats easily |
| bulkhead C (48.8 m) | 3 | 2,620 t | 1.89 m | +5.18 m β floats |
| bulkhead D (65.5 m) | 4 | 4,710 t | 3.01 m | +4.64 m β floats |
| bulkhead E (83.8 m) | 5 | 7,790 t | 4.30 m | +1.16 m β the margin collapses |
Read the last column downward. Flooding two compartments β the measured damage β leaves nearly six metres of bulkhead standing clear of the water. Even flooding double the measured damage, back to bulkhead D, still leaves 4.6 metres. The margin holds, and then between the fourth and fifth compartment it falls off a cliff β and that cliff is the historical record: Titanic was designed to float with four compartments open, and the night she sank the collision opened five. This screen was not tuned to reproduce that boundary; it recovers it anyway, which is the self-check that earns it some of the credit it needs on the counterfactual.
The head-on collision crushes 24.5 metres of bow, kills everyone forward of the second bulkhead, and stops the ship in under four seconds at a third of a gravity. Two compartments flood. She floats with more than five metres of bulkhead in hand, and would still float on twice the damage. Fourteen hundred people who died in the water are, in this counterfactual, standing on a wrecked but floating ship β which is exactly what Edward Wilding told the court in 1912.
| Wilding, 1912 | This study (1.5Γ framing) | |
|---|---|---|
| Bow crushed | 80β100 ft (24.4β30.5 m) | 24.5 m β his lower bound |
| Time to stop | βthree or four seconds, five perhapsβ | 3.9 s |
| Mean crush force | 107β133 MN (implied by his energy arithmetic) | 145 MN, on our sourced 118β148 MN window |
| Deceleration | ~0.25 g (his motor-car analogy) | 0.3 g sustained |
| Damage extent | stops before the second bulkhead | stops 7.5 m short of bulkhead B |
Everything in this section is machinery. It is placed last deliberately: a reader who wants the answer should not have to walk through the apparatus to reach it, and a reader who doubts the answer should find the apparatus complete.
Runs execute on a self-managed three-node Kubernetes cluster (k3s), built for this program: three rented virtual servers, eight cores and 22 GB of usable memory each, at a flat $82.50 per month for the whole cluster. Measured latency between nodes is half a millisecond. Each node carries a labelled mount β one for data intake, one for finite-element work, one for crash β so a pipeline stage lands on the machine that owns that kind of work.
The three arms of Β§7's framing sweep ran as three Kubernetes Jobs, one per node, simultaneously β six solver threads each, identical container image, identical deck but for the one varied parameter. That is the cluster's actual value here and it is worth being precise about it: not a faster single run β three whole runs in the time of one. Explicit crash solvers of this size parallelize poorly across machines (the half-millisecond hop is slower than the calculation it would coordinate), so the cluster buys throughput, not speed. A parameter sweep is exactly the shape of problem that turns into.
The reported run's energy books close to within 4.2%, with hourglass energy accounted separately rather than hidden inside the total β the audit habit Β§4's callout promised, kept. The crush distance itself was, at first, obtained wrongly, and the error is instructive enough to publish. The intuitive route is to convert the ship's remaining kinetic energy into a speed and integrate that speed into a distance. It overstates the answer β by 31% on the stiffest arm β because a crushing structure is ringing, and the vibration of thirty thousand elements counts as kinetic energy without moving the ship anywhere. The correct channel is momentum: internal motions cancel in the sum, so momentum divided by mass is the ship's actual velocity. A second, subtler version of the same mistake survived even that fix β taking the magnitude of the momentum rather than its sign, so that the elastic rebound after the stop was integrated as more forward travel instead of less, inflating the crush by a further 2.8 m on the reported arm. Both were caught the same way: by comparing the reduced number against the geometry visible in the film in Fig. 7. When a derived number and a picture of the same event disagree, the picture is usually right.
Every run in this paper is defined by a generated input deck under version control, executed by a pinned container image, on a labelled cluster node, with its reduction script committed alongside. Each modelling decision carries a row in the program's fidelity contract recording its value, its source, its measurement tier (measured / historical / assumed / decision) and the condition that would overturn it. The failed tilted-face runs of Β§7 are retained with their ledgers rather than deleted; a negative result that cost three node-hours is still evidence.
Edward Wilding was Harland & Wolff's senior naval architect for calculations β the man whose department computed the Olympic-class ships' stability, subdivision and strength in the first place. At the British inquiry he produced four distinct pieces of quantitative reasoning, and they are worth setting out plainly, because one of them is the claim this paper measures and the other three are the 1912 ancestors of methods used elsewhere in it. Everything quoted below is verbatim from the inquiry transcript.
No worked calculation for the head-on scenario was entered into evidence β what the transcript preserves is an engineer reasoning aloud from numbers he clearly held. The examiner supplied the frame at Q.20266: "a body weighing 50,000 tons moving at the rate of 22 knots an hour." The kinetic energy of that body is about 1.07 million foot-tons. Absorbing it over Wilding's stated 80 to 100 feet of crushing demands a mean resistance of 10,700β13,400 tons-force β 107β133 MN. That is the identical energy-over-distance arithmetic Β§7 runs in reverse (our window, from the slightly different sourced displacement and speed, is 118β148 MN), and his implicit judgment β that a liner's bow structure crushes at forces in that range β came from the shipyard's own structural knowledge and from precedent he cited directly: the Arizona, which rammed an iceberg at speed in 1879, telescoped her bow, and steamed into port. Asked whether the ship would have "telescoped herself" (Q.20283β20284): "Yes, up against the icebergβ¦ that is what happened in the 'Arizona.'"
His kinematics were explicit and internally consistent. At Q.20280: "As it would take a considerable length, 80 or 100 feet to bring up, it is not a shock, it is a pressure that lasts three or four seconds, five seconds perhaps." Under uniform deceleration the stopping time is 2s/v β 80 to 100 ft at 22Β½ knots gives 4.3 to 5.4 seconds, exactly his band. And his calibration of the deceleration's severity is the transcript's best line, Q.20282: "100 feet will pull up a motor car going 22 miles an hour without shooting you out of the front." That analogy encodes roughly a quarter of a gravity. The measured run in Β§7 says 0.3 g sustained. Every check this program can now run β crush distance, stopping time, mean force, deceleration β lands inside the bands he stated from the witness box.
This one he did compute, and stated the method in full (Day 19, Q.20422). Working backwards from the flooding: the evidence fixed how high the water stood roughly 40 minutes after the collision, and his flooding plans converted that state to a volume β "about 16,000 tons of water had found their way into the vessel." The vertical position of the damage gave the driving head: "the head would be about 25 feet." Water under a 25-foot head enters at a speed set by orifice flow (the Torricelli relation, β2gh, discounted for real openings); dividing the required inflow rate by that speed β "making allowance for the obstruction due to the presence of decks and other things" β gives the aggregate open area: "somewhere about 12 square feet." Spread over the damage length, "the average width of the holeβ¦ is only about three-quarters of an inch." The reconstruction is arithmetic: 16,000 tons in 40 minutes is about 230 cubic feet per second; a 25-foot head gives ~40 ft/s ideal inflow, ~24 ft/s with a standard discharge coefficient; 230/24 β 10 square feet, and his stated allowances carry it to 12. A century before anyone photographed the wreck's bow, hydraulics told him the "300-foot gash" was actually a scatter of slits β which the wreck surveys later confirmed.
Wilding's third body of calculation (Q.20286β20345) is the direct ancestor of Β§7's flooding table: flood a chosen set of compartments on paper, deduct permeability β his stated assumptions were 5% of any space occupied by structure, one-quarter of cargo spaces occupied by "water-excluding materials," one-sixth for stores and mails β find the ship's new sinkage and trim, and ask whether the tilted waterline tops the aftmost flooded bulkhead. The runs were computed at the yard in Belfast during the inquiry, directed by wire ("I then told them at Belfast by wire to flood No. 2 compartment, also the forepeak, and see what happened"), with the departure draught scaled from the Olympic's measured consumption history. His condition-by-condition plans showed the historical five-compartment wound topping bulkhead E β the cascade β while any four stayed below the tops: the four-floats/five-sinks boundary that Β§7's screening calculation independently reproduces.
Pressed on whether the hull broke apart at the surface, Wilding offered "the rough calculation I was able to make as to the probable stress arising when the ship foundered as she got her stern out of the waterβ¦ It showed the stress in the ship was probably not greater than she would encounter in a severe Atlantic storm" (Q.20258β20264) β a hull-girder bending estimate against the design sea state, from which he concluded she sank intact. The wreck, found in two pieces, proved this the only one of his four calculations that failed β a useful caution, since it is also the only one whose input (the loading of a half-flooded, partially-raised hull) he could neither observe nor bound. The other three had a measurement or a precedent anchoring one end.
What makes these four worth an appendix is not nostalgia. Each is the same discipline this paper argues for: an energy or continuity budget, a stated assumption with its number attached, and β where he had one β an external anchor. He did it with a slide rule and a cable line to Belfast. The difference a century makes is not the method; it is that the crushing resistance he had to estimate from the Arizona is now a quantity a cluster can measure overnight.
All experimental software setup and coordination, as well as validation and experimental runs, were orchestrated by Aaron Kushner using natural language requests and delivered judgements to his research workbench built on the Claude Code harness, running Opus or Fable depending on the work. Crush simulations computed with CalculiX on project workstation hardware during the validation arc; the Β§7 collision runs computed with OpenRadioss on the program's self-managed three-node k3s cluster. Figures rendered from the solved cases' own files β the animation in Fig. 7 and the profile in Fig. 8 by committed scripts, with no manual retouching; interactive figures drafted by a delegated GPT seat under pinned specifications and judged before inclusion; manuscript drafted and revised with Claude in Aaron Kushner's research harness. Every historical and metallurgical number was verified at its named source before use. Reported numerical results were re-derived from the time histories at the time of writing rather than quoted from earlier notes β a check that caught the rebound-sign error described in Β§8.3.