node17.html

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

HTML
580
字号
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.2 Final//FR"><!-- Converted with LaTeX2HTML 95.1 (Fri Jan 20 1995) --><!-- by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds --><!-- Modified Simulog 03/97 --><HTML><HEAD><TITLE>2.1 The modules</TITLE><LINK REL=STYLESHEET TYPE="text/css"	HREF="./Modulef.css" TITLE="Modulef CSS"><meta name="description" value="2.1 The modules"><meta name="keywords" value="Guide5"><meta name="resource-type" value="document"><meta name="distribution" value="global"></HEAD><BODY BGCOLOR="#FFFFFF"><P> <IMG SRC="../icons/smallmod.gif" WIDTH=211 HEIGHT=50 ALIGN=BOTTOM	ALT="Modulef"><A NAME=tex2html504 HREF="node16.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/previous_motif.gif"	ALT="previous"></A><A NAME=tex2html510 HREF="node16.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/up_motif.gif"	ALT="up"></A><A NAME=tex2html512 HREF="node18.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/next_motif.gif"	ALT="next"></A><A NAME=tex2html514 HREF="node2.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/contents_motif.gif"	ALT="contents"></A><A HREF="../Guide5-18/node17.html"><IMG BORDER=0 SRC="../icons/zoom18.gif" ALIGN=BOTTOM	ALT="[BIG]"></A><A HREF="../Guide5-14/node17.html"><IMG BORDER=0 SRC="../icons/zoom14.gif" ALIGN=BOTTOM	ALT="[Normal]"></A><A HREF="../Guide5-10/node17.html"><IMG BORDER=0 SRC="../icons/zoom10.gif" ALIGN=BOTTOM	ALT="[small]"></A><BR><B> Next: </B> <A NAME=tex2html513 HREF="node18.html">2.2 The algorithms</A><B>Up: </B> <A NAME=tex2html511 HREF="node16.html">2 Iterative methods</A><B> Prev: </B> <A NAME=tex2html505 HREF="node16.html">2 Iterative methods</A><B><A HREF="node2.html"	>Contents</A></B><HR SIZE=3 WIDTH="75&#37;"><H1><A NAME=SECTION04210000000000000000>2.1 The modules</A></H1><P><P><P>This part gives a presentation of the different modules currently available in the code, along with theirutilization context and parameters. Concrete computational examples are given in chapter 6.<P><P><P><H2><A NAME=SECTION04211000000000000000>2.1.1 ASEMBV: assembly of B</A></H2><P><A NAME=1759>&#160;</A><P><DL COMPACT><DT>Aim:<DD>  Assemble the element right-hand-sides  (forces, pressures, stresses, flux,  <b>...</b>) by packets, in order to use the computer's parallelization and vectorization possibilities to the best. The same module is used for direct methods, described in section  <A HREF="node14.html#asembv">1.2.1</A>.<P> </DL><P><H2><A NAME=SECTION04212000000000000000>2.1.2 ASSAMA: assembly of AMAT</A></H2><P><A NAME=1765>&#160;</A><P><DL COMPACT><DT>Aim:<DD> Assemble the element symmetric or non-symmetric matrices, in the form of matrix<A NAME=1767>&#160;</A> <b>A</b>  in compact storage (stiffness matrix, mass matrix, <b>...</b>), in mainmemory.<P><DT>Utilization:<DD>  <P><UL><LI> dimension array M (in the blank common),<LI> call INITI,                                   <LI> create the input data structure, TAE (and eventually  NDL1),<LI> execute module PREPGC to initialize structure AMAT, and create  pointers AMAT4 and AMAT5.<P></UL><P>Call the module:<P><PRE>         CALL ASSAMA(M,NOT,NFTAE,NITAE,NFNDL1,NINDL1,NFAMAE,NIAMAE,     +                 NFAMAS,NIAMAS)</PRE><P>where<P><UL><LI> M: the super array,<LI> NOT: the number of the array to assemble of the element arrays in structure TAE,<LI> NFAMAE: the number of the support file of the I.D.S. AMAT (incomplete, contain only pointer),<LI> NIAMAE: its level number,<LI> NFTAE: the number of the support file of the I.D.S. TAE,<LI> NITAE: its level number,<LI> NFNDL1: the number of the support file of I.D.S. NDL1,<LI> NINDL1: its level number,<LI> NFAMAS: the number of the support file of O.D.S. AMAT, <LI> NIAMAS: its level number (the O.D.S. can be distinct from the I.D.S., for example if we want to assemblyseveral element arrays of structure TAE independently)</UL>  </DL><P><H2><A NAME=SECTION04213000000000000000>2.1.3 CLIMGC: boundary conditions</A></H2><P><DL COMPACT><DT>Aim:<DD> Impose the  boundary conditions, ofprescribed value or linear relation type<A NAME=1775>&#160;</A>.<P><DT>Utilization:<DD>  <P><UL><LI> dimension array M (in the blank common),<LI> call INITI,                                   <LI> create the input data structures AMAT and B (and eventually  NDL1).</UL>(eg  execute module PREPGC, and then modules ASSAMA and ASEMBV which create the structures  AMAT and B)<P>Call the module:<P><PRE>        CALL CLIMGC(M,NIVO,VTG,NFNDL1,NINDL1,     +            NFAMAE,NIAMAE,NFBE,NIBE,     +            NFBDCL,NIBDCL,NFAMAS,NIAMAS,NFBS,NIBS)</PRE><P>where<P><UL><LI> M: the super array,<LI> NIVO: the type of boundary conditions imposed:<UL><LI>  if NIVO = 0, the boundary conditions affect matrix <b>A</b> only, and have the form:     <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img37.gif">    <LI> if NIVO <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img62.gif">, the boundary conditions affect both    <b>A</b> and <b>B</b>, and have the form:    <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img37.gif"> and <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img38.gif"> for all prescribed degrees of freedom <b>i</b>, then for     all <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img41.gif"> such that <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img42.gif">,     <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img43.gif">, and finally: <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img44.gif"></UL><LI> VTG:   multiplication value of the diagonal coefficients of the prescribed degrees of freedom,<LI> NFNDL1: the number of the support file of the I.D.S. NDL1,<LI> NINDL1: its level number,<LI> NFAMAE: the number of the support file of the I.D.S. AMAT,<LI> NIAMAE: its level number,<LI> NFBDCL: the number of the support file of the I.D.S. BDCL,<LI> NIBDCL: its level number,<LI> NFBE: the number of the support file of the I.D.S. B,<LI> NIBE: its level number,<LI> NFAMAS: the number of the support file of the O.D.S. AMAT,<LI> NIAMAS: its level number (the O.D.S. can be distinct from the I.D.S., or overwrite it).</UL>  </DL><P><H2><A NAME=SECTION04214000000000000000>2.1.4 CONDLU: incomplete Gauss factorization</A></H2><P><A NAME=1790>&#160;</A><P><DL COMPACT><DT>Aim:<DD> Perform incomplete Gauss factorization,  in main memory, ofa  matrix <b>A</b>, already assembled in structure AMAT. The matrix must be non-symmetric. To stabilize, if necessary,  the incomplete factorization  by increasing the diagonal dominance, the module factorizes the matrix<IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img63.gif"><P><DT>Utilization:<DD>  <UL><LI> dimension array M (in the blank common),<LI> call INITI,<LI> create the input data structure AMAT.</UL><P>Call the module:<P><PRE>                             CALL CONDLU(M,SIGMA,NIVEAU,NFAMAT,NIAMAT,NFAMAC,NIAMAC)</PRE><P>where:<P><UL><LI> M: the super array,<LI> SIGMA: parameter to increase the diagonal dominance,<LI> NIVEAU: the level of incomplete factorization (always <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img64.gif">),<LI> NFAMAT: the number of the support file of I.D.S. AMAT (the system matrix),<LI> NIAMAT: its level number,<LI> NFAMAC:  the number of the support file of O.D.S. AMAT (the preconditioning matrix)<LI> NIAMAC: its level number,</UL>  </DL><P><H2><A NAME=SECTION04215000000000000000>2.1.5 CONDL1: construction of NDL1</A></H2><P><DL COMPACT><DT>Aim:<DD> Construct the D.S. NDL1 from the D.S. MAIL. The algorithms described in this guide callfunction NDL, which assigns the number of the last degree of freedom corresponding to node I to NDL(I+1)(using the convention NDL(1)=0). To initialize this function, the module calls  function LRNDL1, and then:<UL><LI> if the number of degrees of freedom at each node is constant, NDL(I+1) = I * ND   <LI> if not,  NDL(I+1) = the number of the last  degree of freedom corresponding to node I, stored in NDL1.</UL><P>This module is also used for direct methods, described in section <A HREF="node14.html#condl1">1.2.9</A>.<P> </DL><P><H2><A NAME=SECTION04216000000000000000>2.1.6 CSAMAT: construction of AMAT from MUA</A></H2><P><A NAME=csamat>&#160;</A><P><DL COMPACT><DT>Aim:<DD> Determine a preconditioning matrix<A NAME=1806>&#160;</A> by selecting the coefficientsin a matrix, <b>A</b>, already factorized and stored in a MUA data structure.The resulting preconditioning matrix  is stored in a AMAT structure. It corresponds to extracting thesignificant coefficients, following the criterion:<P><DIV ALIGN=center><IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img65.gif"></DIV><P>This procedure enables us to calculate a preconditioning matrix  in a very efficient manner, but necessitates theassembly of matrix <b>A</b> in secondary memory in skyline form.This technique is interesting when numerous linear systems need to be solved using the same matrix.<P>For   <IMG BORDER=0 ALIGN=BOTTOM ALT="" SRC="img66.gif"> this module transform a D.S. MUA in secondary memory in a D.S. AMAT.<P><DT>Utilization:<DD>  <UL><LI> dimension array M (in the blank common),<LI> call INITI,<LI> create the input data structure MUA, and factorize the matrix using modules   ASMAPS and CHOLPS.</UL><P>Call the module:<P><PRE>                 CALL CSAMAT(M,RAPORT,NFACTO,NFMUA,NIMUA,     +            NFAMAT,NIAMAT,NTAMAT)</PRE><P>where:<P><UL><LI> M: the super array,<LI> RAPORT: the value of parameter <IMG BORDER=0 ALIGN=BOTTOM ALT="" SRC="img67.gif">,<LI> NFACTO: the factorization option of the matrix of I.D.S. MUA,<UL><LI>  if NFACTO = 0, the matrix has not yet been factorized,   <LI>  if NFACTO = 1, Cholesky factorization,     <LI>  if NFACTO = 2, Crout factorization,  </UL><LI> NFMUA: the number of the support file of I.D.S. MUA,<LI> NIMUA: its level number,<LI> NFAMAT: the number of the support file of O.D.S. AMAT,<LI> NIAMAT: its level number,<LI> NTAMAT: the number of associated arrays.</UL>  </DL><P><H2><A NAME=SECTION04217000000000000000>2.1.7 DGRADA: double conjugate gradient</A></H2><P><A NAME=1817>&#160;</A><P><DL COMPACT><DT>Aim:<DD> Solve the linear system by accelerated double conjugate gradient iterations<A NAME=1819>&#160;</A>, with preconditioning, when matrix <b>A</b> is not symmetric  positive definite.The matrix of the linear system and the preconditioning matrix are already stored in AMAT structures.<P><DT>Utilization:<DD>  <UL><LI> dimension array M (in the blank common),<LI> call INITI,<LI> create the input data structures AMAT and B (and eventually BDCL and NDL1),<LI> execute module CONDLU which creates the  data structure, AMAC, containing the preconditioning matrix.</UL><P>Call the module:<P><PRE>      CALL DGRADA(M,EPS,NOMTA0,NCLRL,     +            NFBDCL,NIBDCL,NFNDL1,NINDL1,     +            NFAMAT,NIAMAT,NFBE,NIBE,     +            NFAMAC,NIAMAC,NFBS,NIBS)</PRE><P>where:<P><UL><LI> M: the super array,<LI> EPS: <IMG BORDER=0 ALIGN=BOTTOM ALT="" SRC="img46.gif">,  the convergence threshold, according to the criterion: <BR> <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img68.gif">,<LI> NOMTA0: the name of the array containing vector X0, to initialize the accelerated double conjugate gradient algorithm,<LI> NCLRL: number of boundary conditions i.t.o. linear relations,<LI> NFBDCL: the number of the support file of I.D.S. BDCL,<LI> NIBDCL: its level number,<LI> NFNDL1: the number of the support file of I.D.S.  NDL1,<LI> NINDL1: its level number,<LI> NFAMAT: the number of the support file of I.D.S.  AMAT (the system matrix),<LI> NIAMAT: its level number,<LI> NFBE: the number of the support file of I.D.S.  B (the RHS),<LI> NIBE: its level number,<LI> NFAMAC: the number of the support file of I.D.S.  AMAC (the preconditioning matrix),<LI> NIAMAC: its level number,<LI> NFBS: the number of the support file of O.D.S.  B (the solution),<LI> NIBS: its level number.</UL>  </DL><P><H2><A NAME=SECTION04218000000000000000>2.1.8 FANIGC: incomplete Cholesky-Crout factorization</A></H2><P>

⌨️ 快捷键说明

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