node7.html

来自「htmdoc for html coding」· HTML 代码 · 共 778 行 · 第 1/2 页

HTML
778
字号
<H3><A NAME=SECTION03122300000000000000> Example 2: Non-symmetric matrix</A></H3><P><P><P>Consider the 12-th order  matrix given below (the values correspond to the the rows in the storage and not to the matrix coefficients)  constituting 3 pages:<P><DIV ALIGN=center><IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img7.gif"></DIV> <P><P><P><P>Here, each page contains a maximum of 12 words. Thus, we have:<P><UL><LI> NCODSA = -1 <LI> array <b> MUA3</b>:<DIV ALIGN=center><IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img8.gif"></DIV> <P> <LI> array <b> MUA4</b>:<DIV ALIGN=center><IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img9.gif"></DIV> <P> </UL><P><P>For the symmetric case we store the lower triangular part of matrix <b>A</b>  in a one-dimensional array MUA5<A NAME=578>&#160;</A>,as follows: for each variable <b>i</b>,we store all the coefficients <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img10.gif"> of the row, for <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img11.gif">,  (where <b>mc(i)</b> isthe smallest column index such that <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img12.gif">). These coefficients (zero or not) are ordered by increasing column index. The rows are then ordered in order of increasing variable in array MUA5.To maintain the correspondence between    MUA5  and <b>A</b>, a pointer  MUA4<A NAME=581>&#160;</A> is used which gives the address of the  diagonal coefficient <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img13.gif">  in MUA5 for each row <b>i</b>.The address <b>ia</b> in  MUA5 of an arbitrary coefficient <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img10.gif"> is therefore calculated by the formula<FONT color="#B8860B" SIZE=-1><I>(<IMG ALIGN=middle SRC="../icons/foot_motif.gif"	ALT="[note]"> With the convention MUA4(1)=0)</I></FONT><DIV ALIGN=center><IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img14.gif"></DIV><P>This storage mode, called  <b> profile</b> or <b> skyline storage</b>,is particularly useful as it is also used for matrix <b>L</b>. In fact, the matrices <b>A</b> and <b>L</b> have the same profile, and in practice they are often stored in the same array).<P>For the non-symmetric case<A NAME=589>&#160;</A>, the same storage is used by adding the columns in the following manner:for each variable <b>i</b>, we store all thecoefficients <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img10.gif"> of the <b> row</b>, for <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img15.gif">,  (where <b>mc(i)</b> is thesmallest column index such that <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img12.gif">). These coefficients (zero or not) are ordered by increasing column index; then we store all thecoefficients <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img16.gif"> of the <b> column</b>, for <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img11.gif">,ending with the diagonal coefficient. This information is then orderedin order of increasing variable in array  MUA5.To maintain the correspondence between    MUA5  and <b>A</b>, a pointer  MUA4 is used which gives the address of the  diagonal coefficient <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img13.gif">  in MUA5 for each row <b>i</b>.The address <b>ia</b> in  MUA5 of an arbitrary coefficient <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img10.gif"> is therefore calculated by the formula<P><IMG BORDER=0 ALIGN=BOTTOM ALT="" SRC="img17.gif"><P><P><P><P><H2><A NAME=SECTION03123000000000000000>1.2.3 The B  data structure</A></H2><P><P><P>For more details consult [<A HREF="node44.html#guide2"><A NAME=tex2html208 HREF="../Guide2/welcome.html">MODULEF User Guide - 2</A></A>].<P><P><P><H3><A NAME=SECTION03123100000000000000> Contents</A></H3><P><P><P>This DS stores a coefficient array in the form of a vector (right-hand-side (RHS) of a system, solution, etc.).<P>In practice, matrix <b> B</b> has the form <b> B</b>(NDSM,NTDL) where NDSM designates, for example, the number of load cases of RHS and NTDL is the number of degrees of freedom.<P>DS <b> B</b> consists of five arrays of predefined order.<P><DL COMPACT><DT>Array B0:<DD>  General information.<BR><P>This integer array contains 32 variables, consisting of a general descriptionof the job (title, date, name), of DS  <b> B</b> (type, level, ...), andindicates the presence or absence of array <b> B1</b>.<P><DL COMPACT><DT> 1:20 <tt> TITRE</tt><DD><P>the job title in 20 words of 4 characters,<P> </DL><P><DL COMPACT><DT> 21:22 <tt> DATE</tt><DD><P>the date of creation in 2 words of 4 characters,<P> </DL><P><DL COMPACT><DT> 23:28 <tt> NOMCRE</tt><DD><P>the creator's name in 6 words of 4 characters,<P> </DL><P><DL COMPACT><DT> 29 <tt> 'B    '</tt><DD><P>the DS type,<P> </DL><P><DL COMPACT><DT> 30 <tt> NIVEAU</tt><DD><P>the DS level,<P> </DL><P><DL COMPACT><DT> 31 <tt> ETAT</tt><DD><P>a reserved parameter,<P> </DL><P><DL COMPACT><DT> 32 <tt> NTACM</tt><DD><P>the number of supplementary arrays associated with the DS(they are described in array <b> B1</b>).<P> </DL><P><DT>Array B1:<DD> Description of any supplementary arrays. <BR><P>This integer array  exists if NTACM (see <b> B0</b>) is non-zero. It contains, foreach array to be described, 22 variables. In general, there are no associatedarrays, except for certain applications where it is necessary to store values in the DS which do not enter its standard definition.<P>If  array <b> B1</b> exists, it contains sequentially:<P><UL><LI> Loop i from 1 to NTACM<UL><LI> array name in 4 characters,<LI> array address in the super-array M,<LI> number of words of this array,<LI> array type  (1 = integer, 2 = real single precision, 4 = character, 5 = real double precision, ...) <LI> comments corresponding to the contents of the array in 18 words of 4 characters.</UL> <LI> End of loop. </UL><P><DT>Array B2:<DD> General description of the coefficient array. <BR><P>This integer array contains 11 values.<P><DL COMPACT><DT> 1 <tt> NTYP</tt><DD><P>the type of array <b> B4</b>,<P> </DL><P><DL COMPACT><DT> 2 <tt> NIND</tt><DD><P>the number of indices (fixed to 2),<P> </DL><P><DL COMPACT><DT> 3 <tt> M1</tt><DD><P>the maximum value of its first index (for example,  NDSM, the number of load cases),<P> </DL><P><DL COMPACT><DT> 4 <tt> M2</tt><DD><P>the maximum value of its second index (for example, NTDL if <b> B4</b> only has one page),<P> </DL><P><DL COMPACT><DT> 5 <tt> NCOD</tt><DD><P>the code for splitting array <b> B4</b> into blocks, with:<UL><LI> NCOD = 1 if all the blocks have the same size (except the last), <BR> <LI> NCOD = 0 if not,  <BR> </UL>  </DL><P><DL COMPACT><DT> 6 <tt> NBLOC</tt><DD><P>the number of blocks,<P> </DL><P><DL COMPACT><DT> 7 <tt> NOE</tt><DD><P>the number of nodes,<P> </DL><P><DL COMPACT><DT> 8 <tt> NBBLOC</tt><DD><P>the number of  <b> B4</b> arrays when the DS is on file,<P> </DL><P><DL COMPACT><DT> 9 <tt> ND</tt><DD><P>the number of degrees of freedom per node if it is constant, or 0,<P> </DL><P><DL COMPACT><DT> 10 <tt> NTDL</tt><DD><P>the number of degrees of freedom  or the maximum value of the second index of array <b> B4</b> when the  NBLOC blocks are considered,<P> </DL><P><DL COMPACT><DT> 11 <tt> NCODSB</tt><DD><P>the storage code for array <b> B4</b> with:<UL><LI> NCODSB = -1 for a storage by degrees of freedom (generally, this storage is used),<LI> NCODSB = -2 for a storage by nodes.</UL>  </DL><P><DT>Array  B3:<DD> Pointer to the blocks. <BR><P>This integer array contains NBLOC+1 variables indicating the segmentation of array <b> B4</b>.<P><UL><LI> B3(1) = 0 <LI> B3(i+1) =  number of the last node in block i if NCODSB = -2 <BR>       B3(i+1) =  number of the last degree of freedom in block i if NCODSB = -1</UL><P><DT>Array B4:<DD> the array coefficients. <BR><P>This NTYP type array contains the NDSM*M2 values of each page.<P><DL COMPACT><DT><DD> B4(1,l+1) to B4(NDSM,l+1) then<DT><DD> B4(1,l+2) to B4(NDSM,l+2)  then <DT><DD> ....<DT><DD> B4(1,l') to B4(NDSM,l')<P> </DL> where  <BR>  l = NDL(B3(i))+1,  l' = NDL(B3(i+1)) where NDL is a function such that NDL(1) = 0 and NDL(i+1) is the last degree of freedom of node i.<P> </DL><P>This set of  5 arrays (B0, B1, B2, B3 and B4) managed by a few subroutines, contain the NDSM right-hand-sides (or solutions)of the linear system <b>A x = b</b>. The coefficients of arrayB4(NDSM,NTDL)  represent the NTDL<A NAME=805>&#160;</A> components of the  NDSM<A NAME=806>&#160;</A> right-hand-sides of the linear systemto be solved.After the solution procedure, the solutions of the linear system are also stored in array B4 (the same, or one of a distinct structure B).<P><P><P><HR SIZE=3 WIDTH="75&#37;"><IMG SRC="../icons/smallmod.gif" WIDTH=211 HEIGHT=50 ALIGN=BOTTOM	ALT="Modulef"><A NAME=tex2html389 HREF="node6.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/previous_motif.gif"	ALT="previous"></A><A NAME=tex2html395 HREF="node5.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/up_motif.gif"	ALT="up"></A><A NAME=tex2html397 HREF="node8.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/next_motif.gif"	ALT="next"></A><A NAME=tex2html399 HREF="node2.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/contents_motif.gif"	ALT="contents"></A><A HREF="../Guide5-18/node7.html"><IMG BORDER=0 SRC="../icons/zoom18.gif" ALIGN=BOTTOM	ALT="[BIG]"></A><A HREF="../Guide5-14/node7.html"><IMG BORDER=0 SRC="../icons/zoom14.gif" ALIGN=BOTTOM	ALT="[Normal]"></A><A HREF="../Guide5-10/node7.html"><IMG BORDER=0 SRC="../icons/zoom10.gif" ALIGN=BOTTOM	ALT="[small]"></A><BR><B> Next: </B> <A NAME=tex2html398 HREF="node8.html">1.3 Solution by an iterative method</A><B>Up: </B> <A NAME=tex2html396 HREF="node5.html">1 Solution of linear systems</A><B> Prev: </B> <A NAME=tex2html390 HREF="node6.html">1.1 Introduction</A><B><A HREF="node2.html"	>Contents</A></B><BR> <HR><P><ADDRESS></ADDRESS></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?