{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nConsider a scalar [[conservation law|8RA7AMWSAF]] $u_t + f(u)_x = 0$ and a conservative scheme $u_j^{n+1} = u_j^n - \\lambda (F_{j+1/2} - F_{j-1/2})$ with $\\lambda = \\Delta t / \\Delta x$.\nLet $F^L_{j+1/2}$ be a low-order numerical flux, such as that of the [[upwind scheme|MTCRZC5QKT]].\nLet $F^H_{j+1/2}$ be a high-order one, such as that of the [[Lax–Wendroff method|YHZ9BCNDRZ]].\nFor flow from left to right, the smoothness ratio at $j$ is\n$$r_j = \\frac{u_j^n - u_{j-1}^n}{u_{j+1}^n - u_j^n},$$\nwith a fixed convention when the denominator is zero.\nA *flux limiter* is a function $\\varphi \\colon \\R \\to [0, \\infty)$ with $\\varphi(r) = 0$ for $r \\le 0$, used to define the limited flux\n$$F_{j+1/2} = F^L_{j+1/2} + \\varphi(r_j) \\left( F^H_{j+1/2} - F^L_{j+1/2} \\right).$$\n\n## Remarks\n\nTake $u_t + a u_x = 0$ with $a \u003e 0$ and $0 \\le \\nu \\le 1$, with upwind and Lax–Wendroff fluxes.\nThen Sweby's condition\n$$0 \\le \\varphi(r) \\le \\min(2r, 2) \\quad \\text{for } r \u003e 0$$\nmakes the scheme [[total variation diminishing|NX8RE9B72A]].\nIf moreover $\\varphi(1) = 1$ and $\\varphi$ is Lipschitz near $1$, the scheme is second-order accurate in smooth monotone regions.\nExample: the minmod limiter $\\varphi(r) = \\max(0, \\min(1, r))$ vanishes for $r \\le 0$, satisfies $\\varphi(r) \\le \\min(r, 1) \\le \\min(2r, 2)$ for $r \u003e 0$, and $\\varphi(1) = 1$.\nOther standard limiters are superbee $\\varphi(r) = \\max(0, \\min(2r, 1), \\min(r, 2))$ and van Leer $\\varphi(r) = (r + \\abs{r}) / (1 + \\abs{r})$.\nNon-example: the constant function $\\varphi \\equiv 1$ is not a flux limiter, because $\\varphi(r) \\ne 0$ for $r \\le 0$; it gives back the unlimited Lax–Wendroff scheme, which is not TVD.\nAt extrema $r_j \\le 0$, so the scheme reduces to the low-order scheme there.\n\n## Explanations\n\n### L1 human\n\nThe limiter is a dial between $0$ (use only the safe low-order flux) and about $1$ or $2$ (use the high-order correction fully or more).\nIts setting at each point depends on how smooth the solution looks there.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "defines": "NZ8XFNCKQW",
    "kind": "definition",
    "msc": [
      "65M08",
      "35L65"
    ],
    "name": "Flux limiter",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Flux_limiter"
      }
    ],
    "tag": "1RGPVZXVD9",
    "uses": [
      "8RA7AMWSAF",
      "MTCRZC5QKT",
      "YHZ9BCNDRZ",
      "NX8RE9B72A"
    ]
  },
  "kind": "definition",
  "link": "https://tamnd.github.io/math2/node/1RGPVZXVD9/",
  "links": [
    {
      "field": "defines",
      "target": "NZ8XFNCKQW"
    },
    {
      "field": "uses",
      "target": "8RA7AMWSAF"
    },
    {
      "field": "uses",
      "target": "MTCRZC5QKT"
    },
    {
      "field": "uses",
      "target": "YHZ9BCNDRZ"
    },
    {
      "field": "uses",
      "target": "NX8RE9B72A"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/1RGPVZXVD9.md",
  "msc": [
    "65M08",
    "35L65"
  ],
  "name": "Flux limiter",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/1RG/1RGPVZXVD9.md",
  "status": null,
  "tag": "1RGPVZXVD9",
  "uri": "m2://1RGPVZXVD9",
  "url": "https://tamnd.github.io/math2/wiki/flux-limiter-definition/",
  "writing": {
    "tag": "1RGPVZXVD9",
    "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
      }
    ]
  }
}
