📄 node12.html
字号:
<!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.2 The MODULEF code</TITLE><LINK REL=STYLESHEET TYPE="text/css" HREF="./Modulef.css" TITLE="Modulef CSS"><meta name="description" value="2.2 The MODULEF code"><meta name="keywords" value="Guide1"><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=tex2html344 HREF="node11.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/previous_motif.gif" ALT="previous"></A><A NAME=tex2html348 HREF="node10.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/up_motif.gif" ALT="up"></A><A NAME=tex2html350 HREF="node13.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/next_motif.gif" ALT="next"></A><A NAME=tex2html352 HREF="node2.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/contents_motif.gif" ALT="contents"></A><A HREF="../Guide1-18/node12.html"><IMG BORDER=0 SRC="../icons/zoom18.gif" ALIGN=BOTTOM ALT="[BIG]"></A><A HREF="../Guide1-14/node12.html"><IMG BORDER=0 SRC="../icons/zoom14.gif" ALIGN=BOTTOM ALT="[Normal]"></A><A HREF="../Guide1-10/node12.html"><IMG BORDER=0 SRC="../icons/zoom10.gif" ALIGN=BOTTOM ALT="[small]"></A><BR><B> Next: </B> <A NAME=tex2html351 HREF="node13.html">Part II: How do I use </A><B>Up: </B> <A NAME=tex2html349 HREF="node10.html">2 The MODULEF library</A><B> Prev: </B> <A NAME=tex2html345 HREF="node11.html">2.1 Capabilities</A><B><A HREF="node2.html" >Contents</A></B><HR SIZE=3 WIDTH="75%"><H1><A NAME=SECTION03220000000000000000>2.2 The MODULEF code</A></H1><P><P><P>The MODULEF system, illustrated in the flow-chart below, consists of logically ordered entities which have a hierarchical structure such that lower levels in this structure do not reference higher levels. Furthermore, each of these abstract entities incorporates operators and data structures which are transparent to the user.<P><P><A NAME=622> </A><IMG BORDER=0 ALIGN=BOTTOM ALT="" SRC="img3.gif"><BR><STRONG>Figure 2.1:</STRONG> The MODULEF environment<A NAME=figpart1b> </A><BR><P><P>By inspecting the flow-chart we see that the MODULEF environment consists of three levels, which corresponds tothree ways of using the software:<UL><LI> The easiest case corresponds to a configuration where the entire mathematical problem has been solved, i.e. incorporated in the system, at a previously stage. In this case the main program exists in the MODULEF code and the user merely needs to execute this program (or "black-box") and supply the corresponding data.<LI> If the main program does not exist in the MODULEF code, but all the modules required for the solution of the problem under consideration are available, the user must write the main program himself which calls one or several modules successively.<LI> Finally, it may be necessary for the user to program an entire module himself which in turn calls the numerical algorithms and utilities. </UL>In the last two cases it is of utmost importance that the user respect the MODULEF programming norms.<P><P><P><H2><A NAME=SECTION03221000000000000000>2.2.1 Use of MODULEF</A></H2><P><P><P><H3><A NAME=SECTION03221100000000000000> The classical use</A></H3><P>This corresponds to level 3 in figure <A HREF="node12.html#figpart1b">2.1</A>, where the user is required to:<P><UL><LI> write a main program constituting all the calls to the Fortran subroutines, and open sequential or direct access files for the I.D.S. and/or O.D.S. which the user wants to save,<LI> write one or several Fortran subroutines to define the analytical expression of the boundary, loads, non-lineardependence of the physical characteristics of the materials, etc.,<LI> compile the different programs,<LI> link the program with external references (modules, subroutines and supplementary functions) (to facilitate this step, a data (or procedure) base is available containing the relationships between libraries, subroutines, etc.),<LI> supply the data according to the MODULEF free format rules <BR>[4]([<A HREF="node65.html#guide_2"><A NAME=tex2html35 HREF="../Guide2/welcome.html">MODULEF User Guide - 2</A></A>]). The amount of data is often very little or nothing at all.</UL><P>At each call of the module the O.D.S. can be saved on secondary memory. In order to effect this, it suffices to input a non-zero file number. The user remains the master of his saves. This is very useful for a non-linear or time-dependent problem where the amount of input/output must be minimized.<P>Naturally, if the usage of a suite of modules is intensive, a module to be loaded can be fixed and called back in order to avoid compilation and linking. Similarly, if certain problem steps are not programmed, then as many modules must be realized according to the norms and integrated in the library. The user is thus returns to the previous case.<P>Library TEST treats some complete examples for which the input data is given. These sequences allows us to test the implementation of the version and the quick solutions of new problems.<P><P><P><H3><A NAME=SECTION03221200000000000000> The conversational use</A></H3><P><P><P>Conversational programs are designed to communicate and transfer information through the use of menus, questions, etc. They generally create formatted data files which can then be used as input for batch processing, especially useful when the execution time is considerable.<P>The majority of modules running can be activated conversationally. These programs are used to treat relativelysimple problems, or to prepare the data for an important step in a more complex problem. There are two types of conversational programs:<UL><LI> Programs of type 1 requires little data and corresponds to on-line processing. <LI> Programs of type 2 requires a larger set of data, and consists of two steps. Firstly, we need to enter thedata from which the data file is created. Thereafter, the program is executed in batch or on-line usingthe data file created in the preceding step.</UL><P> Some of the features available are:<UL><LI> two- or three-dimensional mesh generation modules,<LI> two- and three-dimensional mesh modification modules,<LI> graphics (plotting of meshes, stresses, isovalues, etc.) modules, and<LI> general modules (related to the solution of linear thermal and elastic problems).</UL><P><P><P><H2><A NAME=SECTION03222000000000000000>2.2.2 The modules</A></H2><P><P><P>The main programs mentioned above, should only consist of a succession of calls to the various modules. This flexibility,which is particularly important for research and development, is an important feature of the MODULEF software.Furthermore, it is the aim of the software to be as user-friendly and programmer-friendly as possible.<P>The main advantages of a modular code are reliability, simplicity and, most important, modifiability. The latteris a crucial aspect of the MODULEF code as mathematical operators can frequently be solved by several different methods, each corresponding to a different module. With MODULEF, the user generally only needs to modifythe name of the module, leaving the arguments the same, when choosing a different method. Furthermore, newnumerical methods can easily be incorporated into the library. For example, the followingmodules correspond to different direct methods for matrix factorization:<P><UL><LI> Cholesky factorization of a skyline matrix: <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img4.gif">:<UL><LI> matrix in core: module <b> CHOLPC</b><LI> matrix out of core: module <b> CHOLPS</b></UL><LI> Crout factorization of a skyline matrix: <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img5.gif">:<UL><LI> module <b> CROUPC</b></UL><LI> Gauss factorization of a non-symmetric matrix: <IMG BORDER=0 ALIGN=MIDDLE ALT="" SRC="img6.gif">:<UL><LI> module <b> DRGAPC</b></UL></UL><P>All the modules above have the same list of arguments.<P>Moreover, thanks to the modularity of the code, it is possible to execute modules either with single or double precision. In this case the module calls one of two similar subroutines whose names differonly by the last letter, "<b> R</b>" and "<b> D</b>", corresponding to <b> R</b>eal (single precision) and <b> D</b>ouble precision, respectively. For example, module <b> CHOLPC</b> calls:<UL><LI> <b> CHMC1R</b> (<i> list of parameters</i>) : Cholesky algorithm in single precision, and<LI> <b> CHMC1D</b> (<i> same list of parameters</i>) : Cholesky algorithm in double precision.</UL><P>Modules communicate through standardized data structures, in terms of sets of Fortran arrays, whose internalrepresentation is transparent to the user.The data structure management and the numerical algorithm are distinct in each module. The algorithm is confined to a standard Fortran subroutine which only accesses those arrays necessary, without referencing the dynamic storage. This enables us:<UL><LI> to reduce the number of input/output operations during a loop in a non-linear or time-dependent problem, and<LI> to use a mathematic operator, included in MODULEF, in an external context.</UL><P>As mentioned above, in the event that a module performing some desired operation does not exist in the MODULEF library, the user might want to write the complete module himself. In order to maintain the coherence andhomogeneity of the library, the programming must conform to predefined standards set by the MODULEF club [<A HREF="node65.html#guide_2"><A NAME=tex2html35 HREF="../Guide2/welcome.html">MODULEF User Guide - 2</A></A>].<P>A list of some of the main modules and their functions which are presently available is given in appendix <A HREF="node49.html#apppart1">A</A>.<P><P><P><H2><A NAME=SECTION03223000000000000000>2.2.3 Supplementary features</A></H2><P><P><P><P>Among the computer utilities to aid the user with the utilization of the MODULEF library is the expert system, <b> DOMINO</b>, incorporating the know-how of MODULEF specialists: application field of the algorithms, choice of the optimal algorithms, respecting of external specifications of each module, etc. Its aim is to relieve theengineer of all this algorithmic, numeric and computer knowledge. <b> DOMINO</b> guides the user duringthe specification of his/her problem, generates the sequence of programs and controls their execution.<P>As far as teaching is concerned, two instructural software packages have been developed on the MacIntosh:<UL><LI> <b> FEMSOLID</b>: solution of plane linear elastic problems with element <b> TRIA 2P2D</b>, including the calculation of displacements and stresses and plotting of deformations and isostresses;<LI> <b> TREILLIL</b>: solution of beam grid problems with element <b> SEGM 2POR</b>.</UL><P>An interactive graphic mesh generation software package, <b> EMC2</b>, is the product of two INRIA projects, the onebeing MODULEF. This software package includes the following three functions: <UL><LI> interactive editing of plane objects consisting of segments, arcs and splines,<LI> defining the node and line reference numbers, the domains and their corresponding numbers, the linediscretization, the mesh type, and generating the data file for module <b> APNOXX</b>, and <LI> meshing the domains in triangles, editing the resulting mesh, and generating binary files in the <b> NOPO</b>format.</UL><P><P><P><H2><A NAME=SECTION03224000000000000000>2.2.4 Conclusion</A></H2><P><P><P>The MODULEF library, based on the finite element method, enables numerous researchers, university as wellas industry, to solve their application problems such as: mesh generating, solution of time-dependent heat transfer problems, dynamic problems, eigenvalue problems, incompressible and compressible viscous fluid flow,non-linear problems, plate problems, etc.<P>Taking the increasing number of members and growing interest in the MODULEF club into account, as much as in the industrial as in the university environment, the MODULEF library is fast becoming a complete, reliable and easy-to-use library of modules and programs adapted to more and more diverse problems.<P><HR SIZE=3 WIDTH="75%"><IMG SRC="../icons/smallmod.gif" WIDTH=211 HEIGHT=50 ALIGN=BOTTOM ALT="Modulef"><A NAME=tex2html344 HREF="node11.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/previous_motif.gif" ALT="previous"></A><A NAME=tex2html348 HREF="node10.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/up_motif.gif" ALT="up"></A><A NAME=tex2html350 HREF="node13.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/next_motif.gif" ALT="next"></A><A NAME=tex2html352 HREF="node2.html"><IMG BORDER=0 ALIGN=BOTTOM SRC="../icons/contents_motif.gif" ALT="contents"></A><A HREF="../Guide1-18/node12.html"><IMG BORDER=0 SRC="../icons/zoom18.gif" ALIGN=BOTTOM ALT="[BIG]"></A><A HREF="../Guide1-14/node12.html"><IMG BORDER=0 SRC="../icons/zoom14.gif" ALIGN=BOTTOM ALT="[Normal]"></A><A HREF="../Guide1-10/node12.html"><IMG BORDER=0 SRC="../icons/zoom10.gif" ALIGN=BOTTOM ALT="[small]"></A><BR><B> Next: </B> <A NAME=tex2html351 HREF="node13.html">Part II: How do I use </A><B>Up: </B> <A NAME=tex2html349 HREF="node10.html">2 The MODULEF library</A><B> Prev: </B> <A NAME=tex2html345 HREF="node11.html">2.1 Capabilities</A><B><A HREF="node2.html" >Contents</A></B><BR> <HR><P><ADDRESS></ADDRESS></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -