{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Statement\n\nLet $\\Omega \\subset \\R^d$, $d \\in \\set{2, 3}$, be a polygonal or polyhedral domain.\nDivide it into $N$ non-overlapping subdomains $\\Omega_i$ of diameter about $H$, triangulated by a quasi-uniform mesh of size $h$.\nLet $\\rho \u003e 0$ be constant on each $\\Omega_i$.\nConsider the [[finite element|98GZ9DVHTA]] discretization of $-\\nabla \\cdot (\\rho \\nabla u) = f$ by continuous piecewise linear functions, with homogeneous Dirichlet conditions on part of $\\partial \\Omega$.\nLet $S = \\sum_i R_i^T S_i R_i$ be the interface [[Schur complement|6HWFBXYPZP]], where $R_i$ restricts interface values to $\\partial \\Omega_i$ and $S_i$ is the local Schur complement of $\\Omega_i$.\nLet $D_i$ be diagonal weight matrices with $\\sum_i R_i^T D_i R_i = I$.\nLet $Z_i$ have columns spanning the null space of $S_i$ (the constants for a floating subdomain), and let $R_0^T$ have the columns $R_i^T D_i Z_i$.\nWith $Q_0 = R_0^T (R_0 S R_0^T)^{-1} R_0$, the *balancing domain decomposition* preconditioner is\n$$M^{-1} = Q_0 + (I - Q_0 S) \\Bigl( \\sum_{i=1}^{N} R_i^T D_i S_i^{\\dagger} D_i R_i \\Bigr) (I - S Q_0),$$\nwhere $S_i^\\dagger$ is a generalized inverse of $S_i$.\nChoose the weights $D_i$ from the values of $\\rho$ as in the standard theory.\nThen the [[condition number|AB3S6MHJ8X]] of $M^{-1} S$ satisfies\n$$\\kappa(M^{-1} S) \\le C \\Bigl( 1 + \\log \\frac{H}{h} \\Bigr)^2,$$\nwith $C$ independent of $h$, $H$, $N$ and the values of $\\rho$.\n\n## Remarks\n\nThe local operator $\\sum_i R_i^T D_i S_i^\\dagger D_i R_i$ is the Neumann–Neumann preconditioner: each $S_i^\\dagger$ solves a Neumann problem on $\\Omega_i$.\nA Neumann problem on a subdomain that does not touch the Dirichlet boundary is solvable only if its right-hand side is orthogonal to the constants.\nThe coarse correction $Q_0$ \"balances\" the residual so that these compatibility conditions hold, and at the same time it passes global information between all subdomains.\nThe proof bounds the energy of the weighted average of local functions by trace and discrete harmonic extension estimates, which bring in the factor $(1 + \\log(H/h))^2$.\n\nThe bound depends on $H/h$ only, so refining the mesh and adding subdomains in proportion keeps the number of [[conjugate gradient|AFXZGQB4EN]] iterations nearly constant.\nThe method was introduced by Jan Mandel in 1993.\n\n## Explanations\n\n### L1 human\n\nBalancing domain decomposition is a way to precondition the interface problem of the [[Schur complement method|R997ZAD141]].\nEach piece of the domain solves a local problem with free (Neumann) edges, and the results are averaged on the interfaces.\nA small global problem fixes the parts that the local solves cannot see.\nThe theorem says the number of iterations grows only like a squared logarithm of the number of mesh cells per subdomain.\n\n### L2 human\n\nThe plain Neumann–Neumann method has no coarse space and scales poorly with the number of subdomains.\nBDD adds a coarse space, and the later BDDC method uses a different coarse space built from primal constraints.\nIts condition number bound is of the same polylogarithmic type as that of FETI methods, and in fact the two families are closely related.\nIt is one of the [[domain decomposition methods|AN054RHT1K]] that are robust with respect to large jumps of the coefficient across subdomains.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "AN054RHT1K",
      "KE98SW3SBD"
    ],
    "kind": "statement",
    "msc": [
      "65N55",
      "65F08",
      "65F10"
    ],
    "name": "Balancing domain decomposition",
    "role": "theorem",
    "same_as": {
      "wikidata": "Q4850008",
      "wikipedia": "Balancing domain decomposition method"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Balancing_domain_decomposition_method"
      }
    ],
    "tag": "X8MCVW56QP",
    "uses": [
      "R997ZAD141",
      "6HWFBXYPZP",
      "KE98SW3SBD",
      "AB3S6MHJ8X",
      "98GZ9DVHTA",
      "B4TTNHSTRX"
    ]
  },
  "kind": "statement",
  "link": "https://tamnd.github.io/math2/node/X8MCVW56QP/",
  "links": [
    {
      "field": "about",
      "target": "AN054RHT1K"
    },
    {
      "field": "about",
      "target": "KE98SW3SBD"
    },
    {
      "field": "uses",
      "target": "R997ZAD141"
    },
    {
      "field": "uses",
      "target": "6HWFBXYPZP"
    },
    {
      "field": "uses",
      "target": "KE98SW3SBD"
    },
    {
      "field": "uses",
      "target": "AB3S6MHJ8X"
    },
    {
      "field": "uses",
      "target": "98GZ9DVHTA"
    },
    {
      "field": "uses",
      "target": "B4TTNHSTRX"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/X8MCVW56QP.md",
  "msc": [
    "65N55",
    "65F08",
    "65F10"
  ],
  "name": "Balancing domain decomposition",
  "prov": null,
  "role": "theorem",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/X8M/X8MCVW56QP.md",
  "status": null,
  "tag": "X8MCVW56QP",
  "uri": "m2://X8MCVW56QP",
  "url": "https://tamnd.github.io/math2/wiki/balancing-domain-decomposition/",
  "writing": {
    "tag": "X8MCVW56QP",
    "kind": "statement",
    "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
      }
    ]
  }
}
