LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN 5lO. 84 lJLQ?r no.708-7U dop. 2 Digitized by the Internet Archive in 2013 http://archive.org/details/generationcompar709wilk UjtyiUIUCDCS-R-T 5-709 fax- coo-2383-0018 GENERATION AND COMPARISON OF EQUIVALENT EQUATION SETS IN A GENERAL PURPOSE SIMULATION AND MODELING PACKAGE by Sally Foote Wilkins April, 1975 jHE LIBRARY OF THE JUN 24 1975 WERS1TY OMLUN01S UIUCDCS-R-7 5-709 COO-2383-0018 GENERATION AND COMPARISON OF EQUIVALENT EQUATION SETS IN A GENERAL PURPOSE SIMULATION AND MODELING PACKAGE by Sally Foote Wilkins April, 1975 DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF ILLINOIS AT URBANA -CHAMPAIGN URBANA, ILLINOIS 6l801 *Supported in part by the Atomic Energy Commission under contract US AEC AT (ll-l) 2383 and submitted in partial fulfillment of the requirements of the Graduate College for the degree of Doctor of Philosophy in Computer Science . Ill ACKNOWLEDGMENTS I wish to express my sincere appreciation to Professor C. W. Gear for his support and guidance throughout the course of this research. I am also indebted to several people who gave their time generously to help me when I was no longer in residence in Illinois: to Mr. Al Whaley and Mr. Larry Lopez for running programs, to Mr. Stan Zundo who did the extensive drafting for this thesis and offered many suggestions for improvements, and to Miss Pamela Farr who typed this thesis and coordinated the many details necessary for its completion. I am also grateful to the Atomic Energy Commission for their financial support of the research for this thesis. Finally, I want to thank my husband, Ron, for his continuing support and encouragement throughout the research for and writing of this thesis. IV PREFACE In the General Purpose Simulation and Modeling Package, the behavior of a generalized network, which is modeled graphically, is studied by analyzing numerically an equation set equivalent to the graphic model. Two methods, which operate within the same simulation environment, have been developed for generating the equation set for a network model. The equation sets generated are linear transformations of one another so either set may be used to define the behavior of the network. One set of equations usually contains fewer equations, in fewer unknowns, but each is more dense (that is, contains more terms and depends on more variables). Thus it is not immediately clear which can be solved most rapidly using sparse techniques. The two methods were compared by measuring the relative efficiency of the operation of the numerical analysis programs on the two equation sets. A variety of networks were modeled and simulated using both methods to generate the data used for comparison. One method was generally found to be at least as efficient as the other method for sparsely-connected networks and markedly more efficient for densely-connected networks. Most of the appendices are omitted to reduce the size of this report. The complete report is available from University Microfilm Service, Ann Arbor. V TABLE OF CONTENTS Chapter Page 1 Introduction 1 2 Summary of Simulation Procedure 7 2.1 Graphic Modeling 8 2.2 Item Analysis 19 2.3 Global Analysis 26 2.3.1 Global 1 27 2.3.2 Global II 31 2.1+ Elimination kl 2.5 Numerical Analysis hk 3 Node Method of Assigning Names to I-variables U8 3.1 Introduction kQ 3.2 E-variable Method and the Node Method for I-variables . U8 k Loop Method of Assigning Internal Names to I-variables . ... 6l U.l Introduction 6l k .2 Linear Graph Theory Review 62 k.3 Linear Graph Theory and Network Models 69 1+.1+ Constructing the Graph 77 H.5 Generalized Graph Construction and Tree Selection ... 83 U.5.1 Graph Construction 83 U.5.2 Tree Selection 85 U. 5 • 3 Generating Expressions for I-variables 86 5 Conclusion 98 Other Observations 105 VI Chapt er Page Appendix A Global 1 112 A.l Global I. (Flowchart A-l) 113 A. 1.1 Entry to Global I 113 A. 1.2 Storage Allocation Ill* A.l. 3 Setting Up Call to Element Il6 A. l.U Element 117 A. 1.5 Cleaning Up 117 A. 1.6 Output Table 117 A. 2 Element Description. (Flowchart A-2) 117 A. 2.1 Search Element Name Table 117 A. 2. 2 Add Element to Element Name Table 11 8 A. 2. 3 Constructing the Element Definition. (Table A-8) • 118 A. 2.U Variable Tables 120 A. 2. 5 Constant Pointer Table 120 A. 2. 6 Equation Blocks 121 A. 2. 7 E-I Names 121 A. 2. 8 End of the Element Definition 121 A. 2. 9 Network Definition 122 A. 2. 10 Element Instance Table 123 A. 2. 11 Scratch Table 12U A. 2. 12 Element Numbers for Element Instance Table 12U A. 2. 13 Fix N/C Table 12U A.2.1U Node Type/Terminal Type Checking 125 A. 2. 15 Process Element Instance Equations 126 A. 2.16 Network Equations 128 Vll Chapter Page Appendix B Eqscan and Char a c ll±3 B.l Eqscan lU5 B.l.l Entry lU6 B.l. 2 Parameters lk6 B.l. 3 Operator Stack ll+6 B.l.l* Switches IU7 B.l. 5 Equation Search ll+8 B.l. 6 Testing the Equation Mask lU8 B.l. 7 Completion and Return lU8 B.2 Charac 1U8 B.2.1 Parameters • 150 B.2. 2 Initialization 150 B.2. 3 Equation Search 150 B.2.1+ Characteristic Table Entry 151 B.2. 5 Completion and Return 152 Appendix C Global II 156 C.l Global II Driver. (Flowchart C.l.) 159 C.l.l Initialization 159 C.l. 2 External Terminals 160 C.l. 3 Initialize Call to Element l6l C.l.l* Clean Up l6l C.2 Element. (Flowchart C.2.) l62 C.2.1 Global Variables. (Flowchart C3.) l62 C.2. 2 Local Variables. (Flowchart C.U.) 163 C.2. 3 Fixing GNMTBL 165 Vll Chapter Page Appendix B Eqscan and Charac 1^3 B.l Eqscan ll*5 B.l.l Entry lk6 B.l. 2 Parameters lk6 B.l. 3 Operator Stack lh6 B.l.U Switches 1U7 B.l. 5 Equation Search 1U8 B.l. 6 Testing the Equation Mask ll*8 B.l. 7 Completion and Return lU8 B.2 Charac ll*8 B.2.1 Parameters 150 B.2. 2 Initialization 150 B.2. 3 Equation Search 150 B.2.1* Characteristic Table Entry 151 B.2. 5 Completion and Return 152 Appendix C Global II 156 C.l Global II Driver. (Flowchart C.l.) 159 C.l.l Initialization 159 C.l. 2 External Terminals l60 C.l. 3 Initialize Call to Element l6l C.l.l* Clean Up l6l C.2 Element. (Flowchart C.2.) l62 C.2.1 Global Variables. (Flowchart C.3.) 162 C.2. 2 Local Variables. (Flowchart C.l*.) 163 C.2. 3 Fixing GNMTBL 165 CHAPTER 1 INTRODUCTION The General Purpose Simulation and Modeling Package [h] is a research project aimed at developing a procedure for modeling generalized networks graphically and analyzing their behavior numerically. A network model is constructed graphically at a CRT terminal using an interactive graphics monitor. A set of algebraic and differential equations which define the behavior of the model is generated by a system of analysis programs. The equation set is analyzed numerically to determine the static, dynamic or oscillatory behavior of the network . The generality of the Simulation and Modeling Package permits the analysis of such diverse networks as electrical circuits, mechanical structures, and dynamic fluid systems. There are no pre-defined building blocks. The CRT terminal and the software of the graphics monitor provide the tools necessary to define the basic elements of a network. A network is constructed graphically from a set of user-defined elements. Each user or user group can create their own library of basic element and network definitions. A system of symbolic analysis programs constructs table-structured definitions of a network and its constituent elements from the graphic definitions in the library. These tables contain all the information needed to generate a set of algebraic and differential equations, = fi.(x.,£',t) which are functions of network variables v_ and time t. The solution, y , for the equation set at time t is calculated using a predictor-corrector numerical integration technique. The corrector step uses the Jacobians of the system, 3& 3& J = — and K = . 3£ 3y_' • The static "behavior of the system at time t = t_ is defined by the solution of =£(iL>0>t ). The eigenvalues and eigenvectors of the Jacobians are used to study the oscilla- tory behavior of the system once a static solution is found. The simulation package has three processing phases which are analogous to steps taken to implement and solve a problem in a traditional computerized environment . Our problem is to simulate the behavior of some generalized network. The network is first modeled using the graphics modeling package, a step analogous to the coding in a language suitable for the problem. Symbolic analysis pro- grams convert the graphic model of the network into a set of equations which define the behavior of the network. These analysis programs are analogous to the compiler which converts a coded program into a set of instructions that can be executed. The numerical analysis package solves the equation set for a specified mode of behavior. This phase is analogous to executing the solution of the problem. The research done in support of this thesis began with the development of programs that perform most of the symbolic analysis of a network. These pro- grams, called collectively Global Analysis, are preceeded by some preliminary analyses that convert the graphic descriptions of networks and elements into a library of table-structured data. Global Analysis 'compiles ' the data for one network into a set of equations that are suitable for the numerical package. After Global, some symbolic manipulation is performed on the equation set which, among other tasks, eliminate simple relations of the form: variable = ± constant variable = ± variable . Global Analysis performs tasks that are similar to the functions of a compiler. Error checking is performed to determine if the construction of the letwork is syntactically sound. Networks are expanded into their constituent elements much as macro calls are expanded by a compiler. Variables are assigned internal names which are used in the output equation set. The scope of each variable is determined. Each reference to a variable Ln an equation is replaced by an internal name selected to ensure that the Integrity of the scope of the variable is maintained. A cross-reference table Ls created that relates the internal name to the original alphanumeric name of sach variable. In the initial version of Global Analysis the assignment of internal names to a special class of terminal variables which satisfy Kirchoff 's Current Law (KCL) was performed by the Node Method. Every such variable, called an In- variable, is assigned a distinct internal name, and suitable equations are generated that constrain the I-variables to satisfy KCL at the nodes (connection points for terminals in the network). If the method of generating I-variable names were changed, the output equation set would be different. The new set, which would also define the oehavior of the network, would be a linear transformation of the set produced asing the Node Method. The search for and implementation of an alternative method of assigning Internal names to I-variables constituted the second part of the work done por this thesis. The second method selected was inspired by studying the analogy "between an I-variable and the current in an electrical circuit and the technique for finding an independent set of loop currents in an electrical circuit. . The concept of loop currents was generalized to loop I-variables. An algorithm was developed to transform a generalized network model into a set of weighted, oriented, linear graphs in which the edge-weights satisfy KCL at each vertex in the graphs. Using well-defined procedures from linear graph theory, a second algorithm was developed to determine an independent set of loop I- variables from the linear graphs. Using internal names assigned to variables in this independent set, a linear expression is generated as an internal name for each I-variable in the network. These internal expressions for I-variables automatically satisfy KCL at each node in the network. This second method, called the Loop Method, was implemented within the existing framework of Global Analysis as an optional method to be used on request by the user. For the final part of this research, a variety of networks were designed and modeled to collect data for comparing the relative efficiency of the two methods . The two methods are included in Global in such a way that whichever is used in the analysis of a network, all other features of the simulation package remain fixed. This design was carefully planned so the two methods could be compared without external factors affecting the data used for comparison. How the numerical analysis package handles the equation sets was considered the best measure of the relative efficiency of the two methods. Data was taken from several specific compilations made by the numerical analysis programs on the equation sets produced by using first the Node Method and then the Loop Method on each test network. The number of equations and the number of I-variables produced by Global Analysis was counted for each equation set. Following the symbolic manipulation by the elimination program the number of equations remaining in the set was counted. In the numerical analysis package one program generates a set of instruc- tions, called DIFFUN, which calculates during each iteration of the corrector step in determining a solution y_ at time n t . The length of this program, DIFFUN , is one of the data values used for comparison . The matrix equation [J + aK]x = b must be solved for x during each iteration of the corrector step. A factored form of the inverse [J + aK] '" is computed for some y by a set of instructions, MATINV, generated by the numerical package. The matrix multiplication [J + aK] b_, performed by a set of generated instructions, MATMUL, is computed for each iteration of the corrector step. The "inverse" of the Jacobians is re-evaluated only when the solution fails to converge after three iterations. The number of instructions in MATMUL and MATINV are also used as bases for comparing the two methods . Chapter 2 of this thesis is a snapshot view of the entire simulation package. A general discussion of Global Analysis and how it interacts with the simulation package is included in the summary. A technical discussion accompanied by detailed flowcharts of the programs comprising Global Analysis can be found in Appendices A and C. The Node Method is discussed in detail in Chapter 3- The Loop Method is discussed in Chapter k. The details of the implementation of the Loop Method and flowcharts of the routines are included in Appendices B and D. The networks used to collect data for the comparison of the Node and Loop Methods are in Appendix E. Each network is drawn just as it was modeled using the graphics modeling package. The I-variable expressions generated by the Loop Method are included for each example. The data gathered for each network and the conclusions reached from analysis of the data are in the final chapter. The Loop Method is found to he at least as good as the Node Method in terms of the relative efficiency of the numerical package in analyzing the respective equation sets. For a certain class of net- works, the Loop Method produces equation sets which are treated much more efficiently by the numerical package. The Loop Method is the better algorithm for . general use in the simulation package. ■ CHAPTER 2 SUMMARY OF SIMULATION PROCEDURE The simulation package has five functional steps. 1. Graphic Modeling 2. Item Analysis 3. Global Analysis k. Equation Elimination 5. Numerical Analysis These steps are performed in the order 1 to 5. Each step prepares data structures suitable for use by the next step. Graphic Modeling may be performed independently of the remaining steps. Graphic data structures may be saved in local storage facilities and used at a later time. Itemized files are created from graphic data structures and saved in remote storage facilities. The remainder of the package, steps 3-5, use the itemized data as input and may be run without repeating steps 1 and 2. However, no permanent files are produced, and steps 3-5 must be performed each time an analysis of a network is desired. The discussions of steps 1-5 in this chapter will not include technical details. The emphasis will be on giving the reader a general appreciation of the simulation procedure. References to technical discussions are included with each step. To illustrate the simulation procedure, a simple modeling example will be constructed during the discussion of Graphic Modeling and followed through the remaining steps of the procedure. 2.1 GRAPHIC MODELING The first step in the simulation process is to construct a graphic model of the network to be studied. There are no predefined building blocks, so each user must define the elementary structures of his model and graphically demonstrate how he wishes to connect them together. When the user has identified himself by logging in at a graphics terminal, he is allowed access to the local graphics -monitor and to local storage facilities where his files are constructed. See Michel and Koch [l] for details . The basic tools available for constructing a graphic model of a network are: mnemonics or line drawings elements terminals terminal types local variables global variables parameters equations element instances nodes networks The basic building blocks to be created are called elements . These are the simplest items that can be devined in the proposed network (i.e., resistor, pulley, pipe) . In the drawing mode a graphic mnemonic or line drawing is created to represent an element. The mnemonic is a visual tool to aid in the construction of the network. Several points on the mnemonic may he identified by the user as terminals . Terminals are connective points used in the construction of networks. Terminals are also the means by which certain variables (i.e., current, force, pressure) are transmitted to and from an element. The terminals are numbered automatically from zero by the drawing package . O 2 6l 6 Figure 2-1: Graphic mnemonic of a pulley with three terminals Terminals may have two sets of transmittable variables associated with them, the E-set and the I-set. The user defines the terminal types he will need for his model and the E-sets and I-sets (of variables) associated with each. Examples of terminal types are: 10 TYPE ELECTRIC MECHANICAL (one dimensional) WATER-PIPE JOINT (static) E-SET V (voltage) X (displacement) P (pressure) I-SET I ( current ) F (force) F (flow) FX (force in x-dir.) FY (force in y-dir. ) E-set variables will satisfy Kirchoff ' s Voltage Law, and I-set variables will satisfy Kirchoff 's Current Law at terminal connections, but the only constraints placed on them within an element are those stated by the user. Each terminal on the graphic mnemonic may be given a terminal type by the user. If no terminal type is assigned, a type will be assigned to the terminal during Global Analysis determined by its connections in a network. The E- and I-variables defined with the type are automatically associated with the terminal and are available for use in equations as subscripted variables with the subscript corresponding to the terminal number. Three other variable types may also be associated with an element. Local variables are known to the element as a whole but are unknown outside the element (i.e., local temperature). Global variables are known to the whole element but may also be common to several elements (i.e., acceleration of gravity). Parameters (i.e., mass, resistance, pipe length) are variables whose values must be assigned each time an instance of an element is used to construct a network. Parameters may be given default values in the element definition. If no value is assigned to a parameter when an element is used in a network, the default value will be assigned. A set of algebraic and/or differential equations which define the behavior of the element may be included in the element definition. The variables used 11 in the equations may be local, global, parameter, or subscripted terminal variables associated with the element . 9 2 6 1 6 o PULLEY Terminal types: — MECHANICAL 1 — MECHANICAL 2 — MECHANICAL (No globals, locals, or parameters) EQUATIONS : X(0) + X(l) - 2*X(2) = F(0) + F(l) + F(2) = F(0) = F(l) Figure 2-2: Complete definition of massless, frictionless pulley with three terminals of type MECHANICAL. In the definition of terminal type MECHANICAL, displacement of a terminal, X, and the force, F, acting on the element at a terminal are assumed to be positive in a downward direction. i X(2) JX(1) 4 x(o) J F(2) JF(1) A F(0) Figure 2-3: Assumed positive directions of the variables X and F at the pulley terminals. 12 When an element definition is complete it is assigned a name and is stored in the user's local file. After defining several elements the user has a 'menu' of elements from which he can select to construct a network. This menu is displayed on the CRT terminal. Elements can be selected from the menu, and their mnemonics displayed on the CRT at locations designated by the user. The mnemonics displayed are called instances of the element definitions. Several points on the CRT are designated as nodes by the user. A terminal may be connected to a node by constructing a line between them. Several terminals may be connected to the same node, but a terminal must be connected to just one node. As far as the graphics system is concerned the terminals are 'stretched' to coincide with the nodes to which they are connected. Nodes are the means by which terminals ■ of several elements may be connected together. Only terminals of the same (or undefined) type may be connected at the same node. The common terminal type can then be associated with the node. Kirchoff 's Voltage Law is applied to each variable in the E-set associated with the node. E-variables can therefore be associated with nodes rather than terminals. Kirchoff 's Current Law is applied to each variable in the I-set associated with the node. For each variable in the I-set, the sum of the values of that variable on each of the terminals connected to the node must • be zero. I-variables remain associated distinctly with the terminals. Several more elements will now be defined. The terminal type JOINT will also be used. The two I-variables, FX and FY, represent the horizontal and vertical components, respectively, of the force exerted on the element at a terminal. The positive directions of the components are assumed to be: i 13 FY FX Other elements in the menu: 1. ■O 3. This is a fixed pin joint FIX Terminal type: - JOINT (No equations) ROLLER Terminal type: - JOINT Equation: FY(0) = This is a pin joint that supports no vertical force. It is assumed to move on a frictionless surface. BEAM Terminal types: - JOINT 1 - JOINT Parameter: A Equations: FX(0) + FX(l) = FY(0) + FY(l) = FX(1) * sin(A) + FY(l) * cos(A) = This represents a massless beam. The resultant forces exerted on the beam at the terminals act along the length of the beam. The parameter A is the angle the beam makes with the horizontal. The first two equations are the static force relations, and the third equation represents the static moment relation about terminal 0. ll* k. 6 1 CONVTR Terminal types: - JOINT 1 - MECHANICAL Equations: FX(O) = F(l) + FY(0) = X(l) = 5. The converter has terminals of different types. The second equation relates the y-components of the forces on the terminals. MASS Terminal type: - MECHANICAL Parameter: M / \ Default equation: M = 50 Local: V, A Global: G Equations: M * G + F(0) = M * a' V = X(0)' A = V" This element has two local variables, the velocity V and acceleration A of the mass. G is the acceleration of gravity. The first equation represents the resultant force acting on the mass. From the menu of PULLEY, FIX, ROLLER, BEAM, CONVTR, and MASS, element - instances can be selected and displayed on the CRT as shown in Figure 2-k. 15 Figure 2— U: Element instances selected to construct a network. As the element mnemonics are displayed the terminals are numbered from zero by the system. These terminal numbers are used for identification within the network and in no way affect the terminal numbering in the definitions of the elements. Now by designating certain positions as nodes the terminals can be connected together through these nodes. Figure 2-5 is an idealized illustration of the connected network. In practice lines are drawn between nodes and terminals, but these lines have been omitted. The assignment of a parameter value to A for each instance of BEAM is shown. The numbers in brackets correspond to the nodes , and the terminal numbers 0-7 have been omitted to avoid confusion. 16 Figure 2-5: Idealized illustration of connected network. At node 2 an extra terminal (terminal #8) has "been added and designated by the user as external to the network, i.e., the means by which the network can communicate with the outside world. A simple graphic mnemonic may be drawn to represent the network as in Figure 2-6. Terminals on the mnemonic correspond to external terminals on the network. Terminal on the mnemonic is terminal #8 at node 2. TRUSS Figure 2-6: Graphic mnemonic for TRUSS. IT This network and its mnemonic are now stored in the user's file and TRUSS is added to the menu. TRUSS is given all the attributes of an element upon storage. In fact, local, global, and parameter variables could be defined and equations included in the definition if desired. The element TRUSS has the added feature of acting like a macro expansion each time it is used as an instance in a network. Equations associated with networks may include any global, local, or parameter variables defined. Terminal variables are associated with terminals in the network rather than terminals shown on the simple mnemonic for the network. The subscripts for the terminal variables are the numbers assigned to the terminals as the network is constructed (Figure 2-k) . In order to represent the I-variable FX on terminal of the roller in a network equation, the term FX(l) would be used. A second network, Figure 2-7, constructed from elements in the menu includes TRUSS as well as basic elements from the menu. 18 b) Figure 2-7: a) Mnemonics selected for second network showing terminal numbering, b) Conceptual illustration of way TRUSS is expanded to include all the elements in its network. After the network shown in Figure 2-7 has been connected via nodes, we get Figure 2-8. One local variable and one equation are included in the definition. The network can be given the name NET and stored in the files. No external terminals need be specified and no graphic mnemonic need be defined. 19 NET Local: G Equation: G=32 Figure 2-8: Connected network with node numbers in []. When the graphic modeling of the network NET is complete the user can choose to save his files on tape for use later or proceed to step 2 to begin itemization. The advantage of proceeding to step 2 immediately is that the more obvious errors will be detected and can be corrected before the files are saved on tape. 2.2 ITEM ANALYSIS ITEM ANALYSIS [2] runs in the remote central processor, and must be invoked by activating the graphics monitor there. Storage facilities are provided for the user's files in the remote computing system. ITEM ANALYSIS is the medium through which files are transmitted to the remote filing system. Preliminary checking for errors in the element definitions is performed, and all information relating to the graphic mnemonics is stripped from the element definitions. Four files are provided for the user in the remote storage area. Elements are immediately stored in PICLIB by ITEM on receipt from the user. 20 Elements need only be transmitted once to ITEM or retransmitted if changes have "been made. Upon receipt of the command ITEMIZE 'name', the element 'name' is retrieved from PI GLIB, itemized, and stored in ITEMLIB overriding previous itemized versions of the same element. Terminal types are transmitted to ITEM and stored in WODLIB. Error messages to the user generated by ITEM and the analysis programs after ITEM are stored in ERRLIB. When an element is itemized it is put into a table-structured format in ITEMLIB suitable for handling by Global Analysis. . (See Table A-l, Appendix A.) ITEM can detect errors that are local to element definitions, but cannot check for errors that occur when elements are joined to produce networks. Each- itemization of an element is an isolated event. A network can even be itemized before any of its constituent elements are itemized. The local errors that can be detected are: 1. Multiply-defined variables within one element definition. 2. Invalid syntax in equations. 3. Referencing non-existant terminal types. Terminals that have not been assigned types are ignored at this step. ITEM parses all equations found in an element definition into tree structures, flags the type (source) of each equation, and links equations of the same type together. In element definitions there are four possible sources of equations. 1. Element equations. These are the equations that define the behavior of the element. 2. Default parameter equations. If the element has parameters, these parameters are permitted to have default values expressed by means of equations. (See definition of MASS.) The parameter default 21 equations in one element definition are linked together. 3. Network equations. These are the equations that define the behavior . of a network. h. Parameter equations. If the element has a network expansion, each element instance in the network with parameters may have equations assiging values to these parameters. The equations for each element instance are linked together. The first word of each tree is a pointer to the next equation in the linked list of equations of the same type. A zero in the first word indicates the last entry in the list. The first two "bytes of the second word of each tree contain the type flag, T, of the equation and the equation number, #, in the linked list. The second two bytes are reserved for Global Analysis. The remainder of the block following the first two words contains the parsed equation, in a tree-structured format. T tt T # PARSED EQUATION PARSED EQUATION T # PARSED EQUATION Each node of the tree-structured format of an equation contains two or three halfwords: L R L indicates whether the node is an operation or an operand. L and R are left and right operand pointers, respectively, if is an operation. 22 Binary Operators = X 07' X 08» X 09' X 0A' X 'OB' X »oc f X r 0D* Unary Operators: = X '10* X *11' System Function: = X 12' L R equal sign addition subtraction multiplication division assignment exponentiation L di f f er ent i at i on unary minus L R i natural log exponentiation (natural base, square root arctangent absolute value cosine sine L = X'01' X'02' X'03' X'OV X'05' X'06' X'OT' R points to the operand for the system function. User Function: = X'13" R designates a user's special function. L is the count of the number of halfwords immediately following the node which point to the operands for the function. L R 23 L If indicates an operand, the L and sometimes R further identify the operand. Two halfword operands: = X'01' X'02' X'03' x'06' global variable parameter local variable constant The value of indicates in which table in the itemized version of the element the operand name is to be found. L indicates which entry in the table is the 8-character alphanumeric name. A separate table is built for global, parameter, and local variable names. The constant table contains double-precision floating point numbers. (See Table A-l, Appendix A.) ITEM has no way of identifying E- and I-variable names in equations other than recognizing subscripted variables that are neither user nor special function names. The alphanumeric names of these subscripted variables are placed in a special table called the E-I table. Global Analysis will distinguish between E- and I-variables. Three halfword operands = X'OU' L R L R indicates the E-I table entry ff of name in E-I table subscript ft accompanying variable Parameter equations, like M = 150, in Figure 2-8, which occur in network definitions are handled differently by the Parsing Routine. The left-hand-side (LHS) of the equation must be a single variable or a syntax error is recognized, This variable, which is assumed to be a parameter name (i.e., M) is not defined in the network being itemized (i.e., NET) but in the element with which it is 2k associated (i.e., MASS). These LHS variables are placed in a special LHS table in the element definition where the network expansion occurs. The variable is replaced in the equation by a node: = X'02 1 L No ambiguity occurs between the use of = X'02' for both the parameter name table and the LHS table. LHS variables occur only on the left hand side of parameter equations associated with element instances in network definitions. Parameters for the network can occur only on the right hand side of these same parameter equations or in network or parameter default equations. Figure 2-9 is the itemized table structure for MASS. If the element were a macro-expansion (i.e., TRUSS or NET) the entry, network pointer, in the first table in Figure 2-9 would be a pointer to another set of tables that would define all the nodes, connections, and element instances in the network. There are two basic tables in the network expansion. The Node/Connection table contains all the information about which terminals are connected to which nodes, and the type of each node. The element instance table contains one entry for each element instance in the network. Subtables for each element instance include a list of entry numbers in the Node/Connection table for every terminal on the instance and a linked list of parsed parameter assignment equations. (See Appendix A, Table A-l.J When all the elements in the user's menu have been accepted by ITEM as error free and stored in ITEMLIB the user can go directly to step 3. However, he can re-enter the simulation system at step 3 at a later time knowing all his elements filed in ITEMLIB and terminal types filed in NODLIB are ready for Global Analysis. H o Pn K P « Eh Ph O O o M EH ■>: ;i ih o o a, PL. > tt < Ph PL| o II tl PQ co CO H pLJ CO §j 5 l-l H a < CO o o 53 O £ J U .-p O .— m fe i^ M Q 25 X tin (1, CO CO CO o a o •H -P •H fl •H «H (1) t3 C •H 0) CD S •H O LT\ % 6 -P -P H c £ H a; h 6 1+ 6 u 1 k 6 Figure 2-12: Node N, type MECHANICAL, with E-variable X assigned internal value 6. I-variables satisfy Kirchoff's Current Law. At each node the variable on the terminals corresponding to a variable in the I-set associated with the node must sum to zero. The internal name assignments must be made to satisfy this condition. Chapters 3 and h detail two approaches to satisfying this condition. The first approach is called the Node Method . Each I-variable on every terminal in the network is assigned a unique name by using an I-variable counter. Then a linear equation is generated for each variable in the I-set at each node. This equation sets the sum of the I-variables on the terminals to zero. A simplification is made when only two terminals are connected at a node. If one variable in the I-set is assigned the value K by the counter for 35 one terminal, then the value of the same I-variable on the other terminal may "be assigned the value -K, eliminating the need for a linear equation. The second approach is called the Loop Method . A set of linearly independent I-variables is determined for the network. The internal names of all the I-variables are expressed as linear combinations of the internal names of the independent set. The name assignments automatically satisfy K.C.L., and no extra linear equations need be generated. For the current example, the Node Method is used to illustrate assigning internal names to I-variables. In Figure 2-13, the same node N is shown with the internal names assigned to the I-variable F. The name for F on each terminal is unique. A doublet node 5 K replaces a triplet node 5 R J-l in the output equations and K is different for each terminal. The parsed tree format of the linear equation generated is also shown. ELEMENT 1 ELEMENT 3 F(2) 36 5 -V 5 3 5 2 -> 5 U \ F(l) -> \ TERMINAL v ; \ 1 5 1 -¥ 5 5 \ *"* "~* / ELEMENT V 2 \ GENERATED LINEAR EQUATION (CONSTANT ZERO Figure 2-13: Node N, type MECHANICAL, showing internal names assigned to I-variable F and the linear equation for K.C.L. Figure 2-lU shows the tree structure of NET and the possible internal names assigned to every variable in the network. E(k) represents an internal name assigned to an E- variable. I, L, and P represent internal names assigned 37 to I-variables , respectively. NET TRUSS G=L(0) CONVERTER PULLEY FX(0)=I(0) FY(0)=I(1) FX(0)=-I(0) FY(0)=-I(1) F(1)=I(2) X(1)=E(0) X(0)=E(2) X(1)=E(1) X(2)=E(0) F(0)-I(U) F(1)=I(3) F(2)=-I(2) M=P(0) V=L(1) A=L(2) G=L(0) X(0)=E(1) F(0)=-I(3) FIX ROLLER BEAM BEAM FX(0)=I(15: FY(0)=l(l6i FX(0)=I(11) FY(0)=I(12) A=P(2) FX(0)=I(9) FY(0)=I(10) FX(1)=I(T) FY(1)=I(8) A=P(3) FX(0)=I(5) FY(0)=I(6) FX(1)=I(19) FY(1)=I(20) Figure 2-lU: Internal names assigned to all the variables in NET. M=P(l) V=L(3) A-L(U) G=L(0) X(0)=E(2) F(0)=-I(U) BEAM A=P(U) FX(0) = I(13) FY(0)=l(lU) FX(1)=I(1T) FY(1)=I(18) Figures 2-15 and 2-l6 show the internal names assigned to E- and I- variables , respectively, on the graphic model. 38 X = E(l) 9 Q X = E(2) ^~\ r~^\ Figure 2-15: E-varia"ble name assignments for NET. FX(0)=I(15) FY(0)=l(l6) FX(1)=I(17) FY(l)=l(l8) FX(0)=I(13 FY(0)=l(lU) l_. FX(0)=I(11) FY(0)=I(12) FX(1)=I(19) FY(1)=I(20) FX(0)=I(5) FY(0)=I(6) FX(1)=I(7) FY(1)=I(8) FX(0)=I(9) FY(0)=I(10) F=I(3) F=-I(3) FX=I ( ) FY=I(1) -0 FX=-I(0) FY=-I(1) F=I(2) F=-I(2) 6 F=l(U) F=-I(U) /_s r^ Figure 2-l6: I-variable name assignments for NET. 39 Each element instance in the network may contribute equations to the output set from three sources. 1. . Element equations if the element is "basic. 2. Network equations if the element has a macro expansion. 3. Parameter equations assigning values to each parameter. All references to variables are replaced by internal names assigned to the variables for that particular instance. The equation set in Table 2-1 is that generated by GLOBAL II for NET based on the internal names shown in Figure 2-lH. The source of each equation is indicated. The number of variables and their types are: 3 E-variables 21 I -variables 5 local variables 5 parameters 3U This equation set and accompanying tables are sent directly to step U, the elimination procedure. 1+0 1(0) = 1(5) + 1(7) 1(1) = 1(6) + 1(8) = 1(9) + 1(H) + 1(13) = 1(10) + 1(12) + 1(1*0 = 1(15) + 1(17) + Kl9) = 1(16) + 1(18) + 1(20) 1.(0) = 32 1(12) = 1(9) + K7) = 1(10) + 1(8) = o 1(7) * SIN(P(2)) + 1(8) * C0S(P(2)) = 1(5) + 1(19) = 1(6) + 1(20) = 1(19) * SIN(P(3)) + 1(20) * C0S(p(3)) = 1(13) + 1(17) = I(lU) + 1(18) = 1(17) * SIN(P(10) + 1(18) * cos(p(U)) = o E(l) + E(2) - 2 * E(0) = 1(3) + I(k) - 1(2) = 1(3) = Kk) P(0) * L(0) - 1(3) = P(0) * L(2) L(l) = E(l)' L(2) + L(l)* P(l) * L(0) - l(U) = P(l) * L(U) L(3) = E(2)' L(k) = L(3)' -1(0) = 1(2) = -1(1) E(0) = P(0) = 150 P(l) = 50 P(2) = 60 P(3) = 120 P(U) = 90 Linear Equations for K.C.L. 'NET' Definition 'ROLLER' Definition 'BEAM' Definition 'BEAM' Definition 'BEAM' Definition •PULLEY' Definition 'MASS' Definition 'MASS' Definition 'CONVERTER' Definition Parameter Equations Table 2-1. 1+1 2.k ELIMINATION The function of Elimination is to "simplify systems of equations symbolically and classify variables for further numerical analysis which allows for more efficient compilation and numerical integration than would otherwise be possible." See Guimaraes [3] for details. Variables are classified as to their use in the equations, and equations are classified according to the types of operations and variables they contain. Certain classes of equations can be eliminated from the set. Several passes are made through the equation set, each pass taking advantage of simplifications made in previous passes. At the end of the passes variables have been classified into four disjoint sets . 1. SI Set. All global variables. Any variables which are functions of globals and/or SI variables, i.e., V = f( globals, SI variables). 2. S2 Set. Variable TIME*. Any variables which are functions of TIME or S2 variables or SI variables and TIME or S2 variables, i.e., V = f(TIME v S2 variables v SI variables a (TIME v S2 variables)). 3. L Set. Variables not in SI or S2 which occur only in linear expressions and not as differential terms. * TIME is a predefined global variable available for use in any equation. U2 k. M Set. All other variables, i.e., variables which occur in non-linear or differential expressions. Equations have been sorted into three different classes . 1. SI Equations. Equations that define SI variables. These equations need only be evaluated once per analysis. 2. S2 Equations. Equations that define S2 variables. S2 equations need only be evaluated once per time step in an analysis. 3. General Equations, G. All equations that are neither SI nor S2 equations. Equations of the form VARIABLE = ± CONSTANT have been eliminated, and the constant values have been substituted for the variables . Equations of the form VARIABLE = ± VARIABLE have also been eliminated. All references to variables on the left-hand-side of these equations are replaced by the corresponding variables on the right- hand-side. An equivalence table is established showing the identity of the- two variables for back-referencing purposes. In the equation set for NET there are no global variables and no variable TIME, so there are no SI or S2 equations or variables. At the end of Elimination there are two sets of variables: U3 L-SET EQUIVALENT VARIABLES Kl) -1(2) 1 00 1(3) 1(11) 1(7), -K9), -1(5), 1(19), -Kl5) Kl6) Kl8) -1(8), -1(10, 1(10) 1(20) -1(16) L(2) L(U) M-SET L(l) L(3) E(2) -E(l) and a set of general equations = -1(1) - 1(20) + 1(18) = 1(16) + 1(18) + 1(20) = 1(11) * SIN(60) - 1(18) * C0S(60) = 1(11) * SIN (120) - 1(20) * C0S(120) 0=2* I(U) + 1(1) = 150 * L(2) + I(U) - 150 * 32 = L(l) + E(2)' = L(2) - L(l)' = 50 * L(U) + I(k) - 50 * 32 = L(3) - E(2)' ■ L(k) - L(3)' hk This equation set which can he represented as a vector g_ of equations in unknowns v_ = £(y_, y_' , t), t = TIME, and accompanying tahles are sent to step 5, the numerical analysis package. 2.5 NUMERICAL ANALYSIS The numerical analysis package can perform three analyses on the system of equations. 1. = g_(y_, v_' , t ) may be solved for a dynamic or transient analysis. 2. A static analysis of the system requires solving = g_(y_, 0, t ) for some specified time t . 3. Once a stable solution has been found for the static problem a perturbation analysis can be performed. Only the transient analysis will be elaborated. See Gear, et al [h] for further details. The interaction of various routines comprising the numerical analysis package is displayed in Figure 2.17. The routine COMPILER [5] generates instructions for a routine DIFFUN that evaluates b_ = g_(v_, y_' , t) for a solution y at time t . The instructions are divided into three subroutines to correspond to the three sets of equations SI, S2, and G determined by Elimination. The instructions in the first set need be performed only once per analysis. The second set need be performed only once per time step. The third set must be performed for each iteration in the numerical integration routine. The equations in SI and S2 are set aside for the time being leaving a reduced system = G(w, w* , t) where w is the vector of variables partitioned into sets L and M, w = [L, M] t k5 SETUP [5] generates data about the elements in the Jacobians of the reduced system 3G 3G J = — and K = — 9w 3w SPARSE [6] uses the data from SETUP to generate instructions to perform several functions on J and K. Once J and K are evaluated for a set of values y at time t , instructions are needed to calculate: 1. [J + aK], a straightforward matrix addition. 2. L and U where LU = [J + aK]. These instructions are stored in a subroutine called MATINV. 3. [J + aK] d = U L _d where d_ is the vector of function values for G calculated for some y . These instructions are stored in a routine — "'m called MATMUL. The matrices J and K are generally quite sparse, so SETUP stores only the non-zero elements. SPARSE operates on symbolic matrices, but whenever possible performs arithmetic simplifications to keep the generated routines as streamlined as possible. The routine MATMUL effectively solves the vector equation [J + aK]x = d using Gauss elimination and back substitution. The inverse of the Jacobian is computed by performing a triangular decomposition of [J + aK] = LU and then premultiplying d. by U L A program DIFSUB is the main routine in the numerical integration package The interaction of DIFSUB and the other routines is shown in Figure 2.l8. DIFSUB [5] sets up the coefficients for the integration method, predicts h6 values for the variables, corrects the predicted values, and possibly changes the order of the method or the stepsize. The predictor-corrector procedure used is described briefly below. For each w in w define a vector a which contains the value of w and — -n its derivatives at time t as follows: n For w in L, a is a one element vector. — n For w in M, a is a k+1 element vector. The k derivatives of w in M —a are w h /p! , p = l,...,k, where k is the order of the method used and h is the time step. Predicted values for a are based on values of a n in the following way: — n — n-1 For w in L, a /^\ = a ., i i i For w in M, a ,^ N = Aa n where A is Pascal Triangle of order k. -n,(0) —n-1 The correction formula for a is — n a / , , >, = a , s - I ( [ J + aK] d(a , >, ) ) . -n,(m+l) -n,(m) — — -n,(m) d is the vector of values of G evaluated for a — n (m)- Z is the vector [l] if w is in L. Ms a column vector that depends on the order k if w is in M. [ J + aK] is evaluated for a previous value a / -, . -p,(q.) a = (3o/h (function of the stepsize h). DIFFUN, using the instructions for the third equation set, evaluates d_ f or each iteration of the correction formula. DIFFIM also uses the instructions for the second equation set whenever a calculation begins for a new time step. The first equation set is only used by DIFFUW when the parameters of the analysis are changed, i.e. at the beginning of an analysis. The product [J + aK] d_ is also calculated by MATMUL for each iteration. If the correction formula does not converge after three iterations [J + aK] is re-evaluated. hi -l MATINV and MATSET are performed only when [J + aK] must "be re-evaluated ELIMINATION COMPILER (DIFFUN) SETUP SPARSE (MATINV) (MATMUL) NUMERICAL INTEGRATION (TRANSIENT) I* 1 ALGEBRAIC EQUATION SOLVER (STEADY STATE) ii EIGENVALUE PROBLEMS (PERTURBATION) Figure 2-17: Programs in numerical analysis package [5] DIFFUN DIFSUB Evaluate FUNCTIONS i i i i i . MATSET DIFFUN RE- EVALUATES J+aK EVALUATE FUNCTIONS MATINV INVERTS J+aK f MATMUL MULTIPLIES [J+aK] d Figure 2-18: Interaction of routines in numerical integration package [5 1*8 CHAPTER 3 NODE METHOD OF ASSIGNING NAMES TO I-VAEIABLES 3.1 INTRODUCTION The terminal types assigned to element terminals are defined "by the user. Terminal variables included in the definition of a terminal type must be classified into two sets, the E-set and the I-set. Either or both sets may be empty or contain an unlimited (finite) number of variables, but non-empty sets must be disjoint for one terminal type. The classification of a terminal variable is made by the user, guided by the conditions imposed on the variables in each set. E-variables satisfy a generalized statement of Kirchoff's Voltage Law (KVL), and I-variables satisfy a generalized statement of Kirchoff's Current Law (KCL). The conditions on the two sets are enforced by GLOBAL II when it assigns internal names to terminal variables. Names will be assigned to E-variables that insure that KVL is satisfied at each node in a network. Similarly, internal names will be assigned to I-variables so that KCL is satisfied at each node. Two alternative methods for assigning I-variable internal names have been implemented in the simulation package. Only one method has been implemented for E-variables . The E-variable method and the Node Method for I-variables are described in detail in this chapter. The alternative approach to I-variable name assignment, the Loop Method, is described in Chapter k. 3.2 E-VARIABLE METHOD AND THE NODE METHOD FOR I-VARIABLES Consider the terminal type ELECTRIC defined to have one E-variable, V (voltage), and one I-variable, I (current). Let several element terminals kg of type ELECTRIC be connected to node N in some unspecified network. Figure 3-1 shows four element instances connected to N and indicates which element terminals are the connectives. The subscripted terminal variables, V(k) and l(k), used in the element definitions of the instances are shown beside their associated terminals. INSTANCE 1 N \ TERMINAL ' INSTANCE 3 TERMINAL 1 INSTANCE 2 TERMINAL 2 ! I < INSTANCE U \ TERMINAL Figure 3-1 During the analysis performed by GLOBAL I, equations parsed into trees are searched for tree nodes that reference the voltage variables shown in Figure 3-1. GLOBAL I replaces these tree nodes by the three-half-word tree nodes shown in Figure 3-2. (See Chapter 2, Section 2.3.1 for details.) 7(0): 1+ instance 1 V(2): h 2 instance 2 7(1): k 1 instance 3 V(0): h instance k Figur e 3-2 > t Kirchoff's Voltage Law requires the potential at any node in a circuit to be the same for all terminals at that node. The voltage or potential can therefore be associated with the node rather than the terminals at the node. 50 Expressed more generally, KVL is a statement of position. The voltage of all terminals occupying the same physical location must "be the same. Therefore, the four variables in Figure 3-2 must be equivalent. GLOBAL II assigns a unique internal name to the voltage V at node N. This unique name is the current value, k, of an E-variable counter. While processing an equation associated with an instance in Figure 3-1, if the corresponding voltage variable node for the instance, shown in Figure 3-2, is encountered, GLOBAL II replaces that node in the output equation by the two- halfword node h identifies an E-variable k is the internal name The sign associated with an E-variable is always assumed to be plus. This method assures that the voltage V at network node N is referenced in all equations in the output set by the unique identifier assigned to it. If more than one E-variable is defined for a type associated with a network node, each E-variable is processed by GLOBAL II in the way described above . The current variables, I, at node N must obey Kirchoff's Current Law, a statement of the law of conservation of charge: the algebraic sum of the currents at a node must be zero. More generally, KCL is a statement of the conservation of flow at a node. The net flow of the quantity identified by- an I-variable at a node must be zero. Using the same method described for E-variables , GLOBAL I replaces references to the current variables in Figure 3-1 in parsed equations by the three-halfword tree nodes shown in Figure 3-3. 51 1(0): 5 instance 1 1(2): 5 2 instance 2 Kl): 5 1 instance 3 1(0): 5 instance h Figur e 3-2 The Node Method assigns a unique internal name for I at each terminal on node N. I on the terminal for the first instance is assigned the current value, j, of an I-variable counter. The counter is bumped "by 1 and the name j+1 is assigned to I on the terminal of the second instance. The internal names for I on the terminals of instances 3 and U "become j+2 and j + 3, respectively. When processing equations for instance 1, GLOBAL II replaces references to I on terminal 0, represented by the tree node in Figure 3-3, by the unique internal name assigned to that I-variable, shown in Figure 3-^. The tree nodes substituted for I in equations for the other instances are also shown in Figure 3-^. The sign associated with each I-variable is assumed to be plus. 1(0): 5 J instance 1 1(2): 5 J+1 instance 2 Kl): 5 J+2 instance 3 1(0): 5 j + 3 instance U F igure l-h In addition the Node Method generates an equation in the output set parsed into the tree structure shown in Figure 3-5- This linear equation states that the variable I at node N satisfies KCL. 52 6 (CONSTANT ZERO) J+3 Figure 3-5 internal names to an I-varia"ble can be and is modified. The same internal name is assigned to the I -variable on each terminal, but the signs associated with the names are opposite. In the output equation set references to the I -variable! with the plus sign are replaced by the single node 5 J References to the I-variable with the minus sign are replaced by the linked nodes • ► 5 J i.e., the internal name identifier is preceeded by a unary minus. The parsed equation in Figure 3-6 is not generated in the output set because the KCL relation is satisfied inherently by the name assignment. 53 5 j 6 (CONSTANT ZERO) Figure 3-6 If more than one I-variable is defined within a terminal type, each I-variable is processed in the manner described above. A linear equation, if necessary, representing the KCL relation is generated for each I-variable. As a more general example, define a terminal type DJOINT, for use in two-dimensional dynamic mechanical problems. DJOINT has two E-variables: TX, position measured in the x-direction and TY, position measured in the y-direction, and two I-variables : FX, force component in the x-direction and FY, force component in the y-direction. The (x, y) positions of the terminals of all mechanical elements connected at a single joint (represented by a node) will be the same. The terminals are constrained to move together. So TX and TY satisfy the generalized statement of position formulation of KVL. The forces exerted by the joint on the members there connected must sum to zero, i.e., show no resultant force. If these forces are represented by their cartesian components, FX and FY, respectively, then each obeys the generalized formulation of KCL: the net flow (or sum) of the forces at a node is zero. The following two examples demonstrate in detail how the Node Method assigns internal names to I-variables. 5^ EXAMPLE 1: Electrical Network. Assume all terminals to be type ELECTRIC: E-variable, V, and I -variable, I. The positive direction assumed for the current variable I is away from the element, toward the terminal. In other words, when several electrical terminals are connected to a node in a network, the positive sense of all the currents is toward the node. Figure 3-7= Node N of type ELECTRIC with four terminal connections showing the assumed positive direction of flow of the currents on the element terminals. Define three elements: 1. EMF O- PARAMETER : F EQUATIONS: V(0) - V(l) = F 1(0) + 1(1) = 2 . RESISTOR PARAMETER : R EQUATIONS: V(0) - V(l) = 1(0) * R 1(0) + 1(1) = 3. GROUND 1 EQUATION: V(0) = 55 Create a network . The nodes are shown explicitly and numbered. The parameter values assigned are also shown. R=R3 E-variables: GLOBAL II assigns internal names VI, V2, V3, VU to the voltage variables at nodes 1,...,U respectively. Node Method for I-variables: GLOBAL II assigns internal names Ik to the current variables on the network terminals and generates the linear equations expressing the KCL relation for each node. T Node 1: Node 2: Node 3: Node h: + 12 + 13 = lit ©* -Il» Equations: A set of equations equivalent to the graphic network is generated with appropriate internal names replacing terminal variables and parameter values replacing parameter variables. This equation set 56 is given "below. The source of each equation is noded. Parameter values have been substituted for occurrences of parameters, and parameter equations have been omitted. EQUATIONS II + 12 + 13 = 15 + 16 + IT + 18 = V2 - V3 = Fl -Ik + 18 = VU - V3 = F2 -19 + 16 = VI - V2 = II * Rl 11 + Ik = VI - V2 = 12 * R2 12 + 15 = VI - V2 = 13 * R3 13 + 19 = V3 = SOURCE Generated by GLOBAL II EMF EMF RESISTOR RESISTOR RESISTOR GROUND In the second example a static truss network is examined. The types of all terminals are assumed to be JOINT: I-variables FX, FY. The positive directions of the two force components, FX and FY, associated with a terminal are assumed to be: FY ELEMENT FX The static problem was selected over a dynamic problem because of the relative simplicity of the equations in the element definitions. This example will illustrate how multiple I-variables are handled. 57 EXAMPLE 2: Static Truss Network. Assume all terminals to be type JOINT, Define four elements: 1. BEAM 2. GLOBAL: G PARAMETERS: A (angle from horizontal) M (mass) EQUATIONS: FX(0) + FX(l) = FY(0) + FY(l) + M * G = FX(l) * SIN(A) + FY(1) * COS(A) + M * G * 1/2 * COS (A) = The first two equations are the static force relations, and the third equation is the static moment relation about terminal 0. 2. FIX (fixed pin joint) No equations. 3. ROLLER (supports no force in x-direction) , EQUATION : k . FORCE A PARAMETERS : EQUATIONS: FX(0) = P (force) A (angle from horizontal) FX(0) = P * COS(A) FY(0) = -P * SIN(A) Create a network. The nodes are shown explicitly and numbered. LOCAL VAR: G=32 A=120 M=20 58 777777, There are no E-variables associated with this network. Instance numbers in parentheses are noted beside each instance of a BFAM for identification purposes Node Method: For each terminal in the network assign internal names Ik to variables FX and internal names Jk to variables FY and generate the linear equations showing the KCL relations. Node 1: Node 2: Node 3: II + 12 + 13 + Ik = Jl + J2 + J3 + Jk = 15 + 16 + IT = J5 + J6 + J7 = 18 + 19 + HI + 110 = J8 + J9 + J 11 + J10 = 016 J5 o J6 6 IT 6 JT 19 18 o- 110 o J8 a ill J9 J10 Jll 59 Node h: Node 5: Equations 112 + 113 + IlU = 112 O J12 + J13 + JlU = 113 115 + Il6 +117=0 J15 + Jl6 + JIT = 115 JlU 117 v J17 The equation set equivalent to the graphic network is generated. This set includes the linear equations listed above, and equations from the element instances with appropriate internal names replacing the I-variables and parameter values replacing parameter variables. The source of each equation is noted. 6o EQUATIONS II + 12 + 13 + lU = Jl + J2 + Ji+ + JU = 15 + 16 + IT = J5 + J6 + JT = 18 + 19 + 110 + 111 = J8 + J9 + J 10 + J 11 = 112 + 113 + H^ = J12 + J13 + Jl^ = 115 + 116 + 117 = J15 + Jl6 + JIT = 11 = 50 * C0S(120) Jl = -50 * SIN(120) 12 + 112 = J2 + J12 + 20 * 32 = 112 * SIN(O) + J12 * COS(O) + 20 * 32 * 1/2 * COS(O) = 15 + I 1 * = J5 + JU + 20 * 32 = Ik * SIN (60) + JU * C0S(60) + 20 * 32 * 1/2 * C0S(60) = 19 + 13 = J9 + J3 + 20 * 32 = 13 * SIN(120) + J3 * C0S(120) + 20 * 32 * 1/2 * C0S(l20) = 110 + 113 = J10 + J13 + 20 * 32 = 113 * SIN(60) + J13 * C0S(60) + 20 * 32 * 1/2 * COS(60) = 116 + IlU = Jl6 + JlU + 20 * 32 = IlH * SIN(120) + JlU * COS(120) + 20 * 32 * 1/2 * C0S(l20) = 16 + 18 = J6 + J8 + 20 * 32 = 18 * SIN(O) + J8 * COS(O) + 20 * 32 * 1/2 * COS(o) = 111 + 115 = Jll + J15 + 20 * 32 = 115 * SIN(O) + J15 * COS(O) + 20 * 32 * 1/2 * COS(O) = I1T = SOURCE Generated "by GLOBAL II FORCE BEAM (l) BEAM (2) BEAM (3) BEAM (k) BEAM (5) BEAM (6) BEAM (T) ROLLER This final equation set consists of 3*+ equations in 3^4 unknowns. Parameter values have been substituted for parameter variables and parameter equations omitted. 6l CHAPTER k LOOP METHOD OF ASSIGNING INTERNAL NAMES TO I-VARIABLES U.l INTRODUCTION A second method of assigning internal names to I-variables was developed to see if the resulting equation set could "be handled more efficiently by the numerical analysis routines. The equation sets produced "by GLOBAL II, using the Node Method first and then the Loop Method, are different, hut both are representations of the original network. The first method, the Node Method, described in detail in Chapter 3, is node-oriented as the name suggests. Each network node is considered separately. An I-variable is assigned a unique name for each terminal at a node. A linear equation is then generated setting the sum of these internal names to zero, forcing the I-variable to satisfy KCL at the node. The Loop Method is analagous to the electrical circuit technique of determining a set of loop currents for a circuit. The current in a branch of the circuit is the sum of the loop currents passing through the branch. The branch currents automatically satisfy KCL at each node in the circuit. The Loop Method is a generalization of the loop circuit technique applied to a generalized network. A set of independent loop I-variables is determined for the network. The I-variable at a terminal is represented internally as the sum of the loop I-variables passing through the terminal. These linear expressions for I-variables automatically satisfy KCL at every node in the network. The theory of linear graphs is the basis on which the Loop Method was developed and implemented. A brief summary of the definitions and theorems used is contained in Section U.2. See Mayeda [7] for details. 62 The remainder of the chapter discusses the theoretical development and implementation of the Loop Method within the framework of GLOBAL II. Appendix D contains the technical details accompanied by a flowchart of the program LOOP which determines loop I-variables and the resulting linear expressions for all I-variables in a network. k.2 LINEAR GRAPH THEORY REVIEW A linear graph G is a collection of vertices and lines with endpoints called edges . G is weighted and oriented if there is a weight and an orienta- tion associated with each edge. Let G he the symbol, hereafter, for a weighted, oriented, linear graph. G is connected if there is a continuous path "between any two vertices in G. A set of maximal connected subgraphs of G is a set of connected subgraphs such that each edge and each vertex in G are in exactly one subgraph. Let p be the symbol for the number of maximal connected subgraphs in G. For simplicity in the rest of this summary we assume p = 1. This constraint is not assumed when the theory is applied to network models. The step toward generalization, p > 1, is straightforward. Each maximal connected subgraph g. (i = l,...,p) of G is a graph for which p. = 1. The theory is applied to G with p >, 1 by applying it to each g. , i = l,...,p. Let n be the symbol for the number of edges in G, and n be the symbol for the number of vertices. The following graph G* will be used to illustrate further definitions and theorems . 63 Figure k- 1: Weighted, oriented, linear graph G* with p = 1 An exhaustive incidence matrix A of G with elements a is defined as e pq +1 if edge q is indicent at vertex p and oriented toward p -1 if edge q is incident at vertex p and oriented away from p otherwise a = -< pq A has n rows and n columns. One row of A represents one vertex of G and eve e the edges incident at it. One column of A represents an edge in G and the vertices at which it is incident. The rank of A can be shown to be n - p. e v 6k ^ edges vertices. 1 2 3 h 5 6 7 8 9 10 11 12 1 +1 +1 +1 2. +1 +1 3 1 1 +1 +1 h +1 +1 5 -1 -1 6 -1 -1 7 -1 -1 8 -1 -1 9 -1 -1 10 -1 -1 11 +1 Figure h-2 A for linear graph G*. Rank of A is n -1 = 11-1 = 10. e ox- e v The rows of A are not linearly independent, because each column of A e e contains exactly two non-zero entries, +1 and -1. If one row of A were e deleted, the new matrix would have rank n -1, (assuming p = l), and the rows would he linearly independent. Such a matrix A is called an incidence matrix of G. The vertex whose row was deleted is called the reference vertex . Suppose the weights in G represent variables that must satisfy Kirchoff's Current Law (KCL) at each vertex in G. The sign of the variable is taken as positive at the vertex toward which the edge is oriented and negative otherwise, Let w be a column vector of these weights or variables arranged in the order corresponding to the order of their associated edges in A and A . w : [w x w 2 w 3 w^ w 5 w 6 w ? w 8 w 9 w iQ w w 12 ] Then A w = is a matrix equation representing the set of KCL equations for G. Aw = represents a linearly independent subset of A w = 0. 65 A w = W] _ + v 6 + w ? V 2 + V 3 k + W 5 + W 10 + V ll " w 5 " V 6 -v 3 - w u - W T " V 8 " W l " V 2 " W 9 " W 10 - W ll " W 12 w 12 — — = Figure U-3: Matrix equation for the KCL relations in G* A circuit is defined to be a connected graph in which the number of edges indicent at each vertex is exactly two. A circuit is a closed path that passes through each vertex exactly once. An edge-disjoint union of circuits is a graph composed of circuits which have no edges in common. An exhaustive circuit matrix B of G with elements b is defined as: e pq +1 if edge q is in circuit p and has the same orientation as p = -{ -1 if edge q is in circuit p and has the opposite orientation to p otherwise pq The columns of B represent edges in G and identify the circuits in which they appear. The rows of B represent all the circuits and edge-disjoint unions of circuits in G. 66 l l 3 3 Figure h-k: Circuits in linear graph G*. ^^edges circuits 1 2 3 k 5 6 7 8 9 10 11 12 CI +1 -1 +1 -1 +1 -1 C2 -1 +1 -l +1 -l +1 C3 +1 -1 +1 -1 -l +1 -l +1 Figure U- 5: Exhaustive circuit matrix B of G* A tree T of G is defined to he a connected subgraph of G that contains all the vertices of G and no circuits. A square submatrix A , order n -1, of incidence matrix A is non-singular if and only if the edges in A represent a tree of G. The columns of A can be rearranged so that those columns representing the tree are on the right and can be represented as A = [A A_l. *• c T 61 Figure U-6: Tree T* of graph G* . 1 7 2 3 k 5 6 8 9 10 11 12 1 +1 +1 +1 2 +1 +1 3 +1 +1 +1 +1 It +1 +1 5 -1 -1 6 -1 -1 7 -1 -1 8 -1 -1 9 -1 -1 10 -1 -1 Figure H-7: Incidence Matrix A = [A A ] of G* with reference vertex 11. Those edges in G which are not in T are called the chords with respect to T. The number of edges in a tree is n -1. The number of chords is n -(n -l) v e v The union of a chord e with tree T produces a subgraph which is a circuit. The set of circuits which are subgraphs of e. u T, i = 1 , . . . ,n -(n -l), are i e v . called the fundamental circuits with respect to T. The circuit matrix B of fundamental circuits, arranged so columns of edges in T are on the right, has rank n -(n -l). B can be represented as [U B m ], where U is a unit matrix. The e v T orientation of the circuit is the orientation of the chord. Every row in B is a linear combination of the rows in B. 68 1 7 2 3 h 5 6 8 9 10 11 12 1 2 1 1 -1 1 -1 l -l 1 -l -1 1-10 Figure h-Q: Fundamental Circuit Matrix B of G* with respect to T*. It can be shown for any tree T of G that AB =0. Let I he a column vector of weights of the chords with respect to a tree T of G. Let J_ be the result of the following transformation: I = B 1 ! . — — c Premultiply the transformation by A: ,t. AI = AB I . — — c ,t Since AB is always zero, AI_ =0. If G satisfies KCL, i.e., Aw = 0, then we have the equality Aw = AI = AB t I . — — — c This equality allows us to substitute a new set of edge-weights, I_ for w, in G and still preserve the KCL relationship. The edge-weights in I_ are linear combinations of the edge-weights of chords relative to T. The subset of chord edge-weights is an independent set. Knowing the values of this subset is sufficient to determine the values of the edge-weights on tree edges appearing in fundamental circuits . The edge-weight of any edge not in a fundamental circuit is zero . Applying B to I_ = [w w ] gives an equivalent set of edge-weights J_ for the linear graph G* . 69 I = B I = — — c w. W„ -w. w„ -w. W l +V T - W l " V T -w. w. -w„ w = v l W T W 2 V 3 W U W 5 w 6 w 8 V 9 v 10 v ll L v i2_ Figure k-9- Equivalent set of edge-weights for graph G*, -w Figure U-10: Linear graph G* with equivalent set of edge-weights that automatically satisfy KCL, k.3 LINEAR GRAPH THEORY AND NETWORK MODELS Linear graph theory is commonly used in the analysis of electrical circuits A circuit of two terminal elements can easily be transformed into a weighted, TO oriented, linear graph. Each two terminal element is identified with an edge in the graph. Each node in the circuit corresponds to a vertex. The current flowing through an element is the edge-weight of the corresponding element- edge. The assumed direction of current flow through an element determines the orientation of the edge. (See Figure *J-11.) Figure U- 11: Electrical circuit of two terminal elements and a weighted oriented linear graph. Linear graph theory provides a well-defined procedure for determining a linearly independent set of edge-weights from a weighted oriented linear graph, This set corresponds to a set of loop currents for the electrical circuit. Determining a linearly independent set reduces the number of unknown variables associated with the circuit. The General Purpose Simulation Package is capable of analyzing networks composed of multi -terminal elements with a variable number of I-variables . associated with the terminals. I-variables are generalized current variables that satisfy a generalized statement of KCL. (See Chapter 3.) If weighted, oriented, linear graphs can be constructed for generalized network models, then it should be possible to determine a linearly independent set of loop I-variables . 71 Reducing the number of unknown I-variables and the number of equations in the output equation set generated by GLOBAL II could be a very desirable function For instance, in Example 2, Chapter 3, there are 3^ distinct I-variables, a large number for a relatively simple example. If all the I-variables can be renamed in terms of a linearly independent set, such that KCL is automatically satisfied at each node, then the linear equations generated by GLOBAL II to satisfy the KCL relations can be eliminated. Generalized network models are not so readily transformable into linear graphs as circuits of two terminal elements. Elements are permitted to have a variable number of terminals and a variety of terminal types . Each I-variable associated with every terminal type in the network will have to be considered separately. When constructing a linear graph for variable I in the I-set of K. terminal type T . , only elements in the network with terminals of type T. need J J be considered. In effect, we look at a sub-network of nodes of type T and J element terminals of type T.. In Figure U-12 is a network of eight elements with two terminal types. Nodes 1, 2, and 3 are type T : E(X), l(Y, Z), and nodes k and 5 are type T : E(W), l(V). The 27 distinct internal I-variable names generated by the Node Method are shown at the terminals. The subnetworks considered for each I-variable are shown in Figure U-13. 72 Y=I(0) Z=I(1) Y=I(2) Z=I(3) Y=r(i+) Z=I(5) Y=l(6) Z=I(T) Y=I(19) Z=I(20) V=I(8) V=I(21 V=-I(8) V=I(23) Figure U-12: Network with two terminal types. 73 1(21) Kl) 1(3) 1(5) 1(7) Figure U-13: Subnetworks for I-variables Y, Z and V. lh In electrical circuits, two terminal elements can be associated with edges in linear graphs because the current flow is conserved as it passes between the terminals of the element. More generalized elements with multiple terminals cannot be associated with edges. Even two terminal elements cannot be associated with edges because conservation of the I-variable between the terminals is not guaranteed. We are now referring to elements as they appear in subnetworks with only terminals of one type. For an electrical circuit, such as in Figure ^J— 11, a linear graph could be constructed in which each element and each node become a vertex and each terminal^ becomes an edge. The orientation of the two edges at each element-vertex could be made the same and the edge-weights the same which would preserve the conservation of flow through the element. (See Figure U— lU . ) Alternatively, the orientation of the two edges could be made opposite and the edge-weights opposite in sign. Each of the vertices still preserves the current flow. (See Figure U— lU. ) Any of the three graphs in Figures i+-ll and U— lU could be used to determine a set of loop currents for the circuit. /\ V \y i i \ 5 I 3-^ O— — -c ) »* I, 2 k k "2 ~ x 2 ^k ^h Figure U-l!4: Alternative linear graphs for electrical circuit. We can let each node and each element be a vertex in a linear graph for a subnetwork of a generalized network. The orientation of all edges will be assumed toward node-vertices, away from element-vertices. The edge-weights will 75 be the I-variable internal names generated by the Node Method. Figure U- 15 is a linear graph for the subnetwork associated with I-variable Y in Figure k- 13. 1(0) 1(2) 2 1(10 1(6) 7 1(19) o k Figure U— 15 1 Weighted, oriented linear graph for subnetwork for I-variable Y. We know the node-vertices satisfy KCL for the I-variables because of their definition, but we have no such guarantee for the element-vertices. The I-variable associated with a subnetwork is either conserved between the terminals of an element, or the element is a sink or source for the I-variable. If we can demonstrate from an element definition that the I-variable is conserved between the terminals , then the element-vertex in the graph is satis- factory as it is. If conservation cannot be demonstrated, then the element- vertex must be modified. If the element does not conserve the I-variable, we create another edge incident at the element-vertex, oriented away from the vertex, and assign it an edge-weignt equal to the negative sum of the edge-weights on the original edges incident at the vertex. If element -vertex 2 in Figure U-15 does not conserve variable Y then the element-vertex is modified as in Figure h-l6. 76 -I(2)-I(U) 1(2) KU) Figure k-l6: Modification of element -vert ex 2 in Figure U— 15 A universal sink/source for Y is added to the linear graph as a special vertex, a. An incidence edge added to any element -vert ex to force it to satis: KCL is made incident to a. All single terminal element-vertices are automati- cally modified to have incidence edges to a under the assumption that single- terminal elements must he sinks or sources. When these modifications are made, all node-vertices and element-vertices satisfy KCL for the I-variahle. Since the linear graph completely defines the total flow of the I-variahle throughout the network, and the flow is conserved at all vertices, then a must also satisfy KCL. We now have a linear graph to which linear graph theory can he applied to determine an independent set of loop variables for the I-variahle associated with the graph. Figure h-l'J shows the completed linear graph for Y. We have assumed that only elements 1 and 2 conserve Y between their terminals. 7 K6) Figure h-l'J: Linear graph for Y which satisfies KCL at each vertex. 77 k.k CONSTRUCTING THE GRAPH The example used in this section will be the electrical network of Chapter 3, Example 1, reproduced in Figure H-l8, showing the I-variable assignments made by the Node Method. The elements are identified by numbers enclosed in angle brackets. c> nr Figure U-l8: Electrical network. We wish to construct a weighted, oriented, linear graph for this network. The I-variables will correspond to the edge-weights and will satisfy KCL at each vertex in the graph. Since the I-variables at each node in the model are required to satisfy KCL, we let each node correspond to one vertex (called a node-vertex) in our linear graph. Each terminal at a node in the model will correspond to an edge incident at the corresponding node-vertex in the graph. The assumed orientation of an edge will be toward a node-vertex. The weight of each edge is the I- variable internal name generated by the Node Method for the corresponding terminal. We pause to look at the graph thus far constructed, noting that the location of the second endpoint of each edge is not yet defined. 78 Ik -Ik 15 IT -19 19 -•-0 k Figure U— 19 : Node-vertices of linear graph. We cannot coincide edges e and e, even though they correspond to terminals' on the same element, <8>. The orientations are opposite, and there are two edge-weights to he considered. We define a new vertex for the graph called an element-vertex, denoted by a /\ . We make a one-to-one correspondence between the elements in the model and element-vertices in the graph. An edge is incident at an element -vert ex if it corresponds to a terminal on the element in the model. The graph now takes on the appearance in Figure U-20 . 1 Figure U-20: Linear graph with element -vertices . The orientation of all edges incident at element-vertices is away from the vertices . 79 These pseudo-vertices,/^, must satisfy KCL for the weighted edges incident at them in order to fulfill the requirements for our linear graph. We go hack to our network model and examine the definitions of each element In the definition of a RESISTOR (Chapter 3) is the linear equation for the current variahle: 1(0) + 1(1) = 0. Substituting the internal names for I assigned to the terminals of element <8> into this equation gives: II + Ik = 0. Looking at element-vertex /8\ in the linear graph thus far constructed, we see that the equation for the internal names above satisfies the KCL condition for the edge-weights on the incidence edges of /8\ . The original equation in the definition of the RESISTOR is called a characteristic equation for the I- variable I . Similar applications to RESISTOR instances <5> and <7> show that /S. - vertices /y\ and /7\ also satisfy KCL. The element definition for EMF also has a characteristic equation: 1(0) + 1(1) = 0. Applying this equation to EMF instances <6> and <9>, we see that Z\ -vertices /6\ and /9\ also satisfy the KCL requirement. The ground element <10> has no characteristic equation in its definition, so Z\ -vertex /IPX does not satisfy KCL. We can force this vertex to satisfy KCL by creating another edge incident to it, oriented away from it, and having an edge-weight equal to the negative of the sum of the edge-weights of the other edges incident to it. The other end of this new edge will be incident at a new node-vertex called the alpha-vertex, (a). If there had been any other 80 /S. -vertices in the graph which did not satisfy KCL, they would have edges similarly constructed, incident at the same alpha-vertex. We have constructed a linear graph G + (cm in which all the vertices in G satisfy KCL. We can construct an exhaustive incidence matrix A and incidence e matrix A from A with fa) as the reference vertex. We know that AW = 0, since the n -] vertices in G satisfy KCL. Any linear combination of the rows in A v also satisfies the equality, and the Qx) row in A is a linear combination of the n -1 rows in A. So the ("on satisfies KCL. Our linear graph now appears in Figure U-21. II __^q^_I3 Figure U-21: Linear graph for electrical network, The constructed graph in Figure U-21 is identical to graph G* in Figure U-l, The edge-weights have become the I-variables . Vertex 11 is the (on . A in 1 ■:' k-2 is the exhaustive incidence matrix for our constructed graph, and A in Figure k- 7 i s an incidence matrix with reference vertex fen . ' now select a tree from the constructed graph. The procedure for Lecting a tree will be discussed in section U.5. Let the tree selected be T* in Figure k-6. The chords with respect to the tree are the ones with edge- [] and 13. We use the fundamental circuit matrix, B, in Figure h-Q. 81 Let I ' = [II I3l. Then the transformation I = B I gives us a set of edge- — c — — c weights in terms of the independent set, II and 13, which can be substituted for the edge-weights in W. W = II 13 IU -in 18 15 12 19 -19 16 IT -IT B*! = II 13 -II II -II II + 13 -II - 13 -13 13 -13 = I Figure U-22: Column vector W of original edge-weights. Column vector I of substitute edge-weights With this transformation only two independent I-variables are needed to rename the I-variables in the model. I-variable IT is not strictly renamed but is set to zero by the transformation. Figure U-23 shows the network with the above substitutions made. 82 -13 Figure U-23: Electrical network after looping, The set of output equations generated after assigning I-variables is reduce in number. The linear equations satisfying KCL at each node are no longer necessary, for this relation is inherent in the name assignment. n Characteristic equations . £ l(i) = 0, for the I-variables on the terminals of an element are used in the looping name assignment. These equations are omitted from the output set because they are redundant. The new equation set for this model becomes: V2 - V3 = Fl EMF Yk - V3 = F2 EMF VI - V2 = II * Rl RESISTOR VI - V2 = (-11 - 13) * R2 RESISTOR VI - V2 = 13 * R3 RESISTOR V3 = GROUND IT = GROUND Comparing these results to the results in Example 1, Chapter .3, we see the number of equations is reduced from 13 to 7- Seven equations were deleted for the reasons stated above. One equation, IT = 0, was added to show that the I-variable on the GROUND terminal was set to zero by the transformation. This 83 equation is superfluous for finding a solution to the above equation set. However, IT could very well have appeared in other equations, and its existence could not be disregarded. The number of I-variable internal names is reduced by six also, from 9 to 3. k.5 GENERALIZED GRAPH CONSTRUCTION AND TREE SELECTION Let X be a terminal type and Y be one I-variable defined for X. U. 5-1 GRAPH CONSTRUCTION We select only those nodes of type X for node-vertices. Only element instances in the network which have terminals of type X are selected for element- vertices, and only those terminals of type X on these instances are used for edges. The edge-weights are the names assigned to Y by the Node Method. A characteristic equation for Y is an equation in an element definition which can be interpreted as a statement of KCL for Y on a set of terminals of the element . Suppose that element instance E is to be an element-vertex, Z\E. Let E have n+1 terminals of type X numbered 0,...,n. A characteristic equation in the definition of E for I-variable Y is ± ,j Y(i R ) = 0, m * n. Each i is one of the numbers 0,...,n, and no two i 's are the same number. K K /\E will fall into one of three categories. n 1.) In the element definition there is an equation ± . E Y(i) = 0. /\E becomes an element-vertex satisfying KCL without modification. 2. ) There is no characteristic equation in the definition of E involving the variable Y. Ae is modified by adding one edge, incident at 81* n (a), oriented toward fa) , with edge-weight ~.|j n Y(i). 3. ) There are one or more characteristic equations in the definition of E that involve subsets of the variables Y(i), i = 0,...,n. Each Y(i) can appear in at most one of these equations. If one Y(i) appears in two or more characteristic equations then only one of these equations can be accepted for looping. When K characteristic equations have been selected involving K disjoint subsets of {Y(i), i = 0,...,n} then /\e is decomposed into K+l element vertices, A^l, . . . , AEK, and A E . Edges incident at A El correspond to terminals referenced in the first characteristic equation. Edges incident at the other A E j ' s , j = 2,...,K are similarly defined. Each /\E.j , j = 1,...,K becomes an element-vertex satisfying KCL needing no further modification. The element-vertex Ae, after this decomposition, may no longer have any incidence edges. In this case Ae is discarded. If, however, Ae still has incidence edges, i.e. edges corresponding to terminals not referenced in characteristic equations accepted for looping, then Ae is treated as an element -vert ex in case 2. EXAMPLE: E is an element instance with four terminals of type X. The definition of E contains a characteristic equation, Y(l) + Y(3) = 0. Y(U)->IU V y Y(l)-KQ Y(3)->I3 V Y(2)-KE2 In the linear graph for the I-variable Y, A E is decomposed into two distinct vertices Ae and A El. 85 E becomes A E and -IU-I2 U.5.2 TREE SELECTION Once a linear graph is constructed for an I-variable we proceed to the algorithm for selecting trees for each maximal connected subgraph. The graph falls into one of two categories. 1. ) If an (cT) is introduced to the linear graph there is one maximal connected subgraph, Sa , containing the (cm . If G + Caj is the constructed linear graph then either: a.) Sa is G + Col) . There is just one maximal connected subgraph in G + (a), and only one tree to be selected, or b.) G + (a) - Set = G' C is a subgraph of G. G' may have p >, 1 maximal connected subgraphs, and a tree must be selected for Sa and for each of the p subgraphs . 2.) If no (a) is introduced then G is the constructed graph. If G has p 5 1 maximal connected subgraphs, then a tree must be selected for each . The definition of a tree is restated: A tree T is a subgraph of a connected graph G which contains every vertex of G and no circuits. The tree selection algorithm for Sa proceeds as follows: Let COUNTER be a variable. Let LEVEL( vertex #) be an array, initialized to zero, with an entry for every vertex in Sa. 86 STEP A: Select (a) as the root of the tree. Set LEVEL(root) = 1. Set COUNTER = 2. STEP B: Select a node-vertex (or (a) ) whose LEVEL = COUNTER - 1. STEP C: Select an edge incident at the node-vertex if the other endpoint of the edge is incident at an element-vertex not already in the tree. Select this element-vertex and set its LEVEL = COUNTER. Repeat STEP C until all the incidence edges are examined. Repeat STEP B until all node-vertices have heen examined. Then set COUNTER = COUNTER + 1. STEP D: Select an element-vertex whose LEVEL = COUNTER - 1. STEP E: Select for the tree an edge incident at the element-vertex if the other endpoint of the edge is incident at a node-vertex not in the tree. Select the node-vertex and set its LEVEL = COUNTER. Repeat STEP E until all incidence edges have been examined. Repeat STEP D until all element-vertices have been examined. Set COUNTER = COUNTER + 1. Return to STEP B. If the maximal connected subgraph is not Sa the element -vert ex with the greatest number of incidence edges is chosen as the root. The algorithm is initiated at STEP D rather than STEP B for non-alpha graphs. The edges not selected for the tree are the chords, and their edge-weights (i-variable names) are the independent set used to generate expressions for the edge-weights of the tree. k . 5 . 3 GENERATING EXPRESSIONS FOR I-VARIABLES The chord, e, has an orientation which determines the orientation of the fundamental circuit created by the union of e with T. The sign of the I-variable 1(e), associated with e will be positive with the orientation of the fundamental 87 circuit . Let C be the fundamental circuit of chord e in T. The contributions e by e to the expressions assigned to the edges in the fundamental circuit are shown in Figure h-2k . +Ke) -Ke) -1(e) (Ce , +I(e) -Ke) e ^-__^ Figure h-2k: Fundamental circuit of chord e Any edge in the tree may appear in several fundamental circuits. Each fundamental circuit will contribute a linear term to the expression assigned to the edge. The sign of the term is determined by the orientation of the edge relative to the orientation of the fundamental circuit. The assigning begins at the node-vertex at the head of the chord and works toward the root of the tree. Similarly, from the element-vertex at the tail of the chord assigning works toward the root. When these two paths meet at a vertex the fundamental circuit is finished. If the maximal connected subgraph is Sa, the Col) is chosen as the root of the tree. This ensures that the special edges created for the graph at (on will not be chords. Every edge from (on to an element-vertex will be selected in the first pass through STEP B, because there is only one edge from (jcT) to each of the element-vertices. 88 The process by which a tree is selected maximizes the number of vertices at each level in the tree, other than the root level. The tree tends to spread horizontally rather than vertically. Trees can be chosen in many "ways. The best tree for any one network is one for which renaming minimizes the increased complexity of the equation set. The complexity of the equation set is dependent on the way in which the I- variables appear in the element equations. For example, it would appear to be better that an I-variable which appears in many equations not be replaced by a sum of many other variables because this will lead to more complex equations. (This is why feu is chosen as the root node. Variables on edges connected to (cm do not appear in any equations.) One could consider minimizing the average , "size" of each renamed variable (that is, the number of terms in the linear sum ; which is used in its place). This is equivalent to minimizing the sum of the lengths of all fundamental circuits. Unfortunately this is a difficult problem for which neither a fast algorithm or good heuristic has been found. (See, for example, Paton [8].) Intuitively, a "fat" tree appears to do a better job because the worst possible fundamental circuits are shorter than the worst circuits in a deep tree. Each edge in the tree that does not appear in any fundamental circuit must be handled separately. The matrix transformation in Figure U-22 shows that the weight of such edges are zero. An equation must be generated for the weights of these edges setting them to zero. The algorithm for construction of the linear graphs must be modified slightly for networks with external terminals. This situation occurs with subnetworks of the network model. Since looping is called for networks, top to bottom, the I-variables on the external terminals of a subnetwork are renamed 89 before the subnetwork itself is called for looping. On entry to looping for subnetworks with external terminals an (of) node is created automatically. The external terminals are made incident to the Qx) . Again let X be a terminal type and Y be a terminal variable defined for X. Case 1.) If the edge-wieghts assigned by looping for Y on the external terminals of type X sum to zero, attaching these terminals to Qxj will not affect KCL at fa) for any element -vert ices which may have incidence edges to ©• Case 2.) If the edge-weights do not sum to zero, then two possibilities exist. a. ) The external terminals are the only edges incident at fa) after the linear graph is constructed. The KCL relation satisfied by the external terminals is not reflected in the name assignment. An extra equation must be generated for the output equation set setting the sum of the edge-weights for Y on the external terminals to zero. b.) Edges other than external terminals are incident at (a). Since the external terminals are imbalanced for variable Y, there must be a source or sink for Y in the network. This source or sink will be reflected by other edges incident at fa) . The tree selection algorithm is also modified slightly at the subnetwork level. Whenever possible the external terminals are to be chords in the Set tree. This will avoid generating expressions for I variables on terminals handled in a previous looping. If the external terminals are the only edges at (cm , then fa) becomes the root and one of the external terminals must be chosen as an edge in the tree. The other external terminals become chords. An extra equation is generated to 90 equate the previously generated expression for the external terminal in the tree to the newly generated expression. This will satisfy case 2a above, hut be a redundant step for case 1. In case 2b all the external terminals are taken as chords and no extra equations need be generated. EXAMPLE 2: Looping applied to the static truss network, Example 2, Chapter 3. 117 <10> Static truss network showing names assigned by Node Method to I-variable FX. Element instances are numbered in <> for reference. Elements <1>,...,<7>, beams, have a characteristic equation in their common definition: FX(0) + FX(l) = 0. The corresponding element-vertices in the linear graph need no modification. The definition of roller, <10> , has the equation FX(0) = 0, but this is not accepted as characteristic equation. Elements <8> and <9> have no character- istic equation for FX in their definitions, so the corresponding element -vert ices along with /lo\ must have an extra edge incident at (a). 91 Figure h-26: Linear graph for static truss network. A tree that might "be selected by the tree selection algorithm is shown in Figure U-27. Figure U-27: Tree from linear graph, The number of chords is n - (n - l) = 20 - (l6 - l) = 5. The five fundamental e v circuits are shown in Figure U-28. Figure U-28: Five fundamental circuits The reassigned variable names in terms of the set {iU, 19, 111, 113, 11^} are shown in Figure H-29. 93 IU-I9+I13-I11- v I9-I13+Ill -I9+H3-I11 Ill+IlU Figure U-29: Reassigned variable names for FX. The number of distinct I-variable names has been reduced from IT to 5. Twelve equations have been deleted. The twelve deleted equations are: 5 One KCL equation for each of 5 nodes. + 7 One equation, FX(0) + FX(l) = for each of 7 resistor elements. 12 The complexity of the static moment equations for elements <5> and <6> has increased by the substitution of the linear expressions (-113 - IlU) and (-119 - HI + 113), respectively, for the I-variable on terminal 1, FX(l) of each. Element <8> has only one equation affected by the increased complexity of the value for FX(0). The name for FX(0) in element <10> is also increased in complexity. The overall result of looping on FX is a reduction in the number of variables and equations by 12, offset by the increased complexity of four equations . The result of looping on the second I-variable, FY, is a great contrast to the result for FX. 9h JIT <10> Figure U-30: Static truss network showing the name assignments made by node method for FY. None of the element definitions has a characteristic equation in FY, so every element -vert ex must be connected to the (a) . The resulting complex lines graph is shown in Figure U- 31. Figure U-31: Linear graph for I-variable FY, 95 Figure U-32: Possible tree selected from graph, The tree has n -1=16-1=15 edges. There are n = 27 edges in the v e linear graph and n - (n - l) = 12 chords relative to the tree. Onlv five e v I-variable names are eliminated. The resultant name assignments are shown in Figure U-33 . JT^-^ J6 J8 v ~ / Jll J15 Figure U-33: Name assignments by looping for FY. Five equations are affected by increased complexity, two equations for element <1>, two for <3>, and one for <2>. The tables in Figure 27 summarize the results of the two methods for the static truss network. 96 Resistor Fix Roller For ce Network Node Loop Node Loop Node Loop Node Loop Node Loop parameter equations 2 2 - - - - 2 2 - - # element equations 3 2 - - 1 1 2 2 1 1 # instances 7 T 1 1 1 1 1 1 - - total # equations 35 28 - - 1 1 k k 1 1 Node Loop kl 3k 10 3k IT 9 # element and parameter equations # linear equation for nodes # I-variaToles # equations affected "by increased complexity The resultant equation set generated "by GLOBAL II (with parameter values substituted) is: -113 - IlU + 19 - Ik = 50 * COS (.120) (FORCE) Jl = -50 * SIN(120) J2 + J12 + 20 * 32 = BEAM (l) [-1(13) - l(lU)] SIN(0) + J12 * C0S(0) + 20 * 32 * 1/2 C0S(0) = (-J3 - J2 - Jl) + (-J6 - JT) + 20 * 32 = BEAM (2) Ik * SIN(60) + (-J3 -J2 - Jl) * C0S(60) + 20 * 32 * 1/2 C0S(60) = (-J11 - J8 - J10) + J3 + 20 * 32 = BEAM (3) -19 * SIN(120) + J3 *.COS(120) + 20 * 32 * 1/2 C0S(l20) = J10 + (-J11+ - J12) + 20 * 32 = BEAM (k) 1(13) * SIN (60) + (-Jill - J12) * C0S(60) + 20 * 32 * 1/2 COS(6o) = 97 -J15 + JlU + 20 * 32 = BEAM (5) IlU * SIN (120) -i" JlU * C0S(120) + 20 * 32 * 1/2 COS(l20) = J6 + J8 + 20 * 32 = BEAM (6) (-19 + 113 - 111) * SIN(O) + J8 * COS(O) + 20 * 32 * 1/2 COS(O) = Jll + J15 + 20 * 32 = BEAM (T) -111 * SIN(O) + J15 COS(O) + 20 * 32 * 1/2 COS(O) = 111 + IlU = ROLLER This equation set consists of 17 equations in 17 unknowns. The set should be compared with that generated by the node method at the end of Chapter 3 which yielded twice as many equations. 98 CHAPTER 5 CONCLUSION A variety of test networks were designed to collect data for comparing the two methods of generating internal I-variable names. The terminal types, element definitions, and network models used are defined in Appendix E. Inspection of the definitions in Appendix E will show that the networks are divided into sets with closely related definitions. For example, TRUS30, TRUS31, and TRUS32 are models of the same network.. TRUS30 is constructed with instances of BEAM in which the mass M is assumed to be significant. TRUS31 is the same model but the mass M of the BEAM's is set to zero by means of para- meter equations. TRUS32 is another model of the same network constructed with instances of MBEAM in which the mass M is inherently assumed to be zero. Each such model will produce a different equation set. Networks were designed this j way to see if any observations could be made about the relation between modeling and the equations produced by Global Analysis . The networks can roughly be classified into two general categories: sparsely connected and densely connected. Sparsely connected networks are defined to be those in which the number of connections at most nodes in the network is just two. Densely connected networks have more than two connections at a majority of the nodes. The pulley networks and TONGMC are sparsely connected and the truss networks are densely connected. Each test network was analyzed twice, first using the Node Method and then the Loop Method. Analysis was halted after the numerical package had compiled the programs necessary to perform the numerical integration of the dynamic solution for the system. Several data values were taken from each analysis. At the end of this chapter are two data tables. Table 5-2 summarizes the data 99 taken using the Node Method, and Table 5-3 summarizes data taken using the Loop Method. The number of equations and the number of distinct I-variable names appearing in the equations generated by Global Analysis were counted. The number of equations remaining after Elimination were counted. These equations are divided into three sets, SI, S2 , and G. None of the test networks produced any SI or S2 equations. The variables appearing in the G set are classified into two sets, the L set and the M set. (See Chapter 2, Section 2.U.) A compiler, COMP, generates three sets of instructions that evaluate the SI, S2 , and G equation sets for values of the system variables. For the test networks only one set of instructions is produced which evaluates G for L and M since there are no SI or S2 variables or equations . The instruction set for SI would be executed once per analysis to evaluate equations dependent only on the values of global variables in the SI set. The instruction set for S2 would be evaluated once per time step in the integration analysis to evaluate those equations dependent only on time and/or S2 variables (and possibly SI variables). The final instruction set evaluates the general equation set G for each iteration of the corrector step in the integration analysis. The following table provides rough estimates based on observations made during run time of the number of times each instruction set is executed. INSTR. SET # TIMES EXECUTED ESTIMATES N = 1000 M = 2 51 1 1 52 N 1000 G NM 2000 N = number of time steps M = average number of iterations per time step Table 5-1. 100 The three sets of instructions are collected into a run time program called DIFFUN. Data taken from DIFFUN is the number of bytes occupied by the instruction sets. The data for the test networks applies only to the instructions for G. The Sparse Matrix Inverter, SPARSE, generates instructions that perform the following operations on the Jacobians, J and K, of the reduced system G. SPARSE sets out to generate the instructions to solve the matrix equation [J + aK]x = d by means of Gauss Elimination and back substitution. The actual implementation is made in two steps. First, instructions to perform the LU decomposition of [J + aK] are generated in a routine called MATINV. Then instructions to per- form the pre-multiplication, U L d_, are generated in a routine MATMUL. These instruction sets are separated because MATINV need only be performed when the values of the variables in the Jacobians change. MATMUL is performed whenever the values of the vector d. change. _d is the vector value of the equation set G evaluated by DIFFUN for a particular solution. The instructions in MATINV are divided into three sets. MATIN1 is executed only once per analysis to perform those operations that are not dependent on variable values or time. MATIN2 is executed only when the time step in the integration changes to perform those operations that are not dependent on variable values but do change with time. MATIN3 is executed each time the inverse of [J + aK] must be determined. MATIN3 performs operations dependent on variable values. The counts of the number of instructions that are generated for MATIN1, MATIN2 , and MATIN3 were taken as data values . 101 The subroutines in MATINV are needed only when the iteration of the corrector step fails to converge after three tries. MATIN1 is performed only once per analysis. MATIN2 is performed at most once per time step (N times). The execution of MATIN3 is performed whenever the need to compute the Jacobian inverse is determined, at most a multiple of N times. The instructions in MATMUL which pre-multiply the vector values of G by the inverse of the Jacobian must be executed for each integration of the corrector step in the integration routine, hence NM times (refer to Table 5-1 )• SPARSE performs immediately whatever arithmetic operations it can, such as division of a constant by a constant, while generating MATINV and MATMUL. This procedure streamlines the subroutines generated. The count of the operations performed immediately by SPARSE is listed under MATINO for each network. Tables 5-2 and 5-3 list the data values for each network in the following order : 1. Number of equations produced by Global Analysis. 2. Number of I-variable names used by Global Analysis. 3. Number of equations after Elimination. U. Number of L variables. 5. Number of M variables. 6. Length of DIFFUN in bytes. 7. Number of instructions in MATINO. 8. Number of instructions in MATIN1. 9. Number of instructions in MATIN2. 10. Number of instructions in MATIN3. 11. Number of instructions in MATMUL. 102 Since DIFFUN and MATMUL are performed for each iteration of the corrector step, much of the time involved in determining the dynamic solution for a network is consumed "by the execution of these two routines. The time spent executing MATINV is difficult to estimate and is considered to be overhead. Data Table 5-^ is a summary of the comparisons made between the two methods for each test network. Data taken from the Node Method are used as base values. The percentage increases (or decreases) in the byte length of DIFFUN and the instruction count of MATMUL using the Loop Method are figured relative to the data for the Node Method. The difference in the number of equations and I- variables produced by Global Analysis is also computed for each network, to show that there is a one-one correspondence between the number of equations eliminated and the number of dependent variables deleted by using the Loop Method. Entries in Table 5-U are in the following order: 1. Difference in the number of equations and I-variables. # eq.(N.M. ) - #eq.(L.M. ) = # I-var.(N.M.) - # I-var .(L.M. ) 2. Percentage difference in the length of DIFFUN. length(N.M.) - length (L.M. ) * length(N.M. ) 3. Percentage difference in number of instructions in MATMUL. instructions (N.M. ) - instructions (L.M. ) ^ instructions (N.M. ) Some of the data collected does not appear to be very reliable. The data values are included in the data tables, but no percentages are figured. The errors appear to be the result of incorrect handling of the equations by Elimination. The data values which are not reliable are noted on the data tables . 103 DIFFUN evaluates the equation set for a set of values of the system variables. The Loop Method produces fewer equations, hut the total number of occurrences of variables in the equation set could possibly increase and affect the efficiency of COMP in generating DIFFUN. This would be caused by the substitution of linear expressions for single terms as I-variable names. SPARSE operates efficiently on sparse Jacobians. The possible increase of occurrences of variables in the Loop equation set may cause an increase in the density of the Jacobians which could offset advantages obtained by re- reducing the number of equations and the order of the Jacobians. For all the truss networks, there is a percentage decrease, ranging from Q.5% to 59%, in the number of instructions generated for MATMUL using the Loop Method. The length of DIFFUN generally shows a percentage decrease using the Loop Method. The one exception to the latter is TRUS21 which shows a slight increase (3.3$) in the length of DIFFUN. The data gathered for the pulley networks and TONGMC is less consistent. The percentage differences between the two methods calculated for DIFFUN and MATMUL are generally very small. For some networks the Loop Method appears to be preferable, while for others the Node Method generates better results. PULYD3 shows a lh.'J% increase in the number of instructions in MATMUL, offset by a 9.1$ decrease in the length of DIFFUN. PMACH2 is the only network for which the Node Method produces better results for both DIFFUN and MATMUL.. Each of the 2U equations for the Loop Method has a counterpart in the Node set of 25 equations, which is traceable to the same source equation used by Global Analysis. The difference in the two sets lies in the complexity of the expressions for I-variables in the Loop set. The Jacobians for the Loop set, although of nearly the same order as the Jacobians for the Node set, are 10U less sparse. SPARSE does not generate MATMUL as efficiently for the Loop set in this case. The 1.1$ increase in the length of DIFFUN, a difference of six bytes (at most three instructions) is negligible. The lk.'J% increase in MATMUL is offset somewhat by comparing other data values for this network. MATIN1 shows no change at all, and MATIN3 is considerably improved by using the Loop Method. For the truss networks the reduction in the number of equations in G for the Loop Method is consistent. DIFFUN generally is smaller when using the Loop Method. The Jacobians for the truss networks are constant and the instruction sets MATIN2 and MATIN3 are empty. The inverse of the Jacobian is only calculated once, using MATIN 1. MATIN1 shows no consistent prefer- ability for either method, but for a one-time routine this is not very important . The number of equations in the G sets for the pulley networks and TONGMC is nearly the same for both methods. DIFFUN appears to handle the Loop sets just as efficiently as the Node sets. With two exceptions, SPARSE generates MATMUL as efficiently for the Loop sets as for the Node sets. Further compari- son of the instructions for MATINV for the pulley networks and TONGMC, shows that generally SPARSE generates efficient code for the Loop sets, particularly for the two networks, PULYD3 and PMACH2 , that show an increase in the number of instructions for MATMUL. Densely connected networks show the most improvement in efficiency using the Loop Method. Sparsely connected networks show no appreciable loss in efficiency using the Loop Method. The number of characteristic equations associated with a network would seem to have some relation to the efficiency of the Loop Method, but no such correlation can be determined. PMACH2, for 105 which the Node Method gives better results, has 11 characteristic equations, while PMACH1, for which neither method seems preferable, has only four char- acteristic equations. TRUS13 and TRUSlU, which show the greatest improvement using the Loop Method, have seven characteristic equations each, while TRUS15 5 which also improved but not so greatly with Looping, has lU characteristic equations. TONGMC, which shows a very slight improvement with Looping, has no characteristic equations. The efficient operations of the compiler, COMP, and SPARSE do not appear to be adversely affected by the use of the Loop Method. If one method were to be selected for exclusive use in the simulation package, the Loop Method should be preferred. Exclusive implementation of the Loop Method would permit more flexibility in the development of algorithms. The current version of Loop was constrained to remain compatible with the features of Global Analysis originally designed around the Node Method. Cumbersome features associated with the Node Method could be streamlined to permit more efficient operation of the Loop Method. Efficiency, here, is related to the implementation of the Loop procedure not to the processing of the equation sets. OTHER OBSERVATIONS The ordering of elements and nodes in the graphic construction of a model determines the order of entries in the N/C Table and the EI Table (see Appendix A, Table A-l) produced by ITEM. The ordering of these tables will, in turn, affect the complexity of the equation sets produced using the Loop Method. The ordering of the EI Table affects the order of element-vertices in I-VARIABLE Tables (see Appendix D) . The algorithm for tree selection (see Chapter U ) searches sequentially through the linkages in the N/C and I-VARIABLE Tables for vertices io6 and edges to add to the tree. For example, the trees for I-variable FX in TRUS30 and for FX in TRUS32 are selected from isomorphic linear graphs. The structures of the trees selected, however, are quite different because the ordering of the N/C and EI Tables in the respective networks is different. The complexity of the expression for FX on the terminal of the FORCE instance is reduced from seven terms in TRUS30 to five terms in TRUS32. Global Analysis has no control over these structural differences which affect the tree selection algorithm and, consequently, the linear expressions generated for I variables. Using the Node Method, Global Analysis produces 108 equations with TO I-variables for TRUS30 and TRUS31. The sets are identical with the exception of the one equation that determines the masses of the BEAM'S : Ml = 25 (TRUS30) Ml = (TRUS31) The Node Method produces 90 equations with TO I-variables for TRUS32. In this last set the assumption that Ml = and that all masses are zero is inherent in the element definitions . Elimination substitutes the constant '25' for any references to mass in the equation set for TRUS30. Zero is substituted for mass in the set for TRUS31, and all terms involving mass are eliminated from the equation set. For example, with G = 32 and M = Ml, the equation for a BEAM M * G + FY(0) + FY(l) = becomes 25 * 32 + I(n) + I(m) = in TRUS 30 and I(n) + I(m) ■ 107 in TRUS 31. For TRUS31 an equivalence is established between l(n) and -l(m), and the related equation is deleted from the equation set. Since mass does not appear in the equation set for TRUS32, the equation set contains I(n) + I(m) = which is treated just as the equation in TRUS 31. After Elimination TRUS30 has 51 equations and TRUS31 and TRUS32 each have 35 equations. Observing similar results in other sets of truss models, it appears that modeling with BEAM instances and the equation Ml = is as satisfactory as modeling with MBEAM's. The results of MATMUL, MATINV, and DIFFUN lead to no definite con- clusion about which is the better model. TRUS31 appears to be a better model than TRUS32, but TRUS22 is better than TRUS21. The choice between TRUSlU and TRUS15 is not clear. The only difference between the definitions of BEAM and MBEAM is the absence of any mass terms in the equations for MBEAM. The assumption of masslessness in designing the pulley definition, PULL2 , greatly simplified the element equations. PULL1, the pulley with significant mass, has four local variables and seven equations. PULL2 is defined with only three equations and no local variables. The results for the Node Method in PULYD2 and PULYD3 show that modeling with massless pulleys produces better models. Giving some thought to modeling can produce better run time results. • If certain assumptions can be made about elements in a network that would greatly simplify the definitions, these assumptions should be included in the definitions, rather than be expressed with parameter assignments. This conclusion is based on data gathered using the Node Method. Similar data gathered from the Loop Method leads to the same conclusion. One added 108 "benefit may "be derived from careful modeling when using the Loop Method. Setting the mass of a beam to zero in the element definition produces two characteristic equations in MBEAM: FX('O) + FY(l) = FY(0) + FY(1) = The equation for the y-component of the forces on the terminals in a BEAM definition M * G + FY(0) + FY(l) = ,0 cannot be used by the Loop Method even though M is set to zero by means of a parameter equation. The number of characteristic equations does not appear to have any relation to the efficiency of the Loop Method compared to the Node Method. Based on the data gathered from the Loop Method, when modeling exclusively with the Loop Method, the introduction of as many characteristic equations as possible into element definitions will generally improve the efficiency of the programs compiled by the numerical package. 109 TRUS10 TRUS11 TRUS12 TRUS13 TRUSlU TRUS15 TRUS20 TRUS21 TRUS22 TRUS30 TRUS31 TRUS32 PULBM1 PULBM2 PULBM3 PULYD1 PULYD2 PULYD3 PMACH1 PMACH2 TONGMC a o •H -p a 1 =tfc m 1 H O •H -P a3 W & =tfc m .H ■H a3 > =tfc en a; H & a) «H a) > =tfc H P H Eh H H E-j OJ H EH m H En p B^ 53 70 17 17 3lh 115 in 225 53 3U 9 9 210 63 kl 132 kk 3U 9 9 2lU 73 111 Ikk 61 38 20 20 U22 199 25 320 67 38 11 11 2U0 98 36 175 52 38 11 11 238 127 12 Ilk 101 62 27 27 618 286 3k U29 101 62 15 15 362 251 86 3Ul 86 62 15 15 3^8 175 62 263 108 70 51 50 1150 1179 117 1208 108 70 35 3** 818 1035 111 983 90 70 35 3U 808 1229 157 1091 220 77 135 72 6k U526 756 268 5872 ^157 220 77 132 69 6k UU30 1+05 375 5863 3670 205 77 12U 66 59 U262 523 295 5136 3722 196 U5 127 72 55 2732 1957 1U5 3133 U085 196 U5 108 53 55 2098 k6 180 395 1032 97 h5 U6 36 10 95^ 153 59 227 606 85 18 56 30 26 1192 130U 626 2096 2205 50 18 25 19 6 526 92 23 6k 312 185 70 llU 62 5k U070 U62 293 5692 352U Table 5-2. Data collected from the Node Method. TRUS10 TRUS11 TRUS12 TRUS13 TRUSlU TRUS15 TRUS20 TRUS21 TRUS22 TRUS30 TRUS31 TRUS32 PULBM1 PULBM2 PULBM3 PULYD1 PULYD2 PULYD3 PMACH1 PMACH2 TONGMC en o •H -P o3 pl o< to QJ H ■3 •H cc3 t> 1 H to o •H -P CTJ cr' W C! w H ■3 •H ?H ed i> 1 iJ en H ■3 •H Sh aj S> 1 S 1 p-h H O H EH H S3 H EH C\J S3 H EH 00 S3 H EH 110 36 17 11 13* 292 152 61 197 36 17 7 7 180 80 31 121 20 10 6 6 170 28 10 l 3 t 81+ 1+8. 19 9 9 252 51 30 131 U8 19 6 6 17 U 27 31 76 28 lU 7 7 186 50 30 106 72 33 25 29* 61+2 353 37 386 72 33 11+ 11+ 3lh 152 62 0' 260 1+1+ 20 12 12 29 1+ 115 50 20l+ 72 31+ 31+ 33 928 1093 205 1021 72 31+ 26 25 682 801 181 767 38 18 19 18 566 7I+U 212 679 182 39 131+ 71 61+ 1+1+58 7U0 253 59 1+8 1+121+ 182 39 131 68 61+ 1+362 1+1+2 361 6587 3736 161+ 36 121 63 59 1+170 583 295 5360 3672 187 36 127 72 55 2716 1939 1U5 3133 1+077 187 36 108 53 55 2086 1+6 180 1+13 1052 69 17 1+3 33 10 868 372 59 93 695 81 ll+ 56 30 26 1192 1302 626 2096 2193 39 7 21+ 18 6 532 157 23 h9 358 ll+T 32 112 60 5U 3990 502 278 551+7 31+18 Table 5-3- Data collected from the Loop Method. * The number of L variables determined by Elimination is not consistent with the equation set. t There should be no instructions in MATIN3 for TRUS12 which has a constant Jacob ian Matrix. Ill TRUS10 TRUS11 TRUS12 TRUS13 TRUSlH TRUS15 TRUS20 TRUS21 TRUS22 TRUS30 TRUS31 TRUS32 PULBM1 PULBM2 PULBM3 PULYD1 PULYD2 PULYD3 PMACH1 PMACH2 TONGMC difference in size of equation sets DIFFUN % decrease in length MATMUL % decrease in § of instructions IT IT lU.O 8.5 2k 19 1+0.0 59-0 19 2T.5 56.5 21+ 21.8 38.0 29 29 - 3.3 23.8 k2 15.5 22.1+ 36 19.3 15.5 36 16.6 22.0 52 30.0 3T.8 38 1.5 .8 38 1.5 - 1.8 in 2.2 1.3 9 .6 .2 9 .6 - 1.9 28 9.1 -ll+.T U • 5 11 - l.i -lU.7 38 2.0 3.0 Table 5-1+ • Summary of comparisons between Node Method and Loop Method. Percentages are figured using the data from the Loop Method relative to data from the Node Method. 130 ELEMENT TABLE FIXED- LENGTH TABLE VARIABLE-LENGTH TABLES (EXIST ONLY IF C OR PTR HO.) NETWORK PTR EQUATION BLOCK DEFAULT EO BLOCK TERMINALS GLOBALS PARAMETERS LOCALS CONSTANTS LHS NAMES E-I NAMES PTR PTR •LOCK LENGTH LINKED LIST EQUATION BLOCK PTR BLOCK LENGTH C PTR B-CHAR TERMINAL TYPES NAMES 1 " C PTR C PTR c PTR c PTR DISTINCT DOUBLE PRECISION CONSTANTS c PTR c PTR B-CHAR SUBSCRIPTED VARIABLE NAMES NETWORK TABLES (EXIST ONLY IF NETWORK POINTER * ) FIXED LENGTH TABLE VARIABLE LENGTH TABLES • NODE ENTRIES • CONNECTION ENTRIES NODE/CONNECTION ENTRIES ELEMENT INSTANCE TBL NETWORK ECU BLOCK EXTERNAL TERM/ NODE# LIST 8-CHAR NODE TYPE NAME CONNECTION ENTRIES (LINK) I CONN • TERM- 14 INAL # TERM- INAL* B-CHAR ELEMENT INSTANCE NAME (I) T fPE NAMES MAY BE BLANK 12) ALL THE TERMINALS CONNECTED TO A COMMON NODE ARE CHAINED TOGETHER ONE TERMINAL IS ASSOCIATED WITH A NODE IN THE NODE ENTRY THE LINK POINTS TO ANOTHER TERMINAL ON THE SAME NODE IN THE CONNECTION PART OF THE TABLE ZERO INDICATES THE END OF CHAIN. 15) NODE • IS A CROSS- REFERENCE TO THE NODE ASSOCIATED WITH EACH TERMINAL IN THE CONNECTION PART OF THE TABLE 14) THE TERMINAL # IS ASSIGNED BY THE GRAPHICS SYSTEM AT THE TIME THE NETWORK IS CONSTRUCTED BLOCK LENGTH BLOCK PTR # TERM- INALS PARAMETER EQUATION BLOCK ( LINKED LIST) TERMINAL TABLE I POINTER I "Vfc ENTRY* FOR EACH • TERMINAL ON ELEMENT - INSTANCE Table A-l. Element Definition in ITEMLIB. 131 TERMINAL TYPE NAME LENGTH OF REST OF DEFINITION *OF E- VARIABLES E-VARIABLE NAMES (8-CHAR EACH) i i #OF I- VARIABLES I -VARIABLE NAMES (8-CHAR EACH) t I Table A-2. Terminal Type Definition in NODLIB, STARTING ADDRESS (DOUBLE-PRECISION CONSTANTS) INITIALIZED WHEN STORAGE ALLOCATED FOR TABLE AVAILABLE ADDRESS END ADDRESS i Table A-3. CONSTANT Table (Double Precision). 132 STARTING ADDRESS AVAILABLE ADDRESS " END ADDRESS TERMINAL TYPE NAME (8-CHAR) DISP IN TVT" 1 #E- VARI- BLES • I- VARI- BLES 1 1 ' 1 ' 1 [ 1 ' 1 LIST OF E-VARIABLE NAMES FOLLOWED BY 1-VARIABLE NAMES PLACED IN TVT (TABLE A-5) DISPLACEMENT OF LIST IS RELATIVE TO TOP OF TVT Table A-U. Terminal Name Table (TNT). STARTING ADDRESS AVAILABLE ADDRESS END ADDRESS E-VARIABLE NAMES (6 CHAR EA) I -VARIABLE NAMES (8 CHAR EA E-VARIABLES NAMES I -VARIABLES NAMES ONE TERMINAL TYPE ONE TERMINAL TYPE 1 I Table A-5. Terminal Variable Table (TVT). 133 STARTING ADDRESS SUBSCRIPTED VARIABLE NAMES (8-CHAR EACH) SUBSCRIPTED VARIABLE NAMES 7 AVAILABLE ADDRESS END ADDRESS 7 PTR PTR I 7 BOTTOM OF STACK 7 \ { \ EILST EIPTR TOP OF StACK AVAILABLE OVERFLOW Table A-6. E-I Name Table (EII£T) and E-I Name Table Pointer Stack (EIPTR). STARTING ADDRESS ELEMENT NAME (8-CHAR) AVAILABLE ADDRESS ENDING ADDRESS DISP IN elem" '"ELEMENT DEFINITION IS BUILT IN ELEM (TABLE A-8) DISPLACEMENT IS MEAS- URED RELATIVE TO TOP OF ELEM '''INITIALIZED TO -1 USED ONLY IF LOOPING REQUEST- ED SEE APPENDIX B Table A-T. Element Name Table (ENT). 13 fc ELEMENT TABLES EDNO EDNOTERM EDTRMPTR EDNOGVAR EDGVPTR EDNOPARM EDPRMPTR EDNOIVAR EDIVTPTR EDNETPTR EOEOPTR FDNUMPTR EOPRMEQ EOLHSPTR ELEMENT # C PTR TERMINAL TYPE # TABLE C PTR C PTR . PARAMETER NAME TABLE (8-CHAR EACH) c PTR • PTR PTR ,_ LINKED LIST EQUATION BLOCK PTR TABLE OF POINTERS TO CONSTANT TABLE m PTR PTR NONONOOE NONOCONN NDNCPTR NOELEMIN NOINSPTR NDEOPTR NETWORK TABLES (EXIST ONLY IF EDNETPTR NOT ZERO) PTR PTR i PTR LINKED LIST NETWORK EOUATION BLOCK NODE ENTRIES CONNECTION ENTRIES (EIDNO) (EIDPTR) (EIDTRM) ELEMENT * EQ BLK PTR . TERM LIST PTR \ NODE TYPE ♦ NODE # (LINK) CONN # (LINK) CONN# LINKED LIST PARAMETER EQUATION BLOCK TERM# TERM# -* . V c ENTRY ♦ FOR EACH ' - TERMINAL " ON ELEMENT. INSTANCE Table A-8. Element Definition Table (ELEM). Holds all element definitions constructed by GLOBAL I. Above is format of one element definition. 135 CONSTANT TABLE CONSTANT AVAILABLE ADDRESS KEYWORD TERMINAL NAME TABLE (TNT) TERMINAL VARIABLE TABLE (TVT) ELEMENT NAME TABLE (ENT ) ELEMENT DEFINITION TABLE (ELEM) CHARACTERISTIC TABLE LENGTH OF OUTPUT BLOCK POINTER CONSTANT TABLE AVAILABLE CONSTANT TABLE POINTER KEYWORD POINTER TNT POINTER TVT POINTER ENT POINTER ELEM DOUBLE-PRECISION CONSTANT DISP TO TNT ID DISP TO ENT in TERMINAL TYPE NAME ELEMENT NAME DISP TO TVT (II # E- VAR- IABLES # I- VAR- IABLES DISP TO ELEMisi DISP TO CHARACn (1) DISPLACEMENTS MEASURED RELATIVE TO ADDRESS OF KEYWORD (2) DISPLACEMENT TO TERMINAL VARIABLES IN TVT MEASUR- ED RELATIVE TO TOP OF TNT (3) DISPLACEMENT TO ELEMENT DEFINITION IN ELEM MEAS- URED RELATIVE TO ENT (4) DISPLACEMENT SET TO -1 IF LOOPING NOT REQUESTED OR ELEMENT DEFINITION HAS NO CHARACTERISTIC EQUA- TIONS (5) UNUSED IF LOOPING NOT RE QUESTED SEE APPENDIX B FOR FORMAT Table A-9. Output Table, 153 ->N — r \ ■N- j I EC UJ _J CD ? UJ < z »- z UJ UJ t/> UJ o Z UJ UJ 1 oo CD a. < H p z t-H o z CE uj »- z u. out a. UJ o UJ 2 < z H Z UJ 2 UJ -1 UJ or < X u 00 ■^si 1 — r -*sr <2o a • CD Jo D _l z o -I o UJ ^ _l 1 z •-• u_ UJ _l — • Oh z ^^ UJ in _J I o a ODZ 10 _l > o a. in a ttmmtt ii m _ z < o (/> w cr rr UJ UJ K h- UJ UJ 2 2 < < cr rr < < a. a K z Z UJ i- 2 z UJ 2 UJ _l UJ UJ o Oh < 1 UJ n _J (0 flU < Q t- __ _ w cr ui 2 < cr < a. UJ _l CD < t- _l < CD O < CD O _J z UI 2 UJ _l UJ u. o * UI > UI in _i UI < z z °1 in tr — UJ z in uj UJ 3 cc uj fcd * n 0- ui in o; UJ > UI r— V 2 O rr cc K Z u. UJ H H Z Z UI UI 2 2 UI UJ o _J < UJ W * ^ 3 h? -J < < UI in cd in hW t «z" _ O <•» I- CL Z «2 uj Q Z !_ UI CD Z UI _l cd in < Ul H _) CD _l < < rr l_> o < > _l _i z < ~ u h- o I z UJ h- 3 Z UJ UI u 2 < UI 1 _i 0- UI in o Ql- in CD < cr < > o o CO CO u Eh •H I ■3 >- * CC § z * UI III o z z t- UI 2 (O h- UJ — Z _l y- UI UI UJ z UI fa cc 3 2 UI Ss u _l u. — -I in t a. UI CD - o 3 a u CO 179 CO _j UJ< JVr JVr ce o K Z O 2 tf) o X a. < a: o > CD 1- a UJ Z 1- z o z <0 < UJ a. >- - % i- _l _i < < z z 2 a: UJ UJ EH K H CO H - — — — O < En i •-• U. o a: < > i z o »- UJ _J (ft a: u. 00 < oc u. < o > 1 Ul UJ 2 1- < (ft z oe 1 NAME OF Fl • UJ -i UJ * 180 a. UJ o o o y > go t u - LU CO z ■— • CO to H ■3 EH -p C -d § a) O ft ■•Vr UJ a. >- Nr UJ < ■—I hi , ~' 3 F* UJ PUJ a. F H ui a. h ~. u. UJ I o CD H ■3 EH 183 uj to CC I- 0. 2* to UJ UJ 1/3 f~ xJ UJ — . a: cZ. en \- co p o < p u UJ is 1 uj^ 1— 1 1-^ -•- 2. £■ po -it) 11 "* 1 m u. r E z u. UJ < o 8 to* II < to CO UJ UJ uj 2 •'? UJ — . I UJ 1— • >- ce co o - UJ UJ 2 < x to o: 2 "" UJ |— t- on 2 20 uj Q. Q_J UJ UJ h: ^ <8 Z §8 to ^ UJ 2 II CO H ■s EH C O •H CO CO 0) u ft a> H ■3 •H Jh > I H ft o I U H ■s Eh UJ 2 210 SPECIAL LINK ENTRY { ALPHLINK ALPHLINK 7 (UNUSED) TERMLINK 7 NODELINK NODELINK 7 (UNUSED) USEMASK 7 -\ # ENTRIES = tt ENTRIES IN N/C TABLE 7 STATUS OF EDGE AND/OR VERTEX IN RELATION TO TREES SELECTED FROM GRAPH REPRESENTED SYMBOLICALLY BY THIS TABLE X'1000' - ELEMENT-VERTEX SELECTED X'2000' - ELEMENT-VERTEX PROCESSED X'0100' - TERMINAL (EDGE) SELECTED X'0800' - TERMINAL (EDGE) MARKED X'0010' - NODE-VERTEX SELECTED X'0020' - NODE-VERTEX PROCESSED X'0001* - NODE-VERTEX IN ALPHA TREE CHAINS TOGETHER ALL ELEMENT-VERTICES IN GRAPH. CHAIN BEGINS WITH POINTER IN SPECIAL-LINK-ENTRY AND ENDS WITH A ZERO POINTER. ENTRIES NOT IN CHAIN CORRESPOND TO ELEMENT TERMINALS. THESE ENTRIES ARE THE NEGATIVE VALUES OF POINTERS TO THE ELEMENT-VERTEX ASSOCIATED WITH THE TERMINAL. CHAINS TOGETHER TERMINALS ASSOCIATED WITH AN ELEMENT-VERTEX , CHAIN BEGINS AT ELEMENT-VERTEX ENTRY AND ENDS AT LAST L. TERMINAL WITH A ZERO POINTER, L CHAINS TOGETHER ALL ELEMENT- VERT ICES WHICH MUST BE CONNECTED TO ALPHA-NODE. CHAIN BEGINS WITH POINTER IN SPECIAL-LINK-ENTRY AND ENDS WITH ZERO POINTER. POINTERS MODIFIED DURING TREE-SELECTION. 1.) POSITIVE POINTER: EDGE IN TREE SELECTED AS LINKAGE FROM NODE-VERTEX 'UP' TO ELEMENT- VERTEX . 2.) NEGATIVE POINTER: EDGE IN TREE SELECTED AS LINKAGE FROM ELEMENT-VERTEX 'UP' TO NODE-VERTEX. Table D-U. I-VARIABLE TABLE. Used in parallel with N/C TABLE to symbolically represent weighted, oriented linear graph associated with a network, 221 APPENDIX E This appendix contains the definitions of the networks used to collect data for comparing the NODE method and LOOP method of generating equations for simulation analysis. First, the terminal types used are described with brief discussions of the assumptions made in developing the definitions and the meaning of the associated I-variables. Secondly, the primitive elements used to construct networks are defined. The graphic mnemonics with the terminals numbered are shown just as they were drawn with the Graphics Package. Included with each definition is a brief discussion of the meaning of the associated variables. Finally, the networks are defined. Each definition includes the graphic mnemonic with each element used to construct the network identified by the element name in parentheses, accompanied by the parameter assignments associated with the element . The tree and associated chords constructed by the subroutine LOOP for each I-variable in the network are included with the chords distinguished as dashed lines. The I-variable names associated with the chords are shown next to the dashed lines. The internal name associated with an I-variable is just a number, n. In the graphs and networks in this appendix, the internal name n is represented symbolically by the expression l(n). In a tree/chord graph . element -vert ices are represented as triangles , Z_A . The number associated with each triangle is the element instance number assigned implicitly by ITEM ANALYSIS to the associated element. The number is the instance position in the Element • Instance Table (Table A-8) . Node-vertices are represented by circles, > /. 222 The number associated with each circle is the node number assigned implicitly by ITEM to nodes by virtue of their positions in the N/C Table (Table A-8). The line drawing of the network is included once more, showing the instance number found in a triangle in angle brackets, < >, next to the corresponding element instance. The node numbers found in circles are shown in parentheses next to the correct nodes. The expressions generated by LOOP for each I-variable using the trees and chords are shown next to the appropriate terminals. These I-variable expressions are used by the LOOP method in generating an equation set. The single I-variable names used by the NODE method are not shown \ explicitly. Visualizing the networks with the I-variable names used by the NODE method is not difficult, although the actual internal names assigned to each terminal are not available here. For example, in one network there are four terminals incident at node (3) with the I-variable expressions for FY shown at each terminal. -I(.T)-I(B)-I(D) 1(7) (3) 1(D) In the NODE method the terminal with the three-term expression would have a unique I-variable name, say l(n), for FY. The LOOP method has eliminated l(n) by substitution of an equivalent expression using the fact that the sum of the FY variables at a node must be zero, i.e., 1(7) + KB) + 1(D) + I(n) = 0. For a node with just two terminals no substitution need be made by the LOOP method. The names are assigned by both methods to automatically satisfy 223 the condition of conservation of the I-variable at the node. In the case of external terminals on subnetworks the I-variable relations are somewhat different. The I-variable names are assigned to external terminals before I-variable names are assigned to the internal terminals. The NODE method generates equations after all assignments are made to show the equivalence of the external I-variable to the sum of the internal I-variables at the external terminal. No effort is made to eliminate redundancy as in the second example below. EXTERNAL 9 EXTERNAL 9 1(3) 1(5) 1(1)— K6) + 1(7) 1(3) = 1(5) The expression for the same two external terminals generated by the LOOP method are shown in the example below. The redundancy and the need for the equations are eliminated. EXTERNAL ? Kl) KD-KT) 1(7) 1(3) K3) In two examples, TRUS13 and PULBM3, some of the tables generated by ! GLOBAL I, GLOBAL II, and LOOP are included to illustrate how these tables look for actual networks . 22U Some of the networks are constructed using subnetworks . The definitions of these subnetworks are included with the definitions of the networks in which they appear. TERMINAL TYPE DEFINITIONS. 1. JOINT. I -variables: FX, FY. ELEMENT FY i — FX FX and FY represent the X and Y components of the force exerted on an element' at a terminal in a static two-dimensional structure. ; DJOINT. E-varia"bles: I-variahles : TX, TY. FX, FY. ELEMENT FY t - FX (TX, TY) FX and FY represent the X and Y components of the force exerted on an element at a terminal in a dynamic two-dimensional mechanical structure. TX and TY represent the X and Y position coordinates of the terminal which are treated as time-dependent. 225 3 . MECH . .ELEMENT E- variable: X. I-variable: F. -P cd U CD bO w C o ■H en w (U Fh ft •H CtJ > I CO CO Eh TRUS12 P=100 A=150 (FORCE) A=0 (MBEAM) 23^+ (no equations) (no variables) A=6o (MBEAM) / / A=120\ ( MBEAM )\ A=0 \ /a=6o / (MBEAM) / A=0 \ A=120 \( MBEAM) (MBEAM) (MBEAM) (FIX) u u u Groller) 1(E) Or Vv 1(10) 1(11) fFX TRUS12: Tree and chords for I-variables < , type JOINT. The trees constructed for both I-variables are identical, so only one is included here, showing both sets of I-variables. 235 C\J H CO D K 236 U.-6.) TRUS13, TRUSlU, TRUS15. These networks are three more models of the same static structure modeled in examples 1, 2, and 3. However, these models are constructed using subnetworks. TRUS13 is constructed with instances of subnetwork SBEAM and element BEAM. All BEAM'S are assumed to have significant masses, making this model comparable to TRUS10. TRUSlU has the same structure as TRUS13 but all BEAM'S are assumed to have negligible masses, indicated by setting the parameter M of each BEAM to zero. TRUSlU is comparable to TRUS11. TRUS15 is constructed with instances of subnetwork SMBEAM and element MBEAM. The assumption of massless beams is inherent in the definitions of SMBEAM and MBEAM. This model is comparable to TRUS12 . TRUS13 and TRUSlU have identical network structures and graphs so only one set of drawings is included for both. TRUS13 and TRUSlU 237 A=150 P=100 (FORCE) Local: G,T Equations: G=32 (TRUS13) T=10 ( TRUSlU ) T=0 777777 o o o SBEAM Parameters Q EXTERNAL(O) A1,A2 M1,M2,M3 A=A1 M=M1 (BEAM) A=A2 M=M2 (beam; EXTERNAL (l) EXTERNAL (2) 238 Ml M2 M3 M G = 32 \ T = 10 5 6 7 l 8 2 9 A A 5 6 9 1 7 2 k 3 3 h 8 TRUS13 in table form. (See Table A-8 for table format definition.) Note that the parameter assignment equations for the element instances have been omitted. The element instances are identified by their symbolic names rather than the internal names assigned by GLOBAL I. The network equations appear symbolically instead of in the parsed format. o M 00 M 1 ll II -3" o p [Q cu c H o P •H orj CO TT1 •H to SH crt 1 X Pm H w 239 CO ,H co cu CO 00 H CO D o H 00 o oo H oo H o H oo H o H oo o o H oo H o o o H oo o o o oo o o o oo o o o o o o H oo o o o 00 o 00 o -3- o 00 1 o oo 1 OO oo 1 o 1 o o GO o 1 CO 0O oo o o CO H o o o o H o CvJ o 0O OJ OO o o oo OO o oo o oo H 1 o o oo oo oo o J- H 1 o 0O o oo o oo H oo H o 1 1 00 H o H 00 H oo H oo H o o o H oo o o o o o o o oo o o o o o o rH oo o o o 00 o oo o o oo 1 o 00 1 o o 1 o o OvJ 1 co o US 1 CO o OJ o o CO H o CO oo o o H o o CO OJ CO -St o o oo CO o 00 o oo o CvJ 1 o LT\ o 00 H 1 o «5t rH 1 o oo Sh *H a) ,-, H on A3 1 cri 1-1 EH OJ OJ H rH AJ P a ed EH •rl * — * Jh 9 > • 1 H H fa in u OJ rm. H m p 1 cd 1 1 1 1 OJ OJ 1 1 1 1 P P Ed aj EH •H " — * rH a > • H E CO 43 ft crj bO t3 cu -P o cu co cu V •H -P rH CU > I -P cu * 2U0 TRUS13 and TRUSlU: Tree and chords for I-variable FX, type JOINT. I -Kl) -1(5) TRUS13 and TRUSlU: Tree and chords for I-variable FY, type JOINT. 2 41 o en a o •H W W <1J Jh ft 0) •3 •H i H CO H 242 k 3 5 -1 8 5 k 1 7 1 6 U 1 6 2 8 2 2 8 BEAM- BEAM BEAM Table format definition for subnetwork SBEAM. (See Table A-8.) Note that parameter equations for the element instances are not included and the element instances are listed in the Element Instance Table symbolically. SBEAM (Instance § 0): Tree and chords for I-variable FX without the external terminals. (Note, there is no alpha- node . ) KlO) \ 2^3 / K6) v-' SBEAM (Instance if 0): Tree and chords for I-variable FX after adding the external terminals. (Note how the addition of the alpha-node changes the shape of the graph. ) External terminals are dash-dot lines. Kll) SBEAM (Instance # 0): Tree and chords for I -variable FY without the external terminals. -I(9)-I(D) 11(5 Kll) SBEAM (Instance #0): Tree and chords for I-variable FY after adding external terminals. The graphs of trees and chords for SBEAM (instance # l) are identical in structure to those of Instance If 0. Only the I-variable names assigned to the chords are different. These graphs are not included here. EXTERNAL (0) O 2kk SBEAM Instance # '-l(8)-l(C) .-I(9)-KD) -I(10)-I(6) \ -I(15)-I(9)-I(D)J (1) ri(lO)+l(6)-I(8)-l(C) I(10)+I(6)1 I(7)-Kl9)J r-l(lO)-l(6)+l(.8)+I(C) l-I(ll)+I(5) EXTERNAL (l) I-variable expressions for < EXTERNAL (2) FX FY' Note the extra equation generated for the FX variable l(k) on external terminal (2). EXTERNAL Co) O SBEAM Instance # 1 -Kic)+i(un -I(3)-I(21)/ (1) ' Kc) .-1(3) I(1C)-I(U)+I(C) 1(21) -I(5.)-I(25)J -I(1C)+I(U)-I(C) Kl)-I(D) EXTERNAL (l ) { EXTERNAL (2) FX I-variahle expressions for \ *". Note the extra equation generated for the FX variable 1(0) on external terminal (2). TRUS 15 2l*5 (no equations) (no variables) A=150 P=100 (FORCE) '////// (FIX) (ROLLER) ° ou EXTERNAL (0] O SMBEAM Parameters A1,A2 A=A1 (MBEAM) EXTERNAL (l) EXTERNAL (2) 2k6 TRUS15: Tree and chords for I-variable FX, type JOINT, TRUS15: Tree and chords for I-variable FY, type JOINT, CO o\ 2^7 P-. H o Cm CO O •H co co V I(1E) I I(1F) I '-1(B) SMBEAM (Instance # l) : Trees and chords for I -variables FX and FY. External terminals shown as dash-dot lines. 2^9 SMBEAM (Instance # 0) Expressions for I-variables -s y EXTERNAL (0) O ri(2) \I(3) (2) -I(12)+I(C)1 -I(13)+I(D)J fl(l2)-l(C)+l(2) LI(13)-I(D)+I(3) Ki2)-i(cn I-I(D)J -I(12)+I(C)-I(2) -I(13)+I(D)-I(3) EXTERNAL (l) EXTERNAL (2) SMBEAM (Instance # l) Expressions for I-variables EXTERNAL (0) FX FY -K6) -I(T) (2) -I(1E)+I(A)1 -I(1F)+I(B)J I(1E)-I(A)-I(6) Kif)-i(b)-Kt) I(1E)-I(A)1 I(1F)-I(B)J -I(1E)+I(A)+I(6) -I(1F)+I(B)+I(7) EXTERNAL (l) EXTERNAL (2) 250 7.-9.) TRUS20, TRUS21, TRUS22 . 10.-12.) TRUS30, TRUS31, TRUS32. Networks T» 8» and 9 are models of the same static, two-dimensional, rigid structure and networks 10, 11, and 12 are three models of another static, two-dimensional, rigid structure. The same approach was taken in the modeling of both of these rigid structures. First, each structure was modeled with beams with signifi- cant masses (TRUS20 and TRUS30). Secondly, each structure was modeled with beams in which the mass parameter M of each is set to zero (TRUS21 and TRUS31) . Finally, each structure is modeled with beams in which the assumption of masslessness is inherent in the definitions (TRUS22 and TRUS32) . 251 H * CO • ua • i pq II II ii B S X >n CM o on h o II ll ll C3 H H rH S S 2 «■« • « y- — •* *• s H - — , O W O rH r>: S a CM CM * Si O CO CO 01 o •• -H t» D II n pq H -P « « < cd ci) Eh H O D 1 o o \ o o CN rH II II ^ < (14 H r > ii-, * CO M3 l/\ • • CM CO D «d C! cti O CM CO D 252

4? •H S3 > (U P P P! -P ,3 Pi P! =*!'::. CD *\ d •H HP B a) pi CD d CO •H Pi •H a) H O CD CD H o S3 CD Pi ,fj Pi 1 U O o3 •H o3 P •H ,3 :>> Pi -P ft CD H • ccJ Q H ,C ■PM T C a P o P. cc3 O H CD CD ^3 ££ U fl P Pi a3 p •H CD O Is Pi «H >H o Pn p d ^ CD to CD Pi ^3 d (U d p Q P Pi H (1) o3 > o P p •H P Pi fl a3 o a CD -H o •H CD O Pi Pi S3 co CD d aj S3 CO (D d a S> o o3 ^3 O «3 1 H CJ CO P> PI H CD CD CD • CD « ,£3 A >H & >H EH EH p P>4 p> Pn o m i— i + . — * - — - 1* w H C\J — ' ^_^ M M 1 + — * o C\l CM i — « * H M 1 + *— ^ ^ — . oo O CM H v_^ ^^ M M 1 + -— O CM CM H , — * 1 t- ,— - H O rH H v — ■ 1 H - — - 1 9 C_> - — ^ — ■ H H 1 1 *■ - , — * On CM rH CM — i — • H H 1 CM V A O O t— cm oo I 8 ao CM CJ on I 253 U H oo cm v_> v_^ M M *■ — * * — * 1 w g cm on "~-^ ^-^ A ►H HI en + 1 V O t- CM 00 ^-- v_*» M M *-^ /-^ + 1 U Q -— -. *-— V no no ao pq < — - - — CM oo co o •H CO CO CO *H ft cu cu H •H r< > CM o CM 25U o o o o ON H II II o o o o 0\ CM II II < Pn o o o o H ft < P-> W CO a CD a H H fl -P cd 01 •H 2 h CJ 1 cti (1) t> o o c a CM CM 255 u H o -p o -p o T3 ,3 Ph aJ bO w •H & -P £ O 3 -P 0) H a) •H a) > I O t— SS on on • v M M H M 1 1 A w V S8 M M A «~^ ^^ 1 1 < V S8 H M 39 i i 39 W fo CM CM w fo CM CM 00 o\ CM CM CO ON CM CM E o «H CO o •H (0 CO (1) u p< 8 0) H cd •H CM CM CO ON CM CM + +^ 38 258 TRUS30 and TRUS31 Tree and chords for I-variable FX. The corresponding tree for I-variable FY is not included here. The number of chords associated with the FY tree is the ft terminals in the network - ft nodes. One internal name is eliminated at each node by expression substitution. 259 P . cu a o J cd II f to H • CO 0) !h cu o k o O ,d H CU M T) X tfl CU ^H ■P -<-i U o a- >> o H > CD to £> ?h p 0} >> o « CD P X) EH u •h cu a «% & ■H "H CU o 0) r^ a rQ 00 cd K CO cu T) d) 4n p a cd P o g o en cu cd h tJ (1) 260 w\ a in m C m o • \ •H .•■' ■P cd crt •H ^ fc C\J a* crt on a> > en P o ■ ) K a ■. : Eh 26l 7 1(28) 1(29) / / /I(2A) I(2B) TRUS32: Tree and chords for I -variable FX, type JOINT. The tree/ chord graph for I -variable FY is identical in structure, but not included here. The internal I -variable names for both.FX and FY are shown next . to the chords in this graph for FX. 262 ( ;i QJ •H ft p h cd cd & 0) G 0) a) C CD •H > CO H CJ H ,Q o ft • cd •H ft • co ■H w cd in CU h lo M . 1 cd (1) >» ^ ft i> £ ,a o £ ] 1 H & t3 p :-; 0) (D (D (I) H •H cd C\j 00 H cd gJi 3 en & P CD -p P B w O CD O 5 1 1 z; T) -p i H H OJ C\J 263 13. -lU.) PMACH1 and PMACH2. These two networks are models of the same two-dimensional mechanical pulley structure. PMACH1 is constructed with pulleys (PULLl) with significant masses. PMACH2 is constructed with pulleys (PULL2) whose negligible mass is inherent in the definition of PULL2. 26k PMACH1 Local: Equation: (SPRING) K=50 / (MASS)\ 265 PMACHl: I-variable expressions for F, type MECH 1(7) -I(T) 1(7) -1(7) The tree and chords for F are not included with this example. The only elements with characteristic equaiions are the SPRING'S. The expression substitution effected by using the LOOP method is evident upon examination of the variables on the terminals of the instances of SPRING. 266 PMACH2 Local: Equation (SPRING) K=50 267 PMACH2: Tree and chords for I -variable F, type MECH. 268 <5> <3> (5) 6 1(C) -Kc) (o) $ <6> 1(7) -1(7) (ll)i I(9)+K^)+I(5) -I(9)-KM-I(5) I(U)+I(5) (c)9 -I(U)-I(5) I(9)+I(3) (E) KM -I(7)-K5) /< 8>\ I(E)+I(9)+K3) I(U)-I(3) (10) 6 (U) <> -I(E)-I(9)-I(3) <9> (2) -I(U)+I(3) KM-K3) -1(10+1(3) PMACH2: I-variable expressions for F. 269 15.-1' PULYDl, PULYD2, PULYD3 These are three models of the same pulley network constructed with subnetworks . The differences in the models are explained below. PULYDl is constructed with instances of SBPUL and PULL1 . All pulleys are assumed to have significant masses PULYD2 has the same structure as PULYDl but the pulleys have negligible masses, indicated by setting the mass M of each pulley to zero. PULYD3 is constructed with instances of SBPULM and PULL 2 . The assumption of massless pulleys is inherent in the definitions of SBPULM and PULL2. PULYDl and PULYD2 Local: G,T Equations: G=32 ( PULYDl ) T=100 (PULYD2) T=0 (MASS) M=1000 (MASS) M=1000 (MASS) M=2000 (MASS) M=U000 270 (HOOK) (HOOK) (HOOK) ( » (0) A \^\. c \ M=MP IT \ /^ /(PULLlj\ C M2) EXTERNAL S^y /\m=mp EXTEMAL1 - \ /M=MP / ( PULL1 )\ \( PULL1 )/ \A PULL1 )/ /M= =MP \ /w =MP 9(1) SBPUL Parameter: MP v (PULLl) ^M=MP EXTERNAL 2 /-KM PULYD1, PULYD2: Tree and chords for I-variable F, type MECH, PULYD1, PULYD2: I -variable expressions for F, SBPUL (Instance # 3): Tree and chords for I-variable F, type MECH. Instance #*s h and 5 have similar graphs with their own sets of I-variables. These graphs have not been included. 272 Kll) (3)0 (A) 9 <8> 1(A) -Kll) -1(A) EXTERNAL (0) (U)6 EXTERNAL (l) Q 1(E) (5)6 (6) <> (9) <> 1(3) 1(3) (B) 6 -1(5) EXTERNAL (2) SBPUL (instance # 3): I-variable expressions for F. SBPUL Instances h and 5 have similar network expansions with their own sets of I-variable expressions which are not included here. PULYD3 Local: Equation: G G=32 (MASS) M=1000 (MASS) M=2000 (MASS) M=i+000 (MASS) M=1000 PULYD3: Tree and chords for I-variable F, type MECH, PULYD3: Expressions for I -variable F. EXTERNAL (0) SBPULM (No equations) (No variables) 0(1) °(2) ? EXTERNAL (l) O EXTERNAL (2) SBPULM (Instance # 6 Tree and chords for I -variable F. 275 EXTERNAL (0) 9 EXTERNAL (l) -Ko) EXTERNAL (2)6 SBPULM (Instance # 6) Expressions for I -variable F. 276 18.-20.) PULBM1, PULBM2, PULBM3. These three examples are models of a mechanical structure constructed with instances of pulleys and a subnetwork TONGS. All three networks have two node types, MECH and JOINT. The definition of TONGS is included with example 21, TONGMC. PULBM1 is constructed with instances of PULL1 and the masses of the pulleys are assumed to be significant . PULBM2 has the same structure as PULBM1 but the masses of the pulleys are set to zero. PULBM3 is constructed with instances of PULL2 in which the mass is inherently zero . 277 ( DROLLR ) PULBM1 and PULBM2 Local: G, MX, MP Equations : MX =20 G= 32 ( PULBM1 ) MP =10 ( PULBM2 ) MP =0 o o o 278 -HS> PULBM1, PULBM2: Tree and chords for 1-variahle F, type MECH . V Of -1(3) -0 \ Of -i(U) s -0 PULBMl, PULBM2: Tree and chords for PULBM1, PULBM2: Tree and chords for I-variable FX, type I-variable FY, type JOINT. JOINT. 279 <9> PULBM1, PULBM2: Expressions for I -variables F and FX .FY" 280 ( CONVTR ) L2=10 M2=MX ( DROLLR ) PULBM3 Local: Equations G,MX G=32 MX=20 281 / 1150 5BU88 5BUE0 5BUE0 5BUEU 5B500 5B530 5B5A8 1 -1 250 500 10 32 20 2 5 12 k 50 MECH 1C 2 2 D JO INT 20 2 2 X Y TX TY FX FY PULBM3 78 -1 HOOK 2U2 -1 MASS 2BC -1 CONVTR 3AE -1 TONGS i+BO -1 DBEAM2 72A -1 CRSBAR A7C -1 DBEAM3 B8U -1 DROLLR ee6 -1 PULL2 f6o 10 6a / 3 1 2 POINTERS CONSTANT TABLE (location 5BU88) KEYWORD (location 5BUE0) TERMINAL NAME TABLE (TNT) (location 5BUEU) TERMINAL VARIABLE TABLE (TVT) (location 5B500) ELEMENT NAME TABLE (ENT) (location 5B530) ELEMENT DEFINITIONS (ELEM) (contains definitions of all elements in ENT) (location 5B5A8) CHARACTERISTIC TABLE- (one entry for PULL 2 . Represents equation F(l)+F( 2)+F(0)=0) PULBM3: GLOBAL I Output Table. (See format in Table A-9) 282 PULBM3: Network Definition found in ELEM. (See Table A-9). E A E E B 10 E C 11 D E 15 F 11+ 10 1C 11 D 12 18 13 19 F 1 12 2 13 3 16 k k 5 IB 6 C 7 IT 8 1A 9 5 18 18 21* 30 60 60 6c 6c 6C CA e6 102 c6 E0 E2 FC FE 130 136 138 13A lUO 1U6 10 13 ■_T_ 11 12 283 cn I Q CD H CD P H Cd rC E- cd Eh CD ^ H ■s • •H >H Cd > ?H I O H "in o H on H on rH on H o H m H o O c o 00 C o o on o o o on CO CC LP, oo LP, 1 OO lp 1 o VO OO VO o c O oo H c o H O o oo OO oo LP CC LP OO LP, O vo OO vo m Ph | c Q o CD l-q H CD > H =h rG TJ CD -P ce 5n ^ N CD on fn i CD bC O H rQ CD CD H cd H En ,Q cd ■a -p CD En H — CD cd •H • £ !h Ph O cd CO > u 1 O H ^ m S 3 p ^_^ Mh LP CD I H O fl cd CD EH H r^ o cd CO Eh o H on H on H on H o H on H o O o o m O o o cn o o o on CC oo LP CO lp 1 CO LTN 1 o OO vo o o o oo H o o H o o CO CO OO LP, CO lp OO LTN o vo oo vo o H on H cn rH on H o H on H o H on H on H on H on rH on H o H on H on o o o cn o o rH. on o o o o o o H on o o o o o o o o O o H on o 0J o o 1 o I o o o LPs 1 OO on o LP OO CO OO cn i o o LP, 1 CO on I 00 o o o on o o OO o o On oo CO CM o OO ON o o o o o CM o CM oo CM 1 o OO cn I o O LP, o LP, 1 H 1 CO c— H 1 CO CO H 1 H 1 o ---. -KU) -Kl) ^(8 PULBM3: Tree and chords for I-variable F, type MECH, -1(A) V PULBM3: Tree and chords for I-variable FX, type JOINT. PULBM3: Tree and chords for I-variable FY, type JOINT. 285 PULBM3: Expressions for I-variables F and fFX I FY" 286 21.) TONGMC. Local: Equation: G G=32 (force) v l:;l° (DROLLR) TONGMC: I -variable expressions for [^ , type JOINT. <1> TONGMC: Tree and chords for I-variable FX, type JOINT. -1(0) TONGMC: Tree and chords for I-variable FY, type JOINT . /-Kl) 287 TONGS Parameters: L2,M2 Q EXTERNAL (0) (1) (mnemonic) (DBEAM2) M=M2/2 L=L2/2 (CRSBAR) (CRSBAR) (CRSBAR) (CRSBAR) (DBEAM2) M=M2/2 L=L2/2 L1=L2 M1=M2 L1=L2 M1=M2 L1=L2 M1=M2 L1=L2 M1=M2 EXTERNAL (l) EXTERNAL (2) 288 TONGS: Expressions for I-variables FX and FY. The tree/ chord graphs for FX and FY are not included. -Kic)-i(U)j "-i(iO .-1(5) -I (ID)- ' Kl8)| ,U8, } Kic) Kid) -Ki6) -1(17) Kl6) KIT) 1(12) 1(13) -1(12) -1(13) 1(2)1 I(3)J 289 CRSBAR Parameters : LI , Ml (mnemonic) EXTERNAL (2) EXTERNAL (3) CRSBAR (instance #2): The tree and chord graphs for I-variables FX and FY are identical. Only one graph is shown below with both sets of variables . The other CRSBAR instances have identically structured trees. The network on the right shows the I-variable expressions for FX and FY (instance #2). 1(18) 1(19) 1(16) 1(17 1(12) 1(13) 290 BIBLIOGRAPHY [l] Michel, M. J., and Koch, J., GRASS: Terminal User's Guide, Report No. U67, Dept. of Computer Science, University of Illinois, Urbana, Illinois 6l801, August, 1971. [2] Koch, John Allen, ITEM ANALYSIS, Report No. UIUCDCS-R-72-507, Dept. of Computer Science, University of Illinois, Urbana, Illinois 6l801, March, 1972. [3] Guimaraes, Celso John Frazao, WEED, A Wonderful Equation Elimination Device, Report No. kkh , Department of Computer Science, University of Illinois, Urbana, Illinois 6l801, June, 1971. [h] Gear, C. W. , et al, The Simulation and Modeling System — A Snapshot View, File No. 82U, Department of Computer Science, University of Illinois, Urbana, Illinois 6l801, February, 1970. [5] Quarterly Progress Reports, 1970, 1971, Department of Computer Science, University of Illinois, Urbana, Illinois 6l801 [6] Ratliff, K., SPARSE MATRIX INVERSION, Report No. UU3 , Department of Computer Science, University of Illinois, Urbana, Illinois 6l801, June, 1971. [7] Mayeda, W. , Graph Theory, Wiley-Inter-science, New York, New York, 1972. [8] Patton, Keith, An Algorithm for Finding a Fundamental Set of Cycles of a Graph, Communications of the ACM, Vol. 12, No. 9, September, 1969. 291 VITA Sally Foote Wilkins was born on September 20, 19^+2 in Leadville, Colorado. In June 196U she received a Batchelor of Arts degree in mathematics from the University of Kansas, Lawrence, Kansas. After studying applied mathematics for one year at Harvard University, Cambridge, Massachusetts, she was employed for two years as a systems engineer by IBM, Inc. In June 19&9, s ^e received a Master of Science degree in computer science from the University of Illinois, Urbana, Illinois. While attending the university of Illinois, she held an appointment as a research assistant. AEC-427 U.S. ATOMIC ENERGY COMMISSION 1^' UNIVERSITY-TYPE CONTRACTOR'S RECOMMENDATION FOR cm 3201 DISPOSITION OF SCIENTIFIC AND TECHNICAL DOCUMENT ( S*e Instructions on Rmttna Side ) >EC REPORT NO. COO-2383-0018 2. TITLE Generation and Comparison of Equivalent Equation Sets in a General Purpose Simulation and Modeling Package YPE OF DOCUMENT (Check one): a. Scientific and technical report \2\ b. Conference paper not to be published in a journal: Title of conference ____^__^_^_____^_ Date of conference Exact location of conference. Sponsoring organization □ c. Other (Specify) RECOMMENDED ANNOUNCEMENT AND DISTRIBUTION (Check one): EJ a. AEC's normal announcement and distribution procedures may be followed. ~2 b. Make available only within AEC and to AEC contractors and other U.S. Government agencies and their contractors. "2 c. Make no announcement or distribution IEASON FOR RECOMMENDED RESTRICTIONS: iUBMITTED BY: NAME AND POSITION (Please print or type) C. W. Gear Professor and Principal Investigator )rganization Department of Computer Science University of Illinois Urbana, IL 6l801 I ,^A ,rV^'800 South Cass Avenue rgonne, IL 60^39 13. Type of Report & Period Covered 14. 5 Supplementary Notes 6 Vhstracts In the General Purpose Simulation and Modeling Package, the behavior of a ;eneralized network, which is modeled graphically, is studied by analyzing numerically in equation set equivalent to the graphic model. Two methods, which operate within the same simulation environment, have been leveloped for generating the equation set for a network model. The equation sets ;enerated are linear transformations of one another so either set may be used to Lefine the behavior of the network. One set of equations usually contains fewer .quations, in fewer unknowns, but each is more dense (that is, contains more terms md depends on more variables). Thus it is not immediately clear which can be solved most rapidly using sparse techniques . The two methods were compared by measuring the relative efficiency of the jperation of the numerical analysis programs on the two equation sets. A variety )f networks were modeled and simulated using both methods to generate the data ised for comparison. One method was generally found to be at least as efficient as the other method 'or sparsely-connected networks and markedly more efficient for densely-connected letworks . Key Words and Document Analysis. 17a. Descriptors 1 Identif iers/Opcn-Endcd Terms 7 ' Osati Field/Group ^variability Statement Unlimited c ,* NTIS- in (10-701 19. Se< urit y ( lass (This Report) 1J1S|C.I.ASS1F1KD 20. Security (lass ( T h i s Page UN( LASS1FIED 21- No. of Pages 300 22. Price USCOMM-DC 40329-P7I jfi -■*' UNIVERSITY OF ILLINOIS-URBAN A 510.84 IL6R no. C002 no 708-711 (1975 Report/ 3 0112 088401895 XflftSqcf. SjjftMHflj ■ "H ■I kMBK Hil Boca crOmS ■ tfwafcw 1 Stboa " MB M m