Sei sulla pagina 1di 33

1

USER INSTRUCTIONS FOR PROGRAM FEAP INTRODUCTION The solution of a finite element problem using FEAP begins with a sketch of the mesh covering the region to be analyzed. The elements and nodes are then numbered in consecutive order. The user may then proceed with the data input and mesh generation phase which is subsequently followed by the solution phase. The data input and mesh generation phase is first described in Sections 1.0 to 7.0 below. The solution phase is described at the end of the notes. The first step in the Mesh generation phase consists of specifying the title and control information given in Sec.1.0 and Sec.2.0. The program then expects the data cards for the mesh description : e.g., nodal coordinates, element connections etc. The flow of data to the program is controlled by a set of Macro commands. Some of the available macro commands are summarized in the table below. Each macro is input according to FORMAT (A4) i.e., first 4 columns. INPUT MACRO CONTROL CARDS

Macro

Data to be input

COOR ELEM IVAR STRE STRA MATE BOUN FORC SET DIST MP01 , MP02 NOPR

Coordinate Data Element Data Initial Value of Internal Variables Initial Value of Stresses Initial Value of Strains Material Data Boundary Condition Data Prescribed Nodal Force Data Declare node and element sets Specify distributed edge loads User supplied Input macros Do not print subsequent mesh data

Macro

Data to be input

PRIN

Print subsequent mesh data (default mode) Read initial nodal displacements (or trial vector in case of eigenvalue analysis) Read initial nodal velocities Read information for domain integral calculation of J or interaction integral Must be the last card in Mesh Generation phase.Terminates mesh Input.

INIT

VELO DOMA

END

The macros PRIN and NOPR allow the user to print and suppress printing , respectively, of any data which is input subsequently. Thus once a mesh has been fully checked and subsequent analysis is required , it is not necessary to reprint all the mesh data. An analysis will require atleast macro commands COOR (Sec.3.0), ELEM (Sec.4.0), and MATE (Sec.5.0). In addition, most analyses will require specification of boundary restraint conditions, macro BOUN, and the corresponding nodal force or displacement value, macro FORC which are described in Sec.6.0 and 7.0 respectively. The end of the Data input and Mesh generation phase is indicated by the use of an END macro card. Strict card sequencing is necessary only within each macro segment . Several blank cards may exist between two macro segments without affecting the execution of the program. Once all necessary mesh data is supplied, the user can select to solve the problem or not. If only a check of the mesh is required, insert a STOP macro card. If the solution phase is to be carried out, additional data is required as discussed at the end of the notes.

DATA INPUT AND MESH GENERATION

1.0 TITLE CARD - FORMAT (20A4)

Columns 1-4 5-80

Description Must contain FEAP Alphanumeric Information to be printed with output as page header

Variable TITLE(1) (TITLE(I), I = 2,20)

2.0 CONTROL CARD - FORMAT (16I5)

Columns 1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50 51-55 56-60

Description Number of nodes Number of elements Number of material sets Number of spatial dimensions Number of degrees of freedom at each node Number of nodes per element Number of stress components Number of internal variables Number of quadrature points per element Number of proportional load cards Number of distributed edge load cards Auto stepping code

Variable NUMNP NUMEL NUMMAT NDM NDF NEN NSDM NQDM NQUAD NPLD NDIST IAUTO

Notes 1. All elements belonging to a particular type and having identical material properties are represented by one material set. NDM must be 1 and 3. NDF must be 1 and 6. NEN is the maximum number of nodes per element in the mesh. NSDM, NQDM and NQUAD must be all 1. NQUAD must include both the integration points and output quadrature points. Stresses and strains are computed at quadrature points. Number of stress and strain components is NSDM. Internal variables are associated with quadrature points. For example , equivalent plastic strain and current yield stress will be internal variables in Von Mises plasticity model. NPLD is number of proportional load cards. This refers to the number of timeforce or time-displacement cards specified for nonlinear or dynamic analysis. The program will accept upto seven such time tables of prescribed force or displacement. These time tables need to be input using macro PROP in the solution phase. NDIST is the number of distributed edge load cards (which are read through macro DIST). IAUTO = 1 sets switch for auto-time stepping in Newton-Raphson equilibrium iterations. Default is IAUTO = 0 (no auto-time stepping).

2. 3. 4. 5. 6. 7.

8.

9.

10.

11.

3.0 COORDINATE DATA Card 1: FORMAT (A 4)

Columns 1-4

Description Must contain COOR

Card 2: FORMAT (2I5, 7F10.0)

Columns 1-5 6-10 11-20 21-30 31-40

Description Node Number Generation Increment X1-Coordinate X2-Coordinate X3-Coordinate

Variable N NG X(1,N) X(2,N) X(3,N)

NOTES 1. The coordinates of each node must be defined, but need not be read in order. Only the values of (X(I,N), I = 1,NDM ) need be defined where NDM is the value input in the control card. Coordinate data can be generated along straight lines by employing a two card sequence as follows: Card I : L, LG, X(1,L) .X(NDM,L) Card I+1 : N,NG,X(1,N) .X(NDM,N) N-L must be an integral multiple of LG. The coordinates of all nodes : L + LG, L + 2*LG, .N-LG are generated by linearly interpolating the coordinates of nodes L and N. If LG is blank or zero no generation takes place between L and N. 3. 4. If more than one coordinate data card for node N is input, the last one read takes priority. Terminate entry of coordinate data with a blank card.

2.

3.1

Initial Nodal Displacements Card 1: FORMAT (A 4)

Columns 1-4

Description Must contain INIT

Card 2: FORMAT (2I5, 7F10.0)

Columns 1-5 6-10 11-20 21-30 31-40

Description Node Number Generation Increment X1-component of displacement X2-Component of displacement X3-Component of displacement

Variable N NG U(1,N) U(2,N) U(3,N)

NOTES 1. Use this macro for setting initial values for nodal displacements (may be needed in dynamic analysis) or trial vector for eigenvalue analysis. 2. See Notes under Section 3.0. 3. Terminate with a blank card. 3.2 Initial Nodal Velocities Card 1: FORMAT (A 4)

Columns 1-4

Description Must contain VELO

Card 2: FORMAT (2I5, 7F10.0)

Columns 1-5 6-10 11-20 21-30 31-40

Description Node Number Generation Increment X1-component of velocity X2-Component of velocity X3-Component of velocity

Variable N NG V(1,N) V(2,N) V(3,N)

NOTES 1. Use this macro for setting initial values for nodal velocities (may be needed in dynamic analysis) . 2. See Notes under Section 3.0. 3. Terminate with a blank card 4.0 ELEMENT DATA Card 1 : Columns

FORMAT (A4) Description

1-4

Must contain ELEM

Card 2:

FORMAT (16 I 5)

Columns 1-5 6-10 11-15 16-20 etc.

Description Element Number Material set Number Node 1 Number Node 2 Number .

Variable L IX (NEN+1,L) IX(1,L) IX(2,L)

etc. etc.

Node NEN Number Generation Increment

IX(NEN,L) LX

Notes 1. The Element data card contains the element number , material set number (which also selects the element type, see Material Property Data ) and the sequence of nodes connected to the element. (i.e., the nodal connectivity array for each element). 2. If a particular element has less than NEN nodes (where NEN is input in the Control Card) either leave the appropriate fields blank or type zeroes. 3. Elements must be in order. If element cards (corresponding to certain element) are omitted, the element data will be generated from previous element with the same material number and the nodes all incremented by the generation increment (LX) on the previous element. 4. Generation to the maximum element number occurs when a blank card is encountered. 5. Terminate element data with a blank card. 6. Two dimensional element types that are available are 4-node to 8-node serendipityquadrilaterals and 9-node Lagrangian quadrilateral. The local node numbering for the 9-node Lagrangian element is shown in the figure below : 7

The 8-node serendipity element is obtained by simply omitting the ninth node number (blank or zero in the element card ). The 4-node quadrilateral is obtained if only the first four nodal connections are non-zero. A mid-side node (like node 5 above ) may be omitted. In this case the shape functions along that edge will have a linear variation. 7. The 3-node triangular element may be obtained by collapsing the edge of a 4-node quadrilateral to a point.

4.1 Initial value of Element Internal Variables Card 1: FORMAT (A4)

Columns 1-4

Description Must contain IVAR

Card 2:

FORMAT (2I5)

Columns 1-5 6-10

Description Element Number Generation Increment

Variable N NG

Card 3:

FORMAT (8F10.0)

Columns 1-10

Description Value of 1st internal variable at first Gauss quadrature point. Value of 2nd internal variable at first Gauss quadrature point. .. Value of internal variable NQDM at first Gauss quadrature point.

Variable Q(1,1,N)

11-20 etc. etc.

Q(2,1,N) ..

Q(NQDM,1,N)

NOTES: 1. Initial values of internal variables must be defined at all quadrature points of all elements if they are non-zero. The information in card 3 must be repeated on successive lines for all the quadrature points (NQUAD, which is defined in the control card) of the element N. The values of internal variables at quadrature points of some elements may be

2.

3.

10

generated by specifying the above information for an element N (with generation increment NG), followed by that for an element L. L N must be an integral multiple of NG. In this case, the values of the internal variables at the quadrature points of all elements N+ NG, N + 2*NG , . L NG are generated by linearly interpolating the corresponding values of elements N and L. If NG is left blank or zero, no generation takes place between N and L. 4. 4.2 Terminate with a blank card. Initial Values of Element Stresses FORMAT (A4)

Card 1:

Columns 1-4

Description Must contain STRE

Card 2:

FORMAT (2 I 5)

Columns 1-5 6-10

Description Element Number Generation Increment

Variable N NG

Card 3:

FORMAT (8F10.0)

Columns 1-10 11-20 etc. etc.

Description Value of 1st stress component at first Gauss quadrature point. Value of 2nd stress component at first Gauss quadrature point. .. Value of stress component NSDM at first Gauss quadrature point.

Variable STR(1,1,N) STR(2,1,N) ..

STR(NSDM,1,N)

11

NOTES: 1. 2. Please see Notes under Section 4.1 Terminate with a blank card.

4.3 Initial Values of Element Strains Card 1: FORMAT (A4)

Columns 1-4

Description Must contain STRA

Card 2:

FORMAT (2 I 5)

Columns 1-5 6-10

Description Element Number Generation Increment

Variable N NG

Card 3:

FORMAT (8F10.0)

Columns 1-10 11-20 etc. etc.

Description Value of 1st strain component at first Gauss quadrature point. Value of 2nd strain component at first Gauss quadrature point. .. Value of strain component NSDM at first Gauss quadrature point.

Variable EPS(1,1,N) EPS(2,1,N) ..

EPS(NSDM,1,N)

12

NOTES: 1. Please see Notes under Section 4.1 2. Terminate with a blank card. 5. MATERIAL PROPERTY DATA Card 1: FORMAT (A4)

Columns 1-4

Description Must contain MATE

Card 2:

FORMAT (16 I 5)

Columns 1-5 6-10 11-15

Description Material set Number Element Type Number Global D.O.F assignment corresponding to local D.O.F 1 Global D.O.F assignment corresponding to local D.O.F 2 . Global D.O.F assignment corresponding to local D.O.F NDF

Variable MA IEL IE(1,MA)

16-20

IE(2,MA)

etc. etc.

IE(NDF,MA)

Card 3 : User must supply appropriate material property data required for element type IEL. NOTES: (1) Cards 2 and 3 must be provided for all the NUMMAT material sets (see controlcard). The element type IEL ( 1 IEL 9 ) corresponding to each material set MA must

(2)

13

be specified. Note that material set number to which a particular element in the mesh belongs has been specified through ELEM macro. (3) In Card 2 columns 11-15 , 16-20 etc. may be left blank if the local and Global D.O.F assignments are the same. ( Note : For the purpose of our assignment, all columns greater than column 10 maybe left blank in card 2 above). In card 3, the user must specify the appropriate material property data for element type IEL.This card is read in Subroutine ELMTNN (using ISW = 1) and the information is stored in the array D(40,NUMMAT).

(4)

Example a) For 2 D plane strain/plane stress isotropic elasticity element type the Youngs Modulus , Poissons ratio, mass density must be input in card 3. For linear heat transfer element type the thermal conductivity , heat capacity and mass density must be input in card 3.

b)

6.0

Boundary Restraint Data FORMAT (A 4)

Card 1 :

Columns 1-4 Card 2 :

Description Must contain BOUN FORMAT (16 I5)

Columns 1-5 6-10 11-15 16-20 etc. etc.

Description Node number Generation Increment Boundary Code for D.O.F 1 Boundary Code for D.O.F 2 . Boundary code for D.O.F NDF

Variable N NX ID (1,N) ID (2,N) ID (NDF,N)

14

Notes: (1) For each node which has atleast one degree of freedom with a specified displacement , a boundary condition card must be input. The Convention used for boundary restraints is = 0 no restraint, force specified 0 restrained, displacements specified (3) Boundary code data for some nodes may be generated using a two card sequence as follows: Card I : L, LG , ID(1,L) .. ID(NDF , L)

(2)

Card I+1 : N , NG , ID(1,N) .. ID(NDF , N) N-L must be an integral multiple of LG. The boundary code corresponding to a certain D.O.F of all nodes L + LG, L + 2*LG .. N-LG are set to zero (which means specified force ) if the boundary code corresponding to that D.O.F was specified as 0 in Card I . They are set to -1 ( which means specified displacement) if the boundary code corresponding to that D.O.F was specified as a negative number in card I . If LG is zero no generation takes place between nodes L and N. (4) Terminate with a blank card

7.0

Nodal Force Data Card 1 : FORMAT (A4)

Columns 1-4

Description Must Contain FORC

15

Card 2 : FORMAT (8I5)

Columns 1-5 6-10 11-15

Description Node Number Generation Increment Proportional Table Number which corresponds to D.O.F 1 Proportional Table Number which corresponds to D.O.F 2 . Proportional Table Number which corresponds to D.O.F NDF FORMAT (6F10.0)

Variable N NG IDPROP(1,N)

16-20

IDPROP(2,N)

etc. etc.

IDPROP(NDF,N)

Card 3 :

Columns 1-10 etc. etc

Description Specified Force / Displacement at D.O.F 1 Specified Force / Displacement at D.O.F NDF

Variable F(1,N) F(NDF,N)

Notes : 1. For each node that has a specified non-zero nodal force or displacement, a force card must be input or generated. The value specified is a force if the corresponding restraint code is zero and a displacement if the corresponding restraint code is zero (see BOUN macro ). 2. FORC macro must be given only after BOUN macro. 3. For non-linear problems, and for problems involving time variation, nodal force displacement as function of time must be specified. This is achieved by attaching each specified force / displacement component to a proportional table. The program accepts upto 7 proportional tables. Each table contains a scaling factor as a function of time.At a particular time ( or step in the loading process ) , the total force at a particular nodal d.o.f is calculated by multiplying the value specified in the FORC macro by the corresponding factor (which is obtained from the proportional table to

16

which that d.o.f has been attached). 4. The variation of scaling factors corresponding to different proportional tables as a function of time is input during the solution of the finite element problem using the macro PROP. 5. For linear problems and for problems which do not involve any time variation, columns beyond the 10th column may be left blank in card 2 above. In this case the program assumes a scaling factor of unity for all specified force/displacements. 6. Force data for some nodes may be generated by using two sequence of cards as follows: Card I : L, LG, IDPROP(1,L) .. IDPROP(NDF,L) Card I+1: F(1,L) , F(2,L) ..F(NDF,L) Card I+2: N , NG , IDPROP(1, N) .IDPROP(NDF,N) Card I+3: F(1,N), F(2,N) ..F(NDF,N) N-L must be an integral multiple of LG. The specified force / displacement at a certain d.o.f of all nodes L + LG, L+2*LG , N-LG is generated by linearly interpolating the corresponding values of nodes L and N. The proportional table number to which that d.of. is to be attached for all generated nodes is set equal to the number specified in the master card I for node L. 7. Terminate with two blank cards. 8.0 Element and Node Sets Card 1 Columns 1-4 Card 2 (FORMAT 4I5) Columns 1-5 6 - 10 11 - 15 16 - 20 Description Node or Element Set Number Number of nodes or elements in the set Generation increment used to generate nodes / elements Last node / element number to be obtained by generation Variable NPS NPST IGEN IGENT (FORMAT A4) Description Must contain SET

17

Card 3 Columns 1 - 5 6 -10 etc.

(FORMAT 15I5) Description 1st entitty of current set 2nd entity of set ............................. Variable NSET(NPS,2) NSET(NPS,3) ...................

NOTES 1. A total of nine element or node sets can be declared for the sake of selectively printing nodal displacements or reactions or element stresses or strains or internal variables. This is possible through a macro PRTS in the solution phase. 2. Each set must be either a collection of selected nodes or selected elements. The user must keep track of whether a particular set that he has declared is a node or element set. The program does not distiguish between the two at the input stage through the macro SET. However, it would matter later when the user requests specific variable printout for that SET using macro PRTS. 3. There can be a maximum of 200 entities (nodes or elements) in any one set (NPST 200). 4. IF IGEN > 0 then generation of node or element number from 2nd entity onwards will take place by incrementing the 1st entity input in Card 3 (Cols 1-5) by the value of IGEN. a) If the user wishes to generate all the entitites from the second to the last (NPST) then IGENT must be given as zero. Further, it is sufficient to give only the 1st entity (Cols. 1- 5) in card 3. The remaining columns in card 3 can be left blank. b) If, however, the user wishes partial generation (i.e., from the 2nd entity to IGENT, where IGENT < NPST), then the remaining (NPST - NGENT) entities must be input without generation in Cols (6-10), Cols. (11-15), etc. of Card 3. In this case, generation will take place from 2nd entity to entity number IGENT by incrementing the 1st entity (Cols.1-5 of card 3) by IGEN. The program will look for the entitity numbers IGENT+1 to NPST in columns (6-10), (11-20), etc. of card 3. 9.0 Distributed Edge Load Cards Card 1 (FORMAT A4) Columns 1-4 Description Must Contain DIST

18

Card 2 (FORMAT 16I5) Columns 1 - 5 6 - 10 11 - 15 16 - 20 etc. ......... .......... Description Element Number corresponding to 1st edge Proportional table ID ( 7) of distributed load on 1st edge Element Number corresponding to 2nd edge Proportional table ID ( 7) of distributed load on 2nd edge ............................................... Element Number corresponding to edge NDIST Proportional table ID ( 7) of distributed load on edge NDIST Variable IDIST(1,1) IDIST(2,1) IDIST(1,2) IDIST(2,2) .............. IDIST(1,NDIST) IDIST(2,NDIST)

Card 3a (FORMAT I5) Columns Description Variable

1- 5

Number of edges with distributed load

NEDGE

Card 3b Columns 1- 5 6 - 10 11 -15 16 - 25 26 - 35 36 - 45 46 - 55 56 - 65 66 - 75

(FORMAT 3I5, 6F10.0) Description Global node number 1 along edge Global node number 2 along edge Global node number 3 along edge Tangential traction at 1st node Tangential traction at 2nd node Tangential traction at 3rd node Normal traction at 1st node Normal traction at 2nd node Normal traction at 3rd node Variable N(1) N(2) N(3) PRESST(1) PRESST(2) PRESST(3) PRESSN(1) PRESSN(2) PRESSN(3)

NOTES 1. YOU CAN USE THIS MACRO ONLY IF module ISW = 12 in your element subroutine has been appropriately completed. Further, NOTE THAT THIS MACRO AT PRESENT IS APPLICABLE ONLY FOR 2D PLANE STRAIN / PLANE

19

2.

3. 4.

5.

6.

STRESS / AXISYMM CASES. Cards 3(b) must be supplied for each of the NEDGE edges of the element corresponding to the current distributed edge load card. In most cases NEDGE will be 1 (i.e., only 1 edge of an element may have distributed load). However in some cases like in corner elements two edges may have distrubuted loads. In such cases, Card 3(b) must be supplied for each of the NEDGE edges. The combination of cards 3(a) and 3(b) must be supplied for each of the NDIST distributed edge loads. Each distributed edge load card must be attached to a proportional table # by specifying IDIST(2,I) in Card 2. If on the same edge, the tangential and normal tractions vary differently with time then each must be treated separately by giving two distributed edge load cards. The convention for specifying global node numbers N(1) , N(2) and N(3) along the edge is that N(1) and N(3) must be corner nodes and N(2) must be mid-side node. Give N(2) as zero for missing mid-side node. Specify N(1), N(2), N(3) such that as you traverse the edge in that order, the element to which they belong must be to the left. Tangential tractions PRESST(I) are taken as positive if they act in the same direction as orientation of the edge defined by the order N(1), N(2), N(3) as mentioned above. Normal tractions PRESSN(I) are taken as positive if they act into the element under consideration. Give PRESST(2) and PRESSN(2) as zero if mid-side node is missing.

10.0 Domain definition for J integral computation Card 1 (FORMAT A4) Columns 1-4 Description Must Contain DOMA

Card 2

(FORMAT 3I5)

Columns

Description

Variable

1- 5 6 - 10 11-15

Number of domains Symmetry switch Number of crack tips

NDOM(1) NDOM(2) NDOM(3)

20

Card 3a (FORMAT 4F10.0)

Columns

Description

Variable

1 - 10 11 - 20 21 - 30 31 - 40

X-coordinate of crack tip Y-coordinate of crack tip Z-coordinate of crack tip Virtual crack extension area

XC(1) XC(2) XC(3) XC(4)

Card 3b

(FORMAT 4F10.0)

Columns 1 - 10 11 - 20 21 - 30 31 - 40

Description DX or DR of outer boundary of domain with respect to crack tip DY or DR of outer boundary of domain with respect to crack tip Width of domain (distance between outer and inner contour) DW Rectangular or circular domain switch

Variable DOM(1) DOM(2) DOM(3) DOM(4)

Notes 1. Number of domains (NDOM(1)) must be 10. 2. Symmetry switch (NDOM(2)) must be set as 1 for mode I case where half-problem about the crack plane is modelled. It must be set as 0 for unsymmetric (mixed-mode) cases, where both upper and lower regions with respect to crack plane must be modelled. 3. Number of crack tips (NDOM(3)) must be 8. This should be given as the number of nodes along the crack front through the thickness for 3D case. Give this as zero for 2D case. 4. VCE area (XC(4)) may be omitted for 2D case. Program will reset it as 1. Also, XC(3) may be omitted for 2D case. 5. Rectangular (DOM(4) = 1) or circular domains (DOM(4) = 2) are admissible. The definition of the domains is as shown below.

21

Case (1): Rectangular domain (DOM(4) = 1)

DW A DW DY

DX C1

DX C2 DY

Case (2) :

Circular domain (DOM(4) = 2)

DR

C1

C2

DW

NOTE: a) In the above figures C1 is the inner contour and C2 is the outer contour. The area A between C1 and C2 is the domain. b) If DW = DOM(3) is given as zero then program assumes inner contour as vanishingly small.

22

Solution of Finite Element Problems 1.0 Introduction After completion of data input and mesh generation , the solution phase of a finite element problem may be initiated .The program FEAP is composed of several modules which provide a variable alogorithm capability to solve different types of problems like linear steady state, non-linear steady state, transient , eigenvalue problems etc. The basic aspect of the variable algorithm program is a macro instruction language which helps to carry out a set of operations required for the solution of a particular type of problem. For example, the macro command TANG is used to form the global stiffness matrix. This involves the computation of the element stiffness matrices and assembling them into a global array. For a problem with an unsymmetric stiffness matrix the macro UTAN is used. The right hand side vector (force vector) modified for specified displacements may be formed using macro FORM. The resulting matrix equations may be solved (by Gauss elimination ) using the instruction SOLV. Printed output can be obtained using the instruction DISP for displacements and STRE for element variables such as stresses and strains. The general format for macros in solution phase is ABCD XKEY x y

Here ABCD (with 4 letters) refers to a macro command and XKEY to a qualifier for the macro. There should be one blank space between ABCD and XKEY. Many macros may not have a qualifier. In this case, leave the field corresponding to XKEY blank. Further, x and y are two additional numerical inputs that may be given according to F10.0 format between columns 11 to 20 and 21 to 30 (should be right-justified within these field). Again, many macros may not need x and / or y. In that case, leave these fields blank. For example, TOL 1.0E-03 1.0E-06

will set tolerance for force norm to 1.0E-03 and energy norm to 1.0E-06 during convergence check in Newton - Raphson equilibrium iterations. Note there is no qualifier XKEY for this macro. As another example, PRTS DISP 3 --

will output displacements of nodes belonging to set 3 in fpprts.dat file. In this example, DISP is a qualifier for macro PRTS which enables printout of displacements. NOTE : Use upper case for all macros. Some of the available Macro commands for solution phase are summarized in the

23

Table below.

Columns 14

Description

MACR TANG

Must be the first card in Macro Instructions Symmetric Tangent Stiffness formulation Loops over elements with ISW = 3 and assembles into global stiffness matrix. Corrects for specified displacement BCS by setting appropriate columns and rows of stiffness matrix as zeroes and putting ones on the corresponding diagonals. Similar to TANG but forms and assembles unsymmetric stiffness matrix. Sets switch for using unsymmetric equation solver. Form Right Hand side of equations Loops over elements with ISW = 6 , obtains (negative of) internal force vector due to element stresses and contributions from body forces and assembles into global array. The external force vector due to surface tractions, point loads, input by user via the macros FORC and DIST are scaled by the time dependent factors specified via PROP table cards (see below) and added to the force vector. The force vector is adjusted for specified displacement BCS by multiplying appropriate columns of stiffness matrix and moving to RHS. Solve finite element equilibrium equations. Update nodal displacements Check for convergence in Newton-Raphson equilibrium iteration loop Update stresses, strains and internal variables. Loops over all elements with ISW = 9. Print nodal displacements in fpout.dat file. Print element variables (eg. Stresses ) in fpout.dat file. Loops over all elements with ISW = 4. Form lumped mass matrix Loops over all elements with ISW = 5 and assembles into

UTAN

FORM

SOLV

CONV

CEQS

DISP STRE

LMAS

24

global array CMAS Form consistent mass matrix Loops over all elements with ISW = 5 and assembles into global matrix Compute nodal reaction Loops over all elements with ISW = 6 and obtains reactions using internal force vector due to element stresses. Input proportional load table (Proportional load data should follow END statement ) Turn on print (echo to file fpout.dat) switch. Turn off print switch. It may be desirable to use this to suppress printing of unnecessary details in fpout.dat file particularly while executing runs involving several time steps. However, for debugging purposes it may be advisable to print the full echo (for example, the force and energy norms in N-R iterations will not be printed if NOPR is used. So one cannot see the convergence trends). End of macro instructions.

REAC

PROP

PRIN NOPR

END

In the above table, ISW is a switch which is set by a macro such as TANG which calls an element subroutine ELMTNN to perform a certain operation like computing element stiffness matrix. 2.0 Special purpose MACROS 2.1 Setting time increment size and updating current time The time increment size is set by the macro DT val where val is the value of the time increment. In order to update the time (i.e., to go from time step T to T + DT ) use the macro: TIME. Note that for static equilibrium analysis of rate independent material response time allows for a convenient way by which a large load that needs to be applied on a body can be broken into smaller increments. The solution is then carried out in an incremental fashion so that convergence will be attained in the Newton-Raphson equilibrium iteration loop. If the load step size is too large and the nonlinear (geometric and / or material) behaviour of the structure is too pronounced the N-R iterations may not converge. In this case, one needs to try the solution again with a smaller DT value.

25

For rate dependent materials (like creeping solids), or in dynamic analysis, actual (physical) time increment should be specified via DT and in this case TIME will update the actual time T. 2.2 Reading proportional load cards As mentioned earlier, in nonlinear or dynamic analyses, the nodal loads specified via FORC card or distributed edge loads specified via DIST card are only reference values and need to be scaled by time dependent factors to obtain the actual force magnitude at the current time. To this end, each FORC card or DIST card needs to be attached to a proportional table ID as discussed earlier. The maximum number of proportional tables is seven. The proportional tables are read in the solution phase using the macro: PROP. The values of the different prop table factors are input after macro END using FORMAT (8F10.0) as outlined below : END T1 T2 etc. STOP Here T1, T2 , etc., refer to time values and must be given in increasing order. p1, p2, ...., p7 which are input in the second to eighth fields on each line refer to the prop factor values of table 1, table 2, etc., at the corresponding time. The user must input NPLD such lines, where NPLD is the value input for the number of prop table cards in the control card. If the current time T during the solution process happens to lie between two entries input in the table (say, between T3 and T4), the program will arrive at the value of the prop factors at the time T by linear interpolation. If a particular prop table factor is identically zero simply leave that field (or fields) blank. p1 p1 p2 p2 ............. ............ p7 p7

2.3 Looping over set of commands Looping commands may be introduced via the instruction pair : LOOP - - - - NEXT n

which indicates that looping over all instructions between LOOP and NEXT will occur n times. The macro LOOP ITRN n -indicates a Newton-Raphson iteration loop (see solution of nonlinear static equilibrium problems in Section 3.2 below).

26

The combination of LOOP and NEXT macros may be used in a nested sense. Thus, LOOP 2 LOOP 5 TIME LOOP ITRN 10 ------------NEXT PRTS DISP 3 NEXT PRTS STRE 2 NEXT will allow for printing of displacements of set 3 every 5 time steps and stresses of set 2 every 10 steps. Note in this case convergence must be attained in the innermost Newton iteration loop before the solution can proceed from one time step to the next. 2.4 Setting tolerance for convergence Use following macro for setting tolerance : TOL val1 val2 Here, val1 and val2 are specified tolerances for force norm and energy norm in N-R equilibrium iterations in nonlinear static analysis. This macro can also be used for setting the tolerances to check for convergence in vector iteration loops for determining the maximum and minimum eigen-values (see Section 3.3 below). In this case val1 will be the specified tolerance and val2 can be omitted (left blank). 2.5 Writing and reading restart files In nonlinear or dynamic analysis, it is usual practice to run the program for few steps at a time, examine the results by viewing selected printouts of element stresses or nodal displacements, or plot results with a post-processor and continue with the analysis if the results obtained are satisfactory. One should never attempt to run an analysis which requires several time steps continuously without periodic breaking as indicated above. To this end, it is necessary to write all the information pertaining to nodal displacements, velocities, accelerations and element variables (stresses, strains, etc.) in a restart file. This restart file should be carefully stored and should be read by the program will restarting the analysis. The program can write and read formatted as well as binary restart files. Formatted restart file (fpresf.dat) is written or read using macro : RESF WRIT or RESF READ Binary restart file (fprest.dat) is written or read using macro: REST WRIT or REST READ

2.6 Printing of selected nodal and element results The program allows for printing of nodal displacements or reactions of a set of nodes declared using the SET command (see mesh generation phase commands) using the macro:

27

PRTS DISP n or PRTS REAC n where, n is the set number ( 9). Similarly stresses, strains or internal variables (first to fourth) of any element set can be printed using : PRTS STRE n or PRTS STRA n or PRTS IVAR n where, n is the set number ( 9). Note only the values at the output gauss point (1x1 G.P. in case of 4-node quad) will be printed for all element data. The output using PRTS macro will be printed to file fpprts.dat. It will contain : Time, Elem number, output quad point number and values of the stress or strain, or internal variables. In case of node sets, following will be printed in fpprts.dat file: Time, node number, coordinates of the node, displacement components. For nodal reactions, the coordinates of the node will not be printed. One can print time history of selected nodal or element variables using following macro: HIST XKEY n m where XKEY may take following values: DISP History of nodal displacement VELO History of nodal velocity ACCE History of nodal acceleration STRE History of element stress STRA History of element strain IVAR History of element internal variable n is the node number or element number being sampled and m is the component number to be printed. In case of element printout , give m as (IQUAD-1)*NSDM+IS where IS is the stress or strain component number and IQUAD is the Gauss quadrature point for which the printout is desired. For internal variables, give m as (IQUAD-1)*NQDM + IQ, where IQ is the internal variable number and IQUAD is the G.P. for which printout is desired. For 4-node quad, it is usual practice to give IQUAD = 5 which will correspond to the 1x1 G.P. The output generated by HIST macro will be sent to file fpdump.dat. It will contain node or element number, time and value of the variable. For XKEY = DISP, the output will be node number, time, value of PROP(1) at the time instant, and displacement at the required dof of the node. 2.7 Writing post-processor file The output from FEAP can be written as a neutral file to be read by a post-processing package using PLOT macro. The macro PLOT calls a Subroutine Plot which writes this neutral file. At present, neutral file can be written for MSC/ PATRAN , ORION and TECPLOT (ask Professor Narasimhan for these interface files if you need them). However, the user may write his own interface file for any other post-processor by coding the subroutine Plot. The argument list for subroutine plot is : subroutine plot(ul,xl,tl,ld,p,s,ie,d,id,x,ix,f,t,jdiag,str,eps,q,b,dr,velg,accelg,vel,accel,ndf, ndm,nen1,nst,nstr,nq,nend,key,iq,prt) common /cdata/ numnp,numel,nummat,nen,neq,ipr,nsdm,nqdm,nquad dimension ul(*),xl(*),tl(*),ld(*),p(*),s(*),ie(7,*),d(40,*),id(*),x(ndm,*),ix(nen1,*),

28

f(*),t(*),b(*),dr(*),jdiag(*), str(nstr,*),eps(nstr,*),q(nq,*),velg(*),accelg(*), vel(*),accel(*) where the variables are as follows: ul Element displacement array (dimension ndf*nen) xl Element coordinate array (dimension ndm*nen) tl Element temperature array (dimension nen) ld Element dof connectivity array (dimension ndf*nen) p Element force vector (dimension nst = ndf*nen) s Element stiffness matrix (dimension nst*nst) ie First to sixth entry represent global dof corresponding to local dof for a particular material set. Generally, these will be same. The seventh entry is the element type number corresponding to this material set. (dimension 7*nummat) d Material properties array for a particular material set number (dimension 40*nummat) id Boundary condition codes for all nodes (= 0 means free node. 0 means fixed node). [dimension ndf*numnp] x coordinates of all nodes (dimension ndm*numnp) ix (j,i) Global node number if jth node in element i (connectivity). ix(nen1,i) Material set number of element i [dimension of ix: nen1*numel] f Specified nodal forces or displacements [dimension ndf*numnp] t Global temperature array [dimension numnp] jdiag Diagonal pointers for stiffness matrix [dimension ndf*numnp] b Global Nodal displacements array (dimension ndf*numnp) dr Global out-of-balance forces (dimension ndf*numnp) str Element stresses (at all Gauss points of all elements) (dimension nsdm*nquad*numel) eps Element strains ( at all Gauss points of all elements) (dimension nsdm*nquad*numel) q Element internal variables (at all Gauss points of all elements) (dimension nqdm*nquad*numel) vel Element velocity array (dimension ndf*nen) accel Element acceleration array (dimension ndf*nen) velg Global Velocity array (dimension ndf*numnp) accelg Global Acceleration array (dimension ndf*numnp) numnp Total number of nodes in the mesh numel Total number of elements nummat Number of material sets ndf Number of degrees of freedom per node ndm Number of spatial dimensions nsdm number of stress or strain components (per Gauss point) nqdm number of internal variables (per Gauss point) nquad number of Gauss points nen Number of nodes per element (maximum) nen1 nen + 1 nstr nsdm*nquad

29

nq ipr

nqdm*nquad 1 for single precision; 2 for double precision

2.8 User supplied macros User may write his own macros for performing different tasks like solution algorithms, controlling output, etc. which are not part of the standard FEAP operations. These are invoked using macros: MA01, MA02 and MA03. These macros call subroutines having the same names. The argument list for the user-supplied subroutine such as ma01 is as follows subroutine ma01(ul,xl,tl,ld,p,s,ie,d,id,x,ix,f,t,jdiag,str,eps,q,b,dr,velg,accelg,vel,accel,ct, ndf,ndm,nen1,nst,nstr,nq,nend,flag) logical flag common /cdata/ numnp,numel,nummat,nen,neq,ipr,nsdm,nqdm,nquad dimension ul(*),xl(*),tl(*),ld(*),p(*),s(*),ie(7,*),d(40,*),id(*),x(ndm,*),ix(nen1,*), f(*),t(*),b(*),dr(*),jdiag(*), str(nstr,*),eps(nstr,*),q(nq,*),velg(*),accelg(*), vel(*),accel(*),ct(*) All variables are same as in subroutine plot. Further ct(1), ct(2), ct(3) will contain XKEY, x , y (input in cols 6-9, 11-20 and 21-30 in the MA01 macro command line) 3.0 MACRO Sequence for different types of analyses The macro instructions (for the solution phase ) are initiated through the macro MACR. The macro instructions terminate with the END statement. The last statement in the input file must be STOP. In-between END and STOP , prop tables can be input. The macro sequence for some of the analysis types available in the code are given below. 3.1 Linear static analysis To solve a linear static problem the following set of macro instruction are required, MACR TANG (or UTAN) FORM SOLV CEQS DISP STRE END Here, one can use PRTS commands for printing stresses or displacements associated with selected element or node sets (see Section 2.6).

30

3.2 Nonlinear static analysis For non-linear static equilibrium analysis (using Newton-Raphson iterations) typical macros will be MACR REST READ PROP DT val TOL val1 val2 LOOP n TIME LOOP ITRN m TANG or UTAN FORM SOLV CONV CEQS NEXT PRTS STRE iset PRTS IVAR kset PRTS DISP lset NEXT REST WRIT PLOT END T1 p1 p2 ....... T2 p1 p2 ....... .......... STOP Note that the innermost loop (LOOP ITRN) contains the macros for doing N-R equilibrium iterations and must necessarily be present along with the TOL macro set earlier. The next outer loop (having the TIME macro) is the load loop and in this example will be executed n times. One can request other modes of printout such as STRE or DISP. Also frequency of printout for different output variables can be changed by using more nested loops. REST READ macros should be used only for restart runs (Note: In this case, fprest.dat file must be available along with fpin.dat file). PLOT macro is optional and can be used provided you have linked one of the interface programs (such as the one with TECPLOT or MSC/PATRAN) while creating feap.exe. The prop values between END and STOP are definitely necessary to set the time dependence of the loads. There must be NPLD such cards. If one wants to analyze a non-linear static problem incrementally without using N-R iterations (not recommended unless your code is based on inconsistent linearization of the virtual work principle) then following macros may be used : MACR REST READ

31

PROP DT LOOP TIME TANG or UTAN FORM SOLV CEQS FORM PRIN PRTS STRE PRTS IVAR PRTS DISP NEXT REST WRIT PLOT END T1 p1 T2 p1 .......... STOP

val n

iset kset lset

p2 p2

....... .......

Note in this case the N-R equilibrium iteration loop is absent. The additional macro FORM PRIN enables printout of the initial and final norms (before and after the completion of the time step) of the out-of-balance forces. One needs to check that the ratio of the final force norm to initial force norm is less than 1/1000 to ensure that there is little drift from equilibrium. If this ratio exceeds 1/1000, it is recommended that the analysis of the pertinent time steps be repeated with smaller DT to ensure adherence of the solution to equilibrium. 3.3 Eigenvalue analysis The program can calculate the maximum and minimum eigenvalues using forward and inverse vector iteration respectively. In both cases, a trial eigen vector needs to be input via macro INIT in mesh generation phase. It can be totally arbitrary except that it should not be the null vector.

To calculate maximum eigen value use following macro sequence: MACR TOL val TANG LMAS EMAX n END

32

Here, val is the convergence tolerance in vector iteration and n is maximum number of iterations. Note convergence will be very slow for large systems. So, do not give val less than 1.0e-04. To calculate minimum eigen value use following macro sequence: MACR TOL val TANG LMAS EIGE n shift END Here, val is the convergence tolerance in vector iteration and n is maximum number of iterations. Here convergence will be rapid and one can use tight tolerance. One can calculate higher eigenvalues also by giving a value >0 for shift. If shift = 0 (or omitted) then lowest eigenvalue will be computed. One can use above two macros to calculate the eigenvalues of the scaled stiffness matrix which can then be employed to obtain the condition number as the ratio of maximum to minimum eigenvalue. In this case use LMAS EGKS instead of LMAS. The program will then calculate a dummy mass matrix (no density is needed). 3.4 Explicit dynamic analysis To perform explicit dynamic analysis using central difference method use following macros MACR PROP PARA DT LMAS CEQS ACCE LOOP n TIME EXCD NEXT REST WRIT END T1 p1 p2 ...... T2 p1 p2 ..... ..................... STOP Here, the Newmark paramater = 0 and = 0.5 (for central difference) . For artificially damped explicit method give > 0.5 (but not greater than 0.65). Note that the macros CEQS and ACCE following LMAS are needed only for starting from t =0 to take care of initial displacements and velocities (which should be specified via INIT

33

and VELO if they are non-zero). For restart runs, CEQS and ACCE should be removed and REST READ should be used following MACR. Note in using central difference the critical time step size must be first calculated by obtaining the maximum eigenvalue max (see Section 3.3). The critical time step size is 2/max . Printout of different variables can be requested using HIST or PRTS or STRE or DISP macros.

Potrebbero piacerti anche