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...')
 
mNo edit summary
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{CommandManualMenu}}
{{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 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:
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 DPBSV and DPBTRS are used. The following command is used to construct such a system:


{|  
{|  
| style="background:yellow; color:black; width:800px" | '''system BandSPD'''
| style="background:limegreen; color:black; width:800px" | '''system BandSPD'''
|}
|}


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>


:<math> y^T A y  != 0 \,</math> for all non-zero vectors ''y'' with real entries (<math>y \in \mathbb{R}^n</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:
Line 48: Line 51:
</math>
</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: <span style="color:blue"> fmk </span>
Code Developed by: <span style="color:blue"> fmk </span>

Latest revision as of 08:42, 10 June 2016




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 DPBSV and DPBTRS are used. The 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>
<math> y^T A y  != 0 \,</math> for all non-zero vectors y with real entries (<math>y \in \mathbb{R}^n</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>



Code Developed by: fmk