{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $u_t + F(u)_x = 0$ be a strictly [[hyperbolic system of conservation laws|XN081NCPF5]], with $F \\colon \\Omega \\to \\R^m$ smooth on an open set $\\Omega \\subseteq \\R^m$.\nAssume that every [[Riemann problem|GJWKX22VVE]] with states in $\\Omega$ close enough to each other has an entropy solution.\nLet $\\Lambda$ be an upper bound for the absolute values of the eigenvalues of $DF(u)$ on $\\Omega$.\nFix a space step $\\Delta x \u003e 0$ and a time step $\\Delta t \u003e 0$ with $\\Lambda \\Delta t \\le \\Delta x / 2$.\nSet $x_j = j \\Delta x$ for $j \\in \\Z$ and $t_n = n \\Delta t$ for $n \\ge 0$.\nFix a sequence $(\\theta_n)_{n \\ge 1}$ in $(0, 1)$.\n\nThe *Glimm scheme* defines an approximate solution $u^\\Delta$ of the initial value problem with data $u_0$ as follows.\n\n1. At $t = 0$, set $u^\\Delta(x, 0) = u_0(x_j)$ for $x_{j-1} \u003c x \\le x_j$.\n2. If $u^\\Delta(\\cdot, t_n)$ is constant on each cell $(x_{j-1}, x_j]$, then on $t_n \\le t \u003c t_{n+1}$ let $u^\\Delta$ be the exact solution of the Riemann problems at the points $x_j$.\n3. At $t = t_{n+1}$, set $u^\\Delta(x, t_{n+1}) = u^\\Delta(x_{j-1} + \\theta_{n+1} \\Delta x,\\, t_{n+1} - 0)$ for $x_{j-1} \u003c x \\le x_j$.\n\nWhen the $\\theta_n$ are chosen independently and uniformly at random, it is also called the *random choice method*.\n\n## Remarks\n\nThe bound $\\Lambda \\Delta t \\le \\Delta x/2$ is a [[Courant–Friedrichs–Lewy condition|FQVVNYV6N8]].\nIt ensures that waves from neighbouring points $x_j$ do not meet before time $t_{n+1}$.\nSo in step 2 the solution on the strip is exactly the union of the local Riemann solutions.\n\nGlimm proved that, if the total variation of $u_0$ is small enough, the total variation of $u^\\Delta(\\cdot, t)$ stays bounded uniformly in $\\Delta x$ and $t$.\nFor almost every random sequence $(\\theta_n)$, as $\\Delta x \\to 0$ with $\\Delta t / \\Delta x$ fixed, a subsequence of the approximations converges to a weak solution.\nT.-P. Liu later showed that any equidistributed sequence $(\\theta_n)$ gives convergence.\n\nExample: for the linear equation $u_t + a u_x = 0$ with $0 \u003c a$ and $a \\Delta t \\le \\Delta x/2$, the Riemann solution at $x_j$ moves the jump to $x_j + a(t - t_n)$.\nAt $t_{n+1}$, a cell takes its old value if $\\theta_{n+1} \\Delta x \u003e a \\Delta t$, and the value of its left neighbour otherwise.\n\nNon-example: step 3 with the cell average instead of a sampled value is not the Glimm scheme.\nIt is [[Godunov's scheme|43HZJ7DRT0]], which smears shocks over several cells, while sampling keeps them sharp.\n\n## Explanations\n\n### L1 human\n\nThe scheme replaces the data by steps, solves each jump exactly, and then resamples.\nSampling at random points means that a jump moves by a whole cell or not at all in each step.\nOn average it moves at the right speed, so shocks stay sharp and travel correctly.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "defines": "Y70AC2X30T",
    "kind": "definition",
    "msc": [
      "35L65",
      "65M06",
      "35L45"
    ],
    "name": "Glimm scheme",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Riemann_problem"
      }
    ],
    "tag": "5JQG4S5JVH",
    "uses": [
      "8RA7AMWSAF",
      "GJWKX22VVE",
      "XN081NCPF5"
    ]
  },
  "kind": "definition",
  "link": "https://tamnd.github.io/math2/node/5JQG4S5JVH/",
  "links": [
    {
      "field": "defines",
      "target": "Y70AC2X30T"
    },
    {
      "field": "uses",
      "target": "8RA7AMWSAF"
    },
    {
      "field": "uses",
      "target": "GJWKX22VVE"
    },
    {
      "field": "uses",
      "target": "XN081NCPF5"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/5JQG4S5JVH.md",
  "msc": [
    "35L65",
    "65M06",
    "35L45"
  ],
  "name": "Glimm scheme",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/5JQ/5JQG4S5JVH.md",
  "status": null,
  "tag": "5JQG4S5JVH",
  "uri": "m2://5JQG4S5JVH",
  "url": "https://tamnd.github.io/math2/wiki/glimm-scheme-definition/",
  "writing": {
    "tag": "5JQG4S5JVH",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
