BandSPD SOE: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
(Created page with '{{CommandManualMenu}} This command is used to construct a BandSPDSOE linear system of equation object. As the name implies, this class is used for symmetric positive definite ma...')
 
No edit summary
Line 16: Line 16:
THEORY:
THEORY:


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 '''symmmetric banded matrix''' if all matrix elements are zero outside a diagonally bordered band whose range is determined by constants ''k'':  


:<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 \quad\mbox{ or }\quad j>i+k; \quad k \ge 0.\,</math>


The quantities ''k''<sub>1</sub> and ''k''<sub>2</sub> are the ''left'' and ''right'' ''half-bandwidth'', respectively. The ''bandwidth'' of the matrix is ''k''<sub>1</sub>&nbsp;+&nbsp;''k''<sub>2</sub>&nbsp;+&nbsp;1 (in other words, the smallest number of adjacent diagonals to which the non-zero elements are confined).
:<math>a_{i,j} = a_{j,i}\,</math>


The ''bandwidth'' of the matrix is ''k''&nbsp;+&nbsp;''k''&nbsp;+&nbsp;1.


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


For example, a symmetric 6-by-6 matrix with a right bandwidth of 2:
For example, a symmetric 6-by-6 matrix with a right bandwidth of 2:

Revision as of 01:19, 9 March 2010




This command is used to construct a BandSPDSOE linear system of equation object. As the name implies, this class is used for symmetric positive definite matrix systems which have a banded profile. The matrix is stored as shown below in a 1 dimensional array of size equal to the (bandwidth/2) 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 BandSPD



NOTES:


THEORY:

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

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

The bandwidth of the matrix is k + k + 1.


For example, a symmetric 6-by-6 matrix with a right bandwidth of 2:

<math>

\begin{bmatrix}

A_{11} & A_{12} & A_{13} &   0  & \cdots & 0 \\
     & A_{22} & A_{23} & A_{24} & \ddots & \vdots \\
     &        & A_{33} & A_{34} & A_{35} & 0 \\
     &        &        & A_{44} & A_{45} & A_{46} \\
     & sym    &        &        & A_{55} & A_{56} \\
     &        &        &        &        & A_{66}

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

<math>

\begin{bmatrix}

A_{11} & A_{12} & A_{13} \\
A_{22} & A_{23} & A_{24} \\
A_{33} & A_{34} & A_{35} \\
A_{44} & A_{45} & A_{46} \\
A_{55} & A_{56} & 0 \\
A_{66} & 0 & 0

\end{bmatrix}. </math>


<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