BandGeneral SOE: Difference between revisions

From OpenSeesWiki
Jump to navigation Jump to search
(Created page with '{{CommandManualMenu}} This command is used to construct a BandGeneralSOE linear system of equation object. As the name implies, this class is used for unsymmetric matrix systems...')
 
mNo edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{CommandManualMenu}}
{{CommandManualMenu}}


This command is used to construct a BandGeneralSOE linear system of equation object. As the name implies, this class is used for unsymmetric 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:
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 DGBSV and SGBTRS are used. The following command is used to construct such a system:
 
 
 
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>:
 
:<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 ''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).
 
The banded storage scheme


{|  
{|  
| style="background:yellow; color:black; width:800px" | '''test NormUnbalance $tol $iter <$pFlag>'''
| style="background:limegreen; color:black; width:800px" | '''system BandGeneral'''
|}
|}


Line 21: Line 11:


NOTES:
NOTES:
* When using the Penalty method additional large forces to enforce the penalty functions exist on the right had side, making
convergence using this test usually impossible (even though solution might have converged).


----
----
Line 28: 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>

Latest revision as of 07:59, 9 June 2016




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 DGBSV and SGBTRS are used. The 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