BandGeneral SOE: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:


NOTES:
NOTES:
convergence using this test usually impossible (even though solution might have converged).


----
----
Line 18: Line 16:
THEORY:
THEORY:


Formally, an ''n''&times;''n'' matrix ''A''=(''a''<sub>''i,j'' </sub>) is a '''band matrix''' if all matrix elements are zero outside a diagonally bordered band whose range is determined by constants ''k''<sub>1</sub> and ''k''<sub>2</sub>:  
An ''n''&times;''n'' matrix ''A''=(''a''<sub>''i,j'' </sub>) is a '''band matrix''' if all matrix elements are zero outside a diagonally bordered band whose range is determined by constants ''k''<sub>1</sub> and ''k''<sub>2</sub>:  


:<math>a_{i,j}=0 \quad\mbox{if}\quad j<i-k_1 \quad\mbox{ or }\quad j>i+k_2; \quad k_1, k_2 \ge 0.\,</math>
:<math>a_{i,j}=0 \quad\mbox{if}\quad j<i-k_1 \quad\mbox{ or }\quad j>i+k_2; \quad k_1, k_2 \ge 0.\,</math>

Revision as of 01:12, 9 March 2010




This command is used to construct a BandGeneralSOE linear system of equation object. As the name implies, this class is used for matrix systems which have a banded profile. The matrix is stored as shown below in a 1dimensional array of size equal to the bandwidth times the number of unknowns. When a solution is required, the Lapack routines are used. To following command is used to construct such a system:

system BandGeneral>



NOTES:


THEORY:

An n×n matrix A=(ai,j ) is a band matrix if all matrix elements are zero outside a diagonally bordered band whose range is determined by constants k1 and k2:

<math>a_{i,j}=0 \quad\mbox{if}\quad j<i-k_1 \quad\mbox{ or }\quad j>i+k_2; \quad k_1, k_2 \ge 0.\,</math>

The quantities k1 and k2 are the left and right half-bandwidth, respectively. The bandwidth of the matrix is k1 + k2 + 1 (in other words, the smallest number of adjacent diagonals to which the non-zero elements are confined).


and matrices are usually stored by storing the diagonals in the band; the rest is implicitly zero.

For example, 6-by-6 a matrix with bandwidth 3:

<math>

\begin{bmatrix}

B_{11} & B_{12} & 0      & \cdots & \cdots & 0 \\
B_{21} & B_{22} & B_{23} & \ddots & \ddots & \vdots \\
 0     & B_{32} & B_{33} & B_{34} & \ddots & \vdots \\
\vdots & \ddots & B_{43} & B_{44} & B_{45} & 0 \\
\vdots & \ddots & \ddots & B_{54} & B_{55} & B_{56} \\
0      & \cdots & \cdots & 0      & B_{65} & B_{66}

\end{bmatrix} </math> is stored as the 6-by-3 matrix

<math>

\begin{bmatrix}

0 & B_{11} & B_{12}\\
B_{21} & B_{22} & B_{23} \\
B_{32} & B_{33} & B_{34} \\
B_{43} & B_{44} & B_{45} \\
B_{54} & B_{55} & B_{56} \\
B_{65} & B_{66} & 0

\end{bmatrix}. </math>


Code Developed by: fmk