{
  "_readme": [
    "Index of the shared diagrams in this folder.",
    "",
    "This exists for a different reason from images/images.json. That registry",
    "is about provenance - where a picture came from and whether you may use",
    "it. These are all your own work, so provenance is not the question. This",
    "index is about FINDABILITY: the folder is deliberately flat, because a",
    "diagram wanted by both CFD and heat transfer has no correct topic",
    "subfolder, and a flat folder of a hundred files needs something you can",
    "search. Grep this file rather than opening SVGs one at a time.",
    "",
    "convert.bat reports diagrams with no entry, entries whose file has gone,",
    "and any diagram a deck uses that is not listed - which is the only reason",
    "an index like this is still accurate a year later.",
    "",
    "FIELDS",
    "  alt      What the diagram SHOWS, for someone who cannot see it. A real",
    "           sentence describing the picture, not its purpose. This is also",
    "           what makes the index searchable, so name the things in it.",
    "  caption  The short line printed under the figure. Says what it MEANS,",
    "           where the alt says what it looks like.",
    "",
    "  Both END WITH A FULL STOP. Not because they are always sentences, but",
    "  because sooner or later one of them is two sentences, and then the first",
    "  needs terminating - which leaves the second looking odd unless everything",
    "  else is punctuated too. Deciding once removes the question.",
    "",
    "A SERIES shares a filename prefix and a number - cfd-history-1, -2, -3.",
    "They are built to be shown in order and deliberately share a box, a",
    "layout and a colour assignment, so keep them consistent if you edit one.",
    "",
    "THE CONSERVATION PAIR IS WRITTEN IN QUANTITIES, NOT RATES. The arrows carry",
    "\"mass in\" and \"momentum in\", not flow rates, so what they bracket is a",
    "\"change of ... inside\" rather than a \"rate of change\". Mixing a quantity",
    "with a rate in one statement is the confusion a first pass should avoid. A",
    "rate version - mass flow in and out, giving dm/dt - is the same picture one",
    "step later and would be a separate pair of diagrams, not an edit to these.",
    "",
    "THIS INDEX IS A RECORD, NOT THE SOURCE. A deck still writes its own alt",
    "text and caption in the markdown; nothing here is injected at build time.",
    "That is on purpose: build.html cannot read a sibling file off the disk, so",
    "pulling the text from here would make the browser builder and the command",
    "line produce different decks from the same markdown, and those two being",
    "identical is a guarantee worth more than the duplication costs. Keep them",
    "in step by hand, or change the wording here when you improve it in a deck."
  ],
  "diagrams": {
    "cfd-history-1-separate.svg": {
      "alt": "Two separate circles, one labelled empirical and one labelled theory, with nothing between them.",
      "caption": "Two separate trades."
    },
    "cfd-history-2-overlap.svg": {
      "alt": "The same two circles, now overlapping, with CFD occupying the lens-shaped region where they meet.",
      "caption": "CFD arrives in the overlap."
    },
    "cfd-history-3-three-ways.svg": {
      "alt": "Empirical, theory and CFD as three circles arranged in a triangle, each joined to the other two by a double-headed arrow.",
      "caption": "Three fields, each informing the others."
    },
    "cfd-stack.svg": {
      "alt": "Seven stacked horizontal bars, each naming a layer and what it provides. From the top: engineering application, the problem that needs solving; CFD software, the interface to solve the problem; physical models, the equations that describe the flow; discretisation, the method that turns the equations into algebra; solution algorithms, the method that solves the algebra; parallel computing, the code that runs the solution on many processors; hardware, the chips that run the code. Brackets on the right group them: the top two in terracotta as engineering, the next two in blue as physics and mathematics, the bottom three in green as computing. The top bar has a heavier outline.",
      "caption": "The CFD stack: every answer rests on six layers the engineer never sees."
    },
    "cfd-workflow-1-pipeline.svg": {
      "alt": "Eight green boxes in a column joined by downward arrows: create geometry, mesh geometry, define physics (energy, turbulence, species), define boundary conditions, define initial conditions, select solver and settings, run solver (and wait), post-process results.",
      "caption": "The steps of running a CFD simulation."
    },
    "cfd-workflow-2-holistic.svg": {
      "alt": "Six boxes in a column joined by downward arrows: determine the aim, determine the modelling strategy, actually do the CFD (the only green box), analyse the results, check the results are right, perform alternative tests. An arrow loops from the last box back up to the modelling strategy.",
      "caption": "Running the simulation is one step of six in a CFD study."
    },
    "cfd-workflow-3-nested.svg": {
      "alt": "The six-step study on the right and the eight-step simulation pipeline on the left, with two faint lines fanning out from the green 'actually do the CFD' box to the top and bottom of the pipeline, showing that the whole pipeline sits inside that one step.",
      "caption": "The whole simulation pipeline is one box in the study."
    },
    "cfd-geometry-rocket-fluid-domain.svg": {
      "alt": "A grey three-dimensional rocket beside a cutaway blue air enclosure with an identical rocket-shaped cavity. An arrow says to create an enclosure and subtract the rocket. The air is labelled as the volume to mesh, and the rocket surface as the wall boundary.",
      "caption": "To predict drag, mesh the air surrounding the rocket. The rocket’s surface forms a boundary of the fluid domain."
    },
    "cfd-residuals-convergence.svg": {
      "alt": "A logarithmic CFD residual plot with seven distinctly coloured curves falling over successive iterations and levelling off at separated magnitudes. Each curve is labelled beside its endpoint. Continuity stays highest and energy falls lowest.",
      "caption": "Residuals fall as the solver iterates, then level off at different magnitudes."
    },
    "conservation-1-mass.svg": {
      "alt": "A control volume drawn as a dashed blob, with an arrow bringing mass in across the boundary on the left and an arrow carrying mass out across it on the right, and the change of mass inside written in the middle.",
      "caption": "Mass can only change by crossing the boundary."
    },
    "conservation-2-momentum.svg": {
      "alt": "The same control volume with momentum crossing the boundary in on the left and out on the right, three further arrows pressing inward on the boundary to represent forces, and the change of momentum inside written in the middle.",
      "caption": "Momentum has a third route in: forces on the boundary."
    }
  }
}
