mesh_bandwidth, a Python code which computes the geometric bandwidth of a mesh.
The user specifies an element file, containing the indices of the nodes that make up each element. Examples of such a file include the order 3 and order 6 triangulation files, but any order of element may be used.
Not only may any element type be used, but the geometric region may be of any spatial dimension.
The program reads the element information and computes the geometric bandwidth M as
M = ML + 1 + MUwhere ML is the lower bandwidth, namely, the maximum value over all nodes I of the difference (I-J), taken over all nodes J that share an element with node I. The upper bandwidth is the maximum value of (J-I) under the same conditions.
The geometric bandwidth M is the linear algebraic bandwidth of the adjacency matrix of the mesh, where I and J are considered to be adjacent if there is some element that includes both nodes.
The geometric bandwidth is of interest since it is the bandwidth of the finite element matrix associated with the mesh, when a scalar quantity is being approximated and there is a single unknown for every node, and the unknowns have the same numbering as the nodes.
The information on this web page is distributed under the MIT license.
mesh_bandwidth is available in a C version and a C++ version and a Fortran77 version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.
triangulation_order3, a directory which contains a description and examples of order 3 triangulations.
triangulation_order6, a directory which contains a description and examples of order 6 triangulations.