Skip to main content

Banded matrix and skyline storage

Short answer

Banded storage stores only the diagonal and upper b−1 terms per row using symmetry, reducing memory to n×b. Example: 100-node bar with b=2 needs only 200 numbers instead of 10000. Skyline storage stores each column from first nonzero to diagonal, saving more memory when bandwidth varies; renumbering minimizes profile.

Explain with relevant examples how banded matrix and skyline storage scheme optimize the memory.

In FEM the stiffness matrix [K][K] is symmetric, sparse and has non-zero terms only near the diagonal. Storing the full n×nn\times n matrix wastes memory.

Banded storage

Only the band is stored: the diagonal and the b−1b-1 upper terms of each row (using symmetry). Half-bandwidth b=(max node difference in an element+1)×b=(\text{max node difference in an element}+1)\times dof per node.

Example: a bar of 100 nodes (1 dof), elements connect nodes ii and i+1i+1, so b=2b=2. Full storage =1002=10000=100^2=10000 numbers; banded storage =100×2=200=100\times2=200 numbers.

 Full 5x5 (symmetric)        Banded (b=2)
 a11 a12  0   0   0          a11 a12
 a12 a22 a23  0   0          a22 a23
  0  a23 a33 a34  0   ->     a33 a34
  0   0  a34 a44 a45         a44 a45
  0   0   0  a45 a55         a55  *

Skyline (variable band / profile) storage

Each column is stored from the first non-zero entry down to the diagonal, so the band height varies with column. A pointer array stores the diagonal positions.

Example: column heights 1, 2, 2, 3, 1 give 9 stored terms against 15 for the full upper triangle of a 5×55\times5 matrix.

Skyline storage stores fewer terms than a constant band when a few nodes have a large connectivity. Fill-in during elimination remains inside the skyline, so the factorisation also needs no extra storage. Node renumbering (e.g. reverse Cuthill-McKee) reduces the bandwidth and so the memory and operation count.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computational Techniques in Civil Engineering chapter 2 questions →