Frank Rieg Reinhard Hackenschmidt Bettina Alber-Laukant
Finite Element Analysis for Engineers
Frank Frank Rieg Rieg Reinhard ReinhardHackenschmidt Hackenschmidt Bettina BettinaAlber-Laukant Alber-Laukant
Finite Element Analysis Finite Elemente for Engineers Analyse für Ingenieure Basics and Practical Applications 4., überarbeitete und erweiterte Auflage with Z88Aurora
The Authors: Prof. Dr.-Ing. Frank Rieg, Full Professor, Chair for Engineering Design and CAD, University of Bayreuth Dipl.-Wirtsch.-Ing. Reinhard Hackenschmidt, Senior Academic Councillor, Chair for Engineering Design and CAD, University of Bayreuth Dr.-Ing. Bettina Alber-Laukant, Patent Scientist, Academic Councillor, Chair for Engineering Design and CAD, University of Bayreuth Translated by the authors with the help of Franziska Auer, Teresa Bertelshofer, Kevin Deese, Christoph Gürtner and Marlene Süß
Distributed in North and South America by Hanser Publications 6915 Valley Avenue, Cincinnati, Ohio 45244-3029, USA Fax: (513) 527-8801 Phone: (513) 527-8977 www.hanserpublications.com Distributed in all other countries by Carl Hanser Verlag Postfach 86 04 20, 81631 Munich, Germany Fax: +49 (89) 98 48 09 www.hanser-fachbuch.de
The use of general descriptive names, trademarks, etc., in this publication, even if the former are not especially identified, is not to be taken as a sign that such names, as understood by the Trade Marks and Merchandise Marks Act, may accordingly be used freely by anyone. While the advice and information in this book are believed to be true and accurate at the date of going to press, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Cataloging-in-Publication Data is on file with the Library of Congress. Bibliografische Information der deutschen Bibliothek: Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über
abrufbar. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying or by any information storage and retrieval system, without permission in writing from the publisher.
This book has an accompanying DVD. If the DVD is not enclosed, it can be ordered free of charge by sending an e-mail request to [email protected]. © 2014 Carl Hanser Verlag Munich Copyediting: Olivia Brand Production Management: Der Buchmacher, Arthur Lenner, Munich Coverconcept: Marc Müller-Bremer, www.rebranding.de, Munich Coverdesign: Stephan Rönigk Cover illustration: Atelier Frank Wohlgemuth, Bremen Typeset: le-tex publishing services GmbH, Leipzig Printed and bound by Kösel, Krugzell Printed in Germany ISBN 978-1-56990-487-9 E-Book ISBN 978-1-56990-488-6
Preface
Following the ongoing strong demand in the last years for an English version of the German standard work “Finite Elemente Analyse für Ingenieure” we decided to satisfy this. Our aim with this book is: To provide well-chosen aspects of the finite elements for a student of engineering sciences from the 3rd semester and an engineer already established in the job in such a way that he can apply this knowledge immediately to the solution of practical problems. Therefore, already in the title of the book we speak of finite element analysis (FEA) and not of finite element method. This gigantic field has left behind the quite dubious air of a method for a long time and today is the engineer’s tool to analyse structures. Of course, one can do much more with this process than mechanics: heat flows, electric fields and magnetic fields, actually, differential equations and boundary problems for different fields in general – all of this can be solved with it. However, everything has begun with the calculation of mechanical structures and, hence, we want to limit ourselves in this book to linear and non-linear statics, stationary heat conduction and natural frequencies. The engineer’s aspect is very substantial to us – it does not appear in the title of this book without any reason: The process was developed fairly “intuitively” in the fifties by airplane engineers for static calculations of airplane structures. It is a process from engineers for engineers! Hence, we proceed as follows: After a really easy demonstration of the basic procedure, we will discuss the most important points of the elasticity theory, the engineering mechanics and the thermodynamics, as far as the FEA is concerned. With this knowledge we continue with the derivation of the element stiffness matrices. This theoretical knowledge is indispensable for proper and clever working with FEA programs. Then we look at the compilation procedure, at the storage processes and at the solving of the equation systems to calculate the unknowns. In order to transfer your knowledge into practice, we have put two FE programs on DVD: Z88®, the open source finite elements program for static calculations, programmed by the lead author of this book, as well as Z88Aurora®, the very comfortable to use and much more powerful freeware finite elements program which can also be used for non-linear calculations, stationary heat flows and natural frequencies. Both are full versions with which arbitrarily big structures can be computed. The only limits are given by your computer concerning main storage and disc storage and by your powers of imagination. Z88 and Z88Aurora are ready-to-run for Windows,
vi Preface
LINUX, as well as for Mac OS X. For Z88 we directly provide the sources, so that you can study the theoretical aspects in the program code and extend it if necessary. This way, you can also understand the working of memory processes, equations solvers and so forth. Z88 is transparent for the user through input and output via text files. It is a FEA program in the quite classical and original sense. In addition, we think: You only learn the basics with a program like this, as every numerical value can and has to be controlled. As soon as you have understood the basic procedure, you can work with Z88Aurora, which was developed at our Chair of Engineering Design and CAD at the University of Bayreuth, Germany, with promotion of the Oberfrankenstiftung. Z88Aurora does not take second place in look and feel compared to the commercial FEA programs and allows a very professional and contemporary work, directly from CAD data. We do not refer to the known commercial FEA programs here because the versions that are free of charge only offer very limited options concerning the structure sizes with which you could not compute several of the following examples at all. Moreover, we cannot offer source codes for them. In later sections of the book there are many practical examples that we recommend to check. The DVD also contains the input files for all examples. The examples are selected in a way that gradually explains the different aspects of the calculation of structures and mechanical structures. Furthermore, we have developed an app for Android devices called Z88Tina (www.z88tina.de) which is a very, very small cousin of our full-featured freeware FEA program Z88Aurora (www. z88.de) and is derived from the open source FEA program Z88V14OS. Z88Tina can be dowloaded from Google Play Store: https://play.google.com/store/apps/details?id=z88tina.fr For this fourth German edition (and first English edition) we have completely revised our book on finite element analysis: The theoretical section has been extended concerning shell elements (by Prof. F. Rieg, PhD), non-linear calculations (by C. Wehmann, PhD), stationary heat conduction (by M. Frisch, M.Sc.) and natural frequencies (by M. Neidnicht, PhD). The examples have been strongly extended and updated. Our employees M. Frisch, M.Sc., M. Neidnicht, PhD, F. Nützel, M.Sc., C. Wehmann, PhD, J. Zapf, PhD, and M. Zimmermann, M.Sc., did the programming and testing of Z88Aurora version 2 and gave valuable recommendations for the text of this book. We wish to thank them all a lot. Our very special thanks is directed towards Kevin Deese and Christoph Wehmann for their systematic translation error search. It was a hell of a work. We also thank our publishing house Carl Hanser Verlag for the exemplary realization of this book. The work on this book was again a pleasure to us and we hope you will enjoy this book. Frank Rieg, Reinhard Hackenschmidt and Bettina Alber-Laukant Bayreuth, Germany, June 2014
Contents
Preface ................................................................................................
v
1 Introduction ........................................................................................
1
2 The Basic Procedure ...........................................................................
5
3 Some Elasticity Theory ...................................................................... 23 3.1 Displacements and Strains ............................................................................................. 23 3.1.1 For the Truss ............................................................................................. 23 3.1.2 For Plane Stress ......................................................................................... 25 3.1.3 In Space ..................................................................................................... 31 3.1.4 For the Plate .............................................................................................. 32 3.2 Stress-Strain Relations .................................................................................................... 34 3.3 Basics of Thermomechanical Loading .......................................................................... 44 3.4 Basic Principles of Natural Vibration ........................................................................... 47 3.5 Basic Principles of Non-linear Calculations ................................................................ 50
4 Finite Elements and Element Matrices ............................................. 63 4.1 Basics of Element Stiffness Matrices ............................................................................ 65 4.2 Constitutive Matrices ...................................................................................................... 69 4.3 B Matrix ............................................................................................................................. 70 4.4 Shape Functions ............................................................................................................... 71 4.5 Integration ........................................................................................................................ 81 4.6 The Application of Loads, Load Vectors ....................................................................... 88 4.6.1 The Basic Procedure .................................................................................. 88 4.6.2 Plate Elements ........................................................................................... 91 4.6.3 Volume Elements ...................................................................................... 93 4.6.4 Plane and Axial-Symmetrical State of Stress ............................................ 104 4.6.5 Distributed Loads for Beams ..................................................................... 106 4.6.6 Gerber Joints for Beams ............................................................................ 108 4.7 A complete Element Stiffness Routine ......................................................................... 112
viii Contents
Some Remarks on Modelling ............................................................................. 121 4.8.1 Choice of Element Types ...................................................................... 121 4.8.2 Polymers and Material Laws ................................................................ 129 4.8.3 Structural Optimization ....................................................................... 130 4.9 Some Remarks on Shells .................................................................................... 134 4.10 Element Matrices for Heat Transfer .................................................................. 148 4.11 Element Matrices for Vibration ......................................................................... 150 4.12 Element Matrices of the Non-linear Finite Element Analysis ........................... 152 4.8
5
Compilation, Storage Schemes and Boundary Conditions .......... 163
5.1 Compilation ........................................................................................................ 163 5.2 Storage Schemes ................................................................................................ 174 5.2.1 Band Width Storage Scheme ................................................................ 176 5.2.2 The Skyline Storage Scheme ................................................................ 180 5.2.3 The Jennings Storage Scheme .............................................................. 182 5.2.4 The Non-Zero Storage Scheme ............................................................. 190 5.2.5 Summary of the Storage Schemes ....................................................... 196 5.3 Boundary Conditions ......................................................................................... 197 5.3.1 Single Forces and Single Displacements ............................................. 197 5.3.2 Distributed Loads with Plates .............................................................. 200 5.3.3 Fixture of plates ................................................................................... 202 5.3.4 Boundary Conditions in Temperature Analyses .................................. 203 5.3.5 Boundary Conditions with Vibration ................................................... 206 5.3.6 Boundary Conditions in the Non-linear Finite Element Analysis ....... 207
6
Solvers .............................................................................................. 209 6.1 Direct Solvers ..................................................................................................... 210 6.1.1 The Cholesky Solver ............................................................................ 212 6.2 Condition and Scaling ........................................................................................ 214 6.3 Iterative Solvers ................................................................................................. 223 6.3.1 The Jacobi Method ............................................................................... 225 6.3.2 The Gauss-Seidel Method ..................................................................... 226 6.3.3 The SOR Method and the JOR Method ................................................. 226 6.3.4 The basic CG Solver ............................................................................. 227 6.3.5 The CG Solver with Pre-conditioning ................................................... 229 6.4 Solver for Thermomechanical Problems ............................................................ 244 6.5 Solver for Vibration Problems ............................................................................ 244 6.6 Solver for the Non-linear Finite Element Analysis ............................................ 254 7
Stresses and Nodal Forces ............................................................. 257 7.1 Stresses .............................................................................................................. 257 7.2 Reduced Stresses ............................................................................................... 264 7.3 Nodal Forces ....................................................................................................... 271
Contents ix
8
Mesh Generation of Curvilinear Finite Elements .......................... 275
8.1 8.2 8.3
Basis Considerations of the Procedure .............................................................. 275 Mathematical Foundations ................................................................................ 277 Description of a Simple Mapped Mesher ........................................................... 281
9
Z88: The Basics ................................................................................ 289
9.1
General Information ........................................................................................... 289 9.1.1 Summary of the Z88 Element Library ................................................. 290 The Open Source FE Program Z88 ..................................................................... 302 9.2.1 Overview of the Z88 Program Modules ............................................... 302 9.2.2 Dynamic Memory Z88 ......................................................................... 305 9.2.3 The Input and Output of Z88: .............................................................. 308 The Freeware FE Program Z88Aurora ............................................................... 312 9.3.1 Overview of the Z88Aurora Modules ................................................... 312 9.3.2 Memory Requirement in Z88Aurora ................................................... 315 9.3.3 The Input and Output of Z88Aurora .................................................... 316
9.2
9.3
10
Z88: The Modules ............................................................................ 319 10.1 The Linear Solver Z88R ..................................................................................... 319 10.1.1 Z88R: The Cholesky Solver .................................................................. 320 10.1.2 Z88R: The Sparse Matrix Solvers SICCG and SORCG ......................... 321 10.1.3 Z88R: The Sparse Matrix multi-core Solver PARDISO ......................... 323 10.1.4 Which Solver to choose? ...................................................................... 324 10.1.5 Explanations for Stress Calculations ................................................... 324 10.1.6 Explanations for Nodal Force Calculations .......................................... 325 10.2 The Mapped Mesher Z88N ................................................................................. 325 10.3 The Advanced Mapped Mesher in Z88Aurora ................................................... 328 10.3.1 The Use of Z88N in Z88Aurora ............................................................ 328 10.3.2 Tetrahedron Refiner Z88MTV .............................................................. 329 10.3.3 The 2D Shell Thickener Z88MVS ......................................................... 331 10.4 The OpenGL Plot Program Z88O in Z88 V14 OS or the Post-Processor of Z88Aurora ...................................................................................................... 331 10.5 The DXF Converter Z88X ................................................................................... 335 10.6 The 3D Converter Z88G ..................................................................................... 344 10.7 The Ansys Converter Z88ASY in Z88Aurora ..................................................... 347 10.8 The Abaqus Converter Z88INP in Z88Aurora ................................................... 349 10.9 Das Cuthill-McKee Program Z88H ..................................................................... 350 10.10 The STEP Import Z88GEOCON (STEP) in Z88Aurora ........................................ 352 10.11 The STL Converter Z88GEOCON (STL) in Z88Aurora ........................................ 354 10.12 The Tetrahedron Mesher in Z88Aurora ............................................................. 355 10.13 The Picking Module of Z88Aurora ..................................................................... 356 10.14 The Material Data Base of Z88Aurora ................................................................ 358 10.15 Applying Boundary Conditions in Z88Aurora ................................................... 358
x Contents
10.16 The User Support with Spider in Z88Aurora ..................................................... 359 10.17 The Thermomechanical Solver in Z88Aurora .................................................... 360 10.18 The free Vibration Solver in Z88Aurora ............................................................ 363 10.19 The Non-linear Solver Z88NL of Z88Aurora ...................................................... 366
11
Generating Input Files ..................................................................... 371
11.1 General Information ........................................................................................... 371 11.2 General Structure Data File Z88I1.TXT ............................................................. 373 11.3 Boundary Condition File Z88I2.TXT .................................................................. 374 11.4 Surface and Pressure Loads File Z88I5.TXT ...................................................... 377 11.5 Material Parameters File Z88MAT.TXT ............................................................. 382 11.6 Material Data File *.TXT .................................................................................... 383 11.7 Element Parameters File Z88ELP.TXT ............................................................... 383 11.8 Integration Order File Z88INT.TXT .................................................................... 385 11.9 Mapped Mesher Input File Z88NI.TXT .............................................................. 386 11.10 Solver Parameters File Z88MAN.TXT ................................................................ 390 11.11 Comparison of the different Z88 Data File Formats .......................................... 393
12
The Finite Elements of Z88 and Z88Aurora ................................... 395
12.1 Hexahedron No. 1 with 8 Nodes ......................................................................... 395 12.2 Beam No. 2 with 2 Nodes in Space ..................................................................... 398 12.3 Plane Stress Element No. 3 with 6 Nodes .......................................................... 400 12.4 Truss No. 4 in Space ........................................................................................... 401 12.5 Shaft No. 5 with 2 Nodes .................................................................................... 402 12.6 Torus No. 6 with 3 Nodes ................................................................................... 404 12.7 Plane Stress Element No. 7 with 8 Nodes .......................................................... 405 12.8 Torus No. 8 with 8 Nodes ................................................................................... 407 12.9 Truss No. 9 in the Plane .................................................................................... 409 12.10 Hexahedron No. 10 with 20 Nodes ..................................................................... 411 12.11 Plane Stress Element No. 11 with 12 Nodes ...................................................... 414 12.12 Torus No. 12 with 12 Nodes ............................................................................... 416 12.13 Beam No. 13 in the Plane ................................................................................... 418 12.14 Plane Stress Element No. 14 with 6 Nodes ........................................................ 419 12.15 Torus No. 15 with 6 Nodes ................................................................................. 421 12.16 Tetrahedron No. 16 with 10 Nodes ..................................................................... 424 12.17 Tetrahedron No. 17 with 4 Nodes ....................................................................... 427 12.18 Plate No. 18 with 6 Nodes .................................................................................. 429 12.19 Plate No. 19 with 16 Nodes ................................................................................ 431 12.20 Plate No. 20 with 8 Nodes .................................................................................. 434 12.21 Shell No. 21 with 16 Nodes ................................................................................ 436 12.22 Shell No. 22 with 12 Nodes ................................................................................ 438 12.23 Shell No. 23 with 8 Nodes .................................................................................. 440
Contents xi
12.24 Shell No. 24 with 6 Nodes .................................................................................. 442 12.25 Element/Solver Overview Z88Aurora V2 .......................................................... 444
13
Examples .......................................................................................... 445
13.1 Flat Wrench (Plate No. 7) ................................................................................... 452 13.1.1 With Z88 V14 ....................................................................................... 453 13.1.2 With Z88Aurora V2 ............................................................................. 461 13.2 Crane Girder made of Trusses No. 4 .................................................................. 471 13.2.1 With Z88 V14 ....................................................................................... 472 13.2.2 With Z88Aurora V2 ............................................................................. 477 13.3 Gear Shaft with Shaft No. 5 ................................................................................ 482 13.3.1 With Z88 V14 ....................................................................................... 484 13.3.2 With Z88Aurora V2 ............................................................................. 487 13.4 Bending Girder with Beam No. 13 ..................................................................... 491 13.4.1 With Z88 V14 ....................................................................................... 492 13.4.2 With Z88Aurora V2 ............................................................................. 496 13.5 Plate Segment of Hexahedrons No. 1 and No. 10 ............................................... 500 13.5.1 With Z88 V14 ....................................................................................... 501 13.5.2 With Z88Aurora V2 ............................................................................. 507 13.6 Pipe under Internal Pressure, Plain Stress Element No. 7 ................................. 510 13.6.1 With Z88 V14 ....................................................................................... 511 13.6.2 With Z88Aurora V2 ............................................................................. 518 13.7 Pipe under Internal Pressure, Torus No. 8 ......................................................... 520 13.7.1 With Z88 V14 ....................................................................................... 521 13.7.2 With Z88Aurora V2 ............................................................................. 527 13.8 Two-Stroke Engine Piston .................................................................................. 529 13.8.1 With Z88 V14 ....................................................................................... 530 13.8.2 With Z88Aurora V2 ............................................................................. 534 13.9 RINGSPANN Spring and Belleville Spring ......................................................... 539 13.9.1 With Z88 V14 ....................................................................................... 541 13.9.2 With Z88Aurora V2 ............................................................................. 544 13.10 Liquid Gas Tank ................................................................................................. 546 13.10.1 With Z88 V14 ....................................................................................... 546 13.10.2 With Z88Aurora V2 ............................................................................. 550 13.11 Motorcycle Crankshaft ....................................................................................... 552 13.11.1 With Z88 V14 ....................................................................................... 554 13.11.2 With Z88Aurora V2 ............................................................................. 559 13.12 Torque-measuring hub ....................................................................................... 563 13.12.1 With Z88 V14 ....................................................................................... 564 13.12.2 With Z88Aurora V2 ............................................................................. 565 13.13 Plane Frameworks ............................................................................................. 566 13.13.1 With Z88 V14 ....................................................................................... 567 13.13.2 With Z88Aurora V2 ............................................................................. 587
xii Contents
13.14 Gearwheel .......................................................................................................... 589 13.14.1 With Z88 V14 ....................................................................................... 590 13.14.2 With Z88AuroraV2 .............................................................................. 595 13.15 3D Wrench ......................................................................................................... 599 13.15.1 With Z88 V14 ....................................................................................... 599 13.15.2 with Z88Aurora V2 .............................................................................. 611 13.16 Force Measuring Element, Plane Stress Elements No. 7 .................................... 613 13.16.1 With Z88 V14 ....................................................................................... 613 13.16.2 With Z88Aurora V2 ............................................................................. 623 13.17 Circular Plate, Plates No. 20 ............................................................................... 624 13.17.1 With Z88 V14 ....................................................................................... 626 13.17.2 With Z88Aurora V2 ............................................................................. 630 13.18 Rectangular Plate with 16 Nodes Plates No. 19 ................................................. 631 13.18.1 With Z88 V14 ....................................................................................... 631 13.18.2 With Z88Aurora V2 ............................................................................. 638 13.19 Four-stroke Engine Pistons with Tetrahedrons No. 16 ....................................... 639 13.19.1 With Z88 V14 ....................................................................................... 640 13.19.2 With Z88Aurora V2 ............................................................................. 644 13.20 Motorcar Fan Wheel ........................................................................................... 647 13.20.1 With Z88 V14 ....................................................................................... 649 13.20.2 With Z88Aurora V2 ............................................................................. 650 13.21 Diesel Piston ...................................................................................................... 653 13.21.1 With Z88 V14 ....................................................................................... 654 13.21.2 With Z88Aurora V2 ............................................................................. 656 13.22 Calculation of a Stress Concentration Factor ..................................................... 657 13.22.1 With Z88 V14 ....................................................................................... 658 13.22.2 With Z88Aurora V2 ............................................................................. 663 13.23 Gear Root Stress ................................................................................................. 664 13.23.1 With Z88 V14 ....................................................................................... 666 13.23.2 With Z88Aurora V2 ............................................................................. 668 13.24 Square Pipe, Shell No. 24 ................................................................................... 670 13.24.1 With Z88 V14 ....................................................................................... 671 13.24.2 With Z88Aurora V2 ............................................................................. 673 13.25 Submarine made of Shells No. 22 ...................................................................... 677 13.26 Gear Wheel out of Tetrahedrons No. 17 ............................................................. 682 13.27 Oscillating Drum ................................................................................................ 685 13.28 Modal Analysis Crankshaft ................................................................................ 689 13.29 Thermo-mechanical Analysis of a Spoon ........................................................... 692 13.30 Thermal Analysis of a four-stroke Engine Piston .............................................. 698 13.31 Non-linear Calculation of a Belleville Spring ..................................................... 702 13.32 Non-linear Calculation of a Hinge ...................................................................... 706
References and further reading ..................................................... 711 Index ................................................................................................. 717
Contents xiii
The DVD that comes with the book Finite Element Analysis for Engineers contains the program versions Z88 V14 OS and Z88Aurora V2 including all data necessary to use the examples of both versions. The content of the DVD is organized as follows: /z88_examples_z88aurora/:
Examples for Z88Aurora V2
/z88_examples_z88v14os/:
Examples for Z88 V14 OS
/z88aurora/:
Installer and documentation Z88Aurora V2
/z88v14os/:
Unzipped directories Z88 V14 OS
Installation of Z88 V14 OS Z88 V14 OS is available as a ready-to-run version as well as a version for self-compiling in the directory /z88v14os/ for the following operating systems: 32 BIT Windows 64 BIT Windows 32 BIT LINUX 64 BIT LINUX 64 BIT Mac OS X In the file z88mane.pdf in the directory /z88v14os/docu/ you find the detailed documentation for installation and compiling.
Installation of Z88Aurora V2 Z88Aurora V2 is available in the directory /z88aurora/ as installer for 32 BIT Windows and 64 BIT Windows and as TAR.GZ for 64 BIT LINUX Suse 12.1 and 12.2 64 BIT LINUX Ubuntu 11.04, 12.04 and 14.04 64 BIT Mac OS X ex 10.6 (Please note that when using UNIX und Mac the access rights have to be adapted.) In the directory /z88aurora/installer/ you find the detailed installation manual for the corresponding operation system. Please note, that when using Mac OS X the GTK+-package gtk+4z88.dmg (which you find in the directory /z88aurora/installer/macosx) has to be installed at first. In the directory /z88aurora/docu/ you find the theory manual and the user guide.
Software Updates The DVD’s software status is June 10th, 2014. On www.z88.de you can find the user forum as well as updates and error corrections.
1
Introduction
Many approaches in technology are centuries-old. The elasticity theory, for example, was practically developed as a whole in the 19th century. The so-called method of the finite elements though originated not until the upcoming of the first digital computers in Germany, in the United States and in England during World War II. These first computers, the German Zuse Z3 of 1941, but particularly the American Harvard Mark I, served for the calculation of trajectories for the artillery (cf. /33/). At the same time, a new model of airplane came up, the jet-propelled airplane. Its yet unknown speed led to entirely new problems – new air foil designs like the swept-back wing, extremely light and still very stable cells, which do not fail at big heights, and the jet engines themselves. Hence, it did not come by chance that in the 50s, J. Turner and R. Clough, engineers at Boeing in Seattle developed the matrix force method and the matrix displacement method for the static calculation of cells and wings. Already at the end of the 40s, J. Argyris from England showed that one can describe continuums in simplified form by disassembling them in smaller subareas. Before these considerations, Hrenikoff suggested disassembling continuums in an array of trusses or beams to solve stress and plate problems; this was called “Framework method” in the literature. The first one, who used the concept of the Finite element method publicly at a conference, seems to have been R. Clough in 1960. We already indicated that originally there was a matrix force process and a matrix displacement process. While in the matrix force process the wanted unknowns are the forces – actually, this is the approach, which is also common in the classical engineering mechanics – the unknowns in the matrix displacement process are the displacements of the system, which is at first sight rather unusual. It was argued for a long time, in practice and science, which of both approaches is the better one. Today this question has been answered: All large program systems exclusively work according to the displacement process because it can be schematized and programmed much easier and straight forward. In the early days, only a few “privileged” people could generally execute finite elements calculations, because only they had access to big computers which was completely unaffordable for most universities and companies at that time. When the lead author of this book wrote his diploma thesis (i.e. master thesis) in 1978, the calculation of a race car body for the car manufacturer Porsche, done with the finite element method, at least one useful FE program, SAP IV (Structural Analysis Program) of Wilson and Bathe, was available. It ran in batch-mode on the very large IBM 370/168 computer equipment of the University of Technology Darmstadt,
2 1 Introduction
Germany. The input data was not entered by a terminal, but on punch cards which one had to punch with an IBM cardpunch. After much ado, the input record was finally punched, and one could carry the card deck to the computer center. At night, and only at night because of the “huge” core memory requirement of ~700 Kbyte, SAP IV (“Structural Analysis Program”) was started and one could eventually fetch the results the next day on centimeter thick paper piles. Interactive graphics? Absolutely unknown. At least plotting on paper was possible, but in addition, another program SAPOST was necessary, which got its plot instructions through punch cards, too. This has changed long ago, and if one looks at pictures of mainframes even of the early 80s today, one could think, these photos are shot on another planet. Especially the personal computer has performed great pioneering work in the 80s. Already in the middle of the 80s, one could calculate quite substantial FE structures with PCs (cf. /27/), but the limit at that time was a usable main storage of about 500 Kbyte, dictated by DOS. In 1985, the lead author of this book started with the development of his FE program Z88 on an IBM AT, at that time still as a FORTRAN version (cf. /28/). In the beginning of the 90s, the triumphal success of Windows with the version 3.0 stood out, and the lead author now re-coded the Z88 program completely in C (cf. /15/) because at that time one could provide real Windows programs only with the computer language C. Today, everybody knows the situation: Every cheap PC from the discounter has much more power – and that means several powers of ten – than the IBM 370 mainframe from more than 30 years ago, and nowadays everybody can carry out extensive finite elements calculations on his/her PC at home. As we will see in the second chapter, the method of the finite elements – or better finite element analysis according to our opinion, because one checks and analyses something in contrast to the methodical design which is a synthesis – is in principle exceptionally simple! The special thing about it actually only is the strictly formalized proceeding what is indeed very suitable for computer usage. When introducing the basic action in chapter 2 we deliberately do this from an elastostatic point of view and first only work with trusses and beams. However, trusses and beams are of course no 2D or 3D continuums, and some readers will find this approach dilettantish. But stop – to show the basic action of the matrix displacement process, these simple elements are really very suitable. Since finite elements for plane stress, for plane strain, for axisymmetric stress, for plate bending and for spatial stresses – to mention the most important ones – are completely integrated into the process! In fact, all computer routines for putting up the element stiffness matrices are constructed quite alike, as you can check any time with our book with the help of the enclosed program procedures for Z88 in C. Compare, for example, the subroutine SHEI88.C for curvilinear 8 nodes Serendipity plane stress elements and axisymmetric elements with the routine HEXA88.C for curvilinear 20 nodes Serendipity hexahedrons for the general spatial state of stress. By using the term matrix displacements processes one recognizes, by the way, all relevant aspects: We deal with partly gigantic matrices, displacements are calculated, namely with a schematized process. You may already have guessed it: One can approach this process either from the engineer’s side, as we will do in chapter 2, or from the strictly mathematical side. Which way one selects,
1 Introduction 3
certainly depends on his/her education and previous experience, but also depends on which aim one wants to pursue. Because the process of the finite elements was developed by engineers for solving engineering problems, we find it appropriate to derive the basics also from the engineer’s point of view. Moreover, this has the advantage that the reader only needs to have basic knowledge of the matrix calculation in addition to the basic math skills of a high school graduate. However, what is absolutely necessary, is solid knowledge in the area of “rigid” statics and elastostatics. Who is not well-versed in these, will fall flat on his face very soon when working with any FE program, not only with Z88 or Z88Aurora, and eventually even break his neck. Why? Because there are two obstacles when working with the finite element analysis, and they are system-immanent. The first trap: the actual generating of the finite element mesh (how rough or how accurate, which element types) – this takes a lot of experience and training. The second trap: the choice of the boundary conditions, that means when and where to attach fixtures, apply forces and the like. Here, experience is also needed, but first of all solid mechanics knowledge is required: Even with the most expensive computer program a statically under-determined system breaks down in itself. But also for engineers approaching the finite element analysis from a strictly mathematical view can be absolutely exciting and does make sense. Indeed, elastostatic problems can be described by extremum principles, e.g., by the principle of the minimum of the whole potential energy: Amongst all displacement states, which fulfill the kinematic boundary conditions, the actual equilibrium minimizes the potential energy. These functionals of the potential energy, which can be put up for trusses, beams, torsion trusses, plane stress elements, plates etc. must become stationary. This can be done with the method of Ritz. The functions of Ritz’s procedure are definitely related to the approximation or form functions of the finite element analysis. One of the prominent sources for the derivation of the various element stiffness matrices with functionals is the book of Schwarz /6/ which can be very much recommended to the mathematically interested reader. However, we would like to remind you again of the fact that one cannot study the finite element analysis only by theoretical considerations. Only by extensive training and work on the computer, one will bring it to certain mastery in this area. It seems important to us that you understand, sensibly change and complement the examples of the book, and that you do this on the computer. Hence, we have kept the theoretical chapters relatively short, so that you get to see the practical aspects as soon as possible. However, whenever we believed that certain questions, e.g., the elasticity theory, are not given their fair share in other literature, we intentionally haven’t accepted abridgements on this topic in our book. Practicing with the computer, which is very much recommended by us, can be carried out with Z88 Version 14 and Z88Aurora version 2, both programs being provided by us. Z88 is used in this book since the first edition and comes with all C program sources as well as nmake files for Windows Visual Studio 2008 and make file for LINUX and Mac OS X. This way, you can study the source code and extend it if necessary or change it, which really makes sense if one wants to understand the theoretical foundation of the FEA. In order to purely work through our many examples, you, of course, do not need to deal with the internal matters of programming. Z88 is ready-to-run for all different operating systems on the DVD. A manual of approximately 200 pages in PDF format comes with it, from which you can obtain tips for the installation and operation. For a quick start you find an edited version of the operating instructions in chapters 9 and 10. Z88 is a quite classical and original FE program, which is controlled through input and
4 1 Introduction
output files. As with every classical program of this type it is very suitable to study basic actions, but for everyday work it is a little bit clumsy and not really comfortable to use. Hence, in 2009 our former employees Bernd Roith, PhD, Alexander Troll, PhD, and Prof. Martin Zimmermann, PhD, had the idea to create a very contemporary operating surface with the name Z88Aurora on top of the structures of Z88, whose special focus is to directly read in CAD files in the STEP or STL format, to generate the mesh and to be able to provide it interactively with boundary conditions and materials. Very quickly, other employees of the department joined the work. In June 2010, the first version Z88Aurora was released and immediately was a complete success. In June 2012 Z88Aurora V1 was downloaded about 32,000 times worldwide on our Internet site! Soon after, Bernd Roith, PhD, began with the work on the next version. His successor was Markus Zimmermann, PhD, who extensively formed the system in its current version 2, together with B. Alber-Laukant, PhD, M. Frisch, M.Sc, M. Neidnicht, PhD, F. Nützel, M.Sc, C. Wehmann, PhD, J. Zapf, PhD, and Prof. F. Rieg, PhD. You will experience this new version 2 of Z88Aurora as very pleasant and intuitive to use, to which also a unique feature contributes, the so-called Spider Help of B. Alber-Laukant, PhD, and Bernd Roith, PhD. Spider Help leads you through the workflow of a finite element analysis. It was immediately clear that we must integrate this new development of Z88Aurora into the fourth German edition (and into this first English edition) of our FEA book. Although we have submitted Z88Aurora V2, which you find on the DVD, to very extensive tests, you all know that software can never be perfect. If you discover errors or irregularities, do not hesitate to inform us or consult our website www.z88.de, in order to check whether there are any program updates available. And now: Let’s begin with the basic procedure!
2
The Basic Procedure
We will now briefly present the basics of the finite element analysis and for reasons of simplification consciously assume several issues instead of establishing them. Here you will obtain an overview and see the easiness of the procedure after reading a few pages. We do not want to conceal the fact that these issues are related to complex theories and mathematical procedures, but we will consider this in chapters 3 to 8, after we gained a total overview – actually you can skip these chapters while reading it for the first time. If you follow our explanations of the next pages, you will understand the principles of finite element analysis. The following are only refinements and special aspects. Wouldn’t you say this is highly motivating? At the beginning we observe an easy tension spring of steel that is clamped at one end and loaded at the other. We can carry out the loading process in two different ways: Either we apply a known force of, for example, 100 N or we drag the spring a defined distance from, for example, 5 mm. The spring is subjected to Hooke’s law F = K · U, that means, the spring force F is the product of the spring stiffness K and the spring way U.
F, U
K Figure 2-1: Hooke’s law
The majority of everyday objects own the same properties as this screwing spring, i.e. they deform in a linear-elastic way: The force F and the distance U are proportional to each other. Every random small force causes a distance, a displacement or a deformation. This is why a rope or a tensile bar with the length ℓ, the profile A and the Young’s modulus E has the following force displacement relation: F=
E·A ·U ℓ
6 2 The Basic Procedure
l F, U E, A Figure 2-2: The tensile bar
If you set: K=
E·A ℓ
then one recognizes Hooke’s law again F=K·U
Now we define a truss by setting the deformation U1 resp. the force F1 to its left ending and the deflection U2 resp. the force F2 to its right one:
U1, F1
U2, F2
Figure 2-3: The in general defined truss
If we form the force equilibrium state, we receive: F1 = K · U1 − K · U2 F2 = K · U2 − K · U1
Displaying this equation set in matrices notation leads to: K −K U1 F1 = −K K U2 F2 Proof: By multiplying, one receives: K · U1 − K · U2 = F1 −K · U1 + K · U2 = F2
We will call the expression K −K EA/ℓ −EA/ℓ = −K K −EA/ℓ EA/ℓ element stiffness matrix. This applies to a horizontally lying truss in plane. The system of equation is written in usual matrices notation. We write the same in symbolic matrices notation (matrices and vectors in symbolic representation from now on are written in bold-italics):
2 The Basic Procedure 7
KU=F This is again Hooke’s law, but this time with matrices instead of scalars.
Arithmetic example 1 We set the forces F1 and F2 on a truss:
F1
F2
Figure 2-4: Forces on a truss
with F1 = −1,000 N F2 = +1,000 N
The truss has following specific values: length ℓ = 1,000 mm Young’s modulus E = 200,000 N/mm2 Cross sectional area A = 100 mm2 K becomes: K=
200,000 · 100 = 20,000 N / mm 1,000
Inserting the values reveals: 20,000 −20,000
−20,000 20,000
U1 U2
=
−1,000 +1,000
Multiplying the system of equation: 20,000 · U1 − 20,000 · U2 = −1,000 (B1) −20,000 · U1 + 20,000 · U2 = +1,000 (B2)
To solve the 2 × 2 equation system, we add the equations (B1) and (B2), to eliminate one of the two unknowns: 0+0=0 The result of the addition is correct, however, it delivers no solution. Why? Because the equations are linearly dependent! For example: multiplying equation (B2) with −1 delivers (B1). When do such things appear? When a system is statically underdetermined! 1ST RULE OF FEA Never statically under-determined, always statically defined (kinematically determined) or arbitrarily statically over-determined!
8 2 The Basic Procedure
Defining a boundary condition:
1 U 1 , F1
2 U2 , F2
Figure 2-5: If a fixed support is in the point 1, then the displacement U1 = 0
F1 cannot be applied as an external force anymore, because the support intercepts everything! Only the following can be applied: U2
a displacement or
F2
an external force
We have to fundamentally differentiate addressing this task: What kind of solutions are we looking for, forces or displacements? The already known system of equations K −K U1 F1 resp. KU=F = −K K U2 F2 would be like this in mathematics: A x = b.
This is the usual representation of a linear equation system: A is the coefficient matrix, x is the solution vector, i.e. the unknowns, and b is the right side. Hence: Default of the external forces and calculating the displacements = Displacement-based procedure There is also another path to solve the equation system: K−1 F = U A−1 b = x
A-1 is the inverse of A. Hence: Default of the displacements and calculating the forces = Force-based procedure Today nearly all of the FEA systems use the displacement-based procedure: 2ND RULE OF FEA FEA = Calculating the displacements of the structure
2 The Basic Procedure 9
Our task was:
1 U 1 , F1
2 U2 , F2
Figure 2-6: Fixed support in point 1
K −K
−K K
U1 U2
=
F1 F2
K is the structure stiffness matrix, U represents the displacements, i.e. the unknown quantity of the system, and F represents the external forces. The structure stiffness matrix K corresponds to the element stiffness matrix Krod, since there is only one single element, the rod. The boundary condition is: U1 = 0, a so-called homogeneous boundary condition! These homogeneous boundary conditions are considered in the equation system as follows: METHOD 1: INSTALLATION OF THE HOMOGENEOUS BOUNDARY CONDITION Uj = 0 m1.1: In K, set row j to 0 m1.2: In K, set column j to 0 m1.3: In K, set diagonal element j in to 1 m1.4: In F, set force Fj to 0 Hence: m1.1 and m1.2 0 0 U1 F1 = 0 K U2 F2 m1.3 1 0 U1 F1 = 0 K U2 F2 m1.4 1 0 U1 0 = 0 K U2 F2
10 2 The Basic Procedure
The calculation on proves: 1 · U1 + 0 · U2 = 0 → U1 = 0 0 · U1 + K · U2 = F2 → U2 =
F2 K
How do we calculate the actual rod forces, i.e. the internal forces? Until now we only considered the external forces. METHOD 2: NODAL FORCES CALCULATION m2: Multiply the respective element stiffness matrix of the particular element with the calculated displacements. Hence: K −K 0 −F2 = −K K F2 / K F2 These are the rod forces in the element, i.e. the internal forces. Actio = reactio!
Arithmetic example 2 2
1 1
U 1 , F1
2
U 2, F2
F1 = 0
3
U 3 , F3
F2 = 0
F3 = 5,000 N
Figure 2-7: Example with two rods
Truss 1: ℓ1 = 500 mm, E1 = 206,000 N/mm2, A1 = 100 mm2 Truss 2: ℓ2 = 400 mm, E2 = 206,000 N/mm2, A2 = 40 mm2 Hence: K1 = 41,200 N/mm, K2 = 20,600 N/mm With this, the element stiffness matrices are as follows: 41,200 −41,200 first rod = FE1: K1 −K1 = = Ke1 −K1 K1 −41,200 41,200 20,600 −20,600 second rod = FE2: K2 −K2 = = Ke2 −K2 K2 −20,600 20,600
Both element stiffness matrices have to be combined to a structure stiffness matrix. We call this process compilation. We have: K= Kei i
2 The Basic Procedure 11
3RD RULE OF FEA Structure stiffness matrix = sum of the element stiffness matrices Here: Element 1 K1 −K1 U1 −K1 K1 U2
Element 2 K2 −K2 U2 −K2 K2 U3
The structure stiffness matrix is: 41,200 −41,200 0 K1 −K1 0 −K1 K1 + K2 −K2 = −41,200 61,800 −20,600 0 −20,600 20,600 0 −K2 K2 The equation system becomes at first: 41,200 −41,200 0
−41,200 61,800 −20,600
0 U1 0 −20,600 U2 = 0 20,600 5,000 U3
Installing the boundary conditions: U1 = 0 according to method 1: 1
0 0
0 61,800 −20,600
0 U1 0 −20,600 U2 = 0 20,600 5,000 U3
The solution of this equation system is: U1 0 U2 = 0,1214 0,3641 U3
Now we do a back-calculation of the internal forces according to method 2 to receive the rod forces:
element 1
41,200 −41,200
−41,200 41,200
0 0.1214
Figure 2-8: Forces in the nodes of rod 1
=
−5,000 +5,000
12 2 The Basic Procedure
element 2
20,600 −20,600
−20,600 20,600
0.1214 0.3641
=
−5,000 +5,000
Figure 2-9: Forces in the nodes of rod 2
In the example the force F3 was given. Now we have to set a defined displacement, instead of the force. This is what the equation system looks like at first: 41,200 −41,200 0 U1 F1 −41,200 61,800 −20,600 U2 = F2 0 −20,600 20,600 U3 F3
We set the external forces: 41,200 −41,200 0
−41,200 61,800 −20,600
0 U1 0 −20,600 U2 = 0 20,600 0 U3
If we do not apply any external forces, all of them are 0. Now we have to set a displacement U3 = 0.3641 mm. Since it is different from 0, we call it inhomogeneous boundary condition: METHOD 3: APPLYING INHOMOGENEOUS BOUNDARY CONDITIONS The inhomogeneous boundary condition has the value Cj and is valid in the degree of freedom j. m3.1: Substract the column vector, which is the product of Cj and the column j from K, from the right hand side F. m3.2:
Apply method 1.
m3.3: Substitute Fj with Cj. Trying this out immediately shows: Step m3.1: U3 = 0.3641 = Cj i.e. j = 3
41,200 −41,200 0
−41,200 61,800 −20,600
0 U1 0 − 0.3641 · 0 0 −20,600 U2 = 0 − 0.3641 · (−20,600) = +7,500.46 20,600 −7,500.46 U3 0 − 0.3641 · 20,600
2 The Basic Procedure 13
Step m3.2: Applying method 1, i.e. zero in row 3 and column 3 in K, the diagonal element K33 is 1, F3 is 0: 41,200
−41,200 0
−41,200 61,800 0
0 U1 0 0 U2 = +7,500.46 1 0 U3
U3 would be 0. Unambiguously wrong! Now we have to set F3 to C3=U3 = 0.3641.
Step m3.3: 41,200 −41,200 0
−41,200 61,800 0
0 U1 0 0 U2 = 7,500.46 1 0.3641 U3
Now we apply the boundary condition U1 = 0, i.e. the left fixed bearing, according to method 1: 1
0
0
0
0 61,800
0 U1 0 0 U2 = 7,500.46 1 0.3641 U3
The solution of the equation system is: U1
0
U3
0.3641
U2 = 0.1214
... and that is right!
Arithmetic example 3 The following shows the entire procedure with a beam in the plane at the example of a support: F
l 1 , EI 1
l 2 , EI 2
Figure 2-10: Forces in the beam
The system is statically over-determined. However, this does not bother us at all. One of the big advantages of the FEA is that we can calculate arbitrarily statically over-determined systems. Compared to the “hand calculation” with the “0”- and “1”- or “2”-... “n”- system of the engineering mechanics, which becomes costlier with every additional over-determined value, the arithmetic expenditure of FEA does not noticeably increase. Hence, FEA is very suitable to calculate arbitrarily statically over-determined frameworks of trusses and beams or continuous beams. However, when calculating with the classical engineering mechanics we have to show initiative already with this simply statically over-determined system: Either you take away the right support and compensate the appearing displacement w with a force X so that the displacement
14 2 The Basic Procedure
in the right support becomes 0 (see Figure 2-11), or you take away the moment restraint in the left support and compensate the now appearing angle of twist ψ with the moment X (see Figure 2-12). By using the FEA you do not need to carry out any of these considerations anymore.
F
F w w
X
Figure 2-11: Statically over-determined value X as a force
Figure 2-12: Statically over-determined value X as a moment
With this we need a horizontally lying beam in the plane:
Figure 2-13: The deflections in the beam
Its element stiffness matrix (at this moment we extract it simply from the literature without inquiries) is as follows:
2 The Basic Procedure 15
EI ·
12 ℓ3 −6 ℓ2 −12 ℓ3 −6 ℓ2
−6 ℓ2 4 ℓ 6 ℓ2 2 ℓ
−12 ℓ3 6 ℓ2 12 ℓ3 6 ℓ2
−6 ℓ2 2 ℓ 6 ℓ2 4 ℓ
or
U1 F1 U 2 F2 U 3 = F3 U4 F4
KU=F or
Kij Uj = Fi
j
We find such element stiffness matrices in some of the literature listed in the bibliography /1–7/ or in chapter 4. Some authors display the circumstances as follows:
Figure 2-14: Alternative representation of the deflections
EI ·
12 ℓ3 −6 ℓ2 −12 ℓ3 −6 ℓ2
−6 ℓ2 4 ℓ 6 ℓ2 2 ℓ
−12 ℓ3 6 ℓ2 12 ℓ3 6 ℓ2
−6 ℓ2 2 ℓ 6 ℓ2 4 ℓ
w1 F1 ϕ1 M 1 w 2 = F2 ϕ2 M2
Superficially we can see the displacements w, twists ϕ, forces F and moments M are affecting the beam, but the desired schematic treatment is complicated. Especially for the representation Kij Uj = Fi j
it is absolutely not suitable. We particularly need the index form of the matrix notation for the programming.
16 2 The Basic Procedure
Returning to our example:
Figure 2-15: Representation of the arithmetic example 3
Of course also the two Young’s moduli could be different: E1 ≠ E2. For reasons of convenience, we keep: E1 = E2 = E = 206,000 N/mm2 = 206 · 109 N/m2 beam 1: IPB 100: ℓ = 3 m I1 = 450 cm4 = 450 ∙ 10–8 m4 beam 2: I 100: ℓ = 2 m I2 = 171 cm4 = 171 ∙ 10–8 m4 F = −5,000 N (acts downward, see following diagram). 4TH RULE OF FEA The FEA is not bound to certain determined systems of dimension. The units may be random but must be consistent within the structure. 5TH RULE OF FEA There are no standardized coordinate systems and rules of algebraic signs. They vary with different FEA systems. The algebraic signs depend only on the definition of the element stiffness matrices resp. the whole structure. Since we defined:
Figure 2-16: Representation of the defined beam forces and degrees of freedom
... the force F has to be applied with negative values in this case. With the numerical values, Ke1 becomes:
2 The Basic Procedure 17
412,000 −618,000 −412,000 −618,000
and Ke2 is: 528,390 −528,390 −528,390 −528,390
−618,000 1,236,000 618,000 618,000
−412,000 618,000 412,000 618,000
−618,000 618,000 618,000 1,236,000
−528,390 704,520 528,390 352,260
−528,390 528,390 528,390 528,390
−528,390 352,260 528,390 704,520
Degrees of freedom for the entire structure:
F
U1
U2
U5
U3
U4
U6
1
2 3
2
1
Figure 2-17: Representation of the degrees of freedom in the arithmetic example 3
To make the process of the compilation clear to the reader, we tangle an empty 6 × 6 field because of 6 degrees of freedom (d.o.f.). Every node takes two rows and two columns because in this case every node has two degrees of freedom in each case per definition (with a “right” beam, e.g., Z88 type no. 2, we would have 6 degrees of freedom per node: 3 displacements in the direction of X, Y and Z and three rotations about the X, Y and Z axis): Node
➀
d.o.f.
1
➁
2
3
1 ➀
2 3
➁
4 5
➂
6
Figure 2-18: Auxiliary grid for determining the structure stiffness matrix
➂
4
5
6
18 2 The Basic Procedure
For element stiffness matrices: Node
➀
d.o.f.
1
Node
➁
2
3
4
1
➀
d.o.f.
3
➂
4
5
6
3
➁
2
4
3
➁
➁
5
➂
4
6 element 1
element 2
Figure 2-19: Auxiliary grid for determining the element stiffness matrices
With this, the structure stiffness matrix becomes: 1
2
3
4
5
6 = d.o.f.
1
412,000
−618,000
−412,000
−618,000
0
0
2
−618,000
1,236,000
618,000
618,000
0
0
−412,000
618,000
412,000 + 528,390 = 940,390
618,000 + −528,390 = 89,610
−528,390
−528,390
−618,000
618,000
618,000 + −528,390 = 89,610
1,236,000 + 704,520 = 1,940,520
528,390
352,260
5
0
0
−528,390
528,390
528,390
528,390
6 = d.o.f.
0
0
−528,390
352,260
528,390
704,520
3 4
6TH RULE OF FEA The element stiffness matrices are always symmetrical. The structure stiffness matrix is always symmetrical. Their orders correspond to the number of the degrees of freedom.
2 The Basic Procedure 19
With this, we are able to add the equation system with the forces, but still without bearings: 412,000 −618,000 −412,000 −618,000 0 0
−618,000 1,236,000 618,000 618,000 0 0
−412,000 618,000 940,390 89,610 −528,390 −528,390
−618,000 618,000 89,610 1,940,520 528,390 352,260
0 0 −528,390 528,390 528,390 528,390
0 0 −528,390 352,260 528,390 704,520
U1 0 U2 0 U3 −5,000 = U4 0 U5 0 0 U6
Now the installation of the bearings occurs: U1 = 0, U2 = 0, U5 = 0: 1 0 0 0 0 0
0 1 0 0 0 0
0 0 940,390 89,610 0 −528,390
0 0 89,610 1,940,520 0 352,260
0 0 0 0 1 0
0 0 −528,390 352,260 0 704,520
U1 0 U2 0 U3 −5,000 = U4 0 U5 0 U6 0
Now you may compute this equation system with MATHEMATICA or an efficient electronic calculator, for example HP 50, Ti 89 or Ti92 (you can also use a 35 year-old HP 41 or TI 59; they were able to do this already). The solution is: U T = (0; 0; −0.01056746; 0.00211904; 0; −0.0089851) This small and very easy example shows you that FEA is more or less useless without using computers. Or would you want to solve the above 6 × 6 equation systems by hand? Just try this once and you will understand what we mean. But: It might be clear that we can treat arbitrarily complicated beams with many supports with this primitive beam element, e.g.
Figure 2-20: Example of a complicated loading condition
20 2 The Basic Procedure
The FEA once again summarized: METHOD 4: OVERALL PROBLEM m4.1:
Defining a FE structure
m4.2:
Calculating the element stiffness matrices ESM
m4.3: Compilation: Add ESM to the structure stiffness matrix m4.4:
Insert boundary conditions:
+ Forces
+ Defined displacements ≠ 0
+ Supports, i.e. displacements = 0
m4.5:
Solving the equation system which delivers U
m4.6:
Do back-calculations if necessary, which will deliver:
+ Internal forces
+ Stresses
7TH RULE OF FEA The present FEA is a generalization of the displacement-based procedure of the mechanics. The process is strictly formalized and due to that very suitable for computer usage. 8TH AND MOST IMPORTANT RULE OF FEA The linear FEA is nothing but the Hooke’s law of springs in the form of matrices. By now we treated the FEA in its basic processes. Thus, FEA also runs with the most complicated and biggest structures of the linear statics. Everything that follows is only refinement. What do we mean by refinements? Establishing element stiffness matrices (ESM) for complicated elements, particularly continuum elements (see Figure 2-21)
Figure 2-21: Examples of continuum elements
2 The Basic Procedure 21
Stress calculation: Just as ESMs, there are stress matrices, too. Element stress matrix × calculated displacements = stresses Special storage processes for the partly gigantic global stiffness matrices Conditioning improvements for global stiffness matrices, e.g., scaling Special equation solvers for the partly gigantic equation systems We will examine these questions accurately in the following chapters, but you have already learned the most essential facts.
3
Some Elasticity Theory
■■3.1 Displacements
and Strains
3.1.1 For the Truss When looking into books on technical mechanics or FEA we often find the following: εx =
∂u ∂x
This is often accompanied by the remark “as one sees immediately”. We never considered such equations as “immediately reasonable”; hence, the derivation of the so-called relation of deformation and displacement is here presented in detail. It is the basis for understanding the continuum elements of FEA. With this, we lean upon the excellent book of Bickford /10/, but we also recommend the lecture of Love /8/, Timoshenko /9/ and Schnell/Gross/Hauger /90/. We act on the assumption of a simple rubber band (which of course could also be a steel tape) and pull it with a force F. The origin length of the rubber band is ℓ0, the stretched tape has the length ℓ1. The extension of the tape is called Δℓ.
Figure 3.1–1: Length change of a rod by the force effect
We define the strain ε =
∆ℓ ℓ0
− ℓℓ00 and ∆ℓε = with ∆ℓ = ℓ1 ⊆ ε= = ℓ0 ℓ0
ℓ1 − ℓ0 ∆ℓ = ℓ0 ℓ0 .
24 3 Some Elasticity Theory
To examine the strain in every point, we select two points A and B on the tape, which are located very closely together, and call it the distance Δx.
Figure 3.1-2: Selective consideration of the displacements u in A and B
∆ℓ ℓ1 − ℓ0 . = ℓ ℓ0 By implication, the strain in A0 is
According to the definition ε =
εx (A0 ) = lim
A0 B0 →0
A1 B1 − A0 B0 A0 B 0
with A1B1 representing the distance between A1 and B1 resp. A0B0 representing the distance between A0 and B0. With A0B0 = Δx and A1 B1 = (x + ∆x + u(B0 )) − (x + u(A0 )) = ∆x + u(B0 ) − u(A0 )
is εx (A0 ) = lim
A0 B0 →0
A1 B1 − A0 B0 ∆x + u(B0 ) − u(A0 ) − ∆x = lim A0 B 0 → 0 A0 B0 ∆x
We can call the difference u(B0) – u(A0) Δu and get: εx (A0 ) = lim
A0 B0 →0
∆x + ∆u + ∆x ∆u ∆u = lim lim A0 B0 →0 ∆x ∆x→0 ∆x ∆x
and in the limiting process: du in A0 dx or in general: εx ( A0 ) =
ε = u’
“Strain-deflection function”
This means: The strain (or expansion) ε is the derivation of the deflection function u(x). Thus εx = u’ =
du dx
3.1 Displacements and Strains 25
3.1.2 For Plane Stress After we have explained the one-dimensional case, we will now examine the 2-dimensional case as it appears, e.g., with so-called plane stress problems. Plane stress problems assume an important role in the engineer’s practice – and with it also in the FEA – because you can trace back many loading conditions to plane stress problems. Here, all the stresses lie in-plane – with the quite differently disposed plate problems the stresses lie vertically to the plane level. The following are some typical plane stress problems:
Figure 3.1-3: Pipe under internal hydrostatic pressure, e.g., hub of a press fit assembly
Figure 3.1-4: Pipe under external pressure, e.g., shaft of a press fit assembly
Y
F F
X
Figure 3.1-5: Flat wrench under load
26 3 Some Elasticity Theory
Figure 3.1-6: Notched bars, e.g., to inquire the stress concentration factor αK
Figure 3.1-7: Complex formed beams and plane frames, which cannot be rationally calculated with beam elements
Figure 3.1-8: General case
The thickness t of the disk is often fixed, but can vary by implication, e.g., with t = t (x,y). One simply assigns an individual thickness t to every finite disk element. But what is special about disk problems is that no displacements u, no stresses σ and no strains ε appear in z direction. We now derive the strain-displacement functions for the 2-dimensional case of the plane stress problem.
Figure 3.1-9: The 2-dimensional case of the plane stress problem
3.1 Displacements and Strains 27
The displacements in the xy plane are: u = u(x, y)
in x direction
v = v(x, y)
in y direction
w = 0
in z direction
As we already know, the displacements u and v are functions and depend on the respective place x, y. Only in the simplest cases, e.g., with a truss with constant cross section, the function u = u(x) is steady. With the general case, which is typically used for FEA plane stress problems, you have to use the partial derivations ∂u ∂u , and so on ∂x ∂y
while considering derivations, since u is a function of two variables. Now we draw out a part of the plane stress element:
Figure 3.1-10: Section of a plane stress element
This figure needs some explanation. The later used expression u(B0 ) = u(A0 ) +
∂u(A0 ) · dx ∂x
develops as follows: The displacement u, i.e. in x direction, in B0 corresponds to the position A0 + dx on the x-axis. Thus: u(B0 ) = u(A0 + dx)
Now we apply a trick: We develop u(A0 + dx) into a Taylor series. The Taylor series development is defined as follows:
28 3 Some Elasticity Theory
hhh hh2h22 hhnhnn f((x(x0x0)0))+++: ::… :::+:++ f(ffn((n)n)()(x(x0x0)0))+++RRnRnn f(ff(x(x0x00+++hh)h))===f(ff(x(x0x0)0))+++ ff'f(f(x(x0x0)0))+++ fff" 11!1!! 22!2!! nn!n!!
with Rn being the remainder term. Applied on our labelling: u (A0 + dx) = u (A0 ) +
∂u (A0 ) ∂2 u (A0 ) dx2 · dx + · + ... + Rn ∂x ∂x2 2
we can neglect the non-linear terms because with dx → 0 they converge faster to 0 than the linear terms do. It remains: u (A0 + dx) = u (A0 ) +
∂u (A0 ) dx = u (B0 ) ∂x
With neglecting the non-linear terms we also get: v (B0 ) = v (A0 + dx) = v (A0 ) + = v ( A0 ) +
∂v (A0 ) · dx ∂x
∂v (A0 ) ∂2 v dx2 dx + 2 · + ... = ∂x ∂x 2
For y-axis we get: u (C0 ) = u (A0 + dy)
written as a Taylor series: u (A0 + dy) = u (A0 ) +
∂u (A0 ) ∂2 u dy2 dy + 2 · + ... + Rn ∂y ∂y 2
dy2 converging faster to 0 than dy: 2 ∂u (A0 ) u (A0 + dy) = u (A0 ) + dy = u (C0 ) ∂y
with
and equally: v (C0 ) = v (A0 + dy) = v (A0 ) +
∂v (A0 ) dy ∂y
We can now display the strain ε in A0 in x direction εx(A0) as follows: εx (A0 ) =
A1 B1 − A0 B0 A0 B0
According to Pythagoras the distance becomes: ∂u ∂u 2 2 A1 D = dx + dx = (1 + )dx A1 B1 = (A1 D) + (B1 D) with ∂x ∂x
3.1 Displacements and Strains 29
∂v · dx . ∂x The distance A1B1 becomes: B1 D =
and
A1 B1 =
∂u 1+ ∂x
Converting A1 B1 =
A1 B1 = dx
2 2 ∂v dx + dx ∂x
dx2
∂u ∂x
∂u 1+2 + ∂x
∂u 1+ ∂x
2
+
dx2
∂v ∂x
2
= dx
∂u 1+ ∂x
2 2 ∂v + ∂x
2 2 1 ∂v ∂u 2 2 ∂u + ≈ dx 1 + 2 ≈ dx 1 + ∂x ∂x 2 ∂x
It is valid: (1 + ε)n ≈ 1 + n ε with |ε| << 1 (binomial theorem). We assumed, that 1. the displacements are small, 2. also the derivations of the displacements are small and due to that 3. we can neglect the squares of the derivations (cf. /3/, p. 63) and neglect the quadratic summands of the root: 2 2 ∂u ∂v ≈ 0 and ≈0 ∂x ∂x remaining A1 B1 = dx ·
1+
∂u ∂x
hence ε x ( A0 ) =
dx 1 +
∂u ∂x
dx
− dx
=
dx +
∂u ∂x
· dx − dx
dx
∂u And: εx (A0 ) = ∂x
Analog for εy(A0): εy (A0 ) =
A1 C1 − A0 C0 A0 C 0
Using the Pythagorean theorem again we get
=
∂u ∂x
· dx
dx
=
∂u ∂x
30 3 Some Elasticity Theory
A1 C 1 =
∂v 1+ ∂y
2 2 ∂u dy + dy ∂y
proceeding in the same way as described above results in εy (A0 ) =
∂v ∂y
Now we still need the shear strain in A0 in the directions X and Y: γxy (A0) = angle B0A0C0 – angle B1A1C1 The angle B1A1C1 is
π − ϕ1 − ϕ2 2
with the angles ϕ1 and ϕ2 being ∂v · dx ∂x tan ϕ1 = ∂u 1+ · dx ∂x ∂u · dy ∂y tan ϕ2 = ∂v 1+ · dy ∂y
Again we apply a few mathematical tricks: In both equations we can cancel dx or dy. For small angles ϕ is valid: tan ϕ ≈ ϕ With the derivations of the displacements being small, the denominators ∂u ∂v resp. 1+ 1+ ∂x ∂y are nearly 1, i.e. the denominators become 1 and are cancelled. Thus: ϕ1 =
∂u ∂v and ϕ2 = ∂y ∂x
in our equation γxy(A0) = angle B0A0C0 – angle B1A1C1 inserted: γxy (A0 ) =
π − 2
π ∂v ∂u − − 2 ∂x ∂y
3.1 Displacements and Strains 31
γxy (A0 ) =
∂v ∂u + ∂x ∂y
With this, the strain-displacement relations for the plane case become ∂u∂u∂u∂v∂v∂v ∂u∂u∂u ∂v∂v∂v εxεx=ε=x = , , ε,yεy=ε=y = , , γ, xyγxyγ=xy= = + + + ∂x∂x∂x ∂y∂y∂y ∂y∂y∂y∂x∂x∂x
3.1.3 In Space The strain-displacement relations can be extended quite easily in the general 3-dimensional case, while carrying out exactly the same considerations for the yz and the zx level (you only need to exchange the indices). We get: ∂u ∂x ∂v εy = ∂y ∂w εz = ∂z εx =
∂v ∂u + ∂x ∂y ∂v ∂w γyz = + ∂z ∂y ∂u ∂w γxz = + ∂z ∂x γxy =
These are the strain-displacement relations for the 3-dimensional case with small deflections (we remember that we have neglected the higher Taylor terms, i.e. have linearized them). According to the elasticity theory,we are able to summarize the deformation components in a deformation matrix, more exactly even summarize in a so-called deformation or strain tensor. The deformation matrix has tensor features when the half shear is used: 1 1 εx γxy γxz 2 2 1 1 ε = γyx γyz εy 2 2 1 1 γzx γzy εz 2 2 with the definition εxy
!
εxz
!
we get
1 γxy 2 etc. 1 γxz 2
32 3 Some Elasticity Theory
εx ε = εyx εzx
εxy εy εzy
εxz εyz εz
This is the so-called Green’s linearized strain tensor. At this point, we want to present the so-called index notation, which facilitates a much easier programming transfer. We write instead of also
even better
εx εy εz εxy εzy
The coordinate plane is not called x, y, z anymore, but 1, 2, 3. The Green’s strain tensor becomes: ε11 ε12 ε13 ε = εij = ε21 ε22 ε23 ε31 ε32 ε33 with εij =
1 2
∂ui ∂uj + ∂xj ∂xi
Obviously, this is much more elegant in the mathematical sense, but for unexperienced users it is a little confusing at first. However, you can simply insert a few indices in the equation above, e.g., i = 1, j = 1 or i = 2, j = 3: ε11
1 = 2
ε23
1 = 2
∂u1 ∂u1 + ∂x1 ∂x1 ∂u2 ∂u3 + ∂x3 ∂x2
=
∂u1 ∂u = ∂x1 ∂x
1 = 2
∂v ∂w + ∂z ∂y
=
1 γyz 2
3.1.4 For the Plate We can imagine the plate as two crossbred beams: There is not only a bending line in x direction, but also in y direction. Figure 3.1-11 shows this circumstance with the z-axis of the coordinate plane – deviating from the usual conventions of the engineering mechanics – being orientated positively upwards as it is generally usual in FE programs.
3.1 Displacements and Strains 33
Figure 3.1-11: Deflections of a plate according to the FEA convention
The space directions are compatible to the other states of stress we treated. The plate is loaded with a distributed load q0. The plate thickness is h. We proceed now according to the theory from E. Reissner and R. D. Mindlin: We suppose that the plate particles that originally lie on a line along the z direction, distributed over the plate thickness, remain on one line, even after deflection of the plate. But this line does not have to be necessarily vertical to the deformed midline. Figure 3.1-12 displays this.
Figure 3.1-12: Geometrical variables with the Reissner Mindlin theory
From Figure 3.1-12 we recognize: u = tan βx · z, for small angles: tan ϕ ≈ ϕ Considering the algebraic signs from Figure 3.1-11: u = z · βx (x,y)
, v = −z · βy (x,y)
, w = w(x,y)
34 3 Some Elasticity Theory
With the kinematic relations which have already been derived from the stress element theory it is: ∂βx z· ∂x ∂βy −z · εxx ∂y εyy γxy = z · ∂βx − ∂βy ∂y ∂x γyz ∂w γzx − βy ∂y ∂w + βx ∂x
■■3.2 Stress-Strain
Relations
Performing a tensile test with e.g. steel, the so-called stress-strain diagram results from the measurements:
Figure 3.2-1: Stress-strain diagram
Between σ and ε there is a linear connection to the limit of proportionality. This is valid for most metallic materials. The gradient of the curve (in this case a straight line) is: tan α =
σ for linear material behaviour ε
and is called modulus of elasticity E or “Young’s Modulus”, i.e.
3.2 Stress-Strain Relations 35
E = tan α =
σ dσ or = ε dε
σ = E · ε resp. F = K · U
This corresponds exactly to the Hooke’s law of springs. These kinds of materials are also called Hookean materials. E is, so to speak, a spring constant of the material, and is determined through tensile tests. By experiments we know that a tensile bar contracts crosswise to the direction of tension – you can execute this experiment at home with a sealing ring. This is called lateral extension or transversal contraction. Assuming the cross section of the tensile bar is round with the dia meter d, we can define the transversal strain: εq =
∆d d
The relation between transversal strain εq and normal strain εx is called “Poisson’s ratio” ν ν=−
εq εx
One can show that it has to be valid: −1 ≤ ν ≤ 0.5
The following is valid for all known homogeneous materials: 0 ≤ ν ≤ 0.5 i.e. while tension transversal contraction but no transversal strain.
The following is valid for the technically very important steel: νSteel = 0.3. However, we can also apply this value to many other “common” metals such as cast iron, aluminum etc., but our experiments showed that even several technical polymers can be well calculated linearly, although polymers rather tend to 0.5. Another important elastic value is the so-called modulus of shear deformation G, that represents the counterpart to the Young’s modulus. τ=G·γ
For comparison: σ=E·ε
36 3 Some Elasticity Theory
Between E and G, there is a defined relation: E = 2 G (1 + ν)
resp. G =
E 2 (1 + ν)
3 from which the “rule of thumb value” G ≈ · E originates because with the Poisson’s ratio 8 ν = 0.3 for steel: G=
E 3 1 ≈ ,, 8 2.6 2.6
Since G can be defined unambiguously from E using this equation, we only have to insert the Young’s modulus E and the Poisson’s ratio ν for isotropic (see below) homogeneous materials in many FEA-programs. We point out to the fact, that Young’s modulus and Poisson’s ratio only can be determined by experiments, so to speak phenomenologically, whereas the stress-strain relations are “exact” mathematics (with the use of certain tricks). This leads us to the three-dimensional Hooke’s law: A Hookean material is given when the following conditions apply: Linearity: If we enlarge all stress components to a certain factor, the strain components enlarge with the same factor (multiplicatively). Linearity: Stresses and strain can be added, i.e. overlaid, in the respective coordinate directions (additively = superposition principle). Isotropy: The material behaves the same way in all directions, it does not depend on rotations of the coordinate system. 1. In the one-dimensional tensile test we receive: σx = E · ε x
or εx =
σx E
Since the Poisson´s ratio was defined as ν=−
εq εx
transforming the equation and inserting εx = σx E σx εz = −ν · E εy = −ν ·
σx leads to E
3.2 Stress-Strain Relations 37
For isotropy, the following is valid: εy = εz. With the transversal contraction, the deformation is three-dimensional, although the load is one-dimensional. 2. If we make a cube subject to the stresses σx, σy and σz
Figure 3.2-2: Stresses in a cube
the superposition principle reveals: σx σy σz −ν −ν E E E σy σx σz εy = −ν −ν E E E σz σx σy εz = −ν −ν E E E εx =
i.e., all the three stress components deliver an amount to the respective deformation in x, y and z direction. Written in an easier way: 1 [σx − ν (σy + σz )] E 1 εy = [σy − ν (σx + σz )] E 1 εz = [σz − ν (σx + σy )] E εx =
3. The rates of shear remain as we already imagined; there is no superposition, i.e. there is no coupling between shear and tension. 1 2 (1 + ν) · τxy = · τxy G E 1 2 (1 + ν) · τyz 2εyz = γyz = · τyz = G E 1 2 (1 + ν) 2εxz = γxz = · τxz = · τxz G E 2εxy = γxy =
38 3 Some Elasticity Theory
Figure 3.2-3: Stresses in space with “usual” naming
The shear stresses are labelled as follows: The first index states the plane in which the shear stress appears, the second index states the direction of the stress. The surface is defined by the surface-normal, which stands vertically on the surface.
Figure 3.2-4: Stresses in space in FEA naming
Here we can easily recognize the theorem of the equality of the shear stresses (cf. /9/): τxy = τyx, τxz = τzx, τyz = τzy , i.e. in general σij = σji. Why? We consider Figure 3.25 and form the sum of the moments at the point P:
Figure 3.2-5: Equality of the shear stresses
3.2 Stress-Strain Relations 39
Thereby we have to consider that the normal stresses do not contribute; they cancel each other. In the limiting case, the contributions of the volume forces (weight forces, centrifugal forces) to the momentum disappear; whereby f = ρ g. ←
P : dx · (τxy dz dy) − dy · (τyx dx dz) − f · dx dy dz ·
dx = 0 → τxy = τyx 2
We write these 6 equations down in matrix form since it is much more suitable for the FEA, and will take the strain displacement relations as a basis. ∂u ∂x ∂u εy = ∂y ∂u εx = ∂x
∂v ∂u + ∂x ∂y ∂v ∂w γyz = + ∂z ∂y ∂u ∂w γxz = + ∂z ∂x
εx =
γxy =
We state: εij = γij
Notice that with the linearized Green’s strain tensor, we defined: εxy
!
εxz
!
1 γxy 2 1 γxz 2
Now we need the strain-displacement relations. Also the shear stresses are called σij with σij, i=j
normal stresses
σij, i≠j
shear stresses
Summarizing the 6 equations from above into matrix form, we receive in usual notation: εxx 1 −ν −ν 0 0 0 σxx −ν 1 −ν σyy εyy 0 0 0 σzz εzz 1 −ν −ν 1 0 0 0 = σxy εxy E 0 0 0 2 (1 + ν) 0 0 εyz 0 0 0 σyz 0 2 (1 + ν) 0 0 0 0 0 0 2 (1 + ν) εzx σzx
40 3 Some Elasticity Theory
The same in FEA index notation: ε11 1 −ν −ν 0 −ν 1 −ν ε22 0 ε33 1 −ν −ν 1 0 = ε12 E 0 0 0 2 (1 + ν) ε23 0 0 0 0 0 0 0 0 ε31
0 0 0 0 2 (1 + ν) 0
0 0 0 0 0 2 (1 + ν)
or in symbolic matrix notation: ε=
σ11 σ22 σ33 σ12 σ23 σ31
1 Mσ E
or in index notation: εik ik =
1 Mij σjk · E j
To solve these equations for σ, we can write quite formally: σ = M−1 ε E
We have to calculate the inverse of M in a very elaborate process. Luckily, you do not have to calculate this by yourself nowadays but are able to use special programs. E.g. use MATHEMATICA and write in the command line: m ={{1, − v, − v, 0, 0, 0},
{−v, 1, − v, 0, 0, 0} {−v, − v, 1, 0, 0, 0} {0, 0, 0, 2[1 + v], 0, 0} {0, 0, 0, 0, 2[1 + v], 0} {0, 0, 0, 0, 2[1 + v]}}
form: im = Inverse [m] imt = Together [im] and indicate the inverse with MatrixForm [%]. This inverting process can also be carried out with a capable electronic calculator, as for example TI 89. With this, the equations are solved for σ: σ = M−1 ε E
3.2 Stress-Strain Relations 41
We call the expression M-1 E the constitutive matrix C and: σ=Cε
written down:
σxx σyy σzz σxy σyz σzx
or:
σ11 σ22 σ33 σ12 σ23 σ31
E = (1 + ν) (1 − 2ν)
E = (1 + ν) (1 − 2ν)
(1 − ν) ν ν
ν (1 − ν) ν
ν ν (1 − ν)
0
0
0
0
0
0
0 0 0
0 0 0
0
0
0
0 1 (1 − 2ν) 2 0
0
0
1 (1 − 2ν) 2 0
0 0 0
(1 − ν) ν ν
ν (1 − ν) ν
ν ν (1 − ν)
0 0 0
0 0 0
0
0
0
0
0
0
0
0
0
0 1 (1 − 2ν) 2 0
0
0
1 (1 − 2ν) 2 0
0 0 0
C in the general 3-dimensional case. Be careful with ν = or σik =
1 ! 2
0 1 (1 − 2ν) 2
0 1 (1 − 2ν) 2
Cij εjk
j
This is how we derived the stress-strain relations for the general 3-dimensional case. For the special case of the plane state of stress, by inserting σ33 = 0
( = σz )
σ31 = 0 σ23
(= τzx ) = 0 (= τyz )
this results in: 1 v σ11 E σ22 = v 1 1 − v2 σ12 0 0
0 ε11 0 ε22 1−v ε12 2
εxx εyy εzz εxy εyz εzx
ε11 ε22 ε33 ε12 ε23 ε31
42 3 Some Elasticity Theory
Acting in the same way we can also derive other special cases as axial-symmetrical state of stress plane strain state. They are tabulated in chapter 4. If you are interested in those principles, we recommend reading Betten /41,44,45/. The following matrix C for the Reissner Mindlin plate deviates from our previous considerations: It consists of two components, i.e. a component Cb for the bending content and a component Cs for the shear content, since the Reissner Mindlin plate is shear-elastic in contrast to the shearrigid Kirchhoff Love plate: 1 ν 0 3 Eh 1 0 ν 1 0 , C = Ehk Cb = s 0 1 1−ν 12(1 − ν2 ) 2 (1 + ν) 0 0 2
With it, the stress-strain relation becomes: B Bν 0 0 0 σxx Bν B 0 0 0 σyy 1 − ν σxy = 0 0 B 0 0 2 σyz 0 0 0 S 0 σzx 0 0 0 0 S
εxx εyy εxy εyz εzx
Eh3 Ehk , B = , S= 2) 12 ( 1 − ν 2 ( 1 + ν)
The shear correction factor k is used according to Reissner as follows, cf., e.g. Krätzig/Başar/42/: k=
5 6
Concluding, we give you the principle equations of the plate theory, cf. Pictures 3.2-6 and 3.2-7; if you want to learn more about this issue, please seek advice from the book of Gross/Hauger/ Schnell/Wriggers /39/. Please note that the labels in the plate calculation deviate from the standard: For example, here Mx states the moment that belongs to σx, while in other cases Mx states the moment, which rotates around the abscissa. Querkrä Shear force Bending Biegemomente moment Torque Torsionsmomente
Qx = τxz dz, Mx = σx z dz, Mxy = Myx = τxy z dz
Qy = τyz dz My = σy z dz
3.2 Stress-Strain Relations 43
Figure 3.2-6: Forces and moments in the plate
Figure 3.2-7: Stresses in the plate
For the stresses in rectangular plates of isotropic material, cf. Pilkey /38/; there are a lot of different plate formulas: 12z 12z 12z Mx , σy = 3 My , τxy = 3 Mxy 3 h h h 2 2 z z 3Qx 3Qy τxz = 1− h , τyz = 1− h 2h 2h 2 2 σx =
44 3 Some Elasticity Theory
■■3.3 Basics
of Thermomechanical Loading
For the development of components or assemblies, we essentially need to considerate thermal effects, as for example the thermo-mechanical deflection caused by creep. One knows from experience that parts absorb or emit heat while operating and this can have effects on the deformation and durability, Pahl/Beitz /134/. An extension and advancement in the FEA opens up new possibilities in the simulation, to facilitate the display of stresses during practice by components and assemblies and to allow the implementation of a more precise strength analysis. The analysis of thermal problems belongs to the range of the multiphysics or to the range of field and potential problems. This means, with the process of FEA, beside thermal flows, electric and magnetic fields or general differential equations, we can also calculate and display coupled processes (e.g., thermomechanical or magnetomechanical), see Müller/Groth /135/. In this chapter, the main focus of attention will be on the steady-state thermal conduction and its boundary conditions. An important fact, which also has to be mentioned, is the mechanical effect of the temperature on a part. The resulting thermal strains, which originate because of the heat development, produce displacements and stresses, which can be overlaid with an elastostatic problem formulation. The general basis of temperature calculations is the 1st law of thermodynamics. This law says that physical or technical processes energy cannot get lost, but the manifestation of the energy may change. The thermal transfer or thermal conduction is the transfer of thermal energy on account of a difference in temperature. For a calculation of the thermal transfer in the steadystate case, the general thermal conduction according to Fourier is valid. qx = −λx
∂T ∂x
qx stands for the thermal flow density, λx is the heat conductivity and T states the temperature of the body in the position of the coordinate x. This law explains that the thermal flow density is proportional to the temperature gradient in normal direction. The negative algebraic sign is based on the convention of thermodynamics, which says that the heat moves in the direction of the descending temperature, cf. von Böckh/Wetzel /136/. You can imagine this clearly: If you open the window of your warm flat in winter (we act on the assumption of an average cold winter in Germany), it gets cold very fast. This is due to the fact that the heat feels the urge to move towards to the cold. Subjectively you have the feeling that the air in the flat gets colder and may think that the cold gets into the flat from the outside, but it is exactly the other way round. The heat feels “attracted” by the cold. If we go one step further now, we demand that the energy or the thermal flow inside of a body have to be in balance. The general Poisson’s equation describes this for the case of the thermal transfer: ∂ ∂T ∂ ∂T ∂ ∂T λx + λy + λz + qW = 0 ∂x ∂x ∂y ∂y ∂z ∂z The universal source value qW stands for the quantity of heat produced per volume unit resp. the density of the heat source of an orthotropic material. Orthotropic means dependent on the
3.3 Basics of Thermomechanical Loading 45
direction. In this case the thermal conductivity is the only material parameter, which is orthotropic. To transfer the general equation of thermal conduction of FEA, we write the functional Π , according to the variation formulation: 2 2 2 ∂ ∂ 1 ∂T ∂T ∂T Π= λx + λy + λz dV − TqW dV 2 ∂x ∂y ∂y ∂z ∂z Vol
Vol
The demand of Π being steady, with T as it’s only variable, delivers the equation T δT λTdV = − δTqW dV Vol
Vol
with TT =
∂T ∂T ∂T ∂x ∂y ∂z
resp.
λx λ= 0 0
0 λy 0
0 0 λz
δ means “variation of”. For a description more in detail, we refer to Bathe /4/. By shortening and rewriting, we will receive the following equation, which is generally valid for FEA KW,elem Telem = QW,elem ,
which is transformed for the general steady case, neglecting the density of the thermal source, into the Laplace’s differential equation ∂ ∂T ∂ ∂T ∂ ∂T + + =0 ∂x ∂x ∂y ∂y ∂z ∂z or into KW,elem Telem = 0 KW,elem describes the element thermal conductivity matrix KW,elem = BT λBdV Vol
and QW,elem stands for the thermal flow of the thermal conduction.
46 3 Some Elasticity Theory
Thermomechanical Simulation In the previous paragraph we have considered the pure thermal conduction. But we still do not know the interesting fact how to calculate the thermomechanical displacement. We want to catch up on this now. Due to the difference in temperature of a part, strains and deformations generally appear. If we remember the previous chapter, the general Hooke’s law KU = F comes to our mind, consisting of the element stiffness matrix K= BT CBdV Vol
and the displacement U and the force F, as a basis for the calculations in the elastostatics. Beside the strain-displacement transformation matrix B the constitutive matrix C appears in the stiffness matrix, which considers the Young’s modulus as well as the lateral contraction. How are we able to simulate the thermo-mechanical effects now? We would have to combine the thermal and mechanical calculation. But how can we combine them? Actually, it is quite simply. We use thermal strain or thermal displacement, which influence the elastostatic calculation as a new boundary condition (keyword: inhomogeneous boundary conditions). The thermal strain εtherm is calculated from the difference in temperature ΔT of contiguous nodes and the factor of proportionality α, thermal coefficient of expansion. εtherm = αΔT Since we assume an isotropic material behaviour, the thermal coefficient of expansion can be considered as a scalar. By rewriting εtherm = Butherm we get the thermal displacement utherm with B stating the partial derivations of the form functions of the elastostatics, the strain-displacement transformation matrix, as we already mentioned above. With the thermal displacement we calculate a thermal force Kutherm = Ftherm
The complete force finally arises from the sum of the individual forces of the number of elements i. F= Fi,elem i
We can now overlay this force and the force from the static-mechanical calculation, if we want to, and insert it into the Hooke’s law to finally calculate the thermo-mechanical displacements and stresses.
3.4 Basic Principles of Natural Vibration 47
temperature
thermal strain
thermal displacement
thermal force
+
mechanical force + mechanical displacement
Ku = F Figure 3.3-1: Combining thermomechanical simulation
■■3.4 Basic
Principles of Natural Vibration
Especially in mechanical engineering, the components are often under oscillating loads. For example, every part in the drive chain of a car swings at least with the rotation speed of the engine. Connections with surrounding components or the inert forces of the part lead to a varying load. To be able to still make a point about the mechanical load capacity, in practice we carry out two different analyses, which both have to lead to success. At first we have to prove, of course, the static load capacity as we did before by applying the finite element analysis of the elastostatic mechanics. When this has happened, a so-called modal analysis should be carried out to check whether the so-called natural frequency of the component is in the frequency band of the oscillating force. If this is the case, look ahead! Natural frequencies characteristically operate autonomous. Neglecting damping effects, by elastic deformation and forces of gravity as a result of the inertia, the forces are exactly in balance, a continuous stimulation is not necessary for the component to proceed the movement. Of course we cannot ignore the damping material characteristics, but in practice, long-lasting cyclical forces can lead to rising oscillation amplitudes. On the springboard in the swimming pool in Figure 3.4-1, we benefit from this fact; but with the famous case of the opera singer and the shattering wineglass, the technical problems of this connection become clear.
48 3 Some Elasticity Theory
static load
dynamic load
Figure 3.4-1: Elastic deformation of a spring board while stepping on (on the left) and while gaining momentum for the jump (on the right).
Mathematical Modelling As well as in the introduction of the elastostatics in chapter 2, the system equation for swinging-capable bodies should be derived one-dimensionally first. We imagine a punctual mass m which displacement u(t) is determined by a spring equation r(t) = k · u(t). The value r(t) describes an external force, which is assumed to be time-dependent, just as the displacement. The properties stiffness and mass (and actually also damping), which in principle are associated with the single general tensile bar, were consciously separated for more clarity.
Figure 3.4-2: A simple spring mass swinging system
If the mass now moves to the right, we get Fmass = m · a according to the second Newton’s law for the force of inertia resp. gravity. The force is working along the direction of motion, in this case to the right. Simple drawing up of the balance of forces in the mass point delivers: Fspring + Fmass + r = 0 also the spring force is working along the direction of motion. Inserting the already known relations and the usual notation a=
d2 u ¨ =u dt2
leads to the desired system equation for the oscillator: k⋅u+m⋅ü+r=0
3.4 Basic Principles of Natural Vibration 49
As already mentioned, the frequencies, which we want to avoid, are the ones of the so-called free natural oscillation. These characterize oscillations with which the influence of the spring force and the inertia term are in balance. A continuous external stimulation r(t) is not necessary here at all to get a lasting oscillation; it is set to zero with free natural oscillations and a general differential equation with steady coefficients remains: k · u(t) + m ·
d2 u(t) =0 dt2
From mathematics we know ansatz functions for the general solution, where a cyclic movement course can be assumed: u(t) = û · sin(ω · t) The value û stands for the amplitude, ω designates the so-called circle frequency of the oscillation. Their unit is rad/sec and can be converted into Hertz with f = ω / (2 · π). By inserting the trial function into the differential equation, we receive the natural frequency of the oscillator. k · û · sin(ω · t) – m · û · ω2 · sin(ω · t) =0 and transformed:ωω = k/m . Now, to use these findings also in the context of FE, we replace the single spring constant k in our differential equation with the completely compiled structure stiffness matrix K and the single punctual mass m with the so-called mass matrix M. Analogical, the displacement u becomes vectorial now and partially contains the usual array of node displacements in x, y and z direction. K · u(t) + M ·
d2 u(t) = 0 with u(t) = û · sin(ω · t) dt2
The trial function is still valid. But what happens after then, inserting this to calculate the natural frequencies? 0 = K · û · sin(ω · t) – M · û · ω2 · sin(ω · t) = (K – ω2 · M) · û This is an eigenvalue problem and therefore we are not able so solve it through linear equation systems anymore! It has to be re-written in the usual standard form A · ϕ = λ · ϕ, to make it comprehensible for numerical solution algorithms. We manage this with the help of a trick: We partition the dimension matrix with the Cholesky process from chapter 6.1 at first and then insert the factoring M = L · LT instead of M in the equation. K · û = ω2 · L · LT · û Now we multiply with L−1 from the left. The order of the factors is crucial while multiplying matrices: L–1 · K · û = ω2 · L–1 ·L · LT · û = ω2 · LT · û
50 3 Some Elasticity Theory
after that, we substitute û with the new vector L-T · ϕ: L–1 · K · L–T · ϕ = ω2 · LT · L–T · ϕ = ω2 · ϕ Now we achieved the desired result: On the left hand side we have the matrix (L-1 · K · L-T) multiplied with the eigenvector ϕ, on the right hand side there is the eigenvalue (ω2) multiplied with the eigenvector ϕ. Even the symmetry of the matrix (K and M are originally symmetrical) has been preserved, a fact that influences the calculation expenditure and the savings in a positive way. For the technical interpretation of the calculation results, the eigenvalues ω2 are converted into natural frequencies afterwards. After the back transformation with û = L-T · ϕ, the eigenvectors ϕ represent the so-called natural frequency form vectors, which will offer an explanation for the deflection as a result of the respective oscillation frequency. In the next chapter we will deal with the numerical treatment of the eigenvalue problem (EVP). By the way, the here presented derivation is not the only possibility to convert the ODE (ordinary differential equation) into an EVP (eigenvalue problem) with the help of the trial function. In the literature (e.g., in /127/) you will find other, algebraically easier transformations. Nevertheless, these are not always suitable for the implementation in programming. As we will see in chapter 4.11, the numerical expenditure for the here derived EVP matrix is in quite narrow limits, which is correlated with the advantageous structure of the mass matrix.
■■3.5 Basic
Principles of Non-linear Calculations
The previous considerations were always based on linear relations, for example, the definition of the strains or the relation between stresses and strains. This consideration is sufficient, but in certain applications of technology it is necessary to also consider non-linear criteria. However, you always have to carry out a linear FE calculation, which can help you later to evaluate the results of the non-linear analysis. A big problem of the non-linearity is the possible availability of several solutions from which you have to choose the right one. Normally, the true solution can be found with the help of linear analysis, analytic auxiliary calculations or checks of plausibility according to the common engineer’s sense. In general the literature distinguishes between three different kinds of non-linearity /120/: Geometrical non-linearity Physical non-linearity (material non-linearity) Non-linearity as a result of boundary conditions The following implementation is limited to geometrical non-linearity. The geometrical non-lin earity is caused by changes in the structure stiffness, which appears as a result of large displacements. A typical example is the elastic deformation of a Belleville spring, which can be seen in Figure 3.5-1. In particular, with a large ratio of height to thickness we get extremely non-linear spring characteristics, which can only be determined in FEA through detecting the geometrical non-linearity /139/.
3.5 Basic Principles of Non-linear Calculations 51
Figure 3.5-1: Model of a Belleville spring, shown in Pro/ENGINEER
The geometrical non-linearity can be analytically determined by using special strain measures. These measures differ from the technical distortion or strain ε by the fact that no small-angle approximations are done in the definition. Representatives are, for example, the Lagrangian strain λ or the Eulerian strain η, which can be deduced with formulating the kinematics in material (Lagrangian) or spatial (Eulerian) coordinates. Another example is the Hencky’s strain, which states a logarithmic strain measure and which is used in special fields like the forming technology. Table 3.5-1 gives you an overview of the most important strain measures. Table 3.5-1: Different strain measures
strain measure
symbol
technical strain
ε
Lagrangian strain
λ
Eulerian strain
η
The differentiation of material and spatial coordinates is necessary for the detection of geometrical non-linearity. In the following, material coordinates are labelled with capital letters, and spatial coordinates with lowercase letters. The following equation shows the local vector of a point in a not deformed state (X) and in a deformed state (x). X X=Y Z
x x=y z
For more clarification we consider an example: Figure 3.5-2 shows a point in the part, once in the undeformed and once in the deformed component. The localization of this point in the undeformed part is given by the local vector X, the situation in the deformed part by the local vector x. With the formulation in material coordinates, all of the values deal with the
52 3 Some Elasticity Theory
undeformed state, according to the formulation in spatial coordinates, which deal with the deflected state. undeformed component
u X Y, y
x
location of the point in the deformed component
X,x
Figure 3.5-2: Coordinates of a point in the undeformed and in the deformed component
Table 3.5-2: Lagrangian (material) and Eulerian (spatial) notation
notation
local coordinates
example: displacement field
Lagrange (LG)
X
uLG = uLG (X)
Euler (EU)
x
uEU = uEU (x)
According to Table 3.5-2, e.g., in the Lagrangian notation the displacement field is a function of the undeformed coordinates. Let’s consider a one-dimensional numerical example: We have a point with the coordinates X = 2. In the deformed state it has the coordinates x = 5. The displacement field is given in the material notation with 1 2
u LG
X
At X = 2 there has to arise a displacement of 3. Check: 1 2
u LG (2)
2=3
The displacement field in spatial coordinates has to be calculated according to the following formula. u EU
1
2 5
x
Now the displacement of 3 has to arise at x = 5. Check: u EU (5)
1
2 5
5=3
3.5 Basic Principles of Non-linear Calculations 53
This example makes clear why the displacement functions are differing in their superior index: They are different functions! Since from now on we will work only with material coordinates, we leave out the superior index. In the following, we will define the Lagrangian strain in a geometrical way to make it clear. x(X + dX)
undeformed line element
u(X + dX) dx
X + dX dX
x(X) u(X)
X
Y, y
deformed line element
X,x
Figure 3.5-3: Geometrical interpretation of the Lagrangian strain measure
We consider line √ fragments, arbitrarily picked out from our component, of the infinitesimal small length dL = dX · dX + dY · dY + dZ · dZ . This is stated by a vector dX dX = dY dZ
according to Figure 3.5-3. The terminal points of the line fragment are characterized by the coordinates X and X + dX. A deflection is carried out through the loading. There is a rigid body movement, which consists of displacement and twist of the line fragment, as well as a change of length. Only the change of length is relevant for the distortion. On account of the vectorial character we consider the scalar product, which corresponds to the square of the length dL2 = dX T dX In the deformed state, with the coordinates of the terminal points x(X) and x(X + dX), the square of the length can be calculated as follows dL2 = dx T dx For further approach we need the Taylor expansion of the coordinate x (X + dX) which describes the deformed line fragment or later the deformed component. x ∂x x(X + dX) = x(X) + dX = y + ∂X z
∂x ∂X ∂y ∂X ∂z ∂X
∂x ∂Y ∂y ∂Y ∂z ∂Y
∂x ∂Z ∂y ∂Z ∂z ∂Z
dX dY dZ
54 3 Some Elasticity Theory
For the length of the deformed line fragment we receive a term, which depends on the length of the undeformed line fragment. dx = x(X + dX) − x(X) =
∂x dX dX = FFdX ∂X
We call the quantity F deformation gradient; it states a transformation matrix, which connects between values in the deformed and undeformed state (as the length of the line element above) /120/. Finally, with the Lagrangian strain we don’t need the change of length for the definition, as we do with the technical strain, but we do need the change of the squares of length. The reason for this is an easier mathematical treatment because otherwise “unwieldy” roots would appear. The change of the squares of length is: dl2 – dL2 = dxT dx – dXT dX = (F dX)T F dX – dX T dX = dX T F T F dX – dX T dX = dX T {F T F – 1} dX The change of the squares of length depends on the original (undeformed) line element, represented by dXT and dX and the value {FT F – 1}. We are not able to build a quotient from the change of the square of length and the square of the original length because of the matrix character of the symbols. However, the term {FT F – 1} describes the relation of these two values and can be used as a measure of distortion. Accordingly we receive the definition of the Lagrangian strain: T 1 ∂x ∂x 1 T λ: =
2
F F−1 =
∂X
2
∂X
−1
If we insert in this equation the relation between local coordinates of the undeformed structure, the deformed structure and the displacement vector u=x–X or u x X v =y−Y w z Z
we receive the desired expression for λ. λ=
1 2
∂u + ∂X
∂u ∂X
T
+
∂u ∂X
T
∂u ∂X
By formulating the coordinates X of the undeformed state as a function of the coordinates x of the deformed state (vice versa to Figure 3.5-3), the Eulerian strain measure η can be derived in a similar way. Here we want to only show you the result: η=
1 2
∂u + ∂x
∂u ∂x
T
−
∂u ∂x
T
∂u ∂x
3.5 Basic Principles of Non-linear Calculations 55
Basically we can work on with Lagrangian coordinates as well as with Eulerian coordinates; however, in the following we decide to use the Lagrangian or material notation since this one is more convenient for engineers. So far we wrote the distortion λ or η as a 3 × 3 matrix. As both values are symmetrical like the technical strain, notating them as 6-dimensional vectors as we do it with the technical strain is useful and efficient for the finite element analysis. If we select as FE notation the one, which is used in the whole Z88 system, the following notation arises: λ11 λ22 λ33 λ: = 2 · λ12 2 · λ23 2 · λ31
The strain measure is defined, now we need to introduce a stress measure. All in all there are 16 different ones /121/, but we are not free to choose, we have to select a working-conjugated pair from strain measure and stress measure /121/. For the present situation we have to select the 2nd Piola-Kirchhoff’s stress S /41/. It is based on the definition of fictitious forces and involves the need of the use of the 1st Piola-Kirchhoff’s stress P to prepare the balance of forces. In addition to this, we consider an arbitrarily picked, infinitesimal small element dV = dX ·dY · dZ from our component, according to Figure 3.5-4. The edges of this undeformed volume element should be parallel to the coordinate axes; the ones of the deformed volume element are not compulsory parallel any more.
( ) X Y z + dZ
(
X + dX Y z + dZ
)
( ) X + dX Y Z
z, Z
( ) ( ) ( ) ( )( ) ( ) x y z + dz
X Y + dY z + dZ
( ) X + dX Y + dY z + dZ
x + dx y z + dz
( )( ) ( ) X Y + dY Z
x + dx y z
X + dX Y + dY Z
deformed y, Y
not deformed
x, X
Figure 3.5-4: Volume element, situation of the corner points
x y + dy z + dz
x + dx y + dy z + dz
x y + dy z
( ) x + dx y + dy z
56 3 Some Elasticity Theory
The next figure shows the forces that work on the particular lateral surfaces. For reasons of clarity, only the forces of the positive surfaces, i.e. of the surfaces whose normal vectors point in positive coordinate directions, are marked. dFz
+ u(X, Y, Z
dZ)
u(X, Y + dY,
Z + dZ)
dFy dFx z, Z
u(X, Y + dY, Z)
deformed
not deformed
y, Y x, X
Figure 3.5-5: Forces of the positive lateral surfaces
The index of the respective (infinitesimal) force of Figure 3.5-5 does not mark the direction of the force, but the side to which it belongs. Finally, we still need the normal vectors of the single sides, which can be seen in Figure 3.5-6. Here alike to the name of the coordinates, lowercase letters also stand for the sizes of the deflected component and uppercase letters for the sizes of the undeflected component. nz Nz
ny Ny
z, Z
nx
Nx deformed
y, Y
not deformed
x, X
Figure 3.5-6: Situation of the normal vectors of the sides (only with positive sides shown)
3.5 Basic Principles of Non-linear Calculations 57
The 1st Piola-Kirchhoff’s stress connects the forces to the undeformed structure. Hence, we receive the stress vector T (not to mistake with the 6-dimensional stress vector of the FE notation) by matrix vector multiplication with the normal vector N of the undeflected structure.
Tx P11 T = TY = P N N= P21 Tz P31
P12 P22 P32
P13 P23 N P33
We will use this connection for the derivation for the weak form of the balance of forces we need for the finite elements. At first, we prepare the balance of forces or momentums in the volume element, applying the 2nd Newton’s law (“F = m · a”):
dFx (X + dX, Y, Z ) + dFy (X, Y + dY, Z ) + dFz (X, Y, Z + dZ ) – dFx (X, Y, Z ) – dFy (X, Y, Z ) – dFz (X, Y, Z ) = dm a = 0 Since we are exclusively interested in static calculations, we have set the inertia term on the right page to zero. In general, we can calculate the forces F with the help of the stress vector T: dF = T dA In this equation, dA is the area element of the undeflected area, e.g. dA = dX · dY. With this we gain following relation: Tx (X + dX, Y, Z ) · dY · dZ + Ty (X, Y + dY, Z ) · dX · dZ + Tz (X, Y, Z + dZ ) · dX · dY – Tx (X, Y, Z ) · dY · dZ – Ty (X, Y, Z ) · dX · dZ – Tz (X, Y, Z ) · dX · dY =0 With the already introduced relation between the stress vector and the 1st Piola-Kirchhoff’s stresses, we receive this expression: P (X + dX, Y, Z ) Nx· dY · dZ + P (X, Y + dY, Z ) Ny · dX · dZ + P (X, Y, Z + dZ ) Nz · dX · dY – P (X, Y, Z ) Nx · dY · dZ – P (X, Y, Z ) Ny · dX · dZ – P (X, Y, Z ) Nz · dX · dY =0 As we selected the coordinate direction in the beginning in such a way that they are parallel to the edges of the volume element, the normal vectors face exactly the respective normal direction. 1 0 0 Nx = 0 , Ny = 1 , Nz = 0 0 0 1
58 3 Some Elasticity Theory
Anyway, the considerations are valid for every orientation of the coordinate system, since an infinitesimal volume element is given. The orientation of this element, which is only relevant for mental considerations, does not make a difference and can always be rotated to set them parallel to the coordinate directions. Finally, a Taylor expansion is used again: ∂P dX ∂X ∂P dY P(X,Y + dY,Z) = P(X,Y,Z) + ∂Y ∂P dZ P(X,Y,Z + dZ) = P(X,Y,Z) + ∂Z P(X + dX,Y,Z) = P(X,Y,Z) +
Inserting this and executing the matrix vector multiplication: ∂P ∂P ∂P 11 12 13 ∂Y ∂Z ∂X ∂P22 ∂P23 ∂P21 · dX · dY · dZ + · dX · dY · dZ + · dX · dY · dZ = 0 ∂X ∂Y ∂Z ∂P31 ∂P32 ∂P33 ∂X ∂Y ∂Z The lengths of the volume element are cancelled. ∂P ∂P ∂P 11 12 13 ∂X ∂Y ∂Z ∂P21 ∂P22 ∂P23 + + =0 ∂X ∂Y ∂Z ∂P31 ∂P32 ∂P33 ∂X ∂Y ∂Z
The gained equation is the strong or local form of the balance of forces. For the finite element analysis, we still have to derive the weak form from this equation. In engineering mechanics and in mathematics the divergence is usually introduced at this point; in relation with this, some authors use the capitalization Div or DIV of the differential operator to symbolize the relation to the Lagrangian coordinates /120, 121/. DIV (P) = 0 As this notation is not explicit with matrices, we will not use it in the following. Next, we need some variation calculation to get to the weak form of the balance of forces. Hence, we use the virtual displacement, δu
δuδu= δv δw
3.5 Basic Principles of Non-linear Calculations 59
which by definition is (infinitesimal) small, arbitrary and imaginary. We multiply it with the local form of the balance of forces scalar and receive: ∂P ∂P12 ∂P13 T 11 + + ∂X ∂Y ∂Z δu ∂P21 ∂P22 ∂P23 δv =0 + + ∂X ∂Y ∂Z δw ∂P31 ∂P32 ∂P33 + + ∂X ∂Y ∂Z
Now we evaluate the equation at different spots and add it up, in other words, we integrate. ∂P ∂P12 ∂P13 T 11 + + ∂X ∂Y ∂Z δu ∂P21 ∂P22 ∂P23 δv dV = 0 + + ∂X ∂Y ∂Z δw V ∂P31 ∂P32 ∂P33 + + ∂X ∂Y ∂Z
Written in a different way:
∂P ∂P ∂P ∂P ∂P ∂P ∂P ∂P ∂P � � ∂X + ∂X δv + ∂X δw + ∂Y δu + ∂Y δv + ∂Y δw + ∂Z δu + ∂Z δv + ∂Z δw� dV = V
In the following we apply a mathematical trick: We apply the product rule backwards. ∂ ∂ ∂ (P11 δu) + (P21 δv) + (P31 δw) ∂X ∂X ∂X ∂ ∂ ∂ + (P12 δu) + (P22 δv) + (P32 δw) ∂Y ∂Y ∂Y ∂ ∂ ∂ + (P13 δu) + (P23 δv) + (P33 δw) ∂Z ∂Z ∂Z ∂P11 ∂P21 ∂P31 = δu + δv + δw ∂X ∂X ∂X ∂P12 ∂P22 ∂P32 + δu + δv + δw ∂Y ∂Y ∂Y ∂P13 ∂P23 ∂P33 + δu + δv + δw ∂Z ∂Z ∂Z ∂δu ∂δv ∂δw +P11 + P21 + P31 ∂X ∂X ∂X ∂δv ∂δw ∂δu +P12 + P22 + P32 ∂Y ∂Y ∂Y ∂δu ∂δv ∂δw +P13 + P23 + P33 ∂Z ∂Z ∂Z
60 3 Some Elasticity Theory
And thereby receive: ∂ ∂ ∂ (P11 δu) + (P21 δv) + (P31 δw) ∂X
V
∂X
∂X
∂ ∂ ∂ (P12 δu) + (P22 δv) + (P32 δw) ∂Y ∂Y ∂Y ∂ ∂ ∂ + (P13 δu) + (P23 δv) + (P33 δw) ∂Z ∂Z ∂Z ∂δu ∂δv ∂δw −P11 − P21 − P31 ∂X ∂X ∂X ∂δu ∂δv ∂δw −P12 − P22 − P32 ∂Y ∂Y ∂Y +
− P13
V
dV = 0
The divergence theorem by Gauss can be applied to the terms with positive algebraic sign /118/. ∂δu ∂δv ∂δw ∂δu ∂δv ∂δw ∂δu ∂δv ∂δw + P + P + P + P + P + P + P + P P dV 21 31 12 22 32 13 23 33 11 ∂X ∂X ∂Y ∂Y ∂Y ∂Z ∂Z ∂X ∂Z V ∂δu ∂δv ∂δw ∂δu ∂δv ∂δw ∂δu ∂δv ∂δw ∂δv ∂δu ∂δv ∂δw ∂δu ∂δv ∂δu ∂δu P∂δu + P∂δv + P∂δw +P + P∂δv + P∂δw ∂δw + P∂δu +∂δw P∂δv + P∂δw ∂δw dV 21 ∂δv 31∂δw 12 22 ∂δw 13 ∂δu ∂δu ∂δv ∂P P21 P13 +23P23 P∂P+11 + ∂P P+3112 ++13 PP12 + P32++P3213P∂δu P23 + P33 +33P33∂Z dV dV P11 11P11 31 32 12 + P12 ∂X ∂X ∂X ∂Y ∂Y+ +PP1323+∂δv ∂Z ∂Z P+31 P +∂Y P+22P22 ++PP22 ++P33 P+ dV 11 21 + P21 32 V + + ∂X ∂X ∂X ∂Y ∂Y ∂Y ∂Z ∂Z ∂X ∂X ∂X ∂Y ∂Y ∂Y ∂Z ∂Z ∂Z ∂Z ∂X ∂X ∂X ∂Y ∂Y ∂Y ∂Z ∂Z ∂Z V V V ∂X11 ∂YT12 ∂P ∂Z13 ∂P ∂P T ∂P ∂P ∂P 12 11 12 13 ∂P11 ∂P12 ∂P11 ∂P13 ∂P ∂P ∂P ∂P ∂P ∂P ∂P ∂P 13 11 12 13 11 12 ++∂P + 13 ∂P ∂P 22 23 + = (δu +δv δw + ) + 21+∂X+ +∂Y +∂Z +++ ∂Z ∂Y N dA ∂X ∂Z ∂X∂Z ∂X ∂V ∂Y ∂Y ∂X ∂Y ∂Z ∂X ∂Y ∂Z ∂P ∂P ∂P dA δu 21 22 23 ∂XPδu ∂Z23 P∂Y 11 12 13 ∂P ∂P ∂P 21 22 + P = (δu δv δw ) N + ∂P21 ∂P ∂P21 ∂P ∂P ∂P ∂P ∂P ∂P ∂P ∂P ∂P =22 23 22 23 ( δu δv δw ) N 21 22 23 21 22∂Y 23 dA ) ∂V + ∂P +Pδv δv dV ∂Z ∂P = dA 0N dA =δv P+∂X P∂Y += (= +(δu + 31 δv δw δu∫∫ δw+ ) 32 33 +dV + += 0∂P N 21 22 23 ∂V ∂P ∂Z ∂P ∂P32∂Y+∂Z +∂Y ∂V∂X ∂Z 31 33 ∂X ∂X ∂V ∂Y ∂Y∂X ∂Z ∂X ∂Z + + δw δw P P P δV 31 ∂P 32 33∂Z ∂X∂P ∂Y ∂P ∂P 31 32 33 ∂X ∂Y ∂Z ∂P V ∂P ∂P ∂P ∂P
○
∂δu ∂δv ∂δw − P23 − P33 ∂Z ∂Z ∂Z
31
∂X
+
∂P∂P ∂P31 ∂P ∂P33 32 31 33 32 32 + 32 + 33 ∂P33 + + + + 31 +∂YT+T + ∂Y ∂X ∂Z ∂Y ∂X ∂X∂Z ∂Y∂Z ∂Z∂Z ∂X ∂Y T T
T
After some steps of variation calculation while taking into account the definition of the Lagrangian strain and the deformation gradient as well as the balance of moments or spins, we receive the following weak form of the balance of forces:
3 3 V
i=1 j=1
Sij δλij dV =
3 A
i=1
Ti δui dA
In this equation we can find the principle of the virtual work, which is described in chapter 4.1. The 2nd Piola-Kirchhoff’s stresses S can be converted as follows /121/: S = F –1P = J F –1σF –T Here σ designates the Cauchy stresses, which are also named true stresses since they connect the force to the deformed cross sectional area. J is the determinant of the deformation gradient. dF = σ n da In this equation da is the surface element of the deformed area, n is the accompanying normal vector (cf. Figure 3.5-6) and dF is the force.
3.5 Basic Principles of Non-linear Calculations 61
In the end we also transfer the stress measure S, which is symmetrical on account of the rotary pulse balance, into the FE notation realized in Z88 and introduce the 6-dimensional stress vector. S11 S22 S33 S: = S12 S23 S31
The weak form of the balance of forces thereby gets the following shape. 6 V
i=1
Si δλi =
3 A
i=1
Ti δui dA
This equation is the origin for the derivation of element matrices in non-linear analyses and also the basis for chapter 4.12.
4
Finite Elements and Element Matrices
The transformation of a truss or beam framework is easy, because here, in a way, the discretization is inherent to the system and therefore given: Every truss or every beam corresponds to a “finite” element. Two nodes define each of these finite elements, although one can also construct beam elements with 3 or more nodes. A pleasant side effect is that such trusses, bending and torsion beams precisely compute within the scope of Bernoulli’s beam theory or Saint-Venant’s theory. In the narrow sense of the word, truss or beam frameworks have absolutely nothing to do with the finite element analysis, because these are already structure calculations, which are already known as a matrices method to the civil engineers for a long time. 1. The real finite element analysis in the strictly orthodox sense starts where the above-mentioned structure calculation of the frameworks ends, with the continua (although in the narrow sense also beam and trusses are 1D-continua). The discretization, which is so simple for frameworks, causes even greater problems among the continua. Hence, we will make the following assumptions to the procedure according to Zienkiewicz /1/: 2. The continuum is disassembled by imaginary lines or surfaces in smaller continua in any form (common are straight or curvilinear limited triangles, straight or curvilinear limited quadrangles or higher geometrical figures). Approximation formulations are chosen for each of these small “sub” continua, the so-called finite elements. 3. The elements themselves are defined in each case by a number of nodes, and the elements are connected with each other by the nodes, which are on the element borders. 4. The displacements of the node points from 3. are the basic variables of the whole problem. 5. The displacements within every finite element are approximated by (arbitrarily) chosen functions, the so-called basis or shape functions, in dependence of the nodal point’s displacements. 6. Since the displacements in the element are known through 4., also the strains in the element become known, in dependence of the node displacements due to the strain-displacements relations of chapter 3. 7. Out of the strains from 6., the stresses in the element can be calculated with the help of the material laws accordingly to chapter 3. 8. Line loads, uniformly distributed loads, surface loads and volume forces are applied by discrete node forces, which are a substitute load.
64 4 Finite Elements and Element Matrices
A common product like a flat wrench can already be calculated with the classical theory of the engineering mechanics, only very imperfectly.
Figure 4-1: Flat wrench illustrated as a FE structure
However, the calculation becomes easy and nevertheless exactly if it is disassembled in finite elements, which in this case contain 8 nodes and curvilinear boundaries. But unerringly executing finite element analysis means that you must also have appropriate theoretical know ledge about suitable element models and the degree of the fineness of the discretization. Hence, different curvilinear elements should be derived exemplarily for the plane state of stress and the generally spatial state of stress now because these element models are very suitable for the computing practice. Although these so-called isoparametric Serendipity elements are mathematically challenging at first sight, we believe that it leads nowhere to carry out the considerations in a simple 3-node triangular element. Although this path is treated in many FE books, why should you face up with an element, which is unusable for the computing practice? For the rest, we recommend, especially for this subject, i.e. the derivation of element stiffness matrices, to consult secondary literature if necessary. Excellent literature just for this are from our point of view the “classics”, i.e. Zienkiewicz /1,2/, Bathe /4,5/, Agyris /3/ and Schwarz /6,7/. If you want to compose a FEA program yourself or extend the Z88-element models, which are enclosed, you cannot avoid a detailed study of these books. From the newer literature, Betten /44/ is very recommendable. However, reading the following implementation should be enough.
4.1 Basics of Element Stiffness Matrices 65
■■4.1 Basics
of Element Stiffness Matrices
For 2-dimensional elements, the following is in general valid: Ke = BT C B dS A
Figure 4.1-1: Examples of 2-dimensional elements
And for 3-dimensional elements like the ones in Figure 4.1-2
Figure 4.1-2: Examples of 3-dimensional elements
it is in general valid: Ke = BT C B dV V
How to develop this equation? Now we simply define a relation, which approximates the displacement field U(x,y) in a finite element at any place (x,y) by displacements Ui of the nodes i, which are multiplied with arbitrarily chosen functions Ni (x,y): U(x,y) = Ui · Ni (x,y) i
besides, U(x,y) has the components U(x,y) =
u (x,y) v (x,y)
We must also express the strains εij with the displacements.
66 4 Finite Elements and Element Matrices
But this is simple, because we know from chapter 3 that it is valid for the plane state of stress: ∂u ∂x εxx ∂v εij = εyy = ∂y γxy ∂u ∂v ∂y
+
∂x
This can be formally written with a so-called differential operator L: ∂ 0 ∂x εxx ∂ u εyy = 0 ∂y v γxy ∂ ∂ ∂y
∂x
ε = LU
Now we suppose that our finite element to be derived has 4 nodes. There are 4 functions N1 to N4 and it must be valid:
u (x,y) v (x,y)
=
N1 · u1 + N2 · u2 + N3 · u3 + N4 · u4 N1 · v1 + N2 · v2 + N3 · v3 + N4 · v4
in matrix notation:
ij
∂
∂x
0 =
∂ ∂y
0
∂ ∂y
∂ ∂x
N1 0
0 N1
uu11 vv11 uu22 N2 0N1 ,0,N N3 2 ,0,N 0 3 ,0,N N4 4 ,00 vv22 ,0,N4N4 uu33 0 N0,N 0 2N,0,N 2 1 ,0,N 3 30 vv33 uu44 vv44 ε = LNU(i)
with it, we can write the relation as follows: N1 0
0 N1
u1 v1 ∂ 0 u2 ∂x 0 N N 0 N ∂ 3 1N 00 N∂y 0 2 3 0 4 εNij2= v2 N32 0 u 0 N2∂ 0∂ N3 0 0 N1N4 0 v3 ∂y ∂x u4 v4 ε = LNU(i) ε = LNU(i)
0 N3
N4 0
u1 v1 u2 0 v2 u N4 3 v3 u4 v4
The matrix L N is called B. This is the strain-displacement transformation matrix. It is ε = LN U(i)
or ε = B U(i)
4.1 Basics of Element Stiffness Matrices 67
Besides, it has to be mentioned that U(i) are the displacements in the nodes i. The entire issue can be derived analogously for the spatial state of stress. To now set up the element stiffness matrix, we use the principle known from the engineering mechanics of the virtual displacements. We assume virtual displacements δU and virtual strains δε, /1/. Then it must be valid: virtual internal work = virtual external work δWi = δWa
Besides, the internal work is the saved potential energy, and the external work is performed by the external forces. The increase of the external work on account of the external loads presents itself as follows: δWa = δUT P dV + δUT(i) F(i) V
P
with
= volume forces
F(i)
= external node loads
The increase of the internal energy is δεT σdV
δWi =
V
whereby this is a specific deformation work. How to work out this “specific deformation work”? Let’s consider Figure 4.1-3.
Figure 4.1-3: Tensile bar under load
The work W is defined as the product from force F and distanceW(here: = F · ∆ℓ). So: W = F · ∆ℓ
Since the stress σ is the quotient from force F and surface A it is valid: F = σ · A
This means W = σ · A · ∆ℓ = σ ·
∆ℓ W · ℓ · A = ε · σ · V → Wspez = ℓ V
One can do this consideration for all three axes of coordinates and integrate, which results in:
68 4 Finite Elements and Element Matrices
Wspez =
W = V
V
εT σ dV → δWi =
Thus it originates: δεT σ dV =
V
δ εT σ dV
V
δUT P dV + δUT(i) F(i)
V
Now we can substitute as follows, whereby the following is valid: (AB)T: = BT AT: δε = B δU(i) → δεT = (B δU(i) )T = δUT(i) BT
δU = N δU(i) → δUT = (N δU(i) )T = δUT(i) NT
So that: δUT(i) BT σ dV = δUT(i) NT P dV + F(i) V
V
Because this relation must be valid for any value from δUT(i), a factor comparison shows: BT σ dV = NT P dV + F(i) V
V
Because it was ascertained previously that σ=Cε
the left side becomes: BT C ε dV V
and with ε = B U(i)
the new left side is formed: BT C B dV · U(i) V
and if we first leave out the integral of the volume forces now on the right side, we simply have: BT C B dV · U(i) = F(i) V
Therefore it can be seen at a glance: Hooke’s law with BT C B dV (element) stiffness matrix V
4.2 Constitutive Matrices 69
U(i) displacements
F(i)
external forces
or K U(i) = F(i)
Lessons learned 2-and 3-dimensional cases can be discussed analogously because the integrands BT C B look similar. The integration itself, double integral or triple integral, is in the practical case carried out numerically! In particular, for curvilinear elements this is the only practicable way. Exceptions are quite simple elements like beams and trusses. How do the matrices C and B look like?
■■4.2 Constitutive
Matrices
C is the so-called constitutive matrix. For the plane state of stress it is:
C=
E 1 − ν2
1 ν 0
ν 1 0
0 0
1− ν 2
, ν = Poisson’s ratio
You remember: We have already exactly derived C for the plane state of stress in chapter 3. Quite analogously, i.e. accordingly to the suitable laws of the elasticity theory, farther constitutive matrices in tabulated form appear accordingly to Bathe whereas you already know the spatial state of stress from the previous chapter. problem
Constitutive matrix C
Beam
E
Truss
EI
Plane state of stress
Plane state of strain
Axial symmetry
1 ν E ν 1 2 1−ν 0 0
0 0
1−ν 2
E(1 − ν) (1 + ν)(1 − 2ν)
E(1 − ν) (1 + ν)(1 − 2ν)
1
ν 1−ν
ν 1−ν
0
1 0
1
ν 1−ν
ν 1−ν
0
ν 1−ν
1 0
ν 1−ν
0 0
1−2ν 2(1−ν)
0 0
1−2ν 2(1−ν)
0
ν 1−ν ν 1−ν
0 1
70 4 Finite Elements and Element Matrices
problem Spatial state of stress
Kirchhoff plate
Reissner-Mindlin plate
Constitutive matrix C 1 ν 1−ν ν E(1 − ν) 1−ν (1 + ν)(1 − 2ν) 0 0 0
ν 1−ν
1
ν 1−ν
0 0 0
ν 1−ν ν 1−ν
1 0 0 0
0 0 0
0 0 0 0
0 0
1−2ν 2(1−ν)
1−2ν 2(1−ν)
0
0 0 0 0 0 1−2ν 2(1−ν)
1 ν 0 Eh3 ν 1 0 12(1 − ν2 ) 1−ν 0 0 2 1 ν 0 Eh3 1 ν 1 , Cs = Ehk 0 Cb = 0 12(1 − ν2 ) 2(1 + ν) 1−ν 0 0 2
0 1
On this occasion, h is the thickness. The material matrices do not pose any problems because they are tabulated, cf. /4/.
■■4.3 B
Matrix
B is the strain displacement transformations matrix. We know that the displacements are the actually searched variables and that they can only be calculated in the node points. “To marry” the strains ε with the displacements u, we consider the relation already shown at the beginning of chapter 4.1 ε = L N U(i) whereas L N is the matrix B: ∂N i
∂x 0 Bi = ∂N i ∂y
0
∂Ni ∂y
∂Ni ∂x
For every node i of the considered finite element, there is a sub matrix.
Figure 4.3-1: 4 Node element
4.4 Shape Functions 71
For an element with 4 nodes of the plane state of stress (Figure 4.2-1) B becomes: ∂N1 ∂x B= 0 ∂N 1
∂N2 ∂x
0
∂N3 ∂x
0
∂N4 ∂x
∂N1 ∂y
0
∂N2 ∂y
0
∂N3 ∂y
0
∂N1 ∂x
∂N2 ∂y
∂N2 ∂x
∂N3 ∂y
∂N3 ∂x
∂N4 ∂y
∂N4 ∂y ∂N4 0
∂x
{ { { {
∂y
0
1st node
2nd node
3rd node
4th node
What are the Ni, so for the 4 node element N1, N2, N3 and N4? These are the so-called basis functions or shape functions!
■■4.4 Shape
Functions
The shape functions are mostly polynomials. For example: c1 + c2 · x + c3 · y “linear” c1 + c2 · x + c3 · y + c4 · x2 + c5 · x · y + c6 · y2 “quadratic” c1 + c2 · x + c3 · y + c4 · x · y “bilinear”
But also other function models, as for example trigonometric functions, are usable in principle. What should the shape functions do? They should describe the displacement field U(x, y) in a finite element by the displacements of its nodes: U(x,y) = Ui Ni (x,y) with Ui = displacement of the node i i
Ni = shape function of the node i
U(x,y) Displacement field
Displacements of the node
Figure 4.4-1: Displacement field in a finite element
72 4 Finite Elements and Element Matrices
Again: U(x,y) =
Ui Ni (x,y)
i
In node 1, it must be valid: U(x1 ,y1 ) = U1 · N1 (x1 ,y1 ) + U2 · N2 (x1 ,y1 ) + U3 · N3 (x1 ,y1 ) + U4 · N4 (x1 ,y1 ) = U1
This condition is fulfilled, when the “own” shape function N1(x1,y1) = 1 and the other shape functions N2(x1,y1) to N4(x1,y1) = 0! 9TH RULE OF FEA A shape function Ni has the basic property, that it is 1 in the node i and is 0 in all other nodes. What about the polynomial degree of the shape functions? With the basic property, to be 1 in “their” node and to be 0 in all other nodes, they must be interpolating, not approximating:
Figure 4.4-2: Polynomial degree of the shape functions
2 points:
y = c1 · x + c2 [y = a · x + b]
3 points:
4 points: y = c1 · x3 + c2 · x2 y = c1 · x + c2 · x + c3 + c3 · x + c4 2
“linear” “quadratic” “cubic”
Transferred to the FEA, this means: For 2 nodes per element side the shape functions (= displacement approaches) can only be linear, for 3 nodes per element side only quadratic and for 4 nodes per element side only cubic.
Examples
(Too primitive for Z88)
Torus No. 6
Figure 4.4-3: Examples for elements with linear shape functions in Z88
Hexahedron No. 1
4.4 Shape Functions 73
Plane stress element No. 3
Plane stress element No. 7
Hexahedron No. 10
Figure 4.4-4: Examples for elements with quadratic shape functions in Z88
Plane stress element No. 11
Torus No. 12
Plate No. 19
Figure 4.4-5: Examples for elements with cubic shape functions in Z88
The precise choice of the shape functions (which must be adequate to the basic property) is a matter for specialists. Partly complete polynomials are used, but also incomplete polynomials from which certain terms are cancelled. Experience, numerical stability and calculation expenditure loom large. Here you should not have great ambitions and leave this field to the mathematicians and the structural engineers specialized on FE applications. A good introduction into the problem is ensured by Schwarz /6/. Special element types are the elements of the Serendipity class. On this occasion, incomplete polynomial approaches are used, which are mathematically “criminal”. Surprisingly these elements work excellent in practice. They are named after the fairy tale “The Three Princes of Serendip” of a certain Horace Walpole. These princes had the talent to make unexpected and happy discoveries by chance, cf. Schwarz /6/. In the following the Serendipity shape functions and their partial derivations should be shown here for selected finite elements. They are principally taken from Zienkiewicz /1/ and Bathe /5/, whereby we have finally developed and partially differentiated them:
74 4 Finite Elements and Element Matrices
Figure 4.4-6: Curvilinear 10 node Serendipity tetrahedron with quadratic approach
H1 = 2r2 + 2s2 + 2t2 + 4rs + 4rt + 4st − 3r − 3s − 3t + 1 ∂H1 = 4r + 4s + 4t − 3 ∂r ∂H1 = 4s + 4r + 4t − 3 ∂s ∂H1 = 4t + 4r + 4s − 3 ∂t H2 = 2r2 − r ∂H2 = 4r − 1 ∂r ∂H2 =0 ∂s ∂H2 =0 ∂t H3 = 2s2 − s ∂H3 =0 ∂r ∂H3 = 4s − 1 ∂s ∂H3 =0 ∂t H4 = 2t2 − t ∂H4 =0 ∂r ∂H4 =0 ∂s ∂H4 = 4t − 1 ∂t
4.4 Shape Functions 75
H5 = 4r − 4r2 − 4rs − 4rt
∂H5 = 4 − 8r − 4s − 4t ∂r ∂H5 = −4r ∂s ∂H5 = −4r ∂t H6 = 4rs
H8 = 4rt
H9 = 4st
∂H6 = 4s ∂r ∂H6 = 4r ∂s ∂H6 =0 ∂t
∂H8 = 4t ∂r ∂H8 =0 ∂s ∂H8 = 4r ∂t
∂H9 =0 ∂r ∂H9 = 4t ∂s ∂H9 = 4s ∂t
H7 = 4s − 4sr − 4s2 − 4st ∂H7 = −4s ∂r ∂H7 = 4 − 4r − 8s − 4t ∂s ∂H7 = −4s ∂t H10 = 4t − 4tr − 4ts − 4t2 ∂H10 = −4t ∂r ∂H10 = −4t ∂s ∂H10 = 4 − 4r − 4s − 8t ∂t
Figure 4.4-7: Curvilinear 6 node Serendipity triangular plane stress element
76 4 Finite Elements and Element Matrices
H1 = 2r2 + 2s2 + 4rs − 3r − 3s + 1 ∂H1 = 4r + 4s − 3 , ∂r
∂H1 = 4s + 4r − 3 ∂s
H2 = 2r2 − r ∂H2 = 4r − 1 ∂r
∂H2 =0 ∂s
,
H3 = 2s2 − s ∂H3 =0 ∂r
∂H3 = 4s − 1 ∂s
,
H4 = 4r − 4r2 − 4rs ∂H4 = 4 − 8r − 4s ∂r
,
∂H4 = −4r ∂s
H5 = 4rs ∂H5 = 4s ∂r
∂H5 = 4r ∂s
,
H6 = 4s − 4rs − 4s2 ∂H6 = −4s ∂r
,
∂H6 = 4 − 4r − 8s ∂s
Figure 4.4-8: Curvilinear 20 node Serendipity hexahedron with quadratic approach
4.4 Shape Functions 77
To avoid writing mistakes and transmission errors, the approaches from the function SHEX88.C are directly illustrated. These are: h[i]:
The shape functions
p[ 1] – p[20]: The partial derivations of the shape functions with respect to r p[21] – p[40]: The partial derivations of the shape functions with respect to s p[41] – p[60]: The partial derivations of the shape functions with respect to t /* Setting the factors of the shape functions */ epr = 1. + (*r); emr = 1. - (*r); eps = 1. + (*s); ems = 1. - (*s); ept = 1. + (*t); emt = 1. - (*t); emrr= 1. - (*r) * (*r); emss= 1. - (*s) * (*s); emtt= 1. - (*t) * (*t); zrm = -2. * (*r); zsm = -2. * (*s); ztm = -2. * (*t); /* shape functions */ h[1 ]= .125*( epr*eps*ept
-emrr*eps*ept
-epr*emss*ept - epr*eps*emtt);
h[2 ]= .125*( emr*eps*ept
-emrr*eps*ept
-emr*emss*ept - emr*eps*emtt);
h[3 ]= .125*( emr*ems*ept
-emr*emss*ept
-emrr*ems*ept - emr*ems*emtt);
h[4 ]= .125*( epr*ems*ept
-emrr*ems*ept
-epr*emss*ept - epr*ems*emtt);
h[5 ]= .125*( epr*eps*emt
-emrr*eps*emt
-epr*emss*emt - epr*eps*emtt);
h[6 ]= .125*( emr*eps*emt
-emrr*eps*emt
-emr*emss*emt - emr*eps*emtt);
h[7 ]= .125*( emr*ems*emt
-emr*emss*emt -emrr*ems*emt - emr*ems*emtt);
h[8 ]= .125*( epr*ems*emt
-emrr*ems*emt -epr*emss*emt - epr*ems*emtt);
h[9 ]= .25 * emrr* eps * ept; h[10]= .25 * emr * emss* ept; h[11]= .25 * emrr* ems * ept; h[12]= .25 * epr * emss* ept; h[13]= .25 * emrr* eps * emt; h[14]= .25 * emr * emss* emt; h[15]= .25 * emrr* ems * emt; h[16]= .25 * epr * emss* emt; h[17]= .25 * epr * eps * emtt; h[18]= .25 * emr * eps * emtt; h[19]= .25 * emr * ems * emtt; h[20]= .25 * epr * ems * emtt;
78 4 Finite Elements and Element Matrices
/* Partial derivation of the shape functions with respect to r */ p[1]=
.125 *( eps*ept- zrm*eps*ept- emss*ept
- eps*emtt);
p[2]=
.125 *(-eps*ept- zrm*eps*ept+ emss*ept
+ eps*emtt);
p[3]=
.125 *(-ems*ept+ emss*ept
p[4]=
.125 *( ems*ept- zrm*ems*ept- emss*ept
- ems*emtt);
p[5]=
.125 *( eps*emt- zrm*eps*emt- emss*emt
- eps*emtt);
p[6]=
.125 *(-eps*emt- zrm*eps*emt+ emss*emt
+ eps*emtt);
p[7]=
.125 *(-ems*emt+ emss*emt
p[8]=
.125 *( ems*emt- zrm*ems*emt- emss*emt
p[9]=
.250 *( zrm*eps*ept);
p[10]= .250 *(-emss*ept
- zrm*ems*ept+ ems*emtt);
- zrm*ems*emt+ ems*emtt); - ems*emtt);
);
p[11]= .250 *( zrm*ems*ept); p[12]= .250 *( emss*ept
);
p[13]= .250 *( zrm*eps*emt); p[14]= .250 *(-emss*emt
);
p[15]= .250 *( zrm*ems*emt); p[16]= .250 *( emss*emt
);
p[17]= .250 *( eps*emtt
);
p[18]= .250 *(-eps*emtt
);
p[19]= .250 *(-ems*emtt
);
p[20]= .250 *( ems*emtt
);
/* Partial derivation of the shape functions with respect to s */ p[21]=
.125 *( epr*ept -emrr*ept
-epr*zsm*ept -epr*emtt);
p[22]=
.125 *( emr*ept -emrr*ept
-emr*zsm*ept -emr*emtt);
p[23]=
.125 *(-emr*ept -emr*zsm*ept +emrr*ept
p[24]=
.125 *(-epr*ept +emrr*ept
-epr*zsm*ept +epr*emtt);
p[25]=
.125 *( epr*emt -emrr*emt
-epr*zsm*emt -epr*emtt);
p[26]=
.125 *( emr*emt -emrr*emt
-emr*zsm*emt -emr*emtt);
p[27]=
.125 *(-emr*emt -emr*zsm*emt +emrr*emt
p[28]=
.125 *(-epr*emt +emrr*emt
p[29]=
.250 *( emrr*ept
);
p[30]= .250 *( emr*zsm*ept); p[31]= .250 *(-emrr*ept
);
p[32]= .250 *( epr*zsm*ept); p[33]= .250 *( emrr*emt
);
p[34]= .250 *( emr*zsm*emt); p[35]= .250 *(-emrr*emt
);
p[36]= .250 *( epr*zsm*emt); p[37]= .250 *( epr*emtt
);
p[38]= .250 *( emr*emtt
);
+emr*emtt);
+emr*emtt);
-epr*zsm*emt +epr*emtt);
4.4 Shape Functions 79
p[39]= .250 *(-emr*emtt
);
p[40]= .250 *(-epr*emtt
);
/* Partial derivation of the shape functions with respect to t */ p[41]=
.125 *( epr*eps -emrr*eps -epr*emss -epr*eps*ztm);
p[42]=
.125 *( emr*eps -emrr*eps -emr*emss -emr*eps*ztm);
p[43]=
.125 *( emr*ems -emr*emss -emrr*ems -emr*ems*ztm);
p[44]=
.125 *( epr*ems -emrr*ems -epr*emss -epr*ems*ztm);
p[45]=
.125 *(-epr*eps +emrr*eps +epr*emss -epr*eps*ztm);
p[46]=
.125 *(-emr*eps +emrr*eps +emr*emss -emr*eps*ztm);
p[47]=
.125 *(-emr*ems +emr*emss +emrr*ems -emr*ems*ztm);
p[48]=
.125 *(-epr*ems +emrr*ems +epr*emss -epr*ems*ztm);
p[49]=
.250 *( emrr*eps
);
p[50]= .250 *( emr*emss
);
p[51]= .250 *( emrr*ems
);
p[52]= .250 *( epr*emss
);
p[53]= .250 *(-emrr*eps
);
p[54]= .250 *(-emr*emss
);
p[55]= .250 *(-emrr*ems
);
p[56]= .250 *(-epr*emss
);
p[57]= .250 *( epr*eps*ztm); p[58]= .250 *( emr*eps*ztm); p[59]= .250 *( emr*ems*ztm); p[60]= .250 *( epr*ems*ztm);
Figure 4.4-9: Curvilinear 8 node Serendipity plane stress element with quadratic approach (Z88 type No. 7)
80 4 Finite Elements and Element Matrices
N1 = N2 = N3 = N4 = N5 =
1 (1 + r) (1 + s) − 4 1 (1 − r) (1 + s) − 4 1 (1 − r) (1 − s) − 4 1 (1 + r) (1 − s) − 4 1 1 − r2 (1 + s) 2
1 1 − r2 (1 + s) − 4 1 1 − r2 (1 + s) − 4 1 1 − s2 (1 − r) − 4 1 1 − r2 (1 − s) − 4
1 1 − s2 (1 + r) 4 1 1 − s2 (1 − r) 4 1 1 − r2 (1 − s) 4 1 1 − s2 (1 + r) 4
NN6 6 == 1 1 − s2 (1 − r)
2 1 NN7 7 == 2 1 NN8 8 == 2
1 − r2 (1 − s)
1 − s2 (1 + r)
To avoid writing mistakes and transmission errors, the approaches from the function SQSH88.C are illustrated directly. These functions are also valid for 8 node torus elements (Z88 type No. 8). These are: h[i]:
The shape functions
p[1] – p[ 8]: The partial derivations of the shape functions with respect to r p[9] – p[16]: The partial derivations of the shape functions with respect to s /* Setting the slamps of the shape functions */ rp= 1. + (*r); sp= 1. + (*s); rm= 1. - (*r); sm= 1. - (*s); rqm= 1. - (*r)*(*r); sqm= 1. - (*s)*(*s); r2= 2. * (*r); s2= 2. * (*s); /* Shape functions */ h[1]= .25 *(rp*sp - rqm*sp - sqm*rp); h[2]= .25 *(rm*sp - rqm*sp - sqm*rm); h[3]= .25 *(rm*sm - sqm*rm - rqm*sm); h[4]= .25 *(rp*sm - rqm*sm - sqm*rp); h[5]= .5 *rqm*sp; h[6]= .5 *sqm*rm; h[7]= .5 *rqm*sm; h[8]= .5 *sqm*rp; /* Partial derivation of the shape functions with respect to r */ p[1]= .25 *(sp + r2*sp -sqm);
4.5 Integration 81
p[2]= .25 *((-sp) + r2*sp + sqm); p[3]= .25 *((-sm) + sqm + r2*sm); p[4]= .25 *(sm + r2*sm - sqm); p[5]= .5 *(-r2)*sp; p[6]= (-.5 )*sqm; p[7]= .5 *(-r2)*sm; p[8]= .5 *sqm; /* Partial derivation of the shape functions with respect to s */ p[9] = .25 *(rp - rqm + s2*rp); p[10]= .25 *(rm - rqm + s2*rm); p[11]= .25 *((-rm) + s2*rm + rqm); p[12]= .25 *((-rp) + rqm + s2*rp); p[13]= .5 *rqm; p[14]= .5 *(-s2)*rm; p[15]= (-.5 )*rqm; p[16]= .5 *(-s2)*rp;
■■4.5 Integration Only the question of the numerical integration remains. Generally, this is done with a so-called Gauss-Legendre quadrature. There are also other numerical integration processes and certainly the so-called Newton Cotes formulas are surely known: Trapezoid rule and Simpson rule. Other numerical processes are the Gauss Laguerre integration, the Gauss Tschebyschew integration and the Gauss Hermite integration: +1 n f(x)dx ∼ wi f(xi ) =
Gauss-Legendre
∞
Gauss-Laguerre
−1
0
i=0
f(x)e−x dx ∼ =
n i=0
wi f(xi )
+1 n 1 f(x) √ dx ∼ wi f(xi ) Gauss-Tschebyschew = 1 − x2 i=0
−1
+1 n 2 f(x)e−x dx ∼ wi f(xi ) =
−1
Gauss-Hermite
i=0
Those who are interested in more detail, may consult Abramowitz/Stegun /12/ and Jedrzejewski /36/.
82 4 Finite Elements and Element Matrices
For isoparametric elements, the Gauss-Legendre quadrature has proven to be worthwhile. The following trick is used: The finite element is transformed internally by the program to a coordinate system r, s. r = (x − xc )/a dx dr = a s = (y − yc )/b dy ds = b
Figure 4.5-1:
Transformation of the finite element
Then the Gauss-Legendre quadrature formula is valid because it is only defined in the interval [−1, +1]: +1 n I = F (r) dr = αi · F (ri ) −1
1
besides, αi are the Gauss weights and ri are the Gauss nodes (these are the zeros of the Legendre polynomials). Table 4.5-1: Table for Gauss-Legendre integration of 1 to 4 bases per axis
Bases
Distances ri or si or Ti
Gauss weights αi
1
+0.00000.00000.00000
+2.00000.00000.00000
2
+0.57735.02691.89626
+1.00000.00000.00000
–0.57735.02691.89626
+1.00000.00000.00000
+0.77459.66692.41483
+0.55555.55555.55556
+0.00000.00000.00000
+0.88888.88888.88889
–0.77459.66692.41483
+0.55555.55555.55556
+0.86113.63115.94053
+0.34785.48451.37454
+0.33998.10435.84856
+0.65214.51548.62546
–0.33998.10435.84856
+0.65214.51548.62546
–0.86113.63115.94053
+0.34785.48451.37454
3
4
4.5 Integration 83
The numerical values of Table 4.5-1 can be used for curvilinear quadrangles (Z88 types No. 7, 8, 11 and 12) and for curvilinear hexahedrons (Z88 types No. 10 and 1). The values are taken from Bathe /5/. The following Gauss-Legendre formula is valid for the 2-dimensional case: I=
+1 +1
F(r,s) dr ds =
i
−1 −1
αi αj F(ri ,sj )
j
The following Gauss-Legendre formula is valid for the 3-dimensional case: +1+1+1 I= F(r,s,t) dr ds dt = αi αj αk F(ri ,sj ,tk ) i
−1 −1 −1
j
k
Analogous it is valid for triangles I=
+1 +1 0
F(r,s) dr ds =
0
1 αi F(ri ,si ) 2 i
The numerical values of Table 4.5-2 can be used for curvilinear triangles (Z88 types No. 14 and 15). The values are basically taken from Bathe /5/. For tetrahedrons, the equations and numerical values are usually given in so-called tetrahedron coordinates in the literature /1/, /4/. It is easier to proceed as follows: I=
+1+1+1 1 F(r,s,t) dr ds dt = αi F(ri ,si ,ti ) 6 i 0
0
0
Table 4.5-2: For Gauss-Legendre integration of bases 3, 7 and 13
Bases
ri
si
αi
3
+0.16666.66666.667
+0.16666.66666.667
+0.33333.33333.333
+0.66666.66666.667
+0.16666.66666.667
+0.33333.33333.333
+0.16666.66666.667
+0.66666.66666.667
+0.33333.33333.333
+0.10128.65073.235
+0.10128.65073.235
+0.12593.91805.448
+0.79742.69853.531
+0.10128.65073.235
+0.12593.91805.448
+0.10128.65073.235
+0.79742.69853.531
+0.12593.91805.448
+0.47014.20641.051
+0.05971.58717.898
+0.13239.41527.885
+0.47014.20641.051
+0.47014.20641.051
+0.13239.41527.885
+0.05971.58717.898
+0.47014.20641.051
+0.13239.41527.885
+0.33333.33333.333
+0.33333.33333.333
+0.22500.00000.000
+0.06513.01029.022
+0.06513.01029.022
+0.05334.72356.088
+0.86973.97941.956
+0.06513.01029.022
+0.05334.72356.088
+0.06513.01029.022
+0.86973.97941.956
+0.05334.72356.088
+0.31286.54960.049
+0.04869.03154.253
+0.07711.37608.903
7
13
84 4 Finite Elements and Element Matrices
Bases
ri
si
αi
+0.63844.41885.698
+0.31286.54960.049
+0.07711.37608.903
+0.04869.03154.253
+0.63844.41885.698
+0.07711.37608.903
+0.63844.41885.698
+0.04869.03154.253
+0.07711.37608.903
+0.31286.54960.049
+0.63844.41885.698
+0.07711.37608.903
+0.04869.03154.253
+0.31286.54960.049
+0.07711.37608.903
+0.26034.59660.790
+0.26034.59660.790
+0.17561.52574.332
+0.47930.80678.419
+0.26034.59660.790
+0.17561.52574.332
+0.26034.59660.790
+0.47930.80678.419
+0.17561.52574.332
+0.33333.33333.333
+0.33333.33333.333
–0.14957.00444.677
Table 4.5-3: For Gauss-Legendre integration of bases 1, 4 and 5
Bases
ri
si
ti
αi
1
+0.25000.000
+0.25000.000
+0.25000.000
+1.00000.000
4
+0.58541.020
+0.13819.660
+0.13819.660
+0.25000.000
+0.13819.660
+0.58541.020
+0.13819.660
+0.25000.000
+0.13819.660
+0.13819.660
+0.58541.020
+0.25000.000
+0.13819.660
+0.13819.660
+0.13819.660
+0.25000.000
+0.25000.000
+0.25000.000
+0.25000.000
–0.80000.000
+0.50000.000
+0.16666.667
+0.16666.667
+0.45000.000
+0.16666.667
+0.50000.000
+0.16666.667
+0.45000.000
+0.16666.667
+0.16666.667
+0.50000.000
+0.45000.000
+0.16666.667
+0.16666.667
+0.16666.667
+0.45000.000
5
The numerical values in Table 4.5-3 can be used for curvilinear tetrahedrons (Z88 types No. 16 and 17). The values are basically taken from Zienciewicz /1/. To be able to finally set up the element stiffness matrix, we must set up, as everybody knows, the strain displacement transformation matrix B. As we are forced by the Gauss-Legendre quadrature to work in so-called “natural” coordinates r, s, t, we must suitably convert. Just as it is valid: u= Ni ui , v = N i vi , w = Ni wi i
i
i
all coordinates can also be interpolated in every point of an element: x= Ni xi , y = Ni y i , z = N i zi i
i
i
with i = node index. This means: x, y, z are a function of r, s, t: x = f1 (r,s,t)
, y = f2 (r,s,t)
, z = f3 (r,s,t)
4.5 Integration 85
For B, we require the partial derivations ∂Ni /∂x, ∂Ni /∂y and ∂Ni /∂z .
The chain rule of the differential calculus proves: ∂ ∂ ∂x ∂ ∂y ∂ ∂z = + + ∂r ∂x ∂r ∂y ∂r ∂z ∂r ∂ ∂x ∂ ∂y ∂ ∂z ∂ = + + ∂s ∂x ∂s ∂y ∂s ∂z ∂s ∂ ∂ ∂x ∂ ∂y ∂ ∂z = + + ∂t ∂x ∂t ∂y ∂t ∂z ∂t
If we write this equation in matrix form, it originates: ∂ ∂x ∂y ∂z ∂ ∂r ∂r ∂ ∂x = ∂s ∂s ∂ ∂x ∂t ∂t
∂r ∂y ∂s ∂y ∂t
∂r ∂z ∂s ∂z ∂t
∂x ∂ = ∂y ∂ ∂z
or in symbolic matrix notation: ∂ ∂ =J· ∂r ∂x
Besides, J is the so-called Jacobi matrix (or short Jacobian). It features the relation natural coordinates/Cartesian coordinates. It specifically arises for the Jacobi matrix: ∂Ni xi ∂r ∂Ni J= xi ∂s ∂N i xi ∂t
∂Ni yi ∂r ∂Ni yi ∂s ∂Ni yi ∂t
∂Ni zi ∂r ∂Ni zi ∂s ∂Ni zi ∂t
∂ ∂ −1 As we need ∂Ni /∂x, ∂Ni /∂y and ∂Ni /∂z for B, the following arises: ∂x = J · ∂r
We require the inverse Jacobi matrix for the conversion. Normally it exists if there is a biunique relation between the natural coordinates r, s, t and the Cartesian coordinates x, y, z. This is always the case if the elements are properly numbered, i.e., after the respective element definition, and if they are not distorted too much. One also speaks of degenerated elements. To avoid such disasters (as practically all FE programs crash if they ascertain a singular Jacobi matrix), there is a practice-proven rule of thumb: Quadrangle elements should be very square and triangular elements should be very equilateral. Of course this is not always possible, and, indeed, it is tremendously practical that, e.g., 8 node Serendipity quadrangles (Z88 type plane stress elements No. 7) can accept a nice curvilinear form.
86 4 Finite Elements and Element Matrices
But those things must be avoided:
Figure 4.5-2: Angle between two sides must be < 180 °
Figure 4.5-3: “Folded” element
Figure 4.5-4: Connection without special elements not possible
Figure 4.5-5: Element is changed in its form by too strong deformation
4.5 Integration 87
Figure 4.5-6: Wrong numbering sense – clockwise. Z88 plane stress element No. 7 must be numbered counterclockwise.
Because it should be determined: dV K= K BBTTCC BB dV V
it must still be considered that the coefficients of B are functions of r, s, t. Hence: dV = det J dr ds dt Besides, det J is the Jacobi determinant. This is the substitution rule known from higher mathematics for multiple integrals. It is valid for the calculation of an integral in any coordinates r, s, t which are defined by x = x (r,s,t) , y = y (r,s,t) , z = z (r,s,t) The decomposition of the integration area in volume elements by the coordinate surfaces r = const , s = const , t = const brings: dV = det J dr ds dt
For further details, see appropriate mathematical literature, e.g. Stöcker /13/. With it, our source formula is in the plane case: +1+1 e T K = B C B dx dy = BT (r,s) C B(r,s) det J(r,s) dr ds ≈ A
ns nr
−1 −1
αi αj BT (ri ,sj ) C B(ri ,sj ) det J(ri ,sj )
i=1 j=1
or in the 3-dimensional case: +1+1+1 e T K = B C B dx dy dz = BT (r,s,t) C B(r,s,t) det J(r,s,t) dr ds dt ≈ V
ns nt nr i=1 j=1 k=1
−1 −1 −1
αi αj αk BT (ri ,sj ,tk ) C B(ri ,sj ,tk ) det J(ri ,sj ,tk )
88 4 Finite Elements and Element Matrices
■■4.6 The
Application of Loads, Load Vectors
4.6.1 The Basic Procedure The element stiffness matrix is: K= BT C B dV V
Quite logically the mass matrix is: M=
ρ NT N dV
V
And the different loads are: RB = NT · fB · dV “Volume forces” V
RS =
RI =
S
NT · q · dS
“Surface forces”
BT · σI · dV
V
“Initial stresses”
Now the surface forces, more exactly the distributed loads, should be considered exemplarily: RS =
S
with q =
NT · q dS =
qx qy
S
NT · q · dx dy
distributed loads
If the following load case (cf. Figure 4.6-1) should be assumed: We lay both coordinate systems, i.e. the Cartesian coordinates x, y and the natural coordinates r, s on top of each other, i.e. x = r and y = s this makes the consideration a little easier, because this way we can spare the calculation of the Jacobi determinant.
4.6 The Application of Loads, Load Vectors 89
. Figure 4.6-1: Example of a distributed load
Moreover, it is qx qy
q=
=
q0 0
Hence: RS = q
q0 = const.
NT dx dy
A
and written out: RS = N3 0
0 N3
0 0
0 0
q0 0
+1 +1 0 0 · 0 0 −1 −1
0 0
0 0
N6 0
0 N6
N2 0
0 N2
0 0
0 0
N3 0 0 0
0 0
0 N3
0 0
0 0
0 0
TT dx dy dx dy
and here dx dy = dr ds. The shape functions for the plane stress element with 8 nodes are: 1 1 1 N2 = (1 − r) (1 + s) − 1 − r2 (1 + s) − 1 − s2 (1 − r) 4 4 4
N3 = 14 (1)(1) − N6 =
1 4
(1 − s2 ) (1 − r) − 14 (1 − r2 ) (1 − s)
1 1 − s2 (1 − r) 2
because both coordinate systems are congruent: node 2: 1 1 1 (1 − x) (1 + y) − 1 − x2 (1 + y) − 1 − y2 (1 − x) 4 4 4 1 2 with x = –1: N2 = (y + y ) 2 N2 =
0 0
N6 0
0 N6
0 0
0 0
0 0
0 0
T
dx
90 4 Finite Elements and Element Matrices
Hence, the load component in node 2 is: F2 = q0
1 1 − 2 3
= q0
1 3
+1 +1 1 N2 dy = q0 y + y2 dy 2
−1
= q0
1 2
F2 = q0
−1
3 +1
2
y y + 2 3
= q0
−1
1 2
1 1 + − 2 3
1 1 − 2 3
= q0
1 3
+1 +1 1 N2 dy = q0 y + y2 dy 2
−1
−1
node 6: N6 =
1 1 − y2 (1 − x) 2
with x = –1: N6 = 1 − y2
Hence, the load component in node 6 is:
= q0
+1 +1 +1 +1 2 F6 = q0 F6 = N6q0dy = Nq60 dy =1q− 1dy− y2 dy 0 y −1
−1
−1
−1
3 +1 1 y 1 4 y 1 = q10 = q0 4 y= − q0 y −= q0 1=−q0 −1 −−1 + − −1 + 3 3 3 −1 3 3 3 3 3 −1 3 +1
And in node 3 it is valid: N3 =
1 1 1 (1 − x) (1 − y) − 1 − y2 (1 − x) − 1 − x2 (1 − y) 4 4 4
with x = –1: N3 =
1 2 y −y 2
Hence, the load component in node 3 is: +1 +1 2 +1 +1 1 N3 dy = q0 y − 1y dy 2 F3 = q0 N23 dy = q0 y − y dy 2 −1 −1 −1 −1 3 2 +1 y 3 1 y 1+11 1 1 1 1 2 =1 q0 1 − − − 1 y = q0y = q0 · 1 − 1 −1 1 3− 2− − − 3 2 3= q0 2 ·−1 − 2 3= q20 = q0 2 3 2 −1 2 3 2 3 2 3 F3 = q0
Because the element runs from −1 to +1 for y, its side length is 2 to which the uniformly distributed load q0 is applied to and it originates: Final load components: Node 2:
q0 ·
1 1 : 2 = q0 · = F2 3 6
4.6 The Application of Loads, Load Vectors 91
4
2
Node 6: q0 · 3 : 2 = q0 · 3 = F6 q0 ·
Node 3:
1 1 : 2 = q0 · = F3 3 6
With this, the rule is derived, that with plane elements with quadratic approach with uniformly distributed load q0 the corner nodes take 1/6 of the load and the centre node 2/3 of the load. Indeed, it is: 1/6 + 2/3 + 1/6 = 1. In the same way, uniformly distributed load distribution, surface load distribution etc. for elements with quadratic approach, with cubic approach etc. are derived. But also triangular loads or generally q = f (x, y) are possible. Then q must remain with the integrands, and, as with the element stiffness matrix, it has to be integrated numerically and the Jacobi determinant must be considered accordingly to dA = dx dy = det J dr ds
4.6.2 Plate Elements Here it shall be exemplarily shown how surface loads are inserted on plates. The surface load vector or element vector is: RS = NT · q dS = NT · q · dx dy S
S
In the element stiffness routine, the shape functions must be calculated for all integration points ri, sj, cf. the function AB88 in the routine APLA88.C for 8 node Serendipity Reissner Mindlin plates: /*---------------------------------------------------------------------* Developing the shape functions for the load vector be *---------------------------------------------------------------------*/ for(i = 1;i <= 24;i++) hi[i]= 0.; k3= 1; for(k = 1;k <= 8;k++) { hi[k3]= h[k]; k3+= 3;
} In the main loop the element vector be is calculated with this; hereby are lx:
Counter for r
92 4 Finite Elements and Element Matrices
Counter for s
ly:
riyye: Surface load intore: Integration order for(lx = 1;lx <= intore;lx++) { r= xg[(lx-1)*4 + intore]; for(ly = 1;ly <= intore;ly++) { s= xg[(ly-1)*4 + intore]; /*====================================================================== * Getting matrix B of the partial derivations & Jacobi determinant *=====================================================================*/ iret= ab88(&det,&r,&s); if(iret != 0) return(iret); wt= wgt[(lx-1)*4 + intore] * wgt[(ly-1)*4 + intore] * det; /*====================================================================== * element load vector be *=====================================================================*/ for(j = 1;j <= 24;j++) { be[j]+= hi[j]*wt*riyye; } /*====================================================================== * Start stiffness matrix *=====================================================================*/ ...
During the compilation process, the element vector be is included, cf. routine Z88BR.C; besides, rs is the vector of the right side and ne is the number of the finite elements: for(k= 1;k <= ne;k++) { ... /*---------------------------------------------------------------------* for plates add the element vector *---------------------------------------------------------------------*/ if(ipflag != 0) { ise= 0; for(i = 1;i <= mxknot;i++) { for(i2 = 1;i2 <= mxfrei;i2++) {
4.6 The Application of Loads, Load Vectors 93
ise++; mcompi= mcomp[i]+i2; rs[mcompi] += be[ise]; } } } /*********************************************************************** * End of the loop over all elements ***********************************************************************/ }
4.6.3 Volume Elements This is by far the most complex case. With plate elements we face the problem, that we first have to describe the surfaces, which suffer surface loads. As surface loads in space, the following can appear: p pressure tr tangential shear in (local) r direction ts tangential shear in (local) s direction With this, the surface load vector is p q = tr ts
Consistently, the following must be defined somewhere for the calculation (for Z88 this is the file Z88I5.TXT): The volume element by the element number The surface of the volume element by the respective nodes The components of the surface load vector First we will do the consideration only for pressures, afterwards the derivation for the consideration of tangential shear. Needless to say that the shape functions of the 20-node hexahedron cannot be used here, but those which correspond to a surface element with 8 nodes can be used, so:
94 4 Finite Elements and Element Matrices
N1 N1 N2 N2 N3 N3 N4 N4 N5 N5 N6 N6 N7 N7 N8 N8
= = = = = = = = = = = = = = = =
1 (1 + r) (1 + s) − 1 4 1 (1 + r) (1 + s) − 4 (1 − r) (1 + s) − 1 4 (1 − r) (1 + s) − 1 4 (1 − r) (1 − s) − 1 4 (1 − r) (1 − s) − 1 4 (1 + r) (1 − s) − 1 4 (1 + r) (1 − s) − 1 4 1 − r2 (1 + s) 1 2 2 1 1 − r 2 (1 + s) 2 1 − s (1 − r) 1 2 2 1 1 − s2 (1 − r) 2 1 − r (1 − s) 1 2 1 − r2 (1 − s) 1 2 1 − s2 (1 + r) 1 2 1 − s2 (1 + r) 2
1 1 − r2 (1 + s) − 1 4 1 − r2 (1 + s) − 1 4 1 − r2 (1 + s) − 1 4 1 − r2 (1 + s) − 1 4 1 − s2 (1 − r) − 1 4 1 − s2 (1 − r) − 1 4 1 − r2 (1 − s) − 1 4 1 − r2 (1 − s) − 4
1 1 − s2 (1 + r) 1 4 2 1 1 − s2 (1 + r) 4 1 − s (1 − r) 1 4 1 − s2 (1 − r) 1 4 1 − r2 (1 − s) 1 4 1 − r2 (1 − s) 1 4 1 − s2 (1 + r) 1 4 1 − s2 (1 + r) 4
These are the shape functions for curvilinear 8 nodes Serendipity plane stress elements with quadratic approach, cf. chapter 4.4. Figure 4.6-2 shows a 20-node hexahedron, which surface suffers from pressure. Here it is the surface, which is defined by the nodes 1-2-3-4-5-6-7-8. This information must be communicated to the FE program, because a hexahedron has a total of six surfaces ( whereas several surfaces of a hexahedron could be pressure-loaded – think of a hexahedron which sits on a corner of a component). For the rest, contrary to the standard definitions in numerous FE sources, we will count such pressures positively, which will have an effect on the surface, i.e. the normal vector points to the hexahedron inside. This corresponds to the “usual” thinking of the engineer.
Figure 4.6-2:
Pressure on the surface of a volume element
The components of the surface load vector q are also vectors. Thus the absolute value p of the pressure p can be constant according to Figure 4.5-2, but the direction is depending on the
4.6 The Application of Loads, Load Vectors 95
respective place in the surface. Hence, the absolute value of the pressure must be multiplied by the unit normal vector a. For further considerations tr and ts are first 0. So that: p=p·a
The unit normal vector a is a=
1 A |A|
∂x∂x ∂x∂x × : A= A= × and the normal vector A is the cross product from the direction derivations and ∂s ∂s ∂r ∂r ∂x ∂x × A= ∂s ∂r
With this, the load vector for pressure admission for node i is: 1 qpi = NTi · p · ds with p = p · a and a = A |A|
S
∂x ∂s ∂x ∂y ∂x ∂x × A = and ∂r ∂s ∂s ∂r ∂z ∂s
∂x ∂x A = ∂x ×= With ∂s ∂s ∂r
∂x ∂Ni = xi ∂s ∂s i
∂y ∂Ni = yi ∂s ∂s i
∂x ∂Ni = xi ∂r ∂r i
, ,
∂y ∂Ni = yi ∂r ∂r i
=
∂x ∂r ∂y ∂r ∂z ∂r
as well as
,
,
∂z ∂Ni = zi ∂s ∂s i
A becomes ∂Ni ∂Ni ∂Ni ∂Ni · − y z yi · zi i i ∂r ∂r ∂s i ∂s i i i ∂Ni ∂Ni ∂Ni ∂Ni zi · xi − zi · xi A= ∂s ∂r ∂r ∂s i i i i ∂N ∂Ni ∂Ni ∂Ni i i
∂s
xi ·
i
∂r
yi −
i
∂r
xi ·
i
∂s
,
∂z ∂Ni = zi ∂r ∂r i
yi
1 A · dx dy | A | S T 1 p Ni · p · A · det J · dr ds , because dx dy = det J · dr ds or in curvilinear coordinates qi = |A| S p So that qi =
NTi · p ·
The Jacobi determinant is the surface ratio of the surface element in the X/Y system to the surface element in the r/s system. The absolute value of the normal vector is the surface, which is spanned by the tangent vectors ∂x∂x ∂x∂x × A= A= × and ∂s ∂s ∂r ∂r
96 4 Finite Elements and Element Matrices
With it, qpi
=
1 cancels itself with det J and the following remains: |A|
S
NTi · p · A · dr ds
and with constant pressure p: qpi = p · NTi · A · dr ds S
The tangential shear tr (or ts) is calculated as follows: s
3
Y
ts 4
7 x s
6 x r
A
tr
r
dS
2 5
8 1
X
Z
Figure 4.6-3: Tangential shear in r and s direction in a volume element
∂x ∂x and in the point (x,y,z) are: ∂s ∂r ∂Ni xi i ∂r 2 2 2 ∂Ni ∂Ni ∂Ni xi + yi + zi ∂r ∂r ∂r i i i ∂Ni yi ∂r i 2 2 2 ∂Ni ∂Ni ∂Ni xi + yi + zi i ∂r i ∂r i ∂r ∂Ni zi i ∂r 2 2 2 ∂Ni ∂Ni ∂Ni xi + yi + zi ∂r ∂r ∂r i i i
The standardized tangent vectors
∂x = ∂r
4.6 The Application of Loads, Load Vectors 97
∂Ni xi i ∂s 2 2 2 ∂Ni ∂Ni ∂Ni xi + yi + zi i ∂s i ∂s i ∂s
∂Ni yi i ∂s ∂x = 2 2 2 ∂s ∂Ni ∂Ni ∂Ni + + x y z i i i i ∂s i ∂s i ∂s ∂Ni zi i ∂s 2 2 2 ∂Ni ∂Ni ∂Ni xi + yi + zi i ∂s i ∂s i ∂s
Pay attention to the Jacobi determinant: The volume element itself is located in the space, the tangential vectors, however, are available in the plane r-s. The Jacobi determinant cannot be defined between space and surface, but only between space/space or surface/surface. If, however, we visualize that the Jacobi determinant is the surface ratio or space ratio between both respective coordinate systems, then the Jacobi determinant is the surface, which is ∂x ∂x and . And this is the length of the normal vector between spanned by the tangent vectors ∂s ∂r the tangent vectors: ∂Ni ∂Ni ∂Ni ∂Ni yi · zi − yi · zi Ax = ∂s ∂r ∂r ∂s i i i i ∂Ni ∂Ni ∂Ni ∂Ni zi · xi − zi · xi Ay = ∂s ∂r ∂r ∂s i i i i ∂Ni ∂Ni ∂Ni ∂Ni xi · yi − xi · yi Az = ∂s ∂r ∂r ∂s i i i i det J = A2x + A2y + A2z
With this, the load vector for the tangential shear in r direction is: ∂x qtir = NTi · · tr · det J · dr ds ∂r S
or with constant absolute value tr of the tangential shear in r direction:
qtir
= tr ·
NTi
S
∂x · · det J · dr ds ∂r
for a constant absolute value ts of the tangential shear in s direction it originates:
qtis
= ts ·
S
NTi
∂x · · det J · dr ds ∂s
98 4 Finite Elements and Element Matrices
Below you can find the matching element load vector routine BHEXA88.C listed; with it, the theoretical explanations cited on top should finally become clear: /*********************************************************************** * this compiler unit encloses: bhexa88 - Load vector routine Ele 10 *
bhb88
- Shape functions and derivations
* 25.8.2011 Rieg ***********************************************************************/ /*********************************************************************** * For Windows ***********************************************************************/ #ifdef FR_WIN #include #include #include #endif /*********************************************************************** *
Functions
***********************************************************************/ int bhb88(FR_DOUBLE *,FR_DOUBLE *,FR_DOUBLE *); /*********************************************************************** * here Function bhexa88 begins ***********************************************************************/ int bhexa88(void) { extern FR_DOUBLE xk[],yk[],zk[]; extern FR_DOUBLE be[],hi[],hj[],hk[]; extern FR_DOUBLE pree,tr1e,tr2e; extern FR_INT4
intore;
FR_DOUBLE
det,r,s,wt;
FR_INT4
i,lx,ly,j;
/*---------------------------------------------------------------------* Gauss-Legendre sampling points *---------------------------------------------------------------------*/ static FR_DOUBLE xg[17]= { 0.,
4.6 The Application of Loads, Load Vectors 99
0., -.5773502691896, -.7745966692415, -.8611363115941, 0., +.5773502691896,
0., -.3399810435849,
0.,
0., +.7745966692415, +.3399810435849,
0.,
0.,
0., +.8611363115941 };
/*---------------------------------------------------------------------* Gauss-Legendre integration weights *---------------------------------------------------------------------*/ static FR_DOUBLE wgt[17]= { 0., 2.,
1., +.5555555555556, +.3478548451375,
0.,
1., +.8888888888889, +.6521451548625,
0.,
0., +.5555555555556, +.6521451548625,
0.,
0.,
0., +.3478548451375 };
/*---------------------------------------------------------------------* Putting up the element load vector *---------------------------------------------------------------------*/ for(i = 1;i <= 24;i++) be[i]= 0.; for(lx = 1;lx <= intore;lx++) { r= xg[(lx-1)*4 + intore]; for(ly = 1;ly <= intore;ly++) { s= xg[(ly-1)*4 + intore]; /*====================================================================== * Matrix B of the partial derivations, load vector be *=====================================================================*/ bhb88(&det,&r,&s); wt= wgt[(lx-1)*4 + intore] * wgt[(ly-1)*4 + intore]; for(j = 1;j <= 24;j++) { be[j]+= hi[j]*wt*pree+hj[j]*wt*det*(-tr1e)+hk[j]*wt*det*(-tr2e); } } } return(0); }
100 4 Finite Elements and Element Matrices
/*********************************************************************** * here Function bhb88 begins ***********************************************************************/ int bhb88(FR_DOUBLE *det,FR_DOUBLE *r,FR_DOUBLE *s) { extern FR_DOUBLE h[],hi[],hj[],hk[],p[],xk[],yk[],zk[]; FR_DOUBLE rp,sp,rm,sm,rqm,sqm,r2,s2; FR_DOUBLE sx,sy,sz,sx1,sx2,sx3,sx4,sy1,sy2,sy3,sy4,sz1,sz2,sz3,sz4; FR_DOUBLE ax,ay,az,bx,by,bz; FR_INT4 i,k; /*---------------------------------------------------------------------* Setting the brackets of the shape functions *---------------------------------------------------------------------*/ rp= 1. + (*r); sp= 1. + (*s); rm= 1. - (*r); sm= 1. - (*s); rqm= 1. - (*r)*(*r); sqm= 1. - (*s)*(*s); r2= 2. * (*r); s2= 2. * (*s); /*---------------------------------------------------------------------* Shape functions *---------------------------------------------------------------------*/ h[1]= .25 *(rp*sp - rqm*sp - sqm*rp); h[2]= .25 *(rm*sp - rqm*sp - sqm*rm); h[3]= .25 *(rm*sm - sqm*rm - rqm*sm); h[4]= .25 *(rp*sm - rqm*sm - sqm*rp); h[5]= .5 *rqm*sp; h[6]= .5 *sqm*rm; h[7]= .5 *rqm*sm; h[8]= .5 *sqm*rp; /*---------------------------------------------------------------------* Partial derivation of the shape functions with respect to r *---------------------------------------------------------------------*/
4.6 The Application of Loads, Load Vectors 101
p[1]= .25 *(sp + r2*sp -sqm); p[2]= .25 *((-sp) + r2*sp + sqm); p[3]= .25 *((-sm) + sqm + r2*sm); p[4]= .25 *(sm + r2*sm - sqm); p[5]= .5 *(-r2)*sp; p[6]= (-.5 )*sqm; p[7]= .5 *(-r2)*sm; p[8]= .5 *sqm; /*---------------------------------------------------------------------* Partial derivation of the shape functions with respect to s *---------------------------------------------------------------------*/ p[9] = .25 *(rp - rqm + s2*rp); p[10]= .25 *(rm - rqm + s2*rm); p[11]= .25 *((-rm) + s2*rm + rqm); p[12]= .25 *((-rp) + rqm + s2*rp); p[13]= .5 *rqm; p[14]= .5 *(-s2)*rm; p[15]= (-.5 )*rqm; p[16]= .5 *(-s2)*rp; /*---------------------------------------------------------------------* Developing of the shape functions for the load vector be *---------------------------------------------------------------------*/ /*---------------------------------------------------------------------* Developing the normal vector in the point (x,y,z) *---------------------------------------------------------------------*/ sx1=0.; sx2=0.; sx3=0.; sx4=0.; sy1=0.; sy2=0.; sy3=0.; sy4=0.; sz1=0.; sz2=0.; sz3=0.; sz4=0.; for(k = 1;k <= 8;k++)
102 4 Finite Elements and Element Matrices
{ sx1+= p[8+k]*yk[k]; sx2+= p[k
]*zk[k];
sx3+= p[k
]*yk[k];
sx4+= p[8+k]*zk[k]; sy1+= p[8+k]*zk[k]; sy2+= p[k
]*xk[k];
sy3+= p[k
]*zk[k];
sy4+= p[8+k]*xk[k]; sz1+= p[8+k]*xk[k]; sz2+= p[k
]*yk[k];
sz3+= p[k
]*xk[k];
sz4+= p[8+k]*yk[k]; } sx= sx1*sx2-sx3*sx4;
/* Normal vector */
sy= sy1*sy2-sy3*sy4; sz= sz1*sz2-sz3*sz4; /*---------------------------------------------------------------------* The normal vector would normally have to be standardized, i.e. divided * by its * length. For the integration, the length of the normal vector *
as a surface element (as a Jacobi-Det.) comes again
*, in addition, so that both cancel mutually. *---------------------------------------------------------------------*/ /*---------------------------------------------------------------------* Developing and standardizing the tangent vector r in the * point (x,y,z) *---------------------------------------------------------------------*/ bx= sy2/FR_SQRT(sy2*sy2 + sx3*sx3 + sy3*sy3);
/* dx/dr = bx = sy2 */
by= sx3/FR_SQRT(sy2*sy2 + sx3*sx3 + sy3*sy3);
/* dx/dr = by = sx3 */
bz= sy3/FR_SQRT(sy2*sy2 + sx3*sx3 + sy3*sy3);
/* dx/dr = bz = sy3 */
/*---------------------------------------------------------------------* Developing and standardizing the tangent vector s * in the point (x,y,z) *---------------------------------------------------------------------*/ ax= sz1/FR_SQRT(sz1*sz1 + sz4*sz4 + sx4*sx4);
/* dx/ds = ax = sz1 */
4.6 The Application of Loads, Load Vectors 103
ay= sz4/FR_SQRT(sz1*sz1 + sz4*sz4 + sx4*sx4);
/* dx/ds = ay = sz4 */
az= sx4/FR_SQRT(sz1*sz1 + sz4*sz4 + sx4*sx4);
/* dx/ds = az = sx4 */
/*---------------------------------------------------------------------* Developing the „Jacobi determinant“ in the point (x,y,z) for * the tangent vectors r and s *---------------------------------------------------------------------*/ (*det)= FR_SQRT(sx*sx + sy*sy + sz*sz); /*---------------------------------------------------------------------* Developing of the shape functions for the load vector be *---------------------------------------------------------------------*/ for(i = 1;i <= 24;i++) { hi[i]= 0.; hj[i]= 0.; hk[i]= 0.; } for(k = 1;k <= 8;k++) { hi[(k-1)*3+1]= h[k]*sx; hi[(k-1)*3+2]= h[k]*sy; hi[(k-1)*3+3]= h[k]*sz; } for(k = 1;k <= 8;k++) { hj[(k-1)*3+1]= h[k]*bx; hj[(k-1)*3+2]= h[k]*by; hj[(k-1)*3+3]= h[k]*bz; } for(k = 1;k <= 8;k++) { hk[(k-1)*3+1]= h[k]*ax; hk[(k-1)*3+2]= h[k]*ay; hk[(k-1)*3+3]= h[k]*az; } return(0);
}
104 4 Finite Elements and Element Matrices
With hexahedrons with 8 nodes (four per surface) you precede logically, but as shape functions for the surface, cf. Figure 4.6-4:
3
s
Y
p x s
4
r
dS x r
ts
2
A tr 1
X
Z Figure 4.6-4: Surface loads with an 8-node hexahedron
1 (1 + r) (1 + s) 4 1 N2 = (1 − r) (1 + s) 4 1 N3 = (1 − r) (1 − s) 4 1 N4 = (1 + r) (1 − s) 4 N1 =
4.6.4 Plane and Axial-Symmetrical State of Stress Here the surface load vector, more precise the distributed load vector, can have an effect on an element edge, namely vertical and/or tangential. Here the shape functions, which have an effect on the element edge, must be used. The “normal” shape functions of the plane element should not be used under any circumstances. In case of a plane Serendipity element with quadratic approach, Figure 4.6-5, these are the following shape functions:
4.6 The Application of Loads, Load Vectors 105
Y x s s
1
p 3
tr
A dS 2
r
x r
X
Figure 4.6-5: Distributed loads with a plane 8 node Serendipity element
N1 =
1 2
(s2 + s) , N2 =
1 2
(s2 − s) , N3 = 1 − s2
With it, the components are first calculated for the pressure portion p of the load vector: p
h1 = N1 ·
∂Ni ∂s
i
p
h3 = N 2 ·
∂Ni ∂s
i
p
h5 = N 3 ·
∂Ni ∂s
i
p
yi , h2 = N1 · −
∂Ni i
p
yi , h4 = N2 · −
∂Ni i
p
yi , h6 = N3 · −
∂s
∂s
∂Ni i
∂s
xi xi xi
And the components for the tangential portion tr of the load vector are: ht1r = N1 · −
∂Ni i
ht3r = N2 · −
∂Ni i
ht5r = N3 · −
∂s ∂s
∂Ni i
∂s
xi ,
ht2r = N1 · −
∂Ni i
xi ,
ht4r = N2 · −
∂Ni i
xi ,
ht6r = N3 · −
∂s ∂s
∂Ni i
∂s
yi yi yi
With it, the load vector q for six degrees of freedom i, whereas p and tr are the absolute values of the load vector components and whereas it is integrated over the curve S, i.e. edge, is: qi = (p · hpi + tr · htir ) ds S
Please take the exact program-technical conversion from the element load vector routine for level 8 nodes Serendipity elements BQSHE88.C. By the way, the Jacobi determinant is here cancelled again with the length of the normal vector A. In case of a plane Serendipity element with cubic approach, Figure 4.6-6, these are the following shape functions:
106 4 Finite Elements and Element Matrices
Y
1
x s s
p
3 dS
tr
A
4
2 r
x r
X
Figure 4.6-6: Distributed loads with a 12 node Serendipity element
1 16 1 N3 = 16 N1 =
1 3 −9s + 9s2 + s − 1 16 1 3 3 2 −27s − 9s + 27s + 9 , N4 = 27s − 9s2 − 27s + 9 16
9s3 + 9s2 − s − 1 , N2 =
The rest just works as with elements with quadratic approach; please take the exact program-technical conversion from the element load vector routine for plane 12 node Serendipity elements BCSHE88.C.
4.6.5 Distributed Loads for Beams For the calculation of continuous beams, beam frameworks and frames, distributed loads may be applied often. Especially when special beam elements are not available, one can manage by applying statically equivalent loads on the respective left and right nodes. The calculation of these statically equivalent loads takes place by the repeated integration of the distributed load function and determining the integration constants. Here it should be shown exemplarily, how a slopy triangular load on a beam is applied and thus how to ascertain the statically equivalent loads. The following action, that is described, by the way, in every better book about engineering mechanics, can be used for any distributed load functions. We assume the situation of Figure 4.6-7:
Figure 4.6-7: A slopy triangular load on a beam, clamped on both sides
4.6 The Application of Loads, Load Vectors 107
The distributed load is: q(x) =
q·x , this represents a linear function of the distributed load: ℓ
For x = 0, is q(x) = 0 and for x = ℓ, is q(x) = q . Then the shear force is: Q(x) = −
q x2 q(x) · dx = − · + C1 ℓ 2
(1)
q x3 Q(x) · dx = − · + C1 · x + C2 (2) ℓ 6 q x4 x2 1 1 · M(x) · dx = · − · + C1 · + C2 · x + C 3 The incline function is: ψ(x) = EI EI ℓ 24 2 1 x3 x2 q x5 · · − C1 · − C2 · − C3 · x + C4 The bending line is: w(x) = − ψ(x) · dx = EI ℓ 120 6 2
The moment is: M(x) =
The integration constants are determined by the boundary conditions:
Left margin: x = 0 → w(0) = 0 → C4 = 0 and x = 0 → ψ(0) = 0 → C3 = 0 q ℓ4 ℓ2 Right margin: x = ℓ → ψ(ℓ) = 0 → − · + C1 · + C2 · ℓ ℓ 24 2 → C2 = q ·
ℓ2 ℓ − C1 · 24 2
x = ℓ → w(ℓ) = 0 → → C1 =
3 ·ℓ·q 20
(3)
q ℓ5 ℓ3 ℓ2 q ℓ5 ℓ3 ℓ2 ℓ · − C1 · − C2 · = · − C1 · −q· + C1 · ℓ 120 6 2 ℓ 120 6 24 2
(4)
Inserting equation (4) in (3) delivers C2 = −
1 · ℓ2 · q 30
After the integration constants are determined, we can calculate the shear forces and the moments in the left and in the right margin, while we insert the obtained integration constants in equations (1) or (2): Q(x = 0) =
7 3 · ℓ · q, Q(x = ℓ) = − ·ℓ·q 20 20
M(x = 0) = −
1 1 · ℓ2 · q, Q(x = ℓ) = − · ℓ2 · q 30 20
These are the statically equivalent loads, which would be applied in case of a beam with a slopy triangular load in the left or in the right node of the beam. In the same manner one investigates statically equivalent loads for farther loading conditions, cf. tab. 4.6-1:
108 4 Finite Elements and Element Matrices
Table 4.6-1: Statically equivalent loads for beam with distributed loads
FA
MA
FB
MB
qℓ 2
qℓ2 12
qℓ 2
qℓ2 12
3qℓ 20
qℓ2 30
7qℓ 20
qℓ2 20
7qℓ 20
qℓ2 20
3qℓ 20
qℓ2 30
qℓ 4
5qℓ2 96
qℓ 4
5qℓ2 96
4.6.6 Gerber Joints for Beams With the calculation of continuous beams, beam frameworks and frames, the so-called Gerber joints are sometimes inserted. The Gerber beam, named after its inventor, is usually statically defined by the installation of so-called moment joints, cf. Figure 4.6-8. Special beam elements must be designed for it, according to the Figures 4.6-9 and 4.6-10 which have, however, the flaw that they are unsymmetrical, i.e. there are nodes with different numbers in degrees of freedom.
4.6 The Application of Loads, Load Vectors 109
Figure 4.6-8: A plane frame with Gerber joint
Figure 4.6-9: A beam with joint on the right
Figure 4.6-10: A beam with joint on the left
For a beam with a moment on the right, the stiffness matrix is (cf. Mescouris et al. /114/): A · ca2 3 · sa2 + I l2 3 · sa · ca A · ca · sa − l3 I −
3 · sa l
−
A · ca2 3 · sa2 − I l2
A · ca · sa 3 · sa · ca − I l2
3 · sa · ca A · ca · sa 3 · sa − − l2 I l
−
A · ca2 3 · sa2 − I l2
3 · ca l
A · ca · sa 3 · sa · ca − I l2
3 · ca l
3
3 · sa l
A · ca · sa 3 · sa · ca − I l2
3 · sa l
A · ca2 3 · sa2 + I l2
A · sa2 3 · ca2 − I l2
3 · ca l
3 · sa · ca A · ca · sa − l2 I
A · sa2 3 · ca2 + I l2 −
−
−
A · ca · sa 3 · sa · ca − I l2 −
A · sa2 3 · ca2 − I l2 3 · ca l
3 · sa · ca A · ca · sa − l2 I A · sa2 3 · ca2 − I l2
110 4 Finite Elements and Element Matrices
with sa = sin α =
x2 − x1 y2 − y1 and ca = cos α = . Besides, the 3rd line or the 3rd column reprel l
sent the moment joint; these columns or lines are of course missing for the right side of the joint. The beam with a moment joint on the left as a junction to a beam with right moment joint is logically derived.
It is obvious that there are nodes with different numbers in degrees of freedom. The compilation routines of Z88 or Z88Aurora do not intend this because it is usually never needed, i.e. finite elements usually have the same number of degrees of freedom at all nodes. In the following you see both suitable spots of the source code of the function Z88BR.C, which you would have to significantly modify with the installation of unsymmetrical elements: /*---------------------------------------------------------------* Start plane beam element *---------------------------------------------------------------*/ else if(ityp[k]== 13) { wtyp88j(k,13); /*---------------------------------------------------------------* Beam element: determining appropriate coordinates *---------------------------------------------------------------*/ xk[1] = x [koi[koffs[k]]]; yk[1] = y [koi[koffs[k]]]; xk[2] = x [koi[koffs[k]+1]]; yk[2] = y [koi[koffs[k]+1]]; /*---------------------------------------------------------------* Calculating element stiffness matrix for plane beam element *---------------------------------------------------------------*/ iret= ebal88(); /*---------------------------------------------------------------* Compilation for ebal88, compact storage with pointer vector *---------------------------------------------------------------*/ mcomp[1]= ioffs[koi[koffs[k]
]] -1;
mcomp[2]= ioffs[koi[koffs[k]+1]] -1; mxknot= 2; mxfrei= 3; goto L7000;
4.6 The Application of Loads, Load Vectors 111
/*---------------------------------------------------------------* End plane beam element *---------------------------------------------------------------*/ } ... ... /*---------------------------------------------------------------* now executing compilation *---------------------------------------------------------------*/ L7000:; /*================================================================ * Compilation for sparse matrix storage *===============================================================*/ if(ICFLAG != 0) { ise= 0; for(j = 1;j <= mxknot;j++) { for(j2 = 1;j2 <= mxfrei;j2++) { for(i = 1;i <= mxknot;i++) { for(i2 = 1;i2 <= mxfrei;i2++) { mcompi= mcomp[i]+i2; mcompj= mcomp[j]+j2; ise++; for(m= ip[mcompi-1]+1; m <= ip[mcompi];m++) { if(iez[m] == mcompj) { GS[m]+= se[ise]; goto L290; } } L290:;
112 4 Finite Elements and Element Matrices
} } } } }
It is evident that a four times nested loop is given, which counters are the number of nodes in the element mxknot and the number of the degrees of freedom per node mxfrei; an unbalance is not planned. So, unless specially designed beam elements are available (see figures 4.6-9 and 4.6-10), one can manage by defining two nodes lying close together near the joint, which are connected through a very pliable and very short beam, cf. example 13.13.1. Then this very short and very flexible beam works like a Gerber joint. This is mathematically incorrect because the structure stiffness matrix is very poorly conditioned by the large stiffness jumps (what it already is for beams), but with caution and thorough control, this action is tolerable.
■■4.7 A
complete Element Stiffness Routine
In conclusion of the considerations about element stiffness matrices, an entire C-function for the calculation of an element stiffness matrix for curvilinear 20 nodes Serendipity hexahedron shall be shown, namely HEXA88.C. Here you can find all thoughts, which were discussed up to now in theory. Please note that the actual shape functions are not used here, only the partial derivations. The shape functions are required for the stress calculation, cf. function SHEX88.C (“stresses of hexahedrons”) on the DVD. Please note for the following sources that the following is valid: #define FR_DOUBLEAY double *
/* Pointer on double */
#define FR_INT4 long
/* 4 Bytes Integer
*/
This was defined as an own data model, so that an adaptation to different operating systems is easy – which has proven its worth. /*********************************************************************** * this compiler unit encloses: hexa88 - element stiffness routine *
hb88
- calculation of the matrix b
* this compiler unit contains routines which ideally follow FORTRAN* Sources from H.J.Bathe, MIT, Cambridge, MA, USA. * 23.3.2002 Rieg ***********************************************************************/
4.7 A complete Element Stiffness Routine 113
/*********************************************************************** * For UNIX ***********************************************************************/ #ifdef FR_UNIX #include #endif /*********************************************************************** * For Windows ***********************************************************************/ #ifdef FR_WIN #include #endif /*********************************************************************** *
Functions
***********************************************************************/ int hb88(FR_DOUBLE *det,FR_DOUBLE *r,FR_DOUBLE *s,FR_DOUBLE *t); /*********************************************************************** * here Function hexa88 begins ***********************************************************************/ int hexa88(void) { extern FR_DOUBLEAY se; extern FR_DOUBLE xk[],yk[],zk[]; extern FR_DOUBLE b[],xx[],d[]; extern FR_DOUBLE emode,rnuee; extern FR_INT4 intore; FR_DOUBLE db[7]; FR_DOUBLE r,s,t,det,wt,stiff; FR_DOUBLE f0,f1,f2; FR_INT4 ne= 60,i,lx,ly,lz,j,k,l; int iret;
114 4 Finite Elements and Element Matrices
/*---------------------------------------------------------------------* Gauss-Legendre sampling points *---------------------------------------------------------------------*/ static FR_DOUBLE xg[17]= { 0., 0., -.5773502691896, -.7745966692415, -.8611363115941, 0., +.5773502691896,
0., -.3399810435849,
0.,
0., +.7745966692415, +.3399810435849,
0.,
0.,
0., +.8611363115941 };
/*---------------------------------------------------------------------* Gauss-Legendre integration weights *---------------------------------------------------------------------*/ static FR_DOUBLE wgt[17]= { 0., 2.,
1., +.5555555555556, +.3478548451375,
0.,
1., +.8888888888889, +.6521451548625,
0.,
0., +.5555555555556, +.6521451548625,
0.,
0.,
0., +.3478548451375 };
/*---------------------------------------------------------------------* Restorage of xk and yk *---------------------------------------------------------------------*/ for(i = 1;i <= 20;i++) { xx[i]
= xk[i];
xx[20+i]= yk[i]; xx[40+i]= zk[i]; } /*---------------------------------------------------------------------* Material constants *---------------------------------------------------------------------*/ f0= emode*(1.-rnuee) / ((1.+rnuee)*(1.-2.*rnuee)); f1= rnuee/(1.-rnuee) * f0; f2= (1.-2.*rnuee) / (2.*(1.-rnuee)) * f0; /*---------------------------------------------------------------------* Setting up the elasticity matrix *---------------------------------------------------------------------*/ for(i = 1;i <= 36;i++) d[i]= 0.;
4.7 A complete Element Stiffness Routine 115
d[1] = f0; d[7] = f1; d[13]= f1; d[2] = f1; d[8] = f0; d[14]= f1; d[3] = f1; d[9] = f1; d[15]= f0; d[22]= f2; d[29]= f2; d[36]= f2; /*---------------------------------------------------------------------* Setting up the element stiffness matrix *---------------------------------------------------------------------*/ for(i = 1;i <= 3600;i++) se[i]= 0.; for(lx = 1;lx <= intore;lx++)
/* 120 */
{ r= xg[(lx-1)*4 + intore]; for(ly = 1;ly <= intore;ly++)
/* 110 */
{ s= xg[(ly-1)*4 + intore]; for(lz = 1;lz <= intore;lz++)
/* 110 */
{ t= xg[(lz-1)*4 + intore]; /*====================================================================== * Getting matrix B of the partial derivations & Jacobi determinant *=====================================================================*/ iret= hb88(&det,&r,&s,&t); if(iret != 0) return(iret); wt= wgt[(lx-1)*4 + intore] * wgt[(ly-1)*4 + intore] * wgt[(lz-1)*4 + intore] * det; for(j = 1;j <= 60;j++)
/* 90 */
116 4 Finite Elements and Element Matrices
{ for(k = 1;k <= 6;k++)
/* 60 */
{ db[k]= 0.; for(l = 1;l <= 6;l++)
/* 50 */
{ db[k]= db[k] + d[(k-1)*6 + l] * b[(l-1)*60 + j]; } }
/* e 50 */ /* e 60 */
for(i = j;i <= 60;i++)
/* 80 */
{ stiff= 0.; for(l = 1;l <= 6;l++)
/* 70 */
{ stiff+= b[(l-1)*60 + i] * db[l]; }
/* e 70 */
se[i+ne*(j-1)]= se[i+ne*(j-1)] + stiff * wt; } } } } }
/* e 80 */ /* e 90 */ /* e 100 */ /* e 110 */ /* e 120 */
for(j = 1;j <= 60;j++) {
/* 140 */
for(i = j;i <= 60;i++)
/* 130 */
{ se[j+ne*(i-1)]= se[i+ne*(j-1)]; } }
/* e 130 */ /* e 140 */
return(0); } /*********************************************************************** * here Function hb88 begins ***********************************************************************/ int hb88(FR_DOUBLE *det,FR_DOUBLE *r,FR_DOUBLE *s,FR_DOUBLE *t) {
4.7 A complete Element Stiffness Routine 117
/*--------------------------------------------------------------------* xx goes in, consistently (ex) * B goes out, new (ex) * det goes out, new * r, s, t go in, consistently *--------------------------------------------------------------------*/ extern FR_DOUBLE b[],xx[],p[]; FR_DOUBLE xj[10], xji[10];
/* is 3x3 +1 */
FR_DOUBLE dum,epr,emr,eps,ems,ept,emt; FR_DOUBLE emrr,emss,emtt,zrm,zsm,ztm; FR_INT4 i,j,k,k3; /*---------------------------------------------------------------------* Setting the factors of the derivations of the shape functions *---------------------------------------------------------------------*/ epr = 1. + (*r); emr = 1. - (*r); eps = 1. + (*s); ems = 1. - (*s); ept = 1. + (*t); emt = 1. - (*t); emrr= 1. - (*r) * (*r); emss= 1. - (*s) * (*s); emtt= 1. - (*t) * (*t); zrm = -2. * (*r); zsm = -2. * (*s); ztm = -2. * (*t); /*---------------------------------------------------------------------* Partial derivation of the shape functions with respect to r *---------------------------------------------------------------------*/ p[1]=
.125 *( eps*ept- zrm*eps*ept- emss*ept
- eps*emtt);
p[2]=
.125 *(-eps*ept- zrm*eps*ept+ emss*ept
+ eps*emtt);
p[3]=
.125 *(-ems*ept+ emss*ept
p[4]=
.125 *( ems*ept- zrm*ems*ept- emss*ept
- zrm*ems*ept+ ems*emtt); - ems*emtt);
118 4 Finite Elements and Element Matrices
p[5]=
.125 *( eps*emt- zrm*eps*emt- emss*emt
- eps*emtt);
p[6]=
.125 *(-eps*emt- zrm*eps*emt+ emss*emt
+ eps*emtt);
p[7]=
.125 *(-ems*emt+ emss*emt
p[8]=
.125 *( ems*emt- zrm*ems*emt- emss*emt
p[9]=
.250 *( zrm*eps*ept);
p[10]= .250 *(-emss*ept
- zrm*ems*emt+ ems*emtt); - ems*emtt);
);
p[11]= .250 *( zrm*ems*ept); p[12]= .250 *( emss*ept
);
p[13]= .250 *( zrm*eps*emt); p[14]= .250 *(-emss*emt
);
p[15]= .250 *( zrm*ems*emt); p[16]= .250 *( emss*emt
);
p[17]= .250 *( eps*emtt
);
p[18]= .250 *(-eps*emtt
);
p[19]= .250 *(-ems*emtt
);
p[20]= .250 *( ems*emtt
);
/*---------------------------------------------------------------------* Partial derivation of the shape functions with respect to s *---------------------------------------------------------------------*/ p[21]=
.125 *( epr*ept -emrr*ept
-epr*zsm*ept -epr*emtt);
p[22]=
.125 *( emr*ept -emrr*ept
-emr*zsm*ept -emr*emtt);
p[23]=
.125 *(-emr*ept -emr*zsm*ept +emrr*ept
p[24]=
.125 *(-epr*ept +emrr*ept
-epr*zsm*ept +epr*emtt);
p[25]=
.125 *( epr*emt -emrr*emt
-epr*zsm*emt -epr*emtt);
p[26]=
.125 *( emr*emt -emrr*emt
-emr*zsm*emt -emr*emtt);
p[27]=
.125 *(-emr*emt -emr*zsm*emt +emrr*emt
p[28]=
.125 *(-epr*emt +emrr*emt
p[29]=
.250 *( emrr*ept
p[30]=
.250 *( emr*zsm*ept);
p[31]=
.250 *(-emrr*ept
p[32]=
.250 *( epr*zsm*ept);
p[33]=
.250 *( emrr*emt
p[34]=
.250 *( emr*zsm*emt);
p[35]=
.250 *(-emrr*emt
p[36]=
.250 *( epr*zsm*emt);
p[37]=
.250 *( epr*emtt
);
p[38]=
.250 *( emr*emtt
);
p[39]=
.250 *(-emr*emtt
);
p[40]=
.250 *(-epr*emtt
);
); ); ); );
+emr*emtt);
+emr*emtt);
-epr*zsm*emt +epr*emtt);
4.7 A complete Element Stiffness Routine 119
/*---------------------------------------------------------------------* Partial derivation of the shape functions with respect to t *---------------------------------------------------------------------*/ p[41]=
.125 *( epr*eps -emrr*eps -epr*emss -epr*eps*ztm);
p[42]=
.125 *( emr*eps -emrr*eps -emr*emss -emr*eps*ztm);
p[43]=
.125 *( emr*ems -emr*emss -emrr*ems -emr*ems*ztm);
p[44]=
.125 *( epr*ems -emrr*ems -epr*emss -epr*ems*ztm);
p[45]=
.125 *(-epr*eps +emrr*eps +epr*emss -epr*eps*ztm);
p[46]=
.125 *(-emr*eps +emrr*eps +emr*emss -emr*eps*ztm);
p[47]=
.125 *(-emr*ems +emr*emss +emrr*ems -emr*ems*ztm);
p[48]=
.125 *(-epr*ems +emrr*ems +epr*emss -epr*ems*ztm);
p[49]=
.250 *( emrr*eps
);
p[50]=
.250 *( emr*emss
);
p[51]=
.250 *( emrr*ems
);
p[52]=
.250 *( epr*emss
);
p[53]=
.250 *(-emrr*eps
);
p[54]=
.250 *(-emr*emss
);
p[55]=
.250 *(-emrr*ems
);
p[56]=
.250 *(-epr*emss
);
p[57]=
.250 *( epr*eps*ztm);
p[58]=
.250 *( emr*eps*ztm);
p[59]=
.250 *( emr*ems*ztm);
p[60]=
.250 *( epr*ems*ztm);
/*---------------------------------------------------------------------* Developing the Jacobi matrix in the point (r, s, t) *---------------------------------------------------------------------*/ for(i = 1;i <= 3;i++) { for(j = 1;j <= 3;j++) { dum= 0.; for(k = 1;k <= 20;k++) { dum+= p[(i-1)*20 + k] * xx[(j-1)*20 + k]; } xj[(i-1)*3 + j]= dum; } }
120 4 Finite Elements and Element Matrices
/*---------------------------------------------------------------------* Developing the Jacobi determinant in the point (r, s, t) *---------------------------------------------------------------------*/ (*det)= (xj[1] * xj[5] * xj[9]) - (xj[1] * xj[6] * xj[8]) + (xj[2] * xj[6] * xj[7]) - (xj[2] * xj[4] * xj[9]) + (xj[3] * xj[4] * xj[8]) - (xj[3] * xj[5] * xj[7]); if((*det) < 0.00000001) return(AL_JACNEG); /*---------------------------------------------------------------------* Calculation of the inverse Jacobi matrix *---------------------------------------------------------------------*/ dum= 1./(*det); xji[1]=
(xj[5] * xj[9] - xj[8] * xj[6])*dum;
xji[2]= -(xj[2] * xj[9] - xj[8] * xj[3])*dum; xji[3]=
(xj[2] * xj[6] - xj[5] * xj[3])*dum;
xji[4]= -(xj[4] * xj[9] - xj[7] * xj[6])*dum; xji[5]=
(xj[1] * xj[9] - xj[7] * xj[3])*dum;
xji[6]= -(xj[1] * xj[6] - xj[4] * xj[3])*dum; xji[7]=
(xj[4] * xj[8] - xj[7] * xj[5])*dum;
xji[8]= -(xj[1] * xj[8] - xj[7] * xj[2])*dum; xji[9]=
(xj[1] * xj[5] - xj[4] * xj[2])*dum;
/*---------------------------------------------------------------------* Developing of the matrix B *---------------------------------------------------------------------*/ for(i = 1;i <= 360;i++) b[i]= 0.; k3= 0; for(k = 1;k <= 20;k++) { k3+= 3; for(i = 1;i <= 3;i++) { b[
k3-2]= b[
k3-2] + xji[
i] * p[(i-1)*20 + k];
b[60 + k3-1]= b[60 + k3-1] + xji[3 + i] * p[(i-1)*20 + k]; b[120+ k3
]= b[120+ k3
] + xji[6 + i] * p[(i-1)*20 + k];
4.8 Some Remarks on Modelling 121
} b[180 + k3-2]= b[60 + k3-1]; b[180 + k3-1]= b[
k3-2];
b[240 + k3-1]= b[120+ k3 b[240 + k3
b[300 + k3-2]= b[120 +k3 b[300 + k3
];
]= b[60 + k3-1];
]= b[
];
k3-2];
} return(0); }
If you want to get to the bottom of the program-technical conversions with the help of the program Z88, please note the C-routines according to Table 4.7-1. Table 4.7-1: C-routines for continuum elements
Element type
Element stiffness
Element load vector Stress routine
20 nodes hexahedron
HEXA88.C
BHEXA88.C
SHEX88.C
8 nodes hexahedron
LQUA88.C
BLQUA88:C
SLQU88.C
6 and 8 nodes plane stress element/torus
QSHE88.C
BQSHE88.C
SQSH88.C
12 nodes plane stress ele- CSHE88.C ment/torus
BCSHE88.C
SCSH88.C
6 nodes plate
SPLA88.C
BSPLA88.C
SSPL88.C
8 nodes plate
APLA88.C
BAPLA88.C
SAPL88.C
16 nodes plate
HPLA88.C
BHPLA88.C
SHPL88.C
10 nodes tetrahedron
TETR88.C
BTETR88.C
STET88.C
4 nodes tetrahedron
SPUR88.C
BSPUR88.C
SSPU88.C
■■4.8 Some
Remarks on Modelling
4.8.1 Choice of Element Types How to transform a real structure into a finite element model? One possible answer to this simple sounding, but extremely complicated question, you will find in chapter 13 with different examples. However, let us start reflecting some basic thoughts:
122 4 Finite Elements and Element Matrices
Since Kopernikus and Galilei we know that the world is a sphere, a 3D item and no plane stress element. The plane stress element, however, is a typical 2D item. All real components are always 3D items, so only with 3D CAD programs parts can be described really close to reality. Please keep in mind that a 2D drawing, no matter whether generated on a drawing board or in a 2D paint program, in reality only is an aggregation of drawing conventions. As a former designer’s colleague of us used to say: “It is crazy! First of all, we have to flatten a real component in our head to transfer it into a drawing. Then the viewer of the drawing must rebuild the component in his head!” Thus a part of the answer is already given: A real part can always and principally be illustrated by volume elements. This action has only one flaw: It just makes the highest demands on calculation power, main memory and disk storage. But the trend is towards this direction, and a new generation of the FE programs, which are especially intended for the designers, so to speak “for the small FE calculation in between”, only operate with volume elements or shell elements. Other element types are not practically implemented any more. A typical representative of this program type is PRO/MECHANICA. On the other hand, the classical engineering mechanics provide the typical 1D or 2D concepts, such as rope, truss, beams, torsion beams, plane stress element, plate, and membrane. However, please remind yourself that these models of the mechanics have been born from necessity, because of the equations, which describe the general spatial displacement state, the so-called Navier’s equations (cf. /39/) with the so-called Lamé constants λ and μ: (λ + μ) uj, ji + μ ui, jj + fi = 0
are only solvable analytically for very few special cases. That’s why one has created the concepts for the plane, which are solvable, for example, in the case of the plane stress element with the so-called Airy’s stress function, in the case of the plate with the Kirchhoff’s plate equation. It has always been the art of the structural engineer to idealize the real calculation problem. This is elegantly called “modelling” today. The reader may consult, for example, Hirschfeld /64/, Mann /85/, Wagner/Erlhof /86–88/ and Schnell/Gross/Hauger /89–91/, for static problems in the civil engineering or for general interest, in case of plates also Werkle /63/. How does the typical machine designer proceed? If he must enter the numerical values manually, he will try to minimize this input expenditure in any case. Hence, he will illustrate the problem as a truss work, beam framework or as a problem of the plane state of stress or the axial-symmetrical state of stress. However, if he was given a quite complicated part in a 3D CAD system, he will try to save this data in the FE program and use it further, what, in most cases, leads to volume elements and here preferably to tetrahedrons (because they can be easier generated automatically than a hexahedron). Of course, there are structures, which one will only illustrate like this (Figure 4.8-1, example 13.2).
4.8 Some Remarks on Modelling 123
Figure 4.8-1: Crane girder: Truss- or beam framework
No reasonable person would model such a crane girder other than by a truss or beam framework. A FE structure of volume elements would not only provide very great requirements upon the computer, but would also not provide accurate results. For the gear shaft (see Figure 4.8-2, example 13.3) it depends on what you want to know. If you only want to determine the bending lines and bearing forces, you would treat this shaft like a continuous beam. However, if you are interested in the notch effect in the shaft shoulder, you could either work with axial-symmetrical elements or with volume elements, cf. example 22. Even then, only the stress concentration factors αk can actually be calculated by FEA; to gather the micro supporting effect for the actually important notch effect factors βk is very difficult.
Figure 4.8-2: Gear shaft: Continuous beam
124 4 Finite Elements and Element Matrices
The force measurement element (Figure 4.8-3, example 13.16) is perfect for working with the plane state of stress. Volume elements would not bring better results, but more calculation expenditure. For this structure, the practitioner would decide rather how comfortable he could generate the mesh. If the meshing works well and will simply be done in the 2D case, this would be okay. On the other hand, if you can generate the mesh without additional expenditure with your 3D CAD system, then take the volume mesh, because the calculation expenditure will stay within bounds for this simple component, even with parabolic tetrahedrons.
Figure 4.8-3: Force measurement element: Plane stress state
The liquid gas tank, according to Figure 4.8-4, example 13.10, also demands for a figure with axial-symmetrical torus elements. A spatial structure would be considerable, which would deliver no additional information, but require a lot more computer power.
Figure 4.8 4: Liquid gas tank: Axial-symmetrical torus elements
4.8 Some Remarks on Modelling 125
However we can illustrate the piston according to Figure 4.8-5, example 13.19, only as a volume structure, and we are lost without a preceding mesher.
Figure 4.8 5: Four-stroke BMW engine piston: Volume structure with tetrahedrons
However, the following questions for such a piston arise: how many tetrahedrons and which type of tetrahedrons, linear or parabolic, cf. example 21? To that effect Koch /62/ has worked out a catalog for the choice of suitable approaches for static FE analyses, which offers perceptible support while answering such questions (see Tables 4.8-1 and 4.8-2). The outline of this catalogue encloses the classification of components to be analyzed accordingly to their prevailing state of stress and the respective cross section state. The outline is complete in terms of the prevailing stress state, i.e. every possible component can be assigned to a state of stress. In the case, in which no prevailing state of stress can be ascertained, going back to the general states of stress and, as a last resort, to the general three-dimensional state of stress, is recommended. Nevertheless, the completeness is not given concerning the present geometry, but it is only limited to the examined geometry. The outline would need to be further refined at this point or completed. Nevertheless, we can draw conclusions about the procedure in an unrecognized case from the examples: for not consistently variable cross sections, going back to element types with higher approach functions would be recommended. The main part consists of the force-displacement relations to which one is led by the outline. An example illustrates the respective load case and provides the test for the right allocation to the available problem. The access part contains the signs of the recommended FE procedures. In most cases, several procedures are suggested for the load cases because there are several possibilities concerning the dimension of the problem as well as the element types to be used.
126 4 Finite Elements and Element Matrices
Table 4.8-1: Catalog for the choice of suitable approaches for static FE analyses, part 1, cf. /62/
Outline
Main part
Dimension of the loading condition
Prevailing state of stress
Cross section variable?
Force dis placement correlation
Example
1
2
3
1
2
1D
Truss
no
linear
F
linear
logarithmic
F
F
2
constant
linear
F
F
3
Beam
no
cubic
M F
F M
4
Torsion beam
no
linear
M
M
5
Axial-symmetric
no
linear
Plane, linear
no
linear
Plane, general
no
non-linear
2D
2D
No.
1
F
6
p
7
p
8
p
2
p
1
3D
Plane strain
no
linear
Plate
no
non-linear
All-around tension
no
linear
9
p
10
p
11
p
p
p
General
no
non-linear
12
p
1
p
p
3
2
4.8 Some Remarks on Modelling 127
Table 4.8-2: Catalog for the choice of suitable approaches for static FE analyses, part 2, cf. /62/
Grasp part Nr.
1
Recommended element
4
6
7
2
3
4
5
6
1D
Truss2
Manual
High
Low
Exact
3D
Tet4
Automatic
Low
Low
Good
Hex8
Manual
High
Average
Very good
Tet10
Automatic
Low
Average
Good
Hex20
Manual
High
High
Very good
1D
Truss2
Manual
High
Low
Exact
3D
Tet4
Automatic
Low
Low
Good
Hex8
Manual
High
Average
Very good
Beam2
Manual
High
Low
Exact
Tet10
Automatic
Low
Average
Good
Hex20
Manual
High
High
Very good
1D
Beam2
Manual
High
Low
exact
3D
Tet10
Automatic
Low
Average
Good
Hex8
Manual
High
Average
Very good
2D
Torus3/4
Automatic
Low
Low
Very good
3D
Tet4
Automatic
Low
Low
Good
Hex8
Manual
High
Average
good
Low
Low
Good
Low
Low
Good
High
Average
Very good
Low
Average
Good
Low
Average
Good
1D
2D
Plane stress Automatic element3/4 Automatic Tet4 Hex8
2D 3D
11 12
Manual
Plane stress Automatic element6/8 Automatic Tet10 Hex20
Manual
High
High
Very good
Tet4
Automatic
Low
Low
Good
Hex8
Manual
High
Average
Very good
2D
Platte8
Automatic
Low
Average
Very good
3D
Tet10
Automatic
Low
Average
Good
Hex20
Manual
High
High
Very good
Tet4
Automatic
Low
Low
Good
Hex8
Manual
High
Average
Very good
Tet10
Automatic
Low
Average
Good
Hex20
Manual
High
High
Very good
9 10
Result quality
1
3D 8
Com putation time
Type
3D 5
Modelling expenditure
Dim.
2 3
Meshing method
128 4 Finite Elements and Element Matrices
Nevertheless, the approaches resulting from it are different in modelling expenditure and result quality. Now the designer can select a suitable approach with the help of the necessary result quality for the present analysis. He must decide himself whether, for example, the higher modelling expenditure is worthwhile for the achievement of a better result quality in the respective case. Also the respective dimension of the problem can cause additional modelling expenditure: if the geometry of a part is given as 3D CAD model, it is possible to calculate this model, even three-dimensionally with less expenditure, than to first convert it into a 2D or even 1D model. Table 4.8-3: Degrees of freedom of different element types, according to /62/
Type Truss2 Beam2 Plane stress element3/4 Plane stress element6/8 Plate8 Torus3/4 Tet4 Tet10 Hex8 Hex20
Z88 Type No. 9 and 4 13 and 2 –
Number DoF 4 or 6 6 or 12 6 or 8
Computation time Low Low Low
3, 14 and 7
12 or 16
Average
20 6 17 16 1 10
24 6/8 12 30 24 60
Average Low Low Average Average High
The applicable meshing method results from the dimension and the type of the recommended element. At the moment, one-dimensional and hexahedron elements can only be manually meshed. For all the other element types, automatic meshing algorithms are commercially applicable. The modelling expenditure is primarily determined by the meshing method. A manual meshing always causes a higher modelling expenditure than an automatic one. The statement regarding the computation time is based on the number of the degrees of freedom for the recommended element type. A high number in degrees of freedom means a higher computation time with the same element number and the same geometry, vice versa. From 15 to 30 degrees of freedom, an average computation time was assumed, for less than 15 degrees of freedom a low one, with more than 30 a high one. The result quality results from the investigations /62/ and is based on the convergence properties ascertained there. Besides, hexahedron elements usually still show better convergence than tetrahedron elements. The result quality for FE analyses with truss and beam elements is actually exact within the scope of the mechanical approaches. Until the finite elements and the construction research have found farther universal directives and perceptions, the best way of modelling is still given by a solid knowledge of the engineering mechanics, practical construction experience and engineer’s expertise.
4.8 Some Remarks on Modelling 129
4.8.2 Polymers and Material Laws A specific constructive utilization of a material is only possible with the specific knowledge of its mechanical properties. For polymers, these are just strongly dependent on the production process, the environmental conditions and the occuring loading conditions and, besides, not homogeneous within a component. This results from the organic construction of the polymers, which are influenced by rheological and thermal effects during the production process. Despite these disadvantageous mechanical material properties, polymers are cost-effectively producible with a high level of automation, even with complicated geometry. With the gradual substitution of metal structure parts by polymers, in addition to cost-savings, particularly the low specific weight and the low thermal conductivity of polymer components are important. At the first sight, the use of material laws, which describe the non-linear relations between stress and strain in the finite element analysis of polymers appears urgently inevitable. Another simulation tool for polymers is the simulation of the shaping process, mostly of the injection moulding process and the transmission of the resulting material properties (anisotropy, fibre orientation) in the structure simulation. Nevertheless, linear elastic calculations are much quicker and easier to carry out and often known from the construction with metals. If you consider the properties of polymers up to the permanent plastic deformation, a linear area of material properties exists with attention to certain boundary conditions. Even beyond this area, the calculation with the Young’s modulus and the Poisson’s ratio can take place until the thereby caused errors cannot be tolerated in the existing application any more. A component of polymers can compensate overloads by reversible time-dependent (viscoplastic) deformations, which is also favourable for the linear dimensioning. Detailed work /107/ showed that linear calculations deliver reliable results for small strains, under the condition that temperature, load kind and load speed are in the normal range. Even with the use of a non-linear material law, there are only linear calculation results up to a specific “shift value”, which lies in the linear range of the stress-strain relation. By then, a linear calculation is as expressive as a non-linear calculation. Above this point, considerable differences partly exist in the results regarding stress and strain. The mistake, which is made by a deliberate disregarding of the non-linear relation, must be critically assessed. The stronger the anisotropy of a material, the greater the resulting mistake. Besides, it must be distinguished between not reinforced and fibre-reinforced polymers. The linear calculation of polymers should proceed as follows: Based on the resulting stresses of the first rough calculation with the FEA, one should make clear, which material behaviour dominates with this appearing load, linear or already non-linear behaviour. Then the resultant inaccuracy, therefore the appearing mistake is to be considered in the linear calculation, and safeties should be included if necessary. With this approach, good evaluations can be made for polymers in very short time.
130 4 Finite Elements and Element Matrices
Figure 4.8-6: Resulting mistakes from the use of a linear stress-strain relation in spite of non-linear material behaviour
Fibre-reinforced polymers can be ordinarily calculated sufficiently linearized by knowledge of the fibre orientation and in spite of the available anisotropy in the material, because most appearing loads take place in case of necessity in the elastic region of the material. This results from the typical low defensible strains, which are achievable for material with fibre-reinforced materials without catastrophic rupture. Comparative calculations showed that by the use of linear calculations and material model simulations no appreciable differences for small deflections could be found. The anisotropic properties of fibre-reinforced polymers are only considerable with coupled structure simulations and process simulations. For the evaluation, which model should be selected, the computation time for material model calculations or coupled structure simulations and process should not be underestimated. The process simulation as well as the calculation with the help of a material model lasts possibly 6 to 8 times longer than a linear calculation. The same is valid for the necessary RAM. In general, it is particularly valid for polymers that the more precise the parameters used (material parameters, structure, boundary conditions, discretization) are, the closer the results of simulation are to the actual circumstances /107/.
4.8.3 Structural Optimization The so far closer explicated finite element analysis serves for the investigation of existing structures and thus belongs to the analysis methods of the simulation. On the basis of a geometry-dependent mesh and under effect of certain forces and boundary conditions, the deformations, strains, internal forces and stresses of the component can be calculated using the displacement method. Then, in practice e.g. a statement regarding the appearing component failure is possible. A process, which is based on the finite element analysis, however, only recently gained industrial recognition, is the Computer Aided Optimization (CAO) or structural optimization. Herewith, new geometries can be generated in a synthesis process, which, without any post-processing, mostly remind us of structures with biological background, e.g. bones or trees.
4.8 Some Remarks on Modelling 131
The processes of the structural optimization are based on the definition of a suitable objective function for the optimization process and their minimization or maximization during the change of design variables. An objective function can be e.g. being the stiffness or the natural frequency of the component. The optimization needs always boundary conditions, which are the restrictions of the optimization. Depending on which design variables are defined or which parameters are used for the optimization of the objective function, it can be distinguished, among the rest, between the following CAO processes, which can be used at different places of a process chain to the creation of components: Topology optimization: The stiffness of the finite elements (FE) of the component model is adjusted in the form of a density function. Shape optimization: The node coordinates in the surface of the FE mesh are moved. The topology optimization assumes a meshed design space, which marks the maximum spatial extent of the final component (Figure 4.8-7, on the left). During the optimization process, single elements of the design space are gradually hidden, until the optimum geometry is preserved as a function of optimization aim, boundary conditions and desired rest volume. In contrast, the basis of the shape optimization is already a final close-to-contour draft of the final component. It is only changed with certain limits e.g. for the stress reduction. design space
unsmoothed smoothed optimization result optimization result
Figure 4.8-7: Comparison between design space, unsmoothed and smoothed optimization result with the topology optimization of a wheel carrier
But how do finite element analysis and structural optimization correlate? For clarification, the process of a topology optimization is shown in Figure 4.8-8 in the practical application. The pre-processing at the beginning corresponds to that of a conventional FEA. After the definition of optimization aims and boundary conditions, the real optimization into which a FE calculation is integrated follows, i.e. the basis of every structural optimization is the finite element analysis! In several optimization cycles, the results of the calculation are evaluated over and over again and on the basis of mathematical algorithms, the input structure is adjusted. This happens as long as an optimum geometry, marked by a stop criterion, is reached /108/. The result of a topology optimization shows a very irregular surface, especially when using tetrahedrons in the construction space. To be able to accomplish a better visual evaluation or to make the further use of the data in the process chain easier, a smoothing of the surface is
132 4 Finite Elements and Element Matrices
necessary in the post-processing. This happens on the basis of smoothing algorithms (Figure 4.8-7, in the middle and on the right). design space
pre-processing finite element analysis
meshing loads
pre-processing optimization
optimization
material boundary conditions
FE modell
target volume optimization aim
restricted areas optimization model
optimization restrictions
preperation input data FE solver result analysis optimization result
post-processing
smoothing
parameter
visualization
Figure 4.8-8: Process of a topology optimization for practical application
If a new structural-optimized component should be developed in the industrial practice, a process chain is useful, which combines the numerous simulation and calculation programs in an intelligent order. In a process chain, which is constructed using the ICROS principle (Intelligent CROss-linked Simulations by Alber, Hackenschmidt, Rieg /110/), return and possibilities for selection are also included. In Figure 4.8-9, a process chain for the development of an injected moulded polymer snatch is shown. Beside analytic calculation tools, 3D CAD systems, FE programs and also structural optimization solutions are used.
4.8 Some Remarks on Modelling 133
forces snatch dimensioning [SNAPS]
mould flow simulation [MOLDEX]
design injection mould [Pro/ENGINEER]
design space [Pro/ENGINEER]
validation [ABAQUS]
milling simulation [Pro/ENGINEER]
package
injection mould topology optimization [TOSCA/ABAQUS]
new design [Pro/ENGINEER]
validation topology optimization [ABAQUS]
validation shape optimization [ABAQUS]
modeling- and synthesis tools
design new design [Pro/ENGINEER]
shape optimization [TOSCA/ABAQUS]
analysis tools
Figure 4.8-9: Process chains for the construction of a structural optimized plastic part with example programs
The function validation in the process chain displays the classical analyzing finite element analysis. It serves as a virtual release of the component on the basis of simulation and is carried out before beginning the production process. At several places in the process chain the socalled validation appears. What does this mean? In this case validation does not mean the adjustment between simulation and reality. The validation steps in the process chain are used to check the optimization results due to smoothing in compliance with the optimization objectives and the integration of possibly complex material models, which cannot be considered in the actual optimization. This takes place in the component geometry, which is not yet final. The example of the topology optimization of a wheel carrier can be seen in detail in Figure 4.8-10. The geometry changes from a 3D CAD model of the design space to the optimization result and to the new construction.
134 4 Finite Elements and Element Matrices
FE design space
topology optimization
CAD design space
new design
smooting
Figure 4.8-10: Development of the component geometry along the process chain
■■4.9 Some
Remarks on Shells
This chapter shall conclude the explanations about finite elements and element stiffness matrices, and, actually, this complicated matter does not belong in an introductory textbook. Since our readers asked us for adressing shells over and over again, the lead author of this book has derived and built-in four shell elements in Z88, which are quite useful in practice. We have decided to treat the subject from a strongly simplistic view, so to speak “shells for average requirements”, and to renounce detail and scientific severity. The colleagues of the engineering mechanics and the shell specialists may forgive us. Shells are surface structures whose center surface is bent once or twice, cf. Girkmann /113/. The thickness is usually very small compared to the other dimensions. Analytically calculating shells is exceptionally difficult, and direct solutions have only become known for quite easy cases like rotation-symmetrical shell structures for which absolutely different basic assumptions were made, depending on the author. Furthermore, the classical shell theory makes a distinction between so-called membrane shells – the bending stresses are neglected and only the normal stresses are considered in the shell edges – and shells with bending influence.
4.9 Some Remarks on Shells 135
All in all, the treatment of shells is extremely complex from an analytic viewpoint; Figure 4.9-1 shall give a first impression of the complexity. The interested reader may consult the “shell classics” like Timoshenko/Woinowsky-Krieger /37/ and Girkmann /113/. From our point of view, there is a very nice work for the engineer from Hake/Meskouris /116/; Pilkey /38/ offers accumulated formulae for shell problems.
Figure 4.9-1: Deflections of a cylindrical shell, in accordance with Timoshenko/Woinowsky-Krieger /37/, p. 508.
The classic shell theory only helps to a limited extent for setting up element stiffness matrices, it can even mislead because it points to element forms, e.g. double curved shells which cannot be used at all by FE computer processes that are working with a CAD system. Here, we will take three other paths, and in our view, easier ways without any claim to completeness.
1. Volume Shell Elements First it has to be made clear that nature knows nothing about shell states of stress; this is a fiction of the engineering mechanics. Hence, shells can in general be described with volume elements like hexahedrons and tetrahedrons. In many cases this also works very nicely; unfortunately, the number of elements becomes unreasonably big. In contrast to tetrahedrons, the situation is aggravated for hexahedrons because the third dimension, i.e. the thickness, is much smaller than both of the other dimensions (Figure 4.9-2).
136 4 Finite Elements and Element Matrices
Figure 4.9-2: A hexahedron as a volume element
The shape functions for a hexahedron with 8 ~ 20 nodes generally are (cf. Bathe /4, 5/): g9 + g12 + g17 g9 + g10 + g18 , h2 = g2 − 2 2 g10 + g11 + g19 g11 + g12 + g20 , h4 = g4 − h3 = g3 − 2 2 g13 + g16 + g17 g13 + g14 + g18 , h6 = g6 − h5 = g5 − 2 2 g14 + g15 + g19 g15 + g16 + g20 h7 = g7 − , h8 = g8 − 2 2 h1 = g1 −
with hj = gj for j = 9 ∼ 20
gj = 0 is valid if the node does not exist, otherwise: gj = G(r,rj ) · G(s,sj ) · G(t,tj )
Let β = r,s,t , so that 1 (1 + β · βj ) für βj = ±1 2 G(β,βj ) = (1 − β2 ) für βj = 0
G(β,βj ) =
To take the above considerations into account, it would make sense to only have two instead of three nodes in the axis of the thickness direction. This means a quadratic approach in two axes and in the third axis a linear displacement approach. The respective code paragraph of the volume shell routine SHAQ88.C demonstrates this: /*----------------------------------------------------------* Setting the brackets of the shape functions *----------------------------------------------------------*/ rp=
1. + (*r);
sp=
1. + (*s);
rm=
1. - (*r);
sm=
1. - (*s);
4.9 Some Remarks on Shells 137
rqm= 1. - (*r)*(*r); sqm= 1. - (*s)*(*s); r2=
2. * (*r);
s2=
2. * (*s);
ept= 0.5* (1. + (*t)); emt= 0.5* (1. - (*t)); /*----------------------------------------------------------* Shape functions upper and lower plane *----------------------------------------------------------*/ h[ 1]= .25 * (rp*sp - rqm*sp - sqm*rp) * ept; h[ 2]= .25 * (rm*sp - rqm*sp - sqm*rm) * ept; h[ 3]= .25 * (rm*sm - sqm*rm - rqm*sm) * ept; h[ 4]= .25 * (rp*sm - rqm*sm - sqm*rp) * ept; h[ 5]= .5 * rqm * sp * ept; h[ 6]= .5 * sqm * rm * ept; h[ 7]= .5 * rqm * sm * ept; h[ 8]= .5 * sqm * rp * ept; h[ 9]= .25 * (rp*sp - rqm*sp - sqm*rp) * emt; h[10]= .25 * (rm*sp - rqm*sp - sqm*rm) * emt; h[11]= .25 * (rm*sm - sqm*rm - rqm*sm) * emt; h[12]= .25 * (rp*sm - rqm*sm - sqm*rp) * emt; h[13]= .5 * rqm * sp * emt; h[14]= .5 * sqm * rm * emt; h[15]= .5 * rqm * sm * emt; h[16]= .5 * sqm * rp * emt;
With it the volume shell element originates according to Figure 4.9-3:
Figure 4.9-3: A quadrangular volume element with different displacement approaches: Z88 element type 21.
138 4 Finite Elements and Element Matrices
Quite analogously one can derive a triangular volume shell element, cf. Z88 function SHAD88.C: /*----------------------------------------------------------* Setting the brackets of the shape functions *----------------------------------------------------------*/ rr2= 2. * (*r) * (*r); ss2= 2. * (*s) * (*s); r4 = 4. * (*r); r3 = 3. * (*r); s4 = 4. * (*s); s3 = 3. * (*s); rs4= 4. * (*r) * (*s); ept= 0.5* (1. + (*t)); emt= 0.5* (1. - (*t)); /*----------------------------------------------------------* Shape functions upper and lower plane *----------------------------------------------------------*/ h[ 1]= (rr2 + ss2 + rs4 - r3 - s3 + 1.) * ept; h[ 2]= (rr2 - (*r)) * ept; h[ 3]= (ss2 - (*s)) * ept; h[ 4]= (r4 - 2*rr2 - rs4) * ept; h[ 5]= rs4 * ept; h[ 6]= (s4 - 2*ss2 - rs4) * ept; h[ 7]= (rr2 + ss2 + rs4 - r3 - s3 + 1.) * emt; h[ 8]= (rr2 - (*r)) * emt; h[ 9]= (ss2 - (*s)) * emt; h[10]= (r4 - 2*rr2 - rs4) * emt; h[11]= rs4 * emt; h[12]= (s4 - 2*ss2 - rs4) * emt;
Figure 4.9-4: A triangular volume element with different displacement approaches: Z88 element type 22.
4.9 Some Remarks on Shells 139
Apart from that, both of these volume shell routines are practically functionally identical to the “normal” hexahedron routines HEXA88.C (hexahedron with 20 nodes) and LQUA88.C (hexahedron with 8 nodes). These elements No. 21 and No. 22 have the advantage that they compute very exactly and that one really does not need to bother about rotational degrees of freedom as for “real” shells – there only are three displacements in the space. The quadrangular volume shell element No. 21 can be generated even by the mapped mesher Z88N. But at the same time, these elements have a strong disadvantage: So to speak “steady” meshes have to be given (cf. Figure 4.9-5): Sharp corners, T crossings (cf. Figure 4.9-5) etc. are not representable, unless one would insert hexahedrons as connecting elements on such unstable corners, which is purely theoretically imaginable, but is less practicable.
Figure 4.9-5: Shell elements No. 23 represent a T crossing easily; with volume shell elements No. 21 and No. 22 this is impossible.
However, such parts work for volume shell elements No. 21 and No. 22:
Figure 4.9-6: Hemisphere
140 4 Finite Elements and Element Matrices
Figure 4.9-7: Metal bellow
Figure 4.9-8: Belleville spring
It shall be noted, that one can combine two nodes to one single node on half the shell thickness along the “thin” sides of these volume shell elements, i.e. the elements according to Figures 4.9-3 and 4.9-4 have only 8 or 6 nodes. These are the so-called Ahmad elements, which were already formulated by Sohrabuddin Ahmad in 1970 (cf. /117/). Because these elements are not quite simple to derivate and also can have certain disadvantages, they shall not be examined here within the scope of a simple shell consideration.
4.9 Some Remarks on Shells 141
But exactly for rotationally-symmetric structures ring-shaped elements, so-called torus elements, are particularly suitable if – and this is a conditio sine qua non – the fixtures and loads are also rotationally-symmetric. However, this is the case for a lot of components (cf. Figures 4.9-6 to 4.9-8). Hence:
2. Axisymmetric “Shells”, so-called Torus Elements The derivation of these elements is very easy: One takes shape functions for the plane case (cf. chapter 4.4), and the following constitutive matrices in accordance to chapter 4.2: ν ν 0 1 1−ν 1−ν ν ν 1−ν 1 0 E(1 − ν) 1−ν Cij = 1−2ν 0 0 0 (1 + ν)(1 − 2ν) 2(1−ν) ν ν 0 1 1−ν 1−ν With it, the torus elements Z88 No. 6 (linear displacement approach), No. 8 and No. 15 (quadratic Serendipity displacement approach) and No. 12 (cubic Serendipity displacement approach) can be formulated.
Thus, a Belleville spring, according to Figure 4.9-8, can be calculated either with volume elements like tetrahedrons Z88 No. 16 or 17 or with hexahedrons No. 1 or 10, volume shells No. 21 or 22, plane shells No. 23 or 24 or torus elements No. 6, 8, 12 or 15. Nevertheless, the input expenditure and computation time are by far the lowest for torus elements, cf. Figure 4.9-10 and the example 13.9.
Figure 4.9-10: Belleville spring represented with 50 torus elements No. 8. Only two boundary conditions are necessary: Load in the left upper node, support in the right lower node.
3. Plane Shell Elements from Superposition of the Plane State of Stress and the Plate State of Stress In addition to the “official” definition of shells above, we would also label plane surface structures which are diagonal in space, so not parallel to the XY plane like plane stress elements and plates, as shells in the FE sense. Thus, a combination of plane state of stress and plate state of stress is given, and it is not unreasonable to approach the shell problem exactly from this relatively simple perception. In the literature, these actually very practice-useful elements are treated a little bit unfavorable. This is totally inappropriate, because they reflect the set-up of CAD data like no other shell element type: Practically all spatial components, regardless of whether they are massive components, such as pistons, connecting rods or whole cylinder crank cabinets or thin metal sheet components like bonnets, fenders or air foils, they can be modelled by a surface mesh out of triangles, and this is also done on a grand scale. There are CAD data formats like the STL format,
142 4 Finite Elements and Element Matrices
originally created for the stereolithography, which practically every simple-3D CAD program, which describes exactly those triangular meshes of the surfaces, can export. And triangles in CAD systems are always plane, because a triangle is the unequivocal and at the same time the easiest method to describe a plane in space. But also for graphic data processing up to computer games, one uses preferably surface triangular meshes, precisely because a triangle is always plane (a quadrangle or another polygon can be plane, however, it must not be plane), and the lighting algorithms in 3D graphics libraries like OpenGL only operate reliable and reproducible if they find plane surfaces (cf. Rieg /95/). Look at the STL representation Figure 4.9-11 to that effect; one recognizes, that if several triangles are coplanar, it originates the impression of a quadrangle.
Figure 4.9-11: STL representations of triangles (cf. Rieg /95/). Coplanar triangles create the optical impression of quadrangle surfaces.
Finally FE-meshers integrated in CAD systems, e.g. PRO/MECHANICA, also generate such meshes of planar triangles or tetrahedrons. From this, one can draw a very important conclusion for the FE calculation practice: It is not at all necessary to have shell elements in an FE program in space, which are curved, because practically all CAD systems and FE meshers only generate single or double triangular meshes or also quadrangle meshes with surfaces, which are always plane. Hence, such triangle and quadrangle shell elements out of plane surfaces shall be briefly derived: On the one hand we start with the plane stress element state (Figure 4.9-12), and on the other hand with the plate stress state (Figure 4.9-13). Here we already see the first problem: In each case we must work with two separated coordinate systems, a local coordinate system xyz for the definition of the respective stress or load states and a global coordinate system XYZ for the FE element stiffness matrices and the FE displacements.
4.9 Some Remarks on Shells 143
Figure 4.9-12: Plane state of stress for the local coordinate system xyz in the global coordinate system XYZ.
Figure 4.9-13: Plate state of stress for the local coordinate system xyz in the global coordinate system XYZ.
Figure 4.9-14: Overlapping of plane state of stress and plate state of stress in the local coordinate system xyz = shell state of stress in the global coordinate system XYZ.
On the following pages, we take a closer look at the shell routine SHAF88.C for triangular shells with 6 nodes, that is formed by the shell routines ISOD88.C and the plate routine SPLA88.C. In
144 4 Finite Elements and Element Matrices
the first step, the global coordinates of the triangle must be converted to local coordinates, Figure 4.9-15. In addition, the vector 2-1 spans the local x-axis, one calculates the vector 3-1, and the cross product of vector 2-1 and 3-1 forms the local z-axis. Be careful: The vector 3-1 is not the local y-axis because the angle must not necessarily be 90° between the vectors 2-1 and 3-1. Then the local y-axis is presented by the cross product of the local z-axis and vector 2-1.
Figure 4.9-15: Coordinate transformation for the coordinates of a triangle
For the coordinate transformation in space, it is valid: x X VXX VXY VXZ y = λ · Y , λ = VYX VYY VYZ VZX VZY VZZ z Z
Besides, VAB are the respective direction cosines; the following program segment summarizes what has been said so far: /*---------------------------------------------------------------------* Converting the global coordinates into local coordinates *---------------------------------------------------------------------*/ /*====================================================================== * Vector 2-1 spans the local axis x *=====================================================================*/ a21x= xk[2] - xk[1]; a21y= yk[2] - yk[1]; a21z= zk[2] - zk[1]; rl21 = sqrt(a21x*a21x + a21y*a21y + a21z*a21z); /*====================================================================== * Vector 3-1 is used for cross product azs *=====================================================================*/ a31x= xk[3]-xk[1]; a31y= yk[3]-yk[1]; a31z= zk[3]-zk[1];
4.9 Some Remarks on Shells 145
/*====================================================================== * azs is cross product from a21 and a31 and forms the local axis z *=====================================================================*/ azsx= a21y*a31z - a21z*a31y; azsy= a21z*a31x - a21x*a31z; azsz= a21x*a31y - a21y*a31x; rlzs = sqrt(azsx*azsx + azsy*azsy + azsz*azsz); /*====================================================================== * ays is cross product from azs and a21 and forms the local axis y *=====================================================================*/ aysx= azsy*a21z - azsz*a21y; aysy= azsz*a21x - azsx*a21z; aysz= azsx*a21y - azsy*a21x; rlys = sqrt(aysx*aysx + aysy*aysy + aysz*aysz); /*====================================================================== * Direction cosine x-X, x-Y and x-Z *=====================================================================*/ vxx=a21x/rl21; vxy=a21y/rl21; vxz=a21z/rl21; /*====================================================================== * Direction cosine y-X, y-Y and y-Z *=====================================================================*/ vyx=aysx/rlys; vyy=aysy/rlys; vyz=aysz/rlys; /*====================================================================== * Direction cosine z-X, z-Y and z-Z *=====================================================================*/ vzx=azsx/rlzs; vzy=azsy/rlzs; vzz=azsz/rlzs; /*====================================================================== * Buffering xk on xc, so that xk can become local *=====================================================================*/ for(i= 1; i <= 6; i++) {
146 4 Finite Elements and Element Matrices
xc[i]= xk[i]; yc[i]= yk[i]; zc[i]= zk[i]; } /*====================================================================== * now transforming the coordinates, now xk, yk, zk are local *=====================================================================*/ for(i= 1; i <= 6; i++) { xk[i]= vxx*xc[i] + vxy*yc[i] + vxz*zc[i]; yk[i]= vyx*xc[i] + vyy*yc[i] + vyz*zc[i]; zk[i]= vzx*xc[i] + vzy*yc[i] + vzz*zc[i]; /* is not necessary*/ }
Afterwards the plane stress element routine ISOD88 is called and their plane stress elements stiffness components are inserted in the shell element stiffness matrix. Then the call of the plate routine SPLA88 delivers the plate stiffness components for the shell element stiffness matrix. The real compilation scheme for the element stiffness matrix is really tricky (cf. Figure 4.9-16).
Figure 4.9-16: Compilation scheme of the element stiffness matrix for plane shell triangles with 6 nodes. Besides, Sij are the plane stress element parts, Pij the plate parts, and Iij represents the pseudo degree of freedom Θz.
4.9 Some Remarks on Shells 147
Now a little trick must be applied: The torsion Θz around the local z-axis does not actually exist; due to the plate approach, there are only the local torsions Θx and Θy around the local axes x and y. For the shell, a pseudo degree of freedom must be inserted pro forma, namely the torsion Θz around the local z-axis. Bathe /4/ recommends to assign about one thousandth of the value of the smallest diagonal element to these stiffness coefficients. This degree of freedom does not have any importance for the interpretation of the displacements, and there also is no use for the torsions around the global axes X and Y. However, this is not bad, because in practice in space only the global deformations of component are interesting for the designer, torsions cannot be displayed usefully anyway in a graphical post-processor. Please note the difference in the mindsets of design engineers (and the authors of this book are design engineers!) and the more theoretically oriented technical mechanics. The global element stiffness matrix of the plane shell is: Keglobal = TT · Kelocal · T, with the transformation matrix T=
L 0 0 0 0 0
0 L 0 0 0 0
0 0 L 0 0 0
0 0 0 L 0 0
0 0 0 0 L 0
0 0 0 0 0 0
λ L = 0 with
0 λ
and
for a 6 node element is:
VXX λ = VYX VZX
VXY VYY VZY
VXZ VYZ VZZ
The shell routines SHAF88.C and SHAV88.C show further details. Thus, the plane shell elements No. 23 and No. 24 originate (see figures 4.9-17 and 4.9-18). One can use these elements in cooperation with 3D CAD systems and STL files generated with these. The calculation accuracy is useful, but not quite outstanding. But, as every expert will confirm, ideal shell elements, which are suited universally, do not exist to this day! With this, you have got the first impression of shell elements.
Figure 4.9-17: Plane-shell element Z88 No. 23
148 4 Finite Elements and Element Matrices
Figure 4.9-18: Plane-shell element Z88 No. 24
■■4.10 Element
Matrices for Heat Transfer
For the temperature analysis, the element matrices are a little simpler than for the elastostatic. The calculation of the heat transfer is not so complex due to the one-dimensional heat flow. We remember that the elastostatic has 2 or 3 displacements and 3 or 6 strain and stress components, the temperature, however, has only 2 direction derivations in the plane and 3 in the space. This means, considering a node of a finite element, this conducts its temperature value in all three-space directions equally, while by a linear, static-mechanical simulation the displacement is divided direction-dependent. If we look at the thermal conductivity matrix of an element, KW,elem = BT λBdV Vol
so this is composed of the partial derivations of the nth shape functions in the spatial directions B=
∂N1 ∂x ∂N1 ∂y ∂N1 ∂z
∂N2 ∂x ∂N2 ∂y ∂N2 ∂z
...
...
...
∂Nn ∂x ∂Nn ∂y ∂Nn ∂z
and the thermal conductivity, λx 0 0 λ = 0 λy 0 0 0 λz
4.10 Element Matrices for Heat Transfer 149
which is also direction-dependent for orthotropic materials. For isotropic materials there is no direction dependence, from what a scalar results simplifying for λ. Therefore, it also can be written KW,elem = λ BT BdV Vol
In contrast to the elastostatic the shape functions do not describe the displacement field of the displacements in the nodes, but the temperature field of the temperatures in the nodes. Now the thermal conductivity matrix must be again converted with the help of the Gauss-Legendre quadrature (chapter 4.5) into the numerical form suitable for computer systems. As for the elastostatic calculation, the trick, that the finite element is transformed program-internally on a coordinate system r, s and t and is calculated, is also applied here. Therefore, the following equation with the substitution rule known for multiple integrals, which has to be implemented in a computer system results (cf. chapter 4.5). KW,elem = λ BT BdV Vol
+1+1+1 =λ BT (r,s,t) B(r,s,t) det J(r,s,t)drdsdt −1 −1 −1 ns nt nr
≈λ
αi αj αk BT (ri ,sj ,tk ) B (ri ,sj ,tk ) det J (ri ,sj ,tk )
i=1 j=1 k=1
How does it look like in Z88tm now? If we consider an exemplary node for the thermal conductivity matrix of the linear hexahedron, the following results: for(k =1; k<=8; k++) { for (j = 1; j<=8; j++) { btb[j+((k-1)*8)] = b[k]*b[j] +b[8+k]*b[j+8] +b[16+k]*b[j+16]; } }
This section shows the multiplication of BTB. If it is compared to the elastostatics, you can recognize, that only one degree of freedom is considered per node. The thermal conductivity matrix, in the source code designated with se in the node k, is multiplied with the scalar of the thermal conductivity, because we prescribe an isotropic material behaviour. for (k = 1; k<=64; k++) se[k]= se[k]*lambda;
150 4 Finite Elements and Element Matrices
The next step of the compilation is comparable to the elastostatic simulation again. This is valid for a pure thermal simulation. For a thermomechanical simulation, in addition to the thermal conductivity matrix, the element matrices known from the elastostatics are used in addition. To achieve a consistency of the degrees of freedom, the thermal strain is internally re-written on the degrees of freedom of the static-mechanical simulation. Therefore it can be guaranteed that the solvent equation system with the element stiffness matrix exists.
■■4.11 Element
Matrices for Vibration
As the introductory derivation, found in chapter 3.4, has shown, a standard eigenvalue problem (EVP) represents the natural oscillations of the treated FE structure. The describing system matrix is composed of the structure stiffness matrix K, which was already used for the linear-elastic calculation, and the into upper and lower triangular matrix disassembled mass matrix M. Since the mass matrix, just as the structure stiffness matrix, should illustrate spatial properties at node level, the mass that can be determined for every single finite element via volume and material density must be distributed to the enclosed nodes. The easiest method for this distribution is to divide the element mass Mi simply by the number n of the nodes of the 1
concerning element model and to associate these “average node mass” mi = · Mi to every FE n node. If this is done for all elements of the FE mesh and mi is gathered successively, every node receives just about the mass of the surrounding space area. Figure 4.11-1 demonstrates the process with the help of four neighboring linear tetrahedrons.
Figure 4.11-1: Element masses of four tetrahedron elements (on the left) and their distribution of enclosed nodes (on the right)
If one arranges these accumulated node masses mi in matrix form and remembers that M should have the same size as K – every row also corresponds to a degree of freedom of a node – in the 3D case the following diagonal matrix arises:
4.11 Element Matrices for Vibration 151
M M=
m1 0 0 0 0 0 .. . 0 0 0
0 m1 0 0 0 0 .. . 0 0 0
0 0 m1 0 0 0 .. . 0 0 0
0 0 0 m2 0 0 .. . 0 0 0
0 0 0 0 m2 0 .. . 0 0 0
0 0 0 0 0 m2 .. . 0 0 0
··· ··· ··· ··· ··· ··· .. . ··· ··· ···
0 0 0 0 0 0 .. . mn 0 0
0 0 0 0 0 0 .. . 0 mn 0
0 0 0 0 0 0 .. . 0 0 mn
Because every row and column now contains only one entry, one speaks of a “concentrated mass matrix”. For the programming, the storage in vector form is convenient enough. But the diagonal shape still has a more valuable advantage. We remember the formula for the system matrix AEVP = L− 1 · K · L− T . Here, according to derivation, a Cholesky decomposition of the dimension matrix in M = L · LT was required. Now this operation can already completely be written down: 1 √ 0 0 0 0 0 ··· 0 0 0 m1 0 √1 0 0 0 0 ··· 0 0 0 m1 √1 0 0 0 0 0 · · · 0 0 0 m 1 0 √1 0 0 0 0 · · · 0 0 0 m2 0 1 √ 0 0 0 0 ··· 0 0 0 m 2 L−1 = L−T = √1 0 0 0 0 0 · · · 0 0 0 m2 .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . 0 0 0 0 0 0 · · · √1mn 0 0 0 √1 0 0 0 0 0 ··· 0 0 mn 1 √ ··· 0 0 0 0 0 0 0 0 mn
For the product merely every matrix entry of the structure stiffness matrix K i,j must be multiplied by mk-1 / 2 and ml-1 / 2, where at the indices k and l mark the node numbers of the nodes described by i and j. No new non-zero entries originate, which is of course extremely useful for the sparse storage. If M was not shaped diagonally, this would not be guaranteed. However, thanks to the “concentrated masses” the EVP matrix can be set up with really low expenditure: . AEVP = L− 1 · K · L− T
152 4 Finite Elements and Element Matrices
■■4.12 Element
Matrices of the Non-linear Finite Element Analysis
The implementation of this subchapter connects to chapter 3.5. For non-linear finite element analyses, there are element matrices exactly like in the linear case. Then more precisely, however, those are not element stiffness matrices, but element tangent stiffness matrices. Since this word is so bulky, we name them in the following element tangent matrices. Following the procedure in chapter 4.1, we now introduce the completed formula: T ^ T)dV KeT = B CB + ŜST dV Ve
It can be recognized that the calculation is very alike to that in the linear case. Though the left term in the integral has the same shape at first sight, however, the matrices B and C are a little bit different to calculate. The right term originates because the matrix B depends on the displacement. But now step by step:
First, it is important to remember again that, in connection with chapter 3.5, it will be worked in Lagrangian coordinates. Hence, the integration must be executed over the volume of the undeflected finite element, because all sizes of the integrand are referred to the source structure. For the derivation of the single matrices, we start from the last formula of chapter 3.5: 6 i=1
V
Si δλi dV =
3 A
i=1
Ti δUi dA
This formula corresponds to the principle of the virtual work, which was introduced in chapter 4.1. Since the virtual work is a scalar, this relation is in any coordinate systems valid. However, we will work in Cartesian coordinates. A formulation of the formula in curvilinear coordinates for the calculation of rotation-symmetrical components can be found in /126/. In matrix notation with 6-dimensional stress vector S, 6-dimensional vector of the virtual strains δλ, 3-dimensional stress vector T and the virtual displacements δU, the connection is the following: T T V
δλ SdV =
A
δU TdA
The integrations are referred to as a finite element in the following. Equally they can be also referred to as the whole component, then one receives the structure stiffness matrix introduced in chapter 2 or here the whole tangent stiffness matrix or tangent matrix. The integration area can be additively disassembled, because integration is a sum with endlessly many summands, and thus the tangent matrix can be written again as a sum of the element tangent matrices. We introduce the discretization δU =
i
δUi Ni
and first only consider the surface integral: A
i
Ni δUTi TdA
4.12 Element Matrices of the Non-linear Finite Element Analysis 153
The aggregation of the virtual displacements of all n nodes in a vector according to δU1 δU2 δU = . = .. δUn
δU1 δV1 δW1 δU2 δV2 δW2 .. . δUn δVn δWn
allows the representation in FE notation afterwards.
T δU A
N1 0 0
Nn 0 0
0 N1 0 .. . 0 Nn 0
0 0 N1
TdA 0 0 Nn
Since δU is the vector of the discretized virtual displacements, the vector can be pulled out of the integral. Then the remaining integration is the vector of the nodal forces. F= A
V
N1 0 0
Nn 0 0
0 N1 0 .. . 0 Nn 0
δλT SdV = δUT F
0 0 N1
TdA 0 0 Nn
Next we write the virtual strain as a function of the virtual displacements of the nodes:
δλ =
∂λ δU ∂U
At this point, the B matrix is defined. B: =
∂λ ∂U
So that finally, the following results: (BδU)T S dV = δUT F V ⇔ δUT BT S dV = δUT F V
154 4 Finite Elements and Element Matrices
Also here, the vector of the discretized node displacements can be written in front of the integral, because it does not depend on the local coordinates. T T δU
V
B S dV − F
=0
For arbitrary, virtual displacements, this equation can be fulfilled only if the contents of the braces disappear. Therefore, it results for the non-linear equation system: T V
B S dV − F = 0
The non-linearity can be founded now in the B matrix, in the stress vector S or in case of the presence of non-linearity on the basis of boundary conditions also in the load vector F. Here, the considerations confines themselves to geometrical non-linearity. Hence, the B matrix will be the focus. Its structure resembles the one of the strain displacement transformation matrix from chapter 4.3. However, it combines strain changes and displacement changes and can be designated, hence, as strain change displacement change the transformation matrix. Since this name is rather bulky, we will mostly use the simple term “B matrix” in the following. For the connection of the virtual strains with the virtual displacements, we had already introduced the B matrix, strain changes and displacement changes are to treat analogously. dλ = BdU
For 3D continuum elements, the matrix has the following structure: B = (B1 B2 … Bn) For every of the n nodes. A sub matrix exists, which has six rows and three columns. Every sub matrix Bi contains sub matrices for the single degrees of freedom of a node again. Bi =
∂λ ∂λ ∂λ ∂Ui ∂Vi ∂Wi
After inserting the discretization
U=
i
Ui Ni
in the expressions for the calculation of the Lagrangian strain (cf. chapter 3.5), finally, we receive the calculation instructions for the single sub matrices of Bi. n N + N N U i,1 l=1 i,1 l,1 l n Ni,2 Nl,2 Ul l=1 n Ni,3 Nl,3 Ul ∂λ l=1 = n ∂Ui N + N N U + N N U i,2 i,1 l,2 l i,2 l,1 l l=1 n Ni,2 Nl,3 Ul + Ni,3 Nl,2 Ul l=1 n Ni,3 + Ni,3 Nl,1 Ul + Ni,1 Nl,3 Ul l=1
4.12 Element Matrices of the Non-linear Finite Element Analysis 155
And we have abbreviated the derivations of the shape functions in this matrix according to the following scheme to uphold the clarity. Ni,j : =
∂Ni ∂Xj
n
Ni,1 Nl,1 Vl
l=1 n Ni,2 + Ni,2 Nl,2 Vl l=1 n Ni,3 Nl,3 Vl ∂λ l=1 = n ∂Vi N + N N V + N N V i,1 i,1 l,2 l i,2 l,1 l l=1 n N + N N V + N N V i,2 l,3 l i,3 l,2 l i,3 l=1 n Ni,3 Nl,1 Vl + Ni,1 Nl,3 Vl l=1
;
n
Ni,1 Nl,1 Wl
l=1 n Ni,2 Nl,2 Wl l=1 n Ni,3 + Ni,3 Nl,3 Wl ∂λ l=1 = n ∂Wi Ni,1 Nl,2 Wl + Ni,2 Nl,1 Wl l=1 n N + N N W + N N W i,2 l,3 l i,3 l,2 l i,2 l=1 n Ni,1 + Ni,3 Nl,1 Wl + Ni,1 Nl,3 Wl l=1
;
It is evident here, that these entries depend on the node displacements. This is a basic difference to the strain-displacement transformation matrix, which is used in the linear FEA and is independent on the node displacements. However, we go back again to the non-linear equation system to close the circle to the formula shown at the beginning for the element tangent matrix. The non-linear equation system BT S dV − F = 0
V
is solved with the Newton Raphson method, which corresponds the application of the Newton’s method to the vector-valued functions appearing in the FEA. For the application of the Newton’s method, a linearization of the equation is necessary by means of the Taylor expansion. This would be already shown here, however, further details for the solution process are shown in chapter 6.6. ∂ T T T ∆Ui+1 =! 0 B S dV − F ≈ B S dV − F + B S dV − F ∂U V
V
i
V
i
The index i marks the working point or the developing point and later the iteration step of the Newton Raphson method. The preserved equation is valid for the complete system, as well as for a single element. If we refer it to a single element, the element tangent matrix can be defined with the help of the derivation term. ∂ KeT : = BT S dV − F ∂U
Ve
For displacement-independent loads we receive the following expression taking into account the Leibniz rule as well as the chain rule.
156 4 Finite Elements and Element Matrices
K KeTeT
∂S ∂λ ∂λ TT ∂S ^ ^ ST ST ++ BB == dV dV ŜT ∂λ ∂λ ∂U ∂U VVee
In it, we find the constitutive matrix C=
∂S ∂λ
and the B matrix again. The constitutive matrix is, because we disregard material non-linearity, identical with the one from chapter 4.2 and with it, it is independent of the displacement. If we change the order of the summands, we will finally receive the destination formula for the element tangent matrix. T ^ŜT) dV KeT = B CB + ST Ve
The term on the right originates from the attention of the product rule and contains, in special representation, the derivations of the B matrix, multiplied by the stresses. Since the derivation of a matrix with respect of a vector evades the representation in a plane figure scheme, two new matrices were introduced at this point: the transformation gradient matrix T and a stress matrix Ŝ, which is composed from the stress vector S in special way. � T � T T=� � � �T m
T T �
� � �
T m � � � � � � T mm �
Here, m gives the number of degrees of freedom, for 3D continuum elements it is valid m = 3 x n. The dimension of the T matrix is: Rows × columns (6 ⋅ number of degrees of freedom) × number of degrees of freedom The single sub matrices are defined according to the following scheme. ∂B 1i
Tij =
∂Uj ∂B2i ∂Uj ∂B3i ∂Uj ∂B4i ∂Uj ∂B5i ∂Uj ∂B6i ∂Uj
After inserting the expressions of the B matrix here, you will see that some entries of the T matrix disappear and at last the following structure remains.
4.12 Element Matrices of the Non-linear Finite Element Analysis 157
T11 0 0 T = T41 .. . 0
0 T22 0 0 .. . 0
0 0 T33 0 .. . Tm3
T14 0 0 T44 .. . 0
··· ··· ··· ··· .. . ···
0 0 T3m 0 .. . Tmm
It is necessary for the right assembly of the single factors after the application of the product rule to put together the stress vectors S into a matrix Ŝ. This will contain the dimension. Rows × columns number of degrees of freedom × (6 ⋅ number of degrees of freedom)
and has the following shape. T S 0 ··· 0 .. 0 ST . ^ Ŝ: S: = . .. . .. .. . 0 · · · · · · ST
Now with it, all matrices are available for the calculation of the element tangent matrix. The numerical integration is unmodified compared to chapter 4.5, the same is valid for the coordinate transformation by means of the Jacobi matrix or its inverse. It is important for the latter that the natural coordinates r, s, t are connected with the coordinates X, Y, Z of the undeflected structure for the Jacobi matrix, because we work here in Lagrangian coordinates. For the computer-technical execution, it makes sense to maintain the clarity to calculate the single matrices via separate routines. In Figure 4.12-1, a possible execution of this process is illustrated.
158 4 Finite Elements and Element Matrices
coordinates of the nodes and actual nodal displacements
calling Gaussian coordinates
loop covering the integration points
calculating Jacobian matrix calling Gaussian weight
calculating B matrix
calculating T matrix
calculating strains
calculation of tangent stiffness matrix
KTe =
( B C B + Sˆ T ) dV T
Ve
calling material routine: calculation of material matrix and stress vector calculating stress matrix Sˆ
tangent stiffness matrix of element
Figure 4.12-1: Scheme of an element routine for non-linear calculations, element matrices
In Figure 4.12-1, it can be seen that the complete routine has the actual displacement values (of the respective element) as input quantities for the calculation of an element tangent matrix beside the node coordinates. This is a peculiarity of the non-linear calculation. Another peculiarity is the need of the calculation of the internal element forces in every iteration step. These must be calculated just as the element tangent matrices for every element and compiled afterwards. In Figure 4.12-2, a possible execution of this calculation is illustrated.
4.12 Element Matrices of the Non-linear Finite Element Analysis 159
coordinates of the nodes and actual nodal displacements
calling Gaussian coordinates
loop covering the integration points
calculating Jacobian matrix calling Gaussian weight
calculating B matrix
calculating strains calling material routine: calculation of material matrix and stress vector calculation of inner forces
Re =
BT S dV Ve
inner forces
Figure 4.12-2: Scheme of an element routine for non-linear calculations, internal forces
160 4 Finite Elements and Element Matrices
Finally, we look at the element tangent matrix KTe once again in more detail and answer the question whether it is symmetric or not. For this purpose, we compare it to its transposed: ?
Ke ?= KeTeT T KeTT= ?K T T T ST ST ^ + BTT CB dV ?= ^ CB T dV ^ ^ ++BBT CB ŜT ŜT CB dV = dV ST + B ST Ve Ve Ve
Ve
The integration can be disregarded, because it extends over the same integration area. Consider ing the calculation rules for transposing /118/, the following connection results. ?
ŜT + BT CB = TT ŜT + (CB)T B ? ŜT + BT CB = TT ŜT + BT CT B
ST
0
0
ST
.. . 0
···
^ =? TT S ^T ST Let us start with the left summand in each case and insert the definitions of the matrices T and Ŝ. T11 0 0 T14 · · · 0 ^ =?? TTTS^T T TT11 0 0 TT41 · · · 0 Ŝ ST T =T Ŝ S 0 T · · · 0 0 T22T11 00 00 T14· · ·· · · 00 T11 0 0 TT220 T0T41 · · · 0 0 ·· · 0 T S 0 · T S 0 · ·· 0 ·· 0 0 T22 0 0T · · · 0 .. 0 0 0 TT22 00 0 · · ·· · · T 0 0 0 · · · 0 0 T 33 3m . 0. 33 . S 0 .. 0 ST 0 S 0 · · · T3m 0 ··· 0 0 0 T33 0 TT33 ? .. T T T41 0 T ··· 00 00 T0 T ·· · 0 0 =?=T T14 T .. . . 0 44 T44 · · · · · · 44 0 T14 0 T41 0 .. .. 44 . . .. ... . .. . . . . . .. . . . . .. ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . 0 ..· · · · · · ..ST .. . ... . .. . . .. . . .. . .. . ... · · 0S · · · · · · 0 S·T· · · 0 0 Tm3 0 · · · Tmm 0 0 TT3m 0T · · · TTmm 0 0 Tm3 0 · · · Tmm 0 0 T3m 0 · · · TTmm
ST T11
0 0 T41 .. . 0
ST T11
0
ST T022
0S
0
0
ST T33
0
0
0
ST T44
ST T33
0
ST Tm3
.. .
0
ST T14
0
0 0 T 0 S T22 T41 0 .. . 0
.. .
0
0
.. .
T
T14
0
.. .
0
ST T44 T
S Tm3
.. .
0
0
.. . 0
···
· · ·· · · · · ·· · · ···
··· ··· ..
..
.
···
.
···
0
TT11 S
0
0
TT41 S
T T 00 T22 S 0 0 0T11 S T S T3m TT33 S 0 0 0 TT22 0 S ? T = 0 0 0 T14 S T S T3m . 0 . 0 . .. . .. ? .. . = T . 0 S 0 T 14 T T
TT33 S
ST Tmm
TT3m S
S Tmm
.. .
0 .. .
0
0
T3m S
.. .
0
00 0
0
TT44 S .. .
0
0
.. .
0
···
T · · ·T41 S0 · · · T · · · Tm3 S 0 · · · ··· 0 0 · · · .. .. . . TT44 S · · · · · · TTmm S
.. .
..
0
···
.
0
T Tm3 S 0 .. . T 0
Tmm S
···
..
.
···
4.12 Element Matrices of the Non-linear Finite Element Analysis 161
Since the single sub “matrices” reduce to a scalar (S was the 6-dimensional stress vector, the sub matrices Tij has also the dimension 6 x 1) on both sides, the question on the symmetry simplifies: ?
ST Tij = TTji S ?
Tij = Tji
To clear up this question, we consider once again the definition of the sub matrix Tij, and insert the calculation formula for the B matrix.
Tij =
∂B1i ∂Uj ∂B2i ∂Uj ∂B3i ∂Uj ∂B4i ∂Uj ∂B5i ∂Uj ∂B6i ∂Uj
=
∂λ1 ∂Uj ∂Ui ∂λ2 ∂Uj ∂Ui ∂λ3 ∂Uj ∂Ui ∂λ4 ∂Uj ∂Ui ∂λ5 ∂Uj ∂Ui ∂λ6 ∂Uj ∂Ui
On account of the theorem of Schwarz /118/ the order of the differentiations can be changed, without a value change of the derivation. Therefore, the question mark can be left out; it is valid:
Tij = Tji
and with it also Ŝ T = TT ŜT It remains to clear, whether the right summand in the following equation is symmetric in each case. ?
Ŝ T + BT C B = TT ŜT+ BT CT B This question leads to the symmetry of the constitutive matrix. ?
C = CT
For the answer, it is important to go into detail in regards to the material law. The used Hooke’s law distinguishes itself by a symmetric constitutive matrix, cf. chapter 4.2. For other material laws, it should be referred to further literature, e.g. Ogden /119/, Wriggers /120/, Parisch /121/, Crisfield /122/, Simo and Hughes /123/, Betten /41/, Zienkiewicz and Taylor /124/, Ting /125/. Table 4.12-1 gives a rough overview.
162 4 Finite Elements and Element Matrices
Table 4.12-1: The symmetry of the material matrix
Material law or class of material laws Hooke’s law
Property of the source constitutive ma trix Chapter 4.2 C = CT
Green elastic (= hyperelastic) material laws (e.g., C = CT the Ogden’s law)
Ogden /119/
Cauchy elastic material laws
C ≠ CT
Ogden /119/
Anisotropic (Green elastic) Material laws
C = CT
Ting /125/
Plastic material laws with associated flow rule
C = CT
Simo and Hughes /123/, Dörnhöfer /108/, Wriggers /120/
Plastic material laws with non-associated flow rule
C ≠ CT
Simo and Hughes /123/, Dörnhöfer /108/, Wriggers /120/
Summarized, this means that with the presence of a symmetric constitutive matrix, the element tangent matrix KTe , which considers geometrical non-linearity, is symmetric. An exception would be added here: if deflection-dependent loads are considered, an asymmetric element tangent matrix occurs for the symmetric constitutive matrix; for the exact derivation, we would like to refer at this point to Parisch /121/. Therefore, the element matrices of the non-linear FEA can not always, but mostly be addressed with solvers or algorithms and for symmetric matrices. The solution of non-linear systems of equations, which are constructed from the element matrices introduced here, is covered in chapter 6.6.
5
Compilation, Storage Schemes and Boundary Conditions
■■5.1 Compilation We remember the 3rd rule of the finite element analysis: Global stiffness matrix = sum of the element stiffness matrices Or written a little more mathematically: K=
Kei
i
As we have seen in chapter 2, this is the superposition principle known from the engineering mechanics, i.e. all stiffness components, which connect the involved finite elements, contrib uting to a common node, are added up for all relevant degrees of freedom. In chapter 2, as long as only two or three beams or trusses are given, one could summarize them quite intuitively with a sort of table or checkerboard. But if, as is usual with real struc tures, thousands or tens of thousands of finite elements and tens of thousands or hundreds of thousands of degrees of freedom occur, the compilation of course has to take place automatically, be able to handle different element types with a different quantity of nodes, consider different numbers of degrees of freedom for the nodes of a structure, build up the global stiffness matrix as memory saving as possible. In our opinion, these pretty complicated problems can only be considered in addition to real computer program architecture, since one will not be able to discuss this matter by nothing but describing implementations: The finite element analysis lives on the conversion into computer programs. One cannot carry out FEA with paper and pencil, though it is attempted in literature over and over again! The first demand seems trivial. Serious finite element analysis is, as already mentioned, only possible with the support of efficient computer programs, which have the attribute to run auto matically for the most part. But wait, how does our calculation program generally come to the essential information such as node coordinates and coincidence list, to mention the most impor tant ones?
164 5 Compilation, Storage Schemes and Boundary Conditions
The classic finite element programs were operating in batch mode, i.e. all the necessary num ber inputs were transferred onto punch cards, and this punch card stack has been read by the program. This is what we have already talked about in chapter 1. It looks out-dated and indeed it is. The abovementioned batch fashion, however, has not become out-dated: The program gets the whole data in one go, calculates and displays the results, which may take more or less time. FEA programs follow the IPO model like no other type of program: Input-Processing-Output. Known major programs like MARC or NASTRAN provide with their pre- and post-processor programs MENTAT or PATRAN the human-machine-interface. MARC and NASTRAN represent the actual solvers, which take over the input files of the pre-processors with, so to say, no inter action, then compute the element stiffness matrices, execute the compilation and solve this system of equations (which may be huge) after assembling the boundary conditions. The calcu lation results are written in files, which can be read and processed by the respective post-pro cessors (these can be graphic display programs, plot programs or print programs). All our implementations and also the FEA program Z88 follow this rather classic pattern of the IPO model. For the now following considerations, we assume that the input data is saved in a file and is structured as follows: 1. Data set: general information on the structure as Dimension of the structure (i.e. 2D or 3D) Number of nodes Number of elements Number of degrees of freedom Control flags for coordinate transformations etc. 2. Data set: coordinates of nodes as Node number Number of degrees of freedom of this node X-coordinate Y-coordinate Z-coordinate 3. Data set: list of coincidence consisting of two lines and including Line 1: element number and type of element Line 2: corresponding node numbers The fourth data set (material laws) can be skipped for now, since it is not important for the fol lowing considerations. All of the classic FEA programs follow the same pattern, also in this order. The first data set mainly delivers the counters for the loops, which run for the second and third data set. You can also leave out the first data set and instead place keywords like COOR and COIN in front of the following data sets, so that the program recognizes what has to be done with this data line. But the process of reading works much faster if you preset, e.g., 1,000 nodes and on this basis read in 1,000 times one line in the 2nd data set. This is how FORTRAN works, but also languages like C profit from such construction types, since especially the decoding of key words (thus process ing of characters) takes quite long.
5.1 Compilation 165
Storing the coordinates of the nodes is easy and straight forward: Now we can define three ar rays with, e.g., 1,000 memory positions, so x[1000],
y[1000],
z[1000]
and with these indices you could save 1,000 triples of coordinates. As everybody knows, the array or pointer indices of the programming language C begin with 0 and, not like the ones of FORTRAN 77, with 1 (as it is logical; with FORTRAN 90 the indices can start at any number, they can even be negative!). We recommend, for more complicated C-programs for the finite element analysis, to start with 1 as the first index so that you can keep a better overview. From now on this is the case: One thousand of coordinate triples would be defined either statically as follows: x[1001],
y[1001],
z[1001]
Or dynamically: double *x, *y, *z; x= (double *) calloc (1001, sizeof(double)); y= (double *) calloc (1001, sizeof(double)); z= (double *) calloc (1001, sizeof(double));
With languages like C, one can summarize the coordinate triples also as struct. But that doesn’t make the program faster. To every node the number of the degrees of freedom should be saved, too. This array or pointer may be called ifrei (you know that in C vectors are arrays and that pointers are vice versa arrays? And in FORTRAN it’s basically the same? Otherwise look at Kernighan and Ritchie /15/): ifrei[1001]
In general, we adopted the very good FORTRAN rule, that all variables, which begin with I, J, K, M, and N, the typical counters in mathematics, are integers and all the others define floatingpoint numbers. As an exception: All variables, which begin with C, should be of the type char. Also in the language C, in big programs one profits very much of such a (voluntary) convention (we regard the other common convention, the so-called “Hungarian” convention /16/ as too inconvenient in pure calculation programs). With storing the coincidence, it becomes already a little more difficult, as on the one hand sev eral nodes always belong to one finite element and on the other hand different finite element types have different node numbers. Hence, it is clever to define two arrays. The first array koi contains the list of coincidences and the second array koffs is a pointer to it to be able to carry out the address calculation.
166 5 Compilation, Storage Schemes and Boundary Conditions
Figure 5.1-1: Example of a spatial FE structure
Assuming we would begin with two trusses in our structure, i.e. two nodes per element. In that case, the array koi as the first array element contains a zero because we want to begin with the index 1. The array elements 2 and 3 contain both node numbers of the first truss, array ele ments 4 and 5 both node numbers of the second truss and so on. Up to this point, we wouldn’t need an offset array. What if the third finite element wouldn’t be a truss, but a hexahedron with 20 nodes (a process which would be permitted)? Here, our offset array koffs comes in: Its first element is 0, its second element is always 1, the third element points at the starting point of the second finite element in the coincidence array koi, the fourth array element points to the start ing point of the third finite element in the coincidence array koi and so forth. Now we suppose that our fourth finite element is a truss again. Then: koi={0,21,7,22,3,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, 23,2...} koffs = {0, 1, 3, 5, 25, ....}
Access to a node j of the finite element i: koi[koffs[i] + j –1]
Another example:
Figure 5.1-2: A plane FE structure with curvilinear 8-node Serendipity elements (see chapter 13, example 6)
5.1 Compilation 167
With this structure, the coincidence array koi would look as follows: koi= {0, 1,3,11,9,2,7,10,6, 3,5,13,11,4,8,12,7, ....., 35,27,29,37,31,28,32,36}
And the offset array of the coincidence array: koffs= {0, 1, 9, ..., 57}
Access to a node j of the finite element i: koi[koffs[i] + j –1]
One will be able to access the 5th node of the second element as follows: koi[koffs[2] + 5 - 1] = koi[13]= 4
To explain this, in the following, the reading routine RI188.C of Z88, which reads in the general structural data (file Z88I1.TXT), is given. The following definitions need to be considered: #define FR_DOUBLEAY
double *
/* Pointer to double */
#define FR_INT4AY
long *
/* Pointer to long */
#define FR_INT4
long
/* 4 Bytes Integer */
/*********************************************************************** * ri188 (strongly simplified, only for elements 4 and 10 for FEA book) * 15.7.2011 ***********************************************************************/ /*********************************************************************** * For UNIX ***********************************************************************/ #ifdef FR_UNIX #include #include
/* fopen,fclose,fprintf,fgets,sscanf */ /* FILE,rewind,NULL
#include
*/
/* sin,cos */
#endif /*********************************************************************** * For Windows ***********************************************************************/ #ifdef FR_WIN #include #include
/* fopen,fclose,fprintf,fgets,sscanf */ /* FILE,rewind,NULL
#include #endif
/* sin,cos */
*/
168 5 Compilation, Storage Schemes and Boundary Conditions
/*********************************************************************** * Functions ***********************************************************************/ int wrim88r(FR_INT4,int); int wlog88r(FR_INT4,int); /*********************************************************************** * function ri188 begins * ri188.c reads in z88i1.txt * opening file z88i1.txt ***********************************************************************/ int ri188(void) { extern FILE *fi1,*fwlo; extern char ci1[]; extern FR_DOUBLEAY x; extern FR_DOUBLEAY y; extern FR_DOUBLEAY z; extern FR_INT4AY koi; extern FR_INT4AY ifrei; extern FR_INT4AY koffs; extern FR_INT4AY ityp; extern FR_INT4 ndim,nkp,ne,nfg; FR_INT4 i,idummy,kofold= 0; char cline[256]; /*---------------------------------------------------------------------* Start Function *---------------------------------------------------------------------*/ /*---------------------------------------------------------------------* Open Z88I1.TXT *---------------------------------------------------------------------*/ fi1= fopen(ci1,“r“); rewind(fi1); /*---------------------------------------------------------------------* Read in common structure data *---------------------------------------------------------------------*/ fgets(cline,256,fi1); sscanf(cline,“%ld %ld %ld %ld“,&ndim,&nkp,&ne,&nfg); /*********************************************************************** * Read in coordinates ***********************************************************************/ for(i= 1; i <= nkp; i++) { fgets(cline,256,fi1); sscanf(cline,“%ld %ld %lg %lg %lg“,
5.1 Compilation 169
&idummy,&ifrei[i],&x[i],&y[i],&z[i]); } /*********************************************************************** * read in coincidence ***********************************************************************/ for(i= 1; i <= ne; i++) { fgets(cline,256,fi1); sscanf(cline,“%ld %ld“,&idummy,&ityp[i]); /*---------------------------------------------------------------------* fill * coincidence vector koi & related pointer vector koffs *---------------------------------------------------------------------*/ /*====================================================================== * element type 4 *=====================================================================*/ if(ityp[i]== 4) { if(i== 1) koffs[1]= 1; else
koffs[i]= koffs[i-1] + kofold;
fgets(cline,256,fi1); sscanf(cline,“%ld %ld“, &koi[koffs[i]
], &koi[koffs[i] +1]);
kofold= 2; } /*====================================================================== * element type 10 *=====================================================================*/ if(ityp[i]== 10) { if(i== 1) koffs[1]= 1; else
koffs[i]= koffs[i-1] + kofold;
fgets(cline,256,fi1); sscanf(cline,“%ld %ld %ld %ld %ld %ld %ld %ld %ld %ld\ %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld“, &koi[koffs[i]
], &koi[koffs[i] + 1],
&koi[koffs[i] + 2], &koi[koffs[i] + 3], &koi[koffs[i] + 4], &koi[koffs[i] + 5], &koi[koffs[i] + 6], &koi[koffs[i] + 7], &koi[koffs[i] + 8], &koi[koffs[i] + 9], &koi[koffs[i] +10], &koi[koffs[i] +11], &koi[koffs[i] +12], &koi[koffs[i] +13], &koi[koffs[i] +14], &koi[koffs[i] +15],
170 5 Compilation, Storage Schemes and Boundary Conditions
&koi[koffs[i] +16], &koi[koffs[i] +17], &koi[koffs[i] +18], &koi[koffs[i] +19]); kofold= 20; } } /*---------------------------------------------------------------------* close Z88I1.TXT *---------------------------------------------------------------------*/ fclose(fi1); return (0); }
In this program part, it stands out that all the arrays were dynamically defined as a pointer. This is a big advantage of the language C (also possible with FORTRAN 90). C-programs can request memory for arrays during the run time of the program. Especially with FEA programs, with which it is unknown how big the structures to be calculated will become during the pro gram run, the memory can be appropriately requested after reading in some structural infor mation. However, this requisition of the memory at run time does not completely come without problems. In UNIX operating systems, this actually works very well; in older versions of Win dows this is quite questionable. In any case, with critical program sections, it is better to re quest for the memory as soon as possible after the program starts and not work with free, realloc and suchlike during the program run. Concerning stability, this is an advantage of FORTRAN 77 programs: Here, arrays are only statically requested, i.e. already at compilation time. If the program is started, the program loader immediately recognizes out of the program header which amounts of memory are needed and whether the operating system can provide it. If the memory requirements cannot be satisfied, the program loader immediately quits the user program. But one can also operate with quasi-dynamic memory in FORTRAN 77 programs: The biggest part of the FEA program is given in the object code. Only one small FORTRAN 77 subroutine is given in the source code. Here, the pre-processor enters the memory needed for the current calculation case; afterwards the small subroutine is automatically translated and invisible for the user and is linked with the program rest, which is already compilated. This is very clever. With this trick, e.g., the commercial program MARC works. Back to the dynamic memory requirement. The easiest way is to provide a small file, which defines the memory in form of key words: DYNAMIC START
COMMON START
MAXGS 1000000 MAXKOI
MAXK
MAXE
MAXNFG
COMMON END
DYNAMIC END
20000 4000 2000 10000
5.1 Compilation 171
At the moment, this small file defines 1,000,000 storage positions for the global stiffness ma trix, for the coincidence array there may be reserved, 20,000 storage positions and for nodes and elements, 4,000 or 2,000 positions in each case are planned. There are 10,000 storage posi tions for all degrees of freedom. This file will be called Z88.DYN. A strongly simplified function DYN88R.C (the genuine and detailed function is included on the DVD), which provides the memory for all arrays for the Z88-Solver Z88R, should demonstrate how to dynamically request for memory with the small file shown above: These definitions have to be followed: #define FR_DOUBLEAY
double *
/* Pointer to double */
#define FR_INT4AY
long *
/* Pointer to long
#define FR_INT4
long
/* 4 Bytes Integer
*/
#define FR_CALLOC
calloc
/* calloc
*/
*/
/*********************************************************************** * function dyn88r reads z88.dyn and requests memory * opening file Z88.DYN once again (before already in lan88r) * 2.4.2002 – strongly simplified for FEA book ***********************************************************************/ /*********************************************************************** * For UNIX ***********************************************************************/ #ifdef FR_UNIX #include #include
/* FILE,NULL,fopen,fclose,fgets,sscanf */ /* rewind
#include
/* strstr */
#include
/* FR_CALLOC */
*/
#endif /*********************************************************************** * For Windows ***********************************************************************/ #ifdef FR_WIN #include #include
/* FILE,NULL,fopen,fclose,fgets,sscanf */ /* rewind
#include
/* strstr */
#include
/* FR_CALLOC */
*/
#endif /*********************************************************************** * Functions ***********************************************************************/ int wlog88r(FR_INT4,int); /*********************************************************************** * function dyn88r begins ***********************************************************************/
172 5 Compilation, Storage Schemes and Boundary Conditions
int dyn88r(void) { extern FR_DOUBLEAY gs; extern FR_DOUBLEAY x; extern FR_DOUBLEAY y; extern FR_DOUBLEAY z; extern FR_INT4AY ip; extern FR_INT4AY koi; extern FR_INT4AY ifrei; extern FR_INT4AY ioffs; extern FR_INT4AY koffs; extern FILE *fdyn, *fwlo; extern FR_INT4 MAXGS,MAXNFG,MAXK,MAXE,MAXKOI; char cline[256], cdummy[80]; /*---------------------------------------------------------------------* open dyn file z88.dyn *---------------------------------------------------------------------*/ fdyn= fopen(„z88.dyn“,“r“); if(fdyn == NULL)return(AL_NODYN); rewind(fdyn); /*---------------------------------------------------------------------* read dyn file z88.dyn *---------------------------------------------------------------------*/ fgets(cline,256,fdyn); if( (strstr(cline,“DYNAMIC START“))!= ZERO)
/* read file */
{ do { fgets(cline,256,fdyn); if( (strstr(cline,“COMMON START“))!= NULL)
/* read COMMON */
{ do { fgets(cline,256,fdyn); if( (strstr(cline,“MAXGS“))!= NULL)
/* read MAXGS */
sscanf(cline,“%s %ld“,cdummy,&MAXGS); if( (strstr(cline,“MAXKOI“))!= NULL)
/* read MAXKOI */
sscanf(cline,“%s %ld“,cdummy,&MAXKOI); if( (strstr(cline,“MAXK“))!= NULL)
/* read MAXK */
sscanf(cline,“%s %ld“,cdummy,&MAXK); if( (strstr(cline,“MAXE“))!= NULL) sscanf(cline,“%s %ld“,cdummy,&MAXE);
/* read MAXE */
5.1 Compilation 173
if( (strstr(cline,“MAXNFG“))!= NULL)
/* read MAXNFG */
sscanf(cline,“%s %ld“,cdummy,&MAXNFG); } while( (strstr(cline,“COMMON END“))== NULL); }
/* end if COMMON START */
} while( (strstr(cline,“DYNAMIC END“))== NULL); }
/* end if DYNAMIC START */
else { return(AL_WRONGDYN); } /*---------------------------------------------------------------------* file fdyn schliessen *---------------------------------------------------------------------*/ fclose(fdyn); /*---------------------------------------------------------------------* getting memory.. *---------------------------------------------------------------------*/ /*====================================================================== * memory for gs *=====================================================================*/ gs= (FR_DOUBLEAY) FR_CALLOC((MAXGS+1L),sizeof(double)); if(gs == NULL) return(AL_NOMEMY); /*====================================================================== * memory for x, y, z *=====================================================================*/ x= (FR_DOUBLEAY) FR_CALLOC((MAXK+1L),sizeof(double)); if(x == NULL) return(AL_NOMEMY); y= (FR_DOUBLEAY) FR_CALLOC((MAXK+1L),sizeof(double)); if(y == NULL) return(AL_NOMEMY); z= (FR_DOUBLEAY) FR_CALLOC((MAXK+1L),sizeof(double)); if(z == NULL) return(AL_NOMEMY); /*====================================================================== * memory for ip, koi *=====================================================================*/ ip= (FR_INT4AY) FR_CALLOC((MAXNFG+1L),sizeof(long)); if(ip == NULL) return(AL_NOMEMY); koi= (FR_INT4AY) FR_CALLOC((MAXKOI+1L),sizeof(long)); if(koi == NULL) return(AL_NOMEMY); /*====================================================================== * memory for ifrei, ioffs, koffs *=====================================================================*/ ifrei= (FR_INT4AY) FR_CALLOC((MAXK+1L),sizeof(long));
174 5 Compilation, Storage Schemes and Boundary Conditions
if(ifrei == NULL) return(AL_NOMEMY); ioffs= (FR_INT4AY) FR_CALLOC((MAXK+1L),sizeof(long)); if(ioffs == NULL) return(AL_NOMEMY); koffs= (FR_INT4AY) FR_CALLOC((MAXE+1L),sizeof(long)); if(koffs == NULL) return(AL_NOMEMY); /*********************************************************************** * everything o.k. ***********************************************************************/ return(0); }
■■5.2 Storage
Schemes
The essential preparations are finished and now we can start working on the actual storage schemes. In the meantime, it has become clear to the reader, that in pure theory the memory need is tremendous, especially for the global stiffness matrices. Based on our hypothesis above, i.e. 1,000 coordinate triples, that means, in case of the general state of stress there are given 1,000 nodes × 3 degrees of freedom per node = 3,000 degrees of freedom. The global stiffness matrix has the (theoretical) quantity of 3,000 × 3,000 = 9,000,000 storage spaces. If we intend double figures with 8 bytes in each case, this matrix needs memory of 9,000,000 × 8 bytes = 72,000,000 bytes = 72 MByte! And a structure with 1,000 nodes is really nothing special. With a medium-sized structure with, e.g., 20,000 nodes, the theoretical memory requirements would be 20,000 × 3 degrees of freedom × 20,000 × 3 degrees of freedom × 8 bytes = 28.8 GByte. Thus, it is evident that the usual matrix methods, as they can be found in the mathematical textbooks, are absolutely unsuitable for finite element analysis. One must know and use the peculiarities of the FEA equation systems to highly reduce the storage requirements. For FEA applications, there are basically three different processes known (there are others and also variations, but for this special subject we want to refer to the FEA standard works): The band width storage scheme The skyline storage scheme or as a variation, the Jennings storage scheme Saving of the non-zero elements Basically, from band width storage to skyline storage or Jennings storage to saving of the nonzero elements in each case, the memory need decreases noticeably, while the program complex ity increases quite perceptibly and with it also the computing time. This means: The band width storage is relatively simple to program and also very quick, but it mostly needs (of course there are exceptions to this rule ...) the biggest amount of memory. Vice versa, using the “saving of the non-zero elements” process requires an extremely small amount of memory, while the program-technical realization is very difficult. The skyline storage scheme or the Jennings stor age scheme is a good compromise and, hence, is popular in practice.
5.2 Storage Schemes 175
There are the following similarities for all three processes: a) Symmetrical and positive definite global stiffness matrices are always given with the FEA of elastostatic structures. Hence, it is sufficient to save either the lower triangle or the upper triangle. This meets the requirements of the LU factorization explained in chapter 6 (Figure 5.2-1). b) The global stiffness matrices are basically sparse, i.e. they contain a lot of zeros (Figure 5.2-2). c) The global stiffness matrices are often ill-conditioned (Figure 5.2-3). It results from statement c) that the matrix elements should be saved with at least 8 byte preci sion. This corresponds to the C or FORTRAN data model double or double precision or real*8. All calculations should always be executed with at least 8 bytes of accuracy. The data models float or real*4 are not important. Big machines are also able to operate with so called quad precision, i.e. 16 bytes per floating-point number. Z88 can be compilated like this; how ever, this seems to provide no advantages, according to our test runs. x
x x
x x x
x x x x
x x x x x
x x x x x x
x x x x x x x
x x x x x x x x
x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x x
x x x x x x x x x x x x
x x x x x x x x x x x x x
x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x
Figure 5.2-1: Example of an element stiffness matrix: Only the upper triangle must be saved.
x x x x x x x x x x x x x x x x x x x x
176 5 Compilation, Storage Schemes and Boundary Conditions
x
x x
x x
x x
x x x
x x
x x
x
x x
x
x x
x
x x x
x
x
x x
x
x
x
x
x
x
x x
x x
x x
x x
x x x
x x x
x
x
x
x x
x x
x
x
x
x x
x x Figure 5.2-2: Example of a sparse global stiffness matrix, only upper triangle U
1 10 100 1000 10000 1 1000 0,1 1 · 105 100 Figure 5.2-3: Example of an ill-conditioned matrix: Strong differences in order of magnitude on the main diagonal
5.2.1 Band Width Storage Scheme Now the band width storage scheme shall be briefly treated (Figure 5.2-4). The band width of a storage matrix A is to be called m:
aij = 0
for all i, j with |i – j| > m
5.2 Storage Schemes 177
Thus, the band width is simply the number of the secondary diagonals above the main diagonal (with a lower triangular matrix L then below), which contain non-zero elements. The band width in the matrix shown below is 7. The band is formed by the two diagonals H (main diagonal) and D. Matrix elements are still present on line D, but will not be above that. Between both diagonals and directly on them, nonzero elements (x) and zero elements () appear. It is evident that the aim is to hold the band width m as small as possible. It is defined by the biggest index difference of the node numbers, which appear within the respective finite ele ments. Assuming we had a whole series of 8-node Serendipity plane stress elements, which form a FE structure. We look at two random and fictive elements: Element No. 815: 31 – 34 – 67 – 55 – 89 – 63 – 40 – 48 Element No. 4711: 10 – 19 – 123 – 56 – 99 – 1010 – 777 – 613 With element No. 815 the max. node number deviation would be 89−31 = 58 With element No. 4711 the max. node number deviation is 1010−10 = 1000 H
D H x x x D H x H x x x x D H x D H x x x x D H x x x H x x H x x D H x x D H x D H x x x H x D H H x H x x x x H H x H H
Figure 5.2-4: Example of a band matrix
If element No. 4711 with node number deviation of 1000 is the biggest value within all finite elements of the structure, then the band width would here be m = 1000. It seems to be clear that the element numbering is directly responsible for the band width and with it the memory re quirements.
178 5 Compilation, Storage Schemes and Boundary Conditions
Let’s look at a FEA structure out of 8-node Serendipity plane stress elements which we number in two different ways: At first sight, Figure 5.2-5 shows an unusual, but correct numbering: The short sides must be run through the fastest. Maximum node number difference is 10 for all elements. Figure 5.2-6 shows an obvious, but beginner-like numbering. The memory need is about three times higher than above. The maximum node number difference is 28; this applies for all ele ments here.
Figure 5.2-5: Example of the right numbering of finite elements
Figure 5.2-6: Example of a very unfavourable numbering
5.2 Storage Schemes 179
Now we consider a very bad case: circular structures (see Figure 5.2-7).
Figure 5.2-7: Example of a circular FE structure
Try as we might: If you start to number at 12 o’clock and progress clockwise over 3 o’clock, 6 o’clock and 9 o’clock, then you will unavoidably arrive at 12 o’clock again. And the finite ele ments in these interfaces have extremely high node number differences. Then the global stiff ness matrix looks as in Figure 5.2-8. x
D x
x x
x x
x x
x x x
x x
D x x x x x
x x x
D x D x D x x
x x
x x D
x x x
x
Figure 5.2-8: Global stiffness matrix of a circular structure
D x x D x D x D x x D x x x x x x x x x x
180 5 Compilation, Storage Schemes and Boundary Conditions
Nearly the whole matrix is characterized by a low band width, which is indicated with the sec ondary diagonal D (however, it is not the outer limit!). But the connection at 12 o’clock, i.e. when the last assigned node numbers meet again at the start numbering, provide for non-zero ele ments far outside (i.e. in the upper right-hand corner), and the bandwidth storage scheme be comes extremely ineffective. Though the band width storage scheme is very easy, it is not very memory saving with certain structural models. It extremely depends on a useful node numbering. A good node numbering is either executed manually or by semi-automatic mesh generators as they are described in chapter 8. But fully automatic mesh generators, e.g., in CAD programs, so-called automeshers, often like to process very fast generated meshes, which are catastrophically numbered; they show very big node number differences. When the problem has already occurred, only processes for an optimal numbering of the node variables can provide remedy. Afterwards the nodes will be re-numbered. Here, the algorithm of Cuthill-McKee has been become known. The FEA program Z88 also contains such a re-num bering program (see chapter 10). The algorithm is described in detail by Schwarz /6/ who has also published a FORTRAN 77 program /7/ to that effect, which was the starting point for the Cuthill-McKee program Z88H.
5.2.2 The Skyline Storage Scheme The so-called skyline storage scheme is considerably more economical concerning the neces sary memory (Figure 5.2-9). The storage spaces marked with (S) are the last non-zero elements in a column and depict, in a way, the roofs of a skyline. Note that within the skyline, zero elements (0) can appear. These storage spaces, which at first contain zero elements will be overwritten by the LU decomposi tions process in situ later (see chapter 6). This storage space must be kept ready. This skyline storage process is program-technically far more difficult than the easy band width storage, but already less sensitive compared to bad node numberings than the band width pro cess. It is still far from being ideal from that point of view. In case of the rectangular structures as shown above with the sixteen 8-node Serendipity plane stress elements, 2,216 matrix ele ments with favorable numbering will be required, but 5,096 storage spaces with unfavorable numbering.
5.2 Storage Schemes 181
S S S S S x 0 0 x S 0 S S x x 0 0 x 0 x x x x
S S x 0 0 x S x S 0 S 0 0 S S x 0 0 0 x 0 0 0 x x 0 0 S 0 0 x x x 0 x 0 0 0 x 0 0 0 0 x x 0 x x 0 x x 0 S 0 x 0 x 0 x x x x x x
S x x x 0 0 0 0 0 x x x S 0 x 0 x 0 0 S S x 0 0 0 x 0 x x 0 x
Figure 5.2-9: Example of a skyline storage scheme
However, the skyline process represents a good compromise concerning economy, program expenditure and solver suitability. Now, it shall be explained further. We begin with a practical example, a global stiffness matrix, which shall depict an 8 × 8 system. i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8
j=1 1
j=2 X 2
j=3
j=4
X 4
X 0 6
Figure 5.2-10: Example skyline process
j=5 X 0 0 0 9
j=6
j=7
X 0 X 14
X 0 0 0 18
j=8
X 0 0 23
27
182 5 Compilation, Storage Schemes and Boundary Conditions
This global stiffness matrix is to be called gs, and it is program-internally saved as an array. In addition, a pointer array ip is set up which saves the position of the main diagonal elements. Here, we also begin with index 1 because of the better overview: ip = {0,
1, 2, 4, 6, 9, 14, 18, 23, 27}
gs = {0, a11, a22, a12, a33, a23, a44, a34, a24, a55, ..., an,n+1}
So gs becomes: gsij = gs[ip[j] + j – i]
Examples gs15 = gs[9 + 5 – 1] = 13. array element gs11 = gs[1 + 1 – 1] =
1. array element
gs58 = gs[23+ 8 – 5] = 26. array element
In the program procedure, it must be tested whether the requested element generally exists: ianz = ip[j+1] – ip[j] if(ianz >= j – i + 1) then element exists
Example gs58 existent? ianz = 27 – 23 = 4, 4 >= 8 – 5 + 1, true.
To consider eventually differing degrees of freedom in the respective node, another array ioffs is introduced: ioffs[1]= 1; for(i= 2; i <= nkp; i++) ioffs[i]= ioffs[i-1] + ifrei[i-1];
5.2.3 The Jennings Storage Scheme The Jennings storage scheme seems to be very similar to the skyline process at first sight; it is, so to speak, mirrored in the main diagonals (Figure 5.2-11). However, it is program-technical or conceptually even more difficult than the skyline scheme, however it works together with a direct solver, for example a Cholesky solver, see chapter 6, noticeably faster because the access to the lines of the matrix is easier and hence quicker. As already often carried out, we form the (two-dimensional) matrix A as a (one-dimensional) array. In the computer storage, it is managed like this anyway. Everything else is unprofes sional. We will only consider the lower triangle because of the symmetry. Similar to the skyline storage scheme, it is most important to determine the position of the main diagonal elements.
5.2 Storage Schemes 183
J
J
J J
J
J J J x
x 0 x 0 0 x J x 0 x J 0 0 x 0 0 x 0 0 x 0 0 0 x J 0 J x J x x x 0 J 0 x x
x 0 x x x x 0 0 0 x x x 0 x x 0 0 0 x x 0 0 x 0 0 J J x x 0 0 0 0 0 J 0 0 0 0 x x x 0 J J 0 0 0 x x x 0 0 0 0 0 J x x x x 0 x
x 0 x x 0 x 0 x 0 x 0 x x x x x 0 0 x x x 0 0 x x 0 0 0 x x 0 0 0 x x 0 0 0 x
x x x
x x
x
Figure 5.2-11: Example of a Jennings storage scheme. J in each case is the last non-zero element of a line
First the pointer array ip is defined in a so-called formatting step, it points at the main diagonal elements. Therefore we need three steps: 1st step: /*---------------------------------------------------------------------* ip needs to be set to the start value *---------------------------------------------------------------------*/ for(i= 1;i <= (nfg+1);i++) ip[i]= i;
2nd step: for(k= 1;k <= ne;k++) { ...only for the demonstration beam elements No. 2 are built-in /*---------------------------------------------------------------------* start beam element *---------------------------------------------------------------------*/ else if(ityp[k]== 2) { wtyp88r(k,2);
184 5 Compilation, Storage Schemes and Boundary Conditions
/*---------------------------------------------------------------------* Format for balk88 *---------------------------------------------------------------------*/ mcomp[1]= ioffs[ koi[koffs[k]
]] -1;
mcomp[2]= ioffs[ koi[koffs[k]+1]] -1; mxknot= 2; mxfrei= 6; goto L7000; /*---------------------------------------------------------------------* End beam element *---------------------------------------------------------------------*/ } /*---------------------------------------------------------------------* structure of the Jennings skyline *---------------------------------------------------------------------*/ L7000:; for(j= 1;j <= mxknot;j++) { for(j2= 1;j2 <= mxfrei;j2++) { for(i= 1;i <= mxknot;i++) { for(i2= 1;i2 <= mxfrei;i2++) { mcompi= mcomp[i]+i2; mcompj= mcomp[j]+j2; if(mcompj > mcompi) continue; if(ip[mcompi] > mcompj) ip[mcompi]= mcompj; } } } } } mxknot: Number of nodes of the just regarded finite element mxfrei: Number of degrees of freedom of the just regarded finite element mcompi: the index i of the matrix mcompj: the index j of the matrix ip
: pointer on the main diagonal elements
5.2 Storage Schemes 185
3rd step /*********************************************************************** *structure of ip ***********************************************************************/ ip[1]= 1; for(i= 2;i <= nfg; i++) ip[i]= ip[i-1] + (i - ip[i]) +1;
Preferably a numerical example will be shown immediately: j=1 100 63 55 23 55 11
i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 i=10
j=2 30 0 0 6 0
j=3
j=4
600 7 0 0 444 43
101 0 112 0 13
j=5
j=6
j=7
j=8
j=9
j=10
153 0 32 145 99 97
217 77 0 53 421
262 0 776 0
328 0 89
371 0
431
Figure 5.2-12: Example matrix for the Jennings storage scheme
This global stiffness matrix may be called gs, and it is program-internally saved as an array. In addition, a pointer array ip is set up, which saves the position of the main diagonal elements. We also begin with index 1 due to a better overview: ip = {0,
1, 3, 6, 10, 15, 21, 26, 32, 37, 43}
gs = {0, a11, a21, a22, a31, a32, a33, a41, a42, a43, ..., a10 gs = {0,100,
63, 30, 55,
0, 600, 23,
0,
10}
7, ..., 431}
With that: gsij = gs[ip[i] – (i – j)]
Examples Gs7,4 = gs[26 – (7 - 4)] = 23. array element Gs4,4 = gs[10 – (4 – 4)] = 10. array element Gs9,7 = gs[37 – (9 – 7)] = 35. array element
To consider eventually differing degrees of freedom in the respective node, another array ioffs is introduced: ioffs[1]= 1; for(i= 2; i <= nkp; i++) ioffs[i]= ioffs[i-1] + ifrei[i-1];
186 5 Compilation, Storage Schemes and Boundary Conditions
In this way, a function Z88A.C, which sets up a global stiffness matrix (yet without concrete numerical values – this needs to take place in a later step) with the Jennings storage method, can be shown below. It is only a matter of the array ip: In the process, the following definitions must be considered: #define FR_INT4AY
long *
/* Pointer on long
#define FR_INT4
long
/* 4 Bytes Integer
*/ */
/*********************************************************************** * z88a.c with Jennings storage * 8.07.2011 Rieg ***********************************************************************/ /*********************************************************************** * For UNIX ***********************************************************************/ #ifdef FR_UNIX #include #include #endif /*********************************************************************** * For Windows ***********************************************************************/ #ifdef FR_WIN #include #endif /*********************************************************************** * Functions ***********************************************************************/ int wrim88r(FR_INT4,int); int wlog88r(FR_INT4,int); int wtyp88r(FR_INT4,FR_INT4); /*********************************************************************** * here Function z88a begins ***********************************************************************/ int z88a(void) { extern FR_INT4AY ip; extern FR_INT4AY koi; extern FR_INT4AY ioffs; extern FR_INT4AY ifrei; extern FR_INT4AY koffs; extern FR_INT4AY ityp; extern FR_INT4 mcomp[]; extern FR_INT4 nkp,ne,nfg; FR_INT4 i,i2,j,j2,k,mxknot,mxfrei,mcompi,mcompj;
5.2 Storage Schemes 187
/*---------------------------------------------------------------------* Start Function *---------------------------------------------------------------------*/ wrim88r(0,TX_Z88A); wlog88r(0,LOG_Z88A); /*********************************************************************** * Calculation of the offset array ioffs ***********************************************************************/ ioffs[1]= 1; for(i= 2;i <= nkp;i++) ioffs[i]= ioffs[i-1]+ifrei[i-1]; /*********************************************************************** * Construction of the skyline for gs, upper half ***********************************************************************/ /*---------------------------------------------------------------------* ip place on start values *---------------------------------------------------------------------*/ for(i= 1;i <= (nfg+1);i++) ip[i]= i; /*---------------------------------------------------------------------* big formatting loop *---------------------------------------------------------------------*/ wrim88r(0,TX_FORMA); wlog88r(0,LOG_FORMA); for(k= 1;k <= ne;k++) { ... only to the demo the element model No. 20 is built-in /*--------------------------------------------------------------------* Start 8-node Reissner-Mindlin Serendipity plate *---------------------------------------------------------------------*/ else if(ityp[k]== 20) { wtyp88r(k,20); /*---------------------------------------------------------------------* Format for apla88 *---------------------------------------------------------------------*/ for(i= 1;i <= 8;i++) mcomp[i]= ioffs[ koi[koffs[k]+i-1]] -1; mxknot= 8; mxfrei= 3; goto L7000;
188 5 Compilation, Storage Schemes and Boundary Conditions
/*---------------------------------------------------------------------* End of 8-node Reissner-Mindlin Serendipity plate *---------------------------------------------------------------------*/ } else /*---------------------------------------------------------------------* wrong/unknown element model *---------------------------------------------------------------------*/ { wlog88r(ityp[k],LOG_WROETYP); return(AL_WROETYP); } /*---------------------------------------------------------------------* now construction of the skyline *---------------------------------------------------------------------*/ L7000:; for(j= 1;j <= mxknot;j++) { for(j2= 1;j2 <= mxfrei;j2++) { for(i= 1;i <= mxknot;i++) { for(i2= 1;i2 <= mxfrei;i2++) { mcompi= mcomp[i]+i2; mcompj= mcomp[j]+j2; if(mcompj > mcompi) continue; if(ip[mcompi] > mcompj) ip[mcompi]= mcompj; } } } } /*********************************************************************** * End of the loop over all elements ***********************************************************************/ } /*********************************************************************** * Construction of ip ***********************************************************************/ ip[1]= 1; for(i= 2;i <= nfg; i++) ip[i]= ip[i-1] + (i - ip[i]) +1;
5.2 Storage Schemes 189
/*********************************************************************** * End Z88A ***********************************************************************/ wlog88r(0,LOG_EXITZ88A); return(0); }
The actual compilation process runs analogously, only that the element stiffness matrices se are computed and then added into the global stiffness matrix gs. Two program fragments may show the essentials; the detailed function is called Z88R.C on the DVD: Installation of an element stiffness matrix for a 20-node Serendipity hexahedron: /*---------------------------------------------------------------------* Start 20-node hexahedron, isoparametric square approach *---------------------------------------------------------------------*/ else if(ityp[k]== 10) { /*---------------------------------------------------------------------* isopara 20-node hexahedron: determine appropriate coordinates *---------------------------------------------------------------------*/ for(i = 1;i <= 20;i++) { xk[i] = x [koi[koffs[k]+i-1]]; yk[i] = y [koi[koffs[k]+i-1]]; zk[i] = z [koi[koffs[k]+i-1]]; } /*---------------------------------------------------------------------* now computing the element stiffness matrix for iso 20 nodes hexahedron *---------------------------------------------------------------------*/ iret= hexa88(); if(iret != 0) return(iret); /*---------------------------------------------------------------------* Compilation for hexa88, compact storage with pointer array *---------------------------------------------------------------------*/ for(i = 1;i <= 20;i++) mcomp[i]= ioffs[ koi[koffs[k]+i-1]] -1; mxknot= 20; mxfrei= 3; goto L7000; /*---------------------------------------------------------------------* End isopara 20 nodes hexahedron *---------------------------------------------------------------------*/ }
190 5 Compilation, Storage Schemes and Boundary Conditions
And here the actual compilation step: /*---------------------------------------------------------------------* now execute compilation (Jennings storage) *---------------------------------------------------------------------*/ L7000:; ise= 0; for(j = 1;j <= mxknot;j++) { for(j2 = 1;j2 <= mxfrei;j2++) { for(i = 1;i <= mxknot;i++) { for(i2 = 1;i2 <= mxfrei;i2++) { mcompi= mcomp[i]+i2; mcompj= mcomp[j]+j2; ise++; if(mcompj <= mcompi) { index= ip[mcompi] - (mcompi - mcompj); gs[index] += se[ise]; } } } } }
5.2.4 The Non-Zero Storage Scheme This is by far program-technically the most difficult process and is especially suited for the use with an iteration solver. There are recent developments to also apply this process together with direct solvers /104, 105/. However, one needs a lot of dynamic storage while one must only hold a minimum of memory with iteration solvers. With the previous processes, it occurred to us that a lot of zeros can appear between the last skyline or Jennings elements. With some structures, an amount of zero of 99 % can appear without further ado. That means 99% of the precious main memory is wasted, and with these zero elements the typical triangle-decomposition operations are strictly executed. Therefore a lot of multiplications with 0 are done. It would be very clever to only save the elements, which really are not zero. This is very easy on a piece of paper. To realize this in the computer memory with big structures is anything but easy. The actual difficulty is not necessarily the saving of these so-called non zero elements, but
5.2 Storage Schemes 191
a quick retrieval. For an overview, we recommend Saad /14/ and the classic of Young /60/. There is also a couple of ready FORTRAN routines, e.g., SPARSEPACK. However, these known and partly also from the Internet downloadable routines mostly have a major flaw: They assume – since they were developed to solve partial differential equations and such – a certain regular construction of the matrix in the sense that these routines are only valid for, e.g., 20-node hexahedrons and ascending sorted coefficients. To that effect we made quite efficient attempts /61/. It becomes really exciting if you have arbitrarily and unsystem atically numbered meshes, maybe even in addition to different element types, hence the normal case of a typical finite element analysis of the mechanical engineer, the civil engineer, and the vehicle engineer. To get over these small discrepancies, the lead author and Frank Koch have developed a univer sal process for saving typical and complicated FE meshes, which is easy to understand: We proceed in two steps: At first the following pointers for the lower half of the global stiffness matrix GS are constructed: Pointer array IP points to the diagonal elements GS (i, i) Pointer array IEZ points to the column indices GS (x, j) For this purpose, a structure IJ is first constructed, which is then sorted with a QSORT algo rithm. This step definitely can require a lot of memory, but since there are pure integer opera tions, it happens quite fast. We will make a small example (cf. Schwarz /6, 7/): The lower half of GS is to be GS(1,1) GS(2,1)
GS(2,2) GS(3,2)
GS(4,1) GS(5,1)
GS(3,3) GS(4,4) GS(5,3)
GS(6,2)
GS(5,5) GS(6,4)
GS(6,6)
Figure 5.2-13: Example of a sparse matrix for the storage of the non-zero elements GS becomes the following array of the non-zero elements:
GS(1,1) GS(5,1)
GS(2,1) GS(5,3)
GS(2,2) GS(5,5)
Figure 5.2-14: Example matrix as a array
With it, IEZ becomes:
GS(3,2) GS(6,2)
GS(3,3) GS(6,4)
GS(4,1) GS(6,6)
GS(4,4)
192 5 Compilation, Storage Schemes and Boundary Conditions
1 1 2 2 3 1 4 1 3 5 2 4 6 Figure 5.2-15: Pointer array IEZ
and IP: 1 3 5 7 10 13 Figure 5.2-16: Pointer array IP
Figure 5.2-13 and 5.2-14 seem quite simple and logical on the paper. Reaching this point is dif ficult: Conditioned by the fact, that with real and big FE meshes from the engineering sector the elements, the nodes and the coincidence lists are just not arranged nicely ascending. Assuming that we would have to execute a plane stress element calculation with square Serendipity plane stress elements with 8 nodes (e.g., model 7 of Z88), and the following four elements with their accompanying node numbers are picked out of a bigger structure:
Figure 5.2-17: Extract from a bigger FE mesh
Table 5.2-1: Coincidence list for the four finite elements from Figure 5.2-17
Node
No. 1
No. 2
No. 3
No. 4
No. 5
No. 6
No. 7
No. 8
…
…
…
…
…
…
…
…
…
Element 101
77
91
308
223
411
357
406
57
Element 102
223
308
20
19
406
170
631
780
Element 103
91
128
300
308
31
44
22
357
Element 104
308
300
21
20
22
402
632
170
…
…
…
…
…
…
…
…
…
5.2 Storage Schemes 193
Now we would have to divide it into 2 degrees of freedom per node, but to show what matters, it is enough to only execute the consideration with the node numbers. These are classified in ascending element numbers. The node numbers are given in the array GS, which again starts with 0: gs= {0, 77,
91, 308, 223, 411, 357, 406,
223, 308,
20,
91, 128, 300, 308, 308, 300,
21,
57,
19, 406, 170, 631, 780, 20,
31,
44,
22, 357,
22, 402, 632, 170}
Now we will properly classify this array according to ascending node numbers: gs= {0, 19, 57,
20,
20, 21,
22, 22,
31,
44,
77, 91, 91, 128, 170, 170, 223,
223, 300, 300, 308, 308, 308, 308, 357, 357, 402, 406, 406, 411, 631, 632, 780}
Now the array is nicely sorted, but different numbers (= in reality the indices i and j) appear twice and the number 308 even four times. These repeated numbers must then be filtered out. This process is called principle of the symbolic stiffness compilation PLS by Zimmermann /106/. This process was integrated up to version 12 in Z88. Figure 5.2-18 shows the general procedure. The very high storage need is disadvantageous. structure of the global ess m stiffness matrix
Access to matrix element i, j
line column
done?
remove duplicate ntrie entries
sorting sorti
structure puffer f
serial global glob puffer
sorting puffer f
remove duplicate entries
copying entries
cleaning puffer
size exceeded?
Figure 5.2-18: Principle of the symbolic stiffness compilation PLS according to Rieg and Koch in /106/.
The very high memory requirements of PLS can be avoided by another process, the so-called node cross principle NCP, according to Zimmermann /106/: This process, the node cross
194 5 Compilation, Storage Schemes and Boundary Conditions
principle, profits not only of the fact of sparse matrices but also from the principle of the con struction of a FE stiffness matrix. The fact that the degrees of freedom of the elements are linked with each other by connecting points (nodes) and that they are covering the same spots in the stiffness matrix is a basic idea behind the algorithm. If you continue the thought, you will come to the conclusion that a stiffness matrix is only occupied where the line of a degree of freedom cosses the column of another degree of freedom of the same element. The degrees of freedom are directly associated to the nodes. Thus, every degree of freedom of a basis node forms an index pair within the matrix with itself (diagonal element) and with any other degree of freedom of all nodes, which are given by the coincidence of all elements attached to the basis node (Figure 5.2-19). The sum of all index pairs (node crosses) forms the occupation of the sparse matrix. Hence the name of the process building the sparse matrix. Now the algorithm in an abridged version: Create an allocation instruction of all nodes to all elements referenced in the node. With this allocation, create another allocation instruction of all nodes to element-connected nodes. Considering that the degrees of freedom are again attached to nodes, one receives a transforma tion from every degree of freedom i to n degrees of freedom via the node cross principle. These n degrees of freedom shall be called cross degrees of freedom to the basis degree of freedom i. This transformation can be used to ascertain the spaces of the global stiffness matrix a priori, which are needed to store entries. In practice, every degree of freedom of every node corre sponds to a line of the global stiffness matrix. The collected cross-degrees of freedom of the reference degree of freedom indicate the columns, which are occupied. Thus the algorithm is described /106/.
Figure 5.2-19: Node cross principle NCP according to Zimmermann /106/
This process is integrated into Z88 version 14, which forms the basis of this book.
5.2 Storage Schemes 195
If the pointers GS, IEZ and IP are constructed either with NCP or PLS, the access is quite simple: Here the access to the non-zero matrix GS is demonstrated in a program fragment of the Z88 sparse matrix solver, routine Z88BR.C: for(k= 1;k <= ne;k++) { ...element model only built-in for the demo /*---------------------------------------------------------------------* start 8-node rectangular solid, isoparametric linear approach *---------------------------------------------------------------------*/ if(ityp[k]== 1) { wtyp88i(k,1); /*---------------------------------------------------------------------* isopara 8-nodes hexahedron: determining appropriate co-ordinates *---------------------------------------------------------------------*/ for(i = 1;i <= 8;i++) { xk[i] = x [koi[koffs[k]+i-1]]; yk[i] = y [koi[koffs[k]+i-1]]; zk[i] = z [koi[koffs[k]+i-1]]; } /*---------------------------------------------------------------------* now computing element stiffness matrix for iso 8 nodes hexahedron *---------------------------------------------------------------------*/ iret= lqua88(); if(iret != 0) { wlog88i2(0,LOG_JACNEG); fclose(fl2); return(iret); } /*---------------------------------------------------------------------* Compilation for lqua88, compact storage with pointer array *---------------------------------------------------------------------*/ for(i = 1;i <= 8;i++) mcomp[i]= ioffs[ koi[koffs[k]+i-1]] -1; mxknot= 8; mxfrei= 3; goto L7000; /*---------------------------------------------------------------------* End isopara 8 nodes hexahedron *---------------------------------------------------------------------*/ }
196 5 Compilation, Storage Schemes and Boundary Conditions
/*---------------------------------------------------------------------* now executing compilation *---------------------------------------------------------------------*/ L7000:; ise= 0; for(j = 1;j <= mxknot;j++) { for(j2 = 1;j2 <= mxfrei;j2++) { for(i = 1;i <= mxknot;i++) { for(i2 = 1;i2 <= mxfrei;i2++) { mcompi= mcomp[i]+i2; mcompj= mcomp[j]+j2; ise++; for(m= ip[mcompi-1]+1; m <= ip[mcompi];m++) { if(iez[m] == mcompj) { GS[m]+= se[ise]; goto L290; } } L290:; } } } } } }
5.2.5 Summary of the Storage Schemes It shall be mentioned, that the band width storage as well as the Jennings or skyline storage schemes can operate with all solvers, i.e. with the direct solvers Gauss, Cholesky or others, but also with iteration solvers, e.g. Jacobi method or the method of the conjugate gradients. The non-zero storage scheme can only operate memory saving with iteration solvers, because direct solvers have to overwrite elements during the LU decomposition, which were not saved at all, and for that additional dynamic memory is quite considerably required. Finally, the four essential storage methods are compared to each other (Table 5.2-2).
5.3 Boundary Conditions 197
Table 5.2-2: Overview of the most important storage methods
memory requirement
sensitivity on solver node numbering
programing effort
band width storage
mostly largely
high
all
minimal
Skyline storage
better than band- average width
all
average
Jennings storage
better than band- average width
all
higher than Skyline
Non-zero elements
minimal
only sparse matrix solver
very high
■■5.3 Boundary
almost or absolutely insensitive
Conditions
5.3.1 Single Forces and Single Displacements The integration of the boundary conditions is done as already shown in chapter 2. Boundary conditions are understood to mean: Forces Displacements = 0 Displacements ≠ 0 In some commercial FEA programs, only displacements are defined as boundary conditions and forces are designated as a separate group, which actually is not correct. The integration of single forces is basically trivial:
Figure 5.3-1: Distribution of surface loads on FE structures
They are simply entered at the proper positions in the vector of the right side. Previously, sur face loads must be distributed in an appropriate manner “by hand” (cf. chapter 11), or inserted in the FEA program according to the equation (cf. chapter 4):
198 5 Compilation, Storage Schemes and Boundary Conditions
RS =
S
NT q ds =
NT q dx dy
S
The boundary conditions, which are defined by displacements (cf. chapter 2), are: INTEGRATION OF HOMOGENEOUS BOUNDARY CONDITIONS:
Uj = 0
m1.1: In K, set line j to 0. m1.2: In K, set column j to 0. m1.3: In K, set diagonal element j to 1. m1.4: In F, set force Fj to 0. INTEGRATION OF INHOMOGENEOUS BOUNDARY CONDITIONS: The inhomogeneous boundary condition shall have the value Cj and are valid in the degree of freedom j. m3.1: Subtract the column vector, which is the product of Cj and column j of K, from the right side. m3.2: Apply method 1. m3.3: Replace Fj with Cj. Here is a small and simplified program fragment Z88CR.C from the direct Cholesky solver Z88R with Jennings storage, which shows you how the boundary conditions are inserted. Whereby it is: nrb
: Number of boundary conditions
nkn
: Number of the node with boundary condition
ifg
: Degree of freedom in this node
iflag=1 : given force iflag=2 : given displacement wert
: Value of force or boundary condition
rs
: the right side
gs
: global stiffness matrix
for(k = 1;k <= nrb;k++) { fgets(cline,256,fi2); sscanf(cline,“%ld %ld %ld %lg“,&nkn,&ifg,&iflag1,&wert); jndex= ioffs[nkn]-1+ifg;
5.3 Boundary Conditions 199
/*---------------------------------------------------------------------* branch, whether force or displacement *---------------------------------------------------------------------*/ /*====================================================================== * force given *=====================================================================*/ if (iflag1 == 1) rs[jndex] = rs[jndex] + wert; /*====================================================================== * displacement given *=====================================================================*/ if(iflag1 == 2) { /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * displacement != 0 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ if(FR_FABS(wert) >=
1e-8)
{ rs[jndex]= wert;
/* Allocate wert to right side */
gs[ip[jndex]]= 1.;
/* Diagonal elements are 1 */
if(jndex == 1) goto L30;
/* because there is no ip [0]*/
istart=ip[jndex-1] + 1; /* Start skyline in line jndex */ istop= ip[jndex] Diagonalele.jndex */
- 1; /* End of the line before
for(i= istart; i <= istop; i++) { j= jndex + i - istop -1; rs[j]-= wert * gs[i]; gs[i]= 0.;
/* Set line jndex to 0 */
} L30: if(jndex == nfg) continue; for(j= jndex+1; j <= nfg; j++) { if((ip[j-1] - ip[j] + j + 1) > jndex) continue; i= ip[j] - j + jndex; rs[j]-= wert * gs[i]; gs[i]= 0.;
/* Set column to 0 */
} } /* End inhomogeneous boundary conditions */ else /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * displacement == 0 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ { gs[ip[jndex]]= 1.;
/* Diagonal elements are 1 */
200 5 Compilation, Storage Schemes and Boundary Conditions
if(jndex == 1) goto L40;
/* because there is no ip [0] */
istart=ip[jndex-1] + 1; /* Start skyline in line jndex */ istop= ip[jndex] - 1; /* End of the line before Diagonalele.jndex */ for(i= istart; i <= istop; i++) gs[i]= 0.;
/* Set line jndex to 0*/
L40: if(jndex == nfg) continue; for(j= jndex+1; j <= nfg; j++) { if((ip[j-1] - ip[j] + j + 1) > jndex) continue; i= ip[j] - j + jndex; gs[i]= 0.;
/* Set column to 0 */
} } /* End homogeneous boundary conditions */ } /* End of given displacement */ } /* End of integration of the boundary conditions */ /*********************************************************************** * Reading of the boundary condition files and integration of the boundary conditions, Pass 2 * At the same time write to controlling file Z88O1.TXT ***********************************************************************/ rewind(fi2); fgets(cline,256,fi2); sscanf(cline,“%ld“,&nrb); for(k = 1;k <= nrb;k++) { fgets(cline,256,fi2); sscanf(cline,“%ld %ld %ld %lg“,&nkn,&ifg,&iflag1,&wert); jndex= ioffs[nkn]-1+ifg; if(iflag1 == 2) rs[jndex]= wert; }
5.3.2 Distributed Loads with Plates Of course one can place single loads on plates, as previously described, but plates very often receive distributed loads q over the whole plate surface, so that the single load process, which in principle works, can become very troublesome. However, this can be simply circumvented by determining the so-called element load vector be for the plate and by considering it in the right side rs during the compilation process. The element vector itself will be computed in the ac tual function (here APLA88.C, cf. chapter 4) for the element stiffness matrix, whereby N are, as always, the shape functions: be = NT q dxdy S
5.3 Boundary Conditions 201
Of course, it must also be numerically integrated here, and the Jacobi determinant has to be considered (cf. chapter 4). Here, you see a program fragment, which shows the compilation process for 8-node Serendipity plates with integration of the element vector, segment from the function Z88BR.C. Before that the suitable distributed loads are read in elementwise or for whole element groups. With Z88, this takes place while reading the material laws, at first a little bit alienated, but here whole element groups are addressed en bloc. The big professional FE programs make this partially in other input sections. /*********************************************************************** * Computing of the element stiffness matrices, Compilation ***********************************************************************/ wrim88f(0,TX_COMPI); wlog88f(0,LOG_COMPI); for(k= 1;k <= ne;k++) { /*---------------------------------------------------------------------* Compilation for apla88, compact storage with pointer array *---------------------------------------------------------------------*/ for(i = 1;i <= 8;i++) mcomp[i]= ioffs[ koi[koffs[k]+i-1]] -1; mxknot= 8; mxfrei= 3; goto L7000; /*---------------------------------------------------------------------* End of 8-node Reissner-Mindlin Serendipity plate *---------------------------------------------------------------------*/ } /*---------------------------------------------------------------------* now executing compilation (Jennings storage) *---------------------------------------------------------------------*/ L7000:; ise= 0; for(j = 1;j <= mxknot;j++) { for(j2 = 1;j2 <= mxfrei;j2++) { for(i = 1;i <= mxknot;i++) { for(i2 = 1;i2 <= mxfrei;i2++) { mcompi= mcomp[i]+i2; mcompj= mcomp[j]+j2;
202 5 Compilation, Storage Schemes and Boundary Conditions
ise++; if(mcompj <= mcompi) { index= ip[mcompi] - (mcompi - mcompj); gs[index] += se[ise]; } } } } } /*---------------------------------------------------------------------* add the element vector for plates *---------------------------------------------------------------------*/ if(ipflag != 0) { ise= 0; for(i = 1;i <= mxknot;i++) { for(i2 = 1;i2 <= mxfrei;i2++) { ise++; mcompi= mcomp[i]+i2; rs[mcompi] += be[ise]; } } } /*********************************************************************** * End of the loop over all elements ***********************************************************************/ }
/* e 8000 */
Of course you can also intend something similar for distributed loads with volume elements although a further difficulty is that the loaded surfaces must be identified, therefore marked by the user in the form of suitable inputs. This is a nice field of activity for automesher.
5.3.3 Fixture of plates With plates three degrees of freedom
w, θx , θy
5.3 Boundary Conditions 203
can be fixed in each case individually or in combination, this shows Figure 5.3-2.
Figure 5.3-2: Fixture possibilities of a plate
It is: Table 5.3-1: Fixture possibilities of plates according to Figure 5.3-2
Case
w
θx
θy
a)
0
0
0
b)
0
0
free
c)
0
free
free
d)
free
free
free
Note that incompatibility can particularly appear in the corners. For further details see Gross/ Hauger/Schnell/Wriggers /39/.
5.3.4 Boundary Conditions in Temperature Analyses In the temperature analysis in Z88Aurora, besides purely thermal boundary conditions for the stationary heat conduction, there are also mechanical boundary conditions for a thermo-me chanical simulation. The mechanical boundary conditions are exactly the same as with the elastostatics. Then, these are internally coupled with the results from the thermal analysis to receive, for example, thermo-mechanical displacements or tensions. The calculation takes place, as in the static-mechanical simulation, by integration as homogeneous or inhomogene ous boundary conditions in the equation system, depending on whether temperatures or heat flows are given. At least two temperatures or a temperature and a heat flow must be given so that the equation system is “statically defined” and a successful simulation is guaranteed. The same applies to the thermo-mechanical simulation with the force and the displacements.
204 5 Compilation, Storage Schemes and Boundary Conditions
Let’s consider the single thermal boundary conditions more exactly. For a thermal simulation, these are the temperature, the heat flow and the heat flux.
Temperature The displacement vector of the elastostatics is the vector of the temperature in the thermo analysis. T1 T2 TT = ... Tn The size of this vector is determined by the number of nodes of the component to be simulated. Now the experienced user will certainly ask in which unit the temperature should be displayed: Kelvin, Celsius or ° Fahrenheit? Quite simple. It completely makes no difference which unit you use. The law of Fourier already predetermines this:
q = −λ · (T1 − T2 ) The difference between both temperatures T1 and ( T2 ( T2 > T1) is always the same, either Kel vin or ° Celsius. For °F you will have to convert the temperatures into Kelvin first.
Heat Flux To receive the heat flux q (unit: W/mm2) demanded by the law of Fourier, the heat flow Q (unit: W) on the surface of the respective finite element must be considered. q=
Q A
This is clearly shown in Figure 5.3-3. Here the heat flux q on a surface A , consisting of nodes and element surfaces, is illustrated. On this occasion, it is important to mention that the heat flux must be vertical to the surface, similar to the elastostatics. The normal vector n indicates this.
5.3 Boundary Conditions 205
ܣ ࡽ
Figure 5.3-3: Boundary conditions heat flux
The surface mesh of the finite element must be program-internally computed in the surface of the part. Moreover, the nodes of the finite element must be selected in the part surface. The distance between the nodes yields a vector. For a tetrahedron, the mesh surface is, e.g., a trian gle. From two vectors, which define a triangle, the area of the triangle can therefore be com puted according to the amount. This can also be applied for hexahedrons. Then the face of a hexahedron, which shows a quadrangle, is simply defined by two triangles.
Heat Flow The force or the right side in the equation of the elastostatics, is called heat flow in the tem perature analysis. This is a vector like the force where the thermal convention of the degrees of freedom must also be considered, so that the heat flow only owns one instead of three degrees of freedom. In contrast to the heat flux, the heat flow is a summarized load and is given like the temperature per node.
Q1 Q2 Q= ... Qn Other boundary conditions, like convection or radiation, are here and in Z88Aurora not yet considered.
206 5 Compilation, Storage Schemes and Boundary Conditions
5.3.5 Boundary Conditions with Vibration It is also possible with the simulation of natural vibrations to apply fixations, although the derivation from chapter 3.4 did not intend this first. All FE nodes were free, hence, one speaks of „free natural vibrations“. This idealization only seldom is brought in harmony with the tech nical practice, which is why one needs a possibility for the consideration of these displacement boundary conditions. In chapter 5.3.1, a possibility was already presented to insert homogeneous displacement boundary conditions and to consider them in the matrix. Setting one to the diagonal of the stiff ness matrix in the suitable place with simultaneous setting zero of the remaining line and col umn entries as well as the right accompanying side was enough to force a fixed position upon a node. The line i of the equation system n j=1
Ki,j · ui = Fi
was with boundary conditions
·u :+ :+ ·u ·u ·u :+ ·u 00·0u ·1 u :: :… : 0+0·0u ·i−1 u ++1+1·1u ·i + u +0·0u ·i+1 u ++:+… :: :: + : 0+0·0u ·n u 0,00 1+ i−1 i+ i+1 n= 1+:+ i−1 i0 i+1 n== so that ui necessarily becomes zero. Unfortunately, this method cannot be consistently used for fixations in the vibration analysis, because the smallest natural frequencies and therefore most interesting frequencies would be distorted. Moreover, the right side F as a control factor does not apply with the calculation of the intrinsic values. Also, there shouldn’t be a linear system of equations to solve for the analysis, but an EVP problem. A line-by-line consideration like on top is not even allowed. How can fixations of a node be exclusively represented by the EVP system matrix without dis torting the results? The matrix contains, according to the definition from chapter 3.3, informa tion about the stiffnesses as well as about the mass distribution: AEVP =
L− 1 · K · L− T with
M = L · LT .
A node, capable of vibration, distinguishes itself just by the fact that for each of the calculated natural frequencies both of these influences are balanced. The stiffness part of the node force is often designated as accelerating, the mass part as inertial, as the entrance example with the spring carriage already suggests. To hold a node degree of freedom fixed on the start position, one could characterize it as infinitely inertial. Here the advantageous shape of the dimension matrix is used once again. Thus, it is enough to set the concerning diagonal element of M to infinity to insert the boundary conditions. The impact of the modification of the degree of free dom i for the EVP matrix and the eigenvalues will now be discussed step by step. Because of the diagonal structure it is enough to consider the single lines for the Cholesky de composition of M, which is to be executed at the start. For the just formulated postulate √ ∞ = Mi,i = Li,i 2 follows Li,i = ∞ = ∞.
5.3 Boundary Conditions 207
The (symmetrical) inverse L−1, which now contains zeros, is necessary for the assembly of the eigenvalue problem system matrix:
L−T
i,i
1 −1 = L−1 i,i = (Li,i ) = =0 ∞ .
If one multiplies this incomplete diagonal matrix from the left to the global stiffness matrix K, whole lines of AEVP are set to zero; the multiplication from the right causes zeros in the col umns. All the other matrix entries remain untouched and the following scheme turns out: A1,i−1 0 A1,i+1 · · · A1,n A1,1 · · · .. .. .. .. .. .. .. . . . . . . . Ai−1,1 · · · Ai−1,i−1 0 Ai−1,i+1 · · · Ai−1,n ··· 0 0 0 ··· 0 AFIX = 0 Ai+1,1 · · · Ai+1,i−1 0 Ai+1,i+1 · · · Ai+1,n .. .. .. .. .. .. .. . . . . . . .
An,1
···
An,i−1
0
An,i+1
···
An,n
The matrix almost has the same form as after the integration of homogeneous boundary condi tions in chapter 5.3.1; merely the diagonal entry is zero instead of one. The smallest eigenvalue for the modified matrix thereby always is zero.
This attribute unfortunately complicates two essential steps of the solver. The fact that the sys tem matrix is not positively definite anymore was a requirement for the applicability of the tridiagonalization of Lanczos as well as the solvability of the equation system for the calculation of the mode form vectors. One manages this with an easy trick: By choosing an extremely high value for the node mass compared to the other matrix entries instead of infinity. As long as the reciprocal value L−1 can still be represented by the machine accuracy, all requirements for the process are again fulfilled.
5.3.6 Boundary Conditions in the Non-linear Finite Element Analysis The types of boundary conditions in non-linear analyses do not differ in principle from the boundary conditions in linear analyses. There are also homogeneous and inhomogeneous dis placement boundary conditions, single forces and distributed loads like they are described in the chapters 4.6 and in 5.3.1 to 5.3.3. However, there is a difference in the load assignment in general: Here the load assignment does not take place in one step, but in several steps (cf. Wriggers /120/ or Parisch /121/). In addition, a load factor κ which scales the load is introduced; it is able to attain values of the interval
0≤κ≤1 In the respective load step, the equation system which has to be solved is shown in the follow ing:
208 5 Compilation, Storage Schemes and Boundary Conditions V
BT S dV − κF = 0
The solution of the preceding load step serves as a starting point for the Newton Raphson pro cess in the current load step. If the Newton Raphson process does not converge, it can make sense to calculate with more load steps and thereby to receive a better starting point for the Newton Raphson process in every load step. Table 5.3.6-1 shows a possible sequence of load steps with a step number of ten. Table 5.3.6-1: Cycle of a stepwise load job
Load step
Load factor κ
Percentage of the total load
Load vector
0
0.0
0%
0.0
1
0.1
10 %
2
0.2
20 %
0.1 · F
3
0.3
30 %
4
0.4
40 %
5
0.5
50 %
6
0.6
60 %
7
0.7
70 %
8
0.8
80 %
9
0.9
90 %
10
1.0
100 %
0.2 · F 0.3 · F 0.4 · F 0.5 · F 0.6 · F 0.7 · F 0.8 · F 0.9 · F F
If displacement-dependent loads are considered additionally, the load vector is a function of the displacement and the element matrices in chapter 4.12 receive another term. Pressure loads are displacement-dependent loads when the modelling is more precise, because in general the normal vector changes its direction in the process of the deformation. However, the displace ment-dependence on loads is neglected here. To the interested reader we recommend Parisch /121/.
6
Solvers
Within the finite element analysis, the solvers have a specific importance. For when there is a FE-structure with 1,000 degrees of freedom, which is small by today’s standards, this means that an equation system 1,000 × 1,000 has to be solved. This clearly shows that analytical solutions are not suitable and the solving of such equation systems can only and exclusively be carried out by computers. It would be interesting to know, how much time a very good mathematician would need to solve 1,000 × 1,000 equation systems manually and without making mistakes – weeks, months or years? As the effort of solving FEA equation systems, as one can show by theoretical considerations, increases not only to the square (as you could assume) but also even to the third power of the number of degrees of freedom, one cannot achieve much with usual analytical methods. On the contrary: FEA solvers have to be trimmed to the highest efficiency, but at the same time show high numerical stability. Actually there is a lot of know-how in the solvers of large commercial systems, which then assures the crucial advantage. In particular the load distribution on several processors is not easy to program. One has to know, that it is impossible to program a solver by oneself, working as quick as the ones installed in MARC, Pro/MECHANICA and other programs. In this chapter we refer to special literature, particularly /6/ and /14/, which address some needful sources. Nevertheless we have to get an overview: You can basically distinguish between Direct solvers Iterative solvers. We will examine both of those fundamentally different solvers in the following, not without mentioning a very interesting side effect: Solvers per se are merely half the story with the finite element analysis; only the combination with suitable memory processes makes efficient tools out of them, cf. table 5.2-1.
210 6 Solvers
■■6.1 Direct
Solvers
They are all based on the so-called Gauss methods. The system of equations a11 a12 a21 a22 A x = b resp. .. . an1 ans
··· ··· ···
a1n x1 x2 a2n .. = .
ann
xn
b1 b2 .. . bn
resp. aij xj = bi j
becomes a system of equations in triangular form by fundamental transformations such as Multiplications of one matrix row with a factor Addition or subtraction of multiples of a matrix row Exchange of rows cf. Stöcker /13/ and Finck von Finkenstein /25/: a 11 a 12 · · · a 1n x1 b1 x 2 b 2 a · · · a 22 2n .. .. = .. .. . . . . a nn
xn
b n
By recalculation, starting with the n-th row, one can resolve the system and determine the solution vector x , i.e. xn =
b n from line n a nn
an−1,n−1 · xn−1 + an−1,n · xn = bn−1
from line n − 1
and xn−1 =
b n−1 − xn · a n−1,n a n−1,n−1
etc. It has to be mentioned that the way x =A−1 b , the multiplication of the inverse from A with the right side b, which seems likely, is not used in practice since inverting big matrices, which on top of that often are sparse and less stable, is very work-intensive (cf. /25/). Besides, direct solving with a procedure, similar to Gauss, needs less arithmetic operations. With the solvers of the Gauss model, a triangular decomposition is carried out at first: A=LR
6.1 Direct Solvers 211
resp. a11 a21 . .. ana
a12 a22 .. . an2
···
aab .. . .. . ann
i.e.
aij =
=
ℓ11 ℓ21 .. . ℓn1
ℓ22 ℓn2
0
ℓnn
r 11 . . . 0
r12 r22
··· ···
r1n .. . .. . rnn
ℓik rkj
k
with ℓik a lower or left triangular matrix: ℓik = 0 with i < k
and rkj an upper or right triangular matrix: rkj = 0 with k > j
Therefore, you call this decomposition also LU decomposition (Lower-Upper-decomposition) respectively LR (Left-Right-decomposition). Solving the equation system A x = b occurs in three steps: 1st step: LR decomposition of the matrix A, i.e. A x = L U x = b 2nd step: Solve the equation system L y = b with y being an auxiliary vector. 3rd step: Solve the equation system R x = y In practice, maybe 90% of the expenditure account for step 1 and only 5% for each of the steps 2 and 3. Generally one is able to define the LR decomposition as follows: 1 aij − ℓik rkj with k < j < i ℓij = rjj k
ℓii rii = aii − 1 rij = ℓii
ℓik rki with k < i
k
aij −
k
ℓik rkj with k < i < j
212 6 Solvers
where three concrete distinctions are possible /13/: ℓii = 1 “Doolittle decomposition” rii = 1 “Crout decomposition” ℓij = rji “Cholesky decomposition” for symmetrical matrices The third variation, the so-called Cholesky decomposition, with A = LLT is in practice very popular and many FEA programs work with it (also the later specified Z88 /32/).
6.1.1 The Cholesky Solver The Cholesky decomposition (by André-Louis Cholesky, 1875-1918) in detail: ℓij = rji Cholesky process rii =
1 rij = rii
aii −
r2ki , with k < i
k
aij −
k
rki rkj , with k < i < j
and resolve: 1 yi = bi − rki yk , with k < i and i, k = 1, 2, …, n rii k 1 xi = yi − rik xk , with k > i and i, k = n, n – 1, …, 1 rii k
The advantage of the Cholesky process is that it is numerically very stable because of the stabilizing effect of the root extraction: Big figures become smaller and small figures (between 0 and 1) become bigger. This is a required effect, because the equation systems with the finite element analysis are often poorly conditioned. It is prejudicial that the process only works for symmetrical, positive definite matrices A. The characteristic “positive definite” is not completely right, although it is always written like this in literature.
6.1 Direct Solvers 213
Example For a small system of equations. Cholesky process, A not positive definite: 1 2 3 x1 −1 2 1 0 x2 = 4 3 0 1 1 x3 Step 1: Cholesky decomposition: 1 · a13 = 3 r11
r11 =
√
r12 =
1 a12 = 2, r21 = 0, r31 = r32 = 0 r11
r22 = r23 = r33 =
a11 = 1, r13 =
a22 − r212 =
√
√
1−4=i 3
1 1 −6 (a23 − r12 · r13 ) = √ (0 − 2 · 3) = √ r22 i 3 i 3
a33 −
r213
hence R is: 1 2 √ R= 0 i 3 0
0
−
r223
=
1−
32
−
−6
√
i 3
3 −6
√ i 3 2
since L = RT or ℓij = rji :
1
L= 2
3
0
√
i 3 −6
√ i 3
0
0 2
Step 2: Calculating the auxiliary vector y: 1 (b1 ) = −1 r11 1 6 y2 = (b2 − r12 · y1 ) = √ r22 i 3 1 y3 = (b3 − r13 · y1 − r23 · y2 ) = −4 r33
y1 =
=2
214 6 Solvers
Step 3: Calculating the solution vector x: 1 · y3 = −2 r33 1 x2 = (y2 − r23 · x3 ) = 2 r22 1 x1 = (y1 − r12 · x2 − r13 · x3 ) = 1 r11 x3 =
1 as a consequence: x = 2 −2
At first sight, it looks as if you have to allocate memory for A and R. But in fact you are able to overwrite A by R step-by-step, so that no additional memory is necessary. The following, to that effect modified, Cholesky process with in-situ storage is taken from Argyris /3/: √ r11 = a11 aij rij = rii i = 1, j − 1 j = 2, n akj = akj − rik · rij , k = i + 1,j √ rjj = ajj
■■6.2 Condition
and Scaling
The Cholesky process is numerically very stable by the built-in root extraction, but the FEA equation systems are often conditioned very bad. The best way to show this, is giving an example. We take the element stiffness matrix of the very simple beam with 4 degrees of freedom from chapter 2:
Figure 6.2-1: Degrees of freedom in the beam
6.2 Condition and Scaling 215
EI ·
12 ℓ3 −6 ℓ2 −12 ℓ3 −6 ℓ2
−6 ℓ2 4 ℓ 6 ℓ2 2 ℓ
−12 ℓ3 6 ℓ2 12 ℓ3 6 ℓ2
−6 ℓ2 2 ℓ 6 ℓ2 4 ℓ
Now set 1,000 mm for the beam length ℓ. What happens? On the main diagonals it becomes 12 = a33 109 4 = 3 = a44 10
a11 = a22
There are extreme magnitude differences on the main diagonal and everybody who has already dealt with numerical (computer) mathematics recognizes that a poorly conditioned system of equations is to be expected here. That means, small coefficient changes of A cause big changes of the solution vector x. For more details see e.g. Fink von Finkenstein /25/. To improve the situation, one can scale the coefficient matrix A. This often helps to improve the condition number a lot. An easy scaling process according to Schwarz /6/ is: 1 di = √ aii
the scaled matrix  becomes:  = D A D resp. âij = di aij dj With this trick, the diagonal elements become âii = 1 bi = di bi The right side b is formed to ˆ b: ˆ b = D b resp. ˆ x, the scaling has After solving the equation system, which should deliver the solution vector ˆ to be reversed: x=Dˆ x xi = di ˆxi
Now, the scaling process and the Cholesky process are displayed with in situ storage according to the skyline storage scheme in the C routine CHOY88.C /32/. Later the scaling will be reversed in (here not shown) function Z88CR.C /32/. With gs[i]: global stiffness matrix ip[i]: pointer array for skyline storage scheme rs[i]: right side
216 6 Solvers
/*********************************************************************** * This Compilerunit contains: * scal88 * choy88 * 21.11.11 ***********************************************************************/ /*********************************************************************** * For UNIX ***********************************************************************/ #ifdef FR_UNIX #include #include
/* sqrt */
#endif /*********************************************************************** * For Windows ***********************************************************************/ #ifdef FR_WIN #include #include
/* sqrt */
#endif /*********************************************************************** * Functions ***********************************************************************/ int wrim88r(FR_INT4,int); int wlog88r(FR_INT4,int); /*********************************************************************** * Function scal88 begins here ***********************************************************************/ int scal88(void) { extern FR_DOUBLEAY gs; extern FR_DOUBLEAY rs; extern FR_DOUBLEAY fak; extern FR_INT4AY ip; extern FR_INT4 nfg; FR_INT4 i,j,ianz,index; /*---------------------------------------------------------------------* Start Function *---------------------------------------------------------------------*/ /*********************************************************************** * Calculate scaling factors and convert right side ***********************************************************************/ for(i = 1L;i <= nfg;i++) { if(gs[ip[i]] <= 0.)
6.2 Condition and Scaling 217
{ wlog88r((ip[i]),LOG_DIAGNULL); return(AL_DIAGNULL); } fak[i]= 1. / sqrt( gs[ip[i]] ); rs[i]= rs[i] * fak[i]; } /*********************************************************************** * scale array elements ***********************************************************************/ for(i = 1L;i <= nfg;i++) {
/* 30 */
for(j = 1L;j <= nfg;j++) {
/* 20 */
/*---------------------------------------------------------------------* only upper Skyline *---------------------------------------------------------------------*/ if(i > j) goto L20; /*---------------------------------------------------------------------* does element even exist? *---------------------------------------------------------------------*/ ianz= ip[j+1] - ip[j]; if(ianz < (j-i+1L)) goto L20; /*---------------------------------------------------------------------* now scale *---------------------------------------------------------------------*/ index= ip[j]+j-i; gs[index]= fak[i] * gs[index] * fak[j]; L20:; } }
/* e 20 */ /* e 30 */
/**********************************************************************/ return(0); } /*********************************************************************** * Function choy88 solves equation systems according to * Cholesky method with in-situ storage ***********************************************************************/ /*********************************************************************** * here begins Function choy88 ***********************************************************************/ int choy88(void) { extern FR_DOUBLEAY gs;
218 6 Solvers
extern FR_DOUBLEAY rs; extern FR_INT4AY ip; extern FR_INT4 nfg; FR_INT4 j,i,ianz,k,kanz; /*---------------------------------------------------------------------* Start Function *---------------------------------------------------------------------*/ /*********************************************************************** * Cholesky decomposition ***********************************************************************/ gs[1]= sqrt(gs[1]); for(j = 2L;j <= nfg;j++) {
/* 30 */
wrim88r(j,TX_CHOJ); for(i = 1L;i <= (j-1);i++) {
/* 20 */
ianz= ip[j+1] - ip[j]; if(ianz < (j-i+1L)) goto L20; gs[ip[j]+j-i]= gs[ip[j]+j-i] / gs[ip[i]]; for(k = (i+1L);k <= j;k++) {
/* 10 */
if(ianz < (j-k+1L)) goto L10; kanz= ip[k+1] - ip[k]; if(kanz < (k-i+1L)) goto L10; gs[ip[j]+j-k]= gs[ip[j]+j-k] - gs[ip[k]+k-i] * gs[ip[j]+j-i]; L10:; }
/* e 10 */
L20:; }
/* e 20 */
gs[ip[j]]= sqrt(gs[ip[j]]); }
/* e 30 */
/*********************************************************************** * insert forward ***********************************************************************/ wrim88r(0L,TX_VORW); wlog88r(0L,LOG_VORW); for(i = 1L;i <= nfg;i++) {
/* 50 */
rs[i]= rs[i] / gs[ip[i]]; for(k = i+1L;k <= nfg;k++) {
/* 40 */
6.2 Condition and Scaling 219
kanz= ip[k+1] - ip[k]; if(kanz < (k-i+1L)) goto L40; rs[k]= rs[k] - gs[ip[k]+k-i] * rs[i]; L40:; }
/* e 40 */
}
/* e 50 */
/*********************************************************************** * insert backward ***********************************************************************/ wrim88r(0L,TX_RUECKW); wlog88r(0L,LOG_RUECKW); for(i = nfg;i >= 1L;i-‑) {
/* 70 */
rs[i]= rs[i] / gs[ip[i]]; for(k = 1L;k <= (i-1L);k++) {
/* 60 */
ianz= ip[i+1] - ip[i]; if(ianz < (i-k+1L)) goto L60; rs[k]= rs[k] - gs[ip[i]+i-k] * rs[i]; L60:; }
/* e 60 */
}
/* e 70 */
return(0); }
Finally the scaling process and the Cholesky process have to be displayed with in situ storage according to the Jennings process in the C routine CHOY88.C /47/. Later the scaling will be reversed in the function Z88CR.C (here not shown) /47/. With: gs[i]:
global stiffness matrix
ip[i]:
pointer vector for Jennings storage
rs[i]:
right side
FR_SQRT:
root function sqrt() or sqrtl()
FR_DOUBLEAY: double * or long double * FR_INT4AY: long * or long long *
These FR_ definitions serve for the easy adaptation to 32- or 64- or 128-bit environments with UNIX machines. This is considered automatically while compilating (cf. chapter 9.3). /*********************************************************************** * This Compiler unit contains: * scal88 * choy88 with Jennings storage
220 6 Solvers
* Scaling and Solver according to H. R. Schwarz * 10.4.2011 Rieg ***********************************************************************/ /*********************************************************************** * For UNIX ***********************************************************************/ #ifdef FR_UNIX #include #include
/* FR_SQRT */
#endif /*********************************************************************** * For Windows ***********************************************************************/ #ifdef FR_WIN #include #include
/* FR_SQRT */
#endif /*********************************************************************** * Functions ***********************************************************************/ int wrim88r(FR_INT4,int); int wlog88r(FR_INT4,int); /*********************************************************************** * here begins Function scal88 ***********************************************************************/ int scal88(void) { extern FR_DOUBLEAY gs; extern FR_DOUBLEAY rs; extern FR_DOUBLEAY fak; extern FR_INT4AY ip; extern FR_INT4 nfg; FR_INT4 i,j,k,jstart,jstop; /*---------------------------------------------------------------------* Start Function *---------------------------------------------------------------------*/ /*********************************************************************** * calculate scale factors, convert right side, scale matrix ***********************************************************************/ for(i = 1;i <= nfg;i++) { if(gs[ip[i]] <= 0.) {
6.2 Condition and Scaling 221
wlog88r((ip[i]),LOG_DIAGNULL); return(AL_DIAGNULL); } fak[i]= 1. / FR_SQRT( gs[ip[i]] ); rs[i] *= fak[i]; gs[ip[i]]= 1.; if(i == 1) continue; jstart=ip[i-1] + 1; /* starting inverse Skyline in line i */ jstop= ip[i]
- 1; /* line until diagonal element of line i */
k= jstart - jstop + i - 1; for(j= jstart; j <= jstop; j++) { gs[j] *= fak[i] * fak[k]; k++; } } /**********************************************************************/ return(0); } /*********************************************************************** * Function choy88 solves equation systems according to * Cholesky method with in-situ storage ***********************************************************************/ /*********************************************************************** * here begins Function choy88 ***********************************************************************/ int choy88(void) { extern FR_DOUBLEAY gs; extern FR_DOUBLEAY rs; extern FR_INT4AY ip; extern FR_INT4 nfg; FR_DOUBLE sum; FR_INT4 j,i,m,k,i0,j0,li,lj; /*---------------------------------------------------------------------* Start Function *---------------------------------------------------------------------*/ /*********************************************************************** * Cholesky decomposition ***********************************************************************/ gs[1]= FR_SQRT(gs[1]); for(i = 2;i <= nfg;i++)
222 6 Solvers
{ wrim88r(i,TX_CHOJ); i0= ip[i] - i; li= ip[i-1] + 1 - i0; for(j = li;j <= i;j++) { j0= ip[j] - j; sum=
gs[i0+j];
lj= 1; if(j > 1) lj= ip[j-1] - j0 + 1; if(li >= lj) m= li; else
m= lj;
for(k = m;k <= j-1;k++) sum -= gs[i0+k] * gs[j0+k]; if(j < i) gs[i0+j]= sum / gs[ip[j]]; else gs[ip[i]]= FR_SQRT(sum); } } /*********************************************************************** * insert forward ***********************************************************************/ wrim88r(0,TX_VORW); wlog88r(0,LOG_VORW); rs[1]= rs[1] / gs[1]; for(i= 2;i <= nfg;i++) { sum= rs[i]; i0= ip[i] - i; li= ip[i-1] + 1 - i0; for(j= li;j <= i-1;j++) sum -= gs[i0+j] * rs[j]; rs[i]= sum / gs[ip[i]]; } /*********************************************************************** * insert backward ***********************************************************************/ wrim88r(0,TX_RUECKW); wlog88r(0,LOG_RUECKW);
6.3 Iterative Solvers 223
for(i= nfg;i >= 2;i-‑) { rs[i] = rs[i] / gs[ip[i]]; i0= ip[i] - i; li= ip[i-1] + 1 - i0; for(j= li;j <= i-1;j++) rs[j] -= gs[i0+j] * rs[i]; } rs[1]= rs[1] / gs[1]; return(0); }
■■6.3 Iterative
Solvers
The main advantage of the iterative solvers used with FEA is the fact that they are almost immune to inappropriate numbering of nodes and work with a minimum of memory if they are combined with the process of non-zero elements storage. In literature, it is often claimed that with big equation systems, iteration solvers are able to work faster than direct solvers. According to our observations based on many numerical experiments, this is right in parts, in fact iteration solvers can absolutely be faster. This is not due to their mathematical structure, but – particularly in combination with the process of the nonzero elements storage – to the need of less mathematical operations like summation and multiplications executed, due to the matrix being sparse. As a result, blind operations, e.g. addition of zero, are avoided. With dense equation systems, one will find that the direct solvers are quicker. But you have all opportunities: only you can decide what to think about the result. Z88 contents both direct solvers and iteration solvers. However, iteration solvers definitively have a disadvantage: You never know when they finished solving or have reached an “exact” solution. We will focus on this in particular. But first we start again with a system of equations: a11 a12 · · · a1n x1 b1 a21 a22 · · · a2n x2 b2 aij xj = bi A x = b or .. = .. or .. . . . j an1 an2 · · · ann xn bn
224 6 Solvers
With the following explanations, we refer to the achievements of Finck von Finckenstein /25/ and decompose A as follows: A = N – P
with det N ≠ 0
Now we define the so-called iteration matrix M and the so-called constant vector d: d = N–1 b M = N–1P and and form the sequence of vectors, beginning with a start vector x (0): x( ν) = M x( ν−1) + d with ν = 1, 2, ...
If this equation converges, x = x(v) , v → ∞ is the solution of the equation system. Vice versa you can indicate that the iteration solver will converge, if the spectral radius is ρ (M) <1. The spectral radius ρ is, according to amount, the biggest eigenvalue of a matrix. To the subject of identifying the eigenvalues of a matrix, we refer to chapter 6.5. To make a statement about the convergence of the iteration processes, we need to provide some definitions: “A mathematical problem is called well-conditioned if a low relative variation of the problem’s input data causes just one low relative update of the result (i.e. of the problem’s solution). If a low relative update of the input data causes a big relative update of the result, you call it a badly conditioned problem” (cf. /25/). Remark: This definition is independent of a process for solving the problem. “You call an algorithm numerically more stable than a second algorithm calculating ϕ (x), if the whole influence of the rounding errors is smaller with the first algorithm than with second” (cf. /92/). Vector norms: maximum norm:
|| x || ∞ = max |xk |
k = 1, ..., n
n
n L1-norm: =12=max = |x2k| x2k x∞ || x||y∞ k
k = 1, ..., n
k=1 k=1
Euclidean norm: Matrix norms: column norm or “1” norm:
line norm or „∞“ norm:
n x 2 = x2k k=1
A 1 = max
n
A ∞ = max
i=1
|aik |
n k=1
|aik |
k = 1, ..., n i = 1, …, ..., n
6.3 Iterative Solvers 225
spectral norm or “2” norm:
A 2 =
Special matrices: Diagonal matrix D: a1,1 0 0 a2,2 D= 0 0 0 0
0 0 ... 0
0 0 = D = aij δij 0 an,n
ρ (AxT A)
δij : Kronecker symbol
with: δij = 1 for i = j, otherwise 0.
Strictly lower triangular matrix E and strictly upper triangular matrix F: 0 0 0 0 0 a1,2 ... a1,n a2,1 0 0 0 ... 0 0 ... −E = −F= ... ... 0 0 ... an−1,n ... 0 an,1 ... an,n−1 0 0 0 0 0
6.3.1 The Jacobi Method With the Jacobi method, the matrix N is selected as follows: a11 0 0 0 0 a22 0 0 =D N= 0 0 ... 0 0 0 0 ann
With it the iteration matrix M = becomes I − N-1 A n 1 x i ( ν) = bi − aij xj (ν−1) , i = 1, ..., n, ν = 1, 2, ... aii j=1,j,j=≠i i
About convergence considerations from a mathematical view, please see appropriate literature. However, after our extensive numerical experiments, with finite element analysis you do not use the Jacobi method for a serious application/implementation because of the very slow convergence or often divergence.
226 6 Solvers
6.3.2 The Gauss-Seidel Method With the Gauss-Seidel method (published in 1874 by Ludwig Seidel), the matrix N is selected as follows a11 0 0 0 ... a22 0 0 =D−E N= ... ... ... 0 an1 an2 ... ann With it, the iteration matrix becomes M = I − (D − E)–1 A and the iteration rule becomes: i−1 n 1 ( ν) ( ν) (ν−1) xi = bi − aij xj − aij xj , i = 1, ..., n, ν = 1, 2, ... aii j=1
j=i+1
With it, the Gauss-Seidel method uses, in contrast to the Jacobi method, the already known i − 1 first components of x(ν) for the calculation of the i component of x(ν). For more information about convergence considerations from the mathematical view, please see the appropriate literature. However, after our extensive numerical experiments, with finite element analysis you do not use the Gauss-Seidel method just as the Jacobi method for a serious implementation because of the very slow convergence or often divergence!
6.3.3 The SOR Method and the JOR Method Since both classical methods, Jacobi and Gauss-Seidel, often converge too slow in practice, one tries to speed up these processes with iteration matrices with a very small spectral radius. With the Gauss-Seidel method, we use the real parameter ω and the matrix N is selected as follows (cf. Schwarz /35/): a 1,1 0 0 0 ω a2,2 0 0 a2,1 N= ω ... ... ... 0 an,n an,1 an,2 ... ω We split up A in the following way: A = D − E − F, F = ET . The iteration matrix becomes M = (D − ω E)−1 [(1 − ω) D + ω F] and the constant vector is d = −ω (D − ω E)−1 b . With this, the iteration rule is: i−1 n 1−ω ω (v) (v−1) (v−1) (v) bi − aij xj − aij xj + xi = aii xi aii ω j=i j=i+1
i = 1, ..., n, v = 1, 2, ...
6.3 Iterative Solvers 227
ω is the so-called relaxation parameter. You distinguish: ω < 1: under relaxation ω > 1: over relaxation Be careful: According to the theorem of Kahan: Convergence for 0 < ω < 2. This is the so-called SOR method, successive over relaxation. How do you select the optimum relaxation parameter ω? In theory no problem at all: ωopt =
1+
2 1 − ρ(M)
2
This looks good, but determining the spectral radius of M is so expensive that in practice you usually do not do this. There are estimations for special mathematical problems, but with FE calculations you are not able to avoid experiments. Try out values from 0.8 to 1.2 for ω. Analogously, one can build the JOR (Jacobi over relaxation) method (cf. Schwarz/35/): The iteration matrix is as follows: M = (1 − ω) I + ω D−1 (E + F) and with the constant vector d = −ω D−1 b ,
the iteration rule is x(ν) = M x(ν−1) + d with ν = 1, 2, … n ω ( v) (v−1) (v−1) xi = (1 − ω)xi − aij xj + bi , i = 1, ..., n, v = 1, 2, ... aii j=1, j ≠ i j=i
Both, SOR and JOR method, contain as special cases with ω = 1 the Gauss-Seidel or the Jacobi method. But also these both processes with faster convergence are, according to our observations, not qualified for common bigger FE structures.
6.3.4 The basic CG Solver Probably you already felt desperate because we advised you against the introduced iteration processes. But there is help in sight! The now demonstrated process of the conjugated gradients, briefly CG solver, by Hestenes and Stiefel is a very useful method for FE iteration solvers. The derivation is not uncomplicated, we leave that to the mathematicians, e.g., Schwarz /35/ or Jedrzejewski /36/, they are far more capable than we are. We only indicate the origin of the name: The solution x of the system A x + b = 0 with the symmetrical and positive definite matrix A is the minimum of the quadratic function F( v ) : =
n n n 1 1 aik vi vk + bi vi = (v, A v) + (b, v) 2 2 i=1
k=1
i=1
228 6 Solvers
The gradient of F (v) is equal to the residual vector r of the vector v: grad F(v) = A v + b = r
At least the name of the process is explicable by this. We skip the rest of the derivation and indicate the finished algorithm with: x
Solution vector
r
Residual vector
p
Direction vector
The algorithm is as follows: choosing x(0), with FEA mostly x(0) = 0 r(0) = A x(0) + b p(1) = −r(0) Iteration (k = 1, 2, 3 ...) T
if
k > 1 : ek−1 =
z = A p ( k)
r(k−1) rk−1 , p(k) = −r(k−1) + e(k−1) p(k−1) T r(k−2) rk−2
T
qk =
r(k−1) r(k−1) T p ( k) z
x(k) = x(k−1) + qk p(k) r(k) = r(k−1) + qk z Testing convergence
To the subject of convergence can be said (cf. /35/): The method of the conjugated gradients delivers the solution of an equation system in n unknowns after at most n steps, with an exact calculation provided. However, in spite of never avoidable rounding errors, normally you are much faster in practice. The practical consequence is: With Z88 you can select the maximum number of iteration steps in the control file Z88MAN.TXT. If the structure to be examined has 100,000 degrees of freedom, the solution might be achieved after approx. 100,000 iteration steps. But in practice, this mostly proceeds considerably faster: By pre-conditioning, one can speed up the process.
6.3 Iterative Solvers 229
6.3.5 The CG Solver with Pre-conditioning Our original system of equations was Ax+b=0
We define a regular matrix C and convert our system of equations as follows: C−1 A C−T CT x + C−1 b = 0
With this we get new quantities:
˜ = C−1 A C−T , ˜x = CT x, ˜b = C−1 b A ˜ ˜x + ˜b = 0 and the transformed system becomes A ˜ ) is substanThe trick is that the matrix C should be designed so that the condition number κ(A κ ( A ) tially smaller than the condition number . The condition number concerning a (at first not specified) matrix norm is κ(A) = A · A−1 ˜ is similar to How do you select C? In addition, we note that A
˜ CT = C−T C−1 A C−T CT = (C CT )−1 A C−T A Therefore, the symmetrical and positively definite matrix is essential
M: = C CT The matrix M is the so-called pre-conditioning matrix and should be an approximation of matrix A to achieve a good condition improvement. We skip the other derivations and refer to /6/, /35/ and /36/. With this, the pre-conditioned algorithm of the conjugated gradients becomes: choosing x(0), with FEA mostly x(0) = 0 choosing M r(0) = A x(0) + b
230 6 Solvers
Iteration resp. resp. relaxation relaxation ((kk = = 1, 1, 2, 2, 3 3 ... ...)) Iteration k−1)) k−1)) Mρ ρ((k−1 = rr((k−1 this equation equation system system has has to to be be M = ,, this solved for for ρ ρ in in every every iteration step Iterationsschritt nach piteration aufgelöst werden! solved step k−1)) if kk = =1 1 :: gg((kk)) = = −ρ −ρ((k−1 if T
(k−1)T ((k−1 ρ k−1)) rr(k−1) ρ k−1)) k−1)) if k > 1 : e = , g((kk)) = = −ρ −ρ((k−1 + eek−1 g((k−1 k−1 = k−1 g T if k > 1 : ek−1 + T ( k−2 ) k−2)) , g rr(k−2) ρ ρ((k−2 k−1))TT ((k−1 ρ k−1)) r((k−1 ρ r = T qqkk = (k)T A g((kk)) ) gg(k) ((A g ) k−1)) x((kk)) = =x x((k−1 + qqkk gg((kk)) x +
( k) k−1)) = rr((k−1 + qqkk ((A A gg((kk)) )) rr(k) = + Testing convergence convergence Testing
You can see that in every iteration step one system of equations is solved. Hence, you will select the matrix M in such a way that this system of equations can be solved as efficiently and simply as possible. This leads to the first possibility, the preconditioning with SOR.
6.3.5.1 Preconditioning with SOR According to Evans and Axelsson /48/ you choose a “relaxation parameter” ω and define the pre-conditioning matrix M as follows:
˜=E ˆ) (I + ω ˆF) mit C = I + ω E, ˆ A ˆ + I + ˆF M: = (I + ω E The system of equations M ρ = r is solved in two steps:
ˆ) y = r (I + ω E (I + ω ˆF) ρ = y Although this increases the effort at first, under favorable conditions the number of the iteration steps can decrease so strongly that the additional expenditure was worthwhile. With ω = 1, this turns into the normal algorithm of conjugated gradients. This process is called SORCG or SSORCG, abbreviation of (symmetric) successive over relaxation conjugated gradients, because the matrix M basically appears in the SOR process, even though not as an iteration matrix. It needs no additional computer storage compared to the normal CG solver.
6.3.5.2 Preconditioning with Partial Cholesky Decomposition To get the preconditioning matrix M, you use the Cholesky decomposition of matrix A according to chapter 6.1.1. without any fill-in: All types of triangular decomposition have the attribute that at the places without matrix elements before the decomposition, matrix elements appear after decomposition (see Figures 6.3-1 and 6.3-2). The elements marked with + disappear. With it, the decomposition is only an approximation of A, but the structural construction is maintained.
6.3 Iterative Solvers 231
x
x
x
x
x
x
x
x
x
x x x
x
x
x
x
x
x
x
x x
x x
x
x
x
Figure 6.3-1: Source matrix
x
x
x
x
x
x
x
x
x
+
x
+
x
x
+ +
x
x x
+
+
x
x
x + x
x x
x
+ x
x x
+
+
x
Figure 6.3-2: After several Cholesky operations, + additional elements
The existence of the Cholesky decomposition is not necessary because due to the missing fill-in, the matrix can become indefinite. To get a good pre-conditioning matrix also under such unfavourable conditions, you reduce the non-diagonal elements of the scaled matrix (analogously to chapter 6.2) A according to Manteuffel /49, 51/ with a common factor, the shift factor α, as follows:
˜ =I+ A
1 ˆ + ˆF) (E 1+α
You call this process SICCG, shifted incomplete Cholesky conjugate gradients. In addition, compare also Meijerink and van der Vorst /50/. The shift factor α should be very small, because the greater it is, the smaller the non-diagonal elements are and the more they move away from the origin matrix. Program-technically you solve this problem by reading in α in the first instance and starting the decomposition. If the partial Cholesky decomposition does not work, the program automatically raises α, e.g., doubles it, cf. the equivalent excerpt (inside the program α is called rp) of the following routine siccg88:
232 6 Solvers
/*---------------------------------------------------------------------* starting: execute partial Cholesky decomposition *---------------------------------------------------------------------*/ for(k= 1;k <= 1000; k++) { wrim88i(k,TX_PART88); if(part88() == 0) break; else { if(rp <= 1e-10) rp= 0.00005; rp+= rp; } }
After that you try to execute the partial Cholesky decomposition again, function part88. Z88 indicates, how many attempts were necessary. Start with a value around 0.00001 for α. A disadvantage of the SICCG process is that you have to allocate additional memory for the matrix C. According to our observations, the SORCG process needs only approximately 2/3 of the memory needed by the SICCG process. But you can select this arbitrarily; the following program code (cf. /47/) includes both the SICCG and the SORCG process. /*********************************************************************** * This compiler unit contains: * scal88 * siccg88 * part88 * cixa88 * sorcg88 * conjugated gradients with either * - partial Cholesky decomposition or * - preconditioning with SSOR * is based ideally on FORTRAN programs by H. R. Schwarz,University of Zuerich * 17.9.2011 Rieg ***********************************************************************/ /*********************************************************************** * For UNIX ***********************************************************************/ #ifdef FR_UNIX #include #include
6.3 Iterative Solvers 233
#include
/* FR_SQRT */
#endif /*********************************************************************** * For Windows ***********************************************************************/ #ifdef FR_WIN #include #include
/* FR_SQRT */
#endif /*********************************************************************** * functions ***********************************************************************/ int wlog88r(FR_INT4,int); int wrim88r(FR_INT4,int); int cixa88(void); int part88(void); /*********************************************************************** * here begins function scal88 ***********************************************************************/ int scal88(void) { extern FR_DOUBLEAY GS; extern FR_DOUBLEAY rs; extern FR_DOUBLEAY fak; extern FR_INT4AY ip; extern FR_INT4AY iez; extern FR_INT4 nfg; FR_INT4 i,j; /*---------------------------------------------------------------------* starting function *---------------------------------------------------------------------*/ /*********************************************************************** * calculate scale factors and convert right side ***********************************************************************/ for(i = 1;i <= nfg;i++) { if(GS[ip[i]] <= 0.) { wlog88i2((ip[i]),LOG_DIAGNULL); return(AL_DIAGNULL); } fak[i]= 1. / FR_SQRT(GS[ip[i]]);
234 6 Solvers
GS[ip[i]]= 1.0; rs[i]*= fak[i]; if(i == 1) continue; for(j = ip[i-1]+1;j <= ip[i]-1;j++) GS[j]*= fak[i] * fak[iez[j]]; } return(0); } /*********************************************************************** * function siccg88 solves equation systems with conjugated * gradients process and partial Cholesky decomposition, recalls * part88 and cixa88 ***********************************************************************/ int siccg88(void) { extern FR_DOUBLEAY GS; extern FR_DOUBLEAY CI; extern FR_DOUBLEAY rs; extern FR_DOUBLEAY xi; extern FR_DOUBLEAY xa; extern FR_DOUBLEAY v; extern FR_DOUBLEAY pk; extern FR_DOUBLEAY zz; extern FR_INT4AY ip; extern FR_INT4AY iez; extern FR_DOUBLE rp,eps; extern FR_INT4 nfg,maxit; FR_DOUBLE sumnen,sumzae,q,rho0,rho1,e; FR_INT4 j,i,k; /*---------------------------------------------------------------------* starting: execute partial Cholesky decomposition *---------------------------------------------------------------------*/ for(k= 1;k <= 1000; k++) { wrim88r(k,TX_PART88); if(part88() == 0) break; else { if(rp <= 1e-10) rp= 0.00005; rp+= rp; } }
6.3 Iterative Solvers 235
wrim88r(0,TX_CR); /*---------------------------------------------------------------------* set to zero the vectors v,xi,xa,pk and zz *---------------------------------------------------------------------*/ for(i= 1; i <= nfg; i++) { xi[i]= -rs[i]; v[i] = 0.; xa[i]= 0.; pk[i]= 0.; zz[i]= 0.; } /*---------------------------------------------------------------------* iteration loop *---------------------------------------------------------------------*/ for(k= 1; k <= maxit; k++) { wrim88r(k,TX_ITERA); /*====================================================================== * solving system of equation CI * CIt * xa = xi *=====================================================================*/ cixa88(); /*====================================================================== * r x rho *=====================================================================*/ sumzae= 0.; for(i= 1; i <= nfg; i++) sumzae+= xi[i] * xa[i]; /*====================================================================== * exception k= 1 *=====================================================================*/ if(k == 1) { rho0= sumzae*eps; e= 0.; } else /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * e(k-1)= r(k-1) x rho(k-1) / r(k-2) x rho(k-2) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ e= sumzae/rho1; /*====================================================================== * reached residuum? Good bye. *=====================================================================*/
236 6 Solvers
if(sumzae <= rho0) { for(i= 1; i <= nfg; i++) rs[i]= v[i]; wrim88r(0,TX_JACOOK); return 0; } /*====================================================================== * otherwise go on *=====================================================================*/ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * g(k) = e(k-1) x g(k-1) - rho(k-1) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ for(i= 1; i <= nfg; i++) pk[i]= e*pk[i] - xa[i]; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * auxiliary vector zz(k)= A x g(k) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ zz[1]= GS[1]*pk[1]; for(i= 2; i <= nfg; i++) { zz[i]= GS[ip[i]] * pk[i]; for(j= ip[i-1]+1; j <= ip[i]-1; j++) { zz[i]
+= GS[j] * pk[iez[j]];
zz[iez[j]]+= GS[j] * pk[i]; } } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * denominator g(k) x zz(k) = g(k) x (A x g(k)) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ sumnen= 0.; for(i= 1; i <= nfg; i++) sumnen+= pk[i] * zz[i]; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * qk= r(k-1) x rho(k-1) / [g(k) x (A x g(k))] *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ q= sumzae/sumnen; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * v(k)= v(k-1) + qk x g(k) * r(k)= r(k-1) + qk x (A x g(k)) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ for(i= 1; i <= nfg; i++)
6.3 Iterative Solvers 237
{ v [i]+= q * pk[i]; xi[i]+= q * zz[i]; } rho1= sumzae; } /*---------------------------------------------------------------------* residuum not reached - also good bye. *---------------------------------------------------------------------*/ wrim88r(0,TX_JACONOTOK); for(i= 1; i <= nfg; i++) rs[i]= v[i]; return(0); } /*********************************************************************** * function part88 carries out partial Cholesky decomposition ***********************************************************************/ int part88(void) { extern FR_DOUBLEAY GS; extern FR_DOUBLEAY CI; extern FR_INT4AY ip; extern FR_INT4AY iez; extern FR_DOUBLE rp; extern FR_INT4 nfg; FR_DOUBLE facto; FR_INT4 j,i,k,l; /*---------------------------------------------------------------------* starting function *---------------------------------------------------------------------*/ facto= 1./(1.+rp); CI[1]= GS[1]; for(i= 2; i <= nfg; i++) { CI[ip[i]]= GS[ip[i]]; for(j = ip[i-1]+1; j <= ip[i]-1; j++) CI[j]= GS[j]*facto; } for(i= 2; i <= nfg; i++) { for(j= ip[i-1]+1; j <= ip[i]-1; j++)
238 6 Solvers
{ CI[j]= CI[j] / CI[ip[iez[j]]]; for(k= j+1; k <= ip[i]; k++) { for(l= ip[iez[k]-1]+1; l <= ip[iez[k]]; l++) { if(iez[l] > iez[j]) goto L40; if(iez[l] < iez[j]) continue; CI[k]= CI[k] - CI[j] * CI[l]; goto L40; } L40:; } } if(CI[ip[i]] < 1e-6) return 1; CI[ip[i]]= FR_SQRT(CI[ip[i]]); } /*---------------------------------------------------------------------* everything all right *---------------------------------------------------------------------*/ return 0;
/* everything all right */
} /*********************************************************************** * function cixa88 solves equation systems CI * CIt * xa = pk ***********************************************************************/ int cixa88(void) { extern FR_DOUBLEAY CI; extern FR_DOUBLEAY xa; extern FR_DOUBLEAY xi; extern FR_INT4AY ip; extern FR_INT4AY iez; extern FR_INT4 nfg; FR_DOUBLE sum; FR_INT4 j,k; /*---------------------------------------------------------------------* starting function *---------------------------------------------------------------------*/ xa[1]= xi[1]; for(k= 2; k <= nfg; k++) { sum= 0.;
6.3 Iterative Solvers 239
for(j= ip[k-1]+1; j <= ip[k]-1; j++) sum+= CI[j] * xa[iez[j]]; xa[k]= (xi[k]-sum)/CI[ip[k]]; } for(k= nfg; k >= 2; k-‑) { xa[k]/= CI[ip[k]]; for(j= ip[k-1]+1; j <= ip[k]-1; j++) xa[iez[j]]= xa[iez[j]] - CI[j] * xa[k]; } return 0; } /*********************************************************************** * function sorcg88 solves equation systems with conjugated * gradient process and SSOR preconditioning ***********************************************************************/ int sorcg88(void) { extern FR_DOUBLEAY GS; extern FR_DOUBLEAY rs; extern FR_DOUBLEAY xi; extern FR_DOUBLEAY xa; extern FR_DOUBLEAY v; extern FR_DOUBLEAY pk; extern FR_DOUBLEAY zz; extern FR_INT4AY ip; extern FR_INT4AY iez; extern FR_DOUBLE rp,eps; extern FR_INT4 nfg,maxit; FR_DOUBLE sumnen,sumzae,q,rho0,rho1,e; FR_INT4 j,i,k; /*---------------------------------------------------------------------* set to zero vectors v,xi,xa,pk and zz *---------------------------------------------------------------------*/ for(i= 1; i <= nfg; i++) { xi[i]= -rs[i]; v[i] = 0.; xa[i]= 0.; pk[i]= 0.; zz[i]= 0.; }
240 6 Solvers
/*---------------------------------------------------------------------* iteration loop *---------------------------------------------------------------------*/ for(k= 1; k <= maxit; k++) { wrim88r(k,TX_ITERA); /*====================================================================== * preconditioning *=====================================================================*/ xa[1]= xi[1]; for(i= 2; i <= nfg; i++) { sumzae= 0.; for(j= ip[i-1]+1; j <= ip[i]-1; j++) sumzae+= GS[j] * xa[iez[j]]; xa[i]= xi[i] - rp * sumzae; } for(i= nfg; i >= 2; i-‑) { sumzae= rp * xa[i]; for(j= ip[i-1]+1; j <= ip[i]-1; j++) xa[iez[j]]-= sumzae * GS[j]; } /*====================================================================== * conjugated gradients: r x rho *=====================================================================*/ sumzae= 0.; for(i= 1; i <= nfg; i++) sumzae+= xi[i] * xa[i]; /*====================================================================== * exception k= 1 *=====================================================================*/ if(k == 1) { rho0= sumzae*eps; e= 0.; } else /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * e(k-1)= r(k-1) x rho(k-1) / r(k-2) x rho(k-2) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ e= sumzae/rho1;
6.3 Iterative Solvers 241
/*====================================================================== * reached residuum? Good bye. *=====================================================================*/ if(sumzae <= rho0) { for(i= 1; i <= nfg; i++) rs[i]= v[i]; wrim88r(0,TX_JACOOK); return 0; } /*====================================================================== * otherwise go on *=====================================================================*/ /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * g(k) = e(k-1) x g(k-1) - rho(k-1) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ for(i= 1; i <= nfg; i++) pk[i]= e*pk[i] - xa[i]; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * auxiliary vector zz(k)= A x g(k) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ zz[1]= GS[1]*pk[1]; for(i= 2; i <= nfg; i++) { zz[i]= GS[ip[i]] * pk[i]; for(j= ip[i-1]+1; j <= ip[i]-1; j++) { zz[i]
+= GS[j] * pk[iez[j]];
zz[iez[j]]+= GS[j] * pk[i]; } } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * denominator g(k) x zz(k) = g(k) x (A x g(k)) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ sumnen= 0.; for(i= 1; i <= nfg; i++) sumnen+= pk[i] * zz[i]; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * qk= r(k-1) x rho(k-1) / [g(k) x (A x g(k))] *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ q= sumzae/sumnen; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * v(k)= v(k-1) + qk x g(k)
242 6 Solvers
* r(k)= r(k-1) + qk x (A x g(k)) *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ for(i= 1; i <= nfg; i++) { v [i]+= q * pk[i]; xi[i]+= q * zz[i]; } rho1= sumzae; } /*---------------------------------------------------------------------* residuum not reached - also good bye. *---------------------------------------------------------------------*/ wrim88r(0,TX_JACONOTOK); for(i= 1; i <= nfg; i++) rs[i]= v[i]; return(0); }
Now you know the most important things about equation solvers. In practice, with smaller structures up to 30,000 degrees of freedom, you select the direct Cholesky solver, if necessary with previous operation of the Cuthill-McKee program Z88H. With bigger structures, you use the iteration solver with the SICCG process. With the iteration solver as a matter of principle you do not need the Cuthill-McKee program or another re-sorter, although you could achieve a better condition of the equation system and perhaps would need less iteration steps. We want to point out something very essential: There is no absolutely “right” stop criterion for iteration solvers: No matter which norm of a residual vector is compared to this limit – you can never be sure that all elements of the solution vector are right. Let’s do a small thought experiment: We imagine a very small FE structure with 5 degrees of freedom. The exact solution is uexact, but in calculation practice we certainly do not know it. In the case of a solver A the solution is uA and in the case of a solver B the solution is uB: 0.95 1.05 1.0 0.95 1.05 1.0 uA = 0.95 uB = 1.05 uexact = 1.0 0.95 0.80 1.0 0.95 1.05 1.0 As an “abort criterion” for all three vectors we build the Euclidean norm with
6.3 Iterative Solvers 243
n x 2 = x2k k=1
and receive following values:
uA 2 = 2.12, uB 2 = 2.25, uexact 2 = 2.24 To be honest: At the first sight solution B seems to be the correct one due to the Euclidean norm. In reality solution B is a trap: Almost all components are close to the exact values, but there are a few (here only one) big runaways which map certain degrees of freedom very inexactly. In the end, solution A is more balanced and more useful in practice. We observed this several times in the practice! Try the following: Calculate example 13.9, the RINGSPANN disc first with the direct Cholesky solver and plot the deflections with an enlargement of 10. Then calculate with the iteration solver with setting 1E-5 for eps in the control file Z88MAN.TXT and plot once more. What do you see? This is exactly the effect we described above. Now set 1E-10 for eps in the control file Z88MAN.TXT and let the solver run once more. Straightaway the plot of the deflections looks quite good. The choice of eps significantly influences the number of the iterations and with it the calculation time. Please also consider this while comparing with the big commercial solvers (you do not know which stop criteria they use anyway): The limit you can set there does not need to be the same as eps from Z88. However, extensive tests showed that with eps from approximately 0.00001 to 0.0000001, the displacement values achieved in different nodes match very well with those of famous big commercial solvers with similar calculation time. Consider: If you compute big FEA structures with different solvers, you never know, which solver is the most accurate. There is just one, seriously just one, way to solve this problem: Your engineer’s mind has to tell you on the basis of the deflection and stress plots whether these results could be realistic. Blessed is the one, who is holding solid knowledge of engineering design and mechanics, common sense and practical experience.
244 6 Solvers
■■6.4 Solver
for Thermomechanical Problems
The direct equation solver and the iterative equation solver SICCG or SORCG, as described in the previous chapters, are also used for temperature analysis without being changed. For the finite elements (hexahedron, tetrahedron) used for thermal calculation, the values for the equation system decrease because of the reduction from three to one degree of freedom whereby the system of equations is significantly reduced. In contrast, the thermo mechanical calculation does not change. As usual we examine three degrees of freedom in space.
■■6.5 Solver
for Vibration Problems
With the EVP system matrix, the initial situation is available for the eigenvalue solver. Cornelius Lanczos /128/ already introduced a numerical process in 1950 particularly proven in the fields of FEA. Although the numerical modal analysis of FEA structures probably was not possible yet, the algorithm has many properties that are positive for the FE programming. The basic idea, reducing the matrix iteratively on a so-called tridiagonal matrix (diagonal structure with bandwidth three) helps with the memory management. Moreover, it is mathematically made sure that the eigenvalues of this tridiagonal matrix are approximations of the eigenvalues of the original matrix. Every single iteration of the solver can be divided into two phases. In each case, you calculate first one (further) line or column of the tridiagonal matrix; basically you only calculate three matrix values, because all of the previous entries are preserved. In the second phase you determine the eigenvalues of this matrix, from zero upward. For physical reasons /129/, the EVP matrix has only positive eigenvalues. However, only the smallest eigenvalues (and eigenfrequencies) are important for the technical interpretation. If there is just one eigenfrequency in the excitation area in the end, the design should be adapted. Searching for eigenvalues bigger than zero makes sense because the solution procedure can simply be quit to save calculation time when the favored number is reached.
Phase I: Tridiagonalization The mathematical basis of the matrix tridiagonalization according to Lanczos is, as it is for the iteration processes with conjugated gradients, the pairwise orthogonality of the iteration vectors in the so-called Krylov subspace. The meanwhile generated vectors xi are not interpreted for the moment, in contrast to the CG method, but are used for the calculation of the scalar matrix entries αi and βi. For an exact derivation, we refer, for example, to /130/. We do not want to spend much time on the proof and use the iteration instruction according to Lanczos, that in the i-th step generates as a pseudo code the i × i tridiagonal matrix Ti:
6.5 Solver for Vibration Problems 245
(1)
v = (1.0,0.0,0.0,0.0)T
(2)
u = AEVP · v
(3)
for j = 1 to n do
(4)
alpha(j) = uT · v
(5)
w
= u – alpha(j) · v
(6)
beta(j)
= sqrt(wT · w)
(7)
v_neu
= w · 1 / beta(j)
(8)
u
= AEVP · v_neu – beta(j) · v
(9)
v
= v_neu
(10)
end for
A small example should clarify the approach. The symmetrical test matrix A, which becomes completely tridiagonalized in four steps, is the base. 4 0 1 3 0 5 2 0 A= 1 2 8 −1 4 3 0 −1 Coming from the initialization (j = 0) in lines (1) and (2) of the algorithm the following iteration steps result (Table. 6.5-1). Table 6.5-1: Progress of the Lanczos iteration with the test example
j 0
1
2
3
4
vj
+1.000 +0.000 +0.000 +0.000 +1.000 +0.000 +0.000 +0.000 +0.000 +0.000 +0.316 +0.949 +0.000 +0.845 +0.507 −0.169 +0.000 −0.535 +0.802 −0.267
uj
+4.000 +0.000 +1.000 +3.000 +0.000 +0.632 +1.581 +3.479 +0.000 +5.240 +5.679 −1.893 +0.000 −2.978 +4.467 −1.489 +0.525 +0.773 +1.069 +1.273
wj
v_neuj
αj
βj
-
-
-
-
+0.000 +0.000 +0.316 +0.949
4.000
3.162
3.800
0.748
+0.000 +0.845 +0.507 −0.169
7.629
2.259
5.571
-
+0.000 +0.000 +1.000 +3.000
+0.000 +0.632 +0.379 −0.126 +0.000 −1.207 +1.811 −0.604 +0.000 +0.000 +0.000 +0.000
+0.000 −0.535 +0.802 −0.267 −0.535 +0.039 +0.290 +0.792
246 6 Solvers
Since we do not need the vectors v, u, w and v_new for further calculation, they can be overwritten in every iteration in the sense of memory saving programming. Only the information on all up to now generated coefficients αi and βi are required later; they demand one vector of the length of the matrix size (node number · degrees of freedom) in each case maximally. And indeed, the memory demand of the Lanczos process is only slightly bigger than the memory demand of the iterative equation solvers from chapter 6.3.
T1 T2 T3 T4
α1= 4.000
β1= 3.162
0.000
β1= α2= 3.162 3.800 0.000
β2= 0.748
β2= α3= 0.748 7.629
0.000 0.000
0.000 0.000 β3= 2.259
β3= α4= 2.259 5.571
Figure 6.5-1: Array of the iterated coefficients in the tridiagonal matrix T4
According to theory, the eigenvalues of the tridiagonal matrices T1, T2, T3 with the calculated coefficients α1… 4, β1… 4 should be approximations for the eigenvalues of A ; the eigenvalues of T4 should even be the same as the ones of A. With our small test matrix, the eigenvalues of the successive arranging matrix T can be quickly found. Table 6.5-2: Eigenvalues (ev) of the generated tridiagonal matrices
ev of T1 (4.000)
ev of T2 0.736 7.064
ev of T3 0.694 6.766 7.968
ev of T4 0.687 4.116 7.000 9.197
ev of A 0.687 4.116 7.000 9.197
As you can see, the algorithm really leads to the goal. In the end, the eigenvalues of the original matrix A can be calculated quite exactly. If there are enough decimal places, it would be possible to determine a relative error for every eigenvalue. With the examined example, all four are smaller than 0.00005%: This is more than acceptable. The real added value of restarting the system matrix in tridiagonal form is only noticeable, as soon as the eigenvalues of Ti are calculated during the iteration phase. It will be obvious that every single step is less complex as well as there are fewer iteration steps necessary to reach satisfying results.
6.5 Solver for Vibration Problems 247
Phase II: Eigenvalue Approximation For every added line/column i of the tridiagonal matrix Ti the i eigenvalues potentially change in comparison to those from the previous step i-1. It is not guaranteed that once calculated eigenvalues are valid with regard to the whole EVP system matrix. According to definition /131/ for the exact identification of the eigenvalues λ1, …, λi, you need to determine all roots of the so-called characteristic polynomial, which changes with every new line or column. Nevertheless, on account of the usually very big EVP matrices, this method is not very efficient. Furthermore, as mentioned before, only the smallest natural frequencies are of technical interest. To avoid a large part of the unnecessary calculation effort, we use the so-called Sturm’s series /132/. They give information about the fact how many eigenvalues of a matrix M are over an assumed maximum limit μ. The process works iterative and uses a series of determinants dk: dk = det(μ · I – Mk) Mk characterizes the part matrix (from above on the left) of A which is generated if you only consider the lines and columns i ≤ k. With the changes of sign in this sequence of numbers dk, it can be precisely predicted how many eigenvalues of the whole matrix M are bigger than μ. Now, while setting up this determinant sequence, the advantage of the tridiagonal structure becomes apparent. The determinant of the k × k matrix consists of all (k − 1) × (k − 1) sub matrices, which originate from leaving out a line or column, according to the expansion theorem by Laplace /131/. The matrix entries of the line/column k with changes of sign for neighboring matrix entries are the pre-factor for the added up sub-matrix determinants. Applied to the tridiagonal matrix (μ · I − Ti), the following results:
Figure 6.5-2: Recursion of the determinants of a tridiagonal matrix
248 6 Solvers
Also for all other indices k = 5, 6 …, i every determinant dk depends only on both predecessors and requires no other inputs. Calculating the determinant of T1000 is of the same level of difficulty as T4, as long as we know the previous series members. This is an immense advantage compared to the quadratic rising effort we would have to make with unsystematically occupied matrices. The value of the statement, how many eigenvalues are present beyond μ, becomes clear in the next step. Now it is used for an approximate calculation of the smallest eigenvalue. At first we do not know anything about it, except that it is bigger than zero because of the positive definiteness. If we select μ = 0, we will exactly receive i as the number of the bigger eigenvalues of Ti. As long as μ can become bigger, without this number decreasing, even the smallest eigenvalue λ1 is bigger than μ. The difficulty is to find two thresholds as quickly as possible: one value for μu, which is just below λ1 (the obtained number is i), as well as for μo sligthly above λ1 (the obtained number is smaller than i). This approach, with two barriers running toward each other, for the purpose of a very exact limitation, is called bisection. Figure 6.5-3 illustrates the process.
Figure 6.5-3: Functioning of the process of bisection to search the smallest eigenvalue
Starting from the guaranteed lower bound 0.0 and an arbitrarily upper bound (here 1.0), the number of eigenvalues beyond the limits is assessed in every step. Their difference determines the number of the eigenvalues within the interval. As long as at least one eigenvalue is enclosed, the interval gets halved. For the two resulting part intervals, we assess the number of enclosed eigenvalues by using the medial limit μm = (μo + μu) /2. If the lower part interval does not contain any eigenvalues anymore, we focus on the upper half and proceed in the same way. Already after a short time, μo and μu are that close that we use the arithmetical mean of those bounds as an approximation of the eigenvalue. Since the interval is halved in every step, the numerical error decreases in every step as the sequence 2-i. Like this, for example, we can determine an eigenvalue in the search interval [0.0 3.95e + 09] (this equals the frequency interval up to 10,000 Hz) already after 40 steps of bisection with two decimal places. When the smallest eigenvalue λ1 of the EVP system matrix is finally determined with the desired accuracy, we launch the bisection method to find the second smallest eigenvalue by selecting an appropriate lower limit of the new search interval. To find the fifth smallest eigenvalue, we actually search for the smallest eigenvalue in the interval from λ1 + ∆ with ∆ marking a defined difference, which has to be the minimum of the difference between two eigenvalues to recognize them as being different. Like this, we can exclude the constriction of the simulation
6.5 Solver for Vibration Problems 249
result by mathematical multiplicities without technical significance. If it is asked for the ten smallest eigenvalues, we should be able to find ten different modes. With this last step, all parts of the eigenvalue solver are defined. Since they have to be interlaced into each other, in theory the calculation effort is huge. The logical progression from Figure 6.5-4 contains various loops (grey), whose effort can be estimated as follows: For every new line or column i, each of the p required eigenvalues can be determined by the bisection method. For every bisection, we compute the determinant series with i members each for the three limits μu, μmo and μm. With 40 steps of bisection per eigenvalue we have to calculate exactly n i=3
40 · 3 · p · i = 120 · p · n2 + n
determinants in theory, if we tridiagonalize the matrix completely. With an assumed matrix size of 60,000 degrees of freedom and 10 eigenvalues, we would have to calculate more than 4 trillions of determinants! Since the calculation of the determinants has been considerably simplified by the tridiagonal structure, we are still interested in reducing the number of the calculation steps. tridiagonalization of EWP system matrix from line / column 1 to n ith step of tridiagonalization Searching for smallest eigenvalues from 1 to p Searching for kth smallest eigenvalue with successive bisection jth step of bisection method each carried out until achieving tolerance
p is carried out exactly p times
is carried out up to a maximum n times
n
calculating the determinant of Ti with lower level µj,u 40
assess all i members of the determinant sequence with µj,u calculating the determinant of Ti with lower level µj,o
40
assess all i members of the determinant sequence with µj,o calculating the determinant of Ti with lower level µj,m
40
40
assess all i members of the determinant sequence with µj,m deciding which half of the interval contains the smallest ev
Figure 6.5-4: Effort evaluation of the eigenvalue search
250 6 Solvers
Stop Criterion There are two essential measures to reduce the calculation effort we have to make according to the derivation. At first, we make use of the fact that the successive built tridiagonal matrix, as already indicated above, delivers more and more exact approximations for the smallest eigenvalues of the (n × n) EVP system matrix. In practice, we can really observe a quick convergence (cf. /133/). We often need far less iterations than the theory – exact approximation after n steps – suggests. Figure 6.5-5 shows the measured eigenvalues after every iteration of a small (N = 498) test matrix. A stop criterion, which interrupts the iteration as soon as the eigenvalues cannot be improved anymore, would be desirable. The criterion should not be deceived by the appearing cascaded progress and should not cancel the calculation at the marked position after 226 iterations, to not overestimate the smallest eigenvalue about almost the hundredfold.
Figure 6.5-5: Gradual convergence process of the three smallest eigenvalues
Further saving potential lies in defining at which time the eigenvalues generally are of interest. After all, their values do not influence the actual Lanczos iteration, it uses this only as a calculation basis for the approximation calculation. Basically it is enough to carry out the eigenvalue calculation just once, as soon as the tridiagonal matrix is “exact enough”. To be able to check this, you need to know the eigenvalues, ideally in every Lanczos step. As a compromise between these competing aims, the eigenvalue approximation is carried out only in a fixed step size by for example 50 Lanczos iterations. In the end, after a certain number of Lanczos steps, we carry out a complete calculation of the desired number of smallest eigenvalues. As soon as their values, taken together, do not significantly change anymore in comparison to the previous approximation, the actual approximation is accepted and the process is stopped. The test step size as well as the break tolerance should be selected rather strictly (that is: big distance of approximately 50, small tolerance of approximately 1 · 10-5Hz) to avoid early quitting in the range of the convergence layers. For the test example, with n = 498 the criterion indicates the break after 400 iterations. Up to this break, the eigenvalues were calculated eight times (from 50 iterations in the steps of 50). Therefore,
6.5 Solver for Vibration Problems 251
the effort for the eigenvalue regulation could be reduced to less than two percent of the source variation.
Wielandt Process After calculating the eigenvalues of the EVP system matrix, and with it also the eigen frequencies, suitable forms of eigenfrequencies have to be determined. These deflections, typical for the respective vibration of the considered component, are included in a displacement vector as with the usual linear-elastic finite element analysis. With the chosen designation for the amplitude vector û at the beginning of this chapter, we realize that this vector is the result of the rear transformation L-T · ϕ and ϕ is the eigenvector to the eigenvalue λ. But how do we receive the eigenvector to a given eigenvalue? We take a look at the eigenvalue problem in the standard notation again: AEVP · ϕ = λ · ϕ
Against the usual task for linear equation systems, the unknown eigenvector exists on both sides and not only on the left one. This should be changed by a multiplication with the identity matrix I. I · AEVP · ϕ = λ · I · ϕ
I · AEVP · ϕ - λ · I · ϕ =(A EVP - λ · I ) · ϕ = 0 If we subtract the eigenvalue λ from every component of the diagonal of the EVP system matrix and solve the linear equation system with the zero vector on the right side, we get the related eigenvector ϕ. Unfortunately, this modified system matrix is singular. Every eigenvalue λ, as a root of the characteristic polynomial, has the property of making the determinant of the matrix zero. By this fact, the amount of the possible solution vector becomes infinitely big. Furthermore, the basic requirement of the solution processes from chapter 6.1 and 6.3 is violated. Nevertheless to use these methods, and at least calculate one solution (at all), one proceeds according to the so-called Wielandt algorithm of the inverse vector iteration with a numerical shift parameter /56/. Its details have less importance than the basic process. The equation system from above is solved in at least two steps with the right side z1,2 being selected (slightly) different from zero: in the first step we choose it arbitrarily in the range of the machine accuracy of the computer (z1,i = 1 · 10–30 to 1 · 10–40), in the second step we use the solution determined before (z2 = ϕ1). After that, we standardize ϕ2 to the length of 1 and accept it as the eigenfrequency form. With this, the absolute values of the single vector entries get lost. However, we may not expect any amplitude value even by physical view, because according to the definition, the frequency is an unmuted eigenfrequency, which can increase by resonance effects. Real displacements of the degrees of freedom in millimeter cannot be achieved. But also with the qualitative shape of the mode form, we receive important information for the component interpretation.
Execution of the Eigenvalue Problem Solver At the end of the theoretical considerations, the introduced numerical methods of calculation should be arranged in a logical schedule. As usual, the solver can be divided into three basic
252 6 Solvers
phases: Construction of the numerical problem, the solution and the conversion into technical interpretable statements of the results. Phase I: Numerical problem As well as with the elastomechanical calculation, we need a whole stiffness matrix. It basically reflects the stiffness properties of all FE nodes representing the part. Its construction occurs according to the description in chapter 3.4. As an opponent for the balance of forces, which characterizes the eigenfrequencies, we still need the so-called mass matrix. By using the socalled “concentrated mass” assumption, the construction as a diagonal matrix is relatively simple. This advantageous structure also facilitates the following step - the assembly of the EVP system matrix. For this restatement as a standard eigenvalue problem, we also only need simple line and column multiplications. A so-called fill-in does not appear. If you want, you can also insert fixing boundary conditions in this phase. They are generated by “infinitely” big node masses, pretending an “infinitely” high inertia. Phase II: EVP solver The numerically expensive phase of the eigenvalue calculation occurs iteratively according to the Lanczos process. A tridiagonal matrix that is growing in every step with more and more exact validity regarding the smallest eigenvalues of the EVP matrix is regularly checked for convergence. Due to the relatively big effort (cf. Figure 6.5-4), this check is carried out in rather big time lags. In contrast to the mechanical analysis, a global accuracy statement via residuum cannot be made. This is the reason why a short-sighted criterion must be applied, according to the phrase: In which extent did the interesting eigenvalues change in the last steps? Is there still a significant update to be expected? This statement can be made with different FEA structures at extremely different points, what makes the exact prediction of the calculation time nearly impossible? Indeed, it is made sure, that at the latest with the matrix being completely tridiagonalized, the eigenvalues are almost exactly represented. In practice, one often only needs to run 1/4 to 1/2 of the degrees of freedom to achieve a satisfactory result. One has to calculate only 1/16 or 1/4 of the EVP matrix size. If the desired number of smallest eigenvalues is determined, one defines the corresponding eigenvectors. Besides, an additional small update of the eigenvalues often arises. By the simultaneous presence of eigenvalue and eigenvector for the first time, it can be guaranteed that this new eigenvalue is calibrated more exactly than the initial value. Phase III: Technical interpretation After the actual phase of solving, we know all desired eigenvalues and their eigenvectors. But with the restatement of the numerical problem of chapter 3.4, which was necessary in the beginning, these are not the eigenvalues resp. mode form vectors! To obtain this output data, a reverse transformation √ still needs to be done. Eigenfrequencies can be defined by division of the eigenvalue with 2π , eigenvectors by using the transformation matrix L-T. Figure 6.5-6 shows the execution in graphic form. The boxes do not represent the numerical effort. Please consider the eigenvalue evaluation with the help of the determinant series according to Sturm. For comparison: The onetime calculation of the whole determinant of the problem
6.5 Solver for Vibration Problems 253
matrix would solve the linear system of equations. A modal analysis requires incomparably more calculation time than the elastomechanical analysis.
Pre-processing I compilaon of element sffness
element volume concentrated on corner nodes
Input Data global sffness matrix
mass matrix
Pre-processing II structure of EVP matrix = ∙ ∙
Cholesky decomposion = ∙
EVP Solver Lanczos further line & column of tridiagonal matrix
calculang eigenvalues of ( steps) tesng (stop criterion)
calibraon & searching for vectors 2 vector iteraons for every inial value Post-processing mode form vector = − ∙ Figure 6.5-6: Schematic overview of the eigenfrequency solver
eigenfrequency
=
2∙
254 6 Solvers
■■6.6 Solver
for the Non-linear Finite Element Analysis
The equation systems with non-linear FE calculations require iterative solution processes, which are explained in the following. The implementation links to chapters 4.12 and 5.3.6 in which the general form of equation systems was introduced. We write down this general form once again: T V
B SdV − κF = 0
Since we consider the whole system, the integration area reaches the whole component. After the realization of a Taylor series, stopped after the linear term, one receives the following equation. T T ∂ T ∆Ui+1 =! 0 B SdV − κF ≈ B SdV − κF + B SdV − κF V
V
i
∂U
V
i
With the help of the definition of the tangent matrix (chapter 4.12) and the internal forces T R=
V
B SdV
the resulting linear equation system can be written compactly. (R – κ F )|i + KTi ∆Ui+1 = 0
Since deflection dependent loads should be disregarded, the iterative evaluation only refers to the internal forces. (Ri – κ F ) + KTi ∆Ui+1 = 0 ⇔K KTiTi ∆U ∆Ui+1i +1==–R −iR+i + κF κ F This linear subsystem of equation has to be solved in every step of the Newton Raphson process. The solution vector delivers the displacement increment, which allows the calculation of the new result of approximation. ∆Ui+1 = Ui+1 – Ui Ui+1 = Ui + ∆Ui+1 The tangent matrix KT and the vector of the internal forces R need to be built up anew in every iteration step. With the help of the compilation process (chapter 5.1), they can be calculated from the element matrices or element vectors according to chapter 4.12. e KT = R=
k
k
KTk
Rek
The whole solution process requires, depending on the used solver for the linear subsystem of equations, two or three loops which are encapsulated into each other. The furthest loop represents the load control. This occurs by successive rising of the load factor κ (cf. chapter 5.3.6).
6.6 Solver for the Non-linear Finite Element Analysis 255
The second and, with a direct solver for the linear subsystem of equations, last loop describes the solution process of the Newton Raphson process. With implementing an iterative solver (cf. chapter 6.3) to solve the linear subsystem of equations, there is a third loop. Figure 6.6-1 shows a graphic illustration of these loops. starting the load application
iterative solver
direct solver
iteration
Newton Raphson iteration
next load step
solving the linear subsystem of equations
stop criterion?
balance of forces reached?
full load applied?
solution
Figure 6.6-1: Overview of the iterative solution processes
In certain cases, the convergence of the Newton Raphson process is not given. A typical case is the Belleville spring with negative spring rate. Belleville springs with certain geometry parameters own negative spring rates after achieving a maximum; the spring characteristic graph reaches a minimum and then rises again. However, an intertemporal decline of the load cannot be regarded in the Newton Raphson method. The so-called arc length method is able to follow (nearly) any spring characteristic curve, even if a decline of the load exists. The following implementations to the derivation of the necessary equations are based on Wriggers /120/. With the arc length method, despite the displacement, the load factor κ also represents an independent variable. Another independent variable requires an additional equation, which is determined according to the particular variation of the arc length method. Here, we consider merely the version by Riks /137/ with the “load straight line” lying perpendicularly to the tangent of the Newton method. The load line is the line in Figure 6.6-2 with the dots 1, 2 and 3 (approximation results). The illustrated graph has the typical form of a Belleville spring characteristic curve and shows the weakness of the Newton Raphson method. With the help of the
256 6 Solvers
condition that the load straight line has to lie perpendicularly, it is possible to set up the missing equation. The term “perpendicularly” is generalized here; the scalar product of two vectors disappears when the vectors stand perpendicularly to each other. Here, we simply carry this out with the solution vector T U1 − U0 U − U1 ! f(U,κ): = =0 κ1 − κ0
κ − κ1
Newton Raphson process
arc length process (Riks)
approximation results
load
load
solution path
2
1
3
•
•
?
• •
•0
•
solution path (normal) approximation results
1
s
• balance graph
last known balance point
• 2 • ••3
0
balance graph
last known balance point
displacement
displacement
Figure 6.6-2: one-dimensional representation of the Newton Raphson method and the arc length method (cf. /138/)
The values U0 and κ0 are known from the previous load step, U and κ are the independent quantities (to be calculated) and U1 and κ1 need to be calculated by a Newton Raphson start step. In this start step one specifies the arc length s marked in Figure 6.6-2, which controls the step length with the “passing” of the balance graph. This is the disadvantage of this process, because maybe one needs several calculations with different arc lengths to receive the solution. The whole equation system is described by the following formula T B SdV − κF V
!
=
f(U,κ)
0 0
The linearization by Taylor series delivers the sub equation system, as the Newton’s Raphson method does (cf. /120/). KT −F ∆Ui+1 ! −Ri + κF ∂f = ∂f ∆κ – fi i+1 ∂U
∂κ
i
As usual this can be calculated with the linear equations solver from chapters 6.1 and 6.3. In case of Belleville springs, the arc length method we constructed in this way is always convergent, while the Newton Raphson method mostly already diverges with forces under the load maximum (cf. /138/).
7
Stresses and Nodal Forces
From the overview in chapter 2, we already know, that we obtain the stresses as well as the nodal forces by a reverse calculation from displacements. The displacements of the system must always be calculated first; this is the actual solution of the FEA task.
■■7.1 Stresses Let’s consider the stresses at first. The following relations from chapter 4 are known: Hooke’s law in symbolic matrix form: σ=Cε
The strains for the state of plain stress from the elasticity theory: ∂u ∂x εxx ∂v εij = εyy = ∂y γxy ∂u ∂v + ∂y ∂x
The transformation of the displacement field by the shape functions Ni and node displacements Ui, here in case of a plain element with 4 nodes: u(x,y) N1 · u1 + N2 · u2 + N3 · u3 + N4 · u4 = v(x,y) N1 · v1 + N2 · v2 + N3 · v3 + N4 · v4
258 7 Stresses and Nodal Forces
and thus became in chapter 4:
∂ ∂x εij = 0 ∂ ∂y
0
∂ N1 0 ∂y ∂ ∂x
0 N1
N2 0
0 N2
N3 0
or in symbolic matrix form:
ε = L N Ui
The matrix L N is called B and therefore:
ε = B Ui
0 N3
N4 0
0 N4
u1 v1 u2 v2 u3 v3 u4 v4
With it, the stresses are calculated as follows: σ = C B Ui
These are all old friends for us: C is the constitutive matrix, B is the strain-displacement transformation matrix and Ui are the calculated displacements in the element. The stresses are calculated per element. The question of the location of the stress calculation is very important. It would be obvious to calculate the stresses in the nodes first. This is possible without a problem, but not clean and clear because the stresses are calculated per element and several elements usually adjoin to one node. Under some circumstances it must be averaged in a suitable manner. With primitive elements, e.g., plane stress element triangles with 3 nodes, hence linear approach, the stress calculation is almost inexact. Here you will need to calculate the stresses in 3 nodes and form an average per element. With high-order elements, you must proceed precisely: The only clean method of stress calculation in curvilinear delimited finite elements can only be the calculation of the stresses in the Gauss points. These are, so to speak, the “natural” supporting points in the element, because they were already used for the numerical integration during the displacement calculation. Indeed, one can provide different supportive points for integration and stress calculation, e.g., 3 × 3 Gauss points for integrating the determination of the respective element stiffness matrix and for the points of the stress calculation 4 × 4 Gauss points or even one single Gauss point (i.e. in the middle of the element). If one looks at the stress plots of the big commercial FEA programs, a very aesthetic color is spread over the whole FE structure and every place of the structure seems to have stresses. In reality this is true, of course, but the finite element analysis discretely calculates all values in points and not continuously like the differential equations of the engineering mechanics. How can this be if in reality one can only calculate the stresses pointwise, either in the nodes (not that good) or in the Gauss points (reasonable)? Response: Not at all! Averages from several
7.1 Stresses 259
pointwise computed stresses are simply formed here by more or less good interpolation or approximation functions and are sold to the viewer as exact mathematics. Looks good, sells well and is believed with pleasure. However, several cases of FEA calculations are known to the authors where very famous commercial programs have definitively “interpolated” wrong results for stresses, while the displacements were still calculated correctly (sic!), e.g. /107/. Hence, the FEA program Z88 enclosed to the book only computes stresses in the Gauss points or nodes. Then these stress plots do not look by far as “nice” as those of the commercial pro viders, but at least the results from the mathematical procedure are reliable. The following program segment, which is taken in a simplified form of the Z88 function SHEX88.C /32/ and which calculates the stresses for 20-node Serendipity-hexahedron, shows how it is made. Please notice both lines in bold for the calculation of ε and σ. With it, ul[]are the displacements of 20 nodes × 3 degrees of freedom per node = 60 degrees of freedom per element. ul[] is determined in a suitable manner for every finite element from the array u[] which was calculated by the actual FEA solver and which contains the displacements of all degrees of freedom: We already know from chapter 4 that the following is valid: koi[] is the coincidence array, koffs[] is the offset array on it, koi[koffs[i]+j-1] is the access to a node j of the finite element i ioffs[] considers the different degrees of freedom per node if applicable.
Then with it ul[] can be determined as follows: In the main routine Z88DR.C: for(i = 1;i <= 20;i++) mspan[i]= ioffs[ koi[koffs[k]+i-1]] -1; mxknot= 20; mxfrei= 3;
In the function SPAN88.C: for(j = 1;j <= mxknot;j++) { for(j2 = 1;j2 <= mxfrei;j2++) { mspanj= mspan[j] + j2; l= mxfrei*(j-1) + j2; ul[l]= u[mspanj]; } }
260 7 Stresses and Nodal Forces
Stress calculation in the function SHEX88.C: The following arrays are used: u[]
Array of the displacements of all degrees of freedom of the structure
ul[]
“local displacements”, i.e. displacements per element
xg[]
Gauss points
sig[] 3 normal stresses and 3 shear stresses /*---------------------------------------------------------------------* Calculating the stresses in the Gauss points *---------------------------------------------------------------------*/ for(lx = 1;lx <= nint;lx++) { r= xg[(lx-1)*4 + nint]; for(ly = 1;ly <= nint;ly++) { s= xg[(ly-1)*4 + nint]; for(lz = 1;lz <= nint;lz++) { t= xg[(lz-1)*4 + nint]; /*====================================================================== * Getting matrix B of the partial derivations & shape functions *=====================================================================*/ iret= sh88(&r,&s,&t); if(iret != 0) return(iret); for(k = 1;k <= 6;k++) { eps[k]= 0.; for(j = 1;j <= 60;j++) { eps[k]= eps[k] + b[(k-1)*60 + j] * ul[j]; } } for(k = 1;k <= 6;k++) { sig[k]= 0.; for(j = 1;j <= 6;j++) { sig[k]= sig[k] + d[(k-1)*6 + j] * eps[j]; } } /*...................................................................... * Writing out stresses *.....................................................................*/
7.1 Stresses 261
fprintf(fo3,“\n\ %+#11.3lE %+#11.3lE %+#11.3lE %+#11.3lE %+#11.3lE %+#11.3lE“, sig[1],sig[2],sig[3],sig[4],sig[5],sig[6]); } } }
This stress routine is constructed like the routine for the element stiffness matrix calculation HEXA88.C. Here, however, numerical integrating is not necessary. Such routines, as shown above, can be very easily adapted to other element types. How do we proceed if no shape functions must beare given, e.g. in case of trusses or beams? Then it is far simpler, because basically it is valid: σ = E · ε the Hooke’s law in a scalar form
and ε =
ℓ1 − ℓ0 ℓ0
With it, the tensile stress (with negative sign it is the compressive stress) in a truss in the threedimensional space is calculated as follows: Memo: With it, ul[1] to ul[3] are the displacements in the local node 1 in x, y and z and ul[4] to ul[6] are the displacements in the local node 2 in x, y and z. /*********************************************************************** * determining stretched length ***********************************************************************/ xv= xk[1]+ul[1] - xk[2]-ul[4]; yv= yk[1]+ul[2] - yk[2]-ul[5]; zv= zk[1]+ul[3] - zk[2]-ul[6]; dlv= sqrt( xv * xv + yv * yv + zv * zv); /*********************************************************************** * determining undeflected length ***********************************************************************/ xu= xk[1]-xk[2]; yu= yk[1]-yk[2]; zu= zk[1]-zk[2]; dlunv= sqrt( xu * xu + yu * yu + zu * zu); /*********************************************************************** * calculating the stress ***********************************************************************/ zug= emode * (dlv/dlunv - 1.); fprintf(fo3,“\n\nElement # = %5ld
Typ = truss in space\
SIG = %+#11.3lE“,k,zug);
This was remarkably easy, and with a beam it is not much more complicated. As an example we choose a so-called shaft element (in Z88 type No. 5), which does not only correspond to a continuous beam, but also can take stress/pressure and torsion. Now, we start out from the Bernoulli’s equations for the beam theory of the engineering mechanics /11/:
262 7 Stresses and Nodal Forces q dx or Mb = Q dx or Mb dx or ψ= E · I w = − ψ dx or Q=−
Q = −q M b = Q Mb ψ = E·I w = −ψ
The bending stress itself is defined as follows: σb =
Mb ·z I
I = axial second moment of area and z = distance of the neutral fibre, and for the bending moment follows from the equations above: Mb = ψ · E · I
and with this it becomes σb = −w · E · z
For the shaft element or the continuous beam, we very formally define a cubic displacement approach u(x) as a bending approach and differentiate it twice: x x2 x3 + c3 2 + c4 3 L L L c 3 · c4 2 · c 2 3 ψ( x ) = u ( x ) = + 2 x + 3 x2 L L L 2 · c 6 · c 3 4 ψ (x) = u (x) = 2 + 3 x L L u(x) = c1 + c2
Now we must consider the boundary conditions to determine the coefficients ci. The indices with u signify the local node numbers 1 and 2: x = 0: u1 = c1 → c1 = u1 c2 u 1 = → c2 = L · u 1 L
x = L: u2 = c1 + c2 + c3 + c4 c2 2 · c3 3 · c4 u 2 = + + L L L
After a little longer calculation one receives: c4 = −2u2 + 2u1 + L (u 2 + u 1 ) c3 = 3 (u2 − u1 ) − L (2u 1 + u 2 )
7.1 Stresses 263
These four coefficients are inserted and you receive: ψ (x) = u (x) =
[3(u2 − u1 ) − L(2u 1 + u 2 )] 2 [2(u1 − u2 ) + L(u 2 + u 1 )] 6 + x L2 L3
Now we can transform this immediately to a calculation routine. We know that for the local node 1, x = 0 is valid and the local node 2, x = L is valid. Furthermore, we have to consider that such a beam must have 12 degrees of freedom, even if it should only run along the x axis and therefore cannot lie randomly in the space. Table 7.1-1: Nodes, degrees of freedom and displacements
Node
DoF
1
1
Displacement u Displacement in x direction
1
2
Displacement in y direction
1
3
Displacement in z direction
1
4
Twist around x axis
1
5
Twist around y axis
1
6
Twist around z axis
2
7
Displacement in x direction
2
8
Displacement in y direction
2
9
Displacement in z direction
2
10
Twist around x axis
2
11
Twist around y axis
2
12
Twist around z axis
Figure 7.1-1: Degrees of freedom of the beam element
264 7 Stresses and Nodal Forces
Now with it, the normal tensions sigxx and the torsion tensions tauxx can be easily determined. The bending stresses must be calculated in each node 1 and in node 2 and in each case still in the XY level and the XZ level. The following small calculation routine, which is a segment of the Z88 function M3.C, summarizes what has been said above in C. Besides, it is: emode the Young’s modulus rnuee the Poisson’s ratio qparae the diameter of the shaft part /*********************************************************************** * calculating stretched length & undeflected length ***********************************************************************/ rlv= xk[2]+ul[7] - xk[1]-ul[1]; rlu= xk[2]-xk[1]; /*********************************************************************** * calculating stresses ***********************************************************************/ sigxx= emode * (rlv/rlu - 1.); tauxx= (ul[10] - ul[4])/rlu * emode /(4.*(1.+rnuee))*qparae; fac= emode * 0.5 * qparae; qrlu= rlu * rlu; sigxy1= fac* 2. * (3. * (ul[8] - ul[2]) rlu * (2. * ul[6] + ul[12]))/qrlu; sigxy2= sigxy1 + fac * 6. * (2. * (ul[2] - ul[8]) + rlu * (ul[12] + ul[6]))/qrlu; sigxz1= fac * 2. * (3. *(ul[9] - ul[3]) rlu * (2. * ul[5] + ul[11]))/qrlu; sigxz2= sigxz1 + fac * 6. * (2. * (ul[3] - ul[9]) + rlu * (ul[11] + ul[5]))/qrlu; fprintf(fo3,“\n%+#11.3lE %+#11.3lE %+#11.3lE %+#11.3lE %+#11.3lE %+#11.3lE“, sigxx,tauxx,sigxy1,sigxz1,sigxy2,sigxz2);
■■7.2 Reduced
Stresses
Now, the different stresses are calculated as described, but which will lead to material failure? To answer this question, one has already created the so-called strength hypotheses many decades ago. With such an equivalent stress hypothesis, one determines a so-called equivalent stress, which leads the multi-axial state of stress back to the uni-axial state of stress (cf. /96/). Mostly one compares this equivalent stress to the tensile strength because it can be directly
7.2 Reduced Stresses 265
fitted in the construct of ideas of the strength hypotheses theory. By the way, mostly it is the only available specific value; however, if applicable, it is also compared with other strength values, for example the bending strength. In the course of time a whole series of such strength hypotheses have been developed, and today some of it has only historical importance. Today these are the standards: von Mises criterion, also known as the maximum distortion strain energy criterion maximum normal stress criterion, also known as principal stress criterion Tresca’s maximum shear stress criterion They are explained in the following: The so-called maximum distortion strain energy theory traces back to v. Mises, Huber and Hencky (1913), hence the equivalent stresses are to be called v. Mises stresses. The implication is that the failure of the component occurs through plastic strains, which are too big. Tests have shown that this hypothesis describes ductile materials, as for example tough steels, very well. The criterion is the standard hypothesis of mechanical and process engineering. For the derivation, it is referred to some special literature, e.g., /97/. In the following, the respective equations are reproduced: The general form of the von Mises criterion for multiaxial stress states: σV =
�
+ σ + σ − σ ë σ − σ ë σ − σ ë σ + ë (τ + τ + τ ) σxx xx yy yy zz zz xx yy xy zz yz zx
Axisymmetric state of stress (cf. Figure 7.2-1; drop non-available terms from the equation above and mind the other coordinate system):
Figure 7.2-1: Stresses in the axisymmetric case
σr =ˆ σxx , σV =
�
σz =ˆ σzz ,
τrz =ˆ τxz ,
σθ =ˆ σyy
σr + σθ + σz − σr ë σθ − σθ ë σz − σz ë σr + ë τrz
266 7 Stresses and Nodal Forces
Biaxial state of stress: σV =
�
+ σ − σ ë σ + ë τ σxx xx yy yy xy
Uniaxial state of stress: σV =
�
+ ë τ σxx xy
The so-called maximum normal stress criterion (these equivalent stresses are called principal stresses)) traces back to Rankine in 1861. The implication is that the failure of the component occurs through the highest normal stresses. Determining the principal stresses is quite complicated. Tests have shown that this hypothesis describes brittle materials as for example cast iron and tempered steels quite well. But also for strong limitations of deformation, as they are for example introduced by weldseams, /98/ recommends the criterion, when triaxial stress states exist. In the following, the respective equations are listed: The general form of maximum normal stress criterion for multiaxial stress states: σσVv = |σ1 | , if |σ1 | > |σ2 | and |σ1 | > |σ3 |
σVv = |σ2 | , if |σ2 | > |σ1 | and |σ2 | > |σ3 | σVv = |σ3 | , if |σ3 | > |σ1 | and |σ3 | > |σ2 |
Now, the principal stresses σ1, σ2, σ3 must be calculated. The principal stresses are defined as follows (cf. /99/): Through every point of a body, which is a state of stress subject, there are three sectional planes vertical to each other on which the stress vector is vertical and therefore the shear stresses disappear; one calls these planes principal stress planes and the associated stresses principal stresses. To the derivation (cf. /99/) we cut a very small cuboid with the side lengths dx, dy and dz in such a way that the angles α, β and γ are adjusted to the axes x, y and z: A tetrahedron arises (Figure 7.2-2). The surface dA is considered to be built of the points 1-23: The vector normal on this surface is n, the actual stress vector is called s (which is formed from six components σxx, σyy, σzz, τxy, τyz, τzx, and must not necessarily stand vertically on the surface dA). The surface normal is: nx cos α n = ny = cos β cos γ nz
The projections of the considered surface dA on the planes yz, zx and xy are: dA · nx = dA · cos α, dA · ny = dA · cos β, dA · nz = dA · cos γ Then the equilibrium of forces in the x direction is: sx · dA = σxx · nx · dA + τxy · ny · dA + τzx · nz · dA
With it, the following equations for the equilibrium of forces arises after cancelling dA:
7.2 Reduced Stresses 267
sx = σxx · nx + τxy · ny + τzx · nz sy = τxy · nx + σyy · ny + τyz · nz
→
sz = τzx · nx + τyz · ny + σzz · nz
s = si =
3
σij · nj
j=1
This is the so-called Cauchy formula.
Figure 7.2-2: To the derivation of the principal stresses
The normal stress σ , which has an effect on the surface dA, is the scalar product from surface normal n and stress vector s: σ = ss · n = sx nx + sy ny + sz nz
Vice versa it is valid:
sx nx · σ s = n · σ = sy = ny · σ nz · σ sz
This means, inserted on the left side of the equilibrium of forces: nx · σ = σxx · nx + τxy · ny + τzx · nz ny · σ = τxy · nx + σyy · ny + τyz · nz nz · σ = τzx · nx + τyz · ny + σzz · nz
If the left side is transferred to the right side, the following equation system originates: σxx · nx − nx · σ + τxy · ny + τzx · nz = =0 0 τxy · nx + σyy · ny − ny · σ + τyz · nz ==00 τzx · nx + τyz · ny + σzz · nz − nz · σ ==00
Or: σxx − σ τxy τzx nx 0 τxy σyy − σ τyz ny = 0 0 τzx τyz σzz − σ nz
This equation system can be true only if the coefficient determinant is zero:
268 7 Stresses and Nodal Forces σxx − σ τxy τzx τxy σ − σ τyz yy τzx τyz σzz − σ
=0
This determinant, in the case of the axisymmetric state of stress, as it turns out in the following, can still be solved rather easy by cancelling τyz and τxy ; with the “right” triaxial state of stress one rather determines the so-called invariants J1, J2, J3: J1 = σxx + σyy + σzz J2 = σxx · σyy + σxx · σzz + σyy · σzz − τ2xy − τ2zx − τ2yz J3 = σxx · σyy · σzz − σxx · τ2yz − σzz · τ2xy − σyy · τ2zx + 2 · τxy · τzx · τyz
So that is valid: σ3 – J1 · σ2 + J2 · σ – J3 = 0 Now this cubic equation must be solved; besides, it is advantageous that always three real solutions σ1, σ2, σ3 appear (cf. /99/). We make the following substitution: σ=y+
J1 3
With it we receive the reduced form of the cubic equation: y3 + p · y + q = 0 Thus it originates: 3 y+
y3 +
J1 3
− J1 ·
J2 −
J21 3
p
y+
·y+
J1 3
2
+ J2 ·
y+
J1 J2 2J31 − − J3 3 27 q
J1 3
− J3 = 0
=0
This equation can be solved on a goniometric way (casus irreducibilis): q − | p| ϕ 2 ϕ = arccos , y1 = 2 · · cos 3 3 3 | p| y2 = −2 ·
3
ϕ | p| · cos − 60◦ , y3 = −2 · 3 3
After that you can back-substitute: σ=y+
J1 3
ϕ |p| · cos + 60◦ 3 3
7.2 Reduced Stresses 269
Then it is valid: σσVv = |σ1 |, if |σ1 | > |σ2 | and |σ1 | > |σ3 |
σVv = |σ2 | , if |σ2 | > |σ1 | and |σ2 | > |σ3 | σvV = |σ3 |, if |σ3 | > |σ1 | and |σ3 | > |σ2 |
Maximum normal stress criterion for axisymmetric state of stress: We start with the coefficient determinant again, rename and cancel non-available terms: σr ˆ = σxx , σz ˆ = σzz , τrz ˆ = τxz , σθ ˆ = σyy
σr − σ 0 τrz
0 σθ − σ 0
τrz 0 σz − σ
=0
This can be directly solved with a computer algebra system (Mathematica, TI89):
σ1 =
σr + σz 1 2 σr − 2 · σr σz + σ2z + 4 · τ2rz + 2 2
σr + σz = + 2 σ2 =
2
(σr − σz ) + τ2rz 2
σr + σz 1 2 σr − 2 · σr σz + σ2z + 4 · τ2rz − 2 2
σr + σz = − 2
2
(σr − σz ) + τ2rz 2
σ3 = σθ
Then it is valid: σvV = |σ1 |, if |σ1 | > |σ2 | and |σ1 | > |σ3 | σvV = |σ2 |, if |σ2 | > |σ1 | and |σ2 | > |σ3 | σvV = |σ3 |, if |σ3 | > |σ1 | and |σ3 | > |σ2 | Maximum normal stress criterion for biaxial state of stress: We can also start from the coefficient determinate again and the missing terms are cancelled: σxx − σ τxy 0 τxy σyy − σ 0 = 0 0 0 −σ The solution is: −σ · σ2 − (σxx + σyy ) · σ + σxx σyy τ2xy = 0, that is: σ3 = 0 And for σ1 and σ2 arise:
270 7 Stresses and Nodal Forces
σxx + σyy σ1 = + 2 σxx + σyy σ2 = − 2
2
(σxx − σyy ) + τ2xy 2 2
(σxx − σyy ) + τ2xy 2
Then it is valid: σvV = |σ1 |, if |σ1 | > |σ2 | σvV = |σ2 |, if |σ2 | > |σ1 |
Maximum normal stress criterion for uniaxial stress state: The action explained above works once more: 1 1 1 1 σ1 =
σV =
2
σxx +
2
σ2xx + 4 · τ2xy , σ2 =
2
σxx −
2
σ2xx + 4 · τ2xy
1 1 2 |σxx | + σxx + 4 · τ2xy 2 2
The so-called maximum shear stress criterion was set up by H. Tresca in 1868. The equivalent stresses are called Tresca stresses. Here, the implication is that the failure of the component occurs through the biggest shear stress, the principal shear stress. The hypothesis is used with ductile as well as with brittle materials if ductile fracture can appear. In general, the following is valid (cf. /98, 99/): σv = σmax − σmin = 2 · τmax Maximum shear stress criterion for triaxial and axisymmetric state of stress: The three principal stresses are calculated as described with the maximum normal stress criterion. Then it is valid: σvV = σ1 − σ3, if σ1 > σ2 > σ3 σvV = σ1 − σ2, if σ1 > σ3 > σ2 σvV = σ2 − σ3, if σ2 > σ1 > σ3 σσVv = σ2 − σ1, if σ2 > σ3 > σ1
σvV = σ3 − σ1, if σ3 > σ2 > σ1 σvV = σ3 − σ2, if σ3 > σ1 > σ2 Biaxial state of stress: The two principal stresses are calculated as described with the maximum normal stress criterion. Then it is valid: σvV = |σ1 |, if σ1 > σ2 > 0 or σ1 < σ2 < 0
σvV = |σ2 |, if σ2 > σ1 > 0 or σ2 < σ1 < 0 σvV = σ1 − σ2, if σ1 > 0 and σ2 < 0 σvV = σ2 − σ1, if σ2 > 0 and σ1 < 0
7.3 Nodal Forces 271
Uniaxial state of stress:
σV =
σxx + 4 · τ2xy
However, it is very important to pay attention to one point: For beam elements and shaft elements, the equivalent stresses cannot be calculated in this way because the notch effect is not considered. In practice, this means that if you use beam elements and shaft elements, you calculate the nominal stresses in the FEA program first and then determine the notch stresses with a calculation uncoupled by the FEA. Today, the notch stresses are determined for general components with the FKM directive 183 and especially for shafts with the German standard specification DIN 743. For further details see Decker /96/. For the shaft calculation according to DIN 743 you can use the program XN743 (cf. /100/). Vice versa, you can use the FEA to determine stress concentration factors, of course. However, then no shaft elements can be used for the modelling, but you will have to use for example axisymmetric elements. Example 22 shows how it is done.
■■7.3 Nodal
Forces
Calculating the nodal forces is almost even easier: Fe = Ke Ui
Here you proceed elementwise, too. To a respective element, the element stiffness matrix is calculated and multiplied with the vector of the displacements in the element. Two program segments show all essentials: In the function FORC88.C: for(j = 1;j <= mxknot;j++) { for(j2 = 1;j2 <= mxfrei;j2++) { mcompj= mcomp[j] + j2; l= mxfrei*(j-1) + j2; ul[l]= u[mcompj]; } } for(i = 1;i <= mxfe;i++) { f[i]= 0.; for(j = 1;j <= mxfe;j++) f[i]= f[i] + se[i+ mxfe*(j-1)] * ul[j]; }
272 7 Stresses and Nodal Forces
In the main routine Z88E.C: /*---------------------------------------------------------------------* Start 20-node hexahedron, isoparametric square approach *---------------------------------------------------------------------*/ else if(ityp[k]== 10) { wtyp88e(k,10); /*---------------------------------------------------------------------* isopara 20-node hexahedron: determining appropriate coordinates *---------------------------------------------------------------------*/ for(i = 1;i <= 20;i++) { xk[i] = x [koi[koffs[k]+i-1]]; yk[i] = y [koi[koffs[k]+i-1]]; zk[i] = z [koi[koffs[k]+i-1]]; } /*---------------------------------------------------------------------* now calculating element stiffness matrix for iso 20 nodes hexahedron *---------------------------------------------------------------------*/ iret= hexa88(); if(iret != 0) { wlog88e(0,LOG_JACNEG); fclose(fwlo); ale88e(iret); stop88e(); } /*---------------------------------------------------------------------* Compilation for hexa88, compact storage with pointer array *---------------------------------------------------------------------*/ for(i = 1;i <= 20;i++) mcomp[i]= ioffs[ koi[koffs[k]+i-1]] -1; mxknot= 20; mxfrei= 3; mxfe
= 60;
forc88(); if(LANG == 1) { fprintf(fo4,“\nElement # = %5ld fprintf(fo4,“\nKnoten } if(LANG == 2)
F(1)
Typ = 20-K Hexaeder“,k); F(2)
F(3)“);
7.3 Nodal Forces 273
{ fprintf(fo4,“\nelement # = %5ld fprintf(fo4,“\nnode
type = 20-n hexahedron“,k);
F(1)
F(2)
F(3)“);
} j= 1; for(i = 1;i <= 20;i++) { fprintf(fo4,“\n%5ld
%+#13.5lE
%+#13.5lE
%+#13.5lE“,
koi[koffs[k]+i-1],f[j],f[j+1],f[j+2]); fsum1[koi[koffs[k]+i-1]] += f[j]; fsum2[koi[koffs[k]+i-1]] += f[j+1]; fsum3[koi[koffs[k]+i-1]] += f[j+2]; j+= 3; } goto L7000; /*---------------------------------------------------------------------* End of isopara 20 nodes hexahedron *---------------------------------------------------------------------*/ }
If one wants to know, e.g., reaction forces in a certain node, the nodal forces of all elements connecting to these nodes must be calculated and summed up. This shows a program fragment from the nodal force function Z88ER.C (cf. above): for(i = 1;i <= 20;i++) { .. . fsum1[koi[koffs[k]+i-1]] += f[j]; fsum2[koi[koffs[k]+i-1]] += f[j+1]; fsum3[koi[koffs[k]+i-1]] += f[j+2]; j+= 3; }
The summed nodal forces are written to the arrays fsum1, fsum2 and fsum3. Analogously, beams in the space with 6 degrees of freedom have the arrays fsum1, fsum2 to fsum6.
8
Mesh Generation of Curvilinear Finite Elements
To describe the geometry of a finite element structure, the coordinates of all nodes as well as the so-called coincidence list, i.e. which nodes define the respective element, have to be provided. For small structures, i.e. until about 200 degrees of freedom, this can easily still be done manually. If the structures are more extensive, entering manually will be very time-consuming, fault-prone and cumbersome. One proceeds to at least partially automate the processing of the geometry. For this, mesh generators can serve to set up a complete structure and the input file for the finite element program based on a few describing entries. If it is about structures, which hold symmetries, a building rule for coordinates and coincidence is often recognizable. Then a small calculation program can process the whole structure concerning the geometry data. Programs, which use special symmetric properties or regularities of a structure, can be considered as problem-oriented meshers. This was often applied in the past in industrial companies, which always produce returning products of series or kits, i.e. they have written a “mesher” for their special products. However, for calculation problems, the writing of a problem-oriented mesher is often too complex or not possible due to the geometry. In the following, universal applicable meshers should be considered.
■■8.1 Basis
Considerations of the Procedure
The structure is divided into a few elements, so-called super elements, i.e., a rough FE structure is set up. For that, coordinate values and coincidences are entered as for a “real” FE structure. Then, this rough structure is automatically divided more accurately by the generator program. The essential informations, i.e. how to divide in the respective axial directions, whether the division should take place equidistantly or e.g., logarithmically, are provided by the user. The super structure can consist of one single super element with 20 nodes or of two super elements:
276 8 Mesh Generation of Curvilinear Finite Elements
Figure 8.1-1: Possible super structure of a plate segment from two hexahedrons with 20 nodes each
The coordinates of the respective 20 nodes and the coincidence are to be provided. In addition, it is for example indicated that the super elements have to be divided eight times geometrically increasing in the radial direction and three times equidistantly in tangential direction. In the thick direction, no other division may take place. Here, it is already implicitly stated that super elements and finite elements to be generated must not be from the same type. While the finite elements of the finished structure are hexahedrons with a linear approach (eight nodes), both super elements are hexahedrons with a quadratic approach of the Serendipity class with 20 nodes.
Figure 8.1-2: Finite element structure, generated by a mesher from the super structure shown above
The effort for data input has sunk noticeable: Two elements compared to 48, 32 nodes compared to 126. Hence, those universal meshers are an indispensable component of an FE program. The super resp. FE structure shown above can be reviewed in chapter 13, 5th example.
8.2 Mathematical Foundations 277
It is noteworthy that the standard literature only provides very general information to this subject. Only very few authors care to elaborate the problems of the automatic mesh generation, whereas direct implementation into a working computer program is hardly possible. Indeed, this gigantic field of the FE-mesh generation belongs to a field of research with a lot of knowhow. Incredibly many research groups deal with it worldwide and you will be surprised how difficult it is to get useful documents or program codes.
■■8.2 Mathematical
Foundations
The development of the finite element method originally emanated from straight bounded elements with mostly simple, i.e. linear displacement approaches. Displacement approaches were developed from it in the direction of higher orders. The straight boundaries required relatively fine grids. Not until later, curvilinear bounded elements were set up. Today Agyris /3/ (and we, too) considers the straight boundaries as a special case of the curvilinear boundaries. Curvilinear boundaries are put up by the mapping elements with straight boundaries. Generally known curvilinear coordinates are polar coordinates, cylinder and sphere coordinates, which can be easily derived by transformation from orthogonal Cartesian coordinates. Element types, which can be directly obtained by transformations, are, e.g., sector elements, which are described by polar coordinates (cf., e.g., Schwarz /6/, p. 125). In general, curvilinear bounded elements are formed, by following the terminology by Bathe and Wilson /5/, as follows: The linear bounded start element is described by the so-called natural coordinates r, s for the plane or axisymmetric case and r, s, t for volume elements. At that, the natural co-ordinates run from −1 to +1. The shift to the real space x, y, z takes place through the function x= Ni · xi , y = Ni · yi , z = Ni · zi i
i
i
The variation of that, i.e. the transformation of the displacement field on node displacements is familiar to us since chapter 4: u= Ni · ui , v = Ni · vi , w = Ni · wi i
i
i
with x, y, z real coordinates, u, v, w real displacements, Ni shape functions. Besides, the interpolation functions Ni, often also called shape functions, have a central importance. They are still unknown at the moment. They are valid first only for the description of the geometry. Bounded elements are often designated as curvilinear isoparametric elements in connection with the automatic mesh generation. Nevertheless, this applies actually only, if the same functions Ni are used for interpolating the displacements. Here the simple term curvilinear elements shall be used.
278 8 Mesh Generation of Curvilinear Finite Elements
The interpolation functions of the geometry are the key to the automatic generation of curvilinear meshes, because the division of the super elements into real finite elements is made in the natural coordinates r, s or r, s, t, that means with straight boundary lines. Only then, the transformation onto the real space takes place (cf. Figure 8.2.1).
A) Super element in real coordinates, B) Super element in natural coordinates, C) Subdividing the sections of the super element in the natural coordinate system, D) Transformation onto real
coordinates. Figure 8.2-1: Division of a super element in finite elements
So-called interpolation points form the interpolation functions. In most cases, polynomials are selected as interpolants. According to /25/ it is valid: If n + 1 different points x0, x1, …, xn and the related values f0, f1, …, fn are given, there will be an unequivocal specified polynomial Pn (xk) which has at the most the degree n + 1: Pn (xk ) = fk with k = 0, 1, ..., n
In order to describe a linear polynomial (linear equation), two points are necessary, for a quadratic polynomial three points and so on. At least three points are necessary on the respective edge for a curvilinear boundary. In fact, mostly quadratic and cubic approaches are selected, and with cubic interpolation functions, e.g. quarter circles can be approximated very nicely. Higher functions are unusual and also seldom necessary. The interpolation functions Ni have the following basic property: At the node i they have the value 1 and disappear at all the other nodes j what is already known from chapter 4. The shape functions of the elements are generated by Lagrange polynomials (Lagrange elements). Setting up the shape functions is very easy and regular and, hence, is very advantageous from the methodical view. Nevertheless, in the real calculation practice, they are used less, as additional input and, in the real FE calculation process, higher computational costs occur because of the internal nodes. However, elements which only have nodes along the boundary are popular. For this, incomplete polynomial approaches are used which are obtained from product formulas: the well-known
8.2 Mathematical Foundations 279
Serendipity elements (cf. chapter 4). Zienciewicz /1/ and Bathe /4/ recommend to generate Serendipity shape functions by immediate consideration or on a clear way. Schwarz /6/ directly shows shape functions without derivation. Wissmann /26/ derivates shape functions by choice of a so-called basis vector and then by setting up and inverting the so-called Vandermonde matrix. As we already stated in chapter 4, these are very special subjects, and the “normal” reader would be recommended to take already available shape functions e.g. from /1–7/. Here, Serendipity shape functions for plane elements (plane stress elements) or axisymmetric elements (so-called torus elements) with eight nodes should be given for the immediate application, which were generated by editing the basic functions according to Zienciewicz /1/ and Bathe /5/. Shape functions for other element models can be taken ibidem.
Upper row elements of the Lagrange class, lower row elements of the Serendipity class. Approaches: a linear, b square, c cubic.
Figure 8.2-2: Grids for calculating a Lagrange or Serendipity interpolation function
According to that, shape functions for a plane Serendipity element with eight nodes (cf. chapter 4) are: 3 4 7
Y 6
8
5
1
Figure 8.2-3: Plane Serendipity element with eight nodes
X
2
280 8 Mesh Generation of Curvilinear Finite Elements
1 4 1 N2 = 4 1 N3 = 4 1 N4 = 4 N1 =
1 2 1 N6 = 2 1 N7 = 2 1 N8 = 2 N5 =
1 4 1 (1 − r) (1 + s) − 4 1 (1 − r) (1 − s) − 4 1 (1 + r) (1 − s) − 4
(1 + r) (1 + s) −
1 4 1 2 1 − r (1 + s) − 4 1 1 − s2 (1 − r) − 4 1 1 − r2 (1 − s) − 4
1 − r2 (1 + s) −
1 − s2 (1 + r)
1 − s2 (1 − r)
1 − r2 (1 − s)
1 − s2 (1 + r)
1 − r2 (1 + s)
1 − s2 (1 − r)
1 − r2 (1 − s)
1 − s2 (1 + r)
The approaches for the plane elements are quadratic. To make sure that the transformation into the equations stays bijective, x= Ni · xi , y = Ni · yi , z = Ni · zi i
i
i
the determinant of the so-called Jacobi matrix has to be strictly positive over the entire range. ∂Ni ∂Ni ∂Ni x y z i i i ∂r ∂r ∂r ∂Ni ∂Ni ∂Ni J= xi yi zi ∂s ∂s ∂s ∂Ni ∂Ni ∂Ni xi yi zi ∂t ∂t ∂t
The determinant must be constantly calculated in the computer program, so that an effective check of the bijectivity of the transformation from natural into real coordinates is given. This bijectivity is violated by, e.g. Strongly distorted elements “Folded elements” Wrong numbered elements cf. the explanations in chapter 4.
8.3 Description of a Simple Mapped Mesher 281
■■8.3 Description
of a Simple Mapped Mesher
To make the procedure clear in principle, some restrictions of exemplary character are made: 1. Plane Serendipity elements with eight nodes are intended. 2. Super elements and finite elements should be from the same type. The process can be directly expanded to the three-dimensional case (hexahedron with eight or 20 nodes). Providing the Lagrange elements and different types for super elements and finite elements are also immediately deducible.
The Basic Procedure is as Follows: Step 1: Loading the geometry data and the coincidence of the super structure. Step 2: Loading the kind and number of the respective subdivisions of the super elements, Step 3: Ascertaining of the respective “neighboring elements” of every super element, Step 4: Calculating the grid coordinates with the shape functions for all super elements based on the requirements from step 2, transforming and saving the super element elementwise, Step 5: Calculating the array of coincidence , Step 6: Calculating the coordinates and coincidence of the final structure and saving in a direct file, able to be loaded from the FE program.
Step 1: Loading the Geometry Data and Coincidence of the Super Structure The mesher should use the same input scheme like the FE programs. Thus pre-processors and post-processors of the FE program, for example graphic software programs, can also be directly used for the check of the super structure as well as of the generated mesh. Small super structures can be interactively entered, nevertheless, generally an input with a file is useful. The input data can be subdivided as follows: General descriptions of the structure (number of the nodes, elements, control flags and others), Coordinates of the structure, Element type and coincidence elementwise. For the mesher, the specifications refer to the super elements.
Step 2: Loading the Kind and Number of the Respective Subdivisions The input is attached directly: Kind and number of the subdivisions 2 input lines per super element are intended. Then the first line contains the number and the type of the super element, the second: Number of the subdivisions in r direction (integer), Kind of the subdivision for r (character, e.g., E, e, L, l),
282 8 Mesh Generation of Curvilinear Finite Elements
Number of the subdivisions in s direction (integer), Kind of the subdivision for s (character, e.g., E, e, L, l). For that, E and e stand for equidistant division, L for ascending geometric progression and l (small L) for descending geometric progression.
Step 3: Ascertaining of the Respective Neighboring Elements The basic thought of the mesher, which is explained here, is to carry out the final node numbering by ascending the super element, i.e. super element 1 delivers the nodes 1 to i, super element 2 then the nodes i+1 to j, super element 3 then the nodes j+1 to k and so on. For that, the numbering first runs in s direction or, if one considers the super element coated with a grid as a node matrix, faster in i direction. This is directly program-technically used, because a matrix Aij of the order n can be just described by an array v: v[n*(i-1) + j] ↔ a[i,j] ↔ Aij
It is evident: r and s axis are set by the position of the super nodes 2 and 1 (delivers positive r direction) or 4 and 1 (positive s direction). For example, the first super element may be divided into four finite elements, 21 nodes are formed. This may deliver the nodes from 1 to 21 of the finished structure. The second super element should be connected to the first super element, directly on top of the super nodes 4, 7, 3 and it should have also four subdivisions. The further numbering begins with node 22 in the matrix point a21 of the second super element (super node 13), because the line of the super nodes 4, 7, 3 is shared by both super elements. By this approach you can make the node numbering of the finished FE structure run in any direction, because apparently, the further numbering always runs from super node 1 of a super element to super node 4. What super nodes 1 and 4 are, is only determined by the requirements of the coincidence list. Although the situation of the nodes within the natural coordinate system is fixed by the shape functions, however in the real system super node 1 can lie, e.g., on the place of super node 2, so that now the numbering would not run bottom up, but from the right to the left. Merely the anti-clockwise direction (mathematically positive) must be maintained in general.
Figure 8.3-1: Scheme for numbering of the nodes for a mesher
8.3 Description of a Simple Mapped Mesher 283
In Figure 8.3-1, the following is valid: figure underlined = node number of a super element, normal figure = node number finite element, triangular icon = “dead” node, figure with circle = finite element, Aij = node matrix To see which nodes are already provided with final numbering, all super elements k with k < j must be found to a super element j. In the worst case, these are eight neighboring elements. In addition, an array join[i] is defined as follows: join[i]= (eight elements for possible
neighboring elements of the first super element, eight elements for possible neighboring elements of the second super element, ... eight elements for possible neighboring elements of the nth super element). To calculate join, the corner nodes of a super element j are compared in each case to the corner nodes of the super elements 1 to j-1. Coincidence of the first super element 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8, coincidence of the second super element 4 – 3 – 9 – 10 – 7 – 11 – 12 – 13.
Figure 8.3-2: Subdividing a super structure in eight finite elements
Step 4: Calculating the Grid Coordinates with Shape Functions and Transforming The division of a super element in finite elements is done in natural coordinates, i.e. in the range from −1 to +1 for r and s. At that it must be distinguished in which manner it has to be divided. Three possibilities are obvious: linearly (,E‘ or‚e‘), ascending geometric progression (,L‘), descending geometric progression (,l‘). For every super element the coordinates of the grid points Aij are calculated and given in arrays xss and yss. First, they also contain the co ordinates of so-called „dead nodes“. The action is thereby very straight. For that, jel and iel may be arrays, which may contain the number of the finite elements in r or s direction for every super element m. The following program segment shows the possibilities for the subdivision: Calculating the increments xinc for super element m: if(cmode == ‚E‘ || cmode == ‚e‘) xinc= 2./(jel[m]*2); else if(cmode == ‚L‘ || cmode == ‚l‘) xinc= pow(3.,(1./jel[m]));
284 8 Mesh Generation of Curvilinear Finite Elements
Calculating the natural coordinates r: if(cmode == ‚E‘ || cmode == ‚e‘) r= 1. - xinc * (j-1); else if(cmode == ‚L‘) { jteil= j/2; jgerad= j+1-((j+1)/2)*2; if(jgerad == 0) r= 2.- pow(xinc,(double)jteil); else r= ((2.-pow(xinc,(double)jteil) ) +(2.-pow(xinc,(double)(jteil-1) ) ) )/2.; } else if(cmode == ‚l‘) { jteil= (jmax-j)/2; jgerad= j+1-((j+1)/2)*2; if(jgerad == 0) r= pow(xinc,(double)jteil) -2.; else r= ((pow(xinc,(double)jteil) -2.) +(pow(xinc,(double)(jteil+1)) -2.) )/2.; }
There, the number of the coordinates is jmax = 2*jel [m] +1 along the line j. Analogously, it would have to be done for yinc and s.
Step 5: Calculating the Coincidence Array Now, an array koima may be built, which can be directly associated to the coordinate arrays xss and yss, so that for a node k of the finished structure, which may show the coordinates x and y, it is valid: k = koima[i]; x[k] = xss[i]; y[k] = yss[i]
And it is valid: k <= i. To filter out the so-called dead nodes, the following function is defined: jgerad= j+1-((j+1)/2)*2;
For even j it is 1 and for odd j it is 0. Obviously there is a dead node, which has to be skipped when i and j are even at the same time. The counters icount and macoun are defined. For that, icount counts simply from grid point to grid point under inclusion of the dead nodes, the counter macoun by contrast, is only incremented if it is a grid point which was not considered until now and if it is not a dead node. The
8.3 Description of a Simple Mapped Mesher 285
array of coincidence koima receives the value from macoun when it is another grid point, otherwise it receives the index of the already known, earlier appeared node. Program-technically it is ascertained whether a node is new or is known, by comparing its coordinates to the ones of a node to be compared under inclusion of a catch range (do not perform comparisons of double numbers on equality because of limited machine accuracy). The counter macoun contains the number of nodes of the finished FE structure after this step.
Step 6: Calculating the Coordinates and Coincidence of the Final Structure The coordinates must be read out with the help of the array koima according to following scheme: First node: xss[1], yss[1] Second and all following nodes to node macoun: koimax = 1; for(i = 2; i <= icount; i++) { if(koima[i] > koimax) { koimax = koima[i]; /* now, xss[i] and yss[i] belong */ /* to node number koimax */ } }
The list of coincidence is calculated as follows: First, two arrays icssta and jcssta are defined, which take the fact into account that in the first finite element, the following is valid: A11 equates to the local element node 1, A13 to the element node 2, A33 to the element node 3 and so on (here, so that counting can start with 1, holds: icssta [0] = jcssta [0] = 0): int icssta[9] = {0,1,1,3,3,1,2,3,2}; int jcssta[9] = {0,1,3,3,1,2,3,2,1};
The second finite element has the following equivalences: A31 to local element node 1, A33 to element node 2, A53 to element node 3 etc. Hence, the list of coincidence is made as follows: /*---------------------------------------------------------------------* Element data & list of coincidence *---------------------------------------------------------------------*/ k= 0; for(iss = 1;iss <= ness;iss++) {
286 8 Mesh Generation of Curvilinear Finite Elements
jmax= jel[iss]*2+1; imax= iel[iss]*2+1; for(je = 1;je <= jel[iss];je++) { for(ie = 1;ie <= iel[iss];ie++) { k++; for(le = 1;le <= 8;le++) { j= jcssta[le] + 2*(je-1); i= icssta[le] + 2*(ie-1); index= (ioffss[iss]-1) + i+imax*(j-1); koilo[le]= koima[index]; } fprintf(fi1,“ %5ld %5ld
Element Nr.%ld\n“,k,ityp,k);
fprintf(fi1,“ %5ld %5ld %5ld %5ld %5ld %5ld %5ld %5ld\n“, koilo[1],koilo[2],koilo[3],koilo[4], koilo[5],koilo[6],koilo[7],koilo[8]); } } }
These values are given in a file, which serves as an input for the actual FE program. At Z88 this is the file Z88I1.TXT. Example: The wrench shown below is formed of seven super elements (Serendipity) with 38 nodes. It is found in detailed form in chapter 13, as the first example. The small figures are the node numbers and the bigger figures the element numbers. The array join that describes the preceding neighboring elements of a respective super element is (the very first array element is 0, i.e. join [0] = 0, so that the counting can always start with 1): (0,0,0,0,0,0,0,0,0, 1,0,0,0,0,0,0,0, 2,0,0,0,0,0,0,0, 3,0,0,0,0,0,0,0, 4,0,0,0,0,0,0,0, 2,3,4,0,0,0,0,0, 6,0,0,0,0,0,0,0).
8.3 Description of a Simple Mapped Mesher 287
Figure 8.3-3: Example: Wrench consisting of 7 super elements
This means: The super element 1 has naturally no previous element, the elements from 2 to 5 have in each case the directly adjoining previous elements 1 or 2 or 3 or 4. The super element 6 is connected to the already treated previous element elements 2, 3 and 4, and super element 7 has the super element 6 as a direct, already discussed partner. The elements from 1 to 5 should be subdivided in both directions each three times, element 6 in r twice and in s three times equidistantly, element 7 in r direction ascending geometrically and in s direction three times equidistantly. This then results in 69 finite elements (Serendipity elements with eight nodes) and 260 nodes for the final structure.
Figure 8.3-4: Generated mesh structure
288 8 Mesh Generation of Curvilinear Finite Elements
The explained procedure can be immediately expanded on spatial Serendipity elements with 20 nodes (Figure 8.3-5).
Figure 8.3-5: Spatial Serendipity element with 20 nodes
In addition, the coordinate t is introduced. A dead node will result, if from three running directions I, J, K, two running directions have even indices. Hexahedrons with eight nodes are even easier to generate, because this differentiation is completely unnesessary. This is also valid for Lagrange elements. The mesher described here is used as Z88N in the Z88 system. It is further described in chapter 10, particularly the practical use. Several examples in chapter 13 are based on this mesher. The C sources are presented on the DVD. This mapped mesher, that is described here and on which was reported in /29/, was developed by the lead author of this book and has exceptionally proven itself in practice. In contrast to the fully automatic meshers of modern commercial FEA systems, it sometimes clearly requires significantly more input effort, but generates meshes to accommodate personal operator preferences, what is greatly appreciated by advanced users of FEA.
9 ■■9.1 General
Z88: The Basics
Information
Two free programs form the basis of this book: Z88V14 Open Source and Z88Aurora V2. While the Open Source version works especially basis-oriented and “originally”, at which you, with the help of the provided source code, can understand all theoretical basics of the previous chapters, our new development Z88Aurora provides a very comfortable user interface, which compared to Z88V14 Open Source perceptibly facilitates the FE calculation in everyday studies but also in industrial practice. While you work directly with input files and output files in the Open Source version, these files (which are identical for Open Source version and Z88Aurora) are automatically created by Z88Aurora, and you can, e.g., very comfortably apply boundary conditions. All static linear examples of this book of course can be calculated with both Z88 versions, and it is up to you to decide which version you use to work through the examples. If you want to work very comfortably from the beginning on and if you are less interested in the program backgrounds, you should choose Z88Aurora V2, with which the use is very similar to commercial programs. If you want to know everything in detail, you are not annoyed by a relatively simplistic user interface and you want to study or even change or extend the program code, then give Open Source Z88V14 a try. As you know, both program versions come from our department: Z88V14 Open Source and Z88Aurora V2 are at the moment respectively the newest versions, and in the internet you will find revised and actual releases under www.z88.de.
290 9 Z88: The Basics
9.1.1 Summary of the Z88 Element Library Two-dimensional Problems: Plane Stress Elements, Plates, Beams, Trusses Plane stress element no. 3 Shape functions quadratic, but straight boundaries Quality of displacements: very good Quality of stresses in the centre of gravity: good Computing effort: average Size of element stiffness matrix: 12 × 12 3
Y
6 5
X
1 4
2
Figure 9.1-1: Plane stress element no. 3
Plane stress element no. 7 Quadratic isoparametric Serendipity element Quality of displacements: very good Quality of stresses in the Gauss points: very good Quality of the stresses in the corner nodes: good Computing effort: high Size of element stiffness matrix: 16 × 16 3 4 7
Y 6
8
5
1
Figure 9.1-2: Plane stress element no. 7
X
2
9.1 General Information 291
Truss no. 9 Linear approach Quality of displacements: exact (Hooke’s law) Quality of stresses: exact (Hooke’s law) Computing effort: minimal Size of the element stiffness matrix: 4 × 4 Y
2
X
1
Figure 9.1-3: Truss no. 9
Plane stress element no. 11 Cubic isoparametric Serendipity element Quality of displacements: excellent Quality of stresses in the Gauss points: excellent Quality of stresses in the corner nodes: good Computing effort: very high Size of element stiffness matrix: 24 × 24 3 4 10
9
Y
8 11
7
12 5 1
Figure 9.1-4: Plane stress element no. 11
6
X
2
292 9 Z88: The Basics
Beam no. 13 Linear approach for tensile stress, cubic approach for bending stress Quality of displacements: exact (Hooke’s law) Quality of stresses: exact (Hooke’s law) Computing effort: low Size of element stiffness matrix: 6 × 6
Figure 9.1-5: Beam no. 13
Plane stress element no. 14 Quadratic isoparametric Serendipity element Quality of displacements: very good Quality of stresses in the Gauss points: very good Quality of stresses in the corner nodes: good Computing effort: medium Size of element stiffness matrix: 12 × 12
Y 3
6 5
X
1 4
Figure 9.1-6: Plane stress element no. 14
2
9.1 General Information 293
Plate no. 18 Quadratic isoparametric Serendipity element following Reissner-Mindlin approach Quality of displacements: very good Quality of stresses in the Gauss points: good Quality of stresses in the corner nodes: acceptable Computing effort: medium Size of element stiffness matrix: 18 × 18
Figure 9.1-7: Plate no. 18
Plate no. 19 Cubic isoparametric Lagrange element following Reissner-Mindlin approach Quality of displacements: very good Quality of stresses in the Gauss points: very good Quality of stresses in the corner nodes: good Computing effort: very high Size of element stiffness matrix: 48 × 48
Figure 9.1-8: Plate no. 19
294 9 Z88: The Basics
Plate no. 20 Quadratic isoparametric Serendipity element following Reissner-Mindlin approach Quality of displacements: very good Quality of stresses in the Gauss points: good Quality of stresses in the corner nodes: quite good Computing effort: medium Size of element stiffness matrix: 24 × 24
Figure 9.1-9: Plate no. 20
Axisymmetric Problems Torus element no. 6 Linear approach Quality of displacements: average Quality of stresses in the corner nodes: inaccurate Computing effort: low Size of element stiffness matrix: 6 × 6 Z(=Y) 3
1
2
R(=X)
Figure 9.1-10: Torus element no. 6
9.1 General Information 295
Torus element no. 8 Quadratic isoparametric Serendipity element Quality of displacements: very good Quality of stresses in the Gauss points: very good Quality of stresses in the corner nodes: good Computing effort: high Size of element stiffness matrix: 16 × 16 Z(=Y) 3 4 7
6
8
5 1 2
R (=X)
Figure 9.1-11: Torus element no. 8
Torus element no. 12 Cubic isoparametric Serendipity element Quality of displacements: excellent Quality of stresses in the Gauss points: excellent Quality of stresses in the corner nodes: good Computing effort: very high Size of element stiffness matrix: 24 × 24 Z(=Y) 3 4
9 10
8
11
12
7 5
1
6 2
R (=X)
Figure 9.1-12: Torus element no. 12
296 9 Z88: The Basics
Torus element no. 15 Quadratic isoparametric Serendipity element Quality of displacements: very good Quality of stresses in the Gauss points: very good Quality of stresses in the corner nodes: good Computing effort: medium Size of element stiffness matrix: 12 × 12
Figure 9.1-13: Torus element no. 15
Shaft no. 5 Linear approach for tensile stress and torsion, cubic approach for bending stress Quality of displacements: exact (Hooke’s law) Quality of the stresses: exact (Hooke’s law) Computing effort: low Size of element stiffness matrix: 12 × 12 Z, U 3
Y, U 2
U6 U5
2
1 U4
Figure 9.1-14: Shaft no. 5
X, U 1
9.1 General Information 297
Shell Problems Shell no. 21 Curvilinear, isoparametric Serendipity volume shell element Isoparametric transformation Any curvature of the element is possible Very accurate calculation of both displacements and stresses Stresses in the corner nodes (suitable as an overview) or in the Gauss points (considerably more accurate) Computing effort: high Size of element stiffness matrix: 48 × 48
Figure 9.1-15: Shell no. 21
Shell no. 22 Curvilinear, isoparametric Serendipity volume shell element Isoperimetric transformation Any curvature of the element is possible Very accurate calculation of both displacements and stresses Stresses in the corner nodes (suitable as an overview) or in the Gauss points (considerably more accurate) Computing effort: medium Size of element stiffness matrix: 36 × 36
Figure 9.1-16: Shell no. 22
298 9 Z88: The Basics
Shell no. 23 Curvilinear, isoparametric Serendipity shell element Quadratic approach Isoparametric transformation All nodes on one plane Good calculation of both displacements and stresses Stresses in the corner nodes (suitable as an overview) or in the Gauss points (considerably more accurate) Computing effort: high Size of element stiffness matrix: 48 × 48
Figure 9.1-17: Shell no. 23
Shell no. 24 Curvilinear, isoparametric Serendipity shell element Quadratic approach Isoparametric transformation All nodes on one plane Good calculation of both displacements and stresses Stresses in the corner nodes (suitable as an overview) or in the Gauss points (considerably more accurate) Computing effort: medium Size of element stiffness matrix: 36 × 36
Figure 9.1-18: Shell no. 24
9.1 General Information 299
Spatial Problems Truss no. 4 Linear approach Quality of displacements: exact (Hooke’s law) Quality of stresses: exact (Hooke’s law) Computing effort: minimal Size of element stiffness matrix: 6 × 6 Z 2
Y
1
X
Figure 9.1-19: Truss no. 4
Beam no. 2 Linear approach for tensile stress and torsion, cubic approach for bending stress Quality of displacements: exact (Hooke’s law) Quality of stresses: exact (Hooke’s law) Computing effort: low Size of element stiffness matrix: 12 × 12
Figure 9.1-20: Beam no. 2
300 9 Z88: The Basics
Hexahedron no. 1 Linear approach Quality of displacements: average Stresses in the Gauss points: usable Stresses in the corner nodes: inaccurate Computing effort: very high Size of element stiffness matrix: 24 × 24 Z 3 4 7
Y 8 2
X
1
6 5
Figure 9.1-21: Hexahedron no. 1
Hexahedron no. 10 Quadratic isoparametric Serendipity element Quality of displacements: very good Stresses in the Gauss points: very good Stresses in the corner nodes: good Computing effort: extremely high Size of element stiffness matrix: 60 × 60 2
1
9 10
12
3
4
11 18
17
Z Y 19
6
20 13 5
14 16 15 7
Figure 9.1-22: Hexahedron no.10
X
8
9.1 General Information 301
Tetrahedron no. 17 Linear approach Quality of displacements: poor Stress in Gauss points: inaccurate Stress in the corner nodes: very inaccurate Computing effort: medium Size of element stiffness matrix: 12 × 12 Z 4
1 3
Y
2
X Figure 9.1-23: Tetrahedron no. 17
Tetrahedron no. 16 Quadratic isoparametric Serendipity element Quality of displacements: very good Stresses in the Gauss points: very good Stresses in the corner nodes: good Computing effort: very high Size of element stiffness matrix: 30 × 30 Z 4
10
9
8 1 7 5 6 2
X Figure 9.1-24: Tetrahedron no. 16
3
Y
302 9 Z88: The Basics
■■9.2 The
Open Source FE Program Z88
The Z88 philosophy: Fast and compact: developed for PCs, no ported mainframe system Flexible and transparent: Control with text files “Small is beautiful” – modular structure, no monolithic monster Native Windows, LINUX-or Mac OS X programs, no emulations Windows and UNIX versions use the same computing and graphic kernels Full data exchange from and to AutoCAD systems with DXF interface NASTRAN and COSMOS FE mesh import from Pro/ENGINEER Online help Easy installation: No subdirectories, no change of system files
Hints Always compare FE calculations with analytical rough calculations, results of experiments, plaus ibility considerations and other tests without exception! Here UNIX always stands for LINUX, UNIX and Mac OS X. You can find further information in the Z88 manual on the DVD. You can find the installation instruction of Z88 V14.0 on the DVD. Further note that sign definitions of Z88 (and also other FEA programs) may differ from the usual definitions of the analytical engineering mechanics from time to time.
9.2.1 Overview of the Z88 Program Modules Z88 always works exclusively on the tasks required at the moment. Therefore Z88 is no gigantic, monolithic program, but is according to the UNIX philosophy “small is beautiful” comprised of several, separately executable modules. They are loaded into the main memory according to your requirements, execute their task, and release the memory again. The Z88 program modules communicate with each other by files, cf. ch. 11. In the following you will find a short description of the modules, further information cf. ch. 10 or the Z88 manual on the DVD.
I. The Solver The linear solver Z88R is the heart of the program system. It imports the general structure data Z88I1.TXT, the boundary conditions Z88I2.TXT, the surface load file Z88I5.TXT, the integration order file Z88INT.TXT, the element parameter file Z88ELP.TXT, the solver parameter file Z88MAN.TXT as well as the material parameter file Z88MAT.TXT with the corresponding material files (number).TXT. Basically, the Z88 input files can be generated by CAD converter Z88X, by 3D-converter Z88G, by mesher Z88N, by editor or word processing systems or by a combination of these. The solver then exports the processed structure data Z88O0.TXT and the
9.2 The Open Source FE Program Z88 303
processed boundary conditions Z88O1.TXT, calculates the element stiffness matrices, compiles the global stiffness matrix, scales the equation system, solves the (gigantic) equation system and exports the displacements in Z88O2.TXT. Thus, the main task of every FEA system, the calculation of the displacements, is solved. Then the stresses are calculated and exported to Z88O3.TXT; afterwards the nodal forces are calculated and exported to Z88O4.TXT. Furthermore, the solver generates two files Z88O5.TXT and Z88O8.TXT, which are used for the internal communication with Z88O. Z88R features two different solvers: The so-called Cholesky solver without fill-in. It is easy to operate and is very fast in case of small and medium sized structures. It is like all direct solvers sensitive to suboptimal node numbering; this can be improved by a previous use of the Cuthill-McKee algorithm Z88H. Hints for using Z88H are found in chapter 3.3.4. It is the right choice for small and medium sized structures up to 20,000 ... 30,000 degrees of freedom. The so-called sparse matrix iteration solver. It solves the system by the method of the conjugated gradients. In doing so, it can be selected whether the system is pre-conditioned by a SOR process (SORCG) or by incomplete Cholesky decomposition (SICCG). This solver is so quick in case of structures with more than 100,000 degrees of freedom that it is hardly slower than the solvers of the commercial and expensive FEA systems as it is once again shown by current comparisons. At the same time the memory requirement is minimal. It is the right choice for structures with more than 100,000 ∼ 200,000 degrees of freedom. FE structures with approx. 5 million degrees of freedom are not a problem if you use a 64-bit operating system (Windows, Linux or Mac OS-X) with approx. 6 GB of memory along with the 64-bit version of Z88. This approved and stable solver works any time according to our observa tions, so you can use it as a default solver.
II. The Linking Modules to CAD Systems The CAD converter Z88X converts exchange DXF files of AutoCAD systems into Z88 input files (mesher input file Z88NI.TXT or general structure data Z88I1.TXT, boundary conditions Z88I2.TXT and surface loads Z88I5.TXT) or, and this is special, also vice versa Z88 input files in DXF files. You can not only generate input data in the CAD system and then use them in Z88, but also create Z88 input files, which are always simple ASCII files, e.g. by text editor, by word processing programs, by EXCEL or, e.g. by self-written programs and then deliver them to the CAD system via CAD converter Z88X, complement them there if necessary, process them further and then convert them back into Z88. The 3D-converter Z88G imports FE input files in the so-called NASTRAN format or in the socalled COSMOS format and automatically creates the Z88 input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT. NASTRAN and COSMOS files can be created in different 3D CAD systems. With this, an immediate subsequent processing, e.g. from Pro/ENGINEER models is possible. The Cuthill-McKee algorithm Z88H is primarily intended for the cooperation with Z88G. It can renumber FE meshes and thus noticeably reduce memory requirements particularly in case of meshes created by auto meshers.
304 9 Z88: The Basics
III. The Mapped Mesher The mesher Z88N imports the super structure data Z88NI.TXT (which can be created by a CAD system via Z88X or by hand) and exports the general structure data Z88I1.TXT. The mesher file Z88NI.TXT in principle has the same structure as the file of the general structure data Z88I1.TXT. It can also be generated by CAD converter Z88X, by editor or word processing system or by a combination of these.
IV. The Post-Processor The plot program Z88O displays undeflected and deflected structures and also the distribution of stresses.
Multitasking of Z88: Unlimited multitasking is possible, that is to say several Z88 program modules or other genuine Windows programs can run parallel. Nevertheless note, that you do not arrange all windows overlapping, but side by side, because the Z88 modules once started do not evaluate any WM_ PAINT signals for reasons of speed. This means that although the programs continue to calculate, occasionally on-screen displays are deleted, if running Z88 windows are enlarged, reduced, moved or overlapped by windows of other programs. This has no influence on the calculation results, and the high speed of Z88 can only be kept up by this feature.
Hints for starting Z88: Windows: All Z88 modules can be directly started via Explorer from a group, which contains the various Z88 modules, or via “run”. It is enough to call the Z88-Commander Z88COM. Then it can start all the other modules. UNIX: In the UNIX version, the modules are separately started by the Z88 Commander Z88COM or as an extended possibility by a shell-script (e.g. bash). Here you have all limitless possibilities of the UNIX system. All modules except Z88COM and Z88O can be started by console in the text mode, but of course also in an X window. Z88COM, the Z88 Commander and Z88O, the plot program, must be started as GTK+ programs from X. LINUX: For comfortable work with Z88 in LINUX, start your X-Window manager, open a X term and start Z88COM. Mac OS X: Start the terminal (finder > go > utilities > terminal) and start Z88COM. Place Z88COM and the X term or terminal, that started Z88COM, side by side or on top of each other.
9.2 The Open Source FE Program Z88 305
9.2.2 Dynamic Memory Z88 All Z88 modules dynamically request memory. Although Z88 is delivered with default values in Z88.DYN, the user can and should adjust these values. For that purpose, the file Z88.DYN is edited. Furthermore the language is selected in Z88.DYN. Enter GERMAN or ENGLISH, best of between DYNAMIC START and NET START. Z88.DYN starts with the key words DYNAMIC START and ends with DYNAMIC END. In between, there is a section for the mesher (NET START, NET END), a shared section for all modules (COMMON START, COMMON END) and a section for the Cuthill-McKee program (CUTKEE START, CUTKEE END). In between, any blank lines or comments can be entered, only the uppercased keywords are recognized. After the respective key word, an integer value follows, separated by at least one blank. The order of the keywords is arbitrary. Do not request an unnecessary amount of memory, because this causes speed loss, especially in case of virtual memory. In case of huge structures, it is best to run a test. Proceed as follows: I) Ascertain memory requirement - II) Correct Z88.DYN if necessary - III) Start the solver Ascertain Memory requirement by test run Windows:
Z88R > calculation mode: test mode > Solver: Cholesky | SICCG |
SORCG > Calculation: Start
UNIX:
z88r -t -choly | -siccg | -sorcg
Figure 9.2-1: Reading the memory requirement MAXGS and MAXKOI in Windows. Similar to UNIX.
For the Cholesky solver, these two values are sufficient; using the iteration solver SICCG or SORCG, another memory value is needed: MAXIEZ. Now, the approach is a little more subtle, because first of all you must provide memory MAXIEZ for the actual construction of the sparse matrix. Unfortunately, there is no possibility to estimate this memory requirement in advance, but Z88R in the test mode informs you if this value was too small. Then you have to adjust it in Z88.DYN and start Z88R in the test mode once again.
306 9 Z88: The Basics
The treatment of larger structures using sparse matrix solvers SICCG or SORCG involves a three (or more) step process: I) 1. Start Z88R in test mode 2. If Z88R has run correctly: Proceed with II). 3. If Z88R was aborted because MAXIEZ was too low, increase MAXIEZ in Z88.DYN and start Z88R in the test mode once again. If necessary, repeat this step until Z88R runs correctly. II) Correct Z88.DYN: Read out values of MAXGS and MAXKOI and correct Z88.DYN. With it, the memory is adjusted for the actual solver run. Of course, the other values like MAXK (maximum number of nodes) must also fit, but those can be predetermined easily. III) Start Z88R in the calculation mode, namely in the same mode (i.e. Cholesky, SICCG or SORCG), which you have used for the test run: Windows:
Z88R > calculation mode: calculation > Solver: Cholesky | SICCG |
SORCG > calculation: start
UNIX:
z88r -c -choly | -siccg | -sorcg
Make sure that your swap space is sufficient. Windows: Start > system control > system > ad vanced > system performance. LINUX: if necessary create a second swap partition. In Z88, there are no limits for the size of the structures. The maximum size is only limited by the virtual memory of your computer and your imagination! If necessary, in case of very large struc tures, you must use 64 bits integers and pointers (i.e. the 64 bit Z88 versions for Windows, LINUX and Mac OS X) to avoid an overflow of the internal loop counters. The Z88 modules check whether the given values are sufficient for the current problem, or limits are reached, and break if necessary. When a Z88 module aborts without comment, consider the .LOG file. MAXKOI is often too small! In the .LOG files, the necessary data memory is recorded in case of a successful run, of course in addition to the memory for the actual program, local arrays and stack, which can be neglected in Windows and UNIX. The general description for Z88.DYN is: DYNAMIC START
Adjust language:
ENGLISH or GERMAN. If nothing is selected here or the selection can’t be identified, ENGLISH is automatically selected.
Section mesher:
NET START
MAXSE Maximum number of internal nodes for FE mesh creation must be considerably higher than the created FE nodes. MAXESS
Maximum number of super elements
MAXKSS
Maximum number of super nodes
MAXAN Maximum number of the nodes, which can respectively connect to a super element. The default value 15 has proved itself even in case of complicated spatial structures with hexahedrons no. 10. It can be increased in the case of doubt.
9.2 The Open Source FE Program Z88 307
NET END
Common data:
COMMON START
MAXGS Maximum number of positions in the global stiffness matrix.
Number GS is displayed in Z88R in the test mode.
MAXKOI Maximum number of elements in the array of coincidence = number of nodes per element times number of finite elements. Example: 200 finite elements type 10 = 20 nodes per element x 200 = 4,000. In case of mixed structures, the element type with the most nodes is taken as a basis, and then it is multiplied by the total of elements. Required number NKOI is displayed in Z88R in the test mode. MAXK Maximum number of nodes of the structure. MAXE
Maximum number of elements of the structure.
MAXNFG
Maximum number of degrees of freedom of the structure.
MAXMAT
Maximum number of elasticity laws of the structure.
MAXJNT
Maximum number of integration orders of the structure.
MAXPEL
Maximum number of element parameters of the structure.
MAXPR
Maximum number of the surface loads.
MAXRBD
Maximum number of boundary conditions (only for Z88O).
MAXIEZ Only for the sparse matrix solver SICCG or SORCG: It uses a array IEZ that has the size MAXIEZ. Unfortunately, there is no possibility to estimate this memory requirement in advance, but Z88R informs you if this value was too small. Then you must increase this value and start Z88R once more. MAXGP
Maximum number of Gauss points (only for Z88O).
COMMON END
For the Cuthill-McKee algorithm:
CUTKEE START
MAXGRA
Maximum degree of nodes
MAXNDL
Layers of the algorithm
CUTKEE DYNAMIC END
308 9 Z88: The Basics
9.2.3 The Input and Output of Z88: The input and output files are created and processed either with an editor (e.g. the editor or Notepad of Windows, UNIX tools like vi, emacs, joe), a text program (e.g. WinWord etc.), table calculation program (e.g. Excel) or via CAD converter Z88X directly in a CAD program, which can create and read DXF files (e.g. AutoCAD) or by a 3D-CAD-System, that can create so-called COSMOS or NASTRAN Finite Element input files (e.g. ProENGINEER with ProMECHANICA) and subsequent conversions with the 3D converter Z88G. This ensures maximum flexibility and transparency for the user, because these are quite simple structured ASCII text files. Input files can be filled with any tools or manually, of course also with self-written programs. Merely the Z88 conventions are to be followed for the respective file construction, cf. ch.11. Output files can be altered, extended, reduced to the essentials or used as an input for other programs. Dimensions, i.e. units, are not explicitly displayed. You can work in any unit system, e.g. in the metric or Anglo-American unit system, with Newton, pounds, tonnes, millimeter, meter, inches – briefly, it’s up to you. Of course the units must be kept consistent. Example: If you work with mm and N, then the Young’s modulus must of course be entered in N/mm2.
Hint: The Z88-input files in principal are called Z88G.COS Z88G.NAS Z88X.DXF Z88NI.TXT Z88I1.TXT Z88I2.TXT Z88I5.TXT Z88MAN.TXT Z88ELP.TXT Z88INT.TXT Z88MAT.TXT (Number).TXT
COSMOS FE file from 3D CAD system for converter Z88G NASTRAN FE file from 3D CAD system for converter Z88G Exchange file for CAD programs and for CAD converter Z88X Input file for the mapped mesher Z88N Input file structure data for the solver Z88R Input file boundary conditions for the solver Z88R Input file for the surface loads for the solver Z88R Input file control values for the solver Z88R Input file element parameter for the solver Z88R Input file integration orders for the solver Z88R Input file material parameters file for the solver Z88R Input files material files for the solver Z88R
The Z88-output files in principal are called Z88O0.TXT Z88O1.TXT Z88O2.TXT Z88O3.TXT Z88O4.TXT
processed structure data for documentation purposes processed boundary conditions for documentation purposes calculated displacements calculated stress calculated nodal forces
9.2 The Open Source FE Program Z88 309
The Z88 modules expect these file names, and they must be located in the same directory as the Z88 modules. You cannot assign own names for datasets. But of course, you can rename these files as you wish and store them in other directories etc. after the calculation is finished.
Generation of Input Data: As mentioned, the mesher file Z88NI.TXT or the structure file Z88I1.TXT, the boundary condition file Z88I2.TXT and the file of the distributed loads and surface loads Z88I5.TXT generally and always manually can be generated via an editor. In case of automatic generation, there are the following possibilities (Table 9.2-1). Table 9.2-1: Automatic generation of input files
CAD system, e.g.
Generates
Converter
Generates
Mapped mesher
Generates
Pro/ENGINEER Pro/MECHANICA
Z88G.COS Z88G.NAS
Z88G
Z88I1.TXT, Z88I2.TXT, Z88I5.TXT
Not required
Files already exist
AutoCAD
Z88X.DXF
Z88X
Z88NI.TXT
Z88N
Z88I1.TXT
AutoCAD
Z88X.DXF
Z88X
Z88I1.TXT, Z88I2.TXT, Z88I5.TXT
Not required
Files already exist
Z88 protocol files The Z88 modules always create protocol files .LOG, e.g., for Z88R Z88R.LOG, which document the process of the calculation or errors. In case of doubt check here. Here, also the current memory requirement is documented. Warning: UNIX: Make sure that the access rights also match the .LOG files. Use umask if necessary. Printing Z88 files is not integrated into the Z88 command processor. In Windows, this can be done e.g., via Explorer or via an editor or word processing program. A screen dump is created with Shift Print and saved in the clipboard. In UNIX and LINUX, use the printing routines of the operating system or print via an editor like gedit. In Mac OS X, you print immediately from terminal or use the Apple tool screen capture or take a screen shot with Cmd – Shift – 3.
310 9 Z88: The Basics
Table 9.2-2: Automatic generation of Z88 element types
DXF (Z88X)
Super element (Z88N)
creates FE (Z88N)
linear
COSMOS NASTRAN (Z88G) no
yes
yes
Hexa no. 1
quadratic
no
yes
yes
Hexa no.10 and no. 1
quadratic
yes
yes
no
-
linear
yes
yes
no
-
Plane stress element no. 3 Plane stress element no. 7 Plane stress element no. 11 Plane stress element no. 14
quadratic
no
yes
no
-
quadratic
yes
yes
yes
cubic
no
yes
yes
quadratic
yes
yes
no
Plane stress element no. 7 Plane stress element no. 7 -
Torus element no. 6 Torus element no. 8 Torus element no. 12 Torus element no. 15
linear
no
yes
no
-
quadratic
yes
yes
yes
Torus element no. 8
cubic
no
yes
yes
Torus element no. 8
quadratic
yes
yes
no
-
Plate no. 18
quadratic
yes
yes
no
-
Plate no. 19
cubic
no
yes
no
-
Plate no. 20
quadratic
yes
yes
yes
Plate no.19 and no. 20
Shell no. 21
quadratic
no
yes
yes
Shell no. 21
Shell no. 22
quadratic
no
yes
no
-
Shell no. 23
quadratic
yes
yes
no
-
Shell no. 24
quadratic
yes
yes
no
-
Truss no. 4
accurate
no
yes
no
-
Truss no. 9
accurate
no
yes
no
-
Beam no. 2
accurate
no
yes
no
-
Shaft no. 5
accurate
no
yes
no
-
Beam no. 13
accurate
no
yes
no
-
Element type
Approach
Hexahedron no. 1 Hexahedron no. 10 Tetrahedron no. 16 Tetrahedron no. 17
9.2 The Open Source FE Program Z88 311
Table 9.2-3: All Z88 files at a glance
Name
Type
Direction
Purpose Memory parameters file and linguistic parameters file
adjust, change Recommended
MSWin yes
Z88.DYN
ASCII
input
Z88G.COS Z88G.NAS Z88X.DXF
ASCII ASCII ASCII
Z88NI.TXT
yes
input input in/output
COSMOS to Z88 NASTRAN to Z88 DXF to and from Z88
yes, 1) yes, 1) yes, 1)
yes yes yes
yes yes yes
ASCII
input
Mapped mesher input file
yes
yes
yes
Z88I1.TXT Z88I2.TXT Z88I5.TXT Z88MAN.TXT
ASCII ASCII ASCII ASCII
input input input input
yes yes yes yes
yes yes yes yes
yes yes yes yes
Z88ELP.TXT Z88INT.TXT Z88MAT.TXT (number).TXT
ASCII ASCII ASCII ASCII
input input input input
General structure data Boundary conditions Distributed and surface loads Parameters file for the solver Z88R Element parameters Integration order Material parameters file Material files
yes yes yes yes
yes yes yes yes
yes yes yes yes
Z88O0.TXT Z88O1.TXT
ASCII ASCII
output output
possible possible
yes yes
yes yes
Z88O2.TXT Z88O3.TXT Z88O4.TXT
ASCII ASCII ASCII
output output output
Processed structure data Processed boundary conditions Calculated displacements Calculated stress Calculated nodal forces
possible possible possible
yes yes yes
yes yes yes
Z88O5.TXT Z88O8.TXT Z88O.OGL
ASCII ASCII ASCII
output output input
no, 1) no, 1) possible
yes yes yes
yes yes no
Z88.FCD
ASCII
input
For internal purposes Z88O For internal purposes Z88O Color parameters file Z88O MS-Win Fonts, Colors, sizes in UNIX for Z88COM and Z88O
possible
no
yes
Z88COM.CFG ASCII
input
Configuration file Z88COM
no, 2)
yes
no
1) in principle yes, but not required, since created automatically 2) only in emergencies UNIX = UNIX + LINUX + Mac OS X
UNIX
312 9 Z88: The Basics
■■9.3 The
Freeware FE Program Z88Aurora
In addition to the functionalities of the open-source program Z88V14, the freeware program Z88Aurora has a graphical user interface. All input, which was entered in Z88 V14 OS by the input files Z88I1-5.TXT, can be directly carried out in Z88Aurora via graphics. Of course, existing input data from Z88 V14 OS can be opened any time.
Extensions in Z88Aurora at a Glance: Geometry data import of CAD systems via *.STP and *.STL Finite elements import from ANSYS and ABAQUS Free mesher for tetrahedron meshing Creating boundary conditions with node and element picking via the graphic user interface Material data base with 50 predefined engineering materials, expansible Direct PARDISO solver with multi-core technology Advanced post-processing Context sensitive on-line help, Spider-workflow schemata and tutorial videos Easy installation with Microsoft® Installer (MSI)
9.3.1 Overview of the Z88Aurora Modules Behind the new user interface, the proven Z88 programs are running. However, the program modules were extended suitably.
I. The Solver In addition to the two solvers (Cholesky equation solver and sparse matrix iteration solver) of the Open Source program, Z88Aurora features a so-called direct sparse matrix solver with fillin, the so-called PARDISO solver. In Z88Aurora selecting the Cholesky solver is only possible with trusses and beam elements! For all other requirements, the PARDISO solver is more suitable. This solver is very fast, however it requires much more dynamic memory while running. It is the right choice for medium sized structures to approx. 150,000 degrees of freedom with commercially available 32 bits PCs. We have also computed very fast structures with approx. 1 million degrees of freedom, admittedly using a computer with 32 GB of memory (!), 4 CPUs and with the 64 bits version of Z88.
9.3 The Freeware FE Program Z88Aurora 313
In Z88Aurora the solver models are called via the solver menu:
Solver menu
Figure 9.3-1: Solver menu
II. The Coupling Modules to CAD systems Z88Aurora offers the possibility to load a huge number of established file formats from commercial simulation programs to import geometry data or super structures, as well as to open already existing FE data or CAD data from the open source program Z88 V14 OS.
Import of Z88 files of Z88 V14 OS
STEP import: You can import 3D geometry data in the STEP data format based on the DIN ISO 10303 AP 203 and AP 214. This format is supported by most 3D CAD systems. AUTOCAD DXF import: You have the possibility to import and process in AutoCAD constructed 2D and 3D FE structures. STL import: Z88Aurora processes stereo lithography data that contains a triangulated 3D structure. This format is also typically used as import data for CAM programs; therefore most CAD programs can generate this file type. NASTRAN import: The CAD system Pro/ENGINEER and further commercial programs can export FE data (continuum elements and boundary conditions) as a *.nas file. These can be directly imported in Z88Aurora. ABAQUS import: Similar to the case NASTRAN the input files (*.inp) of the program ABAQUS can also be processed.
314 9 Z88: The Basics
ANSYS import: Direct conversion of ANSYS data to data for Z88Aurora. COSMOS import: The import of COSMOS files known from previous versions is still supported. The Cuthill-McKee algorithm Z88H is primarily intended for the cooperation with the Cholesky solver. With the implementation of the PARDISO solver, this functionality is not necessary any more in Z88Aurora. Hence, Z88H has been omitted.
III. The Mesher for aligned Meshes In Z88Aurora V2, three possibilities are available to carry out mesh refinements: Z88N for hexahedrons, axisymmetric elements, plane stress elements, plates and volume shells Z88MTV for tetrahedron refinement Z88MVS is the shell thickener for 2D shells Depending on the used finite element settings for meshing are to be done.
IV. The Pre-Processor and Post-Processor Boundary conditions, material definitions, surface loads – all these properties of an FE analysis which are controlled via the input files Z88I1.TXT to Z88I5.TXT in the Open Source version – are linked with the set management in Z88Aurora. In the course of the pre-processing, properties can be interactively assigned by the user in a graphic user interface via sets. In principle, the procedure is always as follows: After successful meshing, node or element groups can be marked in the picking menu simply with a mouse click and then be managed.
V. The Thermal Module In this new module of Z88Aurora, stationary heat conduction and additionally the thermal stresses obtained via the temperature are calculated. The simulated temperature distribution is insulated considered and is time-independent, i.e. the steady state is displayed. By linking the thermal and mechanical boundary conditions, the user can calculate thermo-mechanical displacements or stresses besides the thermal results like temperature or heat flow. Thus, statements about the temperature influence on a component can be gained.
VI. The Natural Vibration Module Also new in Z88Aurora V2 is the possibility to examine components concerning their natural frequencies. As soon as the material parameters Young’s modulus, Poisson’s ratio as well as the density are known, free natural frequencies can be calculated with the module. Alternatively, node set fixations in one or several spatial directions can be applied. As a result, the user receives information about the smallest natural frequencies as well as deflections that the component carries out.
9.3 The Freeware FE Program Z88Aurora 315
VII. The Module Z88NL for Non-linear Calculations in Z88Aurora At last, in Z88Aurora, there is the possibility to carry out non-linear mechanical calculations. Concerning the boundary conditions, homogeneous and inhomogeneous displacements, different kinds of the force application as well as pressure loads can be considered. The solver Z88NL evaluates the finite element analysis taking into account large displacement effects. With this module, the displacements (Z88NLO2.TXT) as well as the Cauchy stresses (Z88NLO3.TXT) are calculated for the element types 1 (hexahedron with 8 nodes), 4 (truss in space), 10 (hexahedron with 20 nodes), 7 (plane stress element with 8 nodes), 8 (axisymmetric element with 8 nodes), 16 (tetrahedron with 10 nodes) and 17 (tetrahedron with 4 nodes).
Hints for starting Z88Aurora: Z88Aurora is a ready-to-run installation package and is automatically installed by mouse click in Windows; in UNIX, i.e. LINUX or MAC OS X the installation is done via a TAR.GZ package.
9.3.2 Memory Requirement in Z88Aurora General settings, like the memory requirement or the appearance of Z88Aurora are defined in both parameter files Z88.DYN and Z88ENVIRO.DYN. The user has influence on their control via the option menu (under help > options). If, during the use of Z88Aurora, it becomes apparent that the memory is not sufficient, a correspondent error message is displayed (cf. Figure 9.3-2).
Figure 9.3-2: Memory overflow in case of too many nodes
Afterwards the dialog “options” is opened, in which, in the tab “Memory”, the relevant parameter can be increased. After closing the dialog, Z88Aurora quits. In the background, the parameter file was changed according to the adjustments. With the next restart of Z88Aurora, these changes are taken into account. No data is lost in this process. The memory parameters can also be edited without a previous warning of memory overflow. For that purpose, select the function “Options” in the menu “Help”. The tab “Memory” contains the memory parameters for the maximum node number (MAXK) and element number (MAXE). After closing the dialog box, Z88Aurora must be restarted. The files are stored in the working directory of Z88Aurora. This is to be found in z88aurorav2/bin/* (for selected UNIX operating system depending on the platform) or z88aurorav2/win/bin for
316 9 Z88: The Basics
Windows systems. The working directory is not to be mistaken with the project directory, which is selected at the program start by the user independently. The description of the file resembles Z88.DYN used in Z88 V14 OS: DYNAMIC START *----------------------------------------------------------------------Z88Aurora Version 2.0 *----------------------------------------------------------------------*----------------------------------------------------------------------LANGUAGE *----------------------------------------------------------------------ENGLISH QUIET *----------------------------------------------------------------------Common entries for all modules *----------------------------------------------------------------------COMMON START MAXE
500000
MAXK
500000
COMMON END DYNAMIC END
9.3.3 The Input and Output of Z88Aurora Basically, the input and output files in Z88Aurora are created while operating the user interface, in contrary to Z88 V14 OS. Of course, it is possible to import and then to process already existing Z88 V14 OS input files. In addition, all boundary conditions from existing files can be edited directly in the Z88Aurora user interface after a successful import. Z88Aurora V2 basically reflects the file structure of Z88 V14 OS, but the input is distributed to several parameter files to assure an optimal operation and the possibility of further development. For explanation of the files, please refer to the theory manual of Z88Aurora. The files of Z88Aurora are in detail:
9.3 The Freeware FE Program Z88Aurora 317
Table 9.3-1: File overview
Name
Purpose
Parameter files
Z88.DYN Z88.FCD
Memory parameters file and linguistic parameters file Fonts, colors, size parameters file
Z88ENVIRO.DYN Z88CONTROL.TXT 1.TXT - *.TXT
Setting variables Aurora Parameters file Aurora Material file for the material data base in the Z88Aurora user interface Node, surfaces and element index marks Node and element sets for material allocation and boundary conditions, element parameters Actually used sets of the project with respective control parameters Structure data, corresponds mainly to Z88I1.TXT in Z88 V14
Z88MARKS.TXT Z88SETS.TXT Z88SETSACTIVE.TXT Z88STRUCTURE.TXT Output files
Z88O0.TXT Z88TO0.TXT Z88O1.TXT Z88TO1.TXT Z88O2.TXT Z88NLO2.TXT Z88TO2.TXT Z88O3.TXT Z88NLO3.TXT Z88TO3.TXT Z88O4.TXT Z88TO4.TXT Z88O5.TXT Z88O6.TXT Z88TO6.TXT Z88TO7.TXT Z88O8.TXT Z88NLOH.TXT Z88TRAIL.TXT
Processed structure data Calculated temperatures Processed boundary conditions Calculated heat fluxes Calculated displacements Calculated displacements, non-linear calculation with Z88NL Calculated thermal strains Calculated stresses Calculated Cauchy stresses, non-linear calculation with Z88NL Calculated thermal forces Calculated nodal forces Calculated thermal displacements For internal purposes Calculated natural frequencies Calculated thermo-mechanical forces Calculated thermo-mechanical stresses For internal purposes Calculated process variables, non-linear calculation with Z88NL Protocol file of Z88Aurora
318 9 Z88: The Basics
Name
Purpose
Import files
*.COS *.NAS *.INP *.ANS *.DXF *.STP *.STL Z88NI.TXT
COSMOS FE file for converter Z88G NASTRAN FE file for converter Z88G ABAQUS FE file for converter Z88AINP ANSYS FE file for converter Z88ASY AUTOCAD CAD file for converter Z88X Import of geometry for internal mesher Import of geometry for internal mesher Input file for the mesher Z88N
10 ■■10.1 The
Z88: The Modules
Linear Solver Z88R
PLEASE NOTE: Always compare FEA calculations with analytical rough calculations, test results, plausibility considerations and tests. Z88R has internally two (Z88 V14 OS) or three (Z88Aurora V2) different solvers: A so-called Cholesky solver without fill-in. You can operate it uncomplicatedly and it is very fast with small and mid-size structures. It is, like all direct solvers, sensitive against inexpert node numbering; this can be improved by the prior use of the Cuthill-McKee algorithm. It is the right choice for small and middle structures up to 20,000 ... 30,000 degrees of freedom, typically for truss and beam frameworks as well as 2D-structures. A so-called sparse matrix iteration solver. It solves the system with the procedure of the conjugated gradients. For that, it can be chosen whether the system is pre-conditioned with a SOR procedure (SORCG) or with a partial Cholesky decomposition (SICCG). The memory requirements are minimal, less is not possible. It is the right choice for structures from 100,000 ~ 200,000 degrees of freedom: The biggest structure up to now computed with it had 12 million degrees of freedom. This absolutely proven and stable solver always works according to our observations, so that you can use it by all means as a standard solver. Only Z88Aurora: A so-called direct sparse matrix solver with fill-in. It uses the so-called PARDISO solver. This solver is very fast, because it uses multiple CPUs; however, it reallocates a lot of dynamic memory at the run time. It is the right choice for medium-sized structures to approx. 150,000 degrees of freedom with commerically available 32-bits PCs. With bigger structures, from 1 million degrees of freedom, it needs a lot of central memory (to 16 GB) and it aborts in the middle of the calculation if the memory is ushed up. In Z88 V14 OS, you must define the memory for Z88R in the memory parameters file Z88.DYN; in Z88Aurora V2 this is not necessary: Z88R finds the memory itself, which is of course more comfortable. At Z88Aurora V2, the control is directly integrated into the user interface, at Z88 V14 OS the solver can be called directly or with the Z88 commander Z88COM.
320 10 Z88: The Modules
Please note: The following explanations for the “manual” start of the solver Z88R in Z88Aurora only serve for a deeper understanding. The solver Z88R needs two control flags: z88r – mode – solver Besides, mode is: t: Test mode. Z88R determines the necessary memory and gives these settings in the memory parameters file Z88R.DYN. c: Calculation mode. Z88R.DYN is read in. Hence, you first let the solver go through the test mode and afterwards the second time into the calculation mode with the identical setting of the second parameter solver: Besides, the solver is: choly: Start of the Cholesky solver without fill-in with Jennings storage parao: Start of the direct sparse matrix solver with fill-in PARDISO siccg: Start of the iteration solver conjugated gradients, SIC pre-conditioning sorcg: Start of the iteration solver conjugated gradients, SOR pre-conditioning Z88R always uses following input files and output files: Input files: Z88I1.TXT general structure data Z88I2.TXT boundary conditions Z88I5.TXT distributed loads and surface loads, if available, otherwise 0 in the first line Z88MAT.TXT material control data and one or several TXT material files Z88ELP.TXT element parameter Z88INT.TXT integration orders Z88MAN.TXT solver parameter Output files: Z88O0.TXT processed structure data for documentation Z88O1.TXT processed boundary conditions for documentation Z88O2.TXT displacements Z88O3.TXT stresses Z88O4.TXT nodal forces
10.1.1 Z88R: The Cholesky Solver This solver works with the Jennings storage scheme and an in situ Cholesky equation solver (cf. chapter 6). It is proven, very quick and stable for smaller structures. The primary job of every FE program is the calculation of the displacements. The calculated displacements are the starting points for a stress calculation or nodal force calculation.
10.1 The Linear Solver Z88R 321
10.1.2 Z88R: The Sparse Matrix Solvers SICCG and SORCG They solve the system with the procedure of the conjugated gradients. Besides that, it can be chosen whether the system is pre-conditioned with a SOR procedure (SORCG) or with partial Cholesky decomposition (SICCG), cf. chapter 6. It works with storage of the non zero elements, cf. chapter 5.2.4. It is very good suited for bigger structures, but a little more complex to run than the direct Cholesky solver. The primary job of every FE program is the calculation of the displacements. The calculated displacements are the starting point for a stress calculation or nodal force calculation. Adjusting the memory at Z88V14 OS: The pointer IEZ (cf. chapter 5.2.4) consists of MAXIEZ elements, cf. memory parameters file Z88.DYN. They must provide the memory MAXIEZ in advance for the actual building of the sparse matrix. Unfortunately, there is no possibility to estimate this memory need in advance, but Z88R informs you, when this value was too small. You must then increase it in Z88.DYN and start Z88R in the test mode once again. Z88R in the test mode informs you how much memory you must intend for GS (= MAXGS) and KOI (= MAXKOI); adjust this in Z88.DYN. Here is an exemplary segment from Z88.DYN: COMMON START
MAXGS
600000
← adjusting before Z88R calculation mode
MAXKOI
132000
← adjusting before Z88R calculation mode
MAXK 11000 MAXE 33000
MAXNFG 32000
MAXMAT 32 MAXPEL 32 MAXJNT 32
MAXIEZ
600000
← adjusting before Z88R calculation mode
COMMON END
With big structures, you proceed in 3 or more steps: 1. Start Z88R in the test mode. 2. If Z88R ran well in the test mode, read the values of MAXGS and MAXKOI and correct Z88.DYN if necessary. With it, the memory is adjusted for the solver Z88R in the calculation mode. 3. If Z88R aborted in the test mode because MAXIEZ was too low, then increase MAXIEZ in Z88.DYN and start Z88R in the test mode once again. Repeat this step if necessary as long as Z88R runs well in the test mode. Then you can start Z88R in the calculation mode. Adjusting the memory with Z88Aurora V2: Here, you do not need to do anything: Z88R in Z88Aurora searches the memory itself.
322 10 Z88: The Modules
Solver parameter at Z88 V14 OS and Z88Aurora: The solver calculates the element stiffness matrices, compiles the global stiffness matrix, assembles the boundary conditions, scales the system of equations and solves the (gigantic) equation system with the procedure of the conjugated gradients. Before that, it is pre-conditioned to achieve a faster convergence. Besides, you can choose whether it is pre-conditioned with a SOR step or if a so-called partial Cholesky decomposition is used for the pre-conditioning. The partial Cholesky decomposition (shifted incomplete Cholesky decomposition SIC) is the default setting, because it is uncritical concerning the control parameter, the so-called shift factor α. The SOR pre-conditioning requires less memory, but the control parameter, the relaxation parameter ω, cannot be determined a priori. Hence, you must give another four control values: In Z88 V14 OS in the solver parameters file Z88MAN.TXT: SOLVER START MAXIT 10000 EPS 1e-007 RALPHA 0.0001 ROMEGA 1.1 ICORE 2 (only Z88Aurora) SOLVER END
In Z88Aurora, you comfortably enter these values to the solver-setting mask. This happens with the “solver parameters” in the menu “Solver” of the respective solver. There you also specify the number of the CPUs, because the iteration solver is parallelized in parts. 1st Value: Escape criterion: MAXIT: maximum number of the iterations (e.g., 10,000) 2nd Value: Escape criterion: EPS: residual vector < limit epsilon (e.g. 1e-7) 3rd Value: Control value of the convergence acceleration for SIC: RALPHA: Shift factor Alpha (between 0 and 1, useful values can often lie between 0.0001 and 0.1; start with 0.0001. You can learn further details from the special literature if necessary) 4th Value: Control value of the convergence acceleration for SOR: ROMEGA: relaxation factor Omega (between 0 and 2, useful values can often lie between 0.8 and 1.2). Only Z88Aurora: 5. Value: Number of the CPUs ICORE.
10.1 The Linear Solver Z88R 323
Linear mechanical
Figure 10.1-1: Solver parameter of the respective solvers of the solver menu in Z88Aurora
10.1.3 Z88R: The Sparse Matrix multi-core Solver PARDISO The actual set up of the sparse matrix takes place as in the iteration solver, cf. chapter 10.1.2. Then the solver itself executes a direct decomposition, but in contrast to the simple Cholesky solver, cf. 10.1.1, it works with fill-in, i.e. for the newly forming memory locations from the decomposition process, it constantly requests further storage space. Thereby, the memory requirement is not calculable a priori. If the main memory is not sufficient any more during the calculation, Z88R necessarily aborts in this mode. This solver works very fast with medium-sized structures (100,000 ~ 1,000,000 degrees of freedom), because it enables multi processor technology. However, it needs more main memory than the iteration solver around powers of ten. Hence, its application is only meaningful with a lot of main memory, which implies 64-bit pointers and integers again. For this solver, we recommend the 64-bit version of Z88 with a 64-bit Windows operating system and at least 4 GB of main memory (better 8 or 16 GB). With a 32-bit operating systems and 4 GB of main memory, you will not be able to calculate structures with more than
324 10 Z88: The Modules
~150,000 degrees of freedom. As the real solver core, PARDISO is used, developed by O. Schenk, University of Basel. You adjust the number of the CPUs used in the solver-setting mask. The data is saved in the file Z88CONTROL.TXT. Please pay attention that the following variables are not placed in the Windows setting System > extended > environment variable: NUM_THREADS, OMP_ SET_NUM_THREADS. This can collide with settings in Z88CONTROL.TXT. PLEASE NOTE: The files mentioned here, i.e. Z88I1.TXT, Z88I2.TXT, Z88MAN.TXT, Z88I5. TXT, Z88MAT.TXT, Z88ELP.TXT and Z88INT.TXT, are described in chapter 11.
10.1.4 Which Solver to choose? As a rough guide: For small structures, the Cholesky solver Z88R -choly is exactly the right thing. The sparse matrix iterations solver Z88R -siccg or- sorcg always works, also with very big structures, even in the 32-bit versions. The direct sparse matrix solver with fill in Z88R -parao can be very interesting for medium-sized structures due to its great speed. Table 10.1-1: Overview of the integrated solvers and their performance ability
Solver
Type
Z88R –t/c -choly
Cholesky Solver without fill-in Direct Solver with fill in
Z88R –t/c -parao Z88R –t/c -siccg or -sorcg
Memory Speed requirement up to ~ 30.000 Average Average Number of DF
up to ~ 150.000 with 32-bit PCs
Very high Very high
Conjugated No limit (to 12 Minimal gradients million did run solver with on a better PC) preconditioning
Average / Good1)
MultiCPU
Remark
No
Application of Z88H very sensible, conditions permitting Sensible with several CPUs and a lot of memory Really safe and stable solvers for very big structures
Yes
No / Yes1)
1)
when run in accelerated mode
10.1.5 Explanations for Stress Calculations The results are given in Z88O3.TXT. The control of the stress calculation is possible with the files Z88MAN.TXT and Z88INT.TXT (cf. chapter 3). With it, the following among other things is determined: Calculation of the stresses in the Gauss points or in the corner nodes. Additional calculation of radial stresses and tangential stresses for elements no. 3, 7, 8, 11 and 12, 14 and 15. Calculation of reduced stresses for continuum elements no. 1, 3, 6, 7, 10, 11, 12, 14, 15–24.
10.2 The Mapped Mesher Z88N 325
10.1.6 Explanations for Nodal Force Calculations The results are displayed in Z88O4.TXT. The nodal forces are calculated per element. If several elements adjoin a node, one receives the whole nodal force for these nodes by addition of the nodal forces of the attached elements. This is further explained below in the nodal force file Z88O4.TXT.
■■10.2 The
Mapped Mesher Z88N
The mapped mesher Z88N can generate 2-dimensional and 3-dimensional meshes. Z88N reads the mesher input file Z88NI.TXT and files the general structure data in Z88I1.TXT. For the description of Z88NI.TXT see chapter 11. Table 10.2-1: Mesh generation only makes sense and is allowed for continuum elements
Super structure Plane stress element no. 7 Torus element no. 8 Plane stress element no. 11 Torus element no. 12 Hexahedron no. 10 Hexahedron no. 10 Hexahedron no. 1 Plate no. 20 Plate no. 20 Volume shell no. 21
Finite element structure Plane stress element no. 7 Torus element no. 8 Plane stress element no. 7 Torus element no. 8 Hexahedron no. 10 Hexahedron no. 1 Hexahedron no. 1 Plate no. 20 Plate no. 19 Volume shell no. 21
Mixed structures, which in addition to e.g. plane stress elements no. 7 also contain trusses no. 9, cannot be processed. In such case, one only lets the mesher run over the super structure, which contains no trusses, then converts the file generated by the mesher Z88I1.TXT as a DXF file Z88X.DXF with the CAD converter Z88X, loads this DXF file into the CAD system and inserts the trusses there; if necessary you also immediately add the boundary conditions. Then one runs Z88X once again and converts in the direction of Z88 to the file Z88I1.TXT (general structure data) as well as if necessary Z88I2.TXT (boundary conditions). Operation mode of the mapped mesher: For the generation of FE meshes the following is done: The continuum is described by so-called super elements (briefly SE), that practically correspond to a rough FE structure. Super elements can be: Hexahedron no. 10, plane stress elements no. 7 and plane stress elements no. 11 as well as axisymmetric elements no.8 and axisymmetric elements no. 12, plates no. 20 and volume shells no. 21.
326 10 Z88: The Modules
This super structure is then refined. This is done for each super element, beginning with SE 1, SE 2 up to the last SE. With it, SE 1 generates the finite elements (briefly FE) 1 to j, SE 2 the FEs j+1 to k, SE 3 the FEs k+1 to m etc. Within the SEs, the situation of the local coordinates determines the node and element numbering of the FE structure. It is valid: Local x direction in the direction of local nodes 1 and 2 Local y direction in the direction of local nodes 1 and 4 Local z direction in the direction of local nodes 1 and 5 With spatial super structures, it is subdivided first in z, then in y and in the end in x direction, i.e. the FE element numbering starts to run along the z-axis first. For plane and axisymmetric structures the following is valid logically: The numbering begins first along the x-axis or with axisymmetric elements along the z-axis (cylinder coordinates!). Now along the local axes, it can be subdivided as follows: Equidistant Geometrically ascending from node 1 to 4 or 5: Mesh becomes coarser Geometrically descendig from node 1 to 4 or 5: Mesh becomes finer It is evident that in lines or surfaces, which have two super elements in common, the super elements must be divided in the exact same manner. The mesher does not check that and then generates senseless FE meshes. For example:
Wrong: Partition local y varying
Right: Partition local y equal
Figure 10.2-1: Correct and incorrect mesh subdivisions
Because the local directions x, y and z are determined by the position of the local nodes 1, 4 and 5, almost arbitrary numbering directions for the nodes and elements of the FE structure can be generated by a suitable building of the coincidence list in the mesher-input file Z88NI.TXT. In Figure 10.2-2 you can see an example for the generation of an FE structure with 8 FE plane stress elements no. 7 out of a super structure with 2 plane stress elements no. 7 (identical with axisymmetric elements no. 8).
10.2 The Mapped Mesher Z88N 327
10
12
9
25
27
24 FE 6 13
4
SE 2
7
11
3
23
26
22
FE 5
5 4
8
SE 1
6
3 2
1
5
2
1
8
FE 2 7
FE 1 6
33
37
30 FE 8
36
32
35
28 FE 7
34
31
29
16
21
12 FE 4
20
15
19
10 FE 3
18
14
17
13
11
9
coincidence 1. super element: 1-2-3-4-5-6-7-8 coincidence 2. super element: 4-3-9-10-7-11-12-13 Figure 10.2-2: Transformation of super elements into finite elements
Details: During the generation of new FE nodes, the mesher checks which nodes are already known. For that, it requires a catching radius (because one can never scan real figures on “exactly equal”). This catching radius is given for the 3 axes with a value of 0.01. With very small or very big numerical values, the snap radii must be possibly changed. Furthermore, for a super element i the mesher detects which other super elements are connected to SE i. For plane stress elements no. 7 and no. 11 or axisymmetric elements no. 8 and no. 12, this cannot be more than 8 other SEs. This maximum number of connecting SEs is given in Z88 as a MAXAN with normally 15. For hexahedron no. 10, theoretically 26 other elements can be connected (6 surfaces, 8 corners, 12 edges). The practice showed that even more complex spatial structures could manage with MAXAN = 15 up to now. In case of doubt, increase MAXAN in Z88.DYN. Attention mapped mesher Z88N: The generator can easily generate input files, which blast all limits of the FE processor. Hence, generate coarser FE structures first, check with Z88R Mode > test mode whether they fit in the memory, then refine if necessary. A good start value: generate approx. 5 … 10 times more finite elements than super elements. Note mesher Z88N: If the coordinate flag KFLAGSS is placed in the mesher input files Z88NI.TXT, hence, polar coordinates or cylinder coordinates are given as input values, then the mesher output files Z88I1.TXT are normally in Cartesian coordinates and then KFLAG is 0. However, if you place the coordinate flag output KFLAG to 1, then the coordinates are deported in the output file Z88I1.TXT in polar coordinates or cylinder coordinates and KFLAG in Z88I1. TXT is placed to 1.
328 10 Z88: The Modules
■■10.3 The
Advanced Mapped Mesher in Z88Aurora
The mesher Z88N from Z88 is integrated with advanced functionalities in Z88Aurora: Z88N for hexahedrons, axisymmetric elements, plane stress elements, plates and volume shells Z88MTV the tetrahedron refiner for tetrahedrons Z88MVS the shell thickener for 2D-shells It is called in the pre-processor menu via the icon
.
Menu Preprocessor Z88N mapped mesher
Figure 10.3-1: Menu “Preprocessor” with start icon “super elements” of the mesher Z88N
10.3.1 The Use of Z88N in Z88Aurora The mesher is controlled with the following mask; the scope of work is identical in both versions (Figure 10.3-2).
10.3 The Advanced Mapped Mesher in Z88Aurora 329
Figure 10.3-2: Mesher Z88N in Z88Aurora
10.3.2 Tetrahedron Refiner Z88MTV With this functionality, it is possible to refine existing tetrahedron meshes. With the picking module, a set with the tetrahedrons to be refined can be defined. The subdivision of every element takes place by 8 tetrahedrons.
330 10 Z88: The Modules
outgoing tetrahedron
with all median line
4 edge tetrahedrons
1 octahedron
2 rectangle pyramids
4 tetrahedrons
Figure 10.3-3: Execution of the tetrahedron refining (on the left), input mask tetrahedron refiner (on the right)
Afterwards, the adjoining elements are adjusted to the changed node number and are also subdivided. For this, a minimum element angle must be given to prevent a too strong distortion. Instead of the ideal internal angle of 60°, a default of the angle is realistic between 3 – 10° with a FE mesh.
step 1
step 2
step 3
step 4
Figure 10.3-4: Course of the refinement algorithm with angle criterion
10.4 The OpenGL Plot Program Z88O in Z88 V14 OS or the Post-Processor of Z88Aurora 331
10.3.3 The 2D Shell Thickener Z88MVS With this functionality, it is possible to make existing 2D shells thicker, e.g., from Nastran- or DXF import and thus receive volume 3D shells (element no. 21 and element no. 22). For further details to the application, see the user’s guide of Z88Aurora.
Figure 10.3-5: Shell thickener in Z88Aurora
■■10.4 The
OpenGL Plot Program Z88O in Z88 V14 OS or the Post-Processor of Z88Aurora
Illuminated structures with several light sources or hidden line structures can be plotted undeflected or deflected, and also color courses can be shown for stresses and X-, Y-and Z deflections. With node and element numbers, ranges can be given, which is very helpful for big structures. A plotter or printer output is not explicitly planned. Make a simple screenshot with Shift Print in the clipboard and edit or print them with Windows-specific program Paint or a paint program as for example Corel Paint etc. Z88O works with OpenGL. Hence, OpenGL has to be activated on your computer. With all newer versions of Windows, this is normally activated, and mostly a cheap graphics card is sufficient.
332 10 Z88: The Modules
Check though, for safety’s sake, in the system settings. OpenGL-hardware acceleration can be activated. If you have a NVIDIA graphics card, you should load and install with LINUX systems the hardware-sped up original NVIDIA driver from www.nvidia.com – the speed difference to the driver installed from the system is remarkable. The screen colors, light sources, material properties, the polygon offset and others can be adjusted in the file Z88O.OGL (Windows with Z88 V14 OS) or Z88.FCD (Windows, LINUX/UNIX and Mac OS X for Z88Aurora). However, be careful while changing Z88O.OGL or Z88.FCD: You will have to have a certain basic knowledge about the operation mode of OpenGL if you want to change lighting effects and so forth. Otherwise you will pull a long face because apparently nothing goes right anymore. Some tips are proposed in Z88O.OGL and Z88.FCD, but we cannot give an introduction to OpenGL here (see, e.g., Rieg /95/). Important changes can be made in Z88Aurora also about the option menu or the shown icons.
legend colors
part colors
lights
Figure 10.4-1: Option menu “Display” and the choice of the lights, legends and component color with the respective icons in Z88Aurora
To start the rendering: With Z88 V14 OS you start the real rendering with the button Run.
10.4 The OpenGL Plot Program Z88O in Z88 V14 OS or the Post-Processor of Z88Aurora 333
Table 10.4-1: Necessary files for the representation.
Necessary files: Z88NI.TXT Z88I1.TXT Z88I2.TXT
Super structures Yes No No
Z88I5.TXT
No
Z88O2.TXT Z88O5.TXT
No No
Z88O8.TXT
No
Undeflected FE structures
Deflected FE structures
No Yes Yes, if displaying the boundary conditions Yes, if displaying the surface loads No Yes, if displaying the equivalent stresses in the Gauss points Yes, if displaying of the equivalent stresses in the corner nodes or element average values
No Yes Yes, if displaying the boundary conditions Yes, if displaying the surface loads Yes No Yes, if displaying of the equivalent stresses in the corner nodes or element average values
Features of the rendering: To operate as quickly as possible, Z88O or the Z88Aurora postprocessor with illuminated scenes and in the hidden line mode merely connect the corner points, and these only with straight lines, although the edges of the elements of Serendipity elements are quadratic or cubic curves. In the wireframe mode, all nodes are connected with straight lines. The computational cost is tremendous, particularly with illuminated scenes and in the hidden line mode. While a component is quite quickly turned in your CAD system, e.g. Pro/ENGINEER, turning, zooming or moving the corresponding FE mesh in Z88O or the Z88Aurora post-processor works relatively slow. This is reasoned by the fact that CAD programs only draw a few shell curves, but FE programs have to render every finite element, i.e. calculate normal vectors for all element surfaces, determine color gradients etc. Hidden line representations are especially computation-bound. In Z88Aurora, the representation “Border/Solid view” can provide a remedy, which is in the navigator menu. Here, only the outer body edges are calculated and shown. However, this representation is not suitable for all functionalities. Also in Z88Aurora, the actual view can be “frozen” with “Quick view” (technically seen, saved in a display list), so that even gigantic structures can be rotated very quickly, moved or zoomed, as long as the geometry does not change. What can be displayed? Actually everything, if the solver Z88R has run before, which generates the deflection file Z88O2.TXT and the three stress files Z88O3.TXT (for you for reading out the stresses), Z88O5.TXT (for Z88O or the Z88Aurora post-processor internally) and Z88O8.TXT (for Z88O or the Z88Aurora post-processor internally). Now even with trusses “equivalent stresses”, the tensile stresses and compressive stresses can be displayed in color; just for beam no. 2 and no. 13 as well as for shafts no. 5, only the deflections can be displayed. Why? Because you must consider with beam and shafts, for example, the notch effect which naturally cannot be done by a FEA program with an overall structure. Of course, you can only model the area around the notch with an FE mesh and then compute with Z88. For that, however, you must take plane stress elements or volume elements. This is not possible with beams or trusses. Displaying the stresses: Indeed, the kind of displaying the stresses with FEA programs has a philosophical character. It is a fact that quite expensive, commercial FEA programs display stresses wrong in certain situations as extensive tests of the department of Engineering Design
334 10 Z88: The Modules
and CAD of the University of Bayreuth have proven. The stress display directly in the Gauss points is most exact. However, this is not rationally representable with OpenGL in all modes, hence, after many tests with real FE structures the lead author of this book has decided to use the following practice: 1. Equivalent stresses in the corner nodes. In reality, the stresses are just not calculated in the corner nodes, what leads to wrong results (sic!) particularly with very sharped elements, but in the Gauss points, which lie near the respective corner nodes. The stresses are calculated for as many Gauss points as there are corner nodes. Then these stresses are averaged over all elements connected to the respective node. Usually, several elements are connected to one node. This leads to a rather well balanced course of stresses which is, however, lower on average than the maximum stresses from the Gauss points. The settings concerning the integration order INTOS in the parameters file Z88INT.TXT, have no influence, but INTOS must be > 0. 2. Equivalent stresses averaged per element. The stresses are calculated in the Gauss points in the respective element, are added up and divided by the number of Gauss points. This yields to an average equivalent stress per element. Now the settings concerning the integration order INTOS in the parameters file Z88INT.TXT have no influence, INTOS must be > 0. 3. Equivalent stresses directly in the Gauss points. This representation is the most exact one, but is optically not as nice as 1. and 2. INTOS must be > 0. Z88O can display these equivalent stresses, but in each case only one, according to the previous calculation run with Z88R: Von Mises criterion, also known as the maximum distortion strain energy criterion Maximum normal stress criterion Tresca’s maximum shear stress criterion If you have calculated the von Mises reduced stresses with Z88R before, then Z88O or Z88Aurora displays them. If you want to display the, e.g., Tresca stresses now, you have to Quit Z88O at Z88 V14 OS, change the parameters file Z88MAN.TXT to Z88R and make Z88R run once again. Then you will see the Tresca stresses in a new Z88O session. Select the desired hypothesis in the solver menu at Z88Aurora, and start the solver once again. This seems to be complicated, but, nevertheless, you hopefully know before which hypothesis applies best of all to your component? Displaying the displacements: You can plot the structure in an undeflected or deflected way. The enlargement factor (standard is in each case 100 for X, Y and Z) is eligible. In addition, you can display the displacements for X, for Y or for Z with color gradient. This is very pleasant with complex spatial structures. You can also call the stress display (except for “Gauss point”) or the displacements for X, for Y or for Z or the hidden line representation or the wireframe representation with a deflected structure.
10.5 The DXF Converter Z88X 335
Table 10.4-2: Combination of the different modes in Z88O or in the Z88Aurora post-processor
Light Hidden Line Wireframe Stresses at corner nodes Stresses per element Stresses at Gauss points Displacements X Displacements Y Displacements Z
3D + + + + + + + + +
2D + – + + + + + + +
BC + + + – – – – – –
Undefl. + + + + + + + + +
Defl. + + + + + – + + +
Node – o + – – – – – –
Elem. – – + – – + – – –
The “coordinate system”: OpenGL works with a clipping volume, i.e. with a kind of cube, which is defined by Xmin and Xmax in horizontal direction, by Ymin and Ymax in vertical direction and Zmin (lies towards the viewer) and Zmax (points away from the viewer). If you now zoom into a solid too much or push it towards yourself, the area of Zmin is exceeded and parts of the structure are beyond the consideration range. You can use this very nicely to take a closer look into a structure, also, to see the stresses inside. If you do not want this, change the value of Zmin (default is −100) to smaller values, e.g., to −200: Menu View > Z limit to the viewer. For further information concerning the usage and the various possibilities of the post-processing, please consult the Z88Aurora user’s guide or the Z88 V14 OS manual.
■■10.5 The
DXF Converter Z88X
2D-CAD-Systems like AutoCAD offer an easy possibility to convey more complicated 2D or 2½Dstructures into Z88, also without a costly 3D-system. The layer-based construction of the DXF files is tailor-made for this. All CAD systems, which import and export DXF files, which can read and write, can work together with Z88X. Understandably, a guarantee cannot be provided here. Z88 has been tested in a team effort with different original AutoCAD and original AutoCAD LT versions, and the DXF directives of the firm AutoDesk have been followed as an initiator of the DXF interface, i.e. according to AC1009 to AC1024. AutoCAD R12 DXF as the smallest subset should be selected as an exchange format, but AutoCAD in 2011 DXF would also work. All element types are supported by Z88 and, actually, only the plane finite elements make sense for the application.
336 10 Z88: The Modules
You start the converter Z88X with Z88 V14 OS either “manually” or with the Z88 commander; in Z88Aurora, select the “Import” menu.
Figure 10.5-1: Calling the DXF converter Z88X and import possibilities in Z88Aurora
Which functions does the converter offer? Z88X > Conversion > from Z88X.DXF to Z88I1.TXT Z88X > Conversion > from Z88X.DXF to Z88I*.TXT Z88X > Conversion > from Z88X.DXF to Z88NI.TXT With Z88 V14 OS, you can also convert into the other direction, which is very interesting for existing Z88 data sets, for checks, for supplements of the FE structure, but also for plotting the FE structure via CAD programs: Z88X > Conversion > from Z88I1.TXT to Z88X.DXF Z88X > Conversion > from Z88I*.TXT to Z88X.DXF Z88X > Conversion > from Z88NI.TXT to Z88X.DXF The general philosophy of a CAD FEA data interchange: CAD files contain so-called undirected information. These are nothing else than aggregations of lines, points and texts, which are saved in the order of their production. A FEA system requires basically directed information, which cannot be delivered by a CAD system per se. The FEA system must know in a simplified way that these and those lines form a finite element and that these and those points belong to it. This can be made in principle if you designed in the CAD system in a concrete given order. Experiments showed that this is
10.5 The DXF Converter Z88X 337
also representable with very simple components. With more complicated components, however, which is exactly when you want to apply the FEA analysis, it is not practicable any more. These problems are already known for a long time and also appear with the data interchange CAD-NC. To get more or less a handle on this, there are the integrated CAD FEA systems, which are in the higher price range. A conceivable approach is to extend the CAD system, e.g., add-on modules or macros can generate more or less usable FEA data. This path is chosen very often. It has the disadvantage that it cannot be realized for arbitrary CAD programs or it can vary very much, but it is also version-dependent within the same manufacturer’s family. Another variant is not doing anything in the CAD system; however, the FEA system contains a type of mini CAD system to process the first absolutely unusable CAD data with sometimes strong support of the operator appropriately for FEA. The disadvantage is here that the operator must control two CAD systems and the integrated mini CAD system does not have the full capacity of the real CAD system. With Z88 the problems are solved as follows: In the CAD system: This is a first overview; please take the exact procedure together with two detailed examples from the respective manuals of Z88 V14 OS or Z88Aurora. 1. You design your component. Order and layer arbitrarily. 2. You determine the FE structure or the super structure by lines and points. Order and layer arbitrarily, hence, without any problems and fast. 3. On the layer Z88KNR you number the nodes with the TEXT function. Order arbitrarily, hence, without any problems and fast. 4. On the layer Z88EIO you write the element information with the TEXT function. Order arbitrarily, hence, without any problems and fast. 5. On the layer Z88NET you “outline” the single elements with the LINE function. This is the only section with concrete working sequence (because of the directed information). 6. On the layer Z88GEN you write the general information. 7. On the layer Z88RBD you define the boundary conditions. 8. On the layer Z88FLA you define the distributed loads and surface loads, if available. 9. Export (Save) your drawing as a DXF file. In Z88: In Z88 V14 OS, you start the CAD converter Z88X “manually” or with the Z88 commander; in Z88Aurora you select in the menu File > Import > AutoCAD DXF files. In the button bar or in the selecting menu you can choose which of the following files should be created:
338 10 Z88: The Modules
A file of the general structure data Z88I1.TXT A Z88Aurora V2 data set (without material and element parameter information) with Z88I1.TXT, Z88I2.TXT, if necessary Z88I5.TXT A Z88I1.TXT from a super structure, which can be meshed manually in Z88Aurora Only in Z88Aurora: a Z88I1.TXT from a super structure, which is meshed with the information contained in the DXF file (for that, the directed mesher Z88N will be started immediately) The same functionalities come up if you call the Z88 import via the tool bar. We consider as an example a pipe under internal pressure of 1,000 bar = 100 N/mm2. The pipe inside diameter is 80 mm, the pipe external diameter is 160 mm, and the length is 40 mm. If one defines the boundary conditions cleverly, a quarter arc is enough to describe the problem. The internal pressure 1,000 bar corresponds to a force of 251,327 N, which has an effect on the internal quarter circle. Then the distributed load is: q =
F F 251,327 = = = 4,000 N/ mm ℓ r·ϕ 40 · π/2
The action is shown with AutoCAD, here version 2011. (The detailed version of this example you will find in the Z88 manuals): 1st step: Design your component as usual in the CAD system. You do not need to keep a certain order, and you can use arbitrary layers. In this example you will enter the essential dimensions by the command line. Please follow the AutoCAD input possibilities for figures: Absolute Cartesian coordinates: Relative Cartesian coordinates: Absolute polar coordinates: Relative polar coordinates:
X, Y @DeltaX, DeltaY radius < angle @radius < angle
Figure 10.5-2: 1st step: Designing the component
10.5 The DXF Converter Z88X 339
2nd step: Plan the mesh partitioning, thus suitable finite element types and their distribution, divide the FE structure by lines into elements, place all nodes which do not exist yet (e.g., intersection or endpoints of lines are usable just like that). Order and layer are arbitrary. However, better do not use the layer Z88NET, Z88GEN, Z88PKT, Z88KNR, Z88EIO, Z88FLA and Z88RBD.
Figure 10.5-3: 2nd step: Planning the mesh partitioning
Please make sure to place visible points. You can influence this with the AutoCAD command DDPTYPE. So that one sees the essentials better, not required auxiliary lines and other auxiliary construction could be deleted afterwards:
Figure 10.5-4: Cleaning the draft
3rd step: Set up the Z88 layer Z88KNR and go on that layer. Catch every FE node, which you have already complemented in the 1st step by your construction itself or in the 2nd step and number the nodes. Write to every node P, a blank character and its node number with the TEXT function of the CAD program, e.g., P 33. Please be careful that the insertion point of the number,
340 10 Z88: The Modules
therefore of the text, is placed exactly on the node. With the catch modes, e.g., from AutoCAD (catch intersection, endpoint etc.), this is trouble-free. The order of the working sequence is done arbitrarily.
Figure 10.5-5: 3rd step: Adding the node numbers
4th step: Set the layer Z88EIO and go on that layer. Write down the element information with the text function somewhere (of course better near or in the middle of the respective finite element or super element). The order of the working sequence is done arbitrarily. FE
Element number Element type
Figure 10.5-6: 4th step: Adding the element information
5th Step: Set up the layer Z88NET and go on to that layer. For this step, you need to concentrate, because a solid and rigid working sequence must be maintained here because of the directed information. In this step, a very important information, the coincidence, is inserted, meaning which element is defined by which nodes. Select a color for lines, which contrasts well with the colors used up to now and hide all needless information. Select the LINIE command (line command) and adjust it to the snap modes points, intersections and endpoints if necessary.
10.5 The DXF Converter Z88X 341
Begin with the first element. The first element for Z88 is the element with which you begin now, so which you have selected as the first element. Click on the node, which should be the first node of the element and draw a line to the node, which should be the second node of the element. Draw further on the node, which should be the third node of the element. Pass all necessary nodes to the starting point, meaning the first node; then cancel the line function. Which node to begin with? Never mind, but how about the node, which is located closest to the coordinate system? Then go counter-clockwise. We could draw the line as follows: P1-P2-P3-P7-P11-P10-P9-P6-P1, quit the line. But completely legitimate would also be P9-P6-P1-P2-P3-P7-P11-P10-P9 or P3-P7-P11-P10-P9-P6-P1-P2-P3 or P11-P10-P9-P6-P1-P2-P3-P7-P11. You do the same with the second element. Remember: With this order, you define which of the elements is now the real second element. In the previous 4th step, you have merely defined which element type the, e.g., second element is. Here you can specify how the element is defined topologically. We could draw the line as follows: P3-P4-P5-P8-P13-P12-P11-P7-P3, quit the line. The whole thing works much easier, more comfortable and faster than one can describe it here: For these 8 elements, you need less than two minutes.
Figure 10.5-7: 5th step: Outlining the elements
6th step: Set up the layer Z88GEN and activate it. Write the general information, meaning the first input group of the general structure data Z88I1.TXT, with the TEXT function on a free spot (i.e. on any spot in your drawing): Z88I1.TXT Dimension of the structure Number of nodes Number of finite elements Number of degrees of freedom
342 10 Z88: The Modules
Coordinate flag (0 or 1) In our case: Z88I1.TXT 2 37 8 74 0
Figure 10.5-8: 6th step: Adding the general information
Here, you would be able to quit: You could save everything as a DXF file and then load in Z88Aurora as a type Z88I1.TXT. Then you could interactively apply the boundary conditions and distributed loads in Aurora. But here, we continue: 7th step: Set up the layer Z88RBD and activate it. Write the number of the boundary conditions, meaning the first input group of the file of the boundary conditions Z88I2.TXT, with the TEXT function on a free spot (i.e. on any spot of your drawing): Z88I2.TXT
Number of the boundary conditions
In our case, we will add a total of 10 boundary conditions to the structure, namely fixing the nodes 1 ~ 5 in Y direction and fixing the nodes 33 ~ 37 in X direction. Now, we will add the boundary conditions, meaning the second input group of the boundary condition file Z88I2.TXT: RBD Number of the boundary condition Node number Degree of freedom Control flag force / displacement (1 or 2) Value
10.5 The DXF Converter Z88X 343
Figure 10.5-9: 7th step: Adding the boundary conditions
8th step: Because of existing distributed loads: Set up the layer Z88FLA and activate it. Write the number of distributed loads and surface loads, meaning the first input group of the file of the distributed loads and surface loads Z88I5.TXT, with the TEXT function on a free spot (i.e. on any spot of your drawing): Z88I5.TXT
Number of the distributed loads and surface loads
We want to load the edges of the elements 1, 3, 5 and 7 in each case with a line load. So: Z88I5.TXT 4 The following is depending on the element type. Here we use plane stress element No. 7, hence, the second input group looks as follows: FLA Number of the surface load Element number with distributed load Pressure, showing positively on the edge Tangential shear, positively in local r direction 3 nodes of the loaded edge
Figure 10.5-10: 8th step: Adding the surface loads
344 10 Z88: The Modules
9th step: Save your drawing in DXF format. Select AutoCAD R12 DXF as the smallest subset as the exchange format, but AutoCAD in 2011 DXF works as well. For the accuracy concerning decimal places take the default, which is suggested by the CAD program. Afterwards you can load the file into Z88Aurora, namely as a type „... to Z88I*.TXT“. Then with it, Z88X generates the Z88 input files Z88I1.TXT (general structure data), Z88I2.TXT (boundary conditions) and Z88I5.TXT (distributed loads and surface loads). In Aurora, you would additionally define material, element thickness and integration orders.
■■10.6 The
3D Converter Z88G
3D CAD programs contain so-called automeshers which can disassemble the 3D geometry in finite elements. The thereby generated mesh can then be saved in an eligible format, suitable for various FEA programs. Two of those FE formats are the NASTRAN and the COSMOS format for the FEA systems with the same names. Z88G is developed and tested for Pro/ENGINEER by Parametric Technology Corporation, USA. Pro/ENGINEER must contain the Pro/MECHANICA option (add-on module). Then you can activate the menu point FEM after the generation of your 3D model, define a coordinate system (which must harmonize with Z88!) and add forces and displacements. Forces and displacements can be applied to single points which have to be defined as reference points beforehand. If plates are used, it will be possible to apply pressure loads, too. Do not forget to define an analysis from Pro/ENGINEER Wildfire 2, otherwise no boundary conditions will be committed. Change the mesh controlling values if necessary. Let the mesh generate with Make Model, for that the element model is to be selected, e.g., Tet Mesh. Then, put it out with the Output Model, select NASTRAN or COSMOS/M and, in addition, linear or parabolic (for that the option fix elements is not bad). If the file name is required, enter z88g.nas for NASTRAN files or z88g.cos for COSMOS files. Then start the converter Z88G. Select the file type and chose the element type to be generated. Both must of course correlate with what you have planned before in Pro/ENGINEER. The background, particularly of the choice of the element type, consists in the fact that Pro/ENGINEER copies out the type shell, even if it actually concerns plane stress elements, axisymmetric elements or plates. Then Z88G automatically generates the input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT. You define the material laws in the Z88MAT.TXT files with the accompanying material file and if necessary element parameters like the plane stress element thickness in Z88ELP.TXT, although material data is already stored in NASTRAN or COSMOS files (however, partially wrong!). You contribute the integration orders in Z88INT.TXT. In Z88Aurora the converters are called via the menu “Import”.
10.6 The 3D Converter Z88G 345
Figure 10.6-1: Calling the 3D converter Z88G and import possibilities in Z88Aurora
The boundary conditions are automatically transferred. However, you define the material data after the import in Z88Aurora (even if this information is already included partially in these input decks), so that a universal use of Aurora’s own material database can take place. Thus, a good data consistency is guaranteed in Z88Aurora V2 projects. You should plot the generated files with Z88O or examine them with Z88Aurora before running a calculation. If you find out that, e.g., a 3D model is absolutely flat, then you defined a coordinate system CS0 in Pro/ENGINEER, which does not fit to Z88. Then, you only need to determine a new coordinate system in Pro/ENGINEER, which will be included as a reference on the model output. If you have some problems with those file conversions, please note that these FEA formats like the NASTRAN format and their outputs from programs like Pro/ENGINEER change almost quarterly. Check, if necessary, on our website www.z88.de whether there are newer versions of Z88G.
346 10 Z88: The Modules
These Z88 models can be generated: Tetrahedron No. 16
(Tetrahedron, parabolic in Pro/ENGINEER)
Tetrahedron No. 17
(Tetrahedron, linear in Pro/ENGINEER)
Plane stress No. 14
(Shell, triangle, parabolic in Pro/ENGINEER)
Plane stress No. 7
(Shell, quadrangle, parabolic in Pro/ENGINEER)
Plate No. 18
(Shell, triangle, parabolic in Pro/ENGINEER)
Plate No. 20
(Shell, quadrangle, parabolic in Pro/ENGINEER)
Torus No. 15
(Shell, triangle, parabolic in Pro/ENGINEER)
Torus No. 8
(Shell, quadrangle, parabolic in Pro/ENGINEER)
Shells No. 23
(Shell, quadrangle, parabolic in Pro/ENGINEER)
Shells No. 24
(Shell, triangle, parabolic in Pro/ENGINEER)
Please note that the converter can also take over loads directly from Pro/ENGINEER only with NASTRAN files; in addition, the file Z88I5.TXT is then generated for distributed loads and surface loads. This is not planned for COSMOS files. There, pressures must be defined over single nodal forces. How to proceed? Make a selection on either a NASTRAN or a COSMOS file: If you select NASTRAN, the file Z88G.NAS is loaded or if you select COSMOS, the file Z88G.COS is loaded. You need to know, which file you have generated before. In the next step, you have to define whether volume elements, plane stress elements, plates, shells or axisymmetric elements should be generated. This is due to the fact that Pro/ENGINEER only knows the FE models shell or volume. Here, you must also add the convenient file type, i.e. what you have already prepared in Pro/ENGINEER. Generating volume bodies is easy. It becomes more exciting with shells, plates and axisymmetric elements: first you generate a volume body with a low thickness in Pro/E. Rely particularly on reference points for supports at axisymmetric elements. Then, switch to Pro/MECHANICA and select in Model > Idealisations > Shells > Midsurfaces. With this, the depth extention disappears. With axisymmetric elements, please pay attention that you operate notionally in cylinder coordinates: Your coordinate system lies on the axis of rotation and the “volume” on the suitable radii (cf. Figure 10.6-2).
10.7 The Ansys Converter Z88ASY in Z88Aurora 347
Figure 10.6-2: This is how you generate axisymmetric elements in Pro/ENGINEER (here Wildfire). With plates and shells you proceed analogously.
■■10.7 The
Ansys Converter Z88ASY in Z88Aurora
Besides NASTRAN and COSMOS, Pro/ENGINEER also supports exporting simulation data as an ANSYS file (*.ans). This data can be transmitted to ANSYS, as well as to Z88Aurora. However, it is to be noted that this data format can also be changed by the manufacturer arbitrarily, what can result in compatibility problems under certain circumstances.
348 10 Z88: The Modules
Linear mechanical
Figure 10.7-1: Calling the ANSYS converter Z88ANS
Only one body can be converted. This body must be designed out of one element type. PLEASE NOTE: You need to define the material data after the import into Z88Aurora (even if this information is already included partially in these input decks), so that a universal use of Aurora’s own material data base can take place. Only then, a clean data consistency is ensured in Z88Aurora V2 projects. Which ANSYS data can be imported by Z88Aurora? ANSYS data can have very different structures and contents according to their origin, which is why exact statements to the compatibility cannot be made. In particular, integrated scripts can result in problems. The present converter was developed and tested for Pro/ENGINEER Wildfire 4. Data, which was created with the ANSYS Workbench, cannot be read in. Which elements does the converter support? Tetrahedron No. 16
(Tetrahedron, parabolic in Pro/ENGINEER)
Tetrahedron No. 17
(Tetrahedron, linear in Pro/ENGINEER)
Plane stress element No. 14
(Shell, triangle, parabolic in Pro/ENGINEER)
Plane stress element No. 7
(Shell, quadrangle, parabolic in Pro/ENGINEER)
Plate No. 18 (Shell, triangle, parabolic in Pro/ENGINEER) Plate No. 20 (Shell, quadrangle, parabolic in Pro/ENGINEER) Torus No. 15 (Shell, triangle, parabolic in Pro/ENGINEER) Torus No. 8 (Shell, quadrangle, parabolic in Pro/ENGINEER) Shells No. 23 (Shell, quadrangle, parabolic in Pro/ENGINEER) Shells No. 24 (Shell, triangle, parabolic in Pro/ENGINEER) Select the file type to be read in before the start. In the next step, you must define whether volume elements, plane stress elements, plates, shells or axisymmetric elements should be generated. This is due to the fact that Pro/
10.8 The Abaqus Converter Z88INP in Z88Aurora 349
ENGINEER only knows the FE types shell or volume. Again, you need to specify the convenient, i.e. what you have already prepared in Pro/ENGINEER. What is the procedure? 1. Design your model according to the instructions for the NASTRAN converter Z88G (see previous chapter). 2. Please mind to select the ANSYS format at the output of the simulation data. 3. Import the simulation model in Z88Aurora (see Figure 10.7-1). For that, select from File > Import > ANSYS file.
■■10.8 The
Z88Aurora
Abaqus Converter Z88INP
in
Meanwhile, ABAQUS is a simulation tool widely distributed in the industrial sphere, which offers a great scope of work as well as easy handling. Due to the high functional range, the following restrictions were made with the functions of the converter: One body (1 instance) can be converted. The part must be built-up from one element type. Arbitrary Cartesian fixings, forces (Concentrated Force) and pressures can be applied. Material data does not need to be defined. PLEASE NOTE: You comfortably define the material data in Z88Aurora after the import (even if this information is already included partially in these input decks), so that a universal use of Aurora’s own material database can take place. Only then, a clean data consistency is ensured in Z88Aurora V2 projects. Which ABAQUS versions can cooperate with Z88Aurora? The present converter was tested with ABAQUS 6.8.4, so that the full functional range is available here. Since the ABAQUS format is proprietary, changes may occur, which affect the functionality of the converter. Older versions of ABAQUS, e.g., 6.6 or 6.7 also do not apply version information in the files. Hence, a version-dependent conversion is complicated. Which element types does the converter support? You can use all tetrahedrons and hexahedrons from ABAQUS, however, since no acoustic simulations or thermo simulations are exchanged between ABAQUS and Z88Aurora in the normal case, the following element changes can normally appear: Conversion > from C3D4 to element type 17 and vice versa Conversion > from C3D10 to element type 16 and vice versa Conversion > from C3D8 to element type 1 Conversion > from C3D20 to element type 10
350 10 Z88: The Modules
Which functions does the converter offer? Generation > of Z88STRUCTURE.TXT from an ABAQUS input file. How to proceed? You can use files from ABAQUS CAE, as well as self-created input decks. Please search the suitable keywords in the ABAQUS documentation and pay attention to the rules of capitalization. ABAQUS scripts cannot be processed. For the import of an ABAQUS file, proceed as described in the following: 1. Import and mesh the component in ABAQUS: The ABAQUS converter processes only one component at a time, which you can import in random manner in ABAQUS-CAE and insert into an assembly. At this, it is up to you whether you select Mesh on Part or Mesh on Instance. Create a material with elastic, isotropic properties and define a Section with this material. Assign your component to this Section. Assign either Hex or Tet as meshing properties and generate a mesh that is suitable for your demands. Remark: Advanced settings of the mesh control and element selection are not taken over due to any suitable equivalents in Z88Aurora. If you have selected hybrid formulation or even an element for acoustic calculation, this is changed with the import into Z88Aurora to a pure Z88 model. Remarks: Z88INP processes all loads, which are given in the ABAQUS file. If you have defined several simulation steps in your CAE, note that if you want to export only one calculation step, it would be the best to create a new model by creating a copy in which all is deleted except the desired simulation step. If you do not use ABAQUS combined with TOSCA, you must comment out the option nopartscae in your environment file, because this option strongly changes the input file. With this option, only the node and element data can be translated. 2. Write the input deck as a *.inp file. 3. Select File > Import > ABAQUS files in Z88Aurora in the menu. In the following selection dialog, you can only automatically select inp files. Select the desired file. 4. The converted structure is displayed and you can create constraints and loads of Z88Aurora to be shown. You should use the mesh check of Aurora to check the quality of the mesh.
■■10.9 Das
Cuthill-McKee Program Z88H
The choice of the node numbering is extremely important for the structure of the global stiffness matrix, and unfavorable node numberings can strongly raise the memory need unnecessarily. Z88H can reduce the memory need for the direct Cholesky solver Z88R -choly noticeably. With the sparse matrix solver Z88R -siccg or -sorcg or -parao, the improvements are much smaller, because the sparse matrix solver is a priori very favorable by its non-zero elements storage.
10.9 Das Cuthill-McKee Program Z88H 351
Basically, it is to be aimed that the so-called node number difference per element becomes very small, i.e. the node numbers in a finite element should be about the same size. This cannot be completely avoided because with, e.g. ring-shaped structures, if one starts to number with 0° and then runs clockwise, at the “overlap places”, if one approaches 360°, elements with big node number differences necessarily appear. 3D CAD programs contain so-called automeshers, which can disassemble the 3D-model in finite elements. The generated mesh can then be saved in an eligible format suitable for various FEA programs. However, many of these automeshers generate meshes with extremely high node number differences. Thus the Pro/ENGINEER module Pro/MECHANICA internally generates at the requirement parabolic tetrahedron meshes tetrahedrons with linear approach (instead of 10 only 4 nodes) with straight element sides. Then middle nodes are simply put on the element sides to generate elements with 10 nodes. These middle nodes have necessarily high node numbers, and because the corner nodes were there first, now every finite element has corner nodes with relatively low node numbers, but middle nodes have corner nodes with relatively high node numbers. It is the same with shells triangles parabolic. Hence, in such meshes, which were generated with the automesher Pro/MECHANICA, every finite element has high node number differences. For big structures, these meshes must be renumbered in a suitable manner, so that finite elements with small node number differences originate. Here, different approaches have become known in the literature. A good compromise is the so-called Cuthill-McKee algorithm that starts out from graph-theoretical considerations. A variation is the RCMK algorithm (reverse CuthillMcKee algorithm). For more in-depth explanations we refer to Schwarz /6/. The C program Z88H is based on a FORTRAN 77 program of H.R. Schwarz, which was altered for the use with Z88. The computing kernel of H.R. Schwarz internally decides whether the normal or the reverse Cuthill-McKee algorithm is used. The Cuthill-McKee algorithm Z88H is actually intended for FE meshes, which were generated with the COSMOS converter Z88G. But it can basically be used for all Z88 meshes. It reads the Z88 input files Z88I1.TXT (general structure data), Z88I2.TXT (boundary conditions) and Z88I5.TXT (surface loads), creates backup copies Z88I1.OLD, Z88I2.OLD and Z88I5.OLD of it and then calculates modified input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT. Experiments have shown that, among others, the numberings can be further improved in Z88I1.TXT and Z88I2.TXT after the first run of Z88H by the second run of Z88H. The third run of Z88H seems to make the result slightly worse again. In extreme cases, the Cuthill-McKee algorithm, so Z88H, also generates contra productive results, i.e. clearly worse numbering than the numbering which the origin structure had. Here you will have to try, because the CuthillMcKee algorithm does not always generate optimum results. And this is how you go straight forward with Z88 V14 OS: Create a FE mesh. Adjust Z88.DYN: The value of MAXKOI, besides MAXK, MAXE and MAXNFG is very important here. Start Z88R in the test mode with a solver model of your choice and read out the number for GS. Start Z88H. Repeat step 3 and check whether GS has become smaller. Repeat this step if necessary.
352 10 Z88: The Modules
Insert the value of GS in Z88.DYN as MAXGS and start Z88R in the calculation mode with the solver model of your choice (but the same which you have used in the test mode!). For Z88Aurora, the use of the Cuthill-McKee algorithm is not planned.
■■10.10 The
STEP Import Z88GEOCON (STEP) in Z88Aurora
The present STEP converter is based on the input and output routines of the Open Source 3Dsuite OpenCASCADE. Hence, the suitable sources (stepread.cpp and geocon.cpp) as well as a copy of the GPL licence Z88Aurora are enclosed. Most 3D-CAD systems have the possibility to supply the created models after the international standard DIN ISO 10303 (STEP: Standard for the Exchange of Product model data). At that, the application protocols AP203 and AP214 are mostly used. Within these files, the 3D geometry is described in highly exact form as text files. The fact that STEP could broadcast according to the definition even more (annotations, parameters, materials and a lot more) is only taken into account by a few CAD manufacturers at the moment. However, the geometry can mostly become commonly used in FE programs if some points are considered: Every STEP converter of a CAD program is only as good as the graphic kernel used. If the representation in the CAD contains mistakes, these mistakes are co-exported and hinder the subsequent treatment under special circumstances. These mistakes partly originate from the kernel, however, partly also by the export of overloaded models. Use a very high modelling accuracy (geometrical tolerance, e.g., < 0.01) in the CAD system; and if you have the possibility to specify a tolerance once again at the export, then estimate it higher than the modelling tolerance (e.g., = 0.01). Make sure that you use AP203 or AP214 at the export. If some problems appear at the import, consider whether your model can be simplified before the export. Small curvatures or chamfers are often the triggers for mini edges and surfaces that hinder the subsequent usage. If these are not absolutely necessary for the FE simulation, they can be inhibited and excluded from the export. Which CAD systems can cooperate with Z88GEOCON? All CAD systems can export STEP files. Any guarantee cannot be provided here. Which element types does the converter support? From the imported STEP data, Z88Aurora first creates an STL file for the visualization. This can be conveyed by the means of the available mesher into structures of the elements No. 16 or No. 17 (linear or quadratic tetrahedrons).
10.10 The STEP Import Z88GEOCON (STEP) in Z88Aurora 353
Which functions does the converter offer? Z88Geocon > conversion > from *.step or *.stp to visualized structure file Z88STRUCTURE.TXT How to proceed? 1. Design the 3D geometry in your CAD system. Pay attention to the above mentioned characteristics as far as possible. Export the geometry as a STEP AP203 or AP214 file. Please be mindful to the fact that you export a volume model and not a surface or wire frame model! It recommends checking the initial model and the exchange file with an integrated geometry check for surface errors and mini surfaces. 2. In Z88Aurora select in the menu file > import > STEP data. In the following selection dialog, you can only choose STEP data automatically. Select the desired file (Figure 10.10-1). 3. Z88Geocon creates a STL file from your file, which is required for the visualization in Z88Aurora. Now this representation can be meshed and further treated. The same functionalities will come up if you call the STEP import via the tool bar.
Figure 10.10-1: Reading STEP data
354 10 Z88: The Modules
■■10.11 The
STL Converter Z88GEOCON (STL) in Z88Aurora
Just as STEP, STL (stereo lithography) is a current and standardized exchange format that can be generated from a lot of CAD and also from CAM systems and is used for Rapid Prototyping and casting simulations. In addition, there are also systems in the area of reverse engineering, which can generate STL data from a 3D capture. Therefore, components can also be simulated without a CAD model. In contrast to STEP, which can describe the surface of the component very exactly by means of Bézier curves or splines, a STL is always a discretization of the component, i.e. all surfaces are divided into straightly bounded triangles. Thus, it results in a loss of accuracy, of course, especially at curvatures or drillings. However, you will receive that anyway, at the latest after meshing in the FEA system. You should consider that a poorly generated STL only leads to even worse quality when meshed. Hence, you should check the following settings while generating the STL data, if your source system offers these possibilities: 1. Angle control: If you can adjust the minimum angle in a face triangle in your CAD system, it is obvious that you should only allow angles with minimally 30°. Very sharp angles lead, depending on the mesher, mostly to errors during the meshing process, what leads necessarily either to elements, which cannot be calculated (too small or negative Jacobi determinant) or poor results. 2. Edge length: A very small edge length also leads to very equilateral and small triangles for the surface representation. You should orientate yourself towards the shortest straight edge of your model and mesh with e.g. half of this value. 3. Edge length ratio: The quotient of the longest and the shortest edge of a triangle is also a measure of its regularity. Here a value near 1 should be selected. Which CAD systems can cooperate with Z88GEOCON? All CAx systems, which can export STL files in the ASCII format or binary format. Any guarantee cannot be provided here. Which element types does the converter support? From the imported STL data, Z88Aurora creates a visualization first. This can be conveyed by means of the available mesher into structures of elements No. 16 or No. 17 (linear or quadratic tetrahedrons). How to proceed? 1. Design the 3D geometry in your CAD system. Please be mindful of the characteristics mentioned above as far as possible. Export the geometry as a STL file. It recommends checking the initial model and the exchange file with an integrated geometry check for surface mistakes and mini surfaces. Have a look at the STL data, and search more precisely for triangles with very sharp angles. If they are in an area, which is important for the calculation of the part, it is advisable to export the exchange file once again with changed settings.
10.12 The Tetrahedron Mesher in Z88Aurora 355
2. In Z88Aurora, select File > import > STL files in the menu. In the following selection dialog, you can only automatically select STL files. Select the desired file (Figure 10.11-1). 3. The geometry is visualized in Z88Aurora and can be processed. The same functionalities come up if you call the STL import about the tool bar.
Figure 10.11-1: Reading STL files
■■10.12 The
Tetrahedron Mesher Z88Aurora
in
After the import of a geometry structure via *.STP or *.STL, the structure can be meshed with tetrahedrons. There are two Open Source meshers available for tetrahedrons with 4 or 10 nodes. Influence on the meshing is possible by the designation of the maximum edge length.
356 10 Z88: The Modules
Figure 10.12-1: Tetrahedron mesher menu in Z88Aurora
“Tetgen” was developed by Dr. Hang Si of the research group “numerical mathematics and scientific calculation” of the Weierstrass Institute of Applied Analysis and Stochastics in Berlin. “Netgen” was primarily developed by Prof. Joachim Schöberl (Institute for Analysis and Scientific Computing at the University of Technology of Vienna, research group Computational Mathematics in Engineering).
■■10.13 The
Picking Module
of Z88Aurora
Boundary conditions, material definitions, surface loads – all these properties of a FE analysis, which are controlled in the Open Source version via the input files Z88I1.TXT to Z88I5.TXT, are interrelated in Z88Aurora with the set management. In the course of the pre-processing, properties can be interactively assigned to sets by the user in a graphic interface. In principle, the action is always the same: After the successful mesh generation, node or element groups can be selected in the appropriate picking menu simply with the mouse and be managed.
10.13 The Picking Module of Z88Aurora 357
Picking
node picking
element picking
surface picking
Figure 10.13-1: Different picking menus: node picking (on the left), element picking (middle) and surface picking (on the right)
Afterwards one creates sets from these selections by means of Boolean operations.
Figure 10.13-2: Set creation
358 10 Z88: The Modules
■■10.14 The
Material Data Base
of Z88Aurora
The Z88Aurora material database with 50 common engineering materials (unit N/mm2) is called via the pre-processor menu. If the required material is not enclosed, there is the possibility to define new materials in the database. Via the set management, several materials can be assigned to the elements of a component if required.
Figure 10.14-1: Material data base in Z88Aurora
■■10.15 Applying
Boundary Conditions Z88Aurora
in
Z88Aurora offers the possibility to define all boundary conditions within the pre-processor. Meshed structures can be computed either with the existing boundary conditions in Z88Aurora or the following demands can be made: Displacement Pressure Uniformly distributed force
10.16 The User Support with Spider in Z88Aurora 359
Surface load Projected surface load Line load Projected line load
■■10.16 The
User Support with Spider in Z88Aurora
To clearly form the huge number of the set possibilities and functionalities for users, the FEA workflow is displayed with the support tool SPIDER. At that, two levels of the user support are eligible, the workflow scheme or additional video sequences, decisive matrices and explanations to specific subjects.
Figure 10.16-1: Workflow support Spider in Z88Aurora
360 10 Z88: The Modules
■■10.17 The
Thermomechanical Solver in Z88Aurora
In the new solver Z88THERMO of Z88Aurora, a thermal conductivity analysis as well as a thermomechanical simulation can be carried out. The first step is to select the module. Therefore, the menu bar for the simulation task is switched from “Linear mechanical” to “Steady-state thermal”. (see Figure10.17-1). Linear mechanical
Steady-state thermal!
Figure 10.17-1: Triggering the module Z88THERMO
The first small difference to the elastostatics is the import of components. In general, it is possible to load a pure geometry structure by the known interfaces. However, with FE structures, only tetrahedrons and hexahedrons (in each case linear or quadratic) can be imported without thermal boundary conditions. In addition, for the material data base, the thermal conductivity must be given for the thermal analysis and the thermal expansion for the thermo-mechanical simulation. Figure 10.17-2 shows exemplarily a material, which is already available in the material database where these material properties are already predefined.
Figure 10.17-2: Thermal material definition
In the boundary condition menu, there is an extension (Figure 10.17-3) for the thermal boundary conditions (temperature, heat flow and heat flux), which are marked by the icon . After defining predefined sets, these boundary conditions can be assigned where only the declaration
10.17 The Thermomechanical Solver in Z88Aurora 361
of the directions is not necessary, because the thermal boundary conditions only have one degree of freedom in space.
Figure 10.17-3: Thermal boundary conditions
The user can apply the temperature either in Kelvin ( K ) or in ° Celsius (°C). For the calculation results this makes no difference. The heat flux is a surface-related load, i.e. it indicates the heat flow per surface (unit W/mm2). The heat flux (unit W), a nodal load, can be applied either uniformly loaded or distributed. Uniformly loaded means, that the same value is assigned to every node, whereas distributed means the distribution according to FE rules. If you like to carry out a thermomechanical simulation, you must only declare new sets with additional mechanical boundary conditions (e.g., pinned). Then the solver automatically recognizes that the user would like to carry out such a simulation. As solver type, a selection can be made between the three known equation solvers (see Figure 10.17-4) PARDISO (directly and multicore able), SICCG and SORCG (iterative). The Cholesky solver is omitted here.
362 10 Z88: The Modules
Steady-state thermal!
Figure 10.17-4: Solver settings Z88THERMO
In the post-processor, the display options are extended by the thermal results which are temperature and heat flow as well as by the thermomechanical results which are thermal strain and thermal force. Furthermore, for a thermal or thermomechanical calculation, there are, as usual, the input and output data in the form of .txt files. Input files: Z88I1.TXT general structure data Z88I2.TXT mechanical boundary conditions Z88I5.TXT mechanical distributed loads and surface loads, if available, otherwise 0 in the first line Z88TI2.TXT thermal boundary conditions (temperature, heat flow) Z88TI5.TXT thermal surface loads (heat flux), if available, otherwise 0 in the first line Z88MAT.TXT material data and one or several material files TXT Z88INT.TXT Integration order Z88MAN_TH.TXT Solver parameter for Z88THERMO Output files: Z88TH.LOG File for messages, warnings and mistakes of Z88THERMO
10.18 The free Vibration Solver in Z88Aurora 363
Z88AG2THI.LOG File for messages, warnings and mistakes in the converter of Z88Aurora to Z88THERMO Z88TH.DYN used memory parameters (automatically ascertained) Z88TO0.TXT Result temperature Z88TO1.TXT Result heat flow Z88TO2.TXT Result thermal strain Z88TO3.TXT Result thermal forces Z88TO4.TXT Result displacements Z88TO6.TXT Result forces Z88TO7.TXT Result stresses You can recognize fast, that the structure file and the mechanical boundary conditions are identical to those of the elastostatic mode. In the thermal solver file Z88MAN_TH.TXT, there are from that point of view two new flags in addition to the settings for the iterative solvers and the number of calculation cores for the direct solver. The first flag THERMO MODE must always be 1. The second flag THERMOMECHANIC must be (0) for a thermal simulation and for (1) a thermomechanical simulation. TMSOLVER START
MAXIT 10000
EPS 1.000000E-006
RALPHA 1.000000E-004
ROMEGA 1.200000E+000
ICORE 4
THERMOMODE 1
THERMOMECHANIC 1
TMSOLVER END
■■10.18 The
free Vibration Solver Z88Aurora
in
This module offers the possibility to examine components concerning their natural frequencies as well as the oscillation forms caused from it. Accelerating and damping nodal forces, which are caused by dimension inertia or reset forces from stiffness properties, balance each other out with this frequency. As with the linear equation solver Z88R, declarations to the Young’s modulus and the Poisson’s ratio become necessary. In addition, the mass density is also required for the mass calculation. All material declarations should be stored in the material database. Figure 10.18-1 shows the selection of the free vibration module. The analysis is possible for tetrahedrons and hexahedrons with linear and quadratic approach (element types: 1, 10, 16, and 17).
364 10 Z88: The Modules
Linear mechanical
Free vibration!
Figure 10.18-1: Selection of the module Z88EI
Be careful with the boundary conditions. While fixing boundary conditions (displacement = 0) can be applied as usual on any node sets, also in single degrees of freedom, forces, pressures as well as inhomogeneous displacements are ignored. The aim of the natural frequency simulation is to calculate the free natural frequencies; possible dynamic suggestions or external loads are not included. On the other hand, a component must not be statically defined at all for the vibration analysis. A trouble-free calculation can also be carried out completely without boundary conditions.
Figure 10.18-2: Parametrization of the module Z88EI
Mathematically, no equation system is to be solved but an intrinsic value calculation of the system matrix is to be carried out. For this reason, the solver triggering evidently differs from the up to now used form (see Figure 10.18-2). For the parameterization of the solver, the following five values are usable. Number of frequencies: Here, it is declared how many natural frequencies should be determined. However, although you are often interested in one or only a few frequencies, the number should not be selected to be too small. For numerical reasons, there are often so-called rigid body modes among the oscillations of the slightest frequency. The calculation time increases a little with bigger numbers, because the iteration is executed only once. Merely the part of the intrinsic value approximation, which is relatively just a little more complex, demands more time. The number 15 has proven itself as an appropriate default value. Number of iterations: Similar to the parameter MAXIT for iterative equation solvers, a limit can be set up after which the iterative phase I of the Lanczos solver is interrupted. This serves primarily to be able to check after a short time with test calculations whether the model is computable as desired. As usual for iterative processes, the results, which were generated after the maximum iteration number, should be handled with care. In these cases, it cannot yet be spoken of a convergence towards the correct solution. The assertion helps that at the latest after that iteration number which corresponds to the degree of freedom number of the model, the maximum accuracy is achieved.
10.18 The free Vibration Solver in Z88Aurora 365
Residuum: To measure the current convergence, a so-called relative residuum is used. It measures the value, which have been changed by two successive intrinsic value approximations in the course of the iteration. For the desired number of the smallest intrinsic values (late natural frequencies), the relative difference is determined; namely in each case after a fixed number of Lanczos iterations. If the calculated progress value falls short of the entered limit, convergence is assumed and phase I is quit. According to experience, changes can also appear after many iterations, it is advisable to choose a very small value to avoid quitting too early. A value of 1. 0E-8 has proven itself to be perfectly valid. Difference between 2 frequencies: Particularly for symmetrical components, it often seems that two successive natural frequencies only differ a little. Then the oscillation forms are often turned around the symmetric axis and absolutely identical besides that. Mathematically it is about so-called multiplicities of the accompanying intrinsic values. To exclude these in phase I, a least difference (in Hz) can be set, from which two frequencies should actually be looked at as being different. The value must be veritable greater than zero; quite small values like 1.0E-6 cause the desired. Kappa: This value determines after which fixed number of Lanczos iterations an intrinsic value approximation should be executed. For example, if the default 50 is used, an approximation only takes place after 50, 100, 150, … iterations. All 49 intermediate steps are executed in the interest of shorter computation time without a complex check of the abort criterion, even if the convergence is already achieved. An enlargement of the value leads at the same time to a stricter abort criterion; vice versa a small value weakens its force of expression. The start of the calculation causes the call of the solver Z88EI, which operates with the following input and output files. Input files: Z88I1.TXT General structure data Z88I2.TXT Boundary conditions (only fixations) Z88I2EI.TXT Control file with the parameters above Z88MAT.TXT Material data Z88INT.TXT Integration order Z88MAN.TXT Solver parameter for compilation Output files: Z88O2.TXT Displacements for all frequencies As soon as the calculation module ran, the frequencies are available as a result in Hertz and a displacement vector is on hand per frequency. The choice of the in each case desired frequency takes place like in Figure 10.18-3 via the table on top, on the right hand side. Since natural frequencies have the property that their amplitude cannot be fixed to a constant level, it is fallen back upon a representative deflection. The shown displacement is standardized and can be exaggerated by the slider arbitrarily. A reversal of the direction can be achieved by negative factors. A calculation of representative stresses is not executed.
366 10 Z88: The Modules
Figure 10.18-3: Post-processor view for the natural frequency calculation
■■10.19 The
Non-linear Solver Z88NL of Z88Aurora
The module Z88NL represents a solver, which is dimensioned for non-linear calculations. Besides, non-linearity is limited to those reasoned by large displacement effects. The stress-strainrelations are linear. Concerning the material parameters, the Young’s modulus and Poisson’s ratio are as necessary as they are with the linear solver Z88R. Linear mechanical
Non-linear mechnical
Figure 10.19-1: Triggering the module Z88NL
In Figure 10.19-1 you can see how it is switched to non-linear calculations in Z88Aurora. For the import and the pre-processing, no differences arise in comparison to the linear calculation, except that only the elements of the types 1, 4, 7, 8, 10, 16, 17 can be used. If “Non-linear mechanical” is set according to Figure 10.19-1, however, another menu opens at the change to the solver. In this menu (cf. Figure 10.19-2), the settings can be adjusted in three different tabs: for the non-linear solution process (tab Procedure), for the linear sub solver (tab Solver) and for the
10.19 The Non-linear Solver Z88NL of Z88Aurora 367
result output (tab Output). An equivalent stress calculation by Z88NL is only possible by the von Mises criterion.
Solver menu
Figure 10.19-2: Solver settings Z88NL
The start of the calculation causes the call of the solver Z88NL, which operates with the following input and output files. Input files: Z88I1.TXT General structure data Z88I2.TXT Boundary conditions Z88I5.TXT Distributed loads and surface loads, if available, otherwise 0 in the first line Z88NLI7.TXT Control of progression variables, if available, otherwise 0 in the first line Z88MAT.TXT Material data and one or several TXT material files Z88ELP.TXT Element parameters Z88INT.TXT Integration orders Z88MAN.TXT Solver parameters for Z88NL Output files: Z88NL.LOG File for messages, warnings and mistakes of Z88NL Z88NLKV.LOG Convergence progression of Z88NL Z88NL.DYN Used memory parameters (automatically ascertained)
368 10 Z88: The Modules
Z88NLO2.TXT Displacements Z88NLO3.TXT Stresses (Cauchy stresses), if desired Z88NLOH.TXT Course variables, if available All input files, except for the files Z88NLI7.TXT and Z88MAN.TXT, are identical to the input files of Z88R. Now, the parameters file Z88MAN.TXT of the solver contains an additional section, which should be briefly described in the following. The new section is limited by the key words NONLINEAR START and NONLINEAR END: NONLINEAR START NLFLAG
1
NLAERH
25
MAXNLIT EXIT TOL
1000 1 1E-7
AUTOGAUSS
0
OUTPUTFLAG
1
OUT_CAUCHY
1
OUT_INT9OFFS
1
PARSP
1
BGLAENG
1.0
NONLINEAR END
The parameters are placed by the settings in the solver menu. They have the following meanings. 1st value: Solution processes: NLFLAG: Newton Raphson process (1) or arc length process according to Riks (2) 2nd value: Number of the load steps: NLAERH: indicates in how many steps the whole load is applied 3rd value: Maximum iteration number: MAXNLIT: indicates how many steps of the non-linear solution process are carried out at most 4th value: Control of the abort criterion: EXIT: abort of the non-linear solution process, only if the norm fulfills the abort limit TOL (1) or abort if the norm rises (2). 5th value: Abort limit or residuum TOL: Value under which the norm must lie, so that the solution is found. 6th value: Automatic solver change: AUTOGAUSS: If the flag is activated (1), an automatic switchover of the solver takes place for very small structures, if it is deactivated (0), no change takes place 7th value: Output control: OUTPUTFLAG: controls the result output, output only at the end of the solution process for the whole load (0), output after every part load (1) or output after every iteration step of every load step (2). 8th value: Stress calculation: OUT_CAUCHY: controls the implementation of the stress calculation: carried out (1) or not carried out (0)
10.19 The Non-linear Solver Z88NL of Z88Aurora 369
9th value: Memory management for integration point sizes with 9 values: OUT_INT9OFFS: activates the supply of a special memory field, which is necessary, for example, for the stress calculation (with activated stress calculation this flag must be also activated), active (1) or inactive (0) 10th value: Memory management: PARSP: If the flag is activated (1), additional memory is allocated for the backup of the sparse pointers IP and IEZ to speed up the calculation process, if it is deactivated (0), an iterative new calculation takes place 11th value: Arc length: BGLAENG: determines the arc length for the process of Riks
11 ■■11.1 General
Generating Input Files
Information
You can skip this chapter if you work with Z88Aurora, because these files are mostly automatically generated. However, their structure can still be of interest with special settings of tasks, and you can generate them at any time outside of Z88Aurora with an editor and then import them into Z88Aurora. In Z88 V14 OS, however, you work directly with these files to become quite fundamentally familiar with the finite element method. Z88 works with following files: 1. Input files: Z88I1.TXT (general structure data, coordinates, coincidence) Z88I2.TXT (boundary conditions and loads) Z88I5.TXT (distributed loads and surface loads, if available, otherwise 0 in the first line) Z88MAN.TXT (parameters file for the solver) Z88MAT.TXT (material parameters file with respective material files (Number.TXT) Z88ELP.TXT (element parameter) Z88INT.TXT (integration order) Z88NI.TXT (input file for the mapped mesher Z88N) You can create these input files with your CAD program and the DXF converter Z88X or the 3D converter Z88G or you can generate them with an editor (e.g., Notepad in Windows, gedit, emacs, joe in LINUX and Mac OS X) or a word processing program (e.g., Word in Windows or OpenOffice). When using word processing systems, you must pay attention to the fact that you generate plain ASCII text without hidden control characters. Every word processing program has such an option. 2. Output files: Z88O0.TXT (processed input data) Z88O1.TXT (processed boundary conditions) Z88O2.TXT (calculated displacements) Z88O3.TXT (calculated stresses) Z88O4.TXT (calculated nodal forces)
372 11 Generating Input Files
Rules for entering values within these files: Special rules or field divisions do not need to be considered; only the usual C rules apply: All values are to be separated by at least one blank Integers must not contain any points or exponents Floating point numbers require no points Numerical values which are 0 (zero) have to be entered explicitly. Integers Right: 1
345
55555 0
Wrong: 1.
345,
55555E+0
no entry
Floating-point numbers (Z88 uses double precision floating point numbers [Double]) Right: 1.
345
Wrong: 1,
no entry
5555.5E+10 0
0.
Z88 input files can have comments in every line, if previously all required data is entered. The last datum and comment must be separated by at least one blank. All lines in Z88 input files can contain 250 signs at most. Blank lines or pure comment lines are not permitted. In case of error messages or even abort of the program, check following error sources: Are the files really plain text files in the ASCII format? Or were control characters added by your text program without being noticed? Is the last line of the file terminated by at least one RETURN? Is MAXKOI in Z88.DYN large enough? In case of doubt increase it to 1,000,000 or even higher. Is your structure statically defined or arbitrarily statically over-determined? Or is it still undetermined, i.e. are boundary conditions lacking? This can easily happen especially with beam no. 2 and no. 13 as well as shaft no. 5. Is the coincidence list compiled correctly? Particularly hexahedron no. 10 is very sensitive concerning wrong numeration. Plot the input structure with Z88O. If nothing reasonable is displayed, the rest can hardly become better! Calculate a rough estimate! Are the calculated deflections abnormally large? Then examine the boundary conditions closely! In UNIX: Are all access rights for all files, including the .LOG files, properly placed? Run chmod 777! Z88 input files have the same structure in Windows and UNIX. You can load UNIX files in Windows and vice versa without restriction. However, were the suitable conversions carried out? Windows terminates lines with a CR/LF, UNIX, however, only with a LF. In LINUX systems, there are the converters unix2dos and dos2unix.
11.2 General Structure Data File Z88I1.TXT 373
■■11.2 General
Structure Data File Z88I1.TXT
Note the following input formats: [Long] = 4-bytes or 8-bytes integer [Double] = 8-bytes floating point, alternatively with or without point
1st Input Group General data in the first line contains general structure data. Write all numbers in a line, separated by at least one blank. All numbers here are of the type [Long]. 1st number: dimension of the structure (2 or 3) 2nd number: number of nodes of the structure 3rd number: number of elements 4th number: number of degrees of freedom 5th number: coordinate flag KFLAG (0 or 1). Attention: This position was in earlier versions reserved for the number of the material laws NEG! Explanation: KFLAG: If you enter 0, the coordinates are expected to be Cartesian, however, at an input of 1, polar or cylindrical coordinates are expected. The latter are then converted into Cartesian coordinates and thereupon stored in this form in Z88O0.TXT. Caution: The axisymmetric elements 6, 8, 12 and 15 expect a priori cylindrical coordinates, here set KFLAG to 0!
2nd Input Group Starts from the 2nd line, contains the coordinates of the nodes, for each node one line, while the node numbers must be strictly in ascending order. 1st number: node number [Long] 2nd number: number of the degrees of freedom for this node [Long] 3rd number: X- or, if KFLAG is set to 1, R-coord. [Double] 4th number: Y- or, if KFLAG is set to 1, PHI-coord. [Double] 5th number: Z- or, if KFLAG is set to 1, Z-coord. [Double] The Z-coordinate can be omitted with 2 dimensional structures. Angle PHI in radian. Example 1: Node no. 156 has 2 degrees of freedom and the coordinates X = 45.3 and Y = 89.7 So: 156 2 45.3 89.7 Example 2: Node no. 68 should have 6 degrees of freedom (it is attached to a beam no. 2) and cylindrical coordinates R = 100., PHI = 0.7854 (corresponds to 45°), Z = 56.87 Thus: 68 6 100. 0.7854 56.87
374 11 Generating Input Files
3rd Input Group Starting after the last node, contains the coincidence, which means the assignment of element type and the respective nodes of each element. For every finite element, two lines are to be edited. The element numbers have to be entered strictly in ascending order like the node numbers. 1st line: 1st number: element number [Long] 2nd number: element type (from 1 to 24) [Long] 2nd line: depending on element type 1st number: 1. node number for coincidence [Long] 2nd number: 2. node number for coincidence [Long] … 20th number: 20th node number for coincidence [Long] Write all numbers in one line, separated by at least one blank each. All numbers here are of the type [Long]. Example: An isoparametric Serendipity plane stress element no. 7 has the element number 23. The coincidence is given by the global nodes 14, 8, 17, 20, 38, 51, 55, 34 (locally, these are the nodes 1-2-3-4-5-6-7-8). Thus resulting in two lines: 23 7 14 8 17 20 38 51 55 34
■■11.3 Boundary
Condition File Z88I2.TXT
In the file Z88I2.TXT, the constraints, displacements and forces which have an effect on the model are stored. Surface loads are found in the file Z88I5.TXT. Note the following input formats: [Long] = 4-bytes or 8-bytes integer number [Double] = 8-bytes floating point number, alternatively with or without point
1st Input Group The number of the boundary conditions/loads is shown. 1st number: number of the boundary conditions [Long]
2nd Input Group The boundary conditions are defined. For every boundary condition, a line is required in each case.
11.3 Boundary Condition File Z88I2.TXT 375
1st number: node number with boundary condition [Long] 2nd number: respective degree of freedom (1,2,3,4,5,6) [Long] 3rd number: parameter flag: 1 = force given [Long] or 2 = displacement given [Long] 4th number: value of the load or displacement [Double] Example: The node 1 should be fixed in its respective 3 degrees of freedom: solid restraint, at the node 3 a force of −1648 N in Y direction (DOF 2) is applied, at the node 5 the degrees of freedom 2 and 3 should be locked. These are 6 boundary conditions. So: 6 1 1 2 0 1 2 2 0 1 3 2 0 3 2 1 −1648 5 2 2 0 5 3 2 0 In case of surface loads, this is to be followed: Distributed loads and surface loads like pressure and tangential shear are entered in the file Z88I5.TXT! Only single forces and bearing conditions are inserted in Z88I2.TXT. However, you can also manually convert distributed loads and surface loads to their respective single forces and enter them in the file Z88I2.TXT (this is the original, unique process, but it is very complex). With the elements with linear approach, as for example hexahedron no. 1 and axisymmetric element no. 6, load distributions are simply distributed to the respective nodes like surface loads or volume loads. For elements with higher approaches, i.e. quadratic elements (plane stress elements no. 3, no. 7, axisymmetric element no. 8, hexahedron no. 10) or cubic elements (plane stress element no. 11, axisymmetric element no. 12), load distributions are carried out according to certain rules that are always physically obvious but mathematically absolutely correct. Amazingly, sometimes load components can have negative values. Though these circumstances are not obvious, nevertheless, they lead to correct results, which is not the case for intuitive, i.e. equal distribution of a load on the respective nodes. An example, first wrong, then right, should make the circumstances clear (cf. Figure 11.3-1).
376 11 Generating Input Files
Figure 11.3-1: Load distribution of a distributed load on the nodes
An FE structure may consist of three plane stress elements no. 7 and be loaded with 1,000 N distributed on the upper edge in Y direction. Figure 11.3-1: At the top the wrong, at the bottom the right load distribution is shown. Reason: WRONG: 1,000 N/7 = 142.86 N per node. Not correct for elements with quadratic approach. RIGHT: 2 × 1/6 + 2 × (1/6+1/6) + 3 × 2/3 = 18/6 = 3, corresponds to 1,000 N “1/6 points” = 1,000/18 × 1 = 55.55 “2/6 points” = 1,000/18 × 2 = 111.11 “2/3 points” = 1,000/18 × 4 = 222.22 Check: 2 × 55.55 + 2 × 111,k11 + 3 × 222.22 = 1,000 N, o.k. Here’s why:
Figure 11.3-2: Elements with linear approach, e.g., hexahedron no. 1
11.4 Surface and Pressure Loads File Z88I5.TXT 377
Figure 11.3-3: Elements with quadratic approach, e.g., plane stress element no. 3 and no. 7, axisymmetric element no. 8, hexahedron no. 10
Figure 11.3-4: Elements with cubic approach, e.g., plane stress element no. 11, axisymmetric element no. 12
■■11.4 Surface
and Pressure Loads File Z88I5.TXT
This file must always exist. If no surface loads are given, only a 0 plus line feed is entered in the 1st input group; then the 2nd input group does not exist. Note the following input formats: [Long] = 4-bytes or 8-bytes integer number [Double] = 8-bytes floating point number, alternatively with or without point
1st Input Group 1st number: number of the distributed loads and surface loads [Long]
2nd Input Group The distributed loads and surface loads are defined, for each load a line. An element can have several applied loads. The number of the parameters depends on the element type, so that unnecessary input is avoided.
378 11 Generating Input Files
As for the local directions: Define the local r and s directions by the nodes and their sequence. These naturally do not need to be consistent with the local r and s coordinate system of the finite element, which are defined in the structure file Z88I1.TXT. The numeration must correspond to the element numeration concerning the sense of direction (cf. chapter 12 and Figure 11.9-1). Plane stress elements no. 7 and 14 and axisymmetric elements no. 8 and 15: Element number with distributed load [Long] Pressure, positive if pointing towards the edge [Double] Tangential shear, positive in local r direction [Double] 3 nodes of the loaded edge [3 x Double] Example: The plane stress element no. 97 (Figure 11.4-1) should be loaded on the edge, which is defined by the corner nodes 5 and 13 and by the center node 51, with a distributed load of 100 N/mm, whose direction is normal to the edge, and with a distributed load of 300 N/mm, tangential and positive in local r direction (which is fixed by the corner nodes 5 and 13). Thus: 97 100. 300. 5 13 51
Figure 11.4-1: Plane stress element with distributed loads
Hexahedron no. 1: Element number with distributed load [Long] Pressure, positive if pointing towards the surface [Double] Tangential shear, positive in local r direction [Double] Tangential shear, positive in local s direction [Double] 4 nodes of the loaded surface [4 x Double] Example: The hexahedron element no. 356 should be loaded on the surface, which is defined by the corner nodes 51, 34, 99 and 12, with a distributed load of 100 N/mm2, whose direction is normal to the surface, and with a tangential load in local r direction of 200 N/mm2 and a tangential load in local s direction of 300 N/mm2. Thus: 356 100. 200. 300. 51 34 99 12
11.4 Surface and Pressure Loads File Z88I5.TXT 379
Hexahedron no. 10: Element number with distributed load [Long] Pressure, positive if pointing towards the surface [Double] Tangential shear, positive in local r direction [Double] Tangential shear, positive in local s direction [Double] 8 nodes of the loaded surface [8 x Double] Example: The hexahedron element no. 456 should be loaded on the surface, which is defined by the corner nodes 51, 34, 99 and 12 and the center nodes 102, 151, 166 and 191, with a distributed load of 100 N/mm2, whose direction is normal to the surface, and with a tangential load in local r direction of 200 N/mm2 and a tangential load in local s direction of 300 N/mm2. Thus: 456 100. 200. 300. 51 34 99 12 102 151 166 191 Tetrahedron no. 17: Element number with surface load [Long] Pressure, positive if pointing towards the edge [Double] 3 nodes of the loaded surface [3 x Double] Example: The tetrahedron element no. 356 should be loaded on the surface, which is defined by the corner nodes 51, 34 and 12, with a distributed load of 100 N/mm2 whose direction is normal to the surface. Thus: 356 100. 51 34 12 Tetrahedron no. 16: Element number with surface load [Long] Pressure, positive direction concerning the surface [Double] 6 nodes of the loaded surface [6 x Double] Example: The tetrahedron element no. 888 (Figure 11.4-2) should be loaded on the surface, which is defined by the corner nodes 51, 34 and 12 as well as the middle nodes 65, 66 and 67, with a distributed load of 100 N/mm2, whose direction is normal to the surface. Thus: 888 100. 51 34 12 65 66 67
Figure 11.4-2: Tetrahedron with pressure load on one element side
380 11 Generating Input Files
Plate elements no. 18, 19 and 20 (cf. hints at the end of the chapter): Element number with surface load [Long] Pressure, positive if pointing towards the surface [Double] Shell no. 21: Element number Pressure, positive if pointing towards the surface Tangential shear in local r direction Tangential shear in local s direction 4 corner nodes and 4 middle nodes of the surface, which obtains surface loads. Mathematically positive with plan view. The nodes 1-2 define the local r direction, the nodes 1-4 lead to the local s direction. Of course, the local nodes 1 to 8 for the surface loads do not have to equal the local nodes 1 to 8 used for the coincidence list.
Figure 11.4-3: Shell no. 21 with pressure load
Shell no. 22: Element number Pressure, positive if pointing towards the surface 3 corner nodes and 3 middle nodes of the loaded surface. Mathematically positive in top view.
11.4 Surface and Pressure Loads File Z88I5.TXT 381
Figure 11.4-4: Shell no. 22 with pressure load
Shell no. 23 (cf. hints at the end of the chapter): Element number Pressure, positive if pointing towards the surface 4 corner nodes and 4 middle nodes of the loaded surface. Mathematically positive in top view.
Figure 11.4-5: Shell no. 23 with pressure load
Shell no. 24 (cf. hints at the end of the chapter): Element number Pressure, positive if pointing towards the surface 3 corner nodes and 3 middle nodes of the loaded surface. Mathematically positive in top view.
382 11 Generating Input Files
Figure 11.4-6: Shell no. 24 with pressure load
Hint: Alternatively to Z88I5.TXT, the file Z88ELP.TXT can be used for pressure loads on plates and shells. This procedure is inconsistent, but comfortable. The pressure is written after QPARA (= thickness of plates and shells), at the position Iyy. Then, however, 0 must be entered in the first line of Z88I5.TXT, and IPFLAG (= plate flag) or IHFLAG (= shell flag) must be set in the solver parameters file Z88MAN.TXT.
■■11.5 Material
Parameters File Z88MAT.TXT
In order to create a general, project independent material database, the project dependent material information is defined in a separate file in Z88Aurora V2. This file merely consists of one input group with one line per material. This line contains the filename of the applied material data file *.TXT included in the material data base. Note the following input formats: [Long]
= 4-bytes or 8-bytes integer number
[Double]
= 8-bytes floating point number, alternatively with or without point
[Character]
= a series of characters
1st Input Group 1st number: number of the materials
2nd Input Group: One Line per used Material 1st number: material is valid from element no. inclusively [Long] 2nd number: material is valid to element no. inclusively [Long] 3rd entry: name of material parameters file .TXT [Character]
11.7 Element Parameters File Z88ELP.TXT 383
Example: In a structure, the elements 1-8 should be steel, the elements 9-12 aluminium and the elements 13-15 steel again: 3 1
8
51.txt
9
12
52.txt
13 15
51.txt
Remark: In principle, the names of the material files should consist of a number with the file extension .TXT, so that they can be administered in the Z88Aurora material database.
■■11.6 Material
Data File *.TXT
The material data file contains the Young’s modulus and the Poisson’s ratio for each material. The name of the file is arbitrary, nevertheless, there must be the extension .TXT and it must correspond to the input in Z88MAT.TXT. Note the following input formats: [Double] = 8-bytes floating point number, alternatively with or without point
1st Input Group, One Line: 1st number: Young’s modulus [Double] 2nd number: Poisson’s ratio [Double] Example: In a structure, the elements 1-8 should be steel, the elements 9-12 aluminium and the elements 13-15 steel again: Contents of the file 51.txt:
206000.
0.3
Contents of the file 52.txt:
73000.
0.33
■■11.7 Element
Parameters File Z88ELP.TXT
Contains the cross section parameter QPARA (cf. ch.12) and the beam information if necessary. Note the following input formats: [Long] = 4-bytes or 8-bytes integer number [Double] = 8-bytes floating point number, alternatively with or without point
384 11 Generating Input Files
1st Input Group 1st number: number of the element parameters [Long]
2nd Input Group: One Line per used Element 1st number: element is valid from [Long] 2nd number: element is valid to [Long] 3rd number: QPARA (cross section, thickness) [Double]
and for Beams additionally: 4th number: second moment of area yy (bending around yy axis) Iyy [Double] 5th number: max. distance eyy from neutral axis yy [Double] 6th number: second moment of area zz (bending around zz axis) Izz [Double] 7th number: max. distance eyy from neutral axis zz [Double] 8th number: second moment of area (torsion) IT [Double] 9th number: section modulus (torsion) WT [Double] Example 1: A plate structure contains plates with different thicknesses. The plate elements 1-40 have a thickness of 10 mm, the plate elements 41-80 have a thickness of 20 mm: 2 1 40 10. 41 80 20. Example 2: A spatial framework consists of trusses no. 4 (elements 1-4) and beams no. 2 (elements 5-9). The trusses have a cross section of 200 mm2 and the beams may have the following data: Cross section = 100 mm2, Iyy = 833 mm4, eyy = 5 mm, Izz = 833 mm4, ezz = 5, IT = 1,406 mm4, WT = 208 mm3. Thus: 2 1 4 200. 5 9
100. 833. 5. 833. 5. 1406. 208.
Hint: Alternatively to Z88I5.TXT, the file Z88ELP.TXT can be used for pressure loads on plates and shells. This procedure is inconsistent, but comfortable. The pressure is written after QPARA (= thickness of plates and shells), at the position Iyy. Then, however, 0 must be entered in the first line of Z88I5.TXT, and IPFLAG (= plate flag) or IHFLAG (= shell flag) must be set in the solver parameters file Z88MAN.TXT. Example: A plate structure contains plates with different thicknesses. The plate elements 1-40 have a thickness of 10 mm, the plate elements 41-80 have a thickness of 20 mm. All elements are loaded by a pressure of 100 N/mm2. 2 1
40
10. 100.
41
80
20. 100.
11.8 Integration Order File Z88INT.TXT 385
■■11.8 Integration
Order File Z88INT.TXT
Contains the integration orders for the displacement calculation and the stress calculation. Note the following input formats: [Long] = 4-bytes or 8-bytes of integer number
1st Input Group 1st number: number of the integration order groups [Long]
2nd Input Group: In each Case a Line per used Element 1st number: element is valid from [Long] 2nd number: element is valid to [Long] 3rd number: INTORD = integration order for displacement calculation [Long], cf. ch. 4 4th number: INTOS = integration order for stress calculation [Long] Explanation INTOS: Following applies: INTOS 0 → Calculation of the stresses in the corner nodes, calculation of reduced stress not possible For isoparametric elements no. 1, 7, 8, 10, 11, 12, 19, 20, 21 and 23: INTOS 1, 2, 3 or 4 (i.e. N×N) → Calculation of stresses in the Gauss points, calculation of reduced stress is possible. A good value is 3 (= 3 × 3 Gauss points). For type 1 and type 20, 2 can be sufficient (= 2 × 2 Gauss points), for type 19, 4 is right (= 4 × 4 Gauss points). For isoparametric elements no. 14, 15, 18, 22 and 24: INTOS 3, 7 or 13 (i.e. N) → Calculation of stresses in the Gauss points, calculation of reduced stress is possible. A good value is 7 (= 7 Gauss points). For type 18 3 can be enough, thus 3 Gauss points. For isoparametric elements no. 16 and 17: INTOS 1, 4 or 5
(i.e. N)
→ Calculation of stresses in the Gauss points, calculation of reduced stress is possible. A good value is 5 (= 5 Gauss points) for type 16. With type 17 1 can be enough (= 1 Gauss point). This value has no meaning for the element types no. 2, 3, 4, 5, 6, 9 and 13: It is best to enter a 1.
386 11 Generating Input Files
Example 1: An axisymmetric structure consisting of 30 torus elements no. 8 should work with 3 × 3 Gauss points for the displacement calculation, nevertheless, for the stress calculation, 4 × 4 Gauss points should be used: 1 1 30 3 4 Example 2: A spatial structure consists of hexahedrons no. 10 (elements 1-512) and of a few trusses no. 4 (elements 513-520) as bearings. For the displacement calculation, 3 × 3 Gauss points should be used with the hexahedrons, nevertheless, the stress calculation should work with 2 × 2 Gauss points: 2 1 512 3 2 513 520 1
1
■■11.9 Mapped
Mesher Input File Z88NI.TXT
The layout of Z88NI.TXT is very similar to the layout of Z88I1.TXT, i.e. the input files for the linear FE solver: Only the &-labelled data is additionally required. Note the following input formats: [Long]
= 4-bytes or 8-bytes of integer number
[Double]
= 8-bytes of floating point number, alternatively with or without point
[Character]
= a letter
1st Input Group 1st number: dimension of the structure (2 or 3) 2nd number: number of nodes of the super structure 3rd number: number of super elements 4th number: number of degrees of freedom 5th number: coordinate flag KFLAGSS for the super elements (0 or 1) &6th number: trap radius flag NIFLAG (0 or 1) &7th number: coordinate flag KFLAG for the finite elements (0 or 1) Write all numbers into a line, respectively separated by at least one blank. All numbers here of the type [Long].
11.9 Mapped Mesher Input File Z88NI.TXT 387
Explanations: KFLAGSS: If you enter 0, the coordinates are expected to be Cartesian, however, at an input of 1, polar or cylindrical coordinates are expected. The latter are then converted into Cartesian coordinates and thereupon stored in this form in Z88I1.TXT. Caution: The axisymmetric elements no. 8 and 12 a priori expect cylindrical coordinates, set KFLAGSS to 0 here! Example: Super structure 2-dimensional with 37 nodes, 7 super elements, and 74 degrees of freedom. Cylindrical coordinates (= 1), trap radius default value, output again in cylindrical coordinates. Thus: 2 37 7 74 1 0 1 NIFLAG: In order to identify already defined nodes, the mesher requires a trap radius. The default is 0.01 for EPSX, EPSY and EPSZ if NIFLAG is 0. With extremely small or large structures, these values can be changed. To initiate this change, NIFLAG is set to 1. Then the new trap radii of EPSX, EPSY and EPSZ are defined in Z88NI.TXT as the 5th input group. Example: Super structure 2-dimensional with 37 nodes, 7 super elements, and 74 degrees of freedom. Cartesian coordinates, trap radius default value, output in Cartesian coordinates. Thus: 2 37 7 74 0 0 0 KFLAG: Internally, Z88N works with natural or Cartesian coordinates. Sometimes, though, you might want to store the output of Z88N as polar or cylindrical coordinates. With this flag (= 1), the output takes place in polar or cylindrical coordinates. This is independent from the KFLAGSS for the input file Z88NI.TXT. Example: Super structure 2-dimensional with 37 nodes, 7 super elements, and 74 degrees of freedom. Input in Cartesian coordinates, trap radius default value, output in polar coordinates. Thus: 2 37 7 74 0 0 1
2nd Input Group Starting from the 2nd line, each line contains the coordinates of the nodes, one line per node and the node numbers must be strictly in ascending order. 1st number: node number [Long] 2nd number: number of the degrees of freedom for this node [Long] 3rd number: X- or, if KFLAGSS is 1, R-coord. [Double] 4th number: Y- or, if KFLAGSS is 1, PHI-coord. [Double] 5th number: Z- or, if KFLAGSS is 1, Z-coord. [Double] The Z-coordinate may be skipped for 2-dimensional structures. Example: The node no. 8 has 3 degrees of freedom and the coordinates X = 112.45, Y = 0., Z = 56.75. Thus: 8 3 112.45 0. 56.75
388 11 Generating Input Files
3rd Input Group Starting after the last node, it contains the coincidence, i.e. the allocation of the element type and the corresponding nodes of every element. For every super element, two lines are to be edited. The element numbers, like the node numbers, must be entered strictly in ascending order. 1st line: 1st number: element number [Long]. 2nd number: super element type (1,7,8,10,11,12,20,21) [Long]. 2nd line: depending on element type 1st number: 1st node number for coincidence [Long] 2nd number: 2nd node number for coincidence [Long] … 20. Number: 20th node number for coincidence [Long] Write all numbers into a line, separated by at least one blank each. All numbers are here of the type [Long]. These are the mesher-suitable elements: Element no. 1: isoparametric hexahedron 8 nodes Element no. 7: isoparametric Serendipity plane stress element 8 nodes Element no. 8: isoparametric Serendipity axisymmetric element 8 nodes Element no. 10: isoparametric Serendipity hexahedron 20 nodes Element no. 11: isoparametric Serendipity plane stress element 12 nodes Element no. 12: isoparametric Serendipity axisymmetric element 12 nodes Element no. 20: isoparametric Serendipity plate 8 nodes Element no. 21: isoparametric Serendipity volume shell 8 nodes Example: An isoparametric Serendipity plane stress element no. 7 has the element number 23. The coincidence has the global nodes 14, 8, 17, 20, 38, 51, 55, 34 (locally these are the nodes 1-2-3-4-5-6-7-8). Thus resulting in two lines: 23 7 14 8 17 20 38 51 55 34
4th Input Group Starting after the last coincidence, this input group contains the descriptive information for the mesh generation process. 2 lines are required for every super element. 1st line: 1st number: super element number [Long]. 2nd number: finite element type to be generated (types 1,7,8,10,19,20,21) [Long].
11.9 Mapped Mesher Input File Z88NI.TXT 389
2nd line: 1st number: finite elements in local x direction [Long] 2nd number: type of subdivision CMODE X [Character] 3rd number: finite elements in local y direction [Long] 4th number: type of subdivision CMODE Y [Character] 5th number: finite elements in local z direction [Long] 6th number: type of subdivision CMODE Z [Character] Both information for the z-direction are omitted with two-dimensional structures. Explanations: CMODE can accept the following values: “E”: equidistant subdivision (“e” is also permitted) “L”: subdivision is geometrically ascending in local coordinate -direction “l”: division is geometrically descending in local coordinate -direction (lowercased L) Local x, y and z directions are defined as follows: Local x direction in the direction of local nodes 1 and 2 Local y direction in the direction of local nodes 1 and 4 Local z direction in the direction of local nodes 1 and 5 This is made clear in Figure 11.9-1. Example: An isoparametric Serendipity plane stress element with 12 nodes (element type 11) should be divided into finite elements of the type isoparametric Serendipity plane stress element with 8 nodes (element type 7). In local x direction, it should be divided three times equidistantly and in local y direction it should be divided 5 times geometrically ascending. The super element should have the number 31. Thus resulting in two lines: 31 11 7 3 e 5 L (e or E for equidistant are equivalent)
5th Input Group, optionally after the end of the 4th Input Group: This input group is only necessary if NIFLAG was set to 1, i.e. the trap radius should be modified. It consists of one line. 1st number: trap radius in global X direction EPSX [Double] 2nd number: trap radius in global Y direction EPSY [Double] 3rd number: trap radius in global Z direction EPSZ [Double] The Z information can be omitted with 2-dimensional structures. Example: The trap radius should be set to 0.0000003 for X, Y and Z respectively. Thus: 0.0000003 0.0000003 0.0000003 This is effective only if NIFLAG was set to 1 in the first input group!
390 11 Generating Input Files
Figure 11.9-1: Definition of local x, y and z direction using the example of different element types
■■11.10 Solver
Parameters File Z88MAN.TXT
The solver parameters file Z88MAN.TXT is divided into three parts: the global part, the part for the linear solver and the stress part. The following script displays a typical Z88MAN.TXT. DYNAMIC START GLOBAL START
IBFLAG 0
IPFLAG 0
IHFLAG 0
SIMCASE 1 GLOBAL END SOLVER START
MAXIT 10000
EPS 1e-007
11.10 Solver Parameters File Z88MAN.TXT 391
RALPHA 0.0001
ROMEGA 1.1
SOLVER END STRESS START
KDFLAG 0
ISFLAG 1
STRESS END DYNAMIC END
Explanations for the individual information: GLOBAL: IBFLAG: If beam no. 2 or beam no. 13 are present in the structure, the beam flag must be set to 1, otherwise it must be 0. IPFLAG: If plate no. 18, no. 19 or no. 20 are present in the structure, the plate flag must be set to 1, otherwise it must be 0. ATTENTION: With this Z88 version beams and plates mutually exclude each other! A structure can contain either beams or plates, but not both at the same time because the respective degrees of freedom are not compatible. IHFLAG: The shell flag is 1 when using shell elements no. 23 or 24. SIMCASE is 1 Solver: MAXIT is the first termination criterion. When reaching this number of iterations the iteration solvers SICCG and analogously SORCG are terminated in any case. However, the values of the solution vector reached up to this point are printed. EPS This value is compared to a norm of the residual vector. When this value is reached for the iteration solvers SICCG and SORCG, the solution reached should have a good precision. This is the second termination criterion. Enter a relatively small value, e.g. 0.00001 or 0.0000001. Note that there is no absolute truth in this field! No matter which norm of the residual vector is compared to this limit, you can never be sure that all elements of the solution vector are precise. The choice of EPS enormously influences the iteration count and, thus, the computing speed. Remember this when comparing Z88Aurora to the big, commercial solvers (you do not know which termination criterions are internally used anyway): The limit you can adjust there may have absolutely nothing to do with EPS of Z88. However, extensive tests proved that the
392 11 Generating Input Files
deflections of different nodes compared quite well to those from the commercial solvers if EPS was between 0.00001 and 0.0000001 with similar computing time. Please note: When computing large FEA structures with different solvers, you will never know which solver delivers the best result anyway. RALPHA is the convergence acceleration parameter α. With this parameter for SIC pre-conditioning, you choose the shift factor α for the iteration solver SICCG (from 0 to 1, good values may vary from 0.0001 to 0.1). A good initial value is 0.0001. ROMEGA is the convergence acceleration parameter ω. With this parameter for the SOR preconditioning, you choose the relaxation parameter ω for the iteration solver SORCG (from 0 to 2, good values may vary from 0.8 to 1.2). Which value to choose for ω? Good question! Try ω =1, which will never lead to completely bad results, and then try other values for further runs with this structure. Example 1: You want to work with the iteration sparse matrix solver and stop the calculation after 5,000 iterations in any case, the precision limit should be 0.0000001. The convergence acceleration parameter ω for SOR should be 0.9, since you want to compute with the SORCG solver (“SORCG: sparse, iterative”). Thus:
MAXIT
5000
EPS 0.0000001 RALPHA irrelevant parameter ROMEGA 0.9 Example 2: You want to work with the iteration sparse matrix solver and stop the calculation after 10,000 iterations in any case, the precision limit should be 10-9. The convergence acceleration parameter α for SIC should be 0.001, since you want to compute with the SICCG solver (“„SICCG: sparse, iterative”). Thus:
MAXIT
10000
EPS 1e-9 RALPHA 0.001 ROMEGA irrelevant parameter Example 3: You want to work with the Cholesky solver. Thus: The control values MAXIT, EPS, RALPHA and ROMEGA can be arbitrary and have no meaning. Stress: KDFLAG [Long]: 0 = standard stress calculation 1 = additional calculation of the radial and tangential stresses for the element no. 3, 7, 11, 14 ISFLAG: Choice of the stress criterion [Long] 0 = no calculation of the reduced stresses 1 = von Mises criterion 2 = maximum normal stress criterion 3 = Tresca’s maximum shear stress criterion
11.11 Comparison of the different Z88 Data File Formats 393
Example 1: In addition to the default stress calculation, radial and tangential stresses of a structure with plane stress elements no. 7 shall be calculated. Thus, KDFLAG = 1. Furthermore, the stresses calculation should use the von Mises criterion: ISFLAG = 1. Thus: KDFLAG 1 ISFLAG 1 Example 2: For a structure featuring plane stress elements no. 7, only the default stresses shall be calculated, thus KDFLAG = 0. Reduced stresses are not requested. Thus: KDFLAG 0 ISFLAG 0
■■11.11 Comparison
File Formats
of the different Z88 Data
The file formats of the four Z88 versions Z88Aurora V2, Z88 V14 OS, Z88Aurora V1 and Z88 V13.0A are rather similar to each other, but particularly in Z88Aurora V2, the input data is distributed to more and other input files compared to the earlier versions, so that the full capacity of the GUI can be used and extensions can be considered to be easier. Z88V14 OS
Z88Aurora V2
Z88Aurora V1
Structure data Material parameter file Material data files Element parameters Integration order for displacement calc. Integration order for stress calc. Solver parameters
Z88I1.TXT Z88MAT.TXT *.TXT Z88ELP.TXT Z88INT.TXT
Z88STRUCTURE.TXT Z88SETSACTIVE.TXT *.TXT Z88SETSACTIVE.TXT Z88ENVIRO.DYN
Z88I1.TXT Z88MAT.TXT *.CSV Z88ELP.TXT Z88MAT.TXT
Z88INT.TXT
Z88ENVIRO.DYN
Z88MAN.TXT
Z88CONTROL.TXT
Boundary conditions** Surface loads** Number of material laws NEG Coordinate flag KFLAG Beam flag IBFLAG Plate flag IPFLAG Surface loads flag IQFLAG Shell flag IHFLAG
Z88I2.TXT Z88I5.TXT Z88MAT.TXT
Z88SETSACTIVE.TXT Z88SETSACTIVE.TXT Z88SETSACTIVE.TXT
Z88I1.TXT Z88MAN.TXT Z88MAN.TXT -
Z88STRUCTURE.TXT -
Z88MAN.TXT
-
Z88MANAGE. TXT Z88MANAGE. TXT Z88I2.TXT Z88I5.TXT Z88MANAGE. TXT Z88I1.TXT Z88I1.TXT Z88I1.TXT Z88MANAGE. TXT Z88I1.TXT
Z88 V13.0A Z88I1.TXT Z88I1.TXT Z88I1.TXT Z88I1.TXT Z88I3.TXT Z88I4.TXT Z88I2.TXT Z88I5.TXT Z88I1.TXT Z88I1.TXT Z88I1.TXT Z88I1.TXT Z88I1.TXT Z88I1.TXT
394 11 Generating Input Files
Z88V14 OS
Z88Aurora V2
Z88Aurora V1
Radial/Tangential stress- Z88MAN.TXT es flag: KDFLAG
Z88CONTROL.TXT
Reduced stresses flag: ISFLAG
Z88CONTROL.TXT
Z88MANAGE. TXT (here: KSFLAG) Z88MANAGE. TXT
**
Z88MAN.TXT
Formats are identical for all four Z88 versions.
Z88 V13.0A Z88I3.TXT (here: KFLAG) Z88I3.TXT
12
The Finite Elements of Z88 and Z88Aurora
By the different approaches of both programs, the file structures are slightly different; the following element descriptions are valid for Z88 V14 OS. For Z88Aurora, it is valid: Table 12.0-1: Separation of Z88 V14 OS to Z88Aurora
Z88 V14 OS Z88I1.TXT Z88ELP.TXT Z88INT.TXT Z88MAT.TXT Z88MAN.TXT
Z88Aurora Z88STRUCTURE.TXT Input via pre-processor “element parameter” Z88ENVIRO.DYN Input via pre-processor “material” Z88CONTROL.TXT
■■12.1 Hexahedron
No. 1 with 8 Nodes
The hexahedron element calculates stresses in space with linear shape functions. It is a transformed element, which may be wedge-shaped or may have another oblique-angled form. The transformation is isoparametric; the integration is carried out numerically in all three axes according to Gauss-Legendre. Hence, the integration order is to be preselected in Z88INT.TXT with at least 2. Hexahedron No. 1 is also applicable as a thick plate element if the plate thickness is not too small compared to the other dimensions. Hexahedrons No. 1 can be generated by the mesher Z88N from super elements hexahedron No. 10 and hexahedron No. 1.
396 12 The Finite Elements of Z88 and Z88Aurora
Figure 12.1-1: Hexahedron No. 1 with 8 nodes
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom Element type is 1 8 nodes per element Z88ELP.TXT Cross section parameter QPARA is 0 or arbitrary, no influence Z88INT.TXT Integration order INTORD for displacement calculation. 2 is mostly good Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points Z88MAT.TXT Defines materials, cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress-flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2.3
= reduced stresses according to stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces, surface loads on the elements No. 1 should also be applied, otherwise, set 0 in the first line. The second input group contains the following information in each line: Element number Pressure, pointing positively towards the surface Tangential shear in local r direction
12.1 Hexahedron No. 1 with 8 Nodes 397
Tangential shear in local s direction 4 corner nodes of the surface, which contains surface loads. Mathematically this is positive with plan view. The nodes 1-2 determine the local r direction; the local s direction is determined by the nodes 1-4. The local nodes 1, 2, 3, 4 for the surface loads naturally do not need to be identical with the local nodes 1, 2, 3, 4 for the list of coincidence.
Figure 12.1-2: Attaching the surface loads with hexahedron No. 1
Outputs: Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, in each case for corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node. For Z88thermo
:
In the thermal analysis, the finite element only owns one degree of freedom per node. Beside the already abovementioned input files and output files, the following files still matter by the stationary thermal simulation (pure heat conduction or thermo-mechanical simulation).
Inputs: Z88TI2.TXT Node number Flag for boundary condition 1 = Heat flow 2 = Temperature Value Z88TI5.TXT As Z88I5.TXT, however, here a 0 must be set for the tangential shear stress and the pressure value is the heat flux.
398 12 The Finite Elements of Z88 and Z88Aurora
Outputs: Temperature at the node Heat flow at the node Thermal strain at the node Thermal force at X, Y and Z as well as the results known from the elastostatic. Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, in each case for corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node. For Z88EI : The entries for the element stiffness remain unchanged in comparison to the linear-elastic calculation. The only supplement is the approximation of the element mass, which arises from the element volume, and the mass density of the respective material. It is approximated from five inscribed tetrahedrons by the added up part volumes or part masses.
■■12.2 Beam
No. 2 with 2 Nodes in Space
Spatial beam element with arbitrary, but symmetrical profile (no slanting bend) with the restriction that local y-y axis must be parallel to the global X-Y plane. The profile values are provided in Z88ELP.TXT. Thus, in contrast to other FEA programs, a variety of different beam subroutines are avoided, whereby not all possible symmetrical profiles can be included. The element is exact within the scope of the Bernoulli bending theory or Hooke’s law; this is no approximation solution as for continuum elements. Z, U 3
Y, U 2
U6
U5
x
2
parallel to X-Y plane
1
y
U4 Figure 12.2-1: Beam No. 2
z
X, U 1
12.2 Beam No. 2 with 2 Nodes in Space 399
Z
Y Sign
Y U2
U3
U2 U6
1
U5
U6 2
U3
X
1
U5 2
X
Z Figure 12.2-2: Sign definitions with beam No. 2
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 6 degrees of freedom. Attention to the degree of freedom 5 (not right hand rule), cf. Figure 12.2-2. Element type is 2 2 nodes per element Z88ELP.TXT Cross-sectional area QPARA Second moment of area (bending around yy axis) Iyy [Double] max. distance from neutral yy axis eyy [Double] Second moment of area (bending around zz axis) Izz [Double] max. distance from neutral zz axis ezz [Double] Second moment of area (torsion) IT [Double] Section modulus (torsion) WT [Double] Z88INT.TXT Has no influence on beam No. 2, however, must be present (with arbitrary contents). Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Beam flag IBFLAG set to 1 The remaining flags have no influence.
Outputs: Displacements in X, Y and Z, rotations around X, Y and Z. Attention with degree of freedom 5 (not right hand rule), cf. Figure 12.2-2.
400 12 The Finite Elements of Z88 and Z88Aurora
Stresses: SIGXX, TAUXX: Normal stress, shear stress, SIGZZ1, SIGZZ2: Bending stress around z-z, 1st and 2nd nodes, SIGYY1, SIGYY2: Bending stress around y-y, 1st and 2nd node Nodal forces in X, Y, Z and nodal moments around X, Y, Z, added up per element and per node.
■■12.3 Plane
Stress Element No. 3 with 6 Nodes
This is a simple, triangular plane stress element with an entire quadratic approach. This element is only included for historical reasons and for study purposes. Much better are plane stress elements No. 7, No. 11 or No. 14. Attention with distributed loads, cf. chapter 11.4, imaging via single forces. There are no entries in surface load file Z88I5.TXT.
Figure 12.3-1: Plane stress element No. 3
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 2 degrees of freedom Element type is 3 6 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness Z88INT.TXT Integration order INTORD: indifferent, has no influence Integration order INTOS: indifferent, has no influence Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6.
12.4 Truss No. 4 in Space 401
Z88MAN.TXT Radial/tangential stress flag KDFLAG = 0
= Calculation of SIGXX, SIGYY and TAUXY
1
= additional calculation of SIGRR, SIGTT and TAURT
Reduced stress flag ISFLAG: 0
= no calculation of reduced stresses
1,2,3
= reduced stresses according to von Mises, reduced Rankine stress or Tresca’s maximum shear stress criterion in the Gauss points (INTOS unequal 0!)
Outputs: Displacements in X and Y Stresses: The stresses are calculated in the element center of gravity. Hence, the main coordinates are displayed. With KFLAG = 1, the radial stresses SIGRR, the tangential stresses SIGTT and the accompanying shear stresses SIGRT are additionally determined (this has only sense if a rotation-symmetrical structure is given). To the simpler orientation, the respective radius and angle of the center of gravity are designated. Optionally, reduced stresses in element center of gravity are displayed. Nodal forces added up per element and per node.
■■12.4 Truss
No. 4 in Space
The truss element No. 4 can take any location in space. It belongs to the simplest elements in Z88 and is calculated extremely fast. The truss elements are exact within the scope of the Hooke’s law. They are also very suitable as flexible or oblique-angled supports.
Figure 12.4-1: Truss No. 4 in space
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom
402 12 The Finite Elements of Z88 and Z88Aurora
Element type is 4 2 nodes per element Z88ELP.TXT Cross section parameter QPARA is the cross-sectional area of the truss Z88INT.TXT Integration order INTORD: indifferent, has no influence Integration order INTOS: indifferent, has no influence Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG: indifferent, has no influence Reduced stress flag ISFLAG: indifferent, has no influence
Outputs: Displacements in X, Y and Z Stresses: Tension/compressive stresses Nodal forces in X, Y and Z, added up per element and per node.
■■12.5 Shaft
No. 5 with 2 Nodes
The shaft element is a simplification of the general beam element No. 2: A circular cross-section can be assumed, the element is located concentrically to the x-axis, therefore local and global coordinates are in the same direction. Inputs and calculations are thereby strongly simplified. As with the beam element, the results are within the exact scope of the Bernoulli beam theory or the Hooke’s law and are no approximated solutions like with the continuum elements.
Figure 12.5-1: Shaft No. 5
12.5 Shaft No. 5 with 2 Nodes 403
Z
Y Sign
Y U2 U6 1
U3
U2
U5
U6 2
U3
X
1
U5 2
X
Z Figure 12.5-2: Sign definitions with shaft No. 5
Inputs: Z88I1.TXT Put KFLAG 0 for Cartesian coordinates Nodes with 6 degrees of freedom. Attention with the fifth degree of freedom, cf. Figure 12.5-2 Element type is 5 2 nodes per element Z88ELP.TXT Cross section parameter QPARA is the diameter of the shaft Z88INT.TXT Integration order INTORD: indifferent, has no influence Integration order INTOS: indifferent, has no influence Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG: indifferent, has no influence Reduced stress flag ISFLAG: indifferent, has no influence
Outputs: Displacements in X, Y and Z, rotations around X, Y and Z, attention at the fifth degree of freedom (not right hand rule), cf. Figure 12.5-1 Stresses: SIGXX = tension/compressive stress, TAUXX = torsion stress, SIGXY1, SIGXY2 = bending stress in X-Y plane, SIGXZ1, SIGXZ2 = bending stress in X-Z plane Nodal forces in X, Y and Z, nodal moments around X, Y and Z, added up per element and per node.
404 12 The Finite Elements of Z88 and Z88Aurora
■■12.6 Torus
No. 6 with 3 Nodes
This element is only included for historical reasons, for study purposes and possible data interchange to other FE systems. Much better: Torus elements No. 8 or No. 12 or No. 15.
Figure 12.6-1: Torus element No. 6
This is a simple, triangular torus element with linear approach for rotation-symmetrical structures. Though by its very simple approach, the displacement calculation is still rather useful, however, the stress calculation is inexact. Although the stresses are internally calculated in the corner nodes, they are displayed as an average in the centre of gravity of the element. The use of the torus elements No. 8 or No. 12 or No. 15 is highly recommended, particularly for the stress calculation. No entries in the surface load file Z88I5.TXT!
Inputs: Z88I1.TXT Cylindrical coordinates are expected principally: KFLAG must be 0!
R coordinate (= X), always positive
Z coordinate (= Y), always positive
Nodes with 2 degrees of freedom, R and Z (= X and Y). Element type is 6 3 nodes per element Z88ELP.TXT Cross section parameter QPARA is 0 or arbitrarily, no influence Z88INT.TXT Integration order INTORD: indifferent, has no influence Integration order INTOS: indifferent, has no influence Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6.
12.7 Plane Stress Element No. 7 with 8 Nodes 405
Z88MAN.TXT Radial/tangential stress flag KDFLAG: indifferent, has no influence Reduced stress flag ISFLAG: 0
= no reduced stress calculation
1,2,3
= reduced stresses according to the stress criterion, averaged in the element center of gravity
Outputs: Displacements in R and Z (= X and Y) Stresses: The stresses are displayed in average numbers from corner nodes in the element center of gravity. It is: SIGRR = stress in R direction = radial stress (= X direction), SIGZZ = stress in Z direction (= Y direction), TAURZ = shear stress in RZ level (= XY level), SIGTE = stress in circumferential direction = tangential stress. Optionally reduced stresses. Nodal forces added up per element and per node.
■■12.7 Plane
Stress Element No. 7 with 8 Nodes
This is a curvilinear Serendipity plane stress element with a quadratic approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The integration order is selected in Z88INT.TXT; order 3 is usually most suitable. This element calculates displacements as well as stresses very exactly. With the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). Be careful with distributed loads via single forces, cf. chapter 11.3. The input of distributed loads via the distributed load file is easier Z88I5.TXT. The element can be combined with plane stress elements No. 3 or better, plane stress elements No. 14. Plane stress elements No. 7 can be generated by the mesher Z88N from the following super elements: plane stress element No. 7 or No. 11. Plane stress element No. 7 is also suitable as a super element.
Figure 12.7-1: Plane stress element No. 7
406 12 The Finite Elements of Z88 and Z88Aurora
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 2 degrees of freedom Element type is 7 8 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness Z88INT.TXT Integration order INTORD for displacement calculation. 3 is mostly good Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KFLAG = 0: Calculation of SIGXX, SIGYY and TAUXY Radial/tangential stress flag KFLAG = 1: Additional calculation of SIGRR, SIGTT and TAURT Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if distributed loads should also be applied on the elements No. 7 in addition to single forces: Element number Pressure, facing positively on the edge Tangential shear in local r direction Two corner nodes and a centre node of the edge, which receive distributed loads. Mathematically, this is positive with plan view. The nodes 1-2 determine the local r direction. The local nodes 1, 2, 3 for the distributed loads naturally do not need to be identical with the local nodes 1, 2, 3 for the list of coincidence.
12.8 Torus No. 8 with 8 Nodes 407
Figure 12.7-2: Attaching the distributed loads at the plane stress element No. 7
Outputs: Displacements in X and Y Stresses: The stresses are calculated in the corner nodes or Gauss points, whose position is displayed as well. With KFLAG = 1, the radial stresses SIGRR, the tangential stresses SIGTT and the accompanying shear stresses SIGRT are additionally determined (this makes only sense if a axisymmetric structure is given). For a the simpler orientation, the respective radius and angle of the nodes/points are written to the output file. Optionally reduced stresses. Nodal forces added up per element and per node.
■■12.8 Torus
No. 8 with 8 Nodes
This is a curvilinear Serendipity torus element with quadratic approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The integration order is selected in Z88INT.TXT; the order 3 is usually best suitable. This element calculates displacements as well as stresses very exactly. With the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). Be careful with distributed loads about single forces, cf. chapter 11.3. The input of distributed loads via the distributed load file Z88I5.TXT is easier. The element can be combined with torus No. 15. Torus No. 8 can be generated by the mesher Z88N from super elements torus No. 8 or No. 12. Torus No. 8 is suited to be a super element.
408 12 The Finite Elements of Z88 and Z88Aurora
Figure 12.8-1: Torus No. 8
Inputs: Z88I1.TXT Cylindrical coordinates are expected principally: KFLAG must be 0!
R coordinate (= X), always positive
Z coordinate (= Y), always positive
Nodes with 2 degrees of freedom, R and Z (= X and Y). Element type is 8 8 nodes per element Z88ELP.TXT Cross section parameter QPARA is 0 or arbitrarily, no influence Z88INT.TXT Integration order INTORD for displacement calculation. 3 is mostly good Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/ tangential stress flag KDFLAG: no importance Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also distributed loads on the elements No. 8 should be applied:
12.9 Truss No. 9 in the Plane 409
Element number Pressure, facing positively on the edge Tangential shear in local r direction Two corner nodes and a centre node of the edge, which receive distributed loads. Mathematically, this is positive with plan view. The nodes 1-2 determine the local r direction. The local nodes 1, 2, 3 for the distributed loads naturally do not need to be identical with its local nodes 1, 2, 3 for the list of coincidence.
Figure 12.8-2: Attaching the surface loads with torus No. 8
Outputs: Displacements in R and Z (= X and Y) Stresses: The stresses are calculated in the corner nodes or Gauss points, whose position is displayed as well. It is: SIGRR = stress in R direction = radial stress (= X direction), SIGZZ = stress in Z direction (= Y direction), TAURZ = shear stress in RZ plane (= XY plane), SIGTE = stress in circumferential direction = tangential stress. Optionally reduced stresses. Nodal forces added up per element and per node.
■■12.9 Truss
No. 9 in the Plane
The truss element No. 9 can take any situation in the plane. It is the simplest element in Z88 and is calculated extremely fast. The truss elements are exact within the scope of the Hooke’s law. They are also very suitable as spring supports or oblique-angled supports.
410 12 The Finite Elements of Z88 and Z88Aurora
Figure 12.9-1: Truss No. 9 in the plane
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 2 degrees of freedom Element type is 9 2 nodes per element Z88ELP.TXT Cross section parameter QPARA is the cross-sectional area of the truss Z88INT.TXT Integration order INTORD: indifferent, has no influence Integration order INTOS: indifferent, has no influence Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG: indifferent, has no influence Reduced stress flag ISFLAG: indifferent, has no influence
Outputs: Displacements in X and Y Stresses: Tensile/compressive stresses Nodal forces in X and Y, added up per element and per node
12.10 Hexahedron No. 10 with 20 Nodes 411
■■12.10 Hexahedron
No. 10 with 20 Nodes
This is a curvilinear Serendipity volume element with quadratic approach; the integration takes place numerically in all three axes according to Gauss-Legendre. Hence, the integration order must be preselected in Z88INT.TXT. The order 3 is good. The quality of the displacement calculations and the stress calculations is far better than of the hexahedron element No. 1. Hexahedron No. 10 can also be used as a thick plate element if the plate thickness is not too small compared to the other dimensions. The element causes a huge arithmetic complexity and needs extremely much memory, because the element stiffness matrices have the order 60 × 60, but it is the most exact element for spatial continuums.
Figure 12.10-1: Hexahedron No. 10 with 20 nodes
The nodal numbering of the element No. 10 must be carried out carefully (exactly according to Figure 12.10-1). Mind the situation of the axis system! The possible error message “Jacobi determinant zero or negative” is an indication for not correct node numbering. Be careful with surface loads via single forces, cf. chapter 11.3. The input of surface loads is easier via the surface load file Z88I5.TXT. Hexahedrons No. 10 can be generated by the mesher Z88N from super elements hexahedron No. 10. Hexahedron No. 10 is also suitable as a super element. Further, super element hexahedron No. 10 can generate the finite element hexahedron No. 1.
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom Element type is 10 20 nodes per element
412 12 The Finite Elements of Z88 and Z88Aurora
Z88ELP.TXT Cross section parameter QPARA is 0 or arbitrary, no influence Z88INT.TXT Integration order INTORD for displacement calculation. 3 is mostly good Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2.3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also surface loads shall be applied on the elements No. 10: Element number Pressure, positive if facing on the surface Tangential shear in local r direction Tangential shear in local s direction 4 corner nodes and 4 centre nodes of the surface, which receive surface loads. Mathematically, this is positive with plan view. The nodes 1-2 determine the local r direction, the local s direction is defined by the nodes 1-4. The local nodes from 1 to 8 for the surface loads naturally do not need to be identical with its local nodes from 1 to 8 for the list of coincidence.
Figure 12.10-2: Attaching the surface loads with hexahedron No. 10
12.10 Hexahedron No. 10 with 20 Nodes 413
Outputs: Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, in each case for corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node For Z88thermo
:
In the thermal analysis, the finite element has only one degree of freedom per node. Beside the already abovementioned input files and output files, the following files matter for the stationary thermal simulation (pure heat conduction or thermomechanical simulation).
Inputs: Z88TI2.TXT Node number Flag for boundary condition 1 = Heat flow 2 = Temperature Value Z88TI5.TXT As Z88I5.TXT, however, here a 0 must be set for the tangential shear stress and the pressure value is the heat flux.
Outputs: Temperatures at the node Heat flow at the node Thermal stress at the node Thermal force at X, Y and Z as well as the known results from the elastostatic. Displacements at X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, each for corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node. For Z88EI
:
The statements to the element stiffness remain unchanged in comparison to the linear-elastic calculation. The only supplement is the approximation of the element mass, which arises from the element volume, and the mass density of the respective material. It is approximated by the added up part volumes or part masses from 21 included tetrahedrons.
414 12 The Finite Elements of Z88 and Z88Aurora
■■12.11 Plane
Stress Element No. 11 with 12 Nodes
This is a curvilinear Serendipity plane stress element with a cubic approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The integration order is selected in Z88INT.TXT; the order 3 is usually best suitable. This element excellently calculates displacements as well as stresses. For the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). The element is memory-intensive by its 24 × 24 element stiffness matrices. Be careful with distributed loads via single forces, cf. chapter 11.3. The input of distributed loads is easier via the distributed load file Z88I5.TXT. Plane stress element No. 11 is suitable as a super element and can generate the finite element plane stress element No. 7. Plane stress element element No. 11 cannot be generated by Z88N.
Figure 12.11-1: Plane stress element No. 11
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 2 degrees of freedom Element type is 11 12 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness Z88INT.TXT Integration order INTORD for displacement calculation. 3 is mostly good Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points
12.11 Plane Stress Element No. 11 with 12 Nodes 415
Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KFLAG = 0: Calculation of SIGXX, SIGYY and TAUXY Radial/tangential stress flag KFLAG = 1: Additional calculation of SIGRR, SIGTT and TAURT Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also distributed loads on the elements No. 11 shall be applied: Element number Pressure, facing positive on the edge Tangential shear in local r direction Two corner nodes and two centre nodes of the edge, which receive distributed loads. Mathematically, this is positive with plan view. The nodes 1-2 determine the local r direction. The local nodes 1, 2, 3, 4 for the distributed loads naturally do not need to be identical with its local nodes 1, 2, 3, 4 for the list of coincidence. 1 3
tr
p 4 2
r Figure 12.11-2: Attaching the distributed loads with plane stress element No. 11
Outputs: Displacements in X and Y Stresses: The stresses are calculated in the corner nodes or Gauss points, whose situation is displayed. With KFLAG = 1 the radial stresses SIGRR, the tangential stresses SIGTT and the accompanying shear stresses SIGRT are determined additionally (this makes only sense if an axisymmetric structure is given). To the simpler orientation, the respective radius and angle of the nodes/points are written to the output file. Optionally reduced stresses. Nodal forces added up per element and per node.
416 12 The Finite Elements of Z88 and Z88Aurora
■■12.12 Torus
No. 12 with 12 Nodes
This is a curvilinear Serendipity torus element with a cubic approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The integration order is selected in Z88INT.TXT; the order 3 is usually best suitable. This element excellently calculates displacements as well as stresses. For the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). The element is memory-intensive by its 24 × 24 element stiffness matrices. Be careful with distributed loads via single forces, cf. chapter 11.3. The input of distributed loads is easier via the distributed load file Z88I5.TXT. Torus No. 12 is also suitable as a super element and can generate the finite element torus No. 8. Torus No. 12 cannot be generated by Z88N.
Figure 12.12-1: Torus No. 12
Inputs: Z88I1.TXT Cylindrical coordinates are expected principally: KFLAG must be 0!
R coordinate (= X), always positive
Z coordinate (= Y), always positive
Nodes with 2 degrees of freedom, R and Z (= X and Y). Element type is 12 12 nodes per element Z88ELP.TXT Cross section parameter QPARA is 0 or arbitrary, no influence Z88INT.TXT Integration order INTORD for displacement calculation. 3 is mostly good
12.12 Torus No. 12 with 12 Nodes 417
Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG: no importance Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also distributed loads on the elements No. 12 should be applied: Element number Pressure, facing positive on the edge Tangential shear in local r direction Two corner nodes and two middle nodes of the edge, which receive distributed loads. Mathematically, this is positive with plan view. The local r direction is determined by the nodes 1-2. The local nodes 1, 2, 3, 4 for the distributed loads naturally do not need to be identical with its local nodes 1, 2, 3, 4 for the list of coincidence.
1 3
tr
p 4 2
r
Figure 12.12-2: Attaching the surface loads with torus No. 12
Outputs: Displacements in R and Z (= X and Y) Stresses: The stresses are calculated in the corner nodes or Gauss points, whose situation is displayed. It is: SIGRR = stress in R direction = radial stress (= X direction), SIGZZ = stress in Z direction (= Y direction), TAURZ = shear stress in RZ plane (= XY plane), SIGTE = stress in circumferential direction = tangential stress. Optionally reduced stresses. Nodal forces added up per element and per node.
418 12 The Finite Elements of Z88 and Z88Aurora
■■12.13 Beam
No. 13 in the Plane
Plane beam element with arbitrary, but symmetrical profile. The profile values are provided in Z88ELP.TXT. Thus, a variety of different beam subroutines are avoided in contrast to other FE programs with which, nevertheless, not all conceivable symmetrical profiles can be embraced. The element is exact within the scope of the Bernoulli bending theory or Hooke’s law; it is no approximation solution as for continuum elements.
Y, U 2
Y Signs
2 y
U3
1 X, U1
U2
U2
x
1
U3
U1
U1
2
Figure 12.13-1: Beam No. 13 in the plane with its sign definitions
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom Element type is 13 2 nodes per element Z88ELP.TXT Cross-sectional area QPARA Insert 0 for second moment of area RIYY around y-y axis Insert 0 for max. distance from neutral y-y axis EYY Second moment of area RIZZ around z-z axis: Insert value max. distance from neutral z-z axis EZZ: Insert value Second moment of area RIT (torsion): Insert 0 Section modulus (torsion): Insert 0 Z88INT.TXT Has no influence on beam Nr.13, however, must exist (with arbitrary contents). Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6.
X
12.14 Plane Stress Element No. 14 with 6 Nodes 419
Z88MAN.TXT Setting the beam flag IBFLAG to 1 The remaining flags have no influence.
Outputs: Displacements in X and Y, rotations around Z Stresses: SIGXX, TAUXX: Normal stress, shear stress. SIGZZ1, SIGZZ2: Bending stress around z-z, 1st and 2nd node Nodal forces in X, Y and nodal moments around Z, added up per element and per node.
■■12.14 Plane
Stress Element No. 14 with 6 Nodes
This is a curvilinear Serendipity plane stress element with square approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The integration order is selected in Z88INT.TXT; the order 7 usually is best suitable. This element calculates displacements as well as stresses rather exactly. For the stress calculation the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). Be careful with distributed loads via single forces, cf. chapter 11.3. The input of distributed loads is easier via the distributed load file Z88I5.TXT. This element is provided for the data exchange with automeshers of e.g. the 3D-CAD system Pro/ENGINEER; a mesh generation with Z88N is not implemented, because it is not needed. Here, the plane stress element No. 7 is available. Since the plane stress element No. 7 computes in principle substantially more precise than the curvilinear triangular plane stress element No. 14, the plane stress element No. 7 should be preferred.
Figure 12.14-1: Plane stress element No. 14
420 12 The Finite Elements of Z88 and Z88Aurora
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 2 degrees of freedom Element type is 14 6 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness Z88INT.TXT Integration order INTORD 7 is mostly good. Possible are: 3 for three integration bases as well as 7 and 13 for 7 or 13 integration bases. In order to combine this element with plane stress element No. 7, e.g. via Pro/ENGINEER, the following is automatically set in the routine ISOD88: Integration order 1 or 2:
3 Gauss points
Integration order 4:
7 Gauss points
Example: INTORD is put to 2: Thus, for plane stress elements No. 7, 2 × 2 = 4 Gauss points and for plane stress elements No. 7, 3 Gauss points are used for integrating. Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
3,7,13 = Calculation of the stresses in the Gauss points (e.g., 7 = 7 Gauss points). Here, the same rules as in the case of INTORD are applied. Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG = 0: Calculation of SIGXX, SIGYY and TAUXY Radial/tangential stress flag KDFLAG = 1: Additional calculation of SIGRR, SIGTT and TAURT Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also distributed loads shall be applied on the elements No. 14: Element number Pressure, facing positively on the edge Tangential shear in local r direction Two corner nodes and a centre node of the edge, which receive distributed loads. Mathematically, this is positive with plan view. The nodes 1-2 determine the local r direction. The local nodes 1, 2, 3 for the distributed loads naturally do not need to be identical with its local nodes 1, 2, 3 for the list of coincidence.
12.15 Torus No. 15 with 6 Nodes 421
1 p 3 tr 2 r Figure 12.14-2: Attaching the distributed loads with plane stress element No. 14
Outputs: Displacements in X and Y Stresses: The stresses are calculated in the corner nodes or Gauss points, whose position is displayed. With KFLAG = 1 the radial stresses SIGRR, the tangential stresses SIGTT and the accompanying shear stresses SIGRT are additionally determined (this makes only sense if a axisymmetric structure is given). For a simpler orientation, the respective radius and angle of the nodes/points are written to the output file. Optionally reduced stresses. Nodal forces added up per element and per node.
■■12.15 Torus
No. 15 with 6 Nodes
This is a curvilinear Serendipity torus element with a quadratic approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The integration order is selected in Z88INT.TXT; the order 7 usually is best suitable. This element calculates displacements as well as stresses very exactly. For the stress calculation the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). Be careful with distributed loads via single forces, cf. chapter 11.3. The input of distributed loads is easier via the distributed load file Z88I5.TXT. This element is planned for the data interchange with the automesher of the e.g. 3D-CAD system Pro/ENGINEER; a mesh generation with Z88N is not implemented, because it is not necessary. Here, the torus No. 8 is available. Since torus No. 8 computes in principle substantially more precise than the curvilinear triangular torus No. 15, torus No. 8 should be preferred.
422 12 The Finite Elements of Z88 and Z88Aurora
Figure 12.15-1: Torus No. 15
Inputs: Z88I1.TXT Cylindrical coordinates are expected principally: KFLAG must be 0!
R coordinate (= X), always positive
Z coordinate (= Y), always positive
Nodes with 2 degrees of freedom, R and Z (= X and Y). Element type is 15 6 nodes per element Z88ELP.TXT Cross section parameter QPARA is 0 or arbitrary, no influence Z88INT.TXT Integration order INTORD 7 is mostly good. Possible are: 3 for three integration points as well as 7 and 13 for 7 or 13 integration points. In order to combine this element with torus No. 8, e.g., via Pro/ENGINEER, the following is automatically set in the routine ISOD88: Integration order 1 or 2:
3 Gauss points
Integration order 4:
7 Gauss points
Example: INTORD is put to 2: Thus for axisymmetric elements No. 8, 2 × 2 = 4 Gauss points and for axisymmetric elements No. 15, 3 Gauss points are attached for integrating. Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
3,7,13 = Calculation of the stresses in the Gauss points (e.g., 7 = 7 Gauss points). Here, the same rules as in the case of INTORD are applied. Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG: no importance
12.15 Torus No. 15 with 6 Nodes 423
Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2.3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also distributed loads shall be applied on the elements No. 8: Element number Pressure, facing positively on the edge Tangential shear in local r direction Two corner nodes and a centernode of the edge, which receive distributed loads. Mathematically, this is positive with plan view. The nodes 1-2 determine the local r direction. The local nodes 1, 2, 3 for the distributed loads naturally do not need to be identical with its local nodes 1, 2, 3 for the list of coincidence.
1 p 3 tr 2 r Figure 12.15-2: Attaching the surface loads with torus No. 15
Outputs: Displacements in R and Z (= X and Y) Stresses: The stresses are calculated in the corner nodes or Gauss points, whose position is displayed. It is: SIGRR = stress in R direction = radial stress (= X direction), SIGZZ = stress in Z direction (= Y direction), TAURZ = shear stress in RZ plane (= XY level), SIGTE = stress in circumferential direction = tangential stress. Optionally reduced stresses. Nodal forces added up per element and per node.
424 12 The Finite Elements of Z88 and Z88Aurora
■■12.16 Tetrahedron
No. 16 with 10 Nodes
This is a curvilinear Serendipity volume element with quadratic approach. The integration takes place numerically in all three axes according to Gauss-Legendre. Hence, the integration order is to be preselected in Z88INT.TXT. The order 4 is good. The precision of the displacement and stress calculations is by far better than those of the tetrahedron element No. 17, however, perceptibly worse than of the hexahedron element No. 10. Tetrahedron No. 16 is also applicable as a thick plate element if the plate thickness is not too small compared to the other dimensions. The element causes a big arithmetic complexity and needs a lot of memory, because the element stiffness matrices have the order 30 × 30. Be careful with surface loads via single forces (cf. chapter 11.3). The input of surface loads is easier via the surface load file Z88I5.TXT.
Figure 12.16-1: Tetrahedron No. 16
The nodal numbering of the element No. 16 must be carried out carefully (exactly according to Figure 12.16-1). Mind the location of the axis system! The possible error message “Jacobi determinant zero or negative” is an indication for incorrect node numbering. The mapped mesher Z88N cannot generate tetrahedrons No. 16. Though a DXF exchange with Z88X is realized, but tetrahedron elements are very hard to place manually into the space on account of their unconventional geometry. Attention: the automeshers of CAD systems often generate very unfavourable element and node numberings by which the memory need is very high for Z88R (setting Cholesky solver) – absolutely uselessly. Renumbering can make sense. Or you better work immediately with one of the sparse solvers (SICCG, SORCG, Pardiso).
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom Element type is 16 10 nodes per element
12.16 Tetrahedron No. 16 with 10 Nodes 425
Z88ELP.TXT Cross section parameter QPARA is 0 or arbitrary, no influence Z88INT.TXT Integration order INTORD for displacement calculation. 4 is mostly good. 1 is allowed for one integration point and 4 and 5 for 4 or 5 integration points. Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,4,5
= Calculation of the stresses in the Gauss points (e.g., 4 = 4 Gauss points)
Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter11.4) if in addition to single forces also distributed loads shall be applied on the elements No. 16: Element number Pressure, facing positively on the surface Three corner nodes and three centre nodes of the surface, which receives surface loads. Mathematically, this is positive with plan view. The local nodes from 1 to 6 for the surface loads naturally do not need to be identical with its local nodes from 1 to 6 for the list of coincidence.
3
6
5
p
2 1
4
Figure 12.16-2: Applying pressure loads on tetrahedron No. 16
426 12 The Finite Elements of Z88 and Z88Aurora
Outputs: Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, each at corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node For Z88thermo
:
In the thermal analysis, the finite element has only one degree of freedom per node. Beside the already abovementioned input files and output files, the following files exist at the stationary thermal simulation (pure heat conduction or thermomechanical simulation).
Inputs: Z88TI2.TXT Node number Flag for boundary condition 1 = Heat flow 2 = Temperature Value Z88TI5.TXT Like Z88I5.TXT, the pressure value is the heat flux.
Outputs: Nodal temperatures Nodal heat flow values Thermal strains (nodal) Thermal force in X, Y and Z as well as the results known from the elastostatic. Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, each at corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node. For Z88EI : The statements to the element stiffness remain unchanged in comparison to the linear-elastic calculation. The only supplement is the approximation of the element mass, which arises from the element volume, and the mass density of the respective material. It is approximated by the added up part volumes or part masses from eight inscribed tetrahedrons.
12.17 Tetrahedron No. 17 with 4 Nodes 427
■■12.17 Tetrahedron
No. 17 with 4 Nodes
The tetrahedron element calculates spatial states of stress. The transformation is isoparametric; the integration takes place numerically in all three axes according to Gauss-Legendre. Hence, the integration order is to be preselected in Z88INT.TXT. The order 1 is in general enough. Tetrahedron No. 17 is also applicable very well as a thick plate element if the plate thickness is not too small compared to the other dimensions. Considered altogether, the arithmetic accuracy of tetrahedron No. 17 is bad. Extremely fine meshes are necessary for receiving useful results. If possible, you should work with tetrahedrons No. 16, hexahedrons No. 1 and (best of all) with hexahedrons No. 10. The mesher Z88N cannot generate tetrahedrons No. 17. A DXF exchange with Z88X is indeed realized, but tetrahedron elements are very difficult to place in the space “by hand” due to their unconventional geometry. Attention: The automeshers of CAD systems often generate very unfavourable element and node numberings by which the memory need for Z88R increases (setting Cholesky solver) – absolutely useless. Renumbering can make sense. Or you better work immediately with one of the sparse solvers (SICCG, SORCG, Pardiso).
Figure 12.17-1: Tetrahedron No. 17
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom Element type is 17 4 nodes per element Z88ELP.TXT Cross section parameter QPARA is 0 or arbitrary, no influence Z88INT.TXT Integration order INTORD for displacement calculation. 1 is mostly good. Possible values for the number of integration points (INTORD) are 1, 4 and 5.
428 12 The Finite Elements of Z88 and Z88Aurora
Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,4,5
= Calculation of the stresses in the Gauss points (e.g., 4 = 4 Gauss points)
Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also distributed loads should be applied on the elements No. 17: Element number Pressure, facing positively on the surface Three corner nodes of the surface, which receive surface loads. Mathematically, this is positive with plan view. The local nodes 1, 2, 3 for the surface loads naturally do not need to be identical with its local nodes from 1 to 3 for the list of coincidence. 3
p
2 1 Figure 12.17-2: Applying pressure loads on tetrahedron No. 17
Outputs: Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, each at corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node. For Z88thermo
:
In the thermal analysis, the finite element has only one degree of freedom per node. Beside the already abovementioned input files and output files, the following files exist at the stationary thermal simulation (pure heat conduction or thermomechanical simulation).
12.18 Plate No. 18 with 6 Nodes 429
Inputs: Z88TI2.TXT Node number Flag for boundary condition 1 = Heat flow 2 = Temperature Value Z88TI5.TXT Like Z88I5.TXT, the pressure value is the heat flux.
Outputs: Temperatures at the node Heat flow at the node Thermal strains (nodal) Thermal force in X, Y and Z as well as the known results from the elastostatic. Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, each at corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element or per node. For Z88EI
:
The statements to the element stiffness remain unchanged in comparison to the linear-elastic calculation. The only supplement is the approximation of the element mass, which arises from the element volume, and the mass density of the respective material.
■■12.18 Plate
No. 18 with 6 Nodes
This is a curvilinear Serendipity Reissner-Mindlin plate element with a quadratic approach. The transformation is isoparametric; the numerical integration takes place according to GaussLegendre. The integration order is selected in Z88INT.TXT; the order 3 (3 Gauss points) is usually best suitable (reduced integration). This element calculates displacements as well as stresses rather substantially. With the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). For this element the plate flag IPFLAG in Z88MAN.TXT is to set to 1. Attention: in contrast to the standard definitions of the engineering mechanics, here Θx is the rotation or incline around the abscissa and Θy is the rotation around the ordinate.
430 12 The Finite Elements of Z88 and Z88Aurora
This element is planned for the data exchange with automeshers of the e.g. 3D-CAD system Pro/ ENGINEER of Parametric Technology; a mesh generation with Z88N is not implemented, because it is not necessary. Here, the plates No. 20 are available. Because plates No. 20 compute principle conditioned more exactly than the curvilinear triangular plates No. 18, plate No. 20 should be used preferentially.
Figure 12.18-1: Plate No. 18
Figure 12.18-2: Sign definition for plate No. 18
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom (w, Θx, Θy) Element type is 18 6 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness. Z88INT.TXT Integration order INTORD for displacement calculation. 3 is mostly good. Possible is: 3 for three integration points as well as 7 and 13 for 7 or 13 integration points. To enable that this element can be combined with plate No. 20, e.g., via Pro/ENGINEER, it is put automatically internally in the routine SPLA88:
12.19 Plate No. 19 with 16 Nodes 431
Integration order 1 or 2 in Z88I1.TXT:
3 Gauss points
Integration order 4 in Z88I1.TXT:
7 Gauss points
Example: In Z88I1.TXT INTORD is put to 2: Then with it for plate No. 20 2 × 2 = 4 Gauss points and for plate No. 18 3 Gauss points are used for integrating. Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
3,7,13 = Calculation of the stresses in the Gauss points (e.g., 7 = 7 Gauss points). Here, the same rules as for INTORD are applied. Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Set plate flag IPFLAG to 1 (or 2 to adjust the shear influence) Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also surface loads should be applied on the elements No. 17: Element number Pressure, facing positively on the surface
Outputs: Displacements in Z (w) and rotations (inclines) around abscissa and ordinate (Θx and Θy) Stresses: The stresses are calculated in the corner nodes or Gauss points, whose position is displayed. The plate bending moments Mxx and Myy (unit: force × length / length) plate torsion moments Mxy = Myx (unit: force × length / length) shear forces Qyz and Qzx (unit: force / length) real stresses which result from the plate moments and shear forces are displayed. Optionally reduced stresses. Nodal forces at first per element, and then added up per node.
■■12.19 Plate
No. 19 with 16 Nodes
This is a curvilinear Lagrange-Reissner-Mindlin plate element with a fully cubic approach. The transformation is isoparametric; the numerical integration takes place according to
432 12 The Finite Elements of Z88 and Z88Aurora
Gauss-Legendre. The integration order is selected in Z88INT.TXT; the order 4 (4 × 4 Gauss points) is the most suitable one. This element calculates displacements as well as stresses very exactly. The input complexity is considerable; the mesh should be preferably generated from the mesher Z88N. For the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). For this element, the plate flag IPFLAG in Z88MAN.TXT is to set to 1. Attention: in contrast to the usual definitions of the engineering mechanics, here Θx is the rotation or incline around the abscissa and Θy the rotation around the ordinate. Mesh generation with Z88N: As super elements plate No. 20 is used, then finite elements of the type 19 can be generated with Z88N (plate No. 20 can be generated by AutoCAD or Pro/ENGINEER, cf. the descriptions of Z88X and Z88G). A little tricky, but effective. Here as an example, a mesher input file Z88NI.TXT: … 5
20
Super element 5 of the type 20
20 25 27 22 24 26 28 21 … 5
19 generate from the super element 5 (which is from the type 20, see above) finite elements of the type 19
3 E
3 E … and divide them three times equidistant in X direction and three times equidistant in Y direction
Figure 12.19-1: Plate No. 19 with 16 nodes
Figure 12.19-2: Sign definition plate No. 19
12.19 Plate No. 19 with 16 Nodes 433
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom (w, Θx, Θy) Element type is 19 16 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness. Z88INT.TXT Integration order INTORD for displacement calculation. 4 is mostly good. Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Plate flag IPFLAG is to set to 1 (or 2 to cushion the shear influence) Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also surface loads should be applied on the elements No. 17: Element number Pressure, facing positively on the surface
Outputs: Displacements in Z (w) and rotations (inclines) around abscissa and ordinate (Θx and Θy) Stresses: The stresses are calculated in the corner nodes or Gauss points, whose situation is displayed. The plate bending moments Mxx and Myy (unit: force × length / length) plate torsion moments Mxy = Myx (unit: force × length / length) shear forces Qyz and Qzx (unit: force / length) real stresses, which result from the plate moments and shear forces are displayed. Optionally reduced stresses. Nodal forces at first per element, and then added up per node.
434 12 The Finite Elements of Z88 and Z88Aurora
■■12.20 Plate
No. 20 with 8 Nodes
This is a curvilinear Serendipity Reissner-Mindlin plate element with quadratic approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The integration order is selected in Z88INT.TXT; the order 2 (2 × 2 Gauss points) is the most suitable one (reduced integration). This element calculates displacements as well as stresses rather substantially. For the stress calculation the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). For this element the plate flag IPFLAG in Z88MAN. TXT is to put to 1. Attention: in contrast to the usual definitions of the engineering mechanics, here is Θx the rotation or incline around the abscissa and Θy the rotation around the ordinate. This element is planned for the data interchange with automeshers of the e.g. 3D-CAD system Pro/ ENGINEER, and a mesh generation with Z88N is possible. Here, it cannot generate only finite elements No. 20, but also finite elements No. 19 with 16 nodes.
Figure 12.20-1: Plate No. 20
Figure 12.20-2: Sign definition plate No. 20
12.20 Plate No. 20 with 8 Nodes 435
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom (w, Θx, Θy) Element type is 20 8 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness. Z88INT.TXT Integration order INTORD for displacement calculation. 2 is mostly good. Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Plate flag IPFLAG is to put to 1 (or 2 to adjust the shear influence) Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also surface loads should be applied on the elements No. 17: Element number Pressure, facing positively on the surface
Outputs: Displacements in Z (w) and rotations (inclines) around abscissa and ordinate (Θx and Θy) Stresses: The stresses are calculated in the corner nodes or Gauss points, whose position is displayed. The plate bending moments Mxx and Myy (unit: force × length / length) plate torsion moments Mxy = Myx (unit: force × length / length) shear forces Qyz and Qzx (unit: force / length) real stresses, which result from the plate moments and shear forces are displayed. Optionally reduced stresses. Nodal forces at first per element, then added up per node.
436 12 The Finite Elements of Z88 and Z88Aurora
■■12.21 Shell
No. 21 with 16 Nodes
This is a curvilinear Serendipity volume shell element. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The element can be bent ar bitrarily; actually, it is a hexahedron, which has a quadratic approach in the surface planes and a linear approach in the depth direction. The integration order is selected in Z88INT.TXT; the order 3 (3 × 3 Gauss points) is the most suitable one. This element calculates displacements as well as stresses very exactly. For the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly).
Figure 12.21-1: Volume shell No. 21
Three degrees of freedom are the global displacements in X, Y and Z. There are no rotation degrees of freedom, because it is a volume element. The mapped mesher Z88N can generate the element: type 21 → type 21.
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom Element type is 21 16 nodes per element Z88ELP.TXT Cross section parameter QPARA has no importance. Z88INT.TXT Integration order INTORD for displacement calculation. 3 is mostly good. Integration order INTOS for stress calculation:
12.21 Shell No. 21 with 16 Nodes 437
0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also surface loads should be applied on the elements No. 21: Element number Pressure, facing positively on the surface Tangential shear in local r direction Tangential shear in local s direction 4 corner nodes and 4 middle nodes of the surface, which receives surface loads. Mathematically, this is positive with plan view. The nodes 1-2 determine the local r direction, the local s direction by the nodes 1-4. The local nodes from 1 to 8 for the surface loads naturally do not need to be identical with its local nodes from 1 to 8 for the list of coincidence. s
3 7
p
r 6
ts 4 8
2
tr
5
1 Figure 12.21-2: Application of surface loads with volume shells No. 21
Outputs: Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, each at corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node
438 12 The Finite Elements of Z88 and Z88Aurora
■■12.22 Shell
No. 22 with 12 Nodes
This is a curvilinear Serendipity volume shell element. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. The element can be bent arbitrarily; actually, it is a sort of pie slice, which has a quadratic approach in the surface plane and a linear approach in the deepness direction. The integration order is selected in Z88INT.TXT; the degree 7 (7 × 7 Gauss points) is the most suitable one. This element calculates displacements as well as stresses very exactly. For the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly).
Figure 12.22-1: Volume shell No. 22
The three degrees of freedom are the global displacements in X, Y and Z. There are no rotation degrees of freedom, because it is a volume element.
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 3 degrees of freedom Element type is 22 12 nodes per element Z88ELP.TXT Cross section parameter QPARA has no importance. Z88INT.TXT Integration order INTORD for displacement calculation. 3, 7 and 13 are possible; 7 it is mostly good.
12.22 Shell No. 22 with 12 Nodes 439
Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
3,7,13 = Calculation of the stresses in the Gauss points (e.g., 7 = 7 Gauss points). Z88MAT.TXT Input of the material(s) cf. chapter 11.5 and 11.6. Z88MAN.TXT Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also surface loads should be applied on the elements No. 22: Element number Pressure, facing positively on the surface 3 corner nodes and 3 centre nodes of the surface, which receives surface loads. Mathematically, this is positive with plan view.
Y
3
6
1
5
p
4
2 X
Z Figure 12.22-2: Application of surface loads with volume shells No. 22
Outputs: Displacements in X, Y and Z Stresses: SIGXX, SIGYY, SIGZZ, TAUXY, TAUYZ, TAUZX, each at corner nodes or Gauss points. Optionally reduced stresses. Nodal forces in X, Y and Z, added up per element and per node
440 12 The Finite Elements of Z88 and Z88Aurora
■■12.23 Shell
No. 23 with 8 Nodes
This is a curvilinear Serendipity shell element with quadratic approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. All nodes must lie on a plane, which is positioned arbitrarily in the space. This procedure is very convenient for the data exchange with 3D CAD systems. The integration order is selected in Z88INT.TXT; the order 3 (3 × 3 Gauss points) is most suitable. This element calculates displacements as well as stresses rather substantially. For the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). For this element the shell flag IHFLAG in Z88MAN.TXT is to put to 0 or 1, with thin shells IHFLAG is set to 2 or 3, with very thin shells to 4.
Figure 12.23-1: Shell element No. 23
The first three degrees of freedom are the global displacements in X, Y and Z, the degrees of freedom 4 and 5 are the global rotations in the respective node (hence, only few useful); the degree of freedom 6 is a pseudo degree of freedom, which has no practical importance. Practically useful and interesting are only the global displacements in X, Y and Z, which are also enough for the practice.
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 6 degrees of freedom Element type is 23 8 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness Z88INT.TXT Integration order INTORD for displacement calculation. 3 is mostly good. Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
1,2,3,4 = Calculation of the stresses in the Gauss points
12.23 Shell No. 23 with 8 Nodes 441
Z88MAT.TXT Input of the materials, cf. chapter 11.5 and 11.6. Z88MAN.TXT Shell flag IHFLAG is to put to 0 or 1, or 2 or 3 with thin, 4 with very thin shells. Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also surface loads should be applied on the elements No. 23: Element number Pressure, facing positively on the surface 4 corner nodes and 4 middle nodes of the surface, which receives surface loads. Mathematically, this is positive with plan view. Y 3 7
p 6 2
4
5
8 1
X
Z
Figure 12.23-2: Surface loads with shell element No. 23
The nodes 1-2 determine the local r direction, the local s direction is defined by the nodes 1-4. The local nodes from 1 to 8 for the surface loads do not need naturally identically with its local nodes from 1 to 8 for the list of coincidence.
Outputs: Displacements in X, Y and Z and global rotations around abscissa and ordinate (Θx and Θy) Stresses: The stresses are calculated in the corner nodes or Gauss points, which situation is displayed. The stresses SIGXX, SIGYY and TAUXY as well as the reduced stresses are optionally displayed. Nodal forces at first per element, and then added up per node.
442 12 The Finite Elements of Z88 and Z88Aurora
■■12.24 Shell
No. 24 with 6 Nodes
This is a curvilinear bounded Serendipity shell element with a quadratic approach. The transformation is isoparametric; the numerical integration takes place according to Gauss-Legendre. All nodes must lie on a common, but arbitrarily in the space placed plane, which is very practical for the data interchange with 3D CAD systems. The integration order is selected in Z88INT. TXT; the order 7 (7 Gauss points) is the most suitable one. This element calculates displacements as well as stresses rather substantially. For the stress calculation, the integration order can be selected once more, the stresses can be calculated in the corner nodes (provides an overview) or in the Gauss points (considerably more exactly). For this element the shell flag IHFLAG in Z88MAN.TXT is to put to 0 or 1, with thin shells IHFLAG is set to 2 or 3, with very thin shells to 4.
Figure 12.24-1: Shell No. 24
The first three degrees of freedom are the global displacements in X, Y and Z, the degrees of freedom 4 and 5 are the global distortions in the respective node (hence, less useful); the degree of freedom 6 is a pseudo degree of freedom, which has no practical importance. Practically useful and interesting are only the global displacements in X, Y and Z, which are also enough for the practice.
Inputs: Z88I1.TXT KFLAG for Cartesian (0) or cylindrical coordinates (1) Nodes with 6 degrees of freedom Element type is 24 6 nodes per element Z88ELP.TXT Cross section parameter QPARA is the element thickness Z88INT.TXT Integration order INTORD for displacement calculation. 3, 7 and 13 are possible; 7 is mostly good.
12.24 Shell No. 24 with 6 Nodes 443
Integration order INTOS for stress calculation: 0
= Calculation of the stresses in the corner nodes
3,7,13 = Calculation of the stresses in the Gauss points (e.g., 7 = 7 Gauss points). Z88MAT.TXT Input of the material(s), cf. chapter 11.5 and 11.6. Z88MAN.TXT Shell flag IHFLAG is to put to 0 or 1, or 2 or 3 with thin, 4 with very thin shells. Radial/tangential stress flag KDFLAG arbitrary, has no influence Reduced stress flag ISFLAG: 0
= no calculation of the reduced stresses
1,2,3
= reduced stresses according to the stress criterion in the Gauss points (INTOS not 0!)
Z88I5.TXT This file is only filled (cf. chapter 11.4) if in addition to single forces also surface loads should be applied on the elements No. 24: Element number Pressure, facing positively on the surface 3 corner nodes and 3 middle nodes of the surface, which receives surface loads. Mathematically, this is positive with plan view.
Figure 12.24-2: Surface loads with shell element No. 24
Outputs: Displacements in X, Y and Z and global rotations around abscissa and ordinate (Θx and Θy) Stresses: The stresses are calculated in the corner nodes or Gauss points whose position is displayed. The stresses SIGXX, SIGYY and TAUXY as well as the reduced stresses are optionally displayed. Nodal forces at first per element, and then added up per node.
444 12 The Finite Elements of Z88 and Z88Aurora
■■12.25 Element/Solver
Z88Aurora V2
Overview
Table 12.25-1: Which solver works with which element model
Element type Approach Hexahedron Hexahedron No.1
linear
Hexahedron No.10
quadratic
Tetrahedron Tetrahedron No.16
quadratic
Tetrahedron No.17
linear
Plane stress element
Plane stress element No.3
quadratic
Plane stress element No.7
quadratic
Plane stress element No.11
cubic
Plane stress element No.14
quadratic
Torus Torus No.6
linear
Torus No.8
quadratic
Torus No.12
cubic
Torus No.15
quadratic
Plate element Plate element No.18
quadratic
Plate element No.19
cubic
Plate element No.20
quadratic
Shell Shell No.21
3D quadratic
Shell No. 22
3D quadratic
Shell No. 23
2D quadratic
Shell No. 24
2D quadratic
Trusses and beams Truss No.4
exact
Truss No.9
exact
Beam No.2
exact
Beam No.13
exact
Cam No.5
exact
13
Examples
In this chapter, 32 examples (with other sub examples) are covered, of which the examples 1 to 24 can be carried out with the Open Source version of Z88 as well as with the Z88Aurora Freeware. The examples 25 to 32 are especially designed for the use of Z88Aurora. For all examples, the respective input files are in the correspondent directories “Z88 V14” and “Z88Aurora” on the DVD. Only the calculation must be carried out. You can import all files of Z88V14 in Aurora; as it is explained later. The examples 4, 6, 7, 13, 17 and 18 can easily be analytically recalculated. The first examples are described very detailed and step by step, so that you can get familiar with the procedure very quickly. Then the later examples require the knowledge of how to use Z88, and they concentrate more on the background of the respective job. The first examples are easy, then they gradually become more complicated, hence, you should work through the examples in sequence. If examples do not start, a memory problem can be on hand. Do other programs require memory, particularly these fat and greedy memory eaters like office packages? All examples were tested on the different computer systems and operating systems, and the smaller examples run even on older computers. Current PCs compute very big Z88 structures without any problems as shown in example 21. The biggest computed structure up to now had 12 million degrees of freedom and ran on a 64 bit PC with 64 bit Windows or with 64 bit LINUX. Adjust Z88.DYN if necessary. Mind the .LOG files: If the memory does not suffice, it is noted in this file. After you have tried the prepared examples, you should design your own examples in your CAD system. Export your models/drawings with a CAD system compatible to AutoCAD as DXF files and convert them with Z88X to Z88 files for Z88 V14 OS or to a STL or STEP file for Z88Aurora. If the Z88-DXF converter Z88X does not convert your DXF files properly, then particularly repeat the steps 3 and 5 of the chapter 10.7.2. If nothing works, try another CAD program. Do you have a 3D CAD system with an integrated automesher? Then you can export FE meshes in ANSYS-PREP7, COSMOS or NASTRAN format and convert them to Z88 input files with Z88G or Z88ASY in Z88 V14 OS or with the import function in Z88Aurora. Tips for Z88 V14: The import and export files are shown partially shortened so to not fill sides needlessly. Only the essentials should be shown. You can start all examples any time yourself.
446 13 Examples
Furthermore, consider the protocol files .LOG generated by the Z88 modules. Vary the input files, especially the mesher input files of examples1, 5 and 7. Thus, one gets a feeling for the use of Z88. Note that the floating point Figure 0 is never really a zero in a computer, but is shown as an approximation. Hence, even the input, which is given in Z88I1.TXT as 0 can reappear in output file Z88O0.TXT in very small figures, caused by formatting of the run time system. This is normal. This applies even more for calculated values, as for example displacements in Z88O2.TXT, stresses in Z88O3.TXT and nodal forces in Z88O4.TXT. Such values are always to be seen relatively to other values: Is the biggest calculated displacement in Z88O2.TXT for example 0.1 mm, then another displacement with e. g. 1.234E-006 mm should be regarded as de facto zero. In ANSYS-PREP7, COSMOS or NASTRAN files first check with Z88R in the test mode how much memory is required and how good the node numbering is. If necessary, run the Cuthill-McKee algorithm Z88H in Z88 V14 OS. But it is better to use one of the sparse matrix solvers from the beginning. Tips for Z88Aurora V2: The examples exist as a complete project directory as an overview or the import files can be used to generate your own examples. The process of the FE analysis in Z88Aurora always proceeds according to the workflow that can be seen in Figure 13.0-1. Import
Pre-processing
Solver
Postprocessing
boundary conditions
Data import
Create mesh
- .stp - .igs - .stl - .dxf
free mesher :
- .ans - .nas - .inp - .cos
Assign material
TET4 TET10
mapped mesher : HEX8 HEX20 super elements
E
forces
pressure
Solver:
Results :
direct - Cholesky
stresses displacements
sparse matrix , direct - Pardiso (Multicore) sparse matrix, iterative
displacements
- SICCG
- SORCG
- homogenous - inhomogenous
MECHANICAL
Figure 13.0-1: Proceeding of finite element analysis with the example of a static mechanical analysis
Z88Aurora distinguishes itself by the intuitive operation of the pre-processor and post-processor. The project data management takes place with a project folder management. A status display provides better ease of use. Several menu bars are important for the operation. Four icon menu bars offer the fast access of all functions of Z88Aurora. The main functions of the first icon menu bar, as for example pre-processor, open additional side menus. The other three icon menu bars contain various view manipulations, colour settings, import options and the preprocessor functionalities.
13 Examples 447
text menu bar
tab bar
icon menu bar with tool tips
workspace
status information
Figure 13.0-2: User interface of Z88Aurora
In the text menu bar, all functionalities of the icon menu bar and the side menus are included; the respective icons are shown in front of the text commands. According to the current working step, several tabs exist in the tab bar, as for example the material cards in the material menu, and you can change between those. With activation of the “X” in every tab bar, the tab can be closed. The icon menu bar is divided into different blocks: the project folder management, the type of analysis, the context sensitive side menus and the support. According to status of the analysis several icons are displayed in grey, because the functionality is not available at the current time.
Figure 13.0-3: Main icon bar for the operation
448 13 Examples
Short explanation of the examples Example 1: Flat wrench. 2D plane stress element with plane stress elements No. 7 and use of mesher. Educational objective Z88 V14 OS: Use of CAD and mesher with curvilinear 2D structures, stress display in the plot program. Tip: This example already exists ready to load as the first import example in the Z88 V14 OS load modules in the respective BIN subdirectories. Educational objective Z88Aurora: Creating a project, import of a Z88 V14 OS model, definition of plane stress element thickness, material allocation, introduction to picking: element and node picking, display of picking points, generating a FE structure from super elements, boundary condition allocation, running a calculation, choice of the analysis method, display options in the post-processor. Example 2: Crane truss. Spatial framework with trusses No. 4. Educational objective Z88 V14 OS: Use of the different display options and spatial rotation possibilities in the plot program. Educational objective Z88Aurora: Import of an AUTOCAD DXF structure, adjusting of the tool bar, use of the workflow support SPIDER, node picking, element parameter definition, generating a new material. Example 3: Transmission shaft. Linear structure with shaft No. 5 and force application in several planes, statically over-determined. Educational objective Z88 V14 OS: Use of the shaft elements, selecting the boundary conditions of finite elements with 6 degrees of freedom/node. Educational objective Z88Aurora: Generating structure elements and nodes and manually generating elements, element parameters of a shaft, boundary conditions. Example 4: Two-dimensional beam, repeatedly statically over-determined. Both-sided fixed support, beam No. 13. Educational objective Z88 V14 OS: Use of beam No. 13, selecting the boundary conditions and interpreting the results. Educational objective Z88Aurora: Production of structure elements, node and elements production by hand (manual), element parameter shaft, boundary conditions. Example 5: Plate segment in tart form. General spatial problem with hexahedrons No. 10 as super elements and mesh generation of hexahedrons No. 1. Educational objective Z88 V14 OS: Use of the mesher with curvilinear, spatial elements, use of the stress display, different displaying options and spatial rotation possibilities in the plot program. Educational objective Z88Aurora: Settings of the mesher, edge picking. If you have computed this example, it would be a good idea, to use the mesh generator to create a hexahedron No. 10 mesh with 20 nodes instead of 8 nodes (which poses no problem for the mesher). In that case you have to enter new boundary conditions, because the nodes numeration has been changed. Example 6: Pipe under internal hydrostatic pressure of 1,000 bar. Axisymmetric problem, solved as a plane stress element problem with plane stress elements No. 7. Educational objective Z88 V14 OS: Use of symmetric qualities of a structure and choice of the boundary conditions and distributed loads, stress display in the plot program.
13 Examples 449
Educational objective Z88Aurora: Import of a Z88 V14 project, definition of plane stress element thickness. Example 7: Press fit assembly. Axisymmetric problem with torus elements No. 8 and mesher. Educational objective Z88 V14 OS: Working with axisymmetric elements, use of the mesher with mesh compression, stress display in the plot program. Then solving the problem with torus elements No. 15. Comparison of the results. Educational objective Z88Aurora: Mesher control, node picking with the Alt key. Example 8: Two-stroke piston. A piston for a two-stroke Otto engine is to be calculated. The load is the combustion pressure, the piston pin bores is defined as the bearing. Educational objective Z88 V14 OS: Use of complicated parts, which are originally created in 3D programs and are meshed with the automeshers, integrated in these programs. Because here the influence from bending is not dominating compared to the influence of the compression force, tetrahedron No. 17 with linear approach should be sufficient for the first attempt. A surface load file Z88I5.TXT is generated. Educational objective Z88Aurora: Import of a NASTRAN structure, import of STL geometry, generating a tetrahedron mesh, mesh check, surface picking, pressure boundary conditions with volume elements, set management, solver parameters PARDISO, selecting machine parameters. Example 9: RINGSPANN spring element. A so-called RINGSPANN spring element, which should work as a force transmitter, is to be calculated. Educational objective Z88 V14 OS: Calculation of springs with the finite element analysis, i. e. large deformation. Hexahedron No. 10 with quadratic approach. Educational objective Z88Aurora: Import of Z88 V14 project data. Example 10: Liquefied gas tank. A pressure tank for liquefied gas which is inserted into a passenger car is to be calculated. It is fixed on both sides with a ring flange in the floor. In a side crash simulation, it should be checked how strong the deflections and stresses are under a load of 1,200,000 N. Educational objective Z88 V14 OS: Application of boundary conditions and practicing the interaction with AutoCAD. Educational objective Z88Aurora: Import of Z88 V14 project data, display of the node numbering in the user interface. Example 11: Motorcycle crankshaft. A crankshaft is imported from a 3D CAD system. Educational objective Z88 V14 OS: The smart application of boundary conditions already in the CAD program. Because a strong influence from bending is to be expected, tetrahedrons No. 16 with quadratic approach are used. Educational objective Z88Aurora: STL import, meshing with Tetgen, allocation of meshing rules, changing mesher parameters, projected surface load, use of sparse matrix-iteration solver, surface picking and set creation. Example 12: Torque-measuring hub. A deflection element for a torque-measuring hub is given. General educational objective: Smart reproduction of the engineering mechanics with the boundary conditions. First straight triangular plane stress elements No. 3 are used, later curvilinear triangular plane stress elements No. 14.
450 13 Examples
Example 13: Two-dimensional frame. A 3 joint frame can be very easily calculated analytically. With a FEA program, this just goes as well if one handles the missing element models “beam with joint” cleverly. Educational objective Z88 V14 OS: Calculation of 2D frameworks, simulation of joints free of bending moment. Educational objective Z88Aurora: Generating element sets for directed mesh generation, generating FE structures from super elements, material data and unit consistency. Example 14: Pinion. We look at a gearwheel whose hub is fixed on the shaft with a press fit assembly. The pressure of the press fit assembly should amount to 100 N/mm2. The deflection, which is conducted by the expansion of the hub to the gearing, should be examined. General educational objective: Introduction to the so-called virtual fixed point, judging the meshes generated with automeshers. Educational objective Z88 V14 OS: Adopting the so-called shell elements (which really are plane stress elements) from Pro/ENGINEER in Z88 V14. Educational objective Z88Aurora: Import Nastran: Setting “Plane stress elements”, import STEP geometry, tetrahedron meshing, pressure boundary conditions with tetrahedron elements, comparison of results with plane stress element No. 7, plane stress element No. 14 and tetrahedrons No. 16. Example 15: Wrench from Pro/ENGINEER. A wrench was generated in the 3D CAD program Pro/ENGINEER as a 3D model. General educational objective: Here, it is shown, how the different FE element types, as they are used by automeshers, are used sensibly. The interaction between element number, element model and calculation result is made very clear here. Educational objective Z88Aurora: Tool “distance measure”. Example 16: Dynamometer. The deflection element of a so-called dynamometer shall be calculated with Z88. General educational objective: The effects on the displacements calculated by Z88 with different element models and gradual mesh refinement of an easy part should give the reader a feeling for the right size of the default setting of parameters in the FE analysis. Educational objective Z88 V14 OS: Here, the work with the DXF converter Z88X is demonstrated very detailed. Educational objective Z88Aurora: Generating a line load. Example 17: Cylindrical plate. A simple cylindrical plate, which was “constructed” before as a Pro/ENGINEER 3D structure, is calculated. Educational objective Z88 V14 OS: Getting to know the approach with plate calculations, adoption of a completed FE mesh. Educational objective Z88Aurora: Import of a COSMOS file with import possibility plates Example 18: Square plate. A plate problem with 16-node Lagrange plates No. 19. General educational objective: Generating a super structure from 8-node plates No. 20 with AutoCAD, DXF export with Z88X, then mesh creation with Z88N with plates No. 19. Afterwards plate calculation with the sparse matrix solvers.
13 Examples 451
Example 19: Otto 4-stroke piston. A piston shall be calculated (simplified) for a BMW motorcycle engine. The load is the combustion pressure simulated with single forces, the piston pin mounting is defined as the bearing. General educational objective: Use of the sparse matrix iteration solver for a bigger structure. Example 20: Automobile engine fan wheel made of plastic. This example has no less than 1.2 million degrees of freedom. This example requires a modern, well equipped computer, and you can check the limitations of your computer with this structure. Educational objective Z88Aurora: Activate “Quick view” for big components, editing solver parameters for SORCG and SICCG, filtering of results in the post-processor. Example 21: Diesel engine piston. A spatial problem with tetrahedrons No. 16. General educational objective: Based on a NASTRAN file, which was generated in Pro/ENGINEER, the converter Z88G and the sparse matrix iteration solver are used. Here, you shall work with a structure, which comes from a CAD program and uses the surface load file Z88I5.TXT. Example 22: Identification of a stress concentration factor. The machine element literature suggests stress concentration factors αk for changes in the cross-sectional area for the calculation of notch stresses. Here, it is shown how those stress concentration factors are determined by means of FEA. As a specific feature, the super structure here is not designed by CAD program, but it is generated manually. Therefore one is able to react very easily to different notch radii. Example 23: Gear root stress. Here, based on the creation of geometry, it is shown how to qualitatively estimate the gear root stress (very simplified) without consideration of the German Standards (DIN). Educational objective Z88Aurora: Display of element numbering and element information in the Z88Aurora surface. Example 24: Square pipe. The torsion of a square pipe is calculated with shells No. 24 and the results are interpreted. General Educational objective: Shell calculation Following examples are designed specifically for Z88AuroraV2: Example 25: Submarine. A submarine created in a CAD system as a shell structure is imported with the help of the NASTRAN interface. In Z88Aurora, it is thickened with the mapped mesher Z88MVS to a volume shell. Educational objective Z88Aurora: Mapped mesher for volume shells, clipping of a large structure. Example 26: Gearwheel (tetrahedrons No. 17). In this example, a gearwheel which is given as an ABAQUS INP file is imported into Z88Aurora and then, it is calculated. The calculation takes place with a static line load, however, it does not substitute a stress calculation according to the German Standard DIN 3990. Educational objective Z88Aurora: Import ABAQUS file, use of line loads. Example 27: Bass drum. The membrane of a bass drum (hexahedron elements No. 1) is examined for natural frequencies. The smallest is responsible for the deep fundamental tone. Educational objective Z88Aurora: Natural frequency with boundary conditions. Example 28: Modal analysis of crankshaft. A small crankshaft of a motorcycle engine is composed from tetrahedrons No. 10 and is examined for natural frequencies. The frequency of every cyclic load should be far away from the calculated frequency band so not to cause resonances.
452 13 Examples
Educational objective Z88Aurora: Natural frequency without boundary conditions. Example 29: Thermal analysis of a Diesel piston. The Diesel piston from example 21 is exposed to two temperatures, and the temperature profile is examined. Educational objective Z88Aurora: Thermal analysis, heat conduction, application of thermal boundary conditions, post-processor temperature. Example 30: Thermomechanical analysis of a spoon (tetrahedrons No. 16). It is simulated that the spoon is held in one hand and a soup is eaten. Educational objective Z88Aurora: Thermomechanical analysis, heat flux definition, application of thermomechanical boundary conditions, creating a material with thermal characteristics, interpretation of the results thermal strains and stresses. Example 31: Non-linear calculation of a Belleville spring. A Belleville spring is calculated taking into account non-linear large displacement effects. The elements used are of the type torus element No. 8. Educational objective Z88Aurora: Implementation of non-linear calculations, in particular the parameterization of the solver. Example 32: Non-linear calculation of a hinge. This example contains the non-linear analysis of a hinge. The complete pre-processor progress is described; the element type is a tetrahedron No. 16. Educational objective Z88Aurora: Implementation of non-linear calculation and gaining experience with the aim to recognize, when non-linear analyses are necessary.
■■13.1 Flat
Wrench (Plate No. 7)
A flat wrench shall be loaded with the screws’ tightening torque. A couple of forces is applied in the wrench’s mouth according to the torque and the fixed points are assumed to be at the locations where the mechanic’s hand grips the wrench. The flat wrench is simulated with 7 super elements plate No. 7; 66 finite elements are created by the mesher. 20 24 25
19
5
21
28
22 23
26 27
4 16
17
15 33 32
18 12 13 7
6
1
8
5
3
2
6
31 38
11
2
10
4
1
14
29 30
7 9
37
3 34 36
35
Figure 13.1-1: Superstructure of the flat wrench
13.1 Flat Wrench (Plate No. 7) 453
13.1.1 With Z88 V14 You can find the files for the example in the directory B1. Simply copy the files in your Z88 working directory; this has already been done for the Z88 data medium and in the internet files respectively, so you can start immediately. Z88X.DXF
CAD input files
Z88I2.TXT
Boundary conditions
Z88I5.TXT
Surface loads (with a 0 in the first line)
Z88MAN.TXT
Parameters for solver
Z88MAT.TXT
Material parameters file
51.TXT
Material file
Z88ELP.TXT
Element parameters
Z88INT.TXT
Integration orders
Simply proceed with the following steps to get to know Z88:
CAD: As for this first example, you should only look at the CAD super structure without producing it. This comes with later examples. Import Z88X.DXF in your CAD program and have a look at it. This is how it would look, if you had drawn it yourself. Do not change anything and quit your CAD program without saving or converting. If you do not have a suitable CAD program simply skip this step.
Z88: Z88X, Converting from Z88X.DXF to Z88NI.TXT. Procedure: Windows: In the Z88 commander press button Z88X, button DXF → Z88NI, Run button. Quit Z88X. LINUX/UNIX: In Z88 commander under CAD converters: press button DXF → Z88NI. Z88O, look at the super structure. Procedure: Windows: In the Z88 commander press button Z88O. If you directly use the Run button, simply ignore the error message, since Z88O expects Z88I1.TXT by default, which doesn’t exist yet. You want to use Z88NI.TXT anyway: Procedure: Disk button > Z88NI.TXT, Run button. Switch with the Wireframe button and in Menu > Labels > All show the node and element numbering. With key Page up zoom. Quit Z88O. LINUX/UNIX: In the Z88 commander, press button Z88O. If you directly use the Run button, simply ignore the error message, since Z88O expects Z88I1.TXT by default, which doesn’t exist yet. You want to use Z88NI.TXT anyway: Procedure: Disk button > Z88NI.TXT, Run button. Switch with the Wireframe button an in Menu > Labels > All show the node and element numbering. With key Page up zoom. Quit Z88O. Z88N, mesher, reads Z88NI.TXT and creates Z88I1.TXT. Procedure: Windows: In the Z88 commander Z88N, Run button. Quit Z88N. Tip: With larger structures you should always quit the running Z88 module, so you can access all the main memory.
454 13 Examples
LINUX/UNIX: In the Z88 commander Z88N. Z88O, look at the deformed finite element structure. Procedure: Windows: In the Z88 commander Z88O, Run button. LINUX/UNIX: In the Z88 commander Z88O, Run button. Z88R, calculates deflections, stresses and nodal forces. Procedure: Windows: In the Z88 commander Z88R, Cholesky button, Run button. LINUX/UNIX: In the Z88 commander Radio button Calculation, button Cholesky. Z88O, look at the deformed finite element structure. Procedure: Windows: In the Z88 commander Z88O, Run button, Wireframe button, Deformed button. By default the deflection is shown enlarged with a factor of 100. This is a bit much in this example. Therefore: Menu > Factors > Deflections > for FUX and FUY enter 10. You can display the reduced stresses since Z88R has already run. Try consecutively: Button Reduced stresses corner nodes, button Reduced stresses mean values per element and button Reduced stresses Gauss points (here only the non-deflected structure is possible, so button Undeformed). LINUX/UNIX: In the Z88 commander Z88O, Run button, Wireframe button, Deformed button. By default, the deflection is shown enlarged with a factor of 100. This is a bit much in this example. Therefore: Menu > Factors > Deflections > for FUX and FUY enter 10. You can display the reduced stresses since Z88R has already run. Try consecutively: Button Reduced stresses corner nodes, button Reduced stresses Element averaged and button Reduced stresses Gauss points (here only the non-deflected structure is possible, so button Undeformed) Now, the mesher should create 66 finite elements out of 7 the super element structure. The element thickness is 10 each. Mesh generation: In this example, the local and the global axis do not have the same direction: Local x direction with super element 1 along the local nodes 1 and 2 which correspond to global nodes 1 and 3. The local y direction of SE 1 is determined by local nodes 1 and 4 which correspond to global nodes 1 and 7. Further note: The super elements which have a common side must have an absolutely identical division on this side. Thus, SE 1 and SE 2 connect along the line 3-4-5: The divisions in y direction must be exactly identical. Here, 3 divisions exist in each case. Calculate this example as indicated above. Then, one can experiment: Disassemble SE 7 in Z88NI.TXT as a meaningful variation as follows: 7 7 (“Disassemble super element 7 in finite element plane stress element No. 7 6 L 3 E and divide in x direction 6 times geometrically ascending and in y direction 3 times equidistant”) Also SE 1 to SE 5 could be compressed in each case inwards: 1 7 3 L 3 E 2 7 3 L 3 E … and so on.
13.1 Flat Wrench (Plate No. 7) 455
TIP: In every line, comments can be entered; after all necessary data is entered. At least one blank separates the last data from the comment. You can also do this in your own files. Each line has a maximum of 250 characters all together.
INPUT This example works with a super structure, i. e. a very rough FE mesh. The mesh generator should generate a FE structure from the super structure. Thus, the first task is to design the mesh generator input file Z88NI.TXT. Chapter 10.5 outlines the procedure if working with CAD. If you work without a CAD system, you design the file Z88NI.TXT by editor or word processing program. The super structure shall look as follows (cf. Figure 13.1-1).
With CAD Program: Follow the description in chapter 10.4 or in the Z88/Z88Aurora user manual (on the DVD). Do not forget to write the super element information on the layer Z88EIO by TEXT function. Thus: SE 1 7 7 3 E 3 E (1st SE, SE type7, FE type7, subdiv. x 3 times equid., y 3 times equid.) SE 2 7 7 3 E 3 E (2nd SE, SE type7, FE type7, subdiv. x 3 times equid., y 3 times equid.) SE 3 7 7 3 E 3 E SE 4 7 7 3 E 3 E SE 5 7 7 3 E 3 E SE 6 7 7 1 E 3 E SE 7 7 7 6 E 3 E ...and write the general information and material information onto the layer Z88GEN: Z88NI.TXT 2 38 7 76 0 0 (2-DIM,38 nodes HDOF, 7 SE, 76 DOF, Flags 0) Export the drawing as DXF file with the name Z88X.DXF and start the CAD converter Z88X with the option “from Z88X.DXF to Z88NI.TXT” (DXF → NI). Z88X will produce the mesh generator input file Z88NI.TXT. You should have a look at it with Z88O.
With Editor: Write the mesh generator input file Z88NI.TXT (cf. chapter 11.9) with an editor: 2 38 1 2 2 2 3 2 4 2 5 2 ......
7 22.040 31.913 43.781 43.880 43.980
76 0 0 32.175 28.798 24.826 32.373 39.424
(2-DIM, 38 nodes, 7 SE,76 DOF, flags 0) (Node 1, 2 DOF, X and Y coordinates) (Node 2, 2 DOF, X and Y coordinates)
(Coordinates for nodes 6 ... 36 not represented)
456 13 Examples
37 38 1 1 2 3 … 7 30 1 3
2 2 7 3 7 10 7 35 7 E
2 7 3 E 3 3 4 3 5 3 6 1 7 6
7 E 7 E 7 E 7 E 7 E
202.847 27.507 144.905 42.403 5 12
37
(SE 1 of the type Plane Stress No. 7) 7 2 4 6 8 (Coincidence for 1st SE) (SE 2 of the type Plane Stress No. 7) 5 9 11 13 4 (Coincidence for 2nd SE) (Coincidence for elements 3 … 6 dropped here)
32 34 36 38 31
3
E
3
E
3
E
3
E
3
E
3
E
3
E
(Subdivide 1st SE into FE type 7 and subdivide in x direction 3 times equidistant + in y direction 3 times equidistant) (Subdivide 2nd SE into FE type 7 and subdivide in x direction 3 times equidistant + in y direction 3 times equidistant)
With CAD Program and Editor: Start the mesh generator Z88N for producing the final Z88 structure file Z88I1.TXT. Look at it either in the CAD program (from Z88I1.TXT to Z88X.DXF) after conversion with Z88X or with the Z88 plot program Z88O for defining the boundary conditions (cf. Figure 13.1-2)
Figure 13.1-2: FE structure of the flat wrench
Enlarge the wrench’s mouth by zooming for defining the two nodes, which will get the load representing the torque (to simplify matters it is assumed, that the screw gets only selectively
13.1 Flat Wrench (Plate No. 7) 457
a couple of forces as torque at the corners and that the screw itself and not the wrench revolves, cf. Figure 13.1-3). 163
147
168
119
125
158 169 164
170 171 165
161
154
137
112 131 126
150
113
138
149
160
172
142
148
153
159
143
120
127 139 132 128 121
107
114 115
108
116 109
117 110
95
94
96
97
98
99
100
101
102
103
104
105
106
93
92
91
90
89
88 87 84 86
83 82
77
85 81 80
73 76 66
79
72
78
62 71
75
55 61
51
65
70
44 18
11
7 6
22
17 5
10
21
27
15
3 9 2
33
32
13
74
69 59
49
64
68
43
173 58
38
67
48 53
20 8
60
50
39
26
14 1
40
54
28
16
4
29
57
37
47
25 31
63
42
*-
Figure 13.1-3: Wrench’s mouth, enlarged in order to see the node numbering
We find the nodes 11 and 143. The pictures printed here were produced directly by Z88O. In the same way, both the nodes for fixing the wrench are determined and the boundary conditions are entered.
With editor: Design the boundary condition file Z88I2.TXT by editing: 16 11 143 216 216 220 220 227 227 231 231 238 238 242 242 249 249
2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
(16 Boundary Conditions altogether) 1 –7143 (1st BC: Node 11, DOF 2, Force -7143 N assumed) 1 7143 (2nd BC: Node 143, DOF 2, Force 7143 N assumed) 2 0 (3rd BC: Node 216, DOF 1, Displacement 0 (= fixed) assumed) 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2 0
458 13 Examples
In addition, you’ll need to edit these files: material groups Z88MAT.TXT, material data file 51.TXT, element parameters Z88ELP.IXT, integration orders Z88INT.TXT and the solver parameters Z88MAN.TXT (this has already been done for you in the example files): Z88MAT.TXT: 1 (one material group in total) 1 66 51.txt (range from element 1 to element 66 and reads 51.txt, see 11.5) 51.TXT: 206,000 0.3 (Young’s modulus 206,000, Poisson’s ratio 0.3, see 11.6) Z88ELP.TXT: 1 (one set of element parameters in total) 1 66 10 0 0 0 0 0 0 (range from element 1 to element 66, thickness 10, other entries not interesting, see 11.7) Z88INT.TXT: 1 (one set of integration orders) 1 66 3 3 (range from element 1 to element 66, INTORD=3, INTOS=3, see 11.8)
Z88MAN.TXT: Only these entries are of interest, see 11.10: IBFLAG 0
(no beams in the structure)
IPFLAG 0
(no plates in the structure)
IHFLAG 0
(no shells in the structure)
KDFLAG 0
(no calculation of radial and tangential stresses)
ISFLAG 1
(reduced stresses: von Mises)
These data structures are distributed over several files, so that our pre- and post-processor Z88Aurora V2 can work optimally with them. For Z88 V14 this seems a bit complicated but was created for best compatibility. Now, launch the Cholesky solver Z88R -choly. You will see, during the run of Z88R, that 14,848 memory places are needed in the total stiffness matrix. NKOI, i. e. memory places in the coincidence vector KOI, is printed as 540. Where does the number 540 come from? 66 finite elements of the type Plane Stress No. 7 with 8 nodes each, makes 66 × 8 = 528. The number 540 results because Z88R always calculates 20 nodes for security reasons for the last finite element. Thus, NKOI becomes here: 65 × 8 + 20 = 540.
13.1 Flat Wrench (Plate No. 7) 459
OUTPUT The solver Z88R provides the following output files: Z88O0.TXT stores the processed structure data. It is mainly intended for documentation purposes, but also shows if your input file Z88NI.TXT for the mesh generator did what you meant it to do. Z88O1.TXT stores the processed boundary conditions: For documentation purposes. And: Was your boundary conditions input in Z88I2.TXT correctly interpreted? Z88O3.TXT: the calculated stresses. The results in Z88O3.TXT depend on the parameters in Z88MAN.TXT. Z88O4.TXT: the computed nodal forces. The OpenGL plot program Z88O can use three methods of view for reduced stresses: the average reduced stresses per node, average reduced stresses per element and the reduced stresses computed in the Gauss points. As you can see, these results can be different. The reason for this are the stress peaks, which are displayed in the third figure below. However, this isn’t always the case: There are FE structures, whose maximum stresses are more or less the same in all three display variants. This indicates a balanced distribution of stress.
Figure 13.1-4: 1st method of view: Reduced stresses in the corner nodes (which are in fact computed from the Gauss points around a node)
460 13 Examples
Figure 13.1-5: 2nd method of view: Reduced stresses computed as a mean value per element.
Figure 13.1-6: 3rd method of view: Reduced stresses computed in the Gauss points – the most precise approach (cf. Example 13.7). Only disadvantage: Pictures are not as colourful and pretty as with the other two methods.
13.1 Flat Wrench (Plate No. 7) 461
13.1.2 With Z88Aurora V2 A very rough mesh, i. e. a super structure which has to be refined by the mesh generator is regarded. Afterwards, you attach the boundary conditions and compute. For the beginning you simply use the already processed files: Open the example directory B1 and load the whole project: Z88I1.TXT
Structure file
Z88I2.TXT
Boundary conditions
Z88I5.TXT
Surface loads
Simply proceed with the following steps to get familiar with Z88: As for this first example, you should only look at the CAD super structure without producing it. This comes with later examples.
Provide a new project Folder 1. Click on the icon “New” → The folder dialog will open. 2. Enter a new folder. Quit with
.
3. Quit with OK.
CREATE PROJECT
1. Create new folder
2. Click OK
Figure 13.1-7: Providing a new project folder
462 13 Examples
Import of project files 1. Click the icon “Import” → The context pop-up menu opens on the right side. 2. Choose Z88 file → The import dialog will open. 3. Go to the example directory ..\Z88AuroraV2\docu\examples\import\b1. 4. Choose “Project: (i1, i2, i5)”, the according files will be selected. 5. Start the import with OK.
Linear mechanical Impo CAD Import FE data
Figure 13.1-8: Reading Z88 V14 OS project files
With the mouse keys you can look at the model:
Panning
Zooming
Rotating
Now the structure and the boundary conditions are loaded, material data and plane stress element thickness must be still added before a calculation.
Providing the element thickness: 1. Click the “Pre-processor” icon → The context pop-up menu opens on the right side.
13.1 Flat Wrench (Plate No. 7) 463
Choose element parameters 2.
Thickness → The dialog for the element geometry will open.
Add set → In the administration window a new element property set appears.
3. Edit the thickness with a double-click and enter “10”. Quit with 4. Quit the menu with
.
Close .
The described process assigns the thickness 10 to all elements. If different thicknesses are wished, separate sets can be allocated via the set management by picking. For further details see the following examples.
PREPROCESSOR
2. Edit thickness with double click 1. Create an element set
3. C 3 Close menu
Figure 13.1-9: Entering the thickness of plane stress elements
Defining the Material 1. Click on the “Pre-processor” icon
Database
→ The context menu opens.
2. Choose the material “Structural steel S235JR” in the material database. 3.
Define assigns the material properties to the part.
4. Quit the menu. Please keep in mind that pre-defined materials in the material database operate with the standard metric units N, mm and t. The pre-defined materials are not editable. If you wish, you can create new materials and assign them to element sets. For further details see the following examples.
464 13 Examples
2. Add material to partt
1. Select material
Figure 13.1-10: Assigning material
Now the example may be computed with any solver (with the exception of the Cholesky solver) →
Calculate
and considered in the post-processor
.
Create a new project folder Close the current project
and create a new project folder
.
Now we want to provide the same project “by hand” from a DXF structure which was designed in AutoCAD.
Import of a Super-Structure Conversion from Z88X.DXF to Z88NI.TXT. Proceed as follows: Button Import → AutoCAD DXF, DXF-super-structure to Z88Aurora-super-structure. Choose the file z88x.dxf in the example directory ..\Z88AuroraV2\docu\examples\import\b1. Press the OK button. The super-structure with 7 super-elements plane stress No. 7 is plotted into the OpenGL window. You can change from “Shaded” to “Surface Mesh”.
Figure 13.1-11: Import options of the AutoCAD DXF import
13.1 Flat Wrench (Plate No. 7) 465
The present super-elements should be divided differently and be meshed with Z88N (see chapter 13.1). In Z88Aurora you’ll need three different element groups. Proceed as follows: Button Pre-processor → Set-Administration, Picking.
Picking Options Use the mouse and some few short-keys to select or unselect one or more nodes, elements or surfaces for defining boundary conditions, i. e. loads and constraints: +
(click) selecting or unselecting of individual nodes
+ +
+
(hold) new choice of nodes in a rectangular window along with deselecting the former choice
+
(hold) additional selection of nodes in a rectangular window while keeping the former choice (hold) expand a rectangular window for the unselecting of nodes
The appropriate nodes, elements or surfaces are marked by small rectangles. Choose the objects by the proper key-combination along with clicking of the rectangles. Please keep in mind that for picking elements, the view option “mesh” must be activated. The choice of picking depends on the intended purpose (see Figure 13.1-2). node picking
boundary conditions
element picking
tetrahedron refiner
surface picking tetrahedrons: pressure, hexahedrons, volume shells
material definition
local refining hexahedron mesher
Figure 13.1-12: Picking variations and intended purpose
By selecting the element picking function, the choice of the elements occurs through the manner described on top. Three element sets are allocated for the super-elements shown in the figure in each case. If necessary, a name can be adapted by double clicking on a set. Close the menu afterwards.
466 13 Examples
1. Select elect element e picking 10. Close
2. + 5. + 8. Select elements with
+ 5
4 3
1
4. + 7. Deselect all
2
6
7
3. + 6. + 9. Add set
Figure 13.1-13: Picking Menü, button Elementpicking
Create a FE structure from Superelements
Super elements Choose the pre-processor menu and click should be generated according to the following scheme:
. 66 finite elements
Super elements 1-5:
local X direction: subdivision equidistant, value 3
local Y direction: subdivision equidistant, value 3
Super element 6:
local X direction: subdivision equidistant, value 1
local Y direction: subdivision equidistant, value 3
Super element 7:
local X direction: subdivision equidistant, value 6
local Y direction: subdivision equidistant, value 3
13.1 Flat Wrench (Plate No. 7) 467
1. Deselect „All Elements“ and choose set
2. Select element type
3. X-direction
4. Y-direction
5. + 10. + 15. Create meshing rule
6.
11.
7.
12.
8.
13.
9.
14.
16. Create mesh with all active meshing rules
17. Close menu
super element structure
FE structure
Figure 13.1-14: Meshing with Z88N
Picking of Nodes for the Boundary Conditions As with the meshing, sets must be defined first for the making of boundary conditions. Proceed as follows: Button Pre-processor → Set administration, Picking. Choose the picking option “nodes” for the boundary conditions. Either select as described by mouse clicks the concerning nodes or enter the node number directly and confirm with OK. node picking
All mechanical and thermal boundary conditions
Figure 13.1-15: Picking options for boundary conditions
element picking
Pressure for tetrahedrons, hexahedrons and volume shells
468 13 Examples
F = -7143
F = 7143
+ 216
220
227
231
238 8
242 2
249
Figure 13.1-16: Picking of nodes for defining the boundary conditions
To make the selection of the picking points easier, one can change the size of the picking points with the icons “enlarge picking points” and “reduce picking points”. This can also be done with the boundary condition marks and the Gauss points (Figure 13.1-17).
Size of picking points
Figure 13.1-17: Adjusting the size of the picking points
13.1 Flat Wrench (Plate No. 7) 469
Applying Boundary Conditions Choose the boundary conditions (or constraints) menu by pressing the button Pre-processor
Define → In the pop-up menu you may select the just defined sets.
1. Select the desired set, e. g. “force1” (this is node 11) 2. Define the direction, e. g. Y direction. 3. Choose type of constraint, e. g. Force (uniformly distributed). 4. Enter the value, e. g. -7143. 5. Enter any name for the constraint, e. g. “force_1”. 6.
Add set
Enter the second force in the same way: “force2”, Y direction, value “7143”, uniformly distributed, and the constraints (representing the hand) “fixed” by choosing X and Y direction with a displacement of 0 (see Figure 13.1-16). Then close the menu.
1. Choose set
5. Assign name 6. Add 7. Close Menu
2. Select direction
3. Define type
4. Type value
Figure 13.1-18: Applying boundary conditions (loads and constraints)
Define the thickness for the plane stress elements and material as described above.
470 13 Examples
Start the FE Calculation Choose the Solver menu. Press Solver. Please pay attention to the correct choice of analysis
Linear mechanical
in the main icon command line because the solver parameters
may vary depending of the type of analysis.
Linear mechanical
Figure 13.1-19: Choosing a solver
There are three solvers available. However, the Cholesky solver only computes trusses and beams in Z88Aurora. Accept the default settings and start the calculation: Calculate . After the calculation has finished, an information window pops up.
Output The results are available in the post-processor
:
Similar to the open source version, you may display the reduced stresses in three different ways: stresses in the corner nodes, stresses per element and stresses in the Gauss points.
13.2 Crane Girder made of Trusses No. 4 471
Figure 13.1-20: View options: Stresses per element (top), stresses at Gauss points (left), and stresses at corner nodes (right).
■■13.2 Crane
Girder made of Trusses No. 4
A crane girder consists of 54 trusses, 20 nodes and forms a spatial framework. The nodes 1, 2 and 19, 20 are fixed, the nodes 7 and 8 are loaded with −30,000 N each. The total length is 12 m. The entries in the example file are made in mm, but entries in m are also possible if the remaining entries like the Young’s modulus and the cross-sectional area also refer to m. The Young’s modulus is 200,000 N/mm2, Poisson’s ratio ν is 0.3, and the cross-sectional area is 500 mm2. This example is taken from Schwarz /7/.
472 13 Examples
18
15
12
9
6
3
7
4
1
16
13
10
19
20
17
14
11
8
5
2
Figure 13.2-1: Crane girder according to /7/
13.2.1 With Z88 V14 The example files are located in example directory B2. Z88X.DXF
CAD input file
Z88MAN.TXT
Control parameter for solver
Z88MAT.TXT
Material parameter file
52.TXT
Material file
Z88ELP.TXT
Element parameters
Z88INT.TXT
Integration orders
CAD: In this example, you shall only consider the CAD-finite elements structure, but not yet generate it. We will learn this in later examples. We import Z88X.DXF into our CAD program and consider it. This is how we would have drawn it by ourselves. We do not change anything and exit the CAD program without saving, converting etc. If you do not have any suitable CAD system, skip this step.
Z88: Z88X, converting Z88X.DXF into Z88I1.TXT, Z88I2.TXT and Z88I5.TXT. Windows: In the Z88Commander Z88X, button DXF → Z88I* (default setting), Run button. LINUX/UNIX: In the Z88-Commander button DXF → Z88I* with CAD converter. Z88O, considering the finite elements structure. Proceeding: Windows: In the Z88-Commander Z88O, Run button. Preferably consider it in the Wireframe mode. Rotate with the buttons F2~F7, reset all rotations to zero with F8. Pan with the arrow keys and Home and End, zoom with Page Up and Page down. Then confirm by pressing the Auto
13.2 Crane Girder made of Trusses No. 4 473
scale button (3rd button from the left) to turn everything back into the starting position and switch on the mouse control (4th button from the left). Now you can pan by pressing the left mouse button, zoom with the middle mouse button and rotate with the right mouse button. You are also able to label the nodes and/or elements: Menu > labels > all and other choices. LINUX/UNIX: In the Z88-Commander Z88O, Run button. Preferably consider it in the Wireframe mode. Rotate with the buttons F2~F7, turn all rotations to zero with F8. Pan with the arrow keys and Home and End. Zoom with Page up and Page down. Then confirm by pressing the Auto scale button (6th button from top), to turn everything back in the starting position. Switch on the mouse control (7th button from top). Now you can pan by pressing the left mouse button, zoom with the middle mouse button and rotate with the right mouse button pressed. You are also able to label the nodes and/or elements: Menu > labels > all and other choices. Z88R, calculating deflections, stresses and node forces. Proceeding: Windows: In the Z88 commander Z88R button, Cholesky button, Run button LINUX/UNIX: In the Z88 commander radio button Computation, Cholesky button. Z88O, considering the deformed finite element structure. Proceeding: Windows, LINUX/UNIX: as standard the deflections are scaled by a factor of 100, which is also the case in this example. If you successively activate the three displacement buttons (X, Y and Z), you will see that the loaded node deflections are graduated in terms of color. We compare this to the numerical values of the deflections output file Z88O2.TXT. We write KSFLAG 0 and ISFLAG 1 into the solving control file Z88MAN.TXT and 1 54 0 0 into the integration order file Z88INT.TXT and let Z88R run again. After a re-start of Z88O we can also see the tensile and the compressive stresses in the trusses: Switch to reduced stress, averaged per element (Windows), resp. stresses per element (LINUX/UNIX). As there are only tensile and compressive stresses in trusses, these are the reduced stresses at the same time. You can experimentalize here with the 3D features of the plot program Z88O.
INPUTS with CAD Program: We proceed along the description in the Z88 or Z88Aurora manual (cf. DVD). Do not forget to store the element information by text function on layer Z88EIO: FE 1 4 (1th finite element type 4) FE 2 4 (2nd finite element type 4) … (Information about the elements 3 to 53 is not shown here) FE 54 4 (54th finite element type 4) Write on the layer Z88GEN the general and the material information, like Z88I1.TXT 3 20 54 60 0 (3 dimensions, 20 nodes, 54 elements, 60 degrees of freedom, KFLAG 0) Since the trusses No. 4 are structure elements (and are not further refinable like finite elements), we cannot use the mesh generator here. You can immediately store the boundary conditions in a text function on the Layer Z88RBD:
474 13 Examples
The structure shall be embedded at the nodes 1, 2 and 19, 20. A load of 30,000 N is set at the nodes 7 and 8. The load shall work downwards, hence, −30,000 N. Z88I2. 10 TXT RBD 1 1 2 2 0 RBD 2 1 3 2 0 RBD 3 2 1 2 0 RBD 4 2 3 2 0 RBD 5 7 3 1 –30000 RBD 6 8 3 1 –30000 RBD 7 19 1 2 0 RBD 8 19 3 2 0 RBD 9 20 2 2 0 RBD 10 20 3 2 0
(10 boundary conditions) (1st BC: node 1, displacement of 0 at the degree of freedom no.2) (2nd BC: node 1, displacement of 0 at the degree of freedom no.3)
(5th BC: node 7, force of –30000 at the degree of freedom no.3)
We export the drawing as a DXF file with the name Z88X.DXF and afterwards, we launch the CAD converter Z88X with the option “from Z88X.DXF into Z88I*.TXT”. We generate the input files Z88I1.TXT, Z88I2.TXT, Z88I5.TXT.
With editor: We insert the structure data Z88I1.TXT (cf. chapter 11.2) via editor: 3 20 1 3 2 3 3 3 4 3 5 3 ........... 19 3 20 3 1 4 1 2 2 4 4 5 3 4 7 8 .......... 54 4 17 19
54
60
0 2000 0 0 1000 1000 2000 2000 2000 0 12000 2000 12000 0
0 (3 dimensions, 20 nodes, 54 elements, 60 degrees of freedom, KFLAG 0) 0 (1st node, 3 degrees of freedom, X, Y and Z coordinates) 0 (2nd node, 3 degrees of freedom, X, Y and Z coordinates) 2000 0 0 (nodes 6 to 18 not represented here) 0 0 (1st element, type truss no.4) (coincidence 1st element) (2nd element, type truss no.4) (coincidence 2nd element)
(elements 4 to 53 not represented here)
The structure shall be fixed at the nodes 1, 2, 19 and 20. A load of 30,000 N is set at the nodes 7 and 8. The load should work downwards, hence, −30,000 N. Hence, we enter the file of the boundary conditions Z88I2.TXT (cf. chapter 11.3):
13.2 Crane Girder made of Trusses No. 4 475
10 1 1 2 2 7 8 19 19 20 20
2 3 1 3 3 3 1 3 2 3
2 2 2 2 1 1 2 2 2 2
(10 boundary conditions) 0 (node no.1, displacement of 0 at the degree of freedom no.2) 0 (node no.1, displacement of 0 at the degree of freedom no.3) 0 0 –30000 (node no.7, force of –30000 at the degree of freedom no.3) –30000 0 0 0 0
In addition, we have to edit the material control file Z88MAT.TXT, the material file 51.TXT, the element parameter file Z88ELP.TXT, the integration order file Z88INT.TXT and the solver control file Z88MAN.TXT (which already has been carried out for you in the example files): Z88MAT.TXT: 1 1 54 52.txt
52.TXT: 200000 0.3 Z88ELP.TXT: 1 1 54
(altogether one material law) (is valid from element 1 to 54 and the material parameters are contained in the file 52.txt, cf. 11.5)
(Young’s Modulus 200000, Poisson’s ratio 0.3, cf. 11.6)
(altogether only one set of element parameters) 500 0 0 0 0 0 0 (is valid from element 1 to 54, cross section area 500, other facts irrelevant, cf. 11.7)
Z88INT.TXT: 1 (altogether one set of integration orders) 1 54 0 0 (is valid from element 1 to 54, INTORD=0, INTOS=0, cf. 11.8) Z88MAN.TXT: Only these facts are important (cf. 11.10): IBFLAG 0
(no beams in the structure)
IPFLAG 0
(no plates in the structure)
IHFLAG 0
(no shells in the structure)
KDFLAG 0
(no calculation of radial and tangential stresses)
ISFLAG 0
(no reduced stresses)
CAD and Editor: Since the structural data Z88I1.TXT, the boundary conditions Z88I2.TXT, the surface load file Z88I5.TXT (with a 0 in the first row) and the control files are available, the solver Z88R -choly can be started. As an alternative, you could also use the iteration solver Z88R –siccg or –sorcg, but for such very small frameworks the Cholesky solver is exactly the right choice.
476 13 Examples
OUTPUTS The Cholesky solver Z88R –choly delivers following output files: Z88O0.TXT, the edited structure values. It is mainly provided for aims of documentation. Z88O1.TXT, edited boundary conditions: for aims of documentation. Z88O2.TXT, the calculated displacements, the solution of the FE problem as well as Z88O3.TXT, the calculated stresses and Z88O4.TXT, the calculated node forces. We scaled the displacements FUX, FUY and FUZ each by a factor of 100. 18
19 15 20 16 12 17 13 9
6
14 10
3
11
7 4 8 1 5 2
Figure 13.2-2: Deformed crane girder
Since the plot program Z88O is also able to indicate reduced stresses per element, a display of the tensile and compressive stresses in the trusses is possible because with trusses the tensile and compressive stresses are the reduced stresses at the same time. You only have to outwit Z88O, by entering ISFLAG 1 into the solver control file Z88MAN.TXT. Then you can immediately plot the stresses (while doing this, switch off mesh over stresses), see Figure 13.2-3.
Figure 13.2-3: Plotting tensile and compressive stresses with Z88O. Settings in Z88MAN.TXT: ISFLAG 1
13.2 Crane Girder made of Trusses No. 4 477
13.2.2 With Z88Aurora V2 In this example, we import a truss structure, define element parameters and apply boundary conditions.
Create a new project file Create a new project file
.
Import AutoCAD DXF 1. Press the icon “import” → The context menu appears on the right side. 2. Choose AutoCAD DXF file → The import dialogue opens. 3. Switch to the example file z88_examples_z88v14os/b2 and select the file z88x.dxf. 4. Select “DXF structure to Z88Aurora structure”. 5. Start the importing process with OK. With the icon list “views I” and “views II” all of the view manipulations can be carried out.
Figure 13.2-4: Icon menu bars “views I” (on top) and “views II” (below)
478 13 Examples
These tool bars can be shown and hidden individually with View → Setup.
Figure 13.2-5: Show and hide tool bars
Workflow support SPIDER To be able to generate reliable results, you need much input data for finite element analyses. The SPIDER support, integrated into Z88Aurora, should help you to clear this hurdle. By activating the spider icon, an additional window opens, which shows you the steps you already carried out or still have to carry out. By double clicking on the respective step of the process, the respective menu opens. SPIDER SUPPORT
Figure 13.2-6: Workflow support in Z88Aurora
13.2 Crane Girder made of Trusses No. 4 479
Node Picking The nodes, where we want to set the boundary conditions, are conflated to sets in the picking menu with the option “node picking”. In this case, we conflate the nodes 1+20, 7+8 and 2+19 each to sets: 1. Press the icon “pre-processor” → The context menu appears on the right side. 2. Choose “set administration” and press “picking” → The picking menu opens. 3. At node picking insert the nodes 1,20 – separated by comma – in “individual node”. 4.
Ok → Nodes are marked in red in the openGL window.
Add set and change the name by double clicking on the set to “constraint_ 5. Press support_y_z”. 6. Press Deselect all and repeat the process for the nodes 2 and 19, name the set “constraint_support_x_z” and correlate the nodes 7 and 8 with the set “force”. 7. Close the menu.
Figure 13.2-7: Crane girder with boundary conditions
Boundary Conditions Button Pre-processor → Constraints → The just defined sets are eligible in the context menu. 1. Choose set “constraint_support_y_z” (corresponds to nodes 1 and 20). 2. Determining the direction: Y direction and Z direction 3. Choose “displacement” as type of boundary condition . 4. Insert value “0”. 5. Name the boundary condition “constraint_support_yz”. 6.
Add
480 13 Examples
7. Repeat the process with the set “constraint_support_x_z” (X direction and Z direction, displacement, value “0”, Name “constraint_support_xz”). 8. Apply the force: set “force”, Z direction, distributed load, value “−30000”, Name “force” 9. Check the correct Application of boundary conditions by “show all”. 10. Close the menu.
Element Parameters Trusses The diameter of the trusses is 25 mm. Button Pre-processor → Element parameters
Section
1. Choose the geometry “circle”, other possibilities are pipe, rectangle, square, I profile or a freely determinable profile. 2. Insert the necessary values. For trusses with circle profile, we only need the diameter for the calculation. Thus, insert “25”. 3. Start the calculation
Calculate
4. All of the parameters are shown, but for the calculation of trusses, we only need the cross sectional area. 5. Press
Add to open the element set for all the 54 trusses in the management window.
6. Close the menu.
5. Assign geometry
4. Automatic calculation of the geometry properties
1. Choose geometry
2. Type diameter 3. Start calculation
Figure 13.2-8: Define element geometry
Create a new Material If the desired material does not exist in the database, you can easily create a new material. Follow this procedure:
13.2 Crane Girder made of Trusses No. 4 481
5 Assign material 5. tto the part 2. Type in name 2
1. Add new material
3. Assign Young’s modulus 3 and Poisson’s ratio a 6. Close menu
4. Exit with th OK
5. Select material
Figure 13.2-9: Create a new material
Start Calculation We created all input data and now, we are able to start the calculation by using the Cholesky solver.
Output In addition to graphic output in the openGL window, we can also open the output data with postprocessor → output data in a standardized editor.
482 13 Examples
Figure 13.2-10: Plotting the tensile and compressive stresses, stresses per element
■■13.3 Gear
Shaft with Shaft No. 5
This example shows the calculation of a statically over-determined gear shaft with applications of force and moment in two gearwheels in several planes. Tasks, that are quite costly with the classical engineering mechanics, even if you use, e. g., a transfer matrix method program like XBEAMS (Google Play Store), are easy to accomplish with FEA. We use shaft elements No. 5. With these elements, we can calculate deflections and reaction forces, but no notch stresses.
13.3 Gear Shaft with Shaft No. 5 483
Figure 13.3-1: Sketch of a gear shaft with bearings and loads
The gear shaft consists of: Shaft segment, D = 30 mm, L = 30 mm, fixed support at the left bottom Gearwheel 1, pitch circle D = 45 mm, L = 20 mm Shaft segment, D = 35, L = 60 mm, floating support in the middle Gearwheel 2, pitch circle D = 60 mm, L = 15 mm Shaft segment, D = 40 mm, L = 60 mm, floating support at the right bottom For the loads, we imagine the shaft physically with following coordinate system: If we look at the wave as a main view, the origin of ordinates is at the left shaft bottom in the centre of the shaft. X be along the wave, Z upwards, Y to the back. In the (physical) point X1 = 40, Y1 = −22.5, Z1 = 0 of the gearwheel 1 work following cog forces: Fx1 = −10,801 N, Fy1 = 6,809 N, Fz1 = 18,708 N. From Fx1 results the bending moment M1 of −243,023 Nmm about the Z axis. In the (physical) point X2 = 117.5, Y2 = 0, Z2 = 30 of the gearwheel 2 work following cog forces: Fx2 = 8,101 N, Fy2 = −14,031 N, Fz2 = −5,107 N. From Fx2 results the bending moment M2 of 243,030 Nmm about the Y axis. Hence, in XY-and XZ level arise loads. With the FE calculation the “physical” points of course do not exist, because computationally a shaft element consists only of two points along the abscissa. The Y-and Z coordinates are always 0. We divide the shaft into eight shaft elements No. 5, i. e. 9 nodes. The bearing occurs in the nodes 1, 5 and 9. In node 1, we additionally block the 4th degree of freedom (the torsion degree of freedom) to be able to calculate the shaft twist between both gearwheels.
484 13 Examples
13.3.1 With Z88 V14 Also, with this structure, we recommend to enter the data manually in the editor, but you also can find the example files in directory B3. Z88I1.TXT
Structure data
Z88I2.TXT
Boundary conditions
Z88I5.TXT
Distributed loads (in this case: 0)
Z88MAN.TXT
Control parameters for the solver
Z88MAT.TXT
Material control file
51.TXT
Material file
Z88ELP.TXT
Element parameters
Z88INT.TXT
Integration orders
CAD: This has no use here; it is faster to insert the few numerical values by hand. For own experiments you could run Z88X with the option “Z88I* to DXF” and generate a DXF file from the input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT, which you could observe in, e. g., AutoCAD.
Z88: Z88O, considering finite elements structure. Proceeding: Windows: In the Z88-Commander Z88O, Run button. LINUX/UNIX: In the Z88-Commander Z88O, Run button. Switch on Wireframe, select the mouse control, work with the mouse and use menu > labels > label all. Z88R, calculates deflections, stresses and nodal forces. Proceeding: Windows: In the Z88-Commander Z88R button, Cholesky button, Run button LINUX/UNIX: In the Z88-Commander radiobutton Calculation, Cholesky button. Z88O, considering the deformed finite elements structure. The deflections are enlarged by default by a factor of 100, which is insufficient in this example. Set FUX, FUY and FUZ to 1000 each. Menu > factors > displacements. Calculating and displaying of reduced stresses is not provided for shafts No. 5 since reduced stresses with shafts depend not only on the actual main stresses (which are calculated in Z88) but also and particularly on notch factors (which normally are not calculated in Z88 and other FEA systems, unless, one displays explicitly the notch) and on other influences.
INPUTS Inserting the data of this example by editor is much easier than by CAD. The CAD inserting has considerable advantages e. g. with the examples 1, 2, 5 and 6.
13.3 Gear Shaft with Shaft No. 5 485
by editor: Insert the structure data by editor Z88I1.TXT (cf. paragraph 11.2): 3 1 2 3 4 5 6 7 8 9 1 1 2 2 … 8 8
9 8 6 0 6 30 6 40 6 50 6 80 6 110 6 117.5 6 125 6 185 5 2 5 3 5 9
54 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 (3-dim, 9 nodes, 8 elements, 54 degrees of freedom, KFLAG 0) (node No. 1, 6 degrees of freedom, X, Y and Z coordinate) (node No. 2, 6 degrees of freedom, X, Y and Z coordinate)
(element 1, shaft No. 5) (coincidence element 1) (element 2, type 5) (coincidence element 2) (elements 3 to 7 are not mentioned here)
The boundary conditions Z88I2.TXT: 18 (18 boundary conditions) 1 1 2 0 (node No. 1, degree of freedom No. 1 (=X) blocked) 1 2 2 0 (node No. 1, degree of freedom No. 2 (=Y) blocked) 1 3 2 0 (node No. 1, degree of freedom No. 3 (=Z) blocked) 1 4 2 0 (node No. 1, degree of freedom No. 4 (=torsion) blocked) 3 1 1 –10801 (node No. 3, degree of freedom No. 1 (=X), force –10801 N) 3 2 1 +6809 (node No. 3, degree of freedom No. 2 (=Y), force 6809 N) 3 3 1 +18708 (node No. 3, degree of freedom No. 3 (=Z), force 18708 N) 3 4 1 –420930 (node No. 3, degree of freedom No. 4 (torsion), moment –420930 Nmm) 3 6 1 –243023 (node No. 3, degree of freedom No. 6 (bending moment around Z), moment –243023 Nmm) 5 2 2 0 5 3 2 0 +8101 7 1 1 7 2 1 –14031 7 3 1 –5107 7 4 1 +420930 7 5 1 –243030 9 2 2 0 9 3 2 0 With the stress calculation, the solver control file Z88MAN.TXT as well as the integration order file Z88INT.TXT (cf. paragraphs 11.10 and 11.8) can have any contents, since Gauss points, radial stresses, tangential stresses and the calculation of the reduced stresses are irrelevant for shafts No. 5.
486 13 Examples
We still have to edit the material control file Z88MAT.TXT, the material file 51.TXT, the element parameter file Z88ELP.TXT, the integration order file Z88INT.TXT as well as the solver control file Z88MAN.TXT (what has already occurred in the respective example files): Z88MAT.TXT: 1 1 8 51.txt
51.TXT: 206000
0.3
(altogether one material law) (is valid for elements 1 to 8 and the material parameters are contained in the file 51.txt, cf.11.5 )
(Young’s Modulus 206000, Poisson’s ratio 0.3, cf. 11.6)
Z88ELP.TXT: 3 1 3 30 0 0 0 0 0 0 4 7 35 0 0 0 0 0 0 8 8 40 0 0 0 0 0 0
(altogether 3 sets of element parameters) (1st set is valid for elements 1 to 3, diameter 30, cf. 11.7) (2nd set is valid for elements 4 to 7, diameter 35, cf. 11.7) (3rd set is valid for elements 8 to 8, diameter 40, cf. 11.7)
Z88INT.TXT: 1 1 8 0 0
(altogether, only one set of integration orders) (is valid for elements 1 to 8, INTORD=0, INTOS=0, cf. 11.8)
Z88MAN.TXT: Only the following are relevant, cf. 11.10: IBFLAG 0
(no trusses in the structure)
IPFLAG 0
(no plates in the structure)
IHFLAG 0
(no shells in the structure)
KDFLAG 0
(no calculation of radial and tangential stresses)
ISFLAG 0
(no reduced stresses)
Since the structure data Z88I1.TXT, the boundary conditions Z88I2.TXT, the distributed load file Z88I5.TXT (with a 0 in the first line) and the control files are available now, the solver Z88R -choly can be launched.
OUTPUTS The Cholesky solver Z88R -choly yields following output files: Z88O0.TXT, the edited structure values: For documentation purposes. Z88O1.TXT, edited boundary conditions: For documentation purposes. Z88O2.TXT, the calculated displacements, the solution of the FE problem. Take into mind, that the deflections of the degrees of freedom No. 4, No. 5 and No. 6 are given in rad. In addition, the solver displays Z88O3.TXT, the calculated stresses and Z88O4.TXT, the calculated nodal forces. Please notice that the “forces” at the degrees of freedom No. 4, No. 5, No. 6 are actually moments, since these degrees of freedom are rotations. The displacements were enlarged by the factors FUX, FUY and FUZ of 1000.
13.3 Gear Shaft with Shaft No. 5 487
Figure 13.3-2: View of the XY plane, deformed structure with nodal labels
Figure 13.3-3: View of the XZ plane, deformed with display of the approximate values (button displacements Z). Compare these to the exact values in Z88O2.TXT
13.3.2 With Z88Aurora V2 The structure is manually created in the interface. The interface Z88Aurora was planned for the pre- and post-processing of three-dimensional structures. The special skills are picking, set management and setting of boundary conditions. The following example will show you that with truss and beam structures, the graphic interface is more complicated than the direct input into the text editor by hand.
Create a new Project File Create a new project file
.
488 13 Examples
Create Nodes Press button Pre-processor → Choose
Create nodes and elements
→ Activate node menu
1. Insert coordinates 0,0,0. 2.
Add The node appears in the node list.
3. Repeat this process 8 times for the other nodes (Figure 13.3-4). 4. Switch into the element menu. Node coordinates CREATE NODES AND ELEMENTS
deselect all redmarks
1. Type coordinates
2. Add nodes
Remove node Edit node Edi
3. Node appears s in the node list
Nr.
X
Y
Z
1
0
0
0
2
30
0
0
3
40
0
0
4
50
0
0
5
80
0
0
6
110
0
0
7
117.5
0
0
8
125
0
0
9
185
0
0
Figure 13.3-4: Create nodes in the “create nodes and elements” menu
Create Elements 1. Switch into the element menu
and select element type “Shaft No. 5”.
2. Insert nodes that have to connect the element, or select them in the openGL window (in this case: node “1” and node “2”). Add The element appears in the element list, the nodes 1 and 2 are linked in the 3. openGL window by a line. 4. Repeat this process 7 times for the other nodes. 5. Close the menu. You created the structure.
13.3 Gear Shaft with Shaft No. 5 489
1. Select element type
2. Choose node from number or select the node in the GUI and click „Insert selected“ 3. Click „Add“
Figure 13.3-5: Create elements in the “create nodes and elements” menu
Element parameters shaft Apply the approach from example 13.2. Create 3 element sets by removing the mark at “all elements”: Elements 1 to 3: Diameter 30 mm Elements 4 to 7: Diameter 35 mm Element 8: Diameter 40 mm The definition of the element geometry should look like the definition in Figure 13.3-6.
2. Type in elementt
1. Remove check mark k 3. Assign property y
Figure 13.3-6: Element geometry of the shaft with variable cross section
490 13 Examples
Allocate Materials As material, use S235JR from the Z88Aurora material database.
Node picking and Boundary Conditions Create 13 node sets according to following array: Nr.
Set name
Directions/ rotations
Type
Value
1
node1
X,Y,Z-direction, X-axis
displacement
0
2
node5
Y,Z-direction
displacement
0
3
node9
Y,Z-direction
displacement
0
4
node3_x
X-direction
force (uniformly distributed)
-10801
5
node3_y
Y-direction
force (uniformly distributed)
6809
6
node3_z
Z-direction
force (uniformly distributed)
18708
7
node3_torsion
X-axis
force (uniformly distributed)
-420930
8
node3_bending_z
Z-axis
force (uniformly distributed)
-243023
9
node7_x
X-direction
force (uniformly distributed)
8101
10
node7_y
Y-direction
force (uniformly distributed)
-14031
11
node7_z
Z-direction
force (uniformly distributed)
-5107
12
node7_torsion
X-axis
force (uniformly distributed)
420930
13
node7_bending_y
Y-axis
force (uniformly distributed)
-243030
Boundary Conditions Set the boundary conditions according to the designation in the table and display all the boundary conditions.
Start the Calculation Start the calculation with the “Cholesky Solver”.
Output The Cholesky solver yields the following: The displacements were enlarged by the factors FUX, FUY and FUZ of 1000.
13.4 Bending Girder with Beam No. 13 491
Figure 13.3-7: View in the XZ plane, deformed structure with display of displacements in Z, scaling 1000
■■13.4 Bending
Girder with Beam No. 13
The bending girder is a beam with centre load, which is firmly clamped on both ends. You can calculate it analytically very well. This example is so easy, that you will enter it directly by editor. We consider an on both sides fixed girder, which is loaded in the middle with 1,648 N (cf. Dubbel /24/, p. 201, case 6). Geometry: Length 1,000 mm, cross section plane 50 × 10 mm. As a consequence: A = 500 mm2, Izz = 4,167 mm4, ezz = 5 mm. The deflection curve has inflection points, hence, we take 4 beams No. 13. The nodes 1 and 5 are clamped, in node 3 we set the load. Analytically we compute: Displacement in the middle: f =
Fℓ3 = 10 mm 192 EI
Displacement in the inflection points: fw =
f = 5 mm 2
The moments on the left, on the right, in the middle: Mb = The twist angle in the inflection points: ψ = atan
3f ℓ
Fℓ = 206,000 Nmm 8
= 0.029991 rad
492 13 Examples
Figure 13.4-1: Beam, fixed on both ends
13.4.1 With Z88 V14 You can find the example files in the example directory B4. Z88I1.TXT
Structure data
Z88I2.TXT
Boundary conditions
Z88I5.TXT
Distributed loads (in this case: 0)
Z88MAN.TXT
Control parameters for the solver
Z88MAT.TXT
Material control file
51.TXT
Material file
Z88ELP.TXT
Element parameters
Z88INT.TXT
Integration orders
Z88: (in short form, for more detailed instructions cf. examples 13.1,13.2 and 13.3) Z88O, considers the structure Z88R, calculates deflections, stresses and node forces Z88O, plots the FE structure, here also the deformed one (FUX, FUY, FUZ each 10.) With the evaluation of Z88O2.TXT (displacements) and Z88O4.TXT (forces, moments), we have to pay attention to the definitions of algebraic signs (cf. paragraph 4.13). Especially Z88O4.TXT, node 3: The force F (2) = force in Y is the sum of the single forces of the elements 2 and 3, because it is an external load. The force F (3) = bending moment is not the sum of the forces of the elements 2 and 3, because it is a cross- section moment, no external load! Also the algebraic signs of the load F (3) in the node 1 and F (3) in the node 5 are the right ones (cf. paragraph 12.13). In the engineering mechanics, sometimes other conventions are used.
13.4 Bending Girder with Beam No. 13 493
INPUTS With this example, it becomes clear that with a FEA calculation, nodes definitely have to exist at every position where we want to get results. Since the beam is “fixed” on both ends, the biggest displacement appears in the middle where x = ℓ/2. However, the deflection curve has two additional inflection points with x = ℓ/4 and with x = 3 ℓ/4. To receive computational results at these points, we have to split the structure into four beams No. 13 with nodes at x = 0, x = ℓ/4, x = ℓ/2, x = 3 ℓ/4, x = ℓ. We only show you the input via files, as the CAD insertion is here not worthwhile. Z88I1.TXT: 2 5 1 3 2 3 3 3 4 3 5 3 1 13 1 2 2 13 2 3 3 13 3 4 4 13 4 5
4 0 250 500 750 1000
15 0 (2D, 5 nodes, 4 elements, 5 degrees of freedom, KFLAG 0) 0 (1st node, 3 degrees of freedom, X and Y coordinates) 0 0 0 0 (1st element, type plain beam No. 13) (coincidence 1st element)
With these boundary conditions, we block the 1st node in all degrees of freedom. The displacement in X = degree of freedom 1 is particularly important to get a statically determined structure. In the 5th node, the definition of the degrees of freedom 2 (= displacement in Y) and 3 (= clamping moment) is enough. If you want to, you can computationally block the degree of freedom X. In practice the supports are executed in a way that the girder can at least move in X direction at one of the supports in case of thermal expansion. This is considered in Z88I2.TXT. Z88I2.TXT: 6 1 1
2
1 1 3 5 5
2 2 1 2 2
2 3 2 2 3
(6 boundary conditions) 0 (node 1, displacement of 0 in degree of freedom 1 = fixing degree of freedom 1) 0 (node 1, fixing degree of freedom 2) 0 (node 1, fixing degree of freedom 3 (clamping moment)) –1648 (node 3, force of –1648 N in degree of freedom 2) 0 0
In addition, we have to edit the material control file Z88MAT.TXT, the material file 51.TXT, the element parameter file Z88ELP.TXT, the integration order file Z88INT.TXT as well as the solver control file Z88MAN.TXT (what has already occurred in the respective example files):
494 13 Examples
Z88MAT.TXT: 1 1 4 51.txt
51.TXT: 206000
(altogether one material law) (is valid for elements 1 to 4 and the material parameters are contained in the file 51.txt, cf.11.5)
0.3
(Young’s Modulus 206000, Poisson’s ratio 0.3, cf. 11.6)
Z88ELP.TXT: 1 1 4 500 0 0 4167 5 0 0 (elements 1 ~ 4, QPARA= surface, Ixx=0, exx=0, Izz, ezz, It=0, Wt=0,cf. 11.7) Z88INT.TXT: 1 1 4
0 0
(altogether only one set of integration orders) (is valid for elements 1 to 4, INTORD=0, INTOS=0, cf. 11.8)
Z88MAN.TXT: Only the following are important, cf. 11.10: IBFLAG 1
(beam in the structure)
IPFLAG 0
(no plates in the structure)
IHFLAG 0
(no shells in the structure)
KDFLAG 0
(no calculation of radial and tangential stresses)
ISFLAG 0
(no reduced stresses)
Since we now know the structure data Z88I1.TXT, the boundary conditions Z88I2.TXT and the control files, we can launch the solver Z88R -choly.
OUTPUTS The Cholesky solver Z88F -choly delivers the following output files: Z88O0.TXT, the edited structure values: For documentation purposes. Z88O1.TXT, edited boundary conditions: For documentation purposes. Z88O2.TXT, the calculated displacements, the solution of the FE problem as well as Z88O3.TXT, the calculated stresses and Z88O4.TXT, the calculated nodal forces. The displacements were enlarged by the factors FUX, FUY and FUZ of 10 each. With the results of the nodal forces, you have to note: Node 3: The force F (2) = force in Y is the sum of the single forces of the elements 2 and 3, because it is an external load. The force F (3) = bending moment is not the sum of the forces of the elements 2 and 3, because it is a cross section moment, no external load! Also the algebraic signs for load F (3) in the node 1 and F (3) in the node 5 are the right ones, cf. paragraph 4.13. In the engineering mechanics, sometimes other conventions are used. Additional remark: As you can see, such easy examples help us to point out the algebraic sign definitions. You can experimentalize with this example and compute other bending cases from any mechanical textbook. Correspondingly, you can also calculate beam frameworks etc. with beam No. 2. In this case we need a real spatial structure: At least one Z coordinate must not be 0.
13.4 Bending Girder with Beam No. 13 495
Figure 13.4-2: View of the deformed structure
Note: The plot program Z88O connects the nodes with straight lines, although in case of a beam No. 13 or No. 2, the deflection curve is a cubic parabola. This means: Z88O correctly shows the deflections in the nodes, but straight sections are between the nodes. There, no deflection curves are illustrated. If you want to carry this out with Z88O, we would have to use substantially more beams (to display the deflection curve by a bigger number of straight lines). And this is what we do right now: We extend the file Z88I1.TXT to 21 nodes and 20 elements and change the boundary condition file as follows: 6 1 1 1 11 21 21
1 2 3 2 2 3
2 2 2 1 2 2
0. 0. 0. –1648. 0. 0.
Of course, we have already prepared this for you: Example database b4_20ele.
Figure 13.4-3: New structure with 21 nodes and 20 elements
496 13 Examples
Figure 13.4-4: New structure with 21 nodes and 20 elements, deformed
As you can see in Figure 13.4-4, we already have an appealing deflection curve and we can also show the displacement values. The enlargement factors are 10 each. PLEASE NOTE: We need nodes at every point where we want to get results.
13.4.2 With Z88Aurora V2 Create a new Project File Create a new project file
.
The structure is manually created in the surface. Button pre-processor → Create nodes and elements → Select node menu
Create a Node 1. Enter the coordinates 0, 0, 0. Even if the structure is only two-dimensional, we need to a Z coordinate in the input mask of Z88Aurora which is set to zero in each case. 2.
Add The node appears in the node list.
3. Repeat this process 4 times for the remaining nodes according to following table.
13.4 Bending Girder with Beam No. 13 497
Node number
X coordinate
Y coordinate
Z coordinate
Create Elements 1. Switch into element menu
and select element type “Beam No. 13”.
2. Insert or select nodes that have to link the element, according to the following table resp. and select them in the openGl window. 3.
Add The element appears in the element list.
4. Repeat this process 3 times for the remaining elements. 5. Close the menu. The structure is created. Element number
Node No. 1
Node No. 2
Element Parameter Beam 2D Apply the approach from example 13.2. All element parameters are valid for all elements. The input is carried out by the free input of parameters (cf. Figure 13.4-5).
498 13 Examples
2. Add
1 Type in values 1.
Figure 13.4-5: Define element parameters with free cross section
Assigning material As material, use S235JR from the Z88Aurora material database.
Node picking and Boundary Conditions Create a node set for the nodes 1, 3 and 5 each. 1. Set “node1”, consisting of node number 1. 2. Determine the direction: set X, Y direction, rotation about Z axis. 3. Select the boundary condition type “displacement”. 4. Enter the value “0”. 5. Name the boundary condition: “locating_bearing”. 6.
Add
7. Implement the same process for the set “node5”, direction Y and rotation Z, type “displacement”, value “0”, name “floating_bearing” as well as for the set “node3”, direction Y, type “Force (uniformly distributed)”, value “−1648”, name “force”.
13.4 Bending Girder with Beam No. 13 499
F = -1648 N 1
3
node sets 5
boundary conditions
Figure 13.4-6: Structure with boundary conditions and node sets (on top) and boundary conditions (below)
Launch the Calculation Start the calculation with the “Cholesky solver”.
Outputs The Cholesky solver delivers the following display (Figure 13.4-7).
Figure 13.4-7: Displacements in Y direction, deformed view
Read AutoCAD DXF Structure with Boundary Conditions For the correct representation of the deflection curve, the refined model can be read with the AutoCAD DXF import. For this purpose, select “AutoCAD DXF” in the import menu and choose the option “DXF structure and boundary conditions in Z88Aurora”. Use the file z88x.dxf from the example directory z88_examples_z88v14os/b4_20ele. The boundary conditions are automatically applied into the Z88Aurora format, the sets are automatically set. Analogously, you have to add material values and the element geometry. After the calculation with the Cholesky solver, the deflection curve appears in the expected form.
500 13 Examples
Figure 13.4-8: New structure with 21 nodes and 20 elements, deformed
■■13.5 Plate
Segment of Hexahedrons No. 1 and No. 10
A plate segment of the form of a cake slice is calculated as a spatial structure with curvilinear hexahedrons. It is fixed at the outer edge and is loaded at the inner edge with 7,000 N. You should enter such structures in cylinder coordinates; to gather the geometry, two super elements hexahedron No. 10 are enough. Next, these super elements should be split into a total of 48 hexahedrons No. 1 as a FE mesh. This example suits very well for experiments with the mesh generator. If you use this generator, maybe you will have to define new boundary conditions: with the help of your CAD program or the Z88 plot program, as we will see later. With the stress display, you have to note that the stresses are indicated in the Gauss points. Gauss points are located in the interior of a finite element, never on the surface. You receive stresses on the surface by extrapolating, e. g., bending stresses with the theorem of intersecting lines.
Figure 13.5-1: Super structure which consists of two hexahedrons No. 10 with 20 nodes each
13.5 Plate Segment of Hexahedrons No. 1 and No. 10 501
13.5.1 With Z88 V14 You can find the example files in the example directory B5. Z88X.DXF
DXF file
Z88I2.TXT
Boundary conditions
Z88I5.TXT
Distributed loads (in this case: 0)
Z88MAN.TXT
Control parameters of the solver
Z88MAT.TXT
Material control file
51.TXT Material file Z88ELP.TXT
Element parameters
Z88INT.TXT
Integration orders
CAD: Import and consider Z88X.DXF in your CAD program. This is a model as you would have normally drawn in CAD and exported it as Z88X.DXF.
Z88 (short form, for more detailed instructions cf. examples 13.1, 13.2 , 13.3): Z88X, Z88O, Z88N, Z88O, Z88X,
conversion “from Z88X.DXF to Z88NI.TXT” contains the structure file Z88NI.TXT, consider the super structure mesher, generates Z88I1.TXT contains structure file Z88I1.TXT, undistorted FE structure conversion “from Z88I*.TXT to Z88X.DXF”
CAD: Import and consider Z88X.DXF in your CAD program. Normally you would have added the boundary conditions and control information Z88I3.TXT in CAD and exported it as Z88X.DXF now.
Z88 (short form, for more detailed instructions cf. examples 13.1, 13.2 , 13.3): Z88X, conversion “from Z88X.DXF to Z88I*.TXT” Z88R, calculates deformations, stresses and nodal forces Z88O, plotting the FE structure, also deformed ( with FUX, FUY, FUZ of 10); resp. stress display
Inputs with CAD Program: Proceed according to the description in chapter 10.4 or to the Z88 manual. You should input the geometry data in cylinder coordinates. Do not forget to store the super element information by the TEXT function on the layer Z88EIO:
502 13 Examples
(1st super element, FE type 1, 8x geometric ascending in x, 3x constant in y, z remains) SE 2 1 8 L 3 e 1 e (2nd super element, FE type 1, 8x geometric ascending in x, 3x constant in y, z remains) Store the general information and the Young’s Modulus on the layer Z88GEN: Z88NI.TXT 3 32 2 96 1 1 0 0 0 (3D, 32 nodes, 2 super elements, 96 degrees of freedom, KFAGSS 1, KFLAG 1) SE
1 1 8 L 3
e 1
e
Export the drawing as a DXF file with the name Z88X.DXF and afterwards launch the CAD converter Z88X with the option “from Z88X.DXF to Z88NI.TXT”. The mesher input file Z88NI.TXT is generated.
With Editor: Write the mesher input file Z88NI.TXT (cf. chapter 11.9) with the editor: (3D, 32 nodes, 2 super elements, 96 degrees of freedom, KFLAGSS 1, KFLAG 1) (1st node, 3 degrees of freedom, R, Phi and Z coordinate) (2nd node, 3 degrees of freedom, R, Phi and Z coordinate)
3
32 2
1
3
20 0
5
2
3
80 0
5
3 … 31 32 1 1
3
80 45 5
2 4 1 8
10 3 21 22 8 7 23 24 11 25 26 27 15 28 29 30 20 19 31 32 1 (split the super element 1 in hexahedrons no.1) L 3 e 1 e (8x geometric ascending in x, 3x constant in y, z remains) 1 L 3 e 1 e
2 8
96 1 1 0
3 80 90 2.5 3 20 90 2.5 10 2 3 4 5 6 7
(the nodes 4 to 30 are not represented here)
8
9
(super element 1, type hexahedron No. 10) 10 11 12 13 14 15 16 17 18 19 20 (coinci dence for SE1)
CAD and Editor: Launching the mesher Z88N. It generates the final Z88 structure file Z88I1.TXT. We consider it either after converting with Z88X in the CAD program (from Z88I1.TXT to Z88X.DXF) or with the Z88 plot program Z88O to be able to define the boundary conditions.
13.5 Plate Segment of Hexahedrons No. 1 and No. 10 503
Figure 13.5-2: View of the FE mesh Z88I1.TXT generated by the mesher
In the plot program or in the CAD system we now determine the nodes at which the structure should be held on resp. loaded and enter the boundary conditions:
In the CAD program: Insert with the TEXT function at any free space on the layer Z88RBD: Z88I2.TXT 49 RBD 1 1
3 1 −1000
RBD RBD RBD RBD
2 3 4 5
3 5 7 65
3 3 3 1
RBD
6
65
2 2 0
RBD
7
65
3 2 0
1 1 1 2
−1000 −1000 −1000 0
.... RBD RBD RBD .....
29 73 30 75 31 77
3 1 −1000 3 1 −1000 3 1 −1000
RBD RBD RBD
47 126 1 2 0 48 126 2 2 0 49 126 3 2 0
(49 boundary conditions) (1st boundary condition: node 1, degree of freedom no.3, in Z, load of –1000 N)
(5th boundary condition: node 65, degree of freedom No. 1 fixed) (6th boundary condition: node 65, degree of freedom No. 2 fixed) (7th boundary condition: node 65, degree of freedom No. 3 fixed) (the nodes 66 to 72 are fixed in all the 3 degrees of freedom just as node 65)
(the nodes 121 to 125 are blocked in all 3 degrees of freedom just as node 126)
With Editor: Set the file of the boundary conditions Z88I2.TXT by editing: 49 1 3 5 7 65
3 3 3 3 1
1 1 1 1 2
−1000 −1000 −1000 −1000 0
(49 boundary conditions) (node 1, degree of freedom No. 3, Z, load of –1000 N)
(node 65, degree of freedom 1 is fixed)
504 13 Examples
65 65 .....
2 3
2 2
0 0
73 75 77 .....
3 3 3
1 1 1
−1000 −1000 −1000
126 1 126 2 126 3
2 2 2
0 0 0
(node 65, degree of freedom 2 is fixed) (node 65, degree of freedom 3 is fixed) (the nodes 66 to 72 are fixed in all 3 degrees of freedom just as node 65)
(the nodes 121 to 125 are fixed in all 3 degrees of freedom just as node 126)
Now, the material control file Z88MAT.TXT, the material file 51.TXT, the element parameter file Z88ELP.TXT, the integration order file Z88INT.TXT as well as the solver control file Z88MAN. TXT have to be edited (what has already occurred for you in the respective example files): Z88MAT.TXT: 1 1 48
(altogether one law of material) 51.txt (is valid from element 1 to 48 and the material parameters are contained in the file 51.txt, cf. 11.5)
51.TXT: (Young’s Modulus 206000, Poisson’s ratio 0.3, cf. 11.6)
206000 0.3 Z88ELP.TXT: 1 1 48 0
0
0
0
0
0
0
(no indications necessary since these are volume elements)
Z88INT.TXT: 1 1 48 2
2
(altogether, only one set of integration orders) (is valid from element 1 to 48, INTORD=2, INTOS=2, cf. 11.8)
Z88MAN.TXT: Only the following are important, cf. 11.10: IBFLAG 0
(no beams in the structure)
IPFLAG 0
(no plates in the structure)
IHFLAG 0
(no shells in the structure)
KDFLAG 0
(no calculation of radial and tangential stresses)
ISFLAG 1
(von Mises reduced stresses)
As we now know the structure data Z88I1.TXT, the boundary conditions Z88I2.TXT and the control files, we can launch the solver Z88R –choly.
13.5 Plate Segment of Hexahedrons No. 1 and No. 10 505
OUTPUTS The Cholesky solver Z88R -choly delivers the following output files: Z88O0.TXT, the edited structure values: For documentation purposes. Z88O1.TXT, the edited boundary conditions: For documentation purposes. Z88O2.TXT, the calculated displacements, the solution of the FE problem as well as Z88O3.TXT, the calculated stresses and Z88O4.TXT, the calculated nodal forces. By selecting the factors FUX, FUY and FUZ (enlargement of the displacements) of 10 each, the following picture of the deformed structure arises in the plot program (Figure 13.5-3).
Figure 13.5-3: View of the deflected structure, Wireframe mode
Figure 13.5-4: View of the deflected structure, Hiddenline mode
506 13 Examples
Annotation: It is easy to construct the super structure in, e. g., AutoCAD. You will draw the edges as curves. The nodes can easily be generated by the function Draw > Point > Divide. While circling the elements (with the line function), you should pay attention to having positioned the view in the space correctly, i. e. to meet all the nodes of a super element exactly. We used hexahedrons No. 10 with 20 nodes as super elements and recently created a structure with linear hexahedrons No. 1. This is easy and straight, but is this also right? We are dealing with a bending condition in several levels, with a cubic parabola as the deflection curve of beams. Are we able to display this exactly enough with eight linear hexahedrons in radial direction? To answer this question, we will have to generate the more exact hexahedrons No. 1 with a quadratic approach. Fortunately, to carry this out, we only have to change two things in the mesh generator file Z88NI.TXT: You need to replace the type 1 in lines 39 and 41 with type 10. Further, you should change the integration order in Z88INT.TXT from 2 to 3. Launch the mesher. Now, and this is the real effort, we have to edit the boundary conditions, since the mesh has completely changed. With the plot program Z88O, you should zoom and rotate gradually with the keyboard to see the concerning zones and to be able to read the node numbers. This is easier than zooming and rotating by mouse control. Following nodes must be blocked in X, Y and Z direction: 209~226 and 395~409. The load of 7,000 N has to be set on these nodes: 1, 4, 6, 9, 11, 14, 16, 227, 229, 232, 234, 237 and 239. It is very important to distribute the force properly: As we are dealing with hexahedrons with square approach, the loads have to be split along the edges to set 1/6 of the load on both corner nodes and 2/3 of the load on the centre node (cf. chapters 4.6 and 5.3). The internal margin for the load application consists of six element edges, hence: 7000 N = 1166.67 N 6
As a result, we receive following values for “1/6 points”, “1/3 points” (where two “1/6 points” collide) and “2/3 points”: 1166.67 N 1166.67 N = 194.44 N, = 388.89 N, 6 3
2 · 1166.67 N = 777.78 N 3
“1/6 points” are 1 and 239, “1/3 points” are 6, 11, 16, 229 and 234, “2/3 points” are 4, 9, 14, 227, 232 and 237. Insert these boundary conditions into Z88I2.TXT. This seems to be a lot of work, but you will have finished it after half an hour. In Z88INT.TXT you should change INTOS from 2 to 3. If you do not want to do the work by yourself: use example directory B5_ELE10. After having computed with Z88R, these values will appear in the plot program:
σV max ,v Mises = 633 N/mm2 , σV min ,v Mises = 373 N/mm2 zmax = −2.16 mm, zmin = +0.0165 mm If you repeat the first calculation with the linear hexahedrons once, you will get quite different values:
σV max ,v Mises = 322 N/mm2 , σV min ,v Mises = 110 N/mm2 zmax = −0.89 mm, zmin 0 mm
13.5 Plate Segment of Hexahedrons No. 1 and No. 10 507
This shows you how inexactly the calculation with linear hexahedrons No. 1 was. It is obvious: A cubic parabola can only be approximated incompletely with eight straight lines. Moreover, by the clamp arise compulsions and restraints of deformation along the crooked outside margin, which cause bending stresses in other levels. In Figure 13.5-4, you can clearly see the crowning of the internal margin. Probably you would have to choose the 5-fold to 10-fold number to receive any dependable results. The hexahedrons No. 10 with quadratic approach are able to solve the problem much more exactly. How exact is our result with the hexahedrons No. 10? We do not know that. Actually, you would have to refine the structure, calculate, refine the structure again and only with the results not changing any more you will receive an exact result. However, trust our experience: The used structure with the “quadratic” hexahedrons fits quite well and will deliver useful results. PLEASE NOTE: With bending loads in the space in several levels, always use elements with square approach. Linear elements are mostly too inexact.
13.5.2 With Z88Aurora V2 The example is imported into Z88Aurora as a DXF structure. The division of the super elements and the set of the boundary conditions occur directly via the GUI.
Create a new Project File Create a new project file
.
Import AutoCAD DXF Import the example file z88x.dxf from z88_examples_z88v14os/b5 as we are already used to it and select the option “DXF super structure to Z88Aurora super structure”.
Create the FE Structure from Super Elements Super elements and set the division of Switch into the pre-processor menu and to the superelements for both super elements according to example 13.1:
508 13 Examples
1. Choose element type No.1 2. X- direction incremental 8 3. Y- direction equidistant 3
3. Z- direction equidistant 1
Figure 13.5-5: Rules of meshing the super elements
Node Picking – Edge Picking As application point of the force, we choose the internal edge. To carry this out, switch into the picking menu und select “node picking”. By the selection of a node of the internal edge, without selecting the corner nodes, and by selecting Edge the selection of the node line automatically occurs.
Select one node on the edge
+
Edge
Figure 13.5-6: Edge picking
Afterwards we generate the set “force”. You can proceed in the same way with the clamp by fixing the upper and the lower edge. Alternatively, you can carry out the selection with “single node” or picking with the mouse and the STRG button. Name of the set “clamp”.
13.5 Plate Segment of Hexahedrons No. 1 and No. 10 509
F = -1000 N each
Figure 13.5-7: Plate segment with boundary conditions
Boundary Conditions With the button Pre-processor → assign boundary conditions. → You are able to select the just defined sets in the object menu. 1. Select set “constraint”. 2. Determine the direction: X, Y and Z direction. 3. Select boundary condition type “Displacement”. 4. Enter value “0”. 5. Name the boundary condition: “clamp”. 6.
Add
7. Set the load: Set “force”, direction Z, force (distributed load), and value “−1000”, name “force”. 8. Check the correct set of boundary conditions with “displays all”. 9. Close the menu.
Assign Material Use the material S235JR from the Z88Aurora material database.
Launch Calculation Start the calculation with the “PARDISO solver”.
Outputs The PARDISO solver delivers the following stresses in the corner nodes (Figure 13.5-8).
510 13 Examples
Figure 13.5-8: View of the deformed and undeformed structure, stresses in the corner nodes (7.5 times higher deformation)
■■13.6 Pipe
under Internal Pressure, Plain Stress Element No. 7
We deal with a pipe under internal pressure of 1,000 bar = 100 N/mm2.The inside diameter of the pipe is 80 mm, and the outside diameter of the pipe is 160 mm. The length is 40 mm. If one chooses the supports cleverly, a quarter of the pipe is enough to reflect the problem. Such structures are best suited for polar coordinates. The internal pressure of 1,000 bar corresponds to a force of 251,327 N, which is loaded onto the inside quadrant. The 251,327 N have to be distributed onto the nodes 1,6,9,14,17,22,25,30 and 33 in accordance with the rules for boundary conditions: “1/6 points”
: 10,472 N
“2/3 points”
: 41,888 N
“2/6 points”
: 20,944 N
Control: 2 × 10,472 + 4 × 41,888 + 3 × 20,944 = 251,328 o.k. These forces have an outwardly directed radial effect. Thus, they must be subdivided into X and Y components for boundary conditions. E. g. the node 6 as “2/3 point” is subdivided into X = 41,083 N and into Y = 8,172 N, because node 6 has an angle ϕ = 11.25 degrees. This problem is simple to check analytically. Consult appropriate machine element books for proper calculation formulas, or see chapter 13.7.
13.6 Pipe under Internal Pressure, Plain Stress Element No. 7 511
37 32 29 36
8
24 28
6
35
21
31 27
34
20
7
23 16
26 33
5
30
4
19
25 18
22
15 17
13
3
12
14
11 10
2
9
1
8
7
6
1
2
3
4
5
Figure 13.6-1: Plot of the undeflected structure
13.6.1 With Z88 V14 The example files can be found in the example directory B6. Z88X.DXF
DXF file
Z88MAN.TXT
parameters file for the solver
Z88MAT.TXT
material parameters file
51.TXT
material file
Z88ELP.TXT
element parameters
Z88INT.TXT
integration orders
CAD: Import Z88X.DXF into your CAD program and consider it. Normally, this structure would have been generated with the CAD program and then exported as Z88X.DXF.
Z88: (short recap, detailed description see 13.1, 13.2 and 13.3) Z88X, conversion “from Z88X.DXF to Z88I*.TXT” Z88O, with structure file Z88I1.TXT, consider the structure Z88R, calculates deflection, stresses and nodal forces Z88O, plots the FE structure, now deformed (FUX, FUY = 100.) When dealing with an axisymmetric structure, the additional calculation of radial stresses and tangential stresses can be interesting: Set KDFLAG to 1 in Z88MAN.TXT. The stresses are calculated in the Gauss points. Use linear extrapolations to get the stresses directly in the inside diameter and the outside diameter.
512 13 Examples
Input with CAD program: Proceed after the description in chapter 10.4 or the Z88/Z88Aurora user manual. Do not forget to write the element descriptions onto the layer Z88EIO by the TEXT function: FE 1 FE 2 … FE 8
7 7 7
(1st finite element type 7) (2nd finite element type 7) (element No. 3 to 7 dropped here) (8th finite element type 7)
Write the general information and material information on the layer Z88GEN, like Z88I1.TXT 2 37 8 74 1
(2D, 37 nodes, 8 elements, 74 DOF, polar coordinates)
Write the boundary conditions with the TEXT function onto the layer Z88RBD. Here, we have the case of surface loads for the boundary conditions. You should consult chapter 5.3. and take the explanation and sketches for load distributions into account. Z88I2.TXT RBD RBD
26 1 1 2 1
RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
2 3 4 5 6 6 9 9 14 14 17 17 22 22 25 25 30 30 33 33 34 35 36 37
(26 boundary conditions) 1 1 10472 (1st BC: Node 1, DOF 1(= X), a load of 10472 N) 2 2 0 (2nd BC: Node 1, DOF 2 (=Y), a displacement of 0 (=fixed)) 2 2 0 2 2 0 2 2 0 2 2 0 1 1 41083 2 1 8172 1 1 19350 2 1 8015 1 1 34829 2 1 23272 1 1 14810 2 1 14810 1 1 23272 2 1 34829 1 1 8015 2 1 19350 1 1 8172 2 1 41083 1 2 0 2 1 10472 1 2 0 1 2 0 1 2 0 1 2 0
13.6 Pipe under Internal Pressure, Plain Stress Element No. 7 513
Export the drawing as DXF file with the name Z88X.DXF, then start the CAD converter Z88X with the option “from Z88X.DXF to Z88I*.TXT” (DXF → I*). The CAD converter produces the three Z88 input files Z88I1.TXT, Z88I2.TXT, Z88I5.TXT. In addition, you’ll need these files: material groups Z88MAT.TXT, material data file 51.TXT, element parameters Z88ELP.IXT, integration orders Z88INT.TXT and the solver parameters Z88MAN. TXT. Create them by using an editor (this has already been done for you in the example files): Z88MAT.TXT: 1 1
8
(one material group in total) (range from ele.1 ~ ele.8 and read 51.txt, see 11.5)
51.txt
51.TXT: 206000
(Young’s modulus 206000, Poisson’s ratio 0.3, see 11.6)
0.3
Z88ELP.TXT: 1 1
8
40 0
0
0
0
0
0
(ele. ~ ele.8: thickness 40, see 11.7)
Z88INT.TXT: 1 1
8
3
(one set of integration orders in total) (range from ele.1 ~ ele.8, INTORD=3, INTOS=3, see 11.8)
3
Z88MAN.TXT: Only these entries are of interest, see 11.10: IBFLAG 0
(no beams in the structure)
IPFLAG 0
(no plates in the structure)
IHFLAG 0
(no shells in the structure)
KDFLAG 1
((additional calculation of radial and tangential stresses)
ISFLAG 1
(reduced stresses: von Mises)
With Editor: Write the structure data file Z88I1.TXT (cf. chapter 11.2) with an editor: 2
37 8
74
1 2 3 4 5 6 7 8 9 …
2 2 2 2 2 2 2 2 2
0 0 0 0 0 11.25 11.25 11.25 22.5
40 48 56 68 80 40 56 80 40
1
(2D, 37 nodes, 8 elements, 74 DOF, Polar coor.:KFLAG=1) (1st node, 2 DOF, R and Phi coordinate) (2nd node, 2 DOF, R and Phi coordinate)
(Nodes 10 to 35 dropped here)
514 13 Examples
36 37 1 1 2 3 … 8 27
2 2 7 3 7 5
68 90 80 90 11 9
2
7
10 6
13 11
4
8
12 7
7 29 37 35
(element 1, plane stress element No. 7) (coincidence 1st element)
(elements 3 … 7 dropped here)
28 32 36 31
Here we have the case of edge loads for the boundary conditions. Consult chapter 11.3. and take the explanation and sketches for load distributions into account. Here is Z88I2.TXT: 26 1 1 2 3 4 5 6 6 9 9 14 14 17 17 22 22 25 25 30 30 33 33 34 35 36 37
1 2 2 2 2 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 1 1 1
1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 2 2
10472 0 0 0 0 0 41083 8172 19350 8015 34829 23272 14810 14810 23272 34829 8015 19350 8172 41083 0 10472 0 0 0 0
(26 boundary conditions) (Node 1, DOF 1(= X), a load of 10472 N) (Node 1, DOF 2 (=Y), a displacement of 0 (=fixed))
This example is very nice for experiments with the boundary conditions: Enter deflections rather than forces into X and Y, e. g. 0.01 mm in radial direction to the outside. At node 1, you can enter the 0.01 mm directly as X displacement and at node 33, you can enter directly the Y displacement of 0.01 mm, but for the other nodes the radial displacements of 0.01 mm must be subdivided into X and Y components respectively (via sine and cosine). Or enter mixed BC: A
13.6 Pipe under Internal Pressure, Plain Stress Element No. 7 515
couple of nodes with displacements, the others with forces. In practice, nobody would do so for such a task, however, but Z88 can handle it. A broad experimenting field also opens up with the stress calculation: You have 5 possibilities for INTOS in Z88INT.TXT, two possibilities for KDFLAG in Z88MAN.TXT and four choices for ISFLAG in Z88MAN.TXT, cf. Chapters 11.8, 11.10 and 12.7. Thus, you can generate plenty of results: Z88INT.TXT: 1 1 8
3
3
(one set of integration orders) (from ele.1 ~ ele.8, INTORD=3, INTOS=3, see 11.8)
Z88MAN.TXT: Here are only important, see 11.10: KDFLAG 1
(additional calculation of radial and tangential stresses)
ISFLAG 1
(reduced stresses: von Mises)
CAD and Editor: The structure data Z88I1.TXT, the boundary conditions Z88I2.TXT, the surface loads Z88I5.TXT (with a 0 in the first line) and the parameter files are ready to go. Now, launch Z88R –choly.
Alternative Load with Surface Load File: The data entry by single forces was somewhat cumbersome because of dividing the force of 251,327 N to several nodal points with respect to the actual angle position. This is much easier via edge loads from the surface and pressure loads file Z88I5.TXT. The edge load is: q=
F F 251,327 = = = 4,000N/mm ℓ r·ϕ 40 · π/2
This edge load acts onto the elements 1, 3, 5 and 7. The edge of element 1 is the edge defined by the corner nodes 9 and 1 and the middle node 6 etc. The edge load points normally to the edge, there are no tangential loads. Thus, the surface and pressure loads file Z88I5.TXT is: 4 1 3 5 7
4000. 4000. 4000. 4000.
0. 0. 0. 0.
9 17 25 33
1 9 17 25
6 14 22 30
The surface loads file is now read because the first entry is > 0. Now edit the boundary conditions file Z88I2.TXT: Skip all forces:
516 13 Examples
10 1 2 3 4 5 33 34 35 36 37
2 2 2 2 2 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
Please have a look at the already prepared directory B6_Q. Now, compute deflections, stresses and nodal forces as usual with Z88R –choly
Output: The Cholesky solver Z88R –choly provides the following output files: Z88O2.TXT, the displacements, Z88O3.TXT, the calculated stresses and Z88O4.TXT, the computed nodal forces. The displacements were enlarged by the factor of 100 with FUX and FUY. This example is very suitable to demonstrate all the possibilities of the stress calculation with Z88R and plane stress elements No. 7 (or plane stress elements No. 11). We recall: Z88INT.TXT: 1 1 8
3
3
(only 1 integration order) (ele. 1 ~ ele. 8, INTORD=3, INTOS=3, see 11.8)
Z88MAN.TXT: only important, see 11.10: KDFLAG 1
(0 or 1: additional calculation of radial and tangential stresses)
ISFLAG 1
(0,1,2,3 : no reduced stresses,von Mises principal s.,Tresca)
If you set KDFLAG to 0, you get reduced stresses, but no radial or tangential stresses. With INTOS = KDFLAG = ISFLAG = 0, you get the stresses in the corner nodes, not in the Gauss points. Now experiment … you have 5 × 2 × 4 = 40 possibilities.
13.6 Pipe under Internal Pressure, Plain Stress Element No. 7 517
Figure 13.6-2: Plot of the reduced stresses (von Mises) in the Gauss points with Z88O
Now, you should plot the boundary conditions with Z88O. The problem here is that some nodes have more than one BC e. g. node 1 features a force in X direction and is fixed in Y direction, too: 1 1
1 2
1 2
+1.04720E+004 +0.00000E+000
You should only select the boundary condition you want to see, because the points are plotted above each other, so you’re only able to see the last one. Suppose you would now choose hardened steel instead of ductile steel as the material for the pipe. Hardened steel, like ceramics or grey cast iron, tends towards brittle failure. This means to compute the principal stresses not the von Mises stresses. Thus, the ISFLAG in Z88MAN.TXT would now read 2 (instead of 1 for von Mises stresses). Z88MAN.TXT: Only important, see 11.10: KDFLAG 1
(additional calculation of radial and tangential stresses)
ISFLAG 2
(reduced stresses: principal stresses)
Then re-run Z88R.
518 13 Examples
Figure 13.6-3: Example for the selective plot of BCs with Z88O
13.6.2 With Z88Aurora V2 Like example 13.3, it is much faster to create in a text file with an editor than with the graphic user interface. Either you define a set for each BC (see example 13.3) or you import the existing Z88 V14 OS project.
Create a new Project Folder Create a new project folder
.
Import Z88 V14 OS Project Import the example files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT from z88_examples_z88v14os/b6.
13.6 Pipe under Internal Pressure, Plain Stress Element No. 7 519
1. Select Z88 file
2. Open folder
filter
3. Select Project (i1,i2,i5) and click OK
Figure 13.6-4: Import of a Z88 V14 project
In the same way, single Z88 V14 OS files can be imported. Afterwards switch to the BC menu and have a look at the applied BCs.
Setting of the slice thickness 1. Click the pre-processor icon → The context menu pops up at the right. 2. Choose the element parameter 3.
Thickness → The element geometry dialogue opens.
Add → The element properties are displayed.
4. Edit the thickness with a double click. Enter “40”.
Apply Material Use steel S235JR in the Z88Aurora material database.
Start calculation Start the calculation with the “PARDISO solver”.
Output The PARDISO solver provides the following stresses in the Gauss points (Figure 13.6-5).
520 13 Examples
Figure 13.6-5: Undeflected structure, stresses in the Gauss points
■■13.7 Pipe
under Internal Pressure, Torus No. 8
Calculation of a pipe, whose inner radius should be expanded by rd = 0.1 mm. Thus, we create an press fit. In engineering mechanics, this can be seen as a pipe under internal hydrostatic pressure. The pipe’s inside diameter is 80 mm, the pipe’s external diameter is 160 mm and the length is 40 mm. The inside radius should be expanded by rd = 0.1 mm (press fit); this displacement is applied at the node 1-11. So that the structure is fixed in space, select e. g. node and fix it in z-direction. Analytically one computes (with E = 206,000 N/mm2 and ν = 0.3):
p=
rd E · ri
1 1+qa 1−qa
+ν
= 262 N/mm2 = 2,620 bar with qa =
Radial stresses:
σri = −p = –262 N /mm2
σra = 0
Tangential stresses: σti = p ·
r2i = 0.25 r2a
1 + qa = 437 N/mm2 1 − qa
σta = 2p ·
qa = 175 N/mm2 1 − qa
Reduced stresses von Mises: σVi = σ2r + σ2θ − σr · σθ = (−262)2 + 4372 − (−262) · 437 = 612 N/mm2
13.7 Pipe under Internal Pressure, Torus No. 8 521
Extrapolate the stresses in the Gauss points, with e. g. the intercept theorem to receive the stresses directly in the inside diameter or external diameter. Force: F = pA = p2πri l = 2,633,911 N
13.7.1 With Z88 V14 We will create the pipe cross-section with axisymmetric torus elements. You can find the example files in the directory B7. Z88X.DXF
DXF file
Z88I2.TXT
Boundary conditions
Z88I5.TXT
Surface loads (here 0)
Z88MAN.TXT
Parameters for solver
Z88MAT.TXT
Material parameters file
51.TXT
Material file
Z88ELP.TXT
Element parameters
Z88INT.TXT
Integration orders
CAD: Import Z88X.DXF into your CAD program. This model would normally have been drawn in CAD and then exported as Z88X.DXF.
Z88: Z88X, Conversion “from Z88X.DXF to Z88NI.TXT” Z88O, Structure file Z88NI, super structure Z88N, Mesher, creates Z88I1.TXT Z88O, Structure file Z88I1.TXT, undeflected FE structure Z88X, Conversion “from Z88I*.TXT to Z88X.DXF”
CAD: Import Z88X.DXF into your CAD program. Normally, you would have added the boundary conditions and the (here non-existent) surface loads in CAD and export as Z88X.DXF.
Z88: Z88X, Conversion “from Z88X.DXF to Z88I*.TXT” Z88F, calculates deflections, stresses and nodal forces Z88O, plots the FE structure, deformed display or display of stresses
522 13 Examples
INPUT General information: The information for the mesher contains merely one single Torus element No. 8 as a super element. It is disassembled in 40 finite elements. Of course, also an Torus element No. 12 could be used as a super element, but this would make no sense with this simple super structure limited by straight lines. It would only result in a higher effort in input. Torus elements No. 12 compared to Torus elements No. 8 are only advantageous when the super structure has many curvilinear boundaries, since Torus elements No. 12 have cubic parabolas as boundaries in contrast to Torus elements No. 8 with quadratic parabolas. Some curvilinear boundaries can be approximated by viewing Torus elements No. 12 instead Torus elements No. 8 with a higher mathematical order. Please note that with Torus elements No. 6, No. 8 and No. 12 cylinder coordinates are expected, so radius R (instead of X) and height coordinate Z (instead of) must be used. R and Z are always positive! KFLAG must be zero! With CAD program: Proceed as explained in chapter 10.4 or the Z88/Z88Aurora manual. Do not forget to save the super element information in layer Z88EIO as TEXT, thus (divide 8x geom. increasing in x and 5x equally in y)
SE 1 8 8 L 5 e
Save the basic information in layer Z88GEN: Z88NI.TXT 2 8 1 16 0 0 0 (2D, 8 nodes, 1 SE, 16 DoF’s, all flags 0) Export the drawing as DXF file with the name Z88X.DXF and start the CAD converter Z88X with the option “from Z88X.DXF to Z88NI.TXT”. The mesher input file Z88NI.TXT is generated. Have a look with Z88O (cf. Figure 13.7-1).
Figure 13.7-1: Super structure Z88NI.TXT
with Editor: Create Mesher input file Z88NI.TXT (cf. chapter 11.9) with an editor: 2 1 2 3 4
8 2 2 2 2
1 40 80 80 40
16 0 0 40 40
0
0
0
(2D, 8 nodes, 1 SE, 16 DoF’s, all flags 0) (1st node, 2 DoF, R- and Z coordinate) (2nd node, 2 DoF, R- and Z coordinate)
13.7 Pipe under Internal Pressure, Torus No. 8 523
5 6 7 8 1 1 1 8
2 2 2 2 8 2 8 L
60 80 60 40
0 20 40 20
3
4
5
e
5
6
7
8
(Superelement 1, type torus No. 8) (Coincidence 1st SE) (Divide SE1 in tori No. 8 und divide …) (… 8x geom. increasing in x and 5x equally in y)
CAD and Editor: Start the mesh generator Z88N to produce the final Z88 structure file Z88I1.TXT. Look at it either in the CAD program (from Z88I1.TXT to Z88X.DXF) after conversion with Z88X or with the Z88 plot program Z88O for defining the boundary conditions: We force displacements of 0.1 mm upon the inside margin. Every node receives the same value as the load division, which, in accordance with section 5.3, applies to forces only. Take care that the structure is fixed in space again. Therefore, fix the degree of freedom 2 for the node 6. Any other node is possible, too. With CAD program: Switch to the layer Z88RBD and write with the TEXT function into any free place: 12 1 2 3 4 5 5 7 8 9 10 11 12
Z88I2.TXT RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD RBD
1 2 3 4 5 6 6 7 8 9 10 11
1 1 1 1 1 1 2 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2
(12 boundary conditions) 0.1 (RB 1: node 1, at DOF 1, i.e into R, a displacement of 0.1 mm) 0.1 0.1 0.1 0.1 0.1 0 (BC 7: for fixing structure in space) 0.1 0.1 0.1 0.1 0.1
with editor: Create the file of the boundary conditions Z88I2.TXT by editing: 12 1 2 3 4 5 6 6 7
1 1 1 1 1 1 2 1
2 2 2 2 2 2 2 2
(12 boundary conditions) 0.1 (node 1, at DOF 1, i.e into R, a displacement of 0.1 mm) 0.1 0.1 0.1 0.1 0.1 0 (for fixing structure in space) 0.1
524 13 Examples
8 9 10 11
1 1 1 1
2 2 2 2
0.1 0.1 0.1 0.1
In addition, you’ll need these files: material groups Z88MAT.TXT, material data file 51.TXT, element parameters Z88ELP.TXT, integration orders Z88INT.TXT and the solver parameters Z88MAN.TXT. Create them by using an editor (this has already been done for you in the example files): Z88MAT.TXT: 1 (one material group in total) 1 40 51.txt (range from ele.1 ~ ele.40 and reads 51.txt, cf. 11.5) 51.TXT: (Young’s modulus 206000, Poisson’s ratio 0.3, cf. 11.6)
206000 0.3 Z88ELP.TXT: 1 1
40 0
0
0
0
0
0
0
(range from ele 1 ~ 40: Torus elements do not need element parameters)
Z88INT.TXT: 1 1 40 3 3
(one set of integration orders in total) (range from ele.1 ~ ele.40, INTORD=3, INTOS=3, cf. 11.8)
Z88MAN.TXT: Only these entries are of interest, cf. 11.10: IBFLAG 0
(no beams in the structure)
IPFLAG 0
(no plates in the structure)
IHFLAG 0
(no shells in the structure)
KDFLAG 0
(no additional calculation of radial and tangential stresses)
ISFLAG 1
(reduced stresses: von Mises)
KDFLAG is always 0, because additional output of radial and tangential stresses is useless for torus elements. SIGRR (radial stresses) and SIGTE (tangential stresses) are calculated for torus elements anyway, cf. section 12.8. Export the drawing as DXF file with the name Z88X.DXF, then start the CAD converter Z88X with the option “from Z88X.DXF to Z88I*.TXT”. The CAD converter produces the three Z88 input files Z88I1.TXT, Z88I2.TXT, Z88I5.TXT.
13.7 Pipe under Internal Pressure, Torus No. 8 525
Figure 13.7-2: Generated FE mesh Z88I1.TXT
Now, launch the Cholesky solver Z88R –choly.
RESULTS The Cholesky solver Z88R –choly provides the following output files: Z88O2.TXT, the computed displacements, Z88O3.TXT, the computed stresses and Z88O4.TXT, the computed nodal forces.
Figure 13.7-3: Plot of the stresses of the torus structure with Z88O
526 13 Examples
Solution with Torus Element No. 15 The same problem should be solved, this time with torus elements No. 15. Figure 13.7-4 shows the mesh that has been created manually. The input file is B7_ELE15.
Figure 13.7-4: Press fit assembly, modelled with torus elements No. 5
If one selects r = 40.3 mm, which is very close to the margin, the result for the reduced stress is given in Z88O3.TXT as σV = 601 N/mm2, (the analytical result for the reduced stress σV = 612 N/mm2 is calculated with r = 40 mm). This is a deviation of 2%. In any case this is a very good result, but is it true? Let’s perform a simple analytical calculation. For any radius in the case of a pipe under internal pressure follows (cf. /101/): Q2r − Q2 Q2r + Q2 ri ri und Q = , σ = p mit Qr = θ 1 − Q2 1 − Q2 r ra 40.0 ri ri 40 = 0.9926, Q = = 0.5 Qr = = = r 40.3 ra 80 Q2 − Q2 0.99262 − 0.52 = −262 = −256.85 N/mm2 σr = −p r 2 1−Q 1 − 0.52 Q2 + Q2 0.99262 + 0.52 σθ = p r = 262 = 431.5 N/mm2 2 1−Q 1 − 0.52 σr = −p
13.7 Pipe under Internal Pressure, Torus No. 8 527
The von Mises stresses are as follows: σVr=40.3 = σ2r + σ2θ − σr · σθ = 2 (−256.85) + 431.52 − (−256.85) · 431.5 = 602.5 N/mm2
Therefor the σV = 601 N/mm2 calculated in Z88 are relatively good. Additionally, the first structure with torus elements No. 8 produces the same result at element 3 and r = 40.3 mm. Obviously, this problem can be solved very elegantly with torus elements with a quadratic approach. However, the first structure was much easier to create than the second structure with torus No. 14, because we could use the mesher Z88N.
13.7.2 With Z88Aurora V2 Create new Project Folder Create a new project folder
.
Import AutoCAD-DXF Select the example file z88x.dxf in z88_examples_z88v14os/b7 and import it as usual. Activate the option “DXF super structure to Z88Aurora super structure”
Create a Super Structure
Super elements . Select “type 8”: “increasing Go to the pre-processor menu and to in x direction, value 8, equidistant in y direction, value 5”. See example 13.5.
Node picking – Picking with Key “Alt” There is a displacement on the complete left edge (Figure 13.7-5). Hold the left mouse and Alt key and select a rectangular window around the nodes; name of the set: “Displacement”. Select node No. 6 with “individual node”. Name the set “z fixed”.
528 13 Examples
Node selection
+
Figure 13.7-5: Selection of several nodes with Alt
Boundary Conditions Button Pre-processor → Define constraints. → The sets are available in the context menu. 1. Select set “z-fixed”. 2. Define direction: y direction 3. Select boundary condition “displacements”. 4. Enter value “0”. 5. Name the constraint “fixed point”. 6.
Add
7. Apply displacement: Set “Displacement”, x direction, value “+0.1”, name “Displacement”. 8. Check the applied constraints with “Show all”. 9. Close the menu.
Apply Material Use the material construction steel S235JR in the Z88Aurora material database.
Start Calculation Start the calculation with the “PARDISO solver”.
13.8 Two-Stroke Engine Piston 529
Output
Figure 13.7-6: Plot of the stresses of the torus structure, calculated with the PARDISO solver
■■13.8 Two-Stroke
Engine Piston
A piston shall be calculated for a two-stroke Otto engine. The combustion pressure creates a load of 42.5 bar, the piston pin bosses are defined as supports. The piston was sketched in the 3D CAD program Pro/ENGINEER and was also meshed there with Pro/MECHANICA. Linear tetrahedrons were selected and exported as a NASTRAN file.
Figure 13.8-1: 3D model of a two-stroke piston
The piston contains 3,211 nodes, with its 9,633 degrees of freedom and 12,489 elements of tetrahedron type 17 with 4 nodes in each case.
530 13 Examples
13.8.1 With Z88 V14 The example directory is B8. Convert Z88G.NAS with Z88G into volume elements. The structure file Z88I1.TXT, the boundary condition file Z88I2.TXT and the surface load file Z88I5.TXT will be generated. Because the number of elements is clearly higher than in previous examples, in the memorycontrol file Z88.DYN, the variable MAXKOI, which determines the size of the coincidence vector KOI, should be set to at least 12,489 elements × 4 nodes per element = 49,956 (50,000 rounded up) before initiation the analysis. If you run Z88R in test mode, a value of 49,972 is shown, which contains a safety premium (for the last element a number of nodes of 20 is always expected, i. e. 12,488 elements × 4 nodes per element + 20 = 49,972). With bigger structures, MAXKOI is exceptionally important. The other variables like MAXGS: max. number of storage spaces in the structure stiffness matrix MAXK: max. number of nodes MAXE: max. number of finite elements MAXNFG: max. number of degrees of freedom MAXMAT: max. number of material groups MAXPEL: max. number of element parameter groups MAXJNT: max. number of integration order groups MAXPR: max. number of surface loads MAXRBD: max. number of boundary conditions are monitored during the run of the different Z88 modules, and the programs will quit, if a variable mentioned above is under-dimensioned. But MAXKOI cannot be monitored because this variable must be already defined with the reading of the first information. Hence, the operator must take matters into his own hands. For this example Z88.DYN would look like the following at the beginning: MAXGS at first any value MAXKOI at least 49956 MAXK at least 3211 MAXE at least 12489 MAXNFG at least 9633 MAXMAT at least 1 MAXPEL at least 1 MAXJNT at least 1 MAXPR at least 210 MAXRBD at least 342 Convert them: Z88G, option NASTRAN and option volume elements. Now launch Z88R first in test mode and Cholesky mode to determine the minimum number for GS: Procedure: Test button, Cholesky button, Run button Z88R in test mode and Cholesky mode shows: 21,962,346 elements are necessary in GS. These would be 21,962,346 × 8 bytes = 168 MByte of memory demands for the structure stiffness matrix what would waste too much main memory for this actually very small structure. We
13.8 Two-Stroke Engine Piston 531
suppose an inappropriate node numbering and, hence, launch the Cuthill-McKee algorithm Z88H. Procedure: Run button Another test run with Z88R: Procedure: Test button, Cholesky button, Run button Now another 5,074,044 elements are required in the structure stiffness matrix. The CuthillMcKee algorithm has reduced the memory demands of approx. 75%. This would become really bad with tetrahedrons with square approach because only after setting all corner nodes, the center nodes are generated. For the actual calculation run, Z88.DYN possibly has to look like this: MAXGS at least 5074044 MAXKOI at least 49956 MAXK at least 3211 MAXE at least 12489 MAXNFG at least 9633 MAXMAT at least 1 MAXPEL at least 1 MAXJNT at least 1 MAXPR at least 210 MAXRBD at least 342 If one is not forced to save as much as possible, round up these values usefully: MAXGS 5100000 MAXKOI 50000 MAXK 4000 MAXE 13000 MAXNFG 10000 MAXNEG 1 MAXPEL 1 MAXJNT 1 MAXPR 1000 MAXRBD 1000
532 13 Examples
The deflection of the piston bottom is very nicely recognizable here.
Bild 13.8-2: Z88O: XY-view of the deflected piston, enlargement factors = 1,000
Above the gudgeon pin the deflection is relatively low. In the peripheral zone, as it was to be expected, the strongest deflection appears.
Bild 13.8-3: Z88O: XZ-view of the deflected piston, enlargement factors 1,000
Now, calculate the deflections, stresses and nodal forces with Z88R in the Cholesky mode in the calculation run: Procedure: Calculate button, Cholesky button, Run button
13.8 Two-Stroke Engine Piston 533
However, note that the stress calculation is inexact with these relatively few linear tetrahedrons. Afterwards, plot the results, also deflected (FUX, FUY, FUZ each 1,000), or stress display out of interest. Beforehand, you have to set MAXGP in Z88. DYN to 50,000 to be able to display the stresses. Now, you can also try out once the sparse matrix solvers of Z88R, i. e. SICCG and SORCG, and with Z88Aurora, in addition, the PARDISO solver; they are almost insensitive against this very bad node numbering. It’s best to start the 3D converter Z88G once again, option NASTRAN and option volume elements, so that we have this quite bad source structure again. Then start Z88R in the test mode and in the SICCG mode. Now, GS displays a value of about 181,000 which means only 3.5% of the memory demands of the already renumbered structure. Compared to the demand of the source structure of about 22 million for GS this are even 0.8%. Now run Z88R in the calculation mode and in the SICCG mode; this iteration solver works with the method of conjugated gradients and shifted incomplete Cholesky decomposition as a preconditioning. Thereby, EPS with 1E-007 and RALPHA with 0.0001 should remain at their default values. Procedure: Calculate button, SICCG button, Run button Have you noticed that the iteration solver needed not only much less memory, but that the computing time was in the SICCG mode in addition much shorter than with the Cholesky solver? What can be ascertained with Z88Aurora if you launch the direct solver with Fill-In (PARDISO solver) and non-zero elements storage? We will deal closer with the sparse matrix solvers later. Just for now, have a look at Table 13.8-1 for the differentiation which solver you should use. Table 13.8-1: Recommendations for Z88 solvers
Solver Z88R –choly
Z88 V14 yes
Z88R –parao
no
Z88R –siccg or -sorcg
yes
Z88Au- Structure rora size yes < 30,000 degrees of freedom yes < 100,000 … 300,000 degrees of freedom yes No upper limit, up to 12 million degrees of freedom tested.
Type Cholesky without Fill-In, Jenningsstorage. Direct solver (PARDISO) with FillIn, non-zero elements storage. Conjugated gradients, non-zero elements storage.
Advantages and disadvantages Uncomplicated, very fast, if necessary run Z88H first. Very fast, but needs very much memory (GBytes!), Z88H is not necessary. Can handle multiple processors. Complicated to use, but can handle even very large structures. Minimal storage needed. Z88H is not necessary.
534 13 Examples
13.8.2 With Z88Aurora V2 Create a new Project Folder Create a new project folder
.
Import Nastran Structure Import the example files z88g.nas from z88_examples_z88v14os/b8 as usual. The complete
544 Beispiele structure 474 Beispieleand their boundary conditions are imported. Only the material assignment is deleted
to keep the internal material data bank of Z88Aurora consistent.
ImportAssign Nastran-Struktur Material
Die Beispieldateien z88g.nas aus „z88_beispiele_z88v14os/b8“ wie gewohnt importieren. Die Use the material aluminium cast alloy AlSi 12 from the Z88Aurora material data bank. komplette Struktur und deren Randbedingungen werden importiert. Nur die Materialzuweisung wird entfernt, um die interne Materialdatenbank von Z88Aurora konsistent zu halten.
Start calculation
Material zuweisen Start the calculation with the “PARDISO solver”.
Verwenden Sie das Material Aluminiumlegierung EN_AW-Al_Mg3 aus der Z88Aurora-Materialdatenbank.
Berechnung starten Starten Sie die Berechnung mit dem „Pardiso-Solver“.
Bild 13.1-10: Material zuweisen
Das Beispiel kann nun mit einem beliebigen Solver (mit Ausnahme des Cholesky-Solvers) beFigure 13.8-4: Stresses in the corner nodes of the two-stroke piston Bild 13.8-4: Spannungen in den Eckknoten des Zweitakt-Kolbens rechnet → und im Postprozessing betrachtet werden.
Create a new Project Folder
Neuen Neuen Projektordner Projektordner erstellen erstellen Schließen Sie das aktuelle Projekt Close the current Schließen Sie das aktuelleproject Projekt
und erstellen Sie einen neuen Projektordner anderstellen create aSie new project folder . und einen neuen Projektordner
..
Nun wollen wir das gleiche Projekt von Hand aus der DXF-Struktur erstellen: Import STL-Geometrie
Import STL Geometry
1. Gehen Sie hierzu auf das „Import“ Icon → Das Kontextmenü erscheint auf der rechten Seite. Import Superstruktur 1. einer Click on the “import” icon → The context menu appears on the right page. 2. STL-Datei „kolben.stl“ aus „z88_beispiele_z88aurora/b8/STL-Datei“ wählen → Importdialog Konvertierung von Z88X.DXF nach Z88NI.TXT. Vorgehen: Button Import → AutoCAD DXF, öffnet 2. sich Select the STL file piston.stl from z88_examples_z88aurora/b8/STL fileDXF→ The import dialog Super-Struktur nach Z88Aurora-Super-Struktur. In den Beispielordner „z88_beispiele_z88v14os/ 3. In den Beispielordner wechseln opens. b1“ wechseln und die Datei z88x.dxf auswählen. Ok-Button. Die Superstruktur mit 7 Superele4. „kolben.stl“ auswählen Now change back toimthe example folder. menten3. Scheibe Nr. 7 erscheint OpenGL-Fenster. 5. Mit „OK“ den Import starten
4. Select piston.stl.
5. Launch the import with OK.
Bild 13.1-11: Importoptionen bei Z88-Dateiimport
13.8 Two-Stroke Engine Piston 535
2. Open folder !
3. Choose „piston.stl“
1. Choose STL file
4. Accept
Figure 13.8-5: Import of a STL geometry
Generate a Mesh Go to the “pre-processor” icon → The context menu appears on the right page. Select meshing Tetrahedrons → Tetrahedron meshing opens. 1. Select “Netgen”. 2. “Tetrahedron (linear)“ generates a tetrahedron with 4 nodes. 3. Enter value “3” for the edge length of the tetrahedrons. 4. Create a meshing rule with pears.
Add → In the administration window a meshing rule ap-
5. Create a mesh with the current meshing rule. According to meshings, the mesh production takes up some time; please note the info field “meshing” and the status display. Always select a mesh fineness, which is appropriate for your component. 6. Close the menu.
536 13 Examples
CREATE TETRAHEDRON MESH
1. Open-Source-Freemesher 2. Element type No. 17
3. Value for edge length 5. Create mesh with active meshing rule
4. Create meshing rule 6. Close menu
Figure 13.8-6: Tetrahedron mesher in Z88Aurora
As additional functions, the tetrahedron mesh menu offers the function “mesh analysis” for checking the quality of imported or created meshes. Please note that the results of the finite element calculation are only plausible with a sufficiently good mesh. Therefore, analyse whenever possible the quality of the mesh at the end of the meshing. If the mesh is inaccurate, following to the message, the faulty element is displayed in red in the wire mesh mode. In addition, the file z88det.txt is generated in the project folder. Mesh info
!
z88det.txt
Figure 13.8-7: Tetrahedron mesh analysis in Z88Aurora
13.8 Two-Stroke Engine Piston 537
Surface Picking for Pressure Boundary Conditions To apply the combustion pressure on the piston, it is necessary to select the surface with “surface picking”. Select an element and click on “surface”, name the set “pressure”.
Activate surface picking
Select S l surface
Figure 13.8-8: Surface picking for charging with pressure on volume elements
Node Picking for Constraint For the fixation, both piston pin bosses must be selected. For this, change in the node picking, select a node in the gudgeon pin drilling and click on “surface”, afterwards put on a selection. Repeat the same for the other surface and also create a selection. Pick both selections with , select and create a set called “fix” out of it. 9. With
a combined set
will be created. Name it „fixed“ .
8. Select both marks with
1. Select node
2. Choose surface 7. Add mark
3. Add d mark
6. Select surface 4. Deselect
5. Choose node in the other piston pin eye
Figure 13.8-9: Create a set from two selections
538 13 Examples
Boundary Conditions Button pre-processor → boundary conditions assigning. → The just defined sets are available in the context menu. Combustion pressure 4.25 MPa
Fixation X,Y,Z Value= 0
Figure 13.8-10: Combustion pressure and displacement as boundary conditions
1. Set “fix”: X-, Y- and Z direction, boundary condition type “displacement”, value “0”, name “constraint”. 2. Apply pressure: Set “pressure”, direction is not required, after the pressure is vertically orientated on the respective element surface, value “4.25”, name “combustion pressure”. 3. Check with the button “display all” the correct boundary condition placing.
Assign Material Use the material aluminium cast alloy AlSi12 from the Z88Aurora material data bank. Please note that this material differs from those used in Z88 V14 and the results are therefore different.
Start Calculation Start the calculation with the “PARDISO solver”. Since the structure is relatively big in comparison to the previous computed examples, check, therefore, the number of the computing kernels, which are used by the solver for the calculation under tools → options → In general → machine parameters. Z88Aurora must be relaunched, if parameterrs are changed in the option menu.
13.9 RINGSPANN Spring and Belleville Spring 539
Figure 13.8-11: Number of the used computing kernels
Output
Figure 13.8-12: Stresses in the corner nodes, view of the deflected piston, enlargement factor 550
■■13.9 RINGSPANN
Spring and Belleville Spring
First, a so called RINGSPANN spring which should work as a force translator shall be calculated. Basically, e. g. a slotted Belleville spring would also be modeled like this. Here, we must pay attention: Springs, as long as they work strictly linearly for the purposes of Hooke’s law, can be illustrated as FEA structures without any problem. One simply computes
540 13 Examples
for very small forces or defections and then extrapolates on the real values. With Belleville springs in contrast, it can come according to ho / t ratio to clearly non-linear characteristic curves, which can be strongly degressive. This is the typical case of the so called large displacement effects. For it, there are commercial FEA programs and Z88Aurora, which can handle such non-linear effects and, if necessary, also with non-linear material laws. But also with a FEA program, which is designed for linear calculations, one will be able to solve cases of large displacement effects if one goes gradually forward: One computes for example with 10 load increments, i. e. one applies in the first arithmetic step 1/10 of the load, computes and adds the calculated displacements on the original structure. In the second arithmetic step, one emanates from an already deflected structure with it and applies 1/10 of the load again, computes and adds the calculated deflections on the source structure once more. The same applies for the stresses and nodal forces. If one proceeds in such way, one will receive the desired non-linear spring characteristic curves – what we will not do here. The example directory is B9.
Figure 13.9-1: Z88O: Undeflected RINGSPANN spring
Now, a Belleville spring shall be calculated. It may have these dimensions: De = 100 mm, Tu = 50 mm, h0 = 1 mm, t = 2 mm. As a spring stroke we define 0.2 mm.
Figure 13.9-2: Dimensions of a Belleville spring (cf. /96/)
13.9 RINGSPANN Spring and Belleville Spring 541
13.9.1 With Z88 V14 CAD: Here, this will be left out completely, because the files Z88I1.TXT and Z88I2.TXT were automatically generated with a small FORTRAN program. A segment was simply illustrated by elements of the hexahedron type 10 with 20 nodes and was then automatically scrutinized. Quite a primitive, problem oriented mesher was sketched. This action is for FEA structures, which basically recur in a company, not the worst way.
Z88: Z88O, therein look at structure file Z88I1.TXT. It can be assumed that an unfavourable node numbering is existent, because a revolving closed structure is concerned. Eventually, the last nodes adjoin the first ones, and there is a gigantic crack in the skyline. Hence, we first run Z88R in the test mode in the Cholesky mode: Action: Test button, Cholesky button, Run button Z88F in the test mode indicates: Approx. 1.8 million elements are necessary in GS. Hence, we launch the Cuthill-McKee algorithm Z88H. Action: Run button
Figure 13.9-3: Deformed RINGSPANN spring
A test run again with Z88R Action: Test button, Cholesky button, Run button This shows that the Cuthill-McKee algorithm can save a lot of memory: Now only 573,084 elements are required in the structure stiffness matrix. This is only one third of the original need. Hence, we put Z88. DYN for MAXGS on 580,000 and let Z88R compute:
542 13 Examples
Action: Compute button, Cholesky button, Run button Then plot the FE structure, also deflected (FUX, FUY, FUZ ever 10) or denote the stresses. With this RINGSPANN spring, we had to work with hexahedrons or, if we use a CAD automesher, also with tetrahedrons; one will hardly be able to illustrate such a structure differently – maybe with plates, but this has other disadvantages. Calculation of the Belleville spring According to Figure 13.9-6, the deflection of the Belleville spring behaves more or less linearly. We are able to depict it by one single super element torus No. 8 (Figure 13.9-4). The mesher input file Z88NI.TXT was here edited by hand, because it is markedly easy. Draw a simple sketch and compute a few times with sine and cosine to get these values: 2 1 2 3 4 5 6 7 8 1 1 1 25
8 2 2 2 2 2 2 2 2 8 2 8 e
1 25. 50. 50.08 25.08 37.5 50.04 37.58 25.04
16 0 0 0 1. 0. 1.9984 2.9984 0.5 0.9992 2.4984 1.9992
3
4 5 6 7 8
2
e
Figure 13.9-4: Superstructure (one element torus No. 8) of a Belleville spring
It would be important that more or less square single elements originate; this is possible with the mesher instruction 25 e 2 e (divide 25-times equidistant in local x direction (defined by the nodes 1-2) and divide 2-times equidistant in local y direction (defined by the nodes 1-4)). Then the mesher Z88N generates the FE structure (Figure 13.9-5).
Figure 13.9 5: FE mesh of the Belleville spring
13.9 RINGSPANN Spring and Belleville Spring 543
Plot the FE mesh to see the node numbers. We support at node 201 and give a displacement of 0.2 mm to node 5 in the file Z88I2.TXT: 2 5 201
2 2
2 2
–0.2 0.
The solver run can occur quite normally without previous renumbering with Z88R in the Cholesky mode, because the ones from the mesher Z88N are always very good-natured, thus they do not have very big node number differences – the so-called Mapped Meshers like Z88N are ahead of the so-called Free Meshers, as they are integrated into CAD programs. In the solver parameters file Z88MAN.TXT, zero will be inserted for KDFLAG and ISFLAG and in the integration order file Z88INT.TXT a zero for INTOS, so that it is calculated in the corner nodes, without reduced stresses. Start Z88R.
Figure 13.9-6: Analytic calculation of the Belleville spring with program WTFEDER (cf. /103/) according to the formulas of Almen and László
The force of about 243 N, resulting from the displacement of 0.2 mm, is read in the nodal force file Z88O4.TXT, namely in node 201, which means in the support. The Belleville spring stress I is read into the element 2 in the internal upper corner node with SIGTE about −104 N/mm2, the
544 13 Examples
Belleville spring stress II is read in the element 1 in the internal lower corner node with SIGTE about 44 N/mm2. These values agree very well with the analytic calculation according to Figure 13.9-6. Nevertheless, once again, the fact should be clearly pointed out, that the FE calculation of such geometrically non-linear behaving structures cannot be calculated with linear FE solvers. Here this is allowed, because we knew in advance, that a Belleville spring with this h0/t ratio behaves fairly linearly.
13.9.2 With Z88Aurora V2 13.9.2.1 RINGSPANN Spring Create a new Project Directory Create a new project directory
.
Import Z88 V14 OS Project Read inthe example files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT in the usual manner from z88_ examples_z88v14os/b9.
Assign Material Use the material mild steel S235JR from the Z88Aurora material data bank.
Launch Calculation Because the Cholesky solver is only available for truss and beam structures in Z88AuroraV2, launch the calculation with the “PARDISO solver”.
Figure 13.9-7: Total displacements, view of the deflected RINGSPANN disk, 7-times enlarged
13.9.2.2 Belleville spring Import Z88 V14 OS Mesher File Read in the example file Z88NI.TXT from z88_examples_z88v14os/b9_tf in the usual manner.
13.9 RINGSPANN Spring and Belleville Spring 545
Creation of the FE Structure out of Superelements We divide the structure 25 times equidistant in local x direction and 2 times equidistant in local y direction. The element type is torus No. 8.
Node Picking Apply two sets with one node each according to Figure 13.9-9 in the usual manner.
Boundary Conditions 1. Set “displacement”, y direction, value “−2” 2. Set “constraint”, y direction, value “0” Displacement Y, Value „-2“ Name „Displacement“
Displacement Y, Value „0“ Name „Fixation“
Figure 13.9-9: Boundary conditions of the Belleville spring
Assign a Material Use the material mild steel S235JR from the Z88Aurora material data bank.
Launch Calculation Because the Cholesky solver is only available for truss and beam structures in Z88Aurora V2, launch the calculation with the “PARDISO solver”.
Figure 13.9-10: Adjustment in y direction, deflected and undeflected representation, 2-fold exaggerated representation
546 13 Examples
■■13.10 Liquid
Gas Tank
A receiver should be calculated for liquid gas, which is inserted into a passenger car. It is fastened to both sides on the bottoms with a ring flange. In a side crash simulation, it should be checked how strong the deflections and stresses are under a load of 1,200,000 N.
13.10.1 With Z88 V14 The example files are located in the directory b10.
CAD: The example file is already given as a meshed file Z88NI.TXT. This time, we will leave out these steps. However, as in some preceding examples, you could have done the drawing in CAD and then export it as Z88X.DXF at any time. Then you would have made the conversion in Z88X “from Z88X.DXF to Z88NI.TXT”.
Z88: Z88O, in the structure file Z88NI, there you can view the super structure. It consists only of 5 super elements torus No. 12, each with 12 nodes. Note with how few super elements with cubic shape the structure can be represented.
Superelements
Figure 13.10-1: Z88O: Representation of the super structure of a pressure vessel
13.10 Liquid Gas Tank 547
Z88N, Mesher, generates Z88I1.TXT Z88O, in the structure file Z88I1.TXT, undeflected FE structure
Generated structure
Figure 13.10-2: Z88O: Generated structure
Z88X, conversion “from Z88I*.TXT to Z88X.DXF”
CAD: Import Z88X.DXF into your CAD program and have a look at it. Now, you can add the boundary conditions Z88I2.TXT in your CAD program and then export as Z88X.DXF. The boundary conditions should be selected as follows: The nodes 1 (lower bottom in the middle) and 1598 (upper bottom in the middle) should be held in X direction, so that the position is clearly defined.
548 13 Examples
Figure 13.10-3: AutoCAD: Nodes with defined boundary conditions, e. g., in 1598
Then the nodes 144, 151, 155, 162 and 166 should be fixed in Y direction at about half radius at the lower bottom. On the upper bottom, the load of 1,200,000 N, which is distributed over two finite elements is applied to the nodes 1741 (−100,000 N = 1/6), 1745 (−400,000 N = 2/3), 1752 (−200,000 N = 1/6 + 1/6), 1756 (−400,000 N = 2/3) and 1763 (−100,000 N = 1/6). These entries are written according to chapter 10.5 it the CAD drawing with the text function.
Z88: Z88X, conversion “from Z88X.DXF to Z88I*.TXT” Z88R, calculates deflections and stresses (Cholesky mode is enough here) Z88O, plotting FE structure, also deflected (FUX, FUY, FUZ each 100) or stress display
13.10 Liquid Gas Tank 549
Figure 13.10-4: AutoCAD: Input of the boundary conditions at any place in the CAD file, e. g., for the points 1741, 1745, 1752, 1763
Here the boiler is fixed on top. Deflection zone on top
Deflection zone below Fixation below
Figure 13.10-5: Z88O: Deflected gas tank under a load of 1,200,000 N
550 13 Examples
13.10.2 With Z88Aurora V2 Create New Project Directory Create a new project directory
.
Import Z88 V14 OS Structure File Z88I1.TXT Select the example file Z88I1.TXT in z88_examples_z88v14os/b10 and import it with OK.
Display Node Numbering You have two possibilities to display the node number in Z88Aurora. With the “nodes” button in the tool bar “views II”, node ranges can be entered and are indicated. If one likes to see all node numbers, one simply enters an adequately high second value. In this way the highest value in the model is used in Z88Aurora automatically. With tools → analysis one can retrieve the information of a picked node. HIDE NODE NUMBER SHOW NODE NUMBER
SHOW NODE INFO
Figure 13.10-6: Display of the node number and node information
Node Picking In the usual manner, five sets are put in according to Figure 13.10-7.
Boundary conditions 1. Set (nodes 1 and 1598): Displacement, “Constraint_X”, X direction, value “0” 2. Set (nodes 144, 151, 155, 162, 166): Displacement, “Constraint_Y”, Y direction, value “0”
13.10 Liquid Gas Tank 551
3. Set (nodes 1741 and 1763): Force (uniformly loaded) “Force_1”, Y direction, value “−100000” 4. Set (nodes 1745 and 1756): Force (uniformly loaded) “Force_2”, Y direction, value “−400000” 5. Set (nodes 1752): Force (uniformly loaded) “Force_3”, Y direction, value “−200000” 1598
1741, 1763: F = -100000 N 1745, 1756: F = -400000 N 1752:
F = -200000 N
X-direction, displacement value „0“
1
144,151,155,162,166 Y-direction displacement value „0“
Figure 13.10-7: Constraints at liquid gas tank FE model
Assign Material Use the material mild steel S235JR from the Z88Aurora material database.
Launch Calculation Start the calculation with the “PARDISO solver”.
552 13 Examples
Figure 13.10-8: Displacement in Y direction, deflected representation, scaling: 100
■■13.11 Motorcycle
Crankshaft
A crankshaft for a single cylinder motorcycle engine has to be calculated. As load, the piston force of −5,000 N is applied. The meshing was carried out directly in Pro/MECHANICA. The special aspect with this example is the definition of the boundary conditions, which is a little tricky: In front of the crankshaft, a reference point is set centrally. It will later fix the displacements in Z direction, i. e. in longitudinal direction of the crankshaft.
13.11 Motorcycle Crankshaft 553
Figure 13.11-1: Pro/MECHANICA: Example crankshaft as a 3D model
The ball bearings, which can take up certain angle movements and therefore can be viewed as free of momentum supports, are fastened on the thicker parts of the shaft. The flanks of the parts of the shaft are fixed in x and y direction. Since entire surfaces are locked here, one or even both of these surfaces should not be blocked in the z direction. This would mean that the angular movement of the system would be taken away (as one can easily try out).
Figure 13.11-2: Pro/MECHANICA: Application of the loads in the system
554 13 Examples
In the crank plug itself, a load of 5,000 N is put onto the peripheral surface. The Figure 13.11-2 shows all the boundary conditions. The mesh is automatically generated with Pro/MECHANICA in FEM Mode and tetrahedrons with square approach are selected (Figure 13.11-3). A .NAS file can be produced.
Figure 13.11-3: Pro/MECHANICA: Meshed structure of the crankshaft
13.11.1 With Z88 V14 You can find the corresponding example files in the example directory B11. Z88G.NAS
NASTRAN file
Z88MAN.TXT
Parameters for solver
Z88MAT.TXT
Material parameter file
51.TXT Material file Z88ELP.TXT
Element parameters
Z88INT.TXT
Integration orders
After generating the NASTRAN file, the Z88 calculation can follow: Therefore, you should first convert Z88G.NAS from the example directory B11 with Z88G.
13.11 Motorcycle Crankshaft 555
Figure 13.11-4: 3D converter Z88G (Windows)
Because very unsuitable numberings are to be expected by the tetrahedrons with quadratic approaches, you should immediately launch the Cuthill-McKee algorithm Z88H to improve numbering.
Figure 13.11-5: Cuthill-McKee program Z88H (Windows)
After opening the input file Z88I1.TXT, you can take from the first line: 17,801 nodes 11,209 elements 53,403 degrees of freedom
556 13 Examples
From program-internal security reasons, at least 3 must be added in each case to the minimum values. MAXKOI must at least be: 11,209 elements × 10 nodes element = 112,090+3=112,093. With it, Z88.DYN will be as follows: MAXGS
at first any value
MAXKOI
at least 112090+3=112093
MAXK
at least 17801+3=17804
MAXE
at least 11209+3=11212
MAXNFG
at least 53403+3=53406
MAXMAT
at least 1+3=4
MAXPEL
at least 1+3=4
MAXJNT
at least 1+3=4
Then you can look at the structure with Z88O and afterwards, launch Z88R in the test mode and Cholesky mode.
Figure 13.11-6: Testrun with Z88R in the Cholesky mode (Windows)
You will find out, that you would have needed 48,672,507 × 8 bytes = 370 MByte only for the structure stiffness matrix. With the others you end up at about 390 MByte of memory requirements. This is generally no problem for modern PCs, but you will find out that the processing time takes, nevertheless, some minutes – this is due to the fact that the amount of zeros is very big in the skyline in spite of renumbering. But you can do this in a better way: Simply take Z88R in the SICCG mode with the following (plentiful) settings in Z88.DYN: COMMON START MAXGS MAXKOI
2200000 200000
MAXK
20000
MAXE
20000
13.11 Motorcycle Crankshaft 557
MAXNFG
55000
MAXMAT
32
MAXPEL
32
MAXJNT
32
MAXPR
5000
MAXRBD
4000
MAXIEZ
2200000
MAXGP
1000000
COMMON END
Figure 13.11-7: Run with Z88R-siccg (Windows)
In this case, the sparse matrix iteration solver is substantially faster than the direct Cholesky solver, and the iteration solver needs only a part of the memory. With big structures, this ratio still becomes much more extreme! However, note that the arithmetic times are not really comparable, because if you change the break criterion EPS, e. g., to 1E-5 or 1E-10, then Z88R iterates less or more resulting in shorter or longer computing times. However, you can generally assume that with structures of more than 20,000 degrees of freedom the sparse matrix
558 13 Examples
iteration solver Z88R -siccg or sorcg will need less main memory and will basically always compute substantially faster. Alternatively, you could also use the sparse matrix iteration solver Z88R -sorcg; you then need even less main memory. The main processor time takes longer though, because the relaxation parameter ROMEGA cannot be determined in advance. One must start with a value which can be good or, however, rather badly. With ROMEGA = 1.0, 706 iterations are used. This solver variation is the right choice when you reached the memory limit; otherwise you should use Z88R -siccg. With Z88Aurora, another variation would be possible: Z88R with the direct solver with fill-in (PARDISO solver). It will solve the problem in the fastest way, particularly if you have, for example, 2 or 4 CPU cores in your computer. Now, you can look at the deflected structure with Z88O. The angular deflection is quite amazing! You would then read the displacements in selected nodes from the file Z88O2.TXT, you would multiply them with the suitable lever arms and check whether your ball bearings will allow this angular movement without problems.
Figure 13.11-8: Display of the deflected structure in the Z88O
13.11 Motorcycle Crankshaft 559
13.11.2 With Z88Aurora V2 Possibility 1 Create new project directory Create a new project directory
.
Import Nastran structure Import the example file z88g.nas from z88_examples_z88v14os/b11. The complete structure and their boundary conditions are imported. Only the material allocation is deleted to hold the internal material database of Z88Aurora consistent.
Material assign Use the material structural steel S235JR from the Z88Aurora material database.
Calculation launch As before, you can use the PARDISO solver or the sparse matrix iteration solver .
or
Possibility 2 Create new project directory Import STL geometry Import the STL file crankshaft.stl from the directory z88_examples_z88aurora/b11/STL file like in example 13.8.
Meshing Create mesh with “Tetgen” using square tetrahedrons and maximum length “7”.
Mesh change By the creation of additional mesh rules, you can assign various meshes. Saved is always the most recently mesh. If the mesh is changed after the application of boundary conditions, they were deleted and have to be recreated again.
560 13 Examples
TETRAHEDRON
Create meshing rule e Delete meshing rule e
Tetgen quadratic tetrahedron , value: 7
Create mesh with active meshing rule Removing mesh and showing STL/STEP
Netgen quadratic tetrahedron , value: 3
Figure 13.11-9: Creation of several meshing rules
Node Picking – Surface Picking The shaft shoulder should be locked in X and Y direction. Therefore you select a node and then click “surface”. Since middle nodes cannot be used, only one node of the two edges of the shoulder must be selected. If after selecting “surface”, the desired area is not highlighted, try using the other edge and vary the value of the detection angle with the slider. Create a set of two marks.
13.11 Motorcycle Crankshaft 561
1. Select node
2. Select surface
Figure 13.11-10: Nodepicking with option “Surface” of the shaft flank shoulder, on top desired result, below wrong selection
Select the crank pin also by picking a node and click “surface”. Then create a set. For the selection and deselection of nodes, see example on “Picking Options”. Finally, create a set, containing one node in the center of the end side of the crankshaft, which is then used to lock the z direction.
Boundary conditions 1. Set boundary condition type “Displacement”, Direction X + Y, value “0”, name “Constraint _XY” 2. Set boundary condition type “Displacement”, Direction Z, Value “0”, name “Constraint _Z” 3. Set boundary condition type “projected surface load”, direction Y, value “−5000”, name “Load”
562 13 Examples
Projected surface load value „-5000“
Z- direction displacement value „0“
X and Y- direction , displacement value „0“
Figure 13.11-11: Constraints crankshaft
Material assign Use the material mild steel S235JR from the Z88Aurora material database.
Calculation launch Start the calculation with the “PARDISO solver”.
Outputs
Figure 13.11-12: Stress in the corner nodes, view of the deflected crankshaft, enlargement factor 60
13.12 Torque-measuring hub 563
■■13.12 Torque-measuring
hub
Torque is measured about the angle of twist of a deflection element. Hence, a deflection element should be calculated for a force measuring hub (Figure 13.12-1).
Figure 13.12-1: Structure of a torque measuring hub
This structure shows 1,212 nodes, 480 finite elements plane stress element No. 3 (plane stress element triangle with 6 nodes) and with it 2,424 degrees of freedom. The structure was generated as follows: It was drawn 1/12 of the plane stress element and was grasped with a Digitalisierer. Remaining 11 segments were generated by a small BASIC program from first 1/12 outgoing. 72 boundary conditions were entered by hand. Besides, the internal margin is held on, and in the external corner nodes displacements are prescribed. Besides, the deflection body which has a diameter of 80 mm should be twisted around 1°. So a distance of 0.7 mm must be prescribed tangentially at the outside:
s = ϕ · r = 1◦ ·
π · 40 mm = 0.7 mm 180
With the nodes not lying under 90°, 180°, 270° or 360°/0° must be converted the angle relations accordingly. Thus, e. g., the node 201 can be found under 45° at 1:30 o’clock. So, as the tangential way (“hypotenuse”) should amount to 0.7 mm: 2
2
2
2
2 = a +b22b ·=a=22 2· a· 2a ab22+= c2 =cac2=+ √ √√ 2 2 =2 2a2a c = c c= 2a c cc a==√ 0,4949 ==0,4949 a = a√ =√0,4949 2 22
Hence, the displacement of the node 21 is set to -0.494 in X direction and to +0.494 in Y direction.
564 13 Examples
13.12.1 With Z88 V14 You find the example files in the example directory B12. Load the DXF file and generate with Z88X the input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT. Z88X.DXF
AutoCAD DXF file
Z88MAN.TXT
Parameters for solver
Z88MAT.TXT
Material parameters file
51.TXT
Material file
Z88ELP.TXT
Element parameters
Z88INT.TXT
Integration orders
For MAXGS Z88R determines in the Cholesky mode and in the test mode 209,000 storage spaces. One does not need to run the Cuthill-McKee algorithm Z88H; it would reduce MAXGS to 180,884 storage spaces. Obviously, the source numbering is not so bad at all: This is due to mapped meshing. Now, run Z88R in the Cholesky mode. With regard to the stress calculation, select 1 for KDFLAG and also 1 for ISFLAG (von Mises equivalent stresses) in the solver parameters file Z88MAN.TXT. With KDFLAD equals 1, radial stresses and tangential stresses are calculated additionally and their position, defined by R and ϕ, is printed. Have a look at the stress output file Z88O3.TXT after the solver run. For such “round” structures radial stresses and tangential stresses are by far more expressive than the stresses in x and in y direction. For the integration orders, select in the integration order file Z88INT.TXT in each case 1 (or another number between 1 and 4), as the integration order is arbitrary for plane stress elements No. 3, because the stresses are calculated in the element centre of gravity. The deflection picture with enlargement factors FACX = FACY = 5 looks as follows (Figure 13.12-2):
Figure 13.12-2: Deformed torque measuring hub structure
13.12 Torque-measuring hub 565
Now, replace the element type plane stress element No. 3 (straight plane stress element element with 6 nodes) by the element type plane stress element No. 14 (curvilinear Serendipity plane stress element with 6 nodes). In addition, you must modify in the file Z88I1.TXT in the 3rd input group first, third, the fifth etc. line as follows: Instead of
Element number 3
Now
Element number 14
For the integration orders, now select in the integration order file Z88INT.TXT 7 for INTORD (integration order for the deflection calculation) and 3 for INTOS (integration order for the stress calculation). You can carry out these updates by hand or take the changed files from the Directory B12_ ELE14. Now, you can launch Z88X and Z88R once again, because you don’t have to change anything in the boundary conditions. As expected, the arithmetic results are practically identical: Compare node 814, for example, which sits outside at 6 o’clock. With the original input file with plane stress elements No. 3 it is computed for the displacement in X direction 0.6526 mm and with the new input file for plane stress elements No. 14, it is 0.6522 mm. As you see, 0.7 mm are not reached precisely because the displacements were applied only (to prevent work) in 12 nodes in the external diameter. With the stress calculation you will find out, while looking at the plots, that the reduced stresses are too high even for hardened steel. But because the structure reacts linearly, 1 mm was accepted in Z88ELP.TXT as a thick QPARA, and one just needs to divide all stress values and node forces with a real thickness of e. g. 10 mm by 10. To receive the searched torsional stiffness, you would convert and add up the nodal forces into tangential forces at the internal nodes which serve as a fixed support – in X and Y direction, in each case with the suitable angle relations. Done manually, this is a little bit laborious, but it can be carried out very simple with a program like EXCEL. Try to do it the reverse way: Fix the structure outside at the nodes 208, 511, 814 and 1,117 as a virtual fix point (cf. Figure 13.14-2) and put a tangential load of 100 N/mm on the suitable edges of the elements 82, 85, 42, 45, ..., 125. You can find the suitable files in the directory B12_Q. What would be now the result for the torsional stiffness?
13.12.2 With Z88Aurora V2 Create new project directory Create a new project directory
.
Import Z88 V14 OS project Import the example files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT from z88_examples_z88v14os/ b12.
566 13 Examples
Commitment of the plane stress element thickness As with example 13.1 we fix the plane stress element thickness in the element parameter menu for all elements with the thickness “1”.
Material associate Use the material mild steel S235JR from the Z88Aurora material database.
Calculation launch As before, you can select the PARDISO solver or another solver.
Figure 13.12-3: Total displacement of the torque measuring hub
In the same manner, it can be proceeded with the project B12_ELE14. B12_Q cannot be calculated with Z88Aurora, because the possibility to apply tangential forces is not yet available in the interface.
■■13.13 Plane
Frameworks
This example consists of several isolated cases, which were all taken from the classical engineering mechanics. While “normal” truss and beam frameworks as well as pass supports can be easily calculated with FE programs, Gerber joints and distributed loads lead to problems when no especially planned elements are available. At the following examples, it should be shown, how one can deal with it despite these restrictions. Although, it must be already said
13.13 Plane Frameworks 567
that one can solve such boundary conditions as Gerber joints, distributed loads (especially variable distributed loads) and spring supports, actually, more elegantly with special calculation programs, for example based on the reduction process – this is not the domain of FE programs.
13.13.1 With Z88 V14 Three-Joint Arch This example is taken from Gross/Schnell /34/. A plane framework, a so called three-joint arch, is loaded with one moment MB on the right upper corner. All sides have the length ℓ. The angle Δϕ in the joint G should be calculated. Beams in plane, Z88 type No. 13, are used.
Figure 13.13-1: Three-hinged arch
Analytically calculated: ∆ϕ =
MB · ℓ 3 · EI
With the numerical values
ℓ = 5 m, E = 2.06 · 108
kN , MB = 543 kNm, IZZ = 2.517 · 10−4 m4 m2
becomes Δϕ= 0.01745. You find the example files in the directory B13. Let the CAD converter Z88X run with the option “from DXF to Z88I*.TXT”, i. e. the files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT are generated from Z88X.DXF.
568 13 Examples
Figure 13.13-2: AutoCAD representation of the problem
Action: Z88X, button DXF → Z88i* You should once view, if available, the input file Z88X.DXF in a suitable CAD program. How does one illustrate the joint G in Z88, because there are no beams with joints defined (otherwise one would have to insert a new beam element in the FE program which holds a joint, e. g., at the right end)? One simply inserts a very short beam piece as an element 3 between the nodes 3 and 4, at which the nodes 3 and 4 have the following coordinates: 3 3 +2.49 4 3 +2.51
+5.0 +5.0
This short beam piece must be very angularly flexible, so that it works like a joint: IZZ Beams 1, 2, 4 and 5:
2.517 ∙ 10–4 m4
IZZ Beams 3:
2.517 ∙ 10–9 m4
With this, one can launch Z88R and read the following values for the nodes 3 and 4, which delimit the angularly flexible beam piece on the left and on the right, from Z88O2.TXT: Node 3
–0.01078
Node 4
+0.00662
Summe
0.01740
13.13 Plane Frameworks 569
This agrees very well with the analytic calculation. However, in general, one must be clear about the fact that one actually commits a “mathematical crime”, because one generates a very badly conditioned structure stiffness matrix with this action. Hence, one may only apply such tricks after exact checking.
Continuous Beam with Uniformly Distributed Load The second example is also a classic from the engineering mechanics (cf. Gross /Schnell /34/, p. 97): A continuous beam is stored twice statically over-determined. This would not be further problematic, but here a uniformly distributed load comes along as a specific feature, and this is for the beams No. 2 and No. 13 in Z88 not intended. If you have further interest in this subject, you can particularly find this in Bathe /4/.
Figure 13.13-3: A continuous beam with uniformly distributed load according to /34/
Analytically, one computes (cf. /34/):
Figure 13.13-4: Analytic solution of the continuous beam with uniformly distributed load according to /34/
Nevertheless, can the problem be solved in an FE program with “normal” beam elements? Yes, but this is a little tricky: Because forces can only be entered at nodes, the uniformly distributed load is to be illustrated as discrete forces. But this has to occur with consideration. First, we select some numerical values, because FE calculation always means numerical value calculation. We use a circular cross section. It is N , ν = 0.3, ℓ = 1,000 mm, d = 20 mm mm2 N πd4 πd2 = 7,854 mm4 , A = = 314 mm2 q0 = 1,000 , I = m 64 4 E = 206,000
Therewith, a load of 500 N arises for the left beam section from the left fixed support, up to the middle support with a length of 500 mm. We first start with a very short beam section with a length of 5 mm with the node numbers 1 and 2. Further, we divide this left beam section into 5 following beam sections with the following lengths: 95 mm (nodes 2-3), 100 mm (nodes 3-4),
570 13 Examples
100 mm (nodes 4-5), 100 mm (nodes 5-6) and 95 mm (nodes 6-7). Each of these 5 beam sections receives 100 N as a load, i. e. on the left node 50 N and on the right node 50 N. With it, the node 2 receives a load of 50 N, the nodes 3 ~ 6 100 N each and the node 7 again only 50 N. Now a very short beam piece with a length of 5 mm to node 8, which displays the middle support, follows. We make the same load partitioning in the right beam section, i. e. from node 9 ~ 14. The Z88 input files Z88I1.TXT and Z88I2.TXT look as follows: 2 15 14 45 0 1 3 0 0 2 3 5 0 3 3 100 0 4 3 200 0 5 3 300 0 6 3 400 0 7 3 495 0 8 3 500 0 9 3 505 0 10 3
600 0
11 3
700 0
12 3
800 0
13 3
900 0
14 3
995 0
15
1000 0
3
1 13 1 2 2 13 2 3 3 13
... (shortened)
14 13 14 15
The boundary conditions are: 17 1 1 2 0 1 2 2 0 1 3 2 0 2 2 1 50 3 2 1 100 4 2 1 100 5 2 1 100 6 2 1 100
13.13 Plane Frameworks 571
7 2 1 50 8 2 2 0 9 2 1 50 10 2 1 100 11 2 1 100 12 2 1 100 13 2 1 100 14 2 1 50 15 2 2 0
The element parameter file Z88ELP.TXT becomes: 1 1 14 314 0 0 7854 10 0 0
What are the three very short beam sections at the beginning of the beam, on the left and on the right of the middle support and at the right beam end proficient for? Quite simple, directly on the nodes 1, 8 and 15, no load can be given (i. e. one is able to, it just has no use), because there it is immediately absorbed by the support. Through the trick to load right next to it, the uniformly distributed loads can be illustrated very nicely. Indeed, one computes with Z88, cf. Z88O4.TXT: Node number 1 1 8 15
Reaction Force Moment Force Force
Z88 233 N 17,355 Nmm 569 N 198 N
Analytically 232 N 17,857 Nmm 571 N 196 N
Continuous Beam with Uniformly Distributed Load – Statically Equivalent Loads Now, one can solve this problem a little more elegantly, but also more subtle: One works with the equivalent load for a uniformly distributed load (cf. cape. 4.6.5) and this is according to Figure 13.13-5:
FA =
q0 · ℓ = FB , 2
MA =
q0 · ℓ2 = MB 12
Figure 13.13-5: The statically equivalent load at uniformly distributed load for a clamped beam, clamped on both sides
572 13 Examples
Now, it is very important, which results are wanted: If you only want to see the angles in both agile supports, exactly 3 nodes and 2 finite elements are enough: The nodes are located at 0 – 500 – 1000 and as a load only one moment from MbB =
q0 · ℓ 2 1 · 5002 = = 20,833Nmm 12 12
in the degree of freedom 3 of the node 3 is initiated (why?). But like this, you do not receive the resulting forces and moments. Hence, we proceed quite similar as in the previous consideration (the directory is B13_3) and work with a total of 7 nodes, at which the nodes 1 – 2, 3 – 4 – 5 and 6 – 7 are located very close to each other with a difference of only x = 1 mm: 2 7 6 21 0 1 3 0 0 2 3 1 0 3 3 499 0 4 3 500 0 5 3 501 0 6 3 999 0 7 3 1000 0 1 13 1 2 2 13 2 3 3 13 3 4 4 13 4 5 5 13 5 6 6 13 6 7
The boundary conditions become with FA =
q0 · ℓ 1 · 500 q0 · ℓ2 1 · 5002 = = 250N = FB , MA = = = 20.833Nmm = MB 2 2 12 12
13 1 1 2 0 1 2 2 0 1 3 2 0 2 2 1 -250 2 3 1 -20833 3 2 1 -250 3 3 1 +20833 4 2 2 0
13.13 Plane Frameworks 573
5 2 1 -250 5 3 1 -20833 6 2 1 -250 6 3 1 +20833 7 2 2 0
With it, you receive very useful results (cf. result files Z88O2.TXT and Z88O4.TXT): Node number 1 1 4 7
ΨZ88
Ψanaly.
FZ88
Fanaly.
0 0 0.0004635 0.00185
0 0 0.00046 0.00184
232 N 17,993 Nmm 572 N 196 N
232 N 17,857 Nmm 571 N 196 N
Note that there is a leap in the radial force (= support force) at node 4 in the analytic calculation, and that you must add the forces and moments immediately in front of the support to those immediately behind the support in the reduction process, e. g., with ZBALKEN /102/. However, one must be aware that one does better solve such “analytic” duties either with the classic processes like Föppl symbol or, even better, if one uses, for example, the reduction process (cf. Decker /96/and Rieg /102/).
Figure 13.13-6: Reduction program XBEAMS (available in Google Play Store) - for this example more suitable than the FEA
574 13 Examples
Beams with Triangular Load and Spring Support Another example, directory B13_4, also a classic example of the engineering mechanics (cf. Göldner /112/) is analytically easy to solve, but requires several considerations (here unnecessary) in the FE operation. It concerns a beam clamped on the left side with triangular load, then an elastic support and after that a single force follow (see Figure 13.13-7).
Figure 13.13-7:
A beam, elastically supported
The mechanical FEA replacement image is shown in Figure 13.13-8. Like in the previous example, we have to discretize the distributed load: For most fields, we need a trapezoid load (cf. Figure 13.13-9). The distributed load cases “uniformly distributed load” and “triangular load”, which you can take e. g. from Dubbel /24/.
Figure 13.13-8:
The mechanical FEA picture of the beam
Figure 13.13-9:
Superposition of trapezoid loads out of uniformly distributed load and triangular load
13.13 Plane Frameworks 575
The superposition of both distributed load cases according to Figure 13.13-9 delivers: Left edge:
q2 · ℓ q1 · ℓ 3q2 · ℓ + 2q1 · ℓ + = 2 3 6
Right edge:
q2 · ℓ q1 · ℓ 3q2 · ℓ + 1q1 · ℓ + = 2 6 6
We take the division of the triangular load according to Figure 13.13-10:
Figure 13.13-10:
Division of the triangular load in several trapezoid loads
With it, the following arises for the first section nodes 2-3: Left edge:
3 · 40 · 200 + 2 · 10 · 200 = 4667 N N on node 2 4,667 6
Right edge:
3 · 40 · 200 + 1 · 10 · 200 4,333NN = 4333 6
Second section nodes 3-4:
3 · 30 · 200 + 2 · 10 · 200 4,333NN==8000 8,000N N on node 3 = 3,667 3667 NN++4333 6 3 · 30 · 200 + 1 · 10 · 200 3,333NN Right edge: = 3333 6
Left edge:
Third section nodes 4-5:
3 · 20 · 200 + 2 · 10 · 200 = 2667 N N on node 4 2,667NN++3333 3,333NN==6000 6,000 6 3 · 20 · 200 + 1 · 10 · 200 Right edge: = 2,333 2333 NN 6
Left edge:
Fourth section nodes 5-6: 3 · 10 · 200 + 2 · 10 · 200 1,667NN++2333 2,333 = 4,000 = 1667 NN = 4000 N N on node 5 6 3 · 10 · 200 + 1 · 10 · 200 Right edge: 1,333NN = 1333 6
Left edge:
576 13 Examples
Fifth section nodes 6-7: Left edge:
3 · 0 · 200 + 2 · 10 · 200 667NN+ +1333 1,333 = 2,000 = 667 N =N 2000 N N on node 6 6
Right edge:
3 · 0 · 200 + 1 · 10 · 200 333NN on node 7 = 333 6
Check: 4,667 + 8,000 + 6,000 + 4,000 + 2,000 + 333 = 25,000 N, this is correct, because with a length of the pipe of 1,000 mm and a uniformly distributed load of 50 N/mm, this would mean 50,000 N, for a triangular load 25,000 N. With it, the input files Z88I1.TXT and Z88I2.TXT look as follows: 2 9 8 26 0 1 3 0 0 2 3 5 0 3 3 200 0 4 3 400 0 5 3 600 0 6 3 800 0 7 3 1000 0 8 3 1500 0 9 2 1000 -500 1 13 1 2 2 13 2 3 3 13 3 4 4 13 4 5 5 13 5 6 6 13 6 7 7 13 7 8 8 9
7 9
13.13 Plane Frameworks 577
Z88I2.TXT: 12 1 1 2 0 1 2 2 0 1 3 2 0 2 2 1 -4667 3 2 1 -8000 4 2 1 -6000 5 2 1 -4000 6 2 1 -2000 7 2 1 -333 8 2 1 -16667 9 1 2 0 9 2 2 0
For the profiles, we propose the following: The support is an INP 300 according to DIN-EN 10034 with A = 6,900 cm2 and Izz = 9,800 cm4. We form the spring from a 500 mm long round bar with d = 20 mm, i. e. A = 314 mm2. With it the spring stiffness c becomes: c=
E · A 206,000 · 314 N = = 129,368 ℓ 500 mm
Hence, the element parameter file Z88ELP.TXT becomes: 2 1 7 6900 0 0 98000000 150 0 0 8 8 314 0 0 0 0 0 0
The FE calculation and the analytic calculation prove the following results: Nodes 7 8
FY Z88 0.1895 0.4074
ψ Z88 0.000367 0.000470
FY analy. 0.1799 0.3905
ψ analy. 0.000352 0.000456
How does the analytic solution originate? The system is statically over-determined, the unknown variable is the spring force X. It is: displacement f = ws − wx with ws = wsw= wqw+ w wFx, = wxc= · Xc · X , q+ F ,and
578 13 Examples
Figure 13.13-11: The different deflections in the overall system
Besides, wq is the displacement due to the triangular load q and wF is the displacement due to the single force F, wx the displacement by the unknown spring force X. It is (for formulas see e. g. Dubbel /24/): q · l4 50 · 1,0004 = 0.08256 mm = 30EI 30 · 206,000 · 9.8 · 107 3 x 3 F·l x wF = wF(x=500) = 2−3 + = 6EI ℓ ℓ wq =
16,667 · 1,5003 6 · 206,000 · 9.8 · 107
2−3
500 + 1,500
500 1,500
ws = wq + wF = 0.08256 + 0.48159 = 0.56415 mm wx =
X · l3 3EI
3
= 0.48159 mm
13.13 Plane Frameworks 579
This means: X X X · ℓ3 X X · ℓ3 = ws − wx , = 0.56415 − , + = 0.56415 c 3EI c 3EI c 3 1 ℓ 0.56415 = 0.56415, X = = 23,272N + X c 3EI 1 1,0003 + 129,368 3 · 206,000 · 9.8 · 107 f=
With it, the displacement in the node 7, i. e. the spot on which the unknown force X works, becomes: f=
F 23,272 = = 0.1799 mm c 129,368
The other values were calculated with the reduction program ZBALKEN /102/. If one compares the values calculated with FEA to those from the analytic calculation, it strikes that all FEA results are a little higher than the analytically gained values. This is due to the fact that we did not discretize the triangular load well enough. For the verification of this statement we have two possibilities: Either we give more divisions to the distributed load (this would be a nice practice for you), or we can perform a little thought experiment: A beam on two supports with a uniformly distributed load q0 has the following deflection in the middle of the beam (cf. /24/): fm =
5 q0 · ℓ4 384 EI
The uniformly distributed load q0 on a length ℓ would correspond to a concentrated single load F = q0 · ℓ, with it would be fm =
5 q0 · ℓ4 5 F · ℓ3 = 384 EI 384 EI
A beam on two supports with a concentrated load F in the middle has the following deflection in the beam middle (cf. /24/): fm =
F · ℓ3 8 F · ℓ3 = 48EI 384 EI
With it, the deflections of both cases behave like
5 5 F · ℓ3 8 F · ℓ3 8 → →5:8 : : 384 EI 384 EI 384 384 This indicates that the deflections due to a single load F are nearly twice as large as the deflection of a uniformly distributed load. Hence, we compute a little too big with the FEA, since we have replaced the triangular load by a number of single point loads (but probably not enough).
580 13 Examples
Beam with Triangular Loads and Spring Support, Statically Equivalent Loads In the second run, we compute this problem with the statically equivalent loads for a triangular load, directory B13_5. These are (cf. chapter 4.6.5): FA =
7 · q0 · ℓ 3 · q0 · ℓ q0 · ℓ2 q0 · ℓ2 , FB = , MA = , MB = 20 20 20 30
Figure 13.13-12: The statically equivalent loads for a triangular load at a beam
7 · q0 · ℓ 7 · 50 · 1,000 = = 17,500 N 20 20 3 · q0 · ℓ 3 · 50 · 1,000 FB = = = 7,500 N 20 20 q0 · ℓ2 50 · 1,0002 = = 2,500,000 Nmm MA = 20 20 q0 · ℓ2 50 · 1,0002 MB = = = 1,666,667 Nmm 30 30 FA =
Figure 13.13-13: The beam, now with statically equivalent loads
With it the Z88 input file Z88I1.TXT becomes: 2 5 4 14 0 1 3 0 0 2 3 1 0 3 3 1000 0
13.13 Plane Frameworks 581
4 3 1500 0 5 2 1000 -500 1 13 1 2 2 13 2 3 3 13 3 4 4 9 3 5
The boundary condition file Z88I2.TXT becomes: 10 1 1 2 0 1 2 2 0 1 3 2 0 2 2 1 -17500 2 3 1 -2500000 3 2 1 -7500 3 3 1 +1666667 4 2 1 -16667 5 1 2 0 5 2 2 0
The results differ from each other, from what we can conclude that distributed loads are best modeled with the corresponding statically equivalent loads. However, one does not come past the fact, that one must put “auxiliary nodes” (here the node 2) there, at which these loads should be initiated. Thus, you could not initiate these loads at the node 1 here, because it is already disabled in its Y and Ψ direction: Then loads are immediately absorbed by the supports. This actually corresponds exactly to the action in the classic engineering mechanics, as you calculate internal forces immediately before and immediately after a leap in the radial force or moments line. Node number 1 3 3 4
F Z88
F analy.
w Z88
ψ Z88
w analy.
ψ analy.
18,390 N 23,277 N 8,333,500 Nmm
18,394 N 23,272 N 8,333,500 Nmm
0 0.1799 0.1799
0 0.000352 0.000352
0 0.1799 0.1799
0 0.000352 0.000352
0.3905
0.000456
0.3905
0.000456
Plane Framework with Uniformly Distributed Load This example is taken from Schnell et al. /90/: A plane, twice statically over-determined frame (cf. Figure 13.13-14) carries a uniformly distributed load, and the support reactions in the supports A and B are searched. You find the statically equivalent loads in chapter 4.6.5.
582 13 Examples
Figure 13.13-14: A twice statically over-determined stored border with uniformly distributed load
Analytically, one computes (cf. /90/): h = 5 m , a = 8 m, q0 = 10,000
N , m
N , A = 0.69 m2 , IZZ = 9.8E − 5 m4 m2 15h2 + 25ah + 3a2 q0 a = 39,004 N AV = · 15h2 + 26ah + 3a2 2 1 9h + a AH = B H = − · · q0 a3 = −8,443 N 4 15h3 + 26ah2 + 3ha2 1 2h MA = · · q0 a3 = 7,965 Nm 4 15h2 + 26ah + 3a2 15h2 + 27ah + 3a2 q0 a · = 40,996 N BV = 15h2 + 26ah + 3a2 2
E = 2.06E11
Then the Z88 input files look as follows, whereas m is selected as the unit of length: Z88I1.TXT: 2 4 3 12 0 1 3 0 0 2 3 0 5 3 3 8 5 4 3 8 0 1 13 1 2 2 13 2 3 3 13 3 4
13.13 Plane Frameworks 583
Z88I2.TXT: 9 1 1 2 0 1 2 2 0 1 3 2 0 2 2 1 -40000 2 3 1 -53333 3 2 1 -40000 3 3 1 +53333 4 1 2 0 4 2 2 0
Z88ELP.TXT: 1 1 3 0.69 0 0 9.8E-5 0.15 0 0
Here, the 4 corner nodes of the frame are really sufficient, because the load point of the single loads and the supports do not coincide, and we do not need to place auxiliary nodes either. With it, the example becomes very easy and straight. A look into the file of the nodal forces Z88O4.TXT shows, that the analytic results are exactly met. The added node forces per node: ----------------------------------------Nodes
F(1)
F(2)
F(3)
1
+8.44294E+003
+3.90044E+004
-7.96478E+003
2
-3.79259E-009
-4.00000E+004
-5.33330E+004
3
-6.46651E-009
-4.00000E+004
+5.33330E+004
4
-8.44294E+003
+4.09956E+004
+1.45519E-011
From these examples you have learned the following: The finite element analysis (FEA) is not necessarily the right choice for relatively easy framework problems and beam problems. Here, easier processes are available. The FEA unfolds its true power with complicated continuum cases, where all classical methods fail.
Bridge with Vouten This example shall show the reverse case of the one before: Here the FEA is quite unambiguously superior to the classic engineering mechanics. The example is basically taken from Hirschfeld /64/; there it is worked with the so-called 3 moments equation, and the calculations drag over several book pages. A tank of the armed forces, type Leopard 2A6, weighing 60 t, crosses the bridge over the river Main on his way from Veitshöchheim to Wildflecken (Figure 13.13-15). This is a bridge with Vouten, which consists of two symmetrical flanks of steel with a thickness of 10 cm in each case. The connection straps can be disregarded here. All data is in meters in Figure 13.13-15.
584 13 Examples
Figure 13.13-15: A bridge with Vouten
Such a plane structure can be very slightly sketched by hand (cf. Figure 13.13-15) and easily be entered. The time requirement for it was 45 minutes. First a super structure is built up, which is then refined by the mesher Z88N. Especially in the zone of the distributed load (tank located; assuming that the chain lies on 6-m length), it is necessary to proceed carefully. Following the super structure file Z88NI.TXT: 2 48 9 96 0 0 0 1 2 0 7 2 2 12 7 3 2 24 7 4 2 32 7 5 2 40 7 6 2 48 7 7 2 56 7 8 2 61 7 9 2 67 7 10 2 70 7 11 2 73 7 12 2 79 7 13 2 84 7 14 2 92 7 15 2 100 7 16 2 108 7 17 2 116 7 18 2 128 7 19 2 140 7 20 2 0 5.5 21 2 24 5.5 22 2 40 4 23 2 56 5.5 24 2 67 5.5 25 2 73 5.5 26 2 84 5.5 27 2 100 4
28 2 116 5.5 29 2 140 5.5 30 2 0 4 31 2 12 4 32 2 24 4 33 2 32 2 34 2 40 0 35 2 48 2 36 2 56 4 37 2 61 4 38 2 67 4 39 2 70 4 40 2 73 4 41 2 79 4 42 2 84 4 43 2 92 2 44 2 100 0 45 2 108 2 46 2 116 4 47 2 128 4 48 2 140 4 1 7 30 32 3 1 31 21 2 20 2 7 32 34 5 3 33 22 4 21 3 7 34 36 7 5 35 23 6 22 4 7 36 38 9 7 37 24 8 23
5 7 38 40 11 9 39 25 10 24 6 7 40 42 13 11 41 26 12 25 7 7 42 44 15 13 43 27 14 26 8 7 44 46 17 15 45 28 16 27 9 7 46 48 19 17 47 29 18 28 1 7 10 E 3 E 2 7 7 E3E 3 7 7 E3E 4 7 5 E3E 5 7 3 E3E 6 7 5 E3E 7 7 7 E3E 8 7 7 E3E 9 7 10 E 3 E
Plotting with Z88O shows the super structure (Figure 13.13-16).
13.13 Plane Frameworks 585
Figure 13.13-16: The super structure entered by hand
Running the mesher Z88N generates the FE structure (Figure 13.13-17).
Figure 13.13-17: The FE structure generated by the mesher Z88N
With the plot program Z88O, the nodes for the four supports are read (1, 188, 485 and 672) and a zoom in the range of the elements 90, 93 and 96 (the range where the tank is located) allows the reading of the node numbers for the distributed load. Here, we do not have to work with statically equivalent loads, because the plane stress element elements No. 7 permit a direct input of the distributed load; the node numbers are only required for the identification of the loaded element edge.
Figure 13.13-18: Reading the node numbers of the elements 90, 93 and 96 for the uniformly distributed load
The distributed load is 5 t/m (this actually unlawful unit is just used for reasons of clearness), since two bridge cheeks are given, the tank weighs 60 tons and the chains are 6 m long. With it the boundary condition file Z88I2.TXT and the distributed load file Z88I5.TXT becomes:
586 13 Examples
Z88I2.TXT:
Z88I5.TXT:
5 1 188 485 672 672
3 90 5 0 337 326 330 93 5 0 348 337 341 96 5 0 359 348 352
2 2 2 1 2
2 2 2 2 2
0 0 0 0 0
The boundary conditions must be checked for control with Z88O (Figure 13.13-19).
Figure 13.13-19: Control of the boundary conditions and area load
The calculation run can take place with the simple Cholesky solver because Z88N is able to number well. With Z88O, the deflection can be plotted (Figure 13.13-20). The support reactions we read from the file of the node forces Z88O4.TXT. From the displacement file Z88O2.TXT we can assert, e. g. by the nodes 330, 337, 341, and 348, that the displacement below the tank amounts about 8 mm. Further you can see that the two center supports receive, as expected, pressure forces, whereas the outer supports receive tensile forces upwards. Support reactions: Left outer support = node 1 Left middle support = node 188 Right middle support = node 485 Right outer support = node 672 Addition
Figure 13.13-20: Deflection of the bridge, enlargement each 300
−5.73465 t +20.73470 t +20.73460 t −5.73463 t +30.00000 t
13.13 Plane Frameworks 587
You calculated this example, even by total manual input like here, much faster than with the methods of classical engineering mechanics. Alternatively, we could also have modeled the structure in AutoCAD and then run the DXF converter Z88X.
13.13.2 With Z88Aurora V2 The rod structures, which are depicted in Z88 V14 OS, can be reenacted in the same manner like in example 13.3 in Z88Aurora or you simply load the Z88 V14 OS examples in a descripted manner. Here, the little more elaborate alternative 7 “bridge with Vouten” shall be presented.
Bridge with Vouten Generation of a new Project Folder Generate a new project folder
.
Import of the Mesh Generator File Select and read in the example files Z88NI.TXT in z88_examples_z88v14os/b13_7, then generate element sets for mesh generation.
Picking an Element Divide the super elements in 4 element sets according to Figure 13.13-21.
Generation of FE Structure from Super Elements We divide the structure each differently according to Figure 13.13-21 equidistant in local x direction and y direction. Generate the mesh after the generation of the cross linker rule. Type No.7: 7 equid. 3 equid Type No.7: 3 equid. 3 equid Type No.7: 5 equid. 3 equid Type No.7: 10 equid. 3 equid 4
sets
4
meshing rules
Figure 13.13-21: Division of the super element structure and generation of the FE structure
Definition of the Slice Thickness: Assign the thickness “10” to the bridge.
588 13 Examples
Picking of the Nodes For the line load in result of the tank a set “tank” for the nodes 326, 330, 337, 341, 348, 352, 359 has to be defined. Nodes No. 326, 330, 337, 341, 348, 352, 359 Y-direction, line load, value ”30“
672
1
188
485 Nodes No. 1, 188, 485, 672 Y-direction, displacement, value ”0“
Nodes No. 672 X-direction, displacement, value ”0“
Figure 13.13-22: Division of the super element structure and generation of the FE structure
Boundary Conditions 1. Set: x direction, boundary condition type “displacement”, value “0”, name “fixture_X” 2. Set: y direction, boundary condition type “displacement”, value “0”, name “fixture_Y” 3. Set: y direction, boundary condition type “line load”, value “−30”, name “tank”
Generate a new Material Because this example was constructed in the unit meter, please note that no standard material from the Z88Aurora material database can be used, since otherwise the conformity would not be preserved. For the generation of a new material, consult example 13.2. Since the units are meter and tons here, the Young’s modulus of steel is 20,600,000 N/m2.
Start of Calculation Start the calculation with the “PARDISO-Solver”.
Outputs
Figure 13.13-23: Deflected bridge, entire displacement, deflection factor 5,000
13.14 Gearwheel 589
■■13.14 Gearwheel We look at a gearwheel, whose hub is pressed onto a shaft. Besides, the pressure of the press fit assembly should be 100 N/mm2. The deflection, which is conducted by the expansion of the hub up to the gearing should be examined. The gearing itself on the outside are left out.
Figure 13.14-1: Simplified 3D-model of a gearwheel
This structure was generated in Pro/ENGINEER. In the module Pro/MECHANICA, the boundary conditions, mesh steering values and the pressure p = 100 N/mm2 were entered. Then you ought to define shell values and generate the mesh as shells in the shape of triangles. In the next step, give out this parabolicly as a NASTRAN file with coordinate system CS0 as Z88G. NAS. The choice of the boundary conditions is important: Giving up the pressure is not a problem, but rather the clever choice of supports to hold the structure in the plane on one hand, but on the other hand not to impede the deformations to be expected. Here, one applies the concept of the so–called virtual fixture (Figure 13.14–2).
Figure 13.14-2: Depiction of the storage with “virtual fixture”
590 13 Examples
4 points of the structure are defined. Both points at the 3 and 9 o’clock position are fixed in each case in y direction; in x direction they can be moved. Both points on 6 and 12 o’clock are fixed in x direction; in y direction they can move. With it, a so called virtual fixture originates in the middle.
13.14.1 With Z88 V14 The example directory B14_1 contains the suitable files: Load the NASTRAN file and generate the input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT with Z88G. Z88G.NAS
NASTRAN file
Z88MAN.TXT
Parameter file for solver
Z88MAT.TXT
Material parameter file
51.TXT
Material file
Z88ELP.TXT
Element parameter file
Z88INT.TXT
Integration orders file
Actions in Z88: Z88G, Plane stress elements, Z88G.NAS strolls in Z88I1.TXT, Z88I2.TXT and Z88I5.TXT Z88R, in the test mode and Cholesky mode: Ascertaining of the main memory requirements Z88H, sorts the node numbers → lower main memory requirements Z88R, in the test mode and Cholesky mode: Ascertaining of the main memory requirements Z88R, in the Cholesky mode, calculates deflections, stresses and nodal forces Z88O, plotting the FE structure, now also deflected or stress display
Figure 13.14-3: Z88O-representation of the imported structure from Pro/MECHANICA, display of the boundary conditions
13.14 Gearwheel 591
Actually, the FE structure with 4,546 nodes and 2,064 plane stress elements is very small; nevertheless, with elements with quadratic approach (Pro/MECHANICA nomenclature: parabolic) a very poor numbering is to be expected; this is why we should first let the solver run in test mode for the Cholesky mode. Then the solver would need 32,769,626 elements with 8 bytes each in the structure stiffness matrix. These are about 262 MBytes! Besides that, it was placed according to recent view: 1 MByte = 1,000,000 bytes. A renumbering with Z88H reduces this on 883,622 elements in GS = 7 MByte, these are less than 3% of the initial value. Attention: With bigger structures in the OpenSource version of Z88 (Z88 V14 OS), an evaluation of MAXKOI in Z88.DYN is very early urgently necessary, because this value is already used by reading the files at Z88R, Z88O and Z88X. In case of doubt, leave the value of MAXKOI in Z88.DYN always at a relatively high value, e. g., with 500,000 or more. Z88Aurora does this automatically. For this example, the following arises: 2,064 finite elements × 6 nodes per element is approx. 12,400. Enter this value in Z88.DYN with MAXKOI, better round up to 13,000 (in Z88.DYN of course no decimal dividing commas can be entered! So MAXKOI 13,000). In Z88.DYN with Z88 V14 OS at least following values (easily rounded up) have to be given: MAXGS 890000 MAXKOI 13000 (2064 elements × 6 nodes per element is about 12400) MAXK 4600 MAXE 2100 MAXNFG 9200 MAXMAT 1 MAXPEL 1 MAXJNT 1 MAXPR 1 (arbitrarily) MAXRBD 200 The boundary conditions for the virtual fixture turn out to be according to Z88H, i. e. after node numbering in the file Z88I2.TXT as follows: 12 o’clock: Node 110 with ux = 0 3 o’clock: Node
1891 with uy = 0
6 o’clock: Node
4542 with ux = 0
9 o’clock: Node
1859 with uy = 0
Now the solver Z88R in the Cholesky mode and calculation mode can be launched. With it, the deflections are calculated and can be shown with the plot program Z88O, at which the enlargements FUX and FUY should be put at 300 each to generate the following deflection picture (see Figure 13.14-4). At the nodes 110, 1,859, 1,891 and 4542, displacements of 0.027 mm appear. This would already let a precise gearing lose it’s operating characteristics. While the hub bore expands perfectly circular, the external diameter is distorted polygon-like. With the integration orders, it is enough to purport for INTORD (integration order for the deflection calculation) and INTOS (integration order for the stress calculation) in Z88INT.TXT 3 in
592 13 Examples
each case. Later you can also try to purport 7 for INTORD and 3 for INTOS or 7 in each case. Also try 13 in each case. Do the results change? Because it is a matter of plane stress elements, their thickness has to be specified with 20 mm in Z88ELP.TXT. How it was to be expected, the highest reduced stresses arise at the inside margin, i. e. in the hub bore (cf. Figure 13.14-4). One recognizes the 3 Gauss points each per finite element in Figure 13.14-5.
Figure 13.14-4: Deflected structure on account of the given stresses
Figure 13.14-5: Z88O: Display of the stresses calculated with Z88R in the Gauss points after shape update energy hypothesis
13.14 Gearwheel 593
Alternatively, we now calculate the structure with one of the sparse matrix solvers; we select the SICCG solver with MAXIT
10000
EPS
1e-007
RALPHA
0.0001
To recover the source situation, once again launch Z88G. With it, the solver input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT are newly generated; they are not yet renumbered what is also unnecessary here. If you try this afterwards, you will find out that no memory reduction arises – which makes sense, because with sparse matrix solvers we only work with the not zero elements anyway – and less is not possible! Note that with the source structure, the 4 external nodes have the numbers 1 (6 o’clock), 2 (3 o’clock), 3 (9 o’clock) and 38 (12 o’clock), cf. Figure 13.14-6. This you can ascertain very easily with Z88O by suitable zooming, moving and labelling. Then calculate with Z88R in the SICCG mode without renumbering; you will need approx. 210 iterations. Compare the results of the displacement calculation in Z88O2.TXT with those of the Cholesky solver run after renumbering. Do you ascertain significant deviations? No. From this you can draw the conclusion that with FE structures with quadratic approaches you should take a sparse matrix solver (SICCG and SORCG, with Z88Aurora also, in addition, PARDISO) immediately from the beginning, which will not at all be disturbed by a poor initial numbering of the nodes.
Figure 13.14-6: Position of the original nodes before or without renumbering; here of the node 3 at 9 o’clock
594 13 Examples
Alternatively, plane stress elements No. 7 should be included, meaning isoparametric curvilinear Serendipity elements with 8 nodes. Therefore, shell quadrangles can be generated in Pro/ ENGINEER in the module Pro/MECHANICA. Starting point is the NASTRAN file Z88G.NAS in the example directory B14_2. Start Z88G, plane stress elements: 3,749 nodes 1,109 elements 7,498 degrees of freedom On account of the cognition concerning node numbering and solver, we immediately take the SICCG solver, which needs approx. 229 iterations at this time. As integration order 3 is put in for each INTORD and INTOS in Z88INT.TXT, the thickness 20 mm in Z88ELP.TXT is logically identical to the previous example. The 4 external nodes have, like in the previous example, before renumbering the numbers 1 (6 o´clock), 2 (3 o’clock) 3 (9 o’clock), and 38 (12 o’clock). There you read out displacement values of about 0.027 mm in Z88O2.TXT, like before. Also the stresses are available with max. 315 N/mm2 like with the triangular mesh with max. 319 N/mm2 (at which must be considered that the position of the Gauss points of a curvilinear triangle is a little different compared to those of a curvilinear quadrangle, which may justify the already minimal deviations). Altogether, the mesh shows the typical criterion of automeshers, i. e. strong unsymmetrical (cf. Figure 13.14-7).
Figure 13.14-7: Alternative calculation with plane stress elements No. 7, so isoparametric curvilinear Serendipity elements with 8 nodes (quadrangle)
13.14 Gearwheel 595
Figure 13.14-8:
Z88O: Gauss stresses of the structure from plane stress elements No. 7
This example shows that the decision whether to use triangular or quadrangle elements with automeshers, does not make any difference. Here we would rather incline towards the triangular mesh because it is more symmetrical – the quadrangle mesh has a stronger asymmetry which can provide surprises in some cases. However, if one illustrated, this structure easy in itself with super elements cleanly symmetrically and refined Z88N with the mesher, we would incline towards the plane stress elements No. 7, that means to the quadrangles, because system-immanently they compute more exactly than triangles.
13.14.2 With Z88AuroraV2 The examples gearwheel with plane stress elements No. 14 and plane stress elements No. 7 exist as a Nastran import file. We import a STEP file in Z88Aurora, apply the boundary conditions and compare the results of the three calculations to both plane stress elements.
Create a new Project Directory Generate a new project directory
.
Import Nastran Structure Import the example files z88g.nas from z88_examples_z88v14os/b14_1 or z88_examples_z88v14os/ b14_2 as usual at which the import option “Plane stress elements” is set. The structure with boundary conditions appears in the OpenGL window. Only the material allocation is deleted to hold the internal material data bank of Z88Aurora consistent.
596 13 Examples
IMPORT
Figure 13.14-9:
Import of a Nastran file with setting “Plane stress elements”
Commitment of the Plane Stress Element Thickness As in example 13.1, we fix the plane stress element thickness in the element parameter menu for all elements with the thickness “20”.
Assign a Material Use the material structural steel S235JR from the Z88Aurora material database.
Launch the calculation You can use the PARDISO solver as you did before.
Create a new Project Directory Generate a new project directory
.
Import STEP Geometry 1. Click on the “import” icon → The object menu appears on the right side. 2. Select the STEP file → The import dialog opens. 3. Switch to the example directory z88_examples_z88aurora/b14/STEP file. 4. Select “gearwheel.stp”. 5. Launch the import with OK. IMPORT
Figure 13.14 10:
Import STEP geometry
Select STEP file
13.14 Gearwheel 597
Generate Meshing Create a meshing rule for Netgen, square tetrahedrons, value “5”.
Surface Picking for Pressure Boundary Conditions To simulate the joint pressure, it is necessary to select the hub surface with the “surface picking”. Choose an element and click on “surface”, name the set “pressure”.
Node Picking for Constraint For the virtual fixture, one also needs a fixation in the z direction in the three-dimensional direction, which is here realized by the selection of the external edge. For the fixation in x and y direction, the component is oriented in the xy view. With the Alt-key, the respective node ranges, according to Figure 13.14-11, are selected.
Pressure 100 N/mm Displacement X=0
Displacement Y=0
Displacement Z=0
Figure 13.14-11:
Picking the boundary conditions
598 13 Examples
Boundary Conditions 1. Set: x direction, boundary condition type “displacement”, value “0”, name “constraint_X” 2. Set: y direction, boundary condition type “displacement”, value “0”, name “constraint_Y” 3. Set: z direction, boundary condition type “displacement”, value “0”, name “constraint_Z” 4. Set: Direction is not required, boundary condition type “Pressure”, value “100”, name “pressure”
Assign a Material Use the material structural steel S235JR from the Z88Aurora material database.
Launch the Calculation Start the calculation with the “PARDISO solver”.
Result comparison The results analysis shows that all variations deliver more or less the same results, the choice depends therefore strongly on the model size and the initial conditions of the model supply. Plane stress element No. 14 σ max = 316 N/mm
Plane stress element No. 7 σ max = 304 N/mm
Tetrahedron No. 16 σ max = 315 N/mm
Figure 13.14-12: Reduced stresses in the corner nodes of plane stress element No. 7, No. 14 and tetrahedrons No. 16
13.15 3D Wrench 599
■■13.15 3D
Wrench
In this example a wrench was generated as a 3D model in the 3D CAD program Pro/ENGINEER, which corresponds in his proportions, however, not in the actual dimensions to the wrench of example 13.1. Here it should be shown, how the different element types, as they are used by automeshers, are used wisely. Of course you can compute this example, without having the above mentioned CAD program at hands.
13.15.1 With Z88 V14 Case 1: The directory for the first example is B15_1. Use Z88G, conversion of the COSMOS file Z88G.COS to Z88I1.TXT, Z88I2.TXT and Z88I5.TXT, Convert into plane stress elements.
Figure 13.15-1: Activate “Convert into plane stress elements”. The output of Z88G expels all necessary values
600 13 Examples
Look at the generated input file Z88I1.TXT (Figure 13.15-2)
Figure 13.15-2: Z88O: As shown, triangular elements are generated.
The input file Z88I1.TXT contains the following data: 749 nodes 328 elements of the type 14 1,498 degrees of freedom If you now run the Cholesky solver Z88R with the test option, the momentary structure construction of Z88I1.TXT needs 909,759 elements in the structure stiffness matrix, i. e. about 7 MByte of memory (900,759 × 8 bytes per element)! As before ascertained, automeshers very often generate extremely badly numbered meshes, and, hence, you should launch the Cuthill-McKee algorithm Z88H now
Figure 13.15-3: Results of the Cuthill-McKee program
13.15 3D Wrench 601
To test whether the run with Z88H was useful, you should run Z88R with the test option in the Cholesky mode once more: The memory requirements have decreased very perceptibly, namely from 909,759 elements to only 43,979 (about 350 KB). This corresponds to a reduction of about nearly 95%
Figure 13.15-4: Reading the diminished memory requirements in Z88R
Thus you are able to enter the correct values in Z88.DYN now and compute the displacements with Z88R. If you plot with Z88O and let the reduced stresses indicate, then you ascertain σv = 721 N/mm2 as the highest value. You should enlarge the deflected structure instead of with 100 only with 10, i. e. FUX = FUY =10. If you zoom to the lower point of the wrench and then label the nodes, you will find out that the external lower node has the number 4. If you now look at Z88O2.TXT, the output file of the displacements, you will find a displacement of the node 4 in y direction, meaning u2, of −0.164 mm
Figure 13.15-5: Z88O: Investigation of the right node number (No. 4) by zooming into the structure
602 13 Examples
Output file Z88O2.TXT: Displacements, generated with Z88R V14OS ************** Node
U(1)
U(2)
1
–3.0099948E–002
–8.1590255E–002
2
–3.0099892E–002
–8.0401507E–002
3
–3.1465409E–002
–8.0493281E–002
4
–1.1352312E–002
–1.6428690E–001
5
–1.1380529E–002
–1.5755881E–001
U(3)
U(4)
U(5)
U(6)
We keep these two values in the back of the head: σV = 721 N/mm2 − u2 = − 0.164 mm (at the external lower node; here node 4) Case 2: Now the same wrench shall not be divided into triangles (Z88G makes Z88 plane stress elements No. 14, that means curvilinear Serendipity plane stress elements from triangles with 6 nodes in NASTRAN or COSMOS files; in principle also Z88 plane stress elements No. 3 could be taken) but with quadrangles (Z88 makes plane stress elements No. 7 from it). This can be preselected with the model Production as shells with mesh pairs in Pro/MECHANICA. The example directory is B15_2. Start Z88G, select the COSMOS mode to generate the Z88 input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT, Convert in plane stress elements. Then edit Z88I1.TXT and find 575 nodes 160 elements type 7 and with a test run with Z88R in the Cholesky mode and test option you find out that you have very high memory requirements for this small structure with 537,181 elements in GS
Figure 13.15-6: Z88O: Representation of the structure
13.15 3D Wrench 603
You may have guessed that a renumbering run with Z88H will improve the situation drastically. Do it! Indeed: Only 35,817 elements instead of 537,181 elements are necessary. Still: This automatically generated structure is not nice. Compare it to the super structure created by hand and the FE structure of example 1 generated with the mesher. One can generate really nice and aesthetic FE meshes nowadays by hand with suitable meshers, i. e. mapped meshers like Z88N. However, this means a lot of work (by hand), indeed, but afterwards one can count on the calculation results. A nice and aesthetic FE structure always computes in a clean way. These are at least our extensive practice experiences. Ascertain the external lower node with Z88O to be able to compare the results from case 1 to this case (Figure 13.15-7)
Figure 13.15-7: Z88O: Situation of the node No. 1 for the wrench
This would be the node 1. After a calculation run with Z88R you determine: σV = 695 N/mm2 − u2 = − 0.164 mm (in the external lower node; here node 1)
604 13 Examples
So we practically get the same results as with the triangles. And this is a very typical situation: We had 328 triangular plane stress elements No. 14 and here 160 quadrangle plane stress elements No. 7. We only needed around half of the element number with the 8-nodes Serendipity plane stress elements, because they always compute very well, to achieve qualitatively high results just as well as with triangular plane stress elements. Case 3: We use plane stress elements No. 7 again, but place certain mesh controlling values in Pro/ MECHANICA finer (global maximum 0.5 instead of before 1). With it 683 elements with 2,200 nodes are generated, of it 649 plane stress elements No. 7 and 34 plane stress elements No. 14, because Pro/MECHANICA is not always able to generate “true” plane stress element No. 7 meshes. The example directory is B15_3. Proceed as follows: Z88G, COSMOS, Convert into plane stress elements Z88R, Cholesky mode, test mode: 7,076,996 elements in GS Z88H Z88R, Cholesky mode, test mode: 737740 elements in GS Z88.DYN edit correspondingly, i. e. at least enter: MAXGS MAXKOI MAXK MAXE MAXNFG MAXMAT MAXPEL MAXJNT MAXPR MAXRBD
740000 (737740 would theoretically be enough) 6000 (5464 would theoretically be enough) 3000 (2200 would theoretically be enough) 1000 (683 would theoretically be enough) 5000 (4400 would theoretically be enough) 2 (1 would theoretically be enough) 2 (1 would theoretically be enough) 2 (1 would theoretically be enough) 1 (arbitrarily) 100 (17 would theoretically be enough)
Z88R, Cholesky mode, calculation mode Z88O This structure, displayed deformed with FUX = FUY = 10, looks a little better than that of case 2, but it is still not nice. We ascertain: σV = 893 N/mm2 − u2 = − 0.165 mm (in the external lower node; here node 2059) Because the deflections (minimally) and the stresses have increased, compared to the coarser structure, the triangular structure of case 1 and the quadrangle structure of case 2 were theoretically not fine enough yet, but much has not been missing.
13.15 3D Wrench 605
Figure 13.15 8: Z88O: Representation of the deflected structure in case 3, enlargement 25
Case 4: Triangular elements like in case 1 should be used again, but with a finer mesh (global maximum now 0.5 instead of 1 in Pro/MECHANICA). The example directory is B15_4. Proceed as follows: Z88G, COSMOS, Convert into plane stress elements Z88R, Cholesky mode, test mode: 12,286,829 elements in GS Z88H Z88R, Cholesky mode, test mode: 288,801 elements in GS (reduction about nearly 98%!) Z88.DYN edit correspondingly Z88R, Cholesky mode, calculation mode Z88O Thus originate: 2,815 nodes 1,314 elements type 14 σV = 827 N/mm2 − u2 = − 0.166 mm (in the external lower node; here node 14)
606 13 Examples
Figure 13.15-9: Wrench with a finer mesh
Case 5: Up to now we have had 2D elements, i. e. finite elements used for the plane stress, and, to say it immediately, these element types No. 7 and No. 14 (and also No. 3) are ideal for such load cases. It is absolutely useless to compute with spatial elements here. Nevertheless, we will do it now so that you can understand the very increased expenditure. First we will try tetrahedron No. 17, so tetrahedron with linear approach and 4 nodes. Be warned: Even if such element types are often applied in practice and no FEA program renounces these linear tetrahedrons: They are very inexact and more or less the worst what one can use in finite elements in the space. We try it first with a rather coarse structure as one sees it alarmingly often in books and professional papers: 136 nodes 285 finite elements type 17 Besides, the global maximum with 10 and the global minimum with 5 were defined in Pro/ ENGINEER. The example directory is B15_5. Proceed as follows: Z88G, COSMOS, Convert into volume elements Z88R, Cholesky mode, test mode: 49,029 elements in GS Z88H Z88R, Cholesky mode, test mode: 11,040 elements in GS Z88.DYN edit correspondingly Z88R, Cholesky mode, calculation mode Z88O
13.15 3D Wrench 607
Figure 13.15-10: Z88O: Representation of the wrench with 3D elements
The results are catastrophically bad: σV = 296 N/mm2 − u2 = − 0.084 mm (at the outside lower node; here node 61) With it the aberration of the highest up to now calculated deflections is around 50 % and through the stresses even 891 − 296 · 100 = 67 % 891
Case 6: What happened in case 5, is to be named almost classically: The structure was calculated to be too stiff, that means not enough elements were used. Hence we will quadruplicate the number of elements to analyze the influence. The example directory is B15_6. Proceed as follows: Z88G, COSMOS, Convert into volume elements Z88R, Cholesky mode, test mode: 223,569 elements in GS Z88H Z88R, Cholesky mode, test mode: 76,815 elements in GS Z88.DYN edit correspondingly Z88R, Cholesky mode, calculation mode Z88O So originate: 501 nodes 1,179 elements type 17 σV = 615 N/mm2 − u2 = − 0.136 mm (at the outside lower node; here node 500)
608 13 Examples
The deflections and stresses are still too small in comparison to the other calculation runs. The aberrations adverse the highest up to now calculated value of –0.166 mm (case 4) amounts anyway 18 %. This is a clear indication for not enough elements with an approach, which is chosen to be too primitive.
Figure 13.15-11: Z88O: Refinement of the structure with an increase of the number of elements
Case 7: Hence, it shall be attempted to illustrate the wrench again with linear tetraheadrons No. 17, but with an even higher number of elements. Therefore, the global maximum for the mesh generation in Pro/ENGINEER was set to 0.5 instead of 1 like in case 5. The example directory is B15_7. Proceed as follows: Z88G, COSMOS, Convert into volume elements Z88R, Cholesky mode, test mode: 2,336,913 elements in GS Z88H Z88R, Cholesky mode, test mode: 975,366 elements in GS Z88.DYN edit correspondingly Z88R, Cholesky mode, calculation mode Z88O
13.15 3D Wrench 609
So originate: 2,517 nodes 8,768 elements type 17 σV = 787 N/mm2 − u2 = − 0.159 mm (at the outside lower node; here node 2,418) The deflection result still deviates about 4 % from the result of case 4, which delivered with –0.166 mm the highest and thereby the value, which is most likely used. One realizes that one needs disproportionally many linear tetraheadrons type 17 to receive useful results. With these types of elements, it has to be proceeded almost classically and several simulations with finer and finer meshes have to be executed, until the results do not significantly change anymore. This means a great amount of work, and it is always proposed to work with with elements with higher approaches. Case 8: Now tetraheadrons with quadratic approach shall be taken: 2,679 nodes 1,179 elements type 16 This mesh corresponds optically to the mesh from case 6, but because of the added middle nodes, the number of nodes strongly increased. The example directory is B15_7. Proceed as follows: Z88G, COSMOS, Convert into volume elements Z88R, Cholesky mode, test mode: 27,068,823 elements in GS Z88H Z88R, Cholesky mode, test mode: 1,215,081 elements in GS Z88.DYN edit correspondingly Z88R, Cholesky mode, calculation mode Z88O So originate: σV = 711 N/mm2 − u2 = − 0.169 mm (at the outside lower node; here node 2,672) These results look very good, but they were bought with a disproportionate effort in comparison to case 3 (plane stress element No. 14) or case 4 (plane stress element No. 7).
610 13 Examples
Summary of the results: Table 13.15-1: Result overview of the case studies
Case FE type 1 2 3 4 5 6 7 8
Plane stress elements No. 14 Plane stress elements No. 7 Plane stress elements No. 7 Plane stress elements No. 14 Tetraheadron No. 17 Tetraheadron No. 17 Tetraheadron No. 17 Tetraheadron No. 16
Approach Number elements Quadr. 328
Displacement Stress (mm) (N/mm2) −0.164 721
Good
Quadr.
160
−0.164
695
Good
Quadr.
683
−0.165
893
Very good
Quadr.
1,314
−0.166
827
Very good
Linear Linear Linear Quadr.
285 1,179 8,768 1,179
−0.084 −0.136 −0.159 −0.169
296 615 787 711
Very bad Bad Good Good
Result
It should be ensured that the stress values may not be compared directly, because the position of the Gauss points, on which the stresses are calculated, naturally differs from mesh to mesh and from element type to element type. Especially in case of the, in the literature popular, linear tetrahedrons (because these elements can be generated easily by automeshers), a dependency of the accuracy to the number of elements is shown (Figure 13.15-12).
Figure 13.15-12: Influence of the number of elements on the calculated displacements
This experiment clearly indicates that, as far as possible, one should always select the easiest mechanical case, i. e. here a plane stress problem instead of 3D. Moreover, higher approaches should be used: A quadratic approach is much better than a linear one. And the third one: 8-node Serendipity plane stress elements (“quadrangle”) are more efficient than 6-node Serendipity plane stress elements (“triangle”).
13.15 3D Wrench 611
13.15.2 with Z88Aurora V2 The single cases of the example can be calculated in Z88Aurora according to the following table. You find the examples and the STL file in z88_examples_z88aurora.
Import Cases 1 to 8 The import is progressed in the manner examined in the examples before; thereby choose the right import option “plane stress element” or “tetrahedrons” in each case. The element type is automatically recognized by Z88Aurora. Depending on the case, plane stress element thickness and/or material have to be defined. Case Name Nr.
Convert to
Prepare in Z88Aurora
1
b15_1.cos
Plane stress element (No. 14)
Thickness = 1
Structural steel
2
b15_2.cos
Plane stress element (No. 7)
Thickness = 1
Structural steel
3
In Z88Aurora it is not allowed to use more than one element type in a .calculation
4
b15_4.cos
Plane stress element (No. 14)
5
b15_5.cos
Tetrahedron (No. 17)
Structural steel
6
b15_6.cos
Tetrahedron (No. 17)
Structural steel
7
b15_7.cos
Tetrahedron (No. 17)
Structural steel
8
b15_8.cos
Tetrahedron (No. 16)
Structural steel
9
b15_9.stl
Tetrahedron (No. 16)
Thickness = 1
Structural steel
Figure 13.15-13: Overview of the single cases of example 15
Import STL Geometry Select the STL file “b15_9.stl” in the folder “STL-Datei”.
Generate Meshing Generate a mesh with quadratic tetrahedrons with Netgen, value 15.
Messure Distance To check the imported geometry and the thickness of the wrench, we proceed like in example 13.10. The “Analysis” tool is located in the menu “Tools”.
612 13 Examples
Figure 13.15-14: Distance measuring of two nodes with the Analysis tool
Node Picking for Boundary Conditions For the fixing and the two forces, three node sets have to be defined.
Force (uniformly distributed) value ”+/- 67“
X, Y, Z-direction, displacement, value ”0“
Figrue 13.15-15: Boundary conditions of the wrench
Boundary Conditions 1. Set “fixed”: x, y and z direction, boundary condition type “displacement”, value “0”, name “fixture” 2. Force (uniformly distributed): Set “force_1”, y direction, value “67”, name “force_1”. 3. Force (uniformly distributed): Set “force_2”, y direction, value “−67”, name “force_2”.
Assign a Material Use the material structural steel S235JR from the Z88Aurora material database.
Launch Calculation Start the calculation with the “PARDISO-Solver”.
13.16 Force Measuring Element, Plane Stress Elements No. 7 613
Results
Figure 13.15-16: Reduced stresses of the wrench
■■13.16 Force
Measuring Element, Plane Stress Elements No. 7
The task is now to calculate the deformation element of a so-called load cell with Z88. We later apply the actual strain gauges at the internal holes with the position at 3 o’clock and with 9 o’clock; hence, the deformations and stresses are particularly in these areas of interest.
13.16.1 With Z88 V14 We proceed according to the example of chapter 10.4 resp. the description of Z88X in the Z88 manual and implement the indicated steps, with the following files being located in the example directory B16: 1st Step: 2D draft of the deformation body in AutoCAD. In this case, we used AutoCAD 2,011, but you can also design 3D wire frame structures in AutoCAD. For instance, example No. 5 can be easily designed as a 3D wire frame structure and converted with Z88. If you do not want to build the draft by yourself in your CAD system, you can use the files B16STEP1.DWG or B16STEP1.DXF. 2nd Step: Draft of the mesh segmentation, here for super elements plane stress elements No. 11, so to say 4 nodes per edge. Set the nodes as points. We recommend to set “real” points onto already implicitly existing points, for example points of intersection, so use these dots later in the steps 3 and 5. For each case, we deliver the drawing in the files B16STEP2. DWG or B16STEP2.DXF. 3rd Step: Set layer Z88KNR and snap (the best way is to snap real points instead of corner points or points of intersection) all the FE nodes in this layer that were defined in the 2nd step label with the text function: P space node number, so to say, e. g., node 7 gets the label “P 7”. For safety’s sake: B16STEP3.DWG or B16STEP3.DF.
614 13 Examples
Figure 13.16 1: 2D AutoCAD representation of the force measuring element after the 4th step
4th Step: Set the Layer Z88EIO and write the element information with the text function onto the layer. The location of these text elements is optional, they do not have to be inside the elements or be precisely caught as in the previous step. Since we should use super element plane stress elements No. 11, this means: SE element number 11 7 mesh segmentation. If we take the element 6 for example: SE (super element) 7 (the 7th super element) 11 (type of super element, here type No. 11) 7 (finite element type to be generated, here type No. 7) 6 (6 times divided in local X direction) E (equidistant) 3 (3 times divided in local Y-direction) l (this small L means: divided geometrically falling). We do not define the location of the elements, but their texture. The definition, which element is the first element, which one is the second etc., occurs in step 5 by the order of picking the element nodes. When you pick the first 12 element nodes, for example, Z88 recognizes the element, defined by these 12 nodes, as the first element. The next 12 nodes you pick, determine the second plane stress element No. 11. For safety’s sake: B16STEP4.DWG or B16STEP4.DF.
Figure 13.16-2: Determination of the local coordinate systems of the 5th step
To prepare the 5th step, we determine the location of the local coordinate axis inside the elements. The local x-axis will always be defined by picking the first node (local node) and the next node (with plane stress elements No. 11 this is the local node No. 5, cf. description of element type 11). The local y-axis is always “perpendicular” to the x-axis, i. e. in the mathematically
13.16 Force Measuring Element, Plane Stress Elements No. 7 615
positive direction of rotation: With plane stress elements No. 11, the axis goes from node 1 to node 12. We can use arrows for our own orientation in our AutoCAD draft as shown above, but these arrows do not have any further relevance. For more clarity, we blanked out the element and node information.
Figure 13.16-3: Display in AutoCAD after the 5th step
5th Step: Set layer Z88NET and activate it. For this layer, select a color, which clearly differentiates from the other colors you used. Switch on a suitable snap mode; preferably snap on points. However, this is only possible if you have set points everywhere in the 2nd step. Of course you can also snap points of intersection or end points, but in our experience, snaping definitively set points, and only those, is safer. Start with the first element, here with the first super element. Remember: The location of the elements is optional and the information, as SE 1 11 7 6 E 3 l, does not define the location of the element, only the following does: the element (1) is a super element (SE): SE 1 from type 11 and should generate type 7 should divide the local x-axis 6 times equidistantly and the local y-axis 3 times geometrically falling. Start with the first super element, select drawing line, snap mode point and press P 1: This is the origin of the local element coordinate system. Continue the line to P 13 (this determines the local X-direction and also the local Y-axis, which has to be perpendicular to the x-axis), to P 17 to P 27 to P 25 to P 23 to P 21 to P 18 to P 15 to P 11 to P 9 to P 5 and back to P 1. Now you can quit the line function. Start the line function anew and press P 1 again (the input of the second element begins) and drag towards P 5 (this fixes the local x-axis) to P 9 to P 11 to P 7 to P 8 to P 12 to P 10 to P 6 to P 4 to P 3 to P 2 and back to P 1 and quit the line function. Repeat this process with the remaining six super elements. In practice, this works much faster than it seems and only takes a few minutes. For safety’s sake: B16STEP5.DWG or B16STEP5.DXF.
616 13 Examples
6th Step: Set layer Z88GEN and select it. Write the general information on a random location with the text function, i. e. Z88NI.TXT 2 64 8 128 0 0 0 This means: We want to generate a mesher file Z88NI.TXT with Z88X 2D structure with 64 nodes 8 super elements 128 degrees of freedom KFLAGSS = 0: Cartesian coordinates super elements NIFLAG = 0: use the standard catch radius KFLAG = 0: Cartesian coordinates finite elements With this, we have all the necessary information, and can save the drawing. For safety’s sake: B16_N.DWG or B16_NDXF.
Figure 13.16-4: Eight super elements, generated in AutoCAD after the 6th step
For using Z88X, you have to create a DXF file in addition, by exporting or whatever this function may be called in your CAD program. Please note that we tested this process only with the original AutoCAD from Autodesk. Other CAD systems are not always compatible with AutoCAD. If you call the DXF file, e. g., DMS.DXF, you have to copy the file DMS.DXF into Z88X.DXF (or immediately output Z88X.DXF), because Z88X expects this special name. Create Z88X.DXF. Now, launch the DXF converter Z88X and select DXF > Z88NI.TXT. Let Z88X run. If everything has occurred, you can see the following prompts. In the case of an error, you probably did not digitalize well, i. e. did not snap the node texts P xx exactly in the nodes in step 3 and/or did not snap the lines exactly in the nodes in step 5. Once again: You have to set a real point for every node in your CAD program and only select the point snap mode in steps 3 and 5 and switch off all the other snap modes.
13.16 Force Measuring Element, Plane Stress Elements No. 7 617
Figure 13.16-5: Output mask of the Z88X converter
Since Z88X has now generated the mesher file Z88NI.TXT, you can launch the mesher Z88N (Figure 13.16-6).
Figure 13.16-6: Creating Z88I1.TXT with Z88N
The mesher Z88N has generated the file of the general structure data Z88I1.TXT, but the file of the boundary conditions Z88I2.TXT, the distributed load file Z88I5.TXT, the element parameter file Z88ELP.TXT, the integration order file Z88INT.TXT, the material group file Z88MAT.TXT, the material file (here 51.TXT) and the solver control file Z88MAN.TXT are still missing. To define the boundary conditions, you need to detect the concerning nodes. You can implement this in two ways: Either with the Z88 plot program Z88O (the obvious action) or with the Z88 DXF converter Z88X The following boundary conditions have to be defined (Figure 13.16-7):
Figure 13.16-7: Boundary conditions for the force measuring element
618 13 Examples
If you consider the zones of the boundary conditions in Z88O, you can see following node numbers for the force load zone: 205 (corner nodes) – 231 (center nodes) – 238 (corner nodes) – 242 (center nodes) – 249 (corner nodes) According to the description of the boundary condition file Z88I2.TXT, with finite elements with quadratic approach per element, the corner nodes have to carry 1/6 of the load and the center nodes 2/3 of the load. We get the following (see Table 13.16.1): Table 13.16-1: Calculating the load distribution in the nodes
Node number
Location
Distribution
Force in N
205
Edge corner node
1/6 : 2
−500
231
Center node
2/3 : 2
−2,000
238
Corner node- corner node (1/6 + 1/6) : 2
−1,000
242
Center node
2/3 : 2
−2,000
249
Edge corner node
1/6 : 2
−500
For the support points we can read out: 67 – 206 – 210 – 217 – 221. We fix the center node 210 in x- as well as in y-direction, while y-direction is enough with the other boundary conditions. With an editor, we could write the file Z88I2.TXT (for safety’s sake we already prepared it for you in the example directory B16): 11 67 2 2 0 205 2 1 –500 206 2 2 0 210 1 2 0 210 2 2 0 217 2 2 0 221 2 2 0 231 2 1 –2000 238 2 1 –1000 242 2 1 –2000 249 2 1 –500
13.16 Force Measuring Element, Plane Stress Elements No. 7 619
If you want to detect these points with the CAD program instead of Z88O: Start Z88X and select Z88I1.TXT > DXF.
Figure 13.16-8: Create the DXF file Z88X.DXF from Z88I1.TXT, considered in AutoCAD
Z88X overwrote the old file Z88X.DXF and generated a new file Z88X.DXF, which contains the finite elements structure. Import Z88X.DXF into your CAD program and read out the concerning nodes. Hide the layers you do not need right now. If the node numbers are written in a font size, which is too large, select file > text size in Z88X and insert a smaller value than 1, e. g., 0.1 and generate Z88X.DXF once more via Z88I1.TXT > DXF. Now you should set these files with your editor: Z88ELP.TXT, the thickness of the deformation element is 10 mm: 1 1 120 10 0 0 0 0 0 0
Z88INT.TXT, for INTORD and INTOS each 3: 1 1 120 3 3
Z88MAT.TXT: 1 1
120 51.txt
51.TXT: 206000 0.3
Z88MAN.TXT: GLOBAL START
620 13 Examples
IBFLAG
0
IPFLAG
0
IHFLAG
0
.. .. STRESS START KDFLAG
0
ISFLAG
1
STRESS END
Now launch Z88R, e. g., in the Cholesky mode. Consider the results with Z88O. As controlling values use following: The displacement in the node 232 in Y-direction (= u2) will amount −0.293 mm and the maximum reduced stress 448 N/mm2. In the second part of this example, we will start with a very rough mesh and refine it step by step. Our base will be the mesher file Z88NI.TXT, but we intend a rougher generation (cf. directory B16_014): 1
7
2 E 2
1 E 7
1 E 3
2 E 7
2 E 4
1 E 7
1 E 5
1 E 7
1 E 6
1 E 7
2 E 7
1 E 7
2 E 8 1 E
1 E 7 2 E
According to Z88N we get following structure:
Figure 13.16-9: Output plot of the Z88N: 14 elements
13.16 Force Measuring Element, Plane Stress Elements No. 7 621
It contains 14 finite elements of type No. 7. With Z88O we can find out that in the nodes 33, 40 and 43, loads must be applied, namely 1,000 N in the node 33 (corner node = 1/6), 4,000 N in the node 40 (center node = 2/3) and 1,000 N in the node 43. The nodes 11, 34 and 36 are fixed in Y direction and node 34 is additionally fixed in X direction. With this, Z88I2.TXT originates. A run with Z88R in the Cholesky mode delivers: Displacement u2 in the node 39: −0.222 mm and max. reduced stress σv =236 N/mm2. For the next calculation run, we use the double number of finite elements (Figure 13.16-10).
Figure 13.16-10: Doubling the element number to 28
28 finite elements of type No. 7, example directory B16_028. Displacement u2 in the node 76: −0.275 mm and max. reduced stress σv = 325 N/mm2. Renewed doubling (see Figure 13.16-11):
*
Figure 13.16-11: Doubling of the element number to 56
56 finite elements of type No. 7, example directory B16_056. Displacement u2 in the node 121: −0.285 mm and max. reduced stress σv = 377 N/mm2.
622 13 Examples
Renewed doubling (see Figure 13.16-12):
*
Figure 13.16-12: Doubling of the element number to 112
112 finite elements of type No. 7, example directory B16_112. Displacement u2 in the node 241: −0.293 mm and max. reduced stress σv = 426 N/mm2. Renewed doubling (see Figure 13.16-13):
*
Figure 13.16-13: Doubling of the element number to 224
224 finite elements of type No. 7, example directory B16_224. Displacement u2 in the node 421: −0.295 mm and max. reduced stress σv = 458 N/mm2. If we apply the calculated displacements on the element number, we find out that the results converge very fast with plane stress elements No. 7. As already mentioned before, this element type, i. e. an 8 node curvilinear Serendipity element with quadratic approach, suits very well for plane stress calculations.
13.16 Force Measuring Element, Plane Stress Elements No. 7 623
Figure 13.16-14: Dependence of the ascertained displacements on the element number
13.16.2 With Z88Aurora V2 As an example, we use a variation of this example in Z88Aurora. The other variations can be reconstructed in Z88 V14 OS.
Create new Project File Create a new project file
.
Import Z88 V14 OS Structure File Z88I1.TXT Select and read example file Z88I1.TXT in z88_examples_z88v14os/b16.
Node Picking Create three sets according to Figure 13.16-15. line load
displacement
Figure 13.16-15: Boundary conditions for the force measuring element
624 13 Examples
Boundary Conditions 1. Set: Displacement, “constraint_support_XY”, X- and Y-direction, value “0” in the node 210 2. Set: Displacement “constraint_support_Y”, Y-direction, value “0” in the nodes 67, 206, 217, 221 3. Set: Defining-edge load, “load”, Y-direction, value “−6000”
Defining the Plane Stress Element Thickness As in example 13.1, we determine the plane stress element thickness in the element parameter menu for all elements as “10”.
Assign Material Use the material S235JR from the Z88Aurora material database.
Launch Calculation Start the calculation with the “PARDISO solver”.
Results
Figure 13.16-16: Deformed force measuring element, deformed representation, scaling: 20
■■13.17 Circular
Plate, Plates No. 20
This example introduces the plate calculation. Z88 holds plates of the so-called Reissner Mindlin type, namely as 6-node Serendipity elements (type 18), 8-node Serendipity elements (type 20) and 16-nodes Lagrange elements (type 19). With plates, you have to rethink a little bit: Although the plate dimensions are given in X- and Y-direction, the physically interesting displacement is the displacement in Z-direction
13.17 Circular Plate, Plates No. 20 625
(cf. Figure 13.17-1). In addition, there are twists or rotations around the x-axis and the y-axis. In spite of everything else, a plate is a 2D element. This is why we need some tricks in the FE program to illustrate this paradox.
Figure 13.17-1: Degrees of freedom with plate elements
We want to calculate a circular plate with a diameter of 2,000 mm and a thickness of 100 mm, the material is steel with E = 206,000 N/mm2 and ν = 0.3. A distributed load of 2 N/mm2 is applied at the surface of the plate. The outer edge may be fixed in Z-direction, all the other degrees of freedom are free. The plate is constructed in Pro/ENGINEER (see Figure 13.17-2; just in case you do not own Pro/ENGINEER, we prepared a COSMOS file for you on the DVD). We switch towards Pro/MECHANICA, Structure, while selecting the FEM mode (in this example we come from the Pro/E version called Wildfire 4). With other CAD systems as for example CATIA or UG, you proceed nearly in the same way. If you want to start directly with the FEA calculation, open Z88G.COS from the example directory B17.
Figure 13.17-2: Circular plate, designed in Pro/ENGINEER
626 13 Examples
Set strain, consistent for the loads. As boundary conditions fix, the displacement in Z-direction, and set the displacements X and Y as well as rotations around X, Y and Z free. This is very important since the type of boundary conditions is very important with plates. Furthermore, you have to set idealizations as this plate is no 3D volume body (of course you also could compute this plate as a 3D volume body with tetrahedrons No. 16 or 17, but at the moment this is not the task). Select shells (Pro/ENGINEER does not know explicitly the types plates and plane stress elements, but knows their combination, the shells) and select centre areas. Select the plate’s upper and lower side. At control set a maximum element size of 100 to receive comparable results. While generating, select the center area and quadrangle. Then select execution, solver COSMOS/M, structural analysis, element form Parabolic, repair elements, output with output file with a name that sounds good to you. However, note that this file has to be loaded into the Z88 working directory with the name Z88G.COS. You can now copy this within the operating system level.
13.17.1 With Z88 V14 Normally, you set the boundary conditions like forces and forced displacements as well as fixed boundary conditions in the file Z88I2.TXT; you set the distributed loads in Z88I5.TXT, as we did it in this example. However, there is a quick-and-dirty-process: Alternatively to Z88I5.TXT, you could also (inconsistent, but comfortably) enter pressure loads for plates and shells in the file Z88ELP.TXT, namely after QPARA (= thickness of plates and shells) in the position Iyy. Then, however, the first line of Z88I5.TXT has to be set to 0, and you have to set IPFLAG (= plate flag) resp. IHFLAG (= shell flag) in the solver control file Z88MAN.TXT. Z, U 3
Y, U 2
U6
U5
z x
2
parallel to X-Y plane
1
y
U4
X, U 1
Figure 13.17-3: Beam No. 2 with 2 nodes in the space
With the strange fact of dimensions in X- and Y-direction and displacements in Z-direction, you can only combine the plate elements among themselves, but not with, e. g., trusses or beams, since the respective degrees of freedom of, e. g., beams or trusses on the one hand and plates on the other hand do not fit (cf. Figure 13.17-3). As you may note, with the beam in the space, the displacement in X-direction is U1, while with plates U1 is the displacement in Z-direction. Also U2 and U3 are absolutely different in their
13.17 Circular Plate, Plates No. 20 627
significance. One would have to insert special beams or trusses into the program, which would only be suitable for the combined application with plates. Now, launch Z88. The first step would be the conversion of the just generated COSMOS file into the Z88 input files Z88I1.TXT, Z88I2.TXT and Z88I5.TXT. The Z88 module Z88G carries this out almost automatically for you. You only have to tell that it is about calculating plates (the generated elements inside the file are labeled as shells and you have to decide whether a plane stress element calculation or plate calculation should occur; cf. Figure 13.17-4).
Figure 13.17-4: Z88G converts our COSMOS file into Z88 input files
Since we are handling parabolic elements with a quadratic approach, badly numbered elements arise with Pro/ENGINEER, and you should correct them with the help of Z88H. Or you use one of the sparse matrix solvers. Note, however, that in this case the node numbers, mentioned in the following, are not correct anymore, since Z88H assigns new node numbers for all affected files like Z88I1.TXT (general structure data), Z88I2.TXT (boundary conditions) and if necessary Z88I5.TXT (distributed loads, if available). You should now plot the structure once to control whether the conversion worked or not (Figure 13.17-5). Now start Z88R. As you can see with the four elements, being located quite in the center, the generated FE mesh is not completely symmetrical. This is a special property of free meshers. So-called mapped meshers, as Z88N is, generate a symmetrical mesh, but with a substantially higher amount of work of the operator. The light unsymmetric mesh does not interfere here very much; you only have to know that you cannot expect results, being located accurately in the structure center since there are no nodes. The node with the smallest distance to the center is the node No. 649. Here, we will read out the displacement in Z-direction. We could also read out the twist of the edge, e. g., in the node No. 20 with the location of 9 o’clock. To fairly comfortably read out the stresses, we display the stresses in the corner nodes, which involves following entries: In Z88INT.TXT: INTOS 0 and in Z88MAN.TXT: ISFLAG 0.
628 13 Examples
Figure 13.17-5: Z88O: Plot of the plate loaded in Z88
Edit them accordingly. Start Z88R once more to activate these updates. Later we can read out the stresses SIGXX and SIGYY in the element 1 in the corner node with the coordinates X = +50.8 and Y = +22.3. However, before that, we should determine the analytic solution. According to the standard work “Theory of Plates and Shells” by Timoshenko/Woinowsky-Krieger /37/ one computes: Plate stiffness D: D=
E h3 206,000 · 1003 = = 18,864,468,864 Nmm 2 12 (1 − ν ) 12 (1 − 0.32 )
maximum deflection wmax: wmax =
(5 + ν) q a4 (5 + 0.3) · 2 · 1,0004 = = 6.75 mm 64 (1 + ν) D 64 · (1 + 0.3) · 18,864,468,864
The twist of the margin is: w (a) =
q a3 2 · 1,0003 = = 0.01019 rad 8 D (1 + ν) 8 · 18,864,468,864 · (1 + 0.3)
The maximum plate bending moment (this is no real bending moment!) in the center is: Mr = M t =
3+ν 3 + 0.3 q a2 = 2 · 1,0002 = 412,500 N 16 16
The accompanying maximum stresses are σr = σt =
6 Mr 3 (3 + ν) q a2 3 (3 + 0.3) · 2 · 1,0002 = = = 247.5 N/mm2 h2 8 h2 8 · 1002
13.17 Circular Plate, Plates No. 20 629
Z88 calculates Z88R with the direct Cholesky solver: wcenter = wnode 649 = 6.80 mm w'margin = w’node 20 = 0.0102 rad Mcenter r = MXX node X=+50.8 Y=+22.3 = 412,900 N Mcenter t = MYY node X=+50.8 Y=+22.3 = 413,700 N σcenter r = σXX node X=+50.8 Y=+22.3 = 247.8 N/mm2 σcenter t = σYY node X=+50.8 Y=+22.3 = 248.2 N/mm2 Obviously, Z88 seems to address the problem very well. Figure 13.17-6 shows the deflected structure with Z88O. With Z88O, you are able to plot the reduced stresses (before, set in: Z88INT.TXT: INTOS 3 and in Z88MAN.TXT: ISFLAG 1 and compute again with Z88R) which coincide very well with the analytic results (see Figure 13.17-7).
Figure 13.17-6: Plot of the deflected structure with Z88O
Figure 13.17-7: Reduced stresses, plotted with Z88O
630 13 Examples
13.17.2 With Z88Aurora V2 Create a new Project Directory Create a new project directory
.
Importing a Cosmos File as a Plate We import the file z88g.cos from z88_examples_z88v14os/b17 and select the import mode “plates”.
Figure 13.17-8: Importing a Cosmos file as plate elements
Assign Material Use the material S235JR from the Z88Aurora material database.
Assign Plate Thickness As with example 13.1, we determine the plate thickness in the element parameter menu for all elements with the thickness “100”.
Boundary Conditions The constraint of the plate has already been carried out in the Cosmos file. You only have to create the pressure boundary condition with the node set “pressure”, which contains all the nodes, which associate the value “2”. Please note that selecting surfaces is not allowed with 2D elements.
13.18 Rectangular Plate with 16 Nodes Plates No. 19 631
Launch Calculation Start the calculation with the “PARDISO solver”.
Results
Figure 13.17-9: Whole deformation, deformed structure, scaling 50
■■13.18 Rectangular
Plate with 16 Nodes Plates No. 19
Our task is to calculate a thick rectangular plate made of steel. Data: Dimensions: 1,000 × 1,000 × 100 mm Distributed load 46.42 N/mm2 Young’s modulus 206,000 N/mm2 Poisson’s ratio 0.3
13.18.1 With Z88 V14 We design the plate with AutoCAD as a superstructure. We build one super element of plate type 20, which is decomposed in 8 × 8 = 64 plates of type 19 by the mesh generator (doing it with the editor would take the same time in this case). The exact proceeding is explained in chapter 10.5. Try it yourself and export the drawing as Z88X.DXF into the z88 directory. Otherwise, you will find all the necessary input data in directory B18.
632 13 Examples
Figure 13.18-1: AutoCAD 2011, sketch of the rectangular plate
Figure 13.18-2: CAD converter Z88X
13.18 Rectangular Plate with 16 Nodes Plates No. 19 633
You have to choose the implementation Z88X → Z88NI.TXT. With this you can also use the mesh generator (Figure 13.18-3).
Figure 13.18-3: Mesh generator Z88N
You are able to look at the structure with Z88O (Figure 13.18-4).
Figure 13.18-4: Plot program Z88O, undeformed structure of the rectangular plate
Now, we have to work a little harder: You have to read out the node numbers in Z88O. To do this, we have to consider how to support the plate. We use a so-called cutting edge support, that means the edges of the plate are fixed as in between two knife edges at the top and at the bottom. With this support it is possible to move in transverse direction, similar to floating support, but in longitudinal direction along the knife edges, there is no movement possible.
634 13 Examples
Figure 13.18-5: Sign conventions with Z88 plate elements
If you want to support the edge along X with knife edge supports, you have to fix the degrees of freedom No. 1 (Z-direction) and No. 3 (rotation around the Y-axis). Altogether, there are 625 nodes in this object. Which one of those do we want to fix? That’s a good question! To keep the expenditure as small as possible (in most cases this is not a good idea), we only fix the corner nodes located on the edges of our element. These are the nodes left boundary: lower boundary: upper boundary: right boundary:
1, 4, 7, 10, 13, 16, 19, 22, 25 1, 76, 151, 226, 301, 376, 451, 526, 601 25, 100, 175, 250, 325, 400, 475, 550, 625 601, 604, 607, 610, 613, 616, 619, 622, 625
Figure 13.18-6: Reading out the nodes in Z88O
The following is the beginning and the ending of the boundary condition file Z88I2.TXT (if you are too lazy to insert it by yourself use B18_2ROU.TXT): 68 1 1 2 0. 1 2 2 0.
13.18 Rectangular Plate with 16 Nodes Plates No. 19 635
1 3 2 0. 4 1 2 0. 4 2 2 0. .... 622 1 2 0. 622 2 2 0. 625 1 2 0. 625 2 2 0. 625 3 2 0.
We can start one of the solvers. The structure is small, that is why we can use the Cholesky solver. From Z88O2.TXT we read the following for node No. 313 which is located exactly in the center of the plate: 313 +1.1236511E+001 -2.1751298E-008 +2.1751298E-008
The displacements U2 (the rotation around the X-axis) and U3 (the rotation around the Y-axis) are almost zero. This looks good. The displacement U1, also called w, is about 11.24 mm. “Analytically” (this is just an approximation for thin plates, cf., e. g. Dubbel) we compute: f=
0.71 p b4 0.71 · 46.42 · 5004 = = 10 mm E h3 206,000 · 1003
This means, we have a deviation of 10 − 11.24 · 100 = −12 % 10
What is the reason for this deviation? Firstly, the analytic approaches in the literature are of the Kirchhoff type, they neglect the shear forces and are so-called thin plates. Secondly, they have originated from series expansion and thirdly, we could define the boundary conditions more precisely. Figure 13.18-7 shows how the deflection plot with each 50-times enlargement looks like.
Figure 13.18-7: Improper support of the plate edges
636 13 Examples
Can you see the loss of adhesion of the edges between the element corner nodes? We have to fix all the nodes located on the edges (copy file B18_2.TXT into Z88I2.TXT). We receive: w in the node 313 is 10.5 mm with a deviation to the analytic calculation of approx. 5% (the analytic calculation was basically not right because it calculates with the data of thin plates with a thickness of about 1/50, 1/100 or less of the length!) For the stresses in the plate’s center we compute “analytically”
σx = σy =
1.15 p b2 1.15 · 46.42 · 5002 = = 1,335 N/mm2 h2 1002
We set the solver parameter file Z88MAN.TXT for the calculation of corner nodes: ISFLAG 0. The integration order file Z88INT.TXT becomes as follows: INTOS 0 With these files you can now read out the stresses of the node 313 either from the elements 28, 29, 36 or 37; it is the node with XX = 600 and YY = 600: σx = σy = 1,334 N/mm2.
Figure 13.18-8: Now, the edges are properly fixed
Finally, we compute the stresses in the Gauss points: The solver parameter file Z88MAN.TXT: ISFLAG 1. The integration order file Z88INT.TXT becomes as follows: INTOS 4. After running Z88R, we can look at the reduced stresses. Now, you have gotten a small impression of plate calculations. Plate calculations are always diabolical. It is better to calculate thick plates with volume elements by using a square approach. This may be more input expenditure, but the results are always reliable and free from dubious needs of interpretation.
13.18 Rectangular Plate with 16 Nodes Plates No. 19 637
Figure 13.18-9: Plot of the von Mises stresses in the 4 × 4 Gauss points
Figure 13.18-10: Z88O: Plot of the Z displacements
638 13 Examples
13.18.2 With Z88Aurora V2 Create a new Project Directory Create a new project file
.
Import AutoCAD DXF Import the example files z88x.dxf from z88_examples_z88v14os/b18 and select the option “Super structure DXF according to Z88Aurora super structure”.
Creation of the FE Structure out of Superelements The super element type of the rectangular plate is 19, with equidistant subdivision in x-direction, value “8” and equidistant subdivision in y-direction, value “8”. Example No. 13.5 serves as a template.
Node Picking Create three sets according to Figure 13.18-11. Compile another set for the distributed load with all the nodes. We need this for the pressure boundary condition. After unambiguous definition of the pressure direction with two-dimensional finite elements, we do not need to select any surfaces. Z-direction, rotations X, Y, displacement, value ”0“
Z-direction, rotation Y, displacement, value ”0“
Z-direction, rotation X, displacement, value ”0“
Z-direction, rotation Y, displacement, value ”0“
Z-direction, rotations X, Y, displacement, value ”0“
X
Y Z-direction, rotations X, Y, displacement, value ”0“
Z-direction, rotation X, displacement, value ”0“
Figure 13.18-11: Sets of nodes for boundary conditions
Z-direction, rotations X, Y, displacement, value ”0“
Z
13.19 Four-stroke Engine Pistons with Tetrahedrons No. 16 639
Boundary Conditions 1. Set: Displacement, “clamp_XYZ”, Z-direction, rotation around X and Y, value “0” 2. Set: Displacement, “clamp_ZY”, Z-direction, rotation around Y, value “0” 3. Set: Displacement, “clamp_ZX”, Z-direction, rotation around X, value “0” 4. Set: Distributed load, “pressure”, value “46.42”
Assigning Material Use structural steel S235JR from the Z88Aurora material database as a material.
Defining the Plate Thickness: As with example 13.1 we set the plate thickness for all elements with the thickness “100” in the element parameter menu.
Launch Calculation Start the calculation with the “PARDISO solver”.
Results
Figure 13.18-12: Plot of the Z displacements, deflected structure, scaling 10
■■13.19 Four-stroke
Engine Pistons with Tetrahedrons No. 16
We look at a modern piston of a four-stroke engine as it is basically inserted in the BMW single cylinder engine F650 GS. The piston was earlier designed with Pro/ENGINEER in a simplified version. With Pro/MECHANICA, we display a spatial mesh with 10-node tetrahedrons as a NASTRAN file. We assumed aluminum as the material with following values: E = 73,084 N/mm2 ν = 0.33 F = 40,000 N
640 13 Examples
Figure 13.19-1: Pro/ENGINEER: Modern piston for a modern four-stroke engine, boundary conditions
Figure 13.19-2: Pro/ENGINEER: FE mesh with approx. 46,000 nodes and approx. 27,000 elements of type 16
13.19.1 With Z88 V14 Use the NASTRAN file in the directory B19. We will carry out the calculation with the iteration solver: At first, start the 3D converter Z88G and keep the standard setting “Convert in volume elements”. This time, do not start the CuthillMcKee algorithm Z88H (in this case, with a compilation of 32 bit, it already reaches its limit!) since the sparse matrix solver does not need the renumbering in principle.
13.19 Four-stroke Engine Pistons with Tetrahedrons No. 16 641
Now we insert into the memory control file Z88.DYN following minimum values, of which some are already rounded: MAXKOI 270000 MAXK 46000 MAXE 27000 MAXNFG 137000 MAXRBD 1300 MAXPR 200 MAXIEZ 5200000
(= 270000 places in the coincidence vector) (= 46000 nodes) (= 27000 elements) (= 137000 degrees of freedom) (= 1300 boundary conditions) (= 200 surface loads) (= 5.2 million places in the sorting vector)
How do we get these values? It is quite simple: You receive the actual values of node number (45,560) and element number (26,511) from the input file Z88I1.TXT you just created with Z88G and round them up to more useful bigger values. MAXKOI is the product from the element number and the number of nodes per element, in this case 27,000 × 10 = 270,000. Now we proceed as follows: The size of MAXIEZ cannot be estimated a priori. By the way: MAXIEZ is as big as MAXGS but MAXGS can only be determined by Z88R. Hence, for the determination of MAXIEZ or MAXGS, use the solver Z88R with the standard setting SICCG and the test mode and read out 5,165,922 for MAXGS and with it also MAXIEZ, cf. 13.19-3. We round this value to make it a nicer value, e. g., 5,200,000. This is also the value of MAXIEZ. We insert it into the memory control file Z88.DYN: MAXGS MAXIEZ
5200000 (= 5.2 million places in the vector of the structure stiffness matrix) 5200000 (= 5.2 million places in the pointer vector IEZ, cf. chapter 5.2.4)
If you launch the solver immediately in the calculation mode, without having determined the memory consumption before in the test mode, it would not be a problem: If you set this value to be too small, the iteration solver will abort with the error message that you have to raise MAXIEZ. Next you should insert a higher value for MAXIEZ in Z88.DYN and launch Z88R once more. We repeat this until Z88R runs. Otherwise, if you set the value of MAXIEZ to be too large, the only rising problem is the waste of memory space.
Figure 13.19-3: Iteration solver Z88R with SICCG in the test mode: Determine MAXGS and MAXIEZ
642 13 Examples
Now, we use the sparse matrix iteration solver: Now you have to decide which preconditioning you want to work with to run the iteration solver, which works with the process of the conjugated gradients. You can choose between the SOR preconditioning (button SORCG) and preconditioning by a partial Cholesky decomposition (button SICCG). If we remain with the default, this is the partial Cholesky decomposition SIC. We select the parameter RALPHA in the control file Z88MAN.TXT, the so-called shift factor alpha with 0.0001. By the way, this is a quite reliable value, which is, in case of doubt, doubled by Z88R as long as necessary, until the partial Cholesky decomposition was successful. As a maximum, we set 10,000 iterations (parameter MAXIT) and an error limit for the residuum vector of 1E-7 (parameter EPS). If we want to run the solver Z88R once more afterwards, with the other preconditioning SOR, the parameter ROMEGA should be set on 1.0. Please adjust the Z88MAN.TXT in that way. Now, after you prepared Z88.DYN and Z88MAN.TXT in an appropriate way, you can launch the iteration solver Z88R in the calculation mode. Keep the SICCG button as a default. After 551 iterations, we reach the error barrier, as in Figure 13.19-4. Plot the displacements and stresses with Z88O (Figure 13.19-5).
Figure 13.19-4: The iteration solver Z88R ran cleanly in the calculation mode. Run time with 2 GHz PC is approx. 2 minutes
13.19 Four-stroke Engine Pistons with Tetrahedrons No. 16 643
Figure 13.19-5: Deformation of the piston, plotted with Z88O
Figure 13.19-6: Z displacements of the piston, plotted with Z88O
644 13 Examples
Figure 13.19-7: Von Mises stresses, plotted with Z88O
As an alternative, you could try some other shift factors, e. g., 0.001 and 0.1. Further, you could also calculate the problem with the preconditioning SOR; set the parameter ROMEGA in Z88MAN.TXT, which corresponds to the “relaxation factor” ω, to 1.0. Later you should try values of 0.8 and 1.2 for ω. With Z88Aurora, you could run the direct solver, which is exactly right for this structure size: with fill-in Z88R parao (PARDISO solver). It is the fastest one, but needs by far the most memory space because during the run it requests for dynamic storage on and on. With 32 bit Windows, this can become a problem since the requirement is not accessible a priori. If you want to play it safe, choose the iteration solver Z88R -siccg or -sorcg. Particularly with the preconditioning SOR, the memory requirements are minimum, less is not possible. If you first set ω to 1, this is no preconditioning, but “purely” the process of the conjugated gradients. The computing will take longer, but it will practically always lead to success.
13.19.2 With Z88Aurora V2 Create a new Project Directory Create a new project directory
.
Import Nastran Structure Import the example file z88g.nas from z88_examples_z88v14os/b19 as usual, by using the import option “Tetrahedron”. The structure with boundary conditions appears in the OpenGL window. Only the material allocation was removed to keep the internal material database of Z88Aurora consistent.
Assigning Material Use the material aluminum cast alloy AlSi12 from the Z88Aurora material database.
13.19 Four-stroke Engine Pistons with Tetrahedrons No. 16 645
Launching the Calculation Start the calculation with the “PARDISO solver”.
Results
Figure 13.19-8: Stresses in the corner nodes, scaling of 50
Import STL Geometry As in the example 13.8, we import the STL file “bmwpiston.stl” from z88_examples_z88aurora/ b19/STL file.
Generating the Mesh Create a meshing rule for Tetgen, quadratic tetrahedrons, with value “15”. If desired, the mesh can be optimized by refining tetrahedrons (chapter 10.3.2):
1. Define angle 2. Create meshing rule
Figure 13.19-9: Refining tetrahedrons
3. Create mesh
646 13 Examples
Create an element set with the tetrahedrons to be refined. Afterwards press the button pre-processor → super elements. 1. Select set 2. Insert internal angle, e. g. “10” 3. Create meshing rule 4. Create mesh 5. This process needs some time.
Picking and Boundary Conditions According to example 13.8, we use the surface picking for pressure boundary conditions. The piston bosses are summarized in a set by node picking, which is blocked in Z-direction. At one piston boss, the lower edge is hindered to be displaced in all directions. 1. Combustion pressure 5 N/mm2
2. Z- displacement value = 0
3. X, Y, Z- direction, displacement, value ”0“
Figure 13.19-10: Picking the boundary conditions
Assigning Material Use the material aluminum cast alloy AlSi12 from the Z88Aurora material database.
13.20 Motorcar Fan Wheel 647
Launching the Calculation Start the calculation with the “PARDISO solver”.
Results
Figure 13.19-11: Reduced stresses in the corner nodes, undeformed structure
■■13.20 Motorcar
Fan Wheel
This example has approximately one million degrees of freedom, about 320,000 nodes and approx. 200,000 elements of type 16 and can be solved on “normal” PCs (i. e. 32 bit operating systems, 1~2 Gbyte main memory) only with the sparse matrix iteration solver. This example is consciously exaggerated a little bit; actually one will work here with 4-node tetrahedrons instead of the costly 10-node tetrahedrons or use shell elements. One will also downgrade the real CAD structure and delete spare radii and chamfers. But here, this is not possible because: In Pro/ENGINEER the CAD structure was directly and unreflective converted into a FE mesh in Pro/MECHANICA, with the load of 100 N beeing set as an axial load on the fan sheets first. As a material, we use a polymer with E = 1,700 N/mm2, ν = 0.335. For the global maximum of the element size, we provide 3.5 mm, 1 mm for the global minimum of the element size.
648 13 Examples
Figure 13.20-1: Pro/ENGINEER: A fan wheel out of plastic for a passenger car engine
Figure 13.20-2: Pro/MECHANICA: Boundary conditions: Constraint support in the hub, load of 100 N in Zdirection, i. e. axially
13.20 Motorcar Fan Wheel 649
13.20.1 With Z88 V14 The example directory is B20. We will run the calculation with the iteration solver: At first, start the 3D converter Z88G and keep the standard setting “convert into volume elements”. This time we do not need the CuthillMcKee algorithm Z88H since the iteration solver does generally not need the renumbering. Now, set the following in the memory control file Z88.DYN (It is not possible to have exact knowledge of MAXGS and MAXIEZ before the test run of the iteration solver, but we will tell you the values in advance.): MAXGS MAXKOI MAXK MAXE MAXNFG MAXMAT MAXPEL MAXJNT MAXRBD MAXPR MAXIEZ MAXGP
37000000 2000000 320000 200000 1000000 1 1 1 37000 100 37000000 1000000
(= 37 million elements in the global stiffness matrix) (= 2 million places in the coincidence array) (= 320000 nodes) (= 200000 elements) (= 1 million degrees of freedom) (= 1 material group) (= 1 set of element parameters, which is useless in our case) (= 1 set of integration orders) (= 37000 boundary conditions) (arbitrarily, it is not required here) (= 37 million places in the pointer vector) (= 1 million Gauss points for stress display)
Make sure that your computer has enough main memory or virtual memory. You will need approx. 1 GB for this calculation.
Figure 13.20 3: FEA mesh with ~ 1.0 million degrees of freedom
650 13 Examples
Set the control file for the iteration solver as follows: MAXIT
15000
EPS
1E-7
RALPHA
0.0001
ROMEGA
1.2
Start the iteration solver Z88R with SICCG; the shift factor α is 0.0001, as you have seen before. As a reference value of the calculation time, use following observation: PC, AMD Athlon 64 X2 3800+, Windows XP: ~ 2 hours. After approx. 5,290 iterations you are done. If you alternatively worked with the SOR preconditioning, you will need about 7,440 iterations with eps = 1e-7 and ω =1.2 after approximately 2.5 hours of calculation time. If you have a PC with 64 bits and a 64 bits operating system and a lot of main memory, you can try the sparse matrix solver with Fill-In Z88R -parao in Z88Aurora: With a 4-CPU PC with 32 Gbyte memory (!) and the operating system Windows Server 2003, we determine a calculating time of only 15 min. You will detect maximum reduced stresses of ~7 N/mm2. To see the deflections, you should enlarge with a value of 10 each.
13.20.2 With Z88Aurora V2 Create a new Project Directory Create a new project directory
.
Import Nastran Structure Import the example files z88g.nas from z88_examples_z88v14os/b20 with the import option “Tetrahedron”. The structure with boundary conditions appears in the OpenGL window. Only the material allocation is removed to keep the internal material database of Z88Aurora consistent.
Activate Quick View Big components are GPU-intensive. Therefore, it is recommended to use the “quick view” so you are able to rotate and zoom smoothly. This option is located in the tool bar “view I”. For the picking, we have to use the regular mode again.
13.20 Motorcar Fan Wheel 651
ACTIVATE QUICK VIEW
Figure 13.20-4: Activate quick view
Creating Material We create the new material “plastic” with the values E = 1,700 N/mm2 and ν = 0.335.
Launching the Calculation With this example, it is easy to get an overview of the performance of the solvers integrated into Z88Aurora. Just try it out! The boundary conditions are executed in parallel with the iterative solvers SICCG and SORCG as well as with the direct multi frontal sparse solver PARDISO. Nevertheless, solving the equation system on several kernels is only possible with PARDISO.
Editing Solver Parameters We edit the settings of the linear solver already described in chapter 10.1.1 with solver parameter → open. EDIT SOLVER PARAMETER
SICCG
Figure 13.20-5: Solver parameters for SORCG and SICCG
SORCG
652 13 Examples
Results
Figure 13.20-6: Reduced stresses at the corner nodes
Filtering Results To be able to consider critical places or ranges faster, it is recommended to filter the results. With this option you can choose a range in which the results are displayed. The scaling changes accordingly.
Figure 13.20-7: Filtered stresses in the range of 1 N/mm2 to 3 N/mm2
13.21 Diesel Piston 653
■■13.21 Diesel
Piston
This example shows linear tetrahedrons with 4 nodes and square (parabolic) tetrahedrons with 10 nodes in direct comparison. Further, we set loads with the surface load file Z88I5.TXT. Both NASTRAN files were generated in Pro/ENGINEER Wildfire 2.
Figure 13.21-1: Diesel piston of an AUDI engine (simplified)
Figure 13.21-2: Diesel piston with 50 bar load, maximum mesh size of 2 mm
654 13 Examples
Figure 13.21-3: Fine FE mesh of tetrahedrons
The piston was modeled referring to a Diesel piston of an AUDI engine and the load was set arbitrarily to 50 bar = 5 N/mm2. As material we set aluminum alloy with E = 73,000 N/mm2 and ν = 0.33. Of course in reality, other pressures and materials occur but that does not matter right now. We generated a fine structure, by using a maximum mesh size of only 2 mm.
13.21.1 With Z88 V14 Let’s try the same with linear tetrahedrons. The directory we prepared for you is called B21_LIN and Z88.DYN should look like this: COMMON START MAXGS
3600000
MAXKOI
1120000
MAXK
58000
MAXE
280000
MAXNFG
172000
MAXMAT
32
MAXPEL
32
MAXJNT
32
13.21 Diesel Piston 655
MAXPR
5000
MAXRBD
4000
MAXIEZ
3600000
MAXGP
1200000
COMMON END
The surface load file Z88I5.TXT is as follows (please compare this to the chapters 11.4 and 12.17): 4430 Z88I5.TXT, via Z88G V14 NASTRAN 265 +5.00000E+000
731
728
292 +5.00000E+000
344
345
847
525 +5.00000E+000 16105
16106
15009
640 +5.00000E+000 15582
15584
15583
658 +5.00000E+000 15582
15548
15547
817
815
701 +5.00000E+000
812
732
.........
The solver Z88R -siccg needs 89 MB if you use the Cholesky preconditioning with α = 0.0001. Besides, the solver needs 202 iterations and takes about one minute calculation time with a Windows PC. Z88 calculates: σVmax = 35.2 N/mm2
ymax = –0.012 mm
Figure 13.21-4: Stress display in Z88O, tetrahedron No. 17
656 13 Examples
Now, we use quadratic tetrahedrons for the same task. With this, we need following memory standards; the directory we prepared for you is called B21_PARA: COMMON START MAXGS
51000000
MAXKOI
2800000
MAXK
416000
MAXE
280000
MAXNFG
1250000
MAXMAT
32
MAXPEL
32
MAXJNT
32
MAXPR
5000
MAXRBD
12000
MAXIEZ
51000000
MAXGP
1500000
COMMON END
The surface load file Z88I5.TXT is as follows (please compare this to the chapters 11.4 and 12.16): 4430
Z88I5.TXT, via Z88G V14 NASTRAN 5 +5.00000E+000
394
734
610
59815
61330
59813
128 +5.00000E+000
16135
16138
16136
167350
167355
167348
292 +5.00000E+000
15401
15400
15399
162081
162074
162075
369 +5.00000E+000
15319
15302
15317
161397
161396
161503
379 +5.00000E+000
828
833
831
63009
63029
63008
682 +5.00000E+000
15582
15548
15547
163056
163041
163044
.........
The solver Z88R -siccg needs statically 1,340 MB and in addition dynamically 52 MB (you can minimize this about 1/3 by selecting the preconditioning SOR, with ω = 1.2) if you choose the Cholesky preconditioning with α = 0.0001. Besides, the solver needs 668 iterations and takes three quarters of an hour of calculation time with a Windows PC with AMD Athlon 64 X2 3,800+ and 4 GB of memory space. Z88 calculates: σVmax = 36.5 N/mm2
ymax = −0.0128 mm
You can see, the results differ only marginally and the big calculation expenditure for the parabolic tetrahedrons No. 16 was not necessary. But this is exactly what FE specialists do – always select the appropiate elements!
13.21.2 With Z88Aurora V2 Create a New Project Directory Create a New project directory
.
13.22 Calculation of a Stress Concentration Factor 657
Import Nastran Structure Import the example files z88g.nas from z88_examples_z88v14os/b21 by using the import option “Tetrahedron”. The structure with boundary conditions appears in the OpenGL window. Only the material allocation is removed to keep up the consistency of the internal material data base of Z88Aurora.
Assigning Material Use cast aluminum alloy AlSi12 from the Z88Aurora material database.
Launching the Calculation Start the calculation with the “PARDISO solver”.
Results
σvmMax = 38.5 N/mm
σvmMax = 36.2 N/mm
Figure 13.21-5: Reduced stresses, 4 nodes tetrahedrons on the left, 10 nodes tetrahedrons on the right
■■13.22 Calculation
Factor
of a Stress Concentration
With the stress analysis of notched components, the stress concentration factor αk appears, in particular αkz for traction/compression, αkb for bending and αkt for torsion. You can extract the stress concentration factor from the literature, e. g. Decker /96/. But where do these factors come from? They have been determined some time ago in material testing offices and university institutes, either experimentally, by photoelastic study of stress or by calculation: Since the stress concentration factor αk only depend on the geometry and the type of load, in contrast to the notch factor βk, they can be determined with FEA.
658 13 Examples
We want to carry out this determination now, using the shaft shoulder of Figure 13.22-1 which is pulled. D = 240 mm, d = 180 mm, r = 5 mm and t = 30 mm.
Figure 13.22-1: Shaft shoulder
For such a shaft shoulder, we calculate αkz according to the German Institute for Standardization DIN 743 or with /96/ equation 15.66:
αkz = ασ = 1 +
1 0.62 · rt + 7 ·
r d
· 1+2·
r 2 d
= 2.77
13.22.1 With Z88 V14 Since structure and load are axisymmetric, we should work with torus elements, particularly with super elements No. 8. You could create the super structure with 2D CAD according to the rules in chapter 10.5 and then generate the mesher input file Z88NI.TXT with the DXF converter. But this time we will do that by hand: Draw the shaft shoulder on a piece of paper as seen in Figure 13.22-2, divide it into super elements and insert the coordinates and the coincidence list in the mesher file Z88NI.TXT by indicating the division into finite elements number 8. This procedure only takes about one and a half hours and could be a welcome change to CAD programs. The example directory is B22. If you follow these steps while working manually, nothing will go wrong: Draft the shaft shoulder. It is easier with graph paper. Mark the superelements. Assign element numbers and nodes (the order is not important). Insert coincidence in the file Z88NI.TXT – now you can see whether you have forgotten or double assigned a node. Insert the node coordinates into Z88NI.TXT. Insert the first line. Define the element division. Plot and check the correctness of the super structure. Let the mesher Z88N run. Plot the generated structure (is the element division alright?). Plot and read the wanted nodes for the boundary conditions and insert them immediately into the boundary condition file Z88I2.TXT. Complete the files Z88MAN.TXT, Z88INT.TXT, Z88ELP.TXT and Z88MAT.TXT by hand, with the accompanying material file. Calculate (the Cholesky solver Z88R -choly is a good choice).
13.22 Calculation of a Stress Concentration Factor 659
Figure 13.22-2: Shaft shoulder, pencil drawing by hand. We used the original drawing here to make clear how simple it is to solve such problems by hand sketch.
You should start the element division with the super element 7 (Figure 13.22-3): This super element has to be disassembled in a superfine manner since this is the point where the peak stresses appears. If you insert the coincidence as follows: 37-32-23-31-36-27-26-35, the super nodes 37-32 span the local y-axis and the super nodes 37-31 span the local x-axis. You could divide both axes eight times equidistantly.
Figure 13.22-3: Super element 7 with surroundings, pencil drawing by hand. The local coordinate axes arise from the local nodes 1-2 (=x) and 1-4 (=y)
660 13 Examples
After you have divided the central super element 7 to solve our problem, you consider the direct neighbor elements 5, 8 and 10. If you, for example, start the coincidence with 31-23, these nodes determine the local y-axis. This y-axis has to be divided in the same way as the corresponding axis of the super element 7 is, to avoid gaps while creating the mesh. The local x-axis with super element 5 can be divided arbitrarily. Vice versa the local x-axis of the super elements 7 and 8 must be divided identically. At the same time the division of the local y-axis of SE 8 as well as the local x-axis of SE 10 are arbitrary. If these neighbor super elements are defined, we gradually consider the more external super elements. The Figures 13.22-4 and 13.22-5 show this. The meshes are displayed here only for clarification reasons, since in reality, they are generated by the mesher. It is more complicated to describe this process than to carry it out in practice, indeed, it does not take more time than a few minutes.
Figure 13.22-4: Super element 7 with the (mental) mesh division in finite elements
Figure 13.22-5: Connection of the super elements 5, 8 and 10 with their (mental) FE meshes to super element 7
The load type is tension. We clip the bottom side in Y-direction. Now, it is possible to set forces onto the top side, but first you would have to distribute them suitably according to chapter 11.3 and second this would still be wrong: Torus elements contain line loads and the radii of every node on the top side differ. This conversion would be laborious. The easier way is to follow the approach of a tension testing machine: Give displacements on the top side, e. g., uniformly 0.01 mm. On this occasion it does not matter how long the displacements or how big applied forces are, since the stress concentration factor is defined as follows:
13.22 Calculation of a Stress Concentration Factor 661
αk =
σmax σnominal
You just have to read out these stresses from the stress file Z88O3.TXT, for example for the maximum stress with the element 285 in the maximum radius, very near to the surface. We choose an average of the stresses of one or several elements for the nominal stress, because the “nominal stress” is not consistent along the radius. This would only be possible with the idealized assumptions of the classical science of the strength of materials. Since in this case we are talking about the basic approach, we choose element 455 as a representative element for the nominal stresses, which is far enough from disturbance zones like edges (if you select other elements, you will receive absolutely different results!). How do you get to choose these elements? Plot the stresses and determine, which element could represent the maximum stresses the most and which element could represent the nominal stresses the most (Figure 13.22-6). The next question is almost a little philosophical: Which stresses do you consider, the tensile stresses σZ or the reduced stresses σV? And if you consider reduced stresses, which hypothesis do you use? Though it is mentally an uniaxial state of stress, however, in reality three-dimensional states of stress caused by lateral contraction appear (cf. chapter 3): ν ν 1 0 εr σr 1−ν 1−ν ν ν 1−ν σθ 1 0 E(1 − ν) 1−ν εθ 1−2ν εz σz = (1 + ν)(1 − 2ν) 0 0 0 2(1−ν) ν ν τrz γrz 0 1 1−ν 1−ν If you examine the stresses of the elements in the notch area, you will find out, that beside the tensile stresses σZZ, substantial radial stresses σRR and shear stresses τRZ appear . The question of the stress hypothesis is right at first, but actually it is a contradiction in itself, since stress concentration factors are independent from the material and also from the choice of a stress hypothesis according to the definition. However, to carry out a finite element analysis, you have to assign a material and choose a convenient stress hypothesis. If we set ductile steel with E = 206,000 N/mm2 and ν = 0.3, the von Mises is the right hypothesis:
αkz =
σV,Element 285 35.5 = = 2.75 σV,Element 455 12.9
In comparison to the official formula of the German Institute for Standardization DIN 743, the error would be very small, but also with formulas of the literature you never know exactly under which conditions they were defined and how up-to-date they really are. Moreover, we embedded a small error, inherent to the system: We displayed the radius, which is defined by the super nodes 32-36-37, by one single super element of type 8, i. e. with square approach. With a square polynomial we cannot exactly illustrate a 90° arc; it would have been better to take two super elements of type 12 (cubic approach). Which diametric quotients would we have with radii of 2 mm and 3.5 mm? It is very easy to carry out this study now, since we only have to change the super structures a little, namely the nodes 27, 32, 35, 36 and 37. With a small sketch, you can easily determine the changed values, whether by hand or by using a CAD program (see Table 13.22-1).
662 13 Examples
Table 13.22-1: Coordinates of the nodes that have to be changed
Nodes 27 32 35 36 37
R=5: X 92.5 95 85 91.5 90
R=5: Y 90 85 82.5 83.5 80
R=2: X 91 92 85 90.5 90
R=2: Y 90 85 84 84.5 83
R=3.5: X 91.75 93.5 85 91 90
R=3.5: Y 90 85 83.25 84 81.5
If you choose the same elements of reference as before, you will receive the following values according to Table 13.22-2. Table 13.22-2: Reduced stresses and stress concentration factor with different radii R
σVmax σVmin αkFEA αkDIN743
R=5 35.5 12.9 2.75 2.77
R=3.5 39.9 12.9 3.09 3.13
R=2 46.8 12.9 3.63 3.86
Figure 13.22-6: Plot of the reduced stresses of the notch case, R = 5 mm
The benefit of this approach is that you draw the super structure by hand or with the CAD program once and carry out the variation of the notch radius only by editing the five affected nodes in the mesher file Z88NI.TXT. Then you run the mesher Z88N and calculate displacements and stresses while the boundary conditions never change. The files you need for this project (if you do not want to generate them by yourself as an exercise): B22_NI.TXT: Mesher file of the source structure, R = 5 mm B22_NI_R2.TXT: Mesher file, R = 2 mm B22_NI_R3K5.TXT: Mesher file, R = 2 mm
13.22 Calculation of a Stress Concentration Factor 663
B22_2.TXT: Boundary condition file B22_X.DXF: If you want to work with a CAD program by yourself.
13.22.2 With Z88Aurora V2 Create a new Project Directory Create a new project directory
.
Import Z88 V14 OS Structure File Z88I1.TXT Select and import the example file Z88I1.TXT in z88_examples_z88v14os/b22.
Node Picking Choose the upper and the lower edge and define a node set in each case.
Boundary Conditions 1. Set: Displacement, “support_Y”, Y-direction, value “0” 2. Set: Displacement, “displacement”, Y-direction, value “0.01” Y-direction, displacement, value ”0.01“
Select node areas
Y-direction, displacement, value ”0“
Figure 13.22-7: Node picking to set boundary conditions
+
664 13 Examples
Assigning the Material Use structural steel S235JR from the Z88Aurora material database.
Lauchning the Calculation Start the calculation with the “PARDISO solver”.
Results
Figure 13.22-8: Plot of the reduced stresses in the Gauss points
■■13.23 Gear
Root Stress
The calculation of the bearing capacity of gears is one of the most demanding tasks of the machine element calculation and this example should show how one can get an overview, at least qualitatively. A “complete” calculation of the bearing capacity as in DIN3990 would go beyond the scope of this book and we take mere static stress and an ideal geometry (no misalignment or crowning etc.) as a basis. The mechanical resistance of the gear root (cf. Figure 13.23-1) should be analyzed. The exact dimensions of the gear are imagined, however, the geometric proportion should be alright.
13.23 Gear Root Stress 665
Figure 13.23-1: Gear root stress (cf. /96/)
With these assumptions, the gear can be modeled as a plane stress element problem: First a gear segment is designed as a super structure. Here, the following process was applied: The drawing was made by hand (which is easier done manually than in a CAD program due to the evolvents), the super structure division was carried out, then the sketch was scanned and added as an image in AutoCAD. Afterwards the procedure of chapter 10.4 is used; now the work can be done very fast with the image as a model. It is “digitized”. The CAD converter Z88X creates the mesher input file Z88NI.TXT. The mesher Z88N generates the FE mesh (Figure 13.23-2). We select the boundary conditions as follows: In the left, lower and right edge the structure is fixed in X and Y direction, and on the right upper corner of the gear on the element 512 a surface load of 10,000 N/mm2 is applied. Because the surface load by definition is normal to the surface, no more decomposition in X and Y components needs to be carried out.
Figure 13.23-2: Model of a gear segment in AutoCAD®
666 13 Examples
13.23.1 With Z88 V14 The deflection calculation can take place without changing the node numeration with Z88R in Cholesky mode, because the mesh generated by Z88N, as expected, is good-natured. In the stress calculation, we choose the reduced stresses of the Tresca theory, so we can directly compare the stresses to Figure 13.23-5 according to Niemann /111/. Z88R calculates these stresses: Gear root, pressure side: ~ 188 N/mm2, Gear root, tension side: ~ 151 N/mm2. This is a ratio of 188/151 = 1.24, which corresponds exactly to the ratio of the stresses of Figure 13.23-5 with 15.5/12.5 = 1.24. So our FE calculation, as simple as it might be, at least is qualitatively correct. The following directory is prepared for you: B23. You should not try to apply concentrated loads instead of the surface loads on the gear. This of course works theoretically, but because you have Hertzian contacts in reality, a concentrated load leads to stress peaks, which in reality are non-existent. A surface load doesn’t represent the Hertzian contact stress, which one assumes in the calculation of the bearing capacity with the model cylinder/cylinder, accurately either, nevertheless, it is certainly closer to the truth as a concentrated load. Although the load division of 1/6 on the corner nodes 1,637 and 1,639 as well as 2/3 on the center node 1,638 (which is done automatically by the load vector routine in Z88) might not be so wrong at all.
Figure 13.23-3: FE structure of the gear segment
Figure 13.23-4: Boundary conditions of the gear segment: On top on the right (element 512) a surface load is applied
13.23 Gear Root Stress 667
Figure 13.23-5: A photoelastic shot (cf. Niemann /111/): “The numbers 1 to 15.5 on the isolines of the Tresca stress are proportional to the stress. The break off of the gear is to be expected on the tension side (Stress on the edge 12.5)”
Figure 13.23-6: Reduced stresses (Tresca hypothesis); tension side: ca. 151 N/mm2, pressure side: ca. 188 N/mm2
668 13 Examples
13.23.2 With Z88Aurora V2 Create a new Project Folder Create a new project folder
.
Import Z88 V14 OS Structure File Z88I1.TXT Select and import the example file Z88I1.TXT in z88_examples_z88v14os/b23.
Define Plate thickness As in example 13.1, the plane stress element thickness in the element parameter menu is defined for all elements as “100”.
13.23.2.1 Displaying the element numbering
SHOW ELEMENT NUMBERS
UNDO LABELLING
SHOW ELEMENT INFO
Figure 13.23-7: Display of element numbering and element information in the analysis tool
13.23 Gear Root Stress 669
Node Picking Create two sets as in Figure 13.23-8.
Figure 13.23-8: Boundary conditions with node picking
Boundary Conditions 1. Set: displacement, “fixation_XY”, X, Y direction, value “0” 2. Set: pressure, “pressure”, value “56000”
Create the Material Use structural steel S235JR in the Z88Aurora material database.
Start Calculation Start the calculation with the “PARDISO solver”.
670 13 Examples
Results
Figure 13.23-9: Display of results, stresses per element
■■13.24 Square
Pipe, Shell No. 24
We consider a square pipe 300 × 270 × 1,000, which is twisted at the end by 0.12°. Of course this example can be computed with volume elements, but because the wall thickness is relatively small in comparison to the other dimensions, shell elements offer a good alternative. On every edge, a radial force of 100,000 N is applied; the material is steel. Analytically one calculates: ϕ= IT =
T·ℓ G · IT
2
2
4(bh) 4(285 · 285) = = 3.47 · 108 285 285 b h 2 + 2 t1 + t2 15 15
285 = 5.7 · 107 2 E 206,000 G= = = 7.9 · 104 2 (1 + ν) 2 (1 + 0,3) T = 4 · F · r = 4 · 1 · 105 ·
ϕ=
5.7 · 107 · 1,000 = 0.0021 rad ≈ 0.12◦ 7.9 · 104 · 3.47 · 108
13.24 Square Pipe, Shell No. 24 671
Figure 13.24-1: Dimensions of the square pipe
Figure 13.24-2: Model in Pro/ENGINEER
13.24.1 With Z88 V14 After the conversion of the NASTRAN file (directory B24) with Z88G, the structure and the boundary conditions can be displayed in Z88O (Attention: switch to Wireframe, see Figure 13.24-3).
672 13 Examples
Figure 13.24-3: Shell structure with boundary conditions in Z88O
The nodes 1 and 2 are corner nodes; Z88O2.TXT: UX = UY = 0.294 mm. Check (cf. sketch at the beginning of the example): U2X + U2Y s 0.2942 + 0.2942 √ ϕ= = = = 0.021 ≈ 0.12◦, this is correct. r r 0.5 · 285 · 2
Analytically, one calculates according to Szabó, I.: Höhere Technische Mechanik, p. 306 to 309: The St.Vénant part: τ St = 2. 45 N mm2 The Bredt part:
τ B = 23. 31 N mm2
Thus, the shear stress on the outline becomes: τ a = τ B + τ St = 23. 31 + 2. 45 = 25. 7 N mm2 This is the pure stress of torsion. Now we’ll compute the reduced stresses according to von Mises: Von Mises: σ V = 3 ⋅τ T2 = 3 ⋅ 25. 7 = 44.5 N mm2 Z88Aurora shows ~ 45 N/mm2, this sounds very good. You may also calculate the reduced stresses according to Tresca: Tresca: σ V = 4 ⋅τ T2 = 4 ⋅ 25. 7 = 51. 4 N mm2 Z88Aurora shows ~ 51.6 N/mm2, this fits very well, too.
13.24 Square Pipe, Shell No. 24 673
Note that you must set IHFLAG in Z88MAN.TXT to 1 in this example.
Figure 13.24-4: Displacements and reduced stresses (von Mises) for the square pipe
Note that shell calculations are even worse than plate calculations. The interpretation of the results is often rather tricky: To this day, there is still no shell element or even shell theories, which are suitable for all shell problems. If you doubt this or want to explore this matter further, we recommend the standard works of Timoshenko/Woinowsky-Krieger /37/ and Girkmann /113/ and additionally Chapelle/Bathe /70/ as well as Hughes/Hinton /72, 73/.
13.24.2 With Z88Aurora V2 Create a new Project Folder Create a new project folder
.
Import Z88 V14 OS Structure File Z88I1.TXT The example file is imported into the import menu as “Z88 file” → “structure data z88i1.txt” from z88_examples_z88v14os/b24. Select the file “z88i1.txt”. ATTENTION: With the lighting settings and orientation in the OpenGL window, it might be the case that you do not see the structure at first. Please rotate the part slightly out of the standard orientation.
674 13 Examples
Node Picking Switch to the picking menu and “node picking” and create five node sets, one for the constraint “constraint” and four for the radial forces “plusX”, “minusX”, “plusY” and “minusY”. For picking the edges of the pipe, use the function “edge”. With the constraints, increase the selection angle around the circumferential edge. ”constraints“
”plusY“
”minusX“
Y
Y
Z X
Z
X
X
”minusY“
”plusX“
Edge
+ picking one node
Y
Z
select whole edge
Y
Y
Z
Z
X
X
Figure 13.24-5: Picking of node sets for boundary conditions
Boundary Conditions The square pipe is loaded as follows (Figure 13.24-6): Fixation along the edge
Y Z
transverse force per edge 100,000 N
X Figure 13.24-6: Boundary conditions of the square pipe
Button Pre-processor → Define constraints → In the context menu boundary conditions are assigned to the node sets. The radial forces are applied as “line loads”. The complete force is distributed to all picked nodes so that a constant line load is applied to the length of the edge. The
13.24 Square Pipe, Shell No. 24 675
force is distributed according to the FE rules of “distributed loads” and according to the lengths of the loaded element edges. Z88Aurora takes over this force distribution for the user. So the user only has to insert the value of the complete force that should be applied to the line. The “line load” is described closer in Figure 13.24-7.
Figure 13.24-7: “Line load” in Z88Aurora V2
1. Fixed constraint: Set “constraint”, direction X, Y, Z, “displacement”, Value “0”, name “fixed”. 2. Apply force: Set “plusX”, direction X, line load, value “+100000”, name “plusFX”. 3. Apply force: Set “minusX”, direction X, line load, value “−100000”, name “minusFX”. 4. Apply force: Set “minusY”, direction Y, line load, value “−100000”, name “minusFY”. 5. Apply force: Set “plusY”, direction Y, line load, value “+100000”, name “plusFY”.
Assign the Material Use the material structural steel S235JR in the Z88Aurora material database.
Thickness of the Shell Define a shell thickness of “15”
Thickness .
Results The PARDISO solver delivers the following total displacements and stresses in the corner nodes (Figure 13.24-8):
Figure 13.24-8: Display of results: Total displacements
676 13 Examples
Figure 13.24-9: Display of results: Reduced stresses (von Mises) in the corner nodes
The nodes 1 and 2 are corner nodes; “Post-processor” → “output files” “Z88O2. TXT”: UX = UY = 0.294 mm. Check (cf. sketch at the beginning of the example): U2X + U2Y s 0.2942 + 0.2942 √ ϕ= = = = 0.021 ≈ 0.12◦, this is correct. r r 0.5 · 285 · 2 Analytically, one calculates according to Szabó, I.: Höhere Technische Mechanik, p. 306 to 309: 2 The St.Vénant part: τ St = 2. 45 N mm
The Bredt part:
τ B = 23. 31 N mm2
2 Thus, the shear stress on the outline becomes: τ a = τ B + τ St = 23. 31 + 2. 45 = 25. 7 N mm
This is the pure stress of torsion. Now we’ll compute the reduced stresses according to von Mises: 2 2 Von Mises: σ V = 3 ⋅τ T = 3 ⋅ 25. 7 = 44.5 N mm
Z88Aurora shows ~ 45 N/mm2, this sounds very good. You may calculate also the reduced stresses according to Tresca: 2 2 Tresca: σ V = 4 ⋅τ T = 4 ⋅ 25. 7 = 51. 4 N mm
Z88Aurora shows ~ 51,6 N/mm2, this fits very well, too.
13.25 Submarine made of Shells No. 22 677
■■13.25 Submarine
made of Shells No. 22
A submarine („U-boat“) of class 212A of the German Navy, which was constructed as a shell structure in Pro/ENGINEER is imported into Z88Aurora with the help of NASTRAN and thickened to a volume shell. We calculate the deformation and the stresses of the submarine body at a diving depth of 50 meters. The submarine is in a state of poise in the water. This is why we fix it in Z88Aurora with a virtual fixed point, “floating” in the space.
Figure 13.25-1: Geometry of the submarine designed in Pro/ENGINEER
Create a new Project Directory Create a new project directory
.
Import NASTRAN The example file u-boat.nas from z88_examples_z88aurora/b25/Nastran-File is imported as a NASTRAN file with the import object menu. Select the import option “shell”.
Modelling the FE Structure out of Superelements In the next step, we want to mesh the conventional shell structure of the submarine to volume shells. Switch to the Pre-processor menu → Super elements. The volume shell structure should be 20 mm thick: 1. Set thickness: Value “20”. 2. Administration: “Add” the new meshing rule. 3. Generate FE structure: “Create mesh”.
678 13 Examples
Clipping menu
Conventional shell hell Clipping Clipping menu
Volume shell
Thickness 20 mm
Figure 13.25-2: Modelling the volume shells
Clipping With the help of the clipping function we can control that the conventional shell structure has been thickened to volume shells. Clipping Suppress part sections in the current view
Flip direction n of cutting g
Figure 13.25-3: Clipping menu
S Suppress in X X-, Y-, Zdirection
13.25 Submarine made of Shells No. 22 679
Assigning the Material Use structural steel S235JR from the Z88Aurora material database.
Surface picking – Node picking Switch to the “picking context menu” and “node picking” and set to node sets, called “X_direction” and “Z_direction”, for the virtual fixed point. Besides, the surface set “shell surface” has to be created. This surface set represents the whole exterior surface of the submarine and contains the boundary condition of pressure. Select a surface facet in the context menu “surface picking”, put the slider for selecting the “angle” to value “50” and pick the whole exterior surface by using the button “surface”. Z_Direction Nodes 92424, 92431 and 92433
X_Direction Nodes 92476 and 93022
Figure 13.25 4: Node sets for virtual fixed point
Boundary Conditions Button Pre-processor → assigning boundary conditions → In the context menu, we assign boundary conditions to the node sets and the surface set. A hydraulic pressure of 0.5 N/mm2 is set to the whole shell surface. The node sets are fixed in a way that guarantees statically defined support but lets the submarine “freely” flow in the water.
680 13 Examples
1. Support: Set “Z_direction”, direction X, Y, “displacement”, value “0”, name “XY_locating_support”. 2. Support: Set “X_direction”, direction Y, Z, “displacement”, value “0”, name “YZ_locating_support”. 3. Pressure: Set “shell surface”, pressure, value “0.5”, name “hydraulic_pressure”.
„XY_fixed“: displacement in X-, Y-direction = 0
„YZ_fixed“: displacementt iin Y-, Y Z Z-direction di t =0
„Waterpressure“: “ pressure, 0.5
Figure 13.25-5: Boundary conditions
Launching the Calculation Start the calculation with the “PARDISO solver”.
Outputs The PARDISO solver delivers following displacements and stresses in the corner nodes:
Figure 13.25-6: Display of the results: displacements
13.25 Submarine made of Shells No. 22 681
Figure 13.25-7: Display of the results: reduced stresses in the corner nodes according to von Mises
Figure 13.25-8: Display of the results inside the submarine: reduced stresses in the corner nodes according to von Mises
682 13 Examples
■■13.26 Gear
Wheel out of Tetrahedrons No. 17
In this example, we import and calculate a gear wheel in Z88Aurora, which is given as an ABAQUS.INP file. The calculation is carried out with static load and does not replace a stress calculation according to the German Institute for Standardization DIN 3990. The gear wheel is straight geared and has involute tooth flanks without any gearing deviation. The gear body is provided with ribs for weight reasons. The gear wheel contains 30 teeth, a module of 5 mm, an angle of action of 20 ° and a pitch circle diameter of 154 mm. We load the gear wheel with a torque of 160 Nm.
Figure 13.26-1: Geometry of the gear wheel in ABAQUS
Create a new Project Directory Create a new project directory
.
Import ABAQUS-INP Read in the example file gearwheel.inp from z88_examples_z88aurora/b26/Abaqus-File.
Node Picking Switch to the picking menu, select “node picking” and set three node sets, one for the support position “support” and two for the normal forces along the width direction of the tooth flank. We need two node sets, “Load_x” and “Load_y”, with the same picked nodes, to split the normal
13.26 Gear Wheel out of Tetrahedrons No. 17 683
force into components. The “support” can be picked by selecting a node of the support area and pressing the button “surface”.
Figure 13.26-2: Picking of node sets for boundary conditions
Boundary Conditions Press the button pre-processor → assigning boundary conditions. In the context menu, we assign boundary conditions to the node sets. We set the normal force as a line load along the contact line of the tooth flank. It is calculated from the torque and the direction of the perpendicular along the contact line. Frictional effects can be disregarded. 1. Support: Set “Support”, direction X, Y, Z, “displacement”, value “0”, name “fixed_support”. 2. Apply load: Set “Load_x”, direction X, line load, value “−2170”, name “line_load_x”. 3. Apply load: Set “Load_y”, direction Y, line load, value “−673”, name “line_load_y”. With selecting the option “Line load”, we do not need to calculate the single force ratios of the FE nodes along the contact line of the tooth flank. The load we set under “value” is distributed to the selected FE nodes, according to the approach of the FEA with distributed loads. In addition, the lengths of the loaded finite elements are important for the force distribution. This is how a constantly distributed load along a line can be guaranteed.
684 13 Examples
Figure 13.26-3: Line load and support
Creating the Material Use structural steel S235JR from the Z88Aurora material database.
Launching the Calculation Start the calculation with the “PARDISO solver”.
Outputs The application of the load as a line load (constantly distributed load) causes a consistent displacement along the whole width of the tooth flank. The maximum reduced stresses according to GEH occur in the ribs at the transition to the hub. Depending on which tooth you use to set the line load, the results change slightly, since the distance between the tooth and the internal reinforcement of the gear wheel is of importance.
13.27 Oscillating Drum 685
■■13.27 Oscillating
Drum
A popular example for the analysis of natural frequencies, because it is also analytically computable, is the swinging head of a drum. Since it has to be struck only once and the tone develops with the balance of inertia and resets force of the head, it is a real natural frequency. Besides, the attachment of the head at the drum allows only certain shape vectors, which are described by well-known mathematical functions. We want to simulate these shapes now with the FEA.
Fixation
Fixation
Fixation
Figure 13.27-1: Fixed head of a bass drum
With this, we use a FE mesh of linear hexahedrons, whose margin nodes are blocked in all directions on the bottom side of the drum head. This idealization may differ from the drum head in reality, which is very thin and under initial load. Since the relevant form vectors have to be standardized because of the absence of information about the oscillation amplitude, this approximation is completely sufficient. Figure 13.27-2 shows the used model of a bass drum: Diameter 500 mm, thickness 2 mm, E = 2,600 N/mm2, ν = 0.39, density ρ = 1.13e-9 t/mm3.
Create a new Project Directory Create a new project directory
.
Import Z88 Geometry File Select the example file drum.txt from z88_examples_z88aurora/b27/Import-File and import it into the import context menu as a Z88I1 file.
Assigning the Material Select polyamide 6.6 in the database for all elements and close this dialogue.
Node Picking Switch into the picking menu, select “node picking” and apply a node set with the name “fixed_support”, which contains all nodes of the upper or (!) lower side of the edge face. The easiest way to achieve this, is the edge function. At first, select a single node on the edge and press the button “edge”. The algorithm extends your choice to the whole ring.
686 13 Examples
Figure 13.27-2: Edge selection for boundary condition set
Boundary Conditions Now, the set we just created is fixed, as usual, in all three directions: the given displacements should be zero, the name of the boundary condition is “fixed_support”. It is not allowed to set forces or pressures. A free natural frequency distinguishes itself by the fact that only stiffness and dimension characteristics influence the simulation.
Solver If you did not do it before, choose the simulation option “Free vibration” now. The suitable button is located exactly under the menu bar. If you now press the solver button, the window which you can see in Figure 13.27-3 opens.
Figure 13.27-3: Parameter setting of the free vibration solver
13.27 Oscillating Drum 687
You have the possibility to parameterize the solver according to your needs and wishes. Nevertheless, the standard settings proved themselves in most cases. As soon as you press “start calculation”, the calculation launches. The calculation of natural frequencies needs more time than static calculations. If you want to track the process, switch to the DOS panel of Z88Aurora.
Results After the successful calculation, you are able to examine the results in the post-processor. In the upper table you will find the number of frequencies you specified with the solver parameters. For each “Increment”, the frequency is given in Hertz. If you select one of the entries, and, for example, select “Deflected” and “whole displacement”, the so-called mode form vectors are displayed as displacements. The smallest natural frequency of our drum is 55.0 hertz, the deflection seems to be plausible.
Figure 13.27-4: Post-processing the results
Now, we want to take a look at the analytic solutions once more. As we already announced, there are special functions for exactly this case: the so-called Bessel functions. Figure 13.27-5 shows the solutions of the first (smallest) six natural frequencies, calculated with Z88 on the left as well as a plot of the Bessel functions of n-th type or k-th order on the right.
688 13 Examples
Results Z88Aurora
Bessel function frequency 1: 55 Hz
n = 0, k = 1 (0, 1) mode
frequency 2: 132 Hz
n = 1, k = 1 (1, 1) mode
frequency 3: 207 Hz
n = 2, k = 1 (2, 1) mode
frequency 4: 301 Hz
n = 3, k = 1 (3, 1) mode
13.28 Modal Analysis Crankshaft 689
Results Z88Aurora
Bessel function frequency 5: 378 Hz
n = 4, k = 1 (4, 1) mode
frequency 6: 485 Hz
n = 1, k = 2 (1, 2) mode
Figure 13.27-5: Comparison of results: Z88Aurora versus analytic solution
The correspondence with the courses of the analytic Bessel functions is obvious, even if small mesh-conditioned deviations from the perfect symmetry can be realized. Which mode really influences the sound of the drum in which dimension, stays open. Nevertheless, with singular stimulation, we can assume that the smallest natural frequency of 55 hertz is dominant. This is a very usual value for these instruments.
■■13.28 Modal
Analysis Crankshaft
With the mechanical engineering, the form vectors of the natural frequencies often do not matter. More important is the question, if cyclically appearing loads are generally able to cause resonances. If this is the case, it is not possible to make sure that the component resists the loads. For example, the crankshaft in combustion engines is cyclically loaded with different frequencies during its whole lifetime. With a motorcycle, none of the natural frequencies should be below 200 Hertz (respectively 12,000 rpm). If this is guaranteed for the crankshaft of example 11, we want to check in the following.
690 13 Examples
Create a New Project Directory Create a new project directory
.
Import Z88 Geometry File Import the example file crankshaft_small.txt from z88_examples_z88aurora/b28/Import-File as a Z88I1 file in the import context menu. Although the file is only roughly discretized, we can generate results of high quality.
Figure 13.28-1: Mesh of tetrahedrons of the motorcycle crankshaft
Assigning the Material Use “mechanical engineering steel” for the crankshaft. Since this material does not yet exist in the Z88Aurora database, we have to create a new material with the specific values E = 215,000 N/mm2, ν = 0.3 and ρ = 7.83e-9 t/mm3.
Boundary Conditions A characteristic of the simulation of natural frequencies is that we do not need fixing boundary conditions at all. As a consequence, the component will be statically undetermined, but with the modal analysis a static calculation is not necessary. In this example, we do not define any boundary conditions at first. If you proceed in a different way, the simulation will be successful anyway. In most cases, the smallest frequency values grow by the setting of fixings. The claim that the frequency band of the unrestricted structure should avoid certain areas, is now stricter.
13.28 Modal Analysis Crankshaft 691
Solver We switch to the manner of simulation kind “Free vibration”. If the stop criterion, defined by parameterization, does not interrupt the iteration we would have to tridiagonalize maximally 20,478 lines/columns or 100% of the EVP system matrix in theory. If you did not edit the standard values, the eigenvalue solver will successfully complete the calculation earlier, after 38.9% of the maximum calculation time. After this first iterative phase, we start the assigning of the shape vectors: For each one of the requested natural frequencies, there is a solution of the equation system.
Results To consider the results, after calculation was effected, we switch to the post-processor. Especially notable is the appearance of a so-called rigid body mode. In these cases, the solver calculated an eigenvalue close to zero. With this, the component executes (almost) no relative movements, which makes this mode basically no real eigenmode. We can say: Stiffness and inertia influences are balanced in a trivial way while the component as a whole is at rest or in motion.
Figure 13.28-2: The first natural frequency is a rigid body movement
The first technically relevant natural mode appears at a frequency of 1,400 hertz. All of the cyclic stimulations with a clearly smaller frequency can be treated as innocuous. Figure 13.283 shows the deflections of the first seven natural frequencies. All the exact frequency values as well as all displacement values are located in the output file Z88O2.TXT. which is set during calculation.
692 13 Examples
Initial mesh
Rigid body mode –1.#IND Hz
1st Mode: 1,404 Hz
2nd Mode: 2,115 Hz
3rd Mode: 3,210 Hz
4th Mode: 4,900 Hz
5th Mode: 6,855 Hz
6th Mode: 8,639 Hz
7th Mode: 11,056 Hz
Figure 13.28-3: Smallest seven natural frequencies and forms of the crankshaft
■■13.29 Thermo-mechanical
Spoon
Analysis of a
“Suppenkaspar” tastes a new packet soup from “Hoffmann’s best”; we simulate the heat conduction of the soup on the spoon. “Suppenkaspar” holds the spoon with his hand and dips it into the soup. The hand brings in a certain temperature at the handle, the soup generates a heat flow in the bowl of the spoon, which is emitted to the surface of the bowl. The material of the spoon
13.29 Thermo-mechanical Analysis of a Spoon 693
is X5CrNi-15/10 stainless steel with the material parameters: E = 200,000 N/mm2, ν = 0.29, density ρ = 7.85e-9 t/mm3, λ = 0.015 W/ (mm K) and α = 16*E-06 1/K. The spoon was designed in Pro/Engineer Wildfire 5.0, and imported into Z88Aurora as a .stl file and meshed.
Figure 13.29-1: Geometry of the spoon in Pro/Engineer Wildfire 5.0
Create a new Project Directory Create a new project directory
and switch the button “Linear mechanical” for mechanical
calculation to the button “Steady-state thermal” for thermal calculation. Linear mechanical
Steady-state thermal!
Figure 13.29-2: Change the module from “Linear mechanical” to “Steady-state thermal”
Import STL File Import the example file spoon.stl (ASCII) from z88_examples_z88aurora/b29/STL file into the import context menu.
Meshing We mesh the geometry with the mesh generator Tetgen using linear tetrahedrons and a maximum edge length of 2.
694 13 Examples
Figure 13.29-3: Meshing of the spoon with Tetgen
Node Picking Switch into the picking menu and choose the option “node picking”. Create three node sets: the pinned constraint “Fixed”, the temperature of the hand “Hand” and the heat flow, distributed to the surface of the bowl, which represents the soup “Soup”. For the pinned constraint and the temperature of the hand we need two node sets with the same picked nodes. To create two sets with the same picked nodes, you have to click the button “Add set” twice after selecting the nodes. A renaming of the sets is possible after that. The nodes of the spoon bowl are picked by selecting one node and using the angle control for surfaces. An angle of 20° is a good choice in this case.
13.29 Thermo-mechanical Analysis of a Spoon 695
select node areas
fixed with a hand
+
soup
surface
+ pick one node
picked whole surface
Figure 13.29 4: Picking the node sets for boundary conditions
Boundary Conditions Press the buttons Pre-processor → Constraints Define. In the context menu, we assign boundary conditions to the sets. The load (we set) is the heat flow that is generated by the warm soup. This heat flow (0.2 W) is distributed to all nodes of the set, as the distributed load with linear mechanical mode. We assign a pinned constraint (displacements = 0) and a temperature of 0°C to the other sets. Stop. Why 0°C? We apply a small trick here. In this example the thermo-mechanical deflections and stresses are extremely interesting. Since we fix a point on the handle and assign a temperature at the same time, the thermal strains at this point would cause tensions, which are too high and which would be unrealistic. To neglect the thermal strains that would arise from a temperature gradient, we set the temperature to 0°C. This situation is easier to understand if you imagine two temperature boundary conditions. In the bowl of the spoon, e. g., we would set approx. 70°C and in the handle 20°C. The difference is 50°C. Now we can assign 50°C instead of 70°C in the bowl as well as 0°C instead of 20°C in the handle to the sets. With this, the thermal strains at the handle are set to zero and a realistic stress can be generated. In general, it does not make any difference for the analysis whether the temperature is given in the unit Kelvin or °Celsius. However, for a better understanding we advise to choose °Celsius. 1. Set “Soup”: Heat flow (distributed) = 0.2 W 2. Set “Hand”: Temperature = 0°C 3. Set “Fixed”: Displacement X, Y, Z = 0
696 13 Examples
A consideration of the directions is not necessary. In contrast to the linear mechanical mode, the finite elements in the thermal analysis have only one instead of three or six degrees of freedom (see chapter 4.10). fixed
mode thermal
heat flow
soup
Figure 13.29-5: Boundary conditions for heat flow, temperature and pinned constraint
Creating the Material One of the typical materials for cutlery is stainless austenitic chrome nickel steel. This steel and its material parameter do not exist in the Z88Aurora material database, hence, we have to create and add it to the database.
5. Select material a and assign tto part
2. Enter name 2
1 Add new 1. material m
3. Young‘s modulus, Poission‘s ratio, P heat conductivity h and heat expansion a
6. Close menu 6 4. Exitt with OK
Figure 13.29-6: Creating the material for thermal calculations
13.29 Thermo-mechanical Analysis of a Spoon 697
Starting the Calculation Start the calculation with the “PARDISO solver”. First of all, make sure that the correct type of analysis is selected.
Results The heat flow at the bowl generates a temperature. With the given temperature of the hand, a constant, stationary temperature distribution appears in the spoon. The pinned constraint at the handle and the temperature gradient cause constant expansion in the Z-direction. At the edge of the pinned constraint and at the transition from the handle and bowl, the stresses are the highest.
Figure 13.29-7: Displaying the results: Temperature
Figure 13.29-8: Displaying the results: Displacements
698 13 Examples
Figure 13.29-9: Displaying the results: Reduced stresses at the corner nodes according to GEH
■■13.30 Thermal
Analysis of a four-stroke Engine Piston
In this example, the piston of a four-stroke engine from example 8 (Figure 13.8-1) is investigated concerning its temperature distribution during a combustion. We assume a combustion temperature of approximately 450 °C at the piston top side. The piston bottom has a temperature of approximately 300°C. The material is an aluminum alloy with a heat conductivity of 0.19 W/(mm K).
Create a new Project Directory Create a new project directory
and switch to the thermal mode “stady-state thermal”, as
we already described in example 29.
Import STL File Import the example file z88thermo_piston.stl from z88_examples_z88aurora/STL file.
Meshing Mesh the geometry with the mesh generator Netgen, using quadratic tetrahedrons with a maximum edge length of 15.
13.30 Thermal Analysis of a four-stroke Engine Piston 699
Node Picking Because of the relatively non-uniform shaped surface at the bottom side of the piston you have to select the single subareas first and set them as a mark to create a set out of the marks afterwards. We recommend an angle of 20° for the angle control of the surface. Please make sure to mark corner nodes instead of middle nodes for the surface selection.
Figure 13.30-1: Set at the bottom side of the piston
With the set for the piston surface, we pick one single node in the center and choose an angle of 10° for the angle control of the surface. Please make here also sure to mark corner nodes instead of middle nodes.
700 13 Examples
Figure 13.30-2: Set for the piston top side
Assigning the Material Use the material aluminum cast alloy AlSi12 from the Z88Aurora material database.
Boundary Conditions We set a surface temperature after the combustion (T = 450°C) and a temperature emitted by the crank case (T=300°C).
13.30 Thermal Analysis of a four-stroke Engine Piston 701
Upper side of the piston C T=450°C
1. Mode thermal 2. Choose set
3. Select boundary condition type Temperature
4. Value of the boundary condition
Bottom side of the piston T=300°C
5. Add boundary condition
Figure 13.30-3: Boundary conditions
The first step respecting boundary conditions is to switch the view from “Mechanic” to “Thermal”. This changes the boundary conditions to thermal boundary conditions. Secondly, you have to select the set for the piston bottom and assign a temperature of 300°C (Figure 13.30-3). Proceed in the same way to assign the temperature to the set for the piston top side.
Launching the Calculation Start the calculation with the “PARDISO solver”. Alternatively, you could also use the SIC-CG or the SOR-CG solver.
Results With the help of the temperature gradation, it is easy to see that there is no symmetrical heat conduction in the piston. This can be an important attribute of dimensioning the piston rings and the connecting rod bolt, since they are thermically loaded in an unsymmetrical way because of the unsymmetrical distribution of the heat.
702 13 Examples
Figure 13.30-4: Result of the temperature distribution
■■13.31 Non-linear
Spring
Calculation of a Belleville
The Belleville spring is a typical machine element with large displacement effects. In particular with a big ratio of height h0 to thickness the deviation of a linear characteristic is very high. While the Belleville spring from example 9 (cf. chapter 13.9) was still rather linear with a ratio of 0.5, the spring we consider now cannot be displayed by a linear characteristic since it has a ratio of approximately 1.3. The dimensions are listed below. External diameter: Internal diameter: Thickness: Height h0:
100 mm 51 mm 2.7 mm 3.5 mm
Create a New Project Directory and Import Structure Data Create a new project directory and switch the mode from “Linear mechanical” to “Non-linear mechanical”.
13.31 Non-linear Calculation of a Belleville Spring 703
Linear mechanical
Non-linear mechnical
Figure 13.31-1: Selecting the mode “Non-linear mechanical”
Import of the Structure Data Import the Z88 file belleville_spring.txt from z88_examples_z88aurora/b31/Import-File. Now, you can see the structure, consisting of 400 torus elements of type No. 8. The Belleville spring is only described by its cross section, exactly like the one in example 13.9.
Figure 13.31-2: Mesh of the Belleville spring
Boundary Conditions To assign the boundary conditions, you should rotate the structure at first, because for torus elements, it is defined in Z88, that the y-axis (x = 0) is the axis of symmetry. We rotate the structure shown in Figure 13.31-2 by 180° and use the y-axis as axis of rotation.
Figure 13.31-3: Rotating the structure with “Rotations”
After the rotation, the force application point is situated on the top, the constraint at the bottom. At first, we create two node sets, one contains the upper left node (for the application of force) and the other one contains the lower right node (for the constraint). Afterwards, we generate the boundary condition sets “fixation” (Y direction, value “0”) and “force” (Y direction, value “20000”).
704 13 Examples
Figure 13.31-4: Boundary conditions
Assigning the Material Use structural steel S235JR from the Z88Aurora material database. With this example, the nonlinearity is based on geometrical effects; this is why we can use a material with linear characteristics.
Defining the Solver Parameters and Launching the Calculation Use the SORCG solver for the calculation. The parameters of the solver are very important with non-linear calculations. At first, calculate the example with the standard settings. The data in the file Z88NLKV.LOG gives us information about the convergence of the calculation. With 44% of the load, we need relatively many (14) of Newton iterations. We switch the settings from the Newton-Raphson method to the arc length method (cf. Figure 13.31-5) and calculate again.
Figure 13.31-5: Changing the settings of the solver in the menu “Solver parameters”
13.31 Non-linear Calculation of a Belleville Spring 705
Considering the data of Z88NLKV.LOG shows that with the help of the arc length method according to Riks, the convergence can be significantly improved. In none of the load steps, we need more than four Newton iterations to calculate the solution.
Results The best way to consider the deflection of the Belleville spring is by using a scaling factor of 1, since the displacements are very large. In Figure 13.31-6, you can see that the point of the flat position is passed at 43% of the load.
Figure 13.31-6: Deflected Belleville spring near the point of the flat position
The load layer can be selected at “Choice of increment”. The floating-point number in the right column displays the percentage of the whole load. In Figure 13.31-6, 43% are selected (cf. arrow). This is approximately the same value with which the Newton-Raphson method delivered bad results of convergence. Why? To answer this question, we have to consider the spring characteristic. It can be obtained by plotting the load of the respective load step over the maximum displacement in Y direction. Figure 13.31-7 shows the result. It also displays the characteristic, which is defined by using the formula of Almen and László. Their formula is experimentally verificated. Characteristic curve of a Belleville spring
Force F / kN
25 20 15 10 5 0
CalculationZ88Aurora Z88AuroraV2 V2(nichtlinear) (non linear) Berechnung Berechnung CalculationZ88Aurora Z88AuroraV2 V2(linear) (linear) Berechnung CalculationA.A.und undL.L. 0
1
2
3
4
5
Way s / mm
6
7
8
Figure 13.31-7: Comparison to the formula of Almen and László as well as to the linear calculation
706 13 Examples
As you can see, just below half of the load (at about 44%), a nearly horizontal tangent develops. This is the reason why the Newton (Raphson) method does not converge any more (cf. also chapter 6.6).
■■13.32 Non-linear
Calculation of a Hinge
In this example, we examine a hinge that adjusts a cylindrical rod in a fixture. The clamping force is very big and allows very large deformations to arise.
Create a new Project Directory and import STEP File Create a new project directory and switch the mode from “Linear mechanical” to “Non-linear mechanical”. Linear mechanical
Non-linear mechnical Figure 13.32-1: Selecting the mode “Non-linear mechanical”
Import of the Structure Data Import the STEP file hinge.stp from z88_examples_z88aurora/b32/STEP file. Now you can see the structure, which is a pure geometry first.
fixation
cylindrical rod hinge joint
F
Figure 13.32-2: Hinge with the symbols of the related boundary conditions
13.32 Non-linear Calculation of a Hinge 707
Meshing Now, switch to the pre-processor and select “meshing”, and after that “tetrahedron”. We use Netgen and quadratic tetrahedrons. The element size is 10. After selecting “Add” and “Create mesh”, your component should look like the one you can see in Figure 13.32-3.
Figure 13.32-3: Process and parameterization of the meshing
Boundary Conditions According to Figure 13.32-2, you have to apply boundary conditions in three ranges. We begin, as usual, with the option “picking” in the pre-processor and create three node sets: Set “constraint1”, inner surface of the borehole, angle: “20” Set “constraint2”, contact area of the pattern, and angle: “12” Set “force”, surface of the force application, angle: “17” The suitable areas are marked in Figure 13.32-4. After closing the picking menu, switch to the menu “assign” in the pre-processor and select “boundary conditions”. We assign constraints to the sets “constraint1” and “constraint2” as follows.
708 13 Examples
Figure 13.32-4: Sets for the boundary conditions
Set 1: X, Y and Z direction, type: “Displacements”, value: “0”, name: “constraint1” Set 2: X, Y and Z direction, type: “Displacements”, value: “0”, name: “constraint2” We assign a projected distributed load to the third set, the value of the load is “−900000” in X direction. We name this boundary condition “force”. If you now select the button “show all”, your component should look like the one in Figure 13.32-5.
Figure 13.32-5: Boundary conditions of the hinge, displayed in Z88Aurora V2
Assigning Material Use “mechanical engineering steel” from the Z88Aurora material database and assign this material to the whole component.
13.32 Non-linear Calculation of a Hinge 709
Definition of the Solver Parameters and Calculation Select PARDISO in the menu “Solver” to calculate. Afterwards change the number of load steps in the dialogue “solver parameters”. Set 25 load steps for the calculation (cf. Figure 13.32-6). Depending on the computer, the calculation can take a while. With a 4 CPU PC with 16 GB of main memory, the calculation time is approx. 45 minutes.
Figure 13.32-6: Solver parameters for the non-linear calculation
Start the calculation.
Results Switch to the post-processor. Set a scaling of 1.0 since the deformations of the component are very big. Select the last increment, i. e. 100% of the load. With the option “both” concerning the whole displacement the component is displayed as you can see it on the left in Figure 13.32-7. non-linear calculation
linear calculation
Figure 13.32-7: Whole displacement of the non-linear (on the left) and linear analysis (on the right)
710 13 Examples
The picture also shows the result of the linear analysis. We can see that with the linear analysis, an unrealistically large increase of volume appears. The interrupted line displays a phenomenon we already know from the manual calculation by the bending theory of Bernoulli: The limit point of the neutral fiber has moved only in the force direction. By selecting the displacements in Y direction instead of the whole displacements, we want to consider this particularly. You can see this effect very well in Figure 13.32-8. The position of the limit point of the neutral fiber does not move with the linear analysis. This would cause a continual extension of the neutral fiber and the cantilever. Since we did not apply any traction, lengthening the beam as a tension bar, this effect cannot be real. Only capturing large displacement effects, which corresponds to momentum balance of the deformed component, is able to describe the current problem technically and physically correctly. non-linear calculation
Figure 13.32-8: Displacements in Y direction
linear calculation
References and further reading
/1/ Zienkiewicz, O. C.: Methode der finiten Elemente. 2. Auflage. Carl Hanser Verlag, München/Wien 1984. /2/ Zienkiewicz, O. C./Taylor, R. L.: The Finite Element Method. Volume 1: The Basis. 5th Edition. Butterworth Heinemann, Oxford 2002. /3/ Argyris, J./Mlejnek, H. P.: Die Methode der finiten Elemente. Band 1. Vieweg Verlag, Braunschweig 1986. /4/ Bathe, K.-J.: Finite-Elemente-Methoden. 2. Auflage. Springer Verlag, Berlin/Heidelberg/New York/ Tokyo 2002. /5/ Bathe, K.-J./Wilson, E. L.: Numerical Methods in Finite Element Analysis. Prentice-Hall, Englewood Cliffs/New Jersey 1976. /6/ Schwarz, H. R.: Methode der finiten Elemente. 3. Auflage. B. G. Teubner, Stuttgart 1991. /7/ Schwarz, H. R.: FORTRAN Programme zur Methode der finiten Elemente. 3. Auflage. B. G. Teubner, Stuttgart 1991. /8/ Love, A. E. H.: A Treatise on the Mathematical Theory of Elasticity. 4th Edition. Dover Publications, Oxford/New York 1926. /9/ Timoshenko, S. P./Goodier, J. H.: Theory of Elasticity. 3rd Edition. McGraw-Hill Book Company, New York 1970. /10/ Bickford, W. B.: Mechanics of Solids. Richard D. Irwin, Homewood/IL 1993. /11/ Marguerre, K.: Technische Mechanik. Zweiter Teil: Elastostatik. Springer Verlag, Berlin/Heidelberg/ New York 1967. /12/ Abramowitz, M./Stegun, I. A.: Pocketbook of Mathematical Functions. Verlag Harri Deutsch, Thun und Frankfurt/Main 1984. /13/ Stöcker, H. (Hrsg.): Taschenbuch mathematischer Formeln und moderner Verfahren. 4. Auflage. Verlag Harri Deutsch. Thun und Frankfurt/Main, 1999. /14/ Saad, Y.: Iterative Methods for Sparse Linear Systems. PWS Publishing Company, Boston 1996. /15/ Kernighan, B./Ritchie, D.: Programmieren in C. 2. Ausgabe. Carl Hanser Verlag, München/Wien 1990. /16/ Petzold, C.: Windows 95 Programmierung. Microsoft Press Deutschland, Unterschleißheim 1996. /17/ Nye, A.: Xlib Programming Manual. 3rd Edition. O’Reilly & Associates, Sebastopol 1995. /18/ Nye, A.: Xlib Reference Manual. 3rd Edition. O’Reilly & Associates, Sebastopol 1993. /19/ Quercia, V./O’Reilly, T.: X Window System User’s Guide. OSF/Motif 1.2 Edition. O’Reilly & Associates, Sebastopol 1995. /20/ Nye, A./O’Reilly, T.: X Toolkit Intrinsics Programming Manual. OSF/Motif 1.2 Edition. O’Reilly & Associates, Sebastopol 1995. /21/ Flanagan, D.: X Toolkit Intrinsics Reference Manual. 3rd Edition. O’Reilly & Associates, Sebastopol 1995. /22/ Heller, D./Ferguson, P. M.: Motif Programming Manual. 2nd Edition. O’Reilly & Associates, Sebastopol 1994.
712 References and further reading
/23/ Ferguson, P. M.: Motif Reference Manual. O’Reilly & Associates, Sebastopol 1993. /24/ Grote, K. H./Feldhusen, J. (Hrsg.): Dubbel – Taschenbuch fur den Maschinenbau. 23. Auflage. Springer Verlag, Berlin/Heidelberg/New York 2012. /25/ Finck von Finckenstein, Karl Graf: Einführung in die Numerische Mathematik. Band 1. Carl Hanser Verlag, München 1977. /26/ Wissmann, J.: Vorlesungen über Finite-Element-Methoden I und II. Fachgebiet Leichtbau. Technische Hochschule Darmstadt 1977/78. /27/ Rieg, F./van der Sanden, W.: Finite-Elemente-Berechnungen mit Hilfe eines Personal-Computers. In: Werkstatt und Betrieb 119 (1986) 8, S. 701–705. Carl Hanser Verlag, München 1986. /28/ Rieg, F.: Finite-Elemente-Programm mit modularem Aufbau. In: Werkstatt und Betrieb 119 (1986) 12, S. 1040–1046. Carl Hanser Verlag, München 1986. /29/ Rieg, F.: Ein einfacher Netzgenerator fur krummlinig berandete finite Elemente. In: Werkstatt und Betrieb 121 (1988) 9, S. 761–766. Carl Hanser Verlag, München 1988. /30/ Rieg, F.: 386er-Fortran. In: c’t, Heft 1/1990, S. 96–100. Verlag Heinz Heise. Hannover 1990. /31/ Rieg, F./Löw, R./Althoff, H.: Ein einfaches Verfahren zur Kopplung von CAD und FEM. Konstruktion 43 (1991), S. 189–196. Springer Verlag 1991. /32/ Rieg, F.: Z88 – Das kompakte Finite Elemente System. Version 14.0. Herausgegeben vom Lehrstuhl Konstruktionslehre und CAD, Fakultät für Ingenieurwissenschaften, Universität Bayreuth 1999. /33/ Ganzhorn, K./Walter, W.: Die geschichtliche Entwicklung der Datenverarbeitung. Herausgegeben von IBM Deutschland GmbH, Stuttgart 1975. /34/ Gross, D./Schnell, W.: Formel- und Aufgabensammlung zur Technischen Mechanik II (Elastostatik). Bibliographisches Institut, Mannheim 1980. /35/ Schwarz, H. R.: Numerische Mathematik. 4. Auflage. Verlag B. G. Teubner, Stuttgart 1997. /36/ Jedrzejewski, F.: Introduction aux méthodes numériques. Springer Verlag, Paris 2001. /37/ Timoshenko, S./Woinowsky-Krieger, S.: Theory of Plates and Shells. McGraw-Hill Book Company, Singapore 1959. /38/ Pilkey, W.: Formulas for Stress, Strain and Structural Matrices. John Wiley & Sons, Inc., New York 1994. /39/ Gross, D./Hauger, W./Wriggers, P.: Technische Mechanik 4: Hydromechanik, Elemente der Höheren Mechanik, Numerische Methoden. 8. Auflage. Springer Verlag. Berlin, Heidelberg/New York 2012. /40/ Hake, E./Meskouris, K.: Statik der Flächentragwerke. Springer Verlag, Berlin/Heidelberg/New York 2001. /41/ Betten, J.: Kontinuumsmechanik. 2. Auflage. Springer Verlag. Berlin/Heidelberg/New York 2001. /42/ Krätzig, W. B./Başar, Y.: Tragwerke 3. Springer Verlag. Berlin/Heidelberg/New York 1997. /43/ Rieg, F./Hackenschmidt, R.: Softwaretechnik fur Ingenieure. Hanser Verlag, München 2001. /44/ Betten, J.: Finite Elemente für Ingenieure 1. 2. Auflage. Springer Verlag. Berlin/Heidelberg/New York 2003. /45/ Betten, J.: Finite Elemente für Ingenieure 2. 2. Auflage. Springer Verlag, Berlin/Heidelberg/New York 2004. /46/ Carriol, W. F.: A Primer for Finite Elements in Elastic Structures. John Wiley & Sons, Inc.,New York 1999. /47/ Rieg, F.: Z88 – Das kompakte Finite Elemente System. Version 13.0a. Herausgegeben vom Lehrstuhl Konstruktionslehre und CAD, Fakultät für Angewandte Naturwissenschaften, Universität Bayreuth 2009. /48/ Axelson, O.: Preconditioned conjugated gradient methods. In: International Conference on Preconditioned Conjugate Gradient Methods, Nijmwegen. Springer, Berlin 1990. /49/ Manteuffel, T. A.: Shifted incomplete Cholesky-factorization. In: Sparse matrix proceddings 1978, S. 41–61. SIAM, Philadelphia 1979. /50/ Meijerink, J. A./van der Vorst, H. A.: An Iterative Solution Method for Linear Systems of Which the Coefficient Matrix is a Symmetric M-Matrix. In: Mathematics of Computation, Volume 31, Number 137, S. 148–162. American Mathematical Society 1977.
References and further reading 713
/51/ Manteuffel, T. A.: An Incomplete Factorization Technique for Positive Definite Linear Systems. In: Mathematics of Computation, Volume 34, Number 150, S. 473–497. American Mathematical Society 1980. /52/ Szabó, I.: Höhere Technische Mechanik. 6. Auflage. Springer Verlag, Berlin/Heidelberg/New York 2001. /53/ Varga, R. S.: Matrix Iterative Analysis. Prentice Hall, Englewood Cliffs, New Jersey 1962. /54/ Hackbusch, W.: Iterative Lösung großer schwachbesetzter Gleichungssysteme. B. G. Teubner Verlag, Stuttgart 1991. /55/ Rutishauser, R.: Vorlesungen über numerische Mathematik 1, 2. Birkhäuser Verlag, Basel 1976. /56/ Stoer, J./Burlisch, R.: Einführung in die Numerische Mathematik II. 3. Auflage. Springer Verlag, Berlin/Heidelberg/New York 1990. /57/ Ortega, J. M.: Introduction to Parallel and Vector Solution of Linear Systems. Plenum Press, New York 1988. /58/ Faires, J. D./Burden, R. L.: Numerische Methoden. Spektrum Akademischer Verlag. Heidelberg/Berlin/Oxford 1994. /59/ Fagan, M. J.: Finite Element Analysis. Longman Group UK 1999. /60/ Young, D. M.: Iterative solution of large linear systems. Academic Press, New York/London 1971. /61/ Butscher, M./Ondrusch, N.: Numerische Verfahren der Optimierung: Finite Element Methoden. Seminararbeit. Universität Bayreuth, Fakultät für Mathematik 2000. /62/ Koch, F.: Elementauswahl bei Finite-Elemente-Analysen – eine Hilfestellung für den Konstrukteur. Dissertation, Universität Bayreuth 2003. /63/ Werkle, H.: Finite Elemente in der Baustatik. 2. Auflage. Vieweg Verlag. Braunschweig/Wiesbaden 2001. /64/ Hirschfeld, K.: Baustatik. Springer Verlag, Berlin 1998. /65/ Brown, D. K.: An introduction to the Finite Element Method using basic Programms. Surrey University Press, Glasgow 1990. /66/ Smith, I. M./Griffiths, D. V.: Programming the Finite Element Method. John Wiley & Sons, Chichester 1982. /67/ Ciarlet, P. G./Lions, J. L.: Handbook of Numerical Analysis. Elsevier, Amsterdam 1996. /68/ Braess, D.: Finite Elemente. Springer Verlag, Berlin 1997. /69/ Schwab, Ch.: p- and hp-Finite Element Methods. Oxford Science Publications. Clarendon Press, Oxford 1998. /70/ Chapelle, D./Bathe, K. J.: The Finite Element Analysis of Shells – Fundamentals. Springer Verlag, Berlin 2003. /71/ Macneal, R. H.: Finite Elements: Their Design and Performance. Marcel Dekker, Inc., New York 1994. /72/ Hughes, T. J. R./Hinton, E.: Finite Element Methods for Plate and Shell Structures. Volume 1. Pineridge Press International, Swansea 1986. /73/ Hughes, T. J. R./Hinton, E.: Finite Element Methods for Plate and Shell Structures. Volume 2. Pineridge Press International, Swansea 1986. /74/ Topping, B. H. V./Khan, A. I.: Parallel Finite Element Computations. Saxe-Coburg Publications, Edinburgh 1996. /75/ Bernadou, M.: Finite Element Methods for Thin Shell Problems. John Wiley & Sons, Chichester 1996. /76/ Altenbach, H./Altenbach, J./Rikards, R.: Einführung in die Mechanik der Laminat- und Sandwichtragwerke. Deutscher Verlag für Grundstoffindustrie, Stuttgart 1996. /77/ Bathe, K. J.: Computational Fluid and Solid Mechanics. Volume 1. Elsevier. Amsterdam 2001. /78/ Bathe, K. J.: Computational Fluid and Solid Mechanics. Volume 2. Elsevier, Amsterdam 2001. /79/ Thompson, J. F./Soni, B. K./Weatherill, N. P.: Handbook of Grid Generation. CRC Press, Boca Raton 1999. /80/ Matthews, F. L./Davies, G. A. O./Hitchings, D./Soutis, C.: Finite element modelling of composite materials and structures. Woodhead Publishing Limited, Cambridge 2000. /81/ Hinton, E./Owen, D. R. J./Krause, G.: Finite Elemente Programme für Platten und Schalen. Springer Verlag, Berlin 1990.
714 References and further reading
/82/ Schäfer, M.: Numerik im Maschinenbau. Springer Verlag, Berlin/Heidelberg/New York 1999. /83/ Knothe, K./Wessels, H.: Finite Elemente – eine Einführung für Ingenieure. Springer Verlag, Berlin/ Heidelberg/New York 1991. /84/ Föppl, A./Föppl, L.: Drang und Zwang. Erster Band. Verlag von R. Oldenbourg, München/Berlin 1941. /85/ Mann, W.: Vorlesungen über Statik und Festigkeitslehre. 2. Auflage. B. G. Teubner Verlag, Stuttgart 1997. /86/ Wagner. W./Erlhof, G.: Praktische Baustatik. Teil 1. 18. Auflage. B. G. Teubner Verlag, Stuttgart 1986. /87/ Wagner. W./Erlhof, G.: Praktische Baustatik. Teil 2. 14. Auflage. B. G. Teubner Verlag, Stuttgart 1991. /88/ Wagner. W./Erlhof, G.: Praktische Baustatik. Teil 3. 7. Auflage. B. G. Teubner Verlag, Stuttgart 1984. /89/ Gross, D./Hauger, W./Schröder, J./Wall, W.A.: Technische Mechanik 1 Statik. 11. Auflage. Springer Verlag, Berlin/Heidelberg/New York 2011. /90/ Gross, D./Hauger, W./Schröder, J./Wall, W.A.: Technische Mechanik 2 Elastostatik. 11. Auflage. Springer Verlag, Berlin/Heidelberg/New York 2012. /91/ Gross, D./Hauger, W./Schröder, J./Wall, W.A.: Technische Mechanik 3 Kinetik. 11. Auflage. Springer Verlag. Berlin/Heidelberg/New York 2010. /92/ Stoer, J.: Einführung in die Numerische Mathematik I. 4. Auflage. Springer Verlag, Berlin/Heidelberg/New York, Tokyo 1983. /93/ Woo, M. et al.: OpenGL Programming Guide. 3rd edition. Addison-Wesley, Boston 2001. /94/ Kempf, R./Frazier, C.: OpenGL Reference Manual. 2nd edition. Addison-Wesley, Reading (MA) 1996. /95/ Rieg, F.: Grafikprogrammierung für Windows. Fachbuchverlag Leipzig im Carl Hanser Verlag, München/Wien 2005. /96/ Decker: Maschinenelemente. 18. Auflage. Carl Hanser Verlag, München 2011. /97/ Wellinger, K./Dietmann, H.: Festigkeitsberechnung. Stuttgart, Körner 1976. /98/ Steinhilper, W./Sauer, B.: Konstruktionselemente des Maschinenbaus 1. 8. Auflage. Springer, Berlin/Heidelberg/New York 2012. /99/ Szabó, I.: Höhere Technische Mechanik. 6. Auflage. Springer, Berlin/Heidelberg/New York 2001. /100/ Rieg, F.: XN743 und WN743 – Wellenberechnung nach DIN 743. Herausgegeben vom Lehrstuhl Konstruktionslehre und CAD, Fakultät für Angewandte Naturwissenschaften, Universität Bayreuth 2008. www.cad.uni-bayreuth.de. /101/ Steinhilper, W./Röper, R.: Maschinen- und Konstruktionselemente 3. 2. Auflage. Springer, Berlin/ Heidelberg/New York 1996. /102/ Rieg, F.: ZBALKEN und XBALKEN – Balkenberechnung mit Übertragungsverfahren. Herausgegeben vom Lehrstuhl Konstruktionslehre und CAD, Fakultät für Angewandte Naturwissenschaften, Universität Bayreuth 2008. www.cad.uni-bayreuth.de. /103/ Rieg, F.: WTFEDER – Tellerfederberechnung. Herausgegeben vom Lehrstuhl Konstruktionslehre und CAD, Fakultät für Angewandte Naturwissenschaften. Universität Bayreuth 2008. www.cad.unibayreuth.de. /104/ Schenk, O./Gärtner, K.: Solving Unsymmetric Sparse Systems of Linear Equations with PARDISO. In: Journal of Future Generation Computer Systems, 20(3): 475–487, 2004. /105/ Schenk, O./Gärtner, K.: On fast factorization pivoting methods for symmetric indefinite systems. In: Elec. Trans. Numer. Anal., 23: 158–179, 2006. /106/ Zimmermann, M.: Theorie und Implementierung verschiebungsbezogener Schalen als finite Elemente im Maschinenbau. Dissertation Universität Bayreuth, Bayreuth 2008. /107/ Alber-Laukant, B.: Struktur- und Prozesssimulation zur Bauteildimensoinierung mit thermoplastischen Kunststoffen – Validierung von Werkstoffbeschreibungen für den technischen Einsatz. Dissertation Universität Bayreuth, Bayreuth 2008. /108/ Dörnhöfer, A.: Leichtbau mit partikelverstarkten Magnesiumlegierungen – Integration von virtueller Werkstoffentwicklung und Topologieoptimierung in den Produktentwicklungsprozess. Disser tation Universität Bayreuth, Bayreuth 2008.
References and further reading 715
/109/ Roith, B.: Integrated Finite Element Analysis in three-dimensional Computer Aided Design Programs (CAD) – Overview and Comparison. In : 16th International Conference on Engineering Design, Paris 2007. /110/ Alber, B./Hackenschmidt, R./Dolsak, B./Rieg, F.: ICROS – The Selective Approach to High-Tech Polymer Product Design. Design 2006. Dubrovnik, May 2006 (ISBN 953-6313-79-0). /111/ Niemann, G./Winter, H.: Maschinenelemente. Band 2: Getriebe. 2. Auflage. Springer, Berlin/Heidelberg/New York 1983. /112/ Göldner, H.: Übungsaufgaben aus der Technischen Mechanik. 8. Auflage. Friedr. Vieweg + Sohn, Braunschweig 1972. /113/ Girkmann, K.: Flächentragwerke. 6. Auflage. Springer Verlag, Wien 1963. /114/ Meskouris, K./Butenweg, C./Hake, E./Holler, S.: Baustatik in Beispielen. Springer Verlag, Berlin/ Heidelberg/New York 2005. /115/ Marguerre, K./Woernle, H.-T.: Elastische Platten. B.I.-Wissenschaftsverlag, Mannheim/Wien/ Zürich: 1975. /116/ Hake, E./Meskouris, K.: Statik der Flächentragwerke. 2. Auflage. /117/ Ahmad, S.: Analysis of thick and thin shell structures by curved finite elements. In: International Journal for numerical methods in engineering. Vol. 2, S. 419–451. John Wiley & Sons 1970. /118/ Bronstein, I. N./Semendjajew, K. A./Musiol, G./Mühlig, H.: Taschenbuch der Mathematik. 7. Auflage. Wiss. Verlag Harri Deutsch, Frankfurt/Main 2008. /119/ Ogden, R. W.: Non-linear elastic deformations. Ellis Harwood Ltd. and Halsted Press/John Wiley & Sons, Mineola/NY 1984. /120/ Wriggers, P.: Nichtlineare Finite-Element-Methoden. Springer Verlag, Berlin/Heidelberg/New York u.a. 2001. /121/ Parisch, H.: Festkörper-Kontinuumsmechanik. Von den Grundgleichungen zur Lösung mit Finiten Elementen. 1. Auflage. Teubner Verlag, Stuttgart/Leipzig/Wiesbaden 2003. /122/ Crisfield, M. A.: Non-linear Finite Element Analysis of Solids and Structures. Volume 2, Advanced Topics. John Wiley & Sons Ltd., Chichester/New York/Weinheim u.a. 1997. /123/ Simo, J. C./Hughes, T. J. R.: Computational Inelasticity. Springer Verlag, New York u.a. 1998. /124/ Zienkiewicz, O. C./Taylor, R. L.: The Finite Element Method for Solid and Structural Mechanics. 6. Auflage. Elsevier Butterworth Heinemann, Amsterdam/Boston/Heidelberg u.a. 2005 /125/ Ting, T. C. T.: Anisotropic Elasticity, Theory and Applications. Oxford University Press, New York 1996. /126/ Wehmann, C./Rieg, F.: Development and Comparison of High Order Toroidal Finite Elements for Calculating Disc Springs. Internationales Wissenschaftliches Kolloquium Ilmenau 2011. Digitale Bibliothek Thüringen, Ilmenau 2011. www.db-thueringen.de/servlets/DocumentServlet?id=19646. /127/ Meurant, G.: The Lanczos and Conjugate Gradient Algorithms. Society for Industrial and Applied Mathematics. Philadelphia 2006. /128/ Lanczos, C.: An Iterative Method for the Solution of the Eigenvalue Problem of Linear Differential and Integral Operators. In: Journal of Research of the National Bureau of Standards. Los Angeles 1950. /129/ Dresig, H./Holzweißig, F.: Maschinendynamik. 10. Auflage. Springer Verlag, Berlin/Heidelberg 2011. /130/ Komzsik, L.: The Lanczos-Method, Evolution and Application. Society for Industrial and Applied Mathematics, Philadelphia 2003. /131/ Fischer, G.: Lineare Algebra. 14. Auflage. Vieweg, Wiesbaden 2003. /132/ Cullum, J./Willoughby, R.: Lanczos Algorithms for Large Symmetric Eigenvalue Computations. Volume 1. Theory. Birkhauser, Boston 1985. /133/ Paige, C.: Eror analysis of the Lanczos algorithm for tridiagonalizing a symmetric matrix. In: Journal of the Institute of Mathematics and its Applications 1976. /134/ Pahl, G./Beitz, W./Feldhusen, J./Grothe, K.-H. (Hrsg.): Pahl/Beitz Konstruktionslehre – Grundlagen erfolgreicher Produktentwicklung. Methoden und Anwendung. 7. Auflage. Springer Verlag, Berlin/ Heidelberg 2007.
716 References and further reading
/135/ Müller, G./Groth, C.: FEM für Praktiker, I: Grundlagen. 8. Auflage. Expert-Verlag, Renningen 2007. /136/ von Böckh, P./Wetzel, T.: Wärmeübertragung – Grundlagen und Praxis. 3. Auflage. Springer Verlag, Berlin/Heidelberg 2009. /137/ Riks, E.: The Application of Newtons Method to the Problem of Elastic Stability. In: Journal of Applied Mechanics. Vol. 39, 1060–1066. Transactions of the ASME 1972. /138/ Wehmann, C./Roith, B./Rieg, F.: Bestimmung nichtlinearer Federkennlinien mit Hilfe der Finite Elemente Analyse. Ilmenauer Federntag 2010., 63–70. Ilmenau 2010 (ISBN 978-3-938843-57-4) /139/ Wehmann, C./Rieg, F.: Berechnung von Tellerfedern – von der analytischen Betrachtung zur Finite Elemente Analyse. Konstruktion. Vol. 1/2 2012, 67–70. Springer VDI Verlag 2012.
Index
A AutoCAD 449, 450, 568, 613, 614, 615, 616 automesher 180, 202, 445, 610
B back-calculation 11 bandwidth 176, 177, 180 bandwidth storage scheme 176 basic property 72, 73 beam 13, 491 beam element 183, 184 beam framework 106, 108, 123 beam no. 2 with 2 nodes in the space 626 beam theory 63, 261 bearing 19, 589 boundary condition 8, 9, 12, 13, 198
C calculation of stresses 264 calloc 165, 171 catch modes 616 CG solver 227 Cholesky process 212, 213, 214, 215, 219 Cholesky solver 212, 242 coincidence 281, 283, 285 coincidence list 163 coincidence vector 275, 281, 641 compact mode 591, 604 compilation 10, 20, 163, 164, 189, 190, 195, 196, 201, 219, 272
Computer Aided Optimization 130 condition figure 215 constitutive matrix 41, 69, 258 continuous beam 13, 106, 108, 123, 261, 262 coordinates of nodes 164 coordinate system 589 COSMOS converter 303 COSMOS format 303, 445 c programs 165 crane girder 123 crane truss 448 crankshaft 449, 552, 553, 554 Crout decomposition 212 Cuthill-McKee 242 Cuthill-McKee algorithm 180, 351, 446, 564, 649
D decoding of key words 164 deformation work 67 direct solvers 223 discretization 63, 64 displacement 5, 8, 12, 13, 199, 263, 343 displacement-based procedure 8 displacement field 65, 71 distortion displacement relations 39 distributed load 89, 90, 91 Doolittle decomposition 212
E eigenvalue problem 150 elasticity theory 69, 257
element stiffness matrix 6, 9, 14, 112, 261 element tangent matrix 152 equation solver 21 equation system 9, 11, 12, 19, 209 equivalent stress 264, 620 examples 20, 65, 72, 73, 182, 185, 288, 445, 501 export 445
F finite element analysis 63, 64, 163, 174, 212, 258, 449 force-based procedure 8 force measuring element 124, 613, 623 fork wrench 448 frames 108 framework 122 full stiffness matrix 191, 322
G Gauss-Legendre quadrature 81, 82, 84 Gauss method 210 Gauss point 258 Gauss-Seidel process 226 gear shaft 123 gearwheel 589
I integration 81 integration degree 81 interpolation function 279 INTORD 81, 334 isotropy 36
718 Index
iteration solver 319 iterative solvers 223
normal stress criterion 265, 266, 334
J
O
Jacobi determinant 87, 88, 91, 201 Jacobi matrix 85, 280 Jacobi method 196, 227 Jacobi solver 225 Jennings storage scheme 174, 182 JOR method 227
OpenGL 331 Otto engine 449 overall problem 20
L Lagrange polynomials 278 limit of proportionality 34 list of coincidence 164, 192, 282, 285 load cell 613 load distribution 209, 618 LU decomposition 196, 211 LU factorization 175
M mapped mesher 281 mass matrix 150 material law 616 MAXGS 170, 172, 173, 306, 564, 591, 604, 641, 649 MAXKOI 170, 172, 173, 306, 591, 604, 641, 649 MAXSOR 321 mesher file 616 mesh generation 448 modulus of shear deformation 35
N NASTRAN format 303 natural coordinates 284 natural oscillations 150 Newton Cotes formula 81 NIFLAG 616 nodal force 271, 273 node coordinates 163 node number deviation 177 node numbering 180, 197, 282, 446 non-zero elements 174 non-zero storage scheme 190
P pinion 450 pipe under internal hydrostatic pressure 448 pipe under internal pressure 520 plane strain 126 plane stress element problem 448 plane stress state 124 plate bending 91 plate problems 25 plate segment 448, 500, 682 pointer 112, 165, 167, 170, 171, 184, 186, 191 pointer vector 219 Poisson’s ratio , 35, 36, 264 polymers 129 polynomial degree 72 positive definite 212 preconditioning matrix 229
R relaxation parameter 227 reverse calculation 257 RINGSPANN disc 243 RINGSPANN plane stress element 449 rod 9
S scaling process 215 Serendipity class 73 Serendipity element 64, 279, 281, 287, 622, 624 Serendipity hexahedron 259 Serendipity plane stress element 79, 177, 178, 604 Serendipity tetrahedron 74 shaft element 261, 262 shape function 72 shape optimization 131 shear stress 38
shear stress criterion 265, 270, 334 shell elements 134 shells 134 Shift factor 231 SICCG 231 skyline storage scheme 174, 180, 181, 182, 215 slice problem 610 solver 209, 242, 306, 307, 320, 321 SORCG 230 SOR method 227 spanner 599, 608 spatial framework 448 spectral radius 224 SSORCG 230 storage processes 21 storage schemes 163, 174, 196, 209 strain-displacement matrix 258 strain-displacement transformations matrix 70 stress 67, 257, 610 stress plot 333 stress-strain diagram 34 structure optimisation 130 structure stiffness matrix 9, 17, 18, 20 superposition principle 36, 163 surface load 91, 92 system of equations 6, 8, 210, 213, 229, 230, 235, 322
T temperature analysis 148 tensile bar 35, 67 tensile stress 261 tensile truss 6 test mode 590, 604, 605, 606, 607, 608, 609 tetrahedron coordinates 83 thermal interference fit assembly 449 thrust content 42 topology optimization 131 torque measuring hub 563 torsion beam 63, 122, 126 torus elements 141 transmission shaft 448 transversal contraction 35 transversal strain 35 triangular decomposition 210
Index 719
triangular load 106 triangular matrix 177, 211 truss 6, 7, 63, 122, 123, 126, 128, 261 two-dimensional bearing 448
V von-Mises criterion 265
W
Z
whole rigidity matrix 649 wrench 287
Z88G 303 Z88O0.TXT 320 Z88O1.TXT 320 Z88O2.TXT 320 Z88O.OGL 332 zooming 601
Y Young’s modulus 35, 36, 264
Necessary Basics
Reiner Anderl Peter Binde
Simulations with NX Kinematics, FEA, CFD, EM and Data Management. With numerous examples of NX 9
Anderl/Binde Simulations with NX Kinematics, FEA, CFD, EM and Data Management. With numerous examples of NX 9 394 pages € 99.99. ISBN 978-1-56990-479-4 Also available as ebook € 79.99. ebook-ISBN 978-1-56990-480-0
This book provides the necessary basics to perform simple to complex simulations with Siemens NX software. It is aimed at designers, CAE engineers and engineering students. Based on NX 9 the following topics are covered in the book: Motion Simulation (MBD), Design Simulation FEA (Nastran), Advanced Simulation (FEA, CFD and EM) and the management of calculation and simulation data (Teamcenter for Simulation). After starting off with brief theoretical introductions each chapter contains learning tasks of increasing difficulty. Most of them are based on the CAD model of the legendary Opel RAK2.
More Information on Books: www.hanser-fachbuch.de