calyx manual

Upload: amy-simmons-mcclellan

Post on 03-Apr-2018

239 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/28/2019 Calyx Manual

    1/138

    Calyx Users Manual

    Advanced Numerical Solutions

    Hilliard OH

    September 8, 2004

  • 7/28/2019 Calyx Manual

    2/138

    ii

  • 7/28/2019 Calyx Manual

    3/138

    Contents

    Preface xi

    1 Introduction 1

    1.1 Running Calyx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Command Line Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Temporary Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    2 Language Syntax 32.1 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.4 Function Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.5 Expressions: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.6 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2.6.1 Declaration Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.6.2 Expression Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.6.3 Assignment Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.6.4 Declaration with Assignment . . . . . . . . . . . . . . . . . . . . . . . . . 62.6.5 Compound Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.6.6 Symbolic Form and Evaluation of Expressions . . . . . . . . . . . . . . . . 7

    2.6.7 if Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.6.8 for Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.6.9 while Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6.10 do-while Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6.11 break Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6.12 continue Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6.13 switch Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.6.14 Variable Scope (Visibility) Rules . . . . . . . . . . . . . . . . . . . . . . . 142.6.15 Function Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.6.16 try-catch and throw Statements . . . . . . . . . . . . . . . . . . . . . . . . 182.6.17 Statement Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.6.18 Goto Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    2.7 End of Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.8 Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    3 Kinematics 23

    3.1 Reference Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3 Transformation Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.4 The translation operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

  • 7/28/2019 Calyx Manual

    4/138

    iv CONTENTS

    3.5 The rotation operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.6 Angular velocity and acceleration of reference frames . . . . . . . . . . . . . . . . 29

    3.7 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    4 Two-Dimensional Finite Element Model 33

    4.1 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    4.1.1 Coordinate vs. displacement nodes . . . . . . . . . . . . . . . . . . . . . . 334.1.2 Real vs. virtual nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    4.2 Contact surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    4.3 D.O.F. sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.4 Rigid regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.5 Gap constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.6 Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.6.1 Coordinate connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4.6.2 Displacement connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.7 Mesh file format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    5 External Structure Model 41

    5.1 File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    6 Three-Dimensional Finite Element Model 45

    6.1 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    6.1.1 Coordinate vs. displacement nodes . . . . . . . . . . . . . . . . . . . . . . 45

    6.1.2 Real vs. virtual nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    6.2 Axodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    6.3 Contact surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    6.4 D.O.F. sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    6.5 Rigid regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    6.6 Gap constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    6.7 Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    6.7.1 Coordinate connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    6.7.2 Displacement connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    6.8 Mesh file format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    7 Structures 79

    7.1 Creating Structure Prototypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

    7.2 Fourier dofsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    7.3 Assembly and Condensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    7.4 Intermediate Data Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    7.5 Forward and Reverse Sweeps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    8 Bodies 87

    8.1 Structure Prototypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878.2 Structure Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    8.3 Body Reference Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    8.4 Reference Frame Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    8.5 Reference Frame Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    8.6 Reference Frame Displacements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    8.7 Reference Frame Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

  • 7/28/2019 Calyx Manual

    5/138

    CONTENTS v

    9 Bearings 93

    9.1 Bearing Races and Bearing Race Positioning . . . . . . . . . . . . . . . . . . . . 959.2 Bearing Stiffnesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959.3 Unloaded Deformation of Bearings . . . . . . . . . . . . . . . . . . . . . . . . . . 969.4 Undeformed load at Bearings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969.5 Gap type Constraints at Bearings . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

    9.6 Bearing Deformations and Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

    10 Contact Constraints 99

    10.1 Contact Grid Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9910.2 Designating Contacting Surface Pairs . . . . . . . . . . . . . . . . . . . . . . . . . 9910.3 Contact Equation Solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

    11 File operations 105

    11.1 Opening and closing files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10511.2 Text file operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10511.3 B inary file operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

    12 Starting An Analysis 107

    12.1 E quations of motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10712.2 S tatic analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10712.3 Quasi-static analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10712.4 The Newmark or three-point discretization scheme . . . . . . . . . . . . . . . . . 10712.5 The four-point discretization scheme . . . . . . . . . . . . . . . . . . . . . . . . . 10812.6 Selecting a time integration method . . . . . . . . . . . . . . . . . . . . . . . . . 10812.7 Applying Initial Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10912.8 Reading the state of the system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10912.9 Setting the time increment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11012.10Enabling stress computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11012.11Analyzing one time step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11012.12Writing the State of the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    13 Post-Processing 11313.1 Obtaining Mass and Moment of Inertia of a Body . . . . . . . . . . . . . . . . . . 11313.2 Obtaining the total load on a contact surface . . . . . . . . . . . . . . . . . . . . 11313.3 Obtaining contact load information . . . . . . . . . . . . . . . . . . . . . . . . . . 11313.4 Computing Subsurface Stresses under a Grid Cell . . . . . . . . . . . . . . . . . . 11513.5 Obtaining stress and displacement values in a particular finite element . . . . . . 11513.6 Obtaining information about surfaces on a body . . . . . . . . . . . . . . . . . . 11613.7 Searching for critical stresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11713.8 Starting and Stopping Graphics Drivers . . . . . . . . . . . . . . . . . . . . . . . 11813.9 Clearing the Screen or Graphics Page . . . . . . . . . . . . . . . . . . . . . . . . 11913.10Selecting a Graphics Viewport . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11913.11Selecting a Graphics Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    13.12Drawing Bodies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11913.13Drawing Contact Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12013.14Drawing the Deformed Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . 12113.15Drawing Stress Contours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12113.16Rendering Stresses in Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12113.17Drawing Surface Instance Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . 12313.18Numbering Finite Element Mesh Instances and Elements . . . . . . . . . . . . . 12313.19Generating an iGlass File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

  • 7/28/2019 Calyx Manual

    6/138

    vi CONTENTS

    13.20Examining the Force and Moment Balance in the System . . . . . . . . . . . . . 125

  • 7/28/2019 Calyx Manual

    7/138

    List of Figures

    3.1 Reference Frames X1 and X2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3.2 Example of the translation operation . . . . . . . . . . . . . . . . . . . . . . . . . 253.3 Example of the Rotation Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 263.4 Example of the Translation and Rotation operations combined . . . . . . . . . . 26

    3.5 Carrier reference frame definition . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3.6 Sun reference frame definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.7 Planet reference frame definition . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    4.1 Type I coordinate connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    4.2 Type II coordinate connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    4.3 Displacement connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    5.1 An external structure and its degrees of freedom (dofs). . . . . . . . . . . . . . . 42

    6.1 Linear Lagrangian hexahedral coordinate element . . . . . . . . . . . . . . . . . . 47

    6.2 Quadratic Lagrangian hexahedral coordinate element . . . . . . . . . . . . . . . . 506.3 Linear pentahedral coordinate element . . . . . . . . . . . . . . . . . . . . . . . . 516.4 Quadratic pentahedral coordinate element . . . . . . . . . . . . . . . . . . . . . . 51

    6.5 Linear tetrahedral coordinate element . . . . . . . . . . . . . . . . . . . . . . . . 54

    6.6 Quadratic tetrahedral coordinate element . . . . . . . . . . . . . . . . . . . . . . 546.7 Linear FQP displacement element . . . . . . . . . . . . . . . . . . . . . . . . . . 566.8 Quadratic FQP displacement element . . . . . . . . . . . . . . . . . . . . . . . . 57

    6.9 Cubic FQP displacement element . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    6.10 Surface FQP coordinate element . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.11 Linear Lagrangian hexahedral displacement element . . . . . . . . . . . . . . . . 596.12 Quadratic Lagrangian hexahedral displacement element . . . . . . . . . . . . . . 61

    6.13 Linear pentahedral displacement element . . . . . . . . . . . . . . . . . . . . . . . 63

    6.14 Quadratic pentahedral displacement element . . . . . . . . . . . . . . . . . . . . 63

    6.15 Linear tetrahedral displacement element . . . . . . . . . . . . . . . . . . . . . . . 666.16 Quadratic tetrahedral displacement element . . . . . . . . . . . . . . . . . . . . . 66

    6.17 Linear FQP displacement element . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    6.18 Quadratic FQP displacement element . . . . . . . . . . . . . . . . . . . . . . . . 696.19 Cubic FQP displacement element . . . . . . . . . . . . . . . . . . . . . . . . . . . 696.20 Linear shell displacement element. The displacement field at each numbered ver-

    tex can be represented either by a displacement axode, or by a pair of displacementnodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    6.21 Quadratic shell displacement element. The displacement field at each numberedvertex can be represented either by a displacement axode, or by a pair of displace-ment nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

  • 7/28/2019 Calyx Manual

    8/138

    viii LIST OF FIGURES

    6.22 Cubic shell displacement element. The displacement field at each numbered vertexcan be represented either by a displacement axode, or by a pair of displacementnodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    6.23 Linear pentahedral shell displacement element. The displacement field at eachnumbered vertex can be represented either by a displacement axode, or by a pairof displacement nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    6.24 Quadratic pentahedral shell displacement element. The displacement field at eachnumbered vertex can be represented either by a displacement axode, or by a pairof displacement nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    6.25 Cubic pentahedral shell displacement element. The displacement field at eachnumbered vertex can be represented either by a displacement axode, or by a pairof displacement nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    8.1 Multi-body system representation inside ofCalyx . . . . . . . . . . . . . . . . . . 888.2 Reference frame displacements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888.3 Reference frame constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.4 Reference frame reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    9.1 Bearing connections in the multi-body model. . . . . . . . . . . . . . . . . . . . . 94

    9.2 Bearing races . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949.3 Bearing deformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979.4 Bearing reaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

    10.1 Contact surfaces and surface pairs in the multi-body model . . . . . . . . . . . . 10010.2 Computational grid in the contact zone of the gears . . . . . . . . . . . . . . . . 10110.3 Contact pressure distribution across the width of contact obtained when the con-

    tact grid is too wide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10210.4 Contact pressure distribution across the width of contact obtained when the con-

    tact grid is too narrow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10210.5 Contact pressure distribution across the width of contact obtained when the con-

    tact grid is correct. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

  • 7/28/2019 Calyx Manual

    9/138

    List of Tables

    2.1 Calyx Language Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2 Calyx Language Grammar (contd.) . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    4.1 Interpolation type associated with displacement nodes . . . . . . . . . . . . . . . 37

    6.1 Element coordinates of nodes in a linear Lagrangian hexahedral coordinate element 476.2 Element coordinate of nodes in a quadratic Lagrangian hexahedral coordinate

    element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.3 Element coordinate of nodes in a cubic Lagrangian hexahedral coordinate element 496.4 Element coordinate of nodes in a linear pentahedral coordinate element . . . . . 506.5 Element coordinate of nodes in a quadratic pentahedral coordinate element . . . 526.6 Element coordinate of nodes in a cubic pentahedral coordinate element . . . . . . 536.7 Element coordinates of nodes in a linear tetrahedral coordinate element . . . . . 546.8 Element coordinates of nodes in a quadratic tetrahedral coordinate element . . . 556.9 Element coordinates of nodes in a cubic tetrahedral coordinate element . . . . . 566.10 Element coordinate of nodes in a linear Lagrangian hexahedral displacement element 596.11 Element coordinate of nodes in a quadratic Lagrangian hexahedral displacement

    element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.12 Element coordinate of nodes in a cubic Lagrangian hexahedral displacement element 626.13 Element coordinate of nodes in a linear pentahedral displacement element . . . . 62

    6.14 Element coordinate of nodes in a quadratic pentahedral displacement element . . 646.15 Element coordinate of nodes in a cubic pentahedral displacement element . . . . 656.16 Element coordinates of nodes in a linear tetrahedral displacement element . . . . 666.17 Element coordinates of nodes in a quadratic tetrahedral displacement element . . 676.18 Element coordinates of nodes in a cubic tetrahedral displacement element . . . . 67

    12.1 Newmark or three-point discretization schemes . . . . . . . . . . . . . . . . . . . 108

  • 7/28/2019 Calyx Manual

    10/138

    x LIST OF TABLES

  • 7/28/2019 Calyx Manual

    11/138

    Preface

    The computer program Calyx has been under development for many years, and is finally availablefor use by the gearing community. I have received active support and encouragement from manypeople. I would especially like to thank Timothy Krantz of the Army Research Laboratory atthe NASA Glenn Research Center for his support and encouragement.

    Sandeep Vijayakar, Hilliard OHDecember 2000

  • 7/28/2019 Calyx Manual

    12/138

    xii Preface

  • 7/28/2019 Calyx Manual

    13/138

    Chapter 1

    Introduction

    Calyx is a computer program meant for the contact analysis of two- and three-dimensional multi-body systems. It is controlled by the user through instructions in a special purpose programminglanguage. Calyx represents the contacting bodies using finite element models and stiffness ma-trices, all assembled together using a multi-level hierarchy. The kinematics of the system isspecified by describing the motion in symbolic expressions. The geometry of the bodies in thesystem is represented by finite element models. Contact analysis is carried out by the Quadraticprogramming method.

    This manual describes the programming language used to control Calyx, the types of finiteelements implemented, the file formats involved and the various pre-programmed functions thatthe user may call to build the model, carry out an analysis and retrieve analysis results.

    1.1 Running Calyx

    The specifics of running Calyx will depend on the particular computer and its operating system.On a Windows machine, Calyx comes as a single executable file calyx.exe that can be started

    from the comand prompt. On Silicon graphics machines, Calyx comes as the executable filecalyx, and is started from the shell prompt.

    The first time Calyx is run on a Windows machine, it will ask for a license key. Type in (orpaste) the license key, and it will update the license key in its registry and terminate:

    C:\users\johnsmith>calyx

    CalyX v.1.00 Copyright ANSol Sep 13 2001 Invalid license.

    Computer ID=0020e065bc754c535a6e

    Enter Key:010431360153316504076730520431310204633206026532525660665051366106023e330d0b

    The value of the License key was updated. Try restarting Calyx.

    The next time Calyx is started, it will not ask for the license key:

    C:\users\johnsmith>calyx

    CalyX v.1.00 Copyright ANSol Sep 13 2001 License expires:Dec/2001

    Cfg>

    On a Silicon Graphics or Linux based machine, the environment variable AnsolCalyx 1.0 LicenseKeyshould be set to contain the license key before running Calyx.

  • 7/28/2019 Calyx Manual

    14/138

    2 Introduction

    1.2 Command Line Arguments

    Calyx takes several command line arguments which can appear on the command line in anysequence:

    -config=ConfigFileName specifies the name of the configuration file. There should be no

    space between the = and ConfigFileName. No spaces are allowed in ConfigFileName.This argument is optional. If omitted, Calyx will prompt the user to type in the systemconfiguration through the keyboard using the prompt Cfg>. The system configuration issimply a program in the Calyx programming language. This program defines the systemthat Calyx is to analyze.

    -command=CommandFileName specifies the name of the command file. There should beno space between the = and CommandFileName. No spaces are allowed in CommandFileName.This argument is optional. If omitted, Calyx will prompt the user to type in the commandsthrough the keyboard using the prompt Cmd>. The commands are in the form of a programin the Calyx programming language. This program tells Calyx what to do with the model.

    -workdir=WorkingDirectoryName specifies the name of the working directory. Thereshould be no space between the = and WorkingDirectoryName. No spaces are allowed in

    WorkingDirectoryName. This argument is optional. If omitted, Calyx will assume thatthe current directory at the time Calyx command was started is the working directory.

    In the following example:

    C:\users\johnsmith>calyx -config=system.cfg -command=draw.cmd

    CalyX v.1.00 Copyright ANSol Sep 13 2001 Invalid license.

    :

    :

    the file system.cfg contains the program defining the system configuration, and the file draw.cmdcontains commands telling Calyx what to do with the model. Since the -workdir argument hasnot been provided, it uses the directory C:\users\johnsmith as the working directory.

    1.3 Temporary Files

    In the process of running, Calyx creates many temporary files. These files are created in a specialsub-directory called calyxtmp under the working directory. The temporary files contain resultsof intermediate matrix computations. When Calyx finds a file with valid data in it, it can skiptime consuming computations. Calyx automatically determines whether the data in these files isvalid, and whether the file needs to be updated. Normally the user should leave these files alone.If the user needs to recover disk space, these files can be deleted. Calyx will simply rebuild themthe next time it needs the data.

  • 7/28/2019 Calyx Manual

    15/138

    Chapter 2

    Language Syntax

    A user provides input and instructions to Calyx through a special programming language. Thisuser interaction language consists of comments, constants, variables, function calls, arrays, ex-pressions, and statements.

    2.1 Comments

    Single line comments are started by the characters // Multiple line comments are started witha /* and terminated by a */

    x=x+2; // This is a single line comment

    x=x+2; /* This is a multiple

    line comment */

    2.2 Constants

    Three type of constants are accepted, numeric constants, Boolean constants and string constants.Numeric constants follow the same conventions as in FORTRAN. All constants are treatedinternally as double precision floating point values, regardless of the format in which the userspecifies them. Some examples of numeric constants are:

    0 1.0 0.123e-20 .123 34324.

    Only two Boolean constants exist:

    TRUE, FALSE

    String constants consist of a sequence of ASCII characters enclosed in double quotes:

    "This is a string"

    Strings may also contain certain escape sequences:

    "This is a tab:\t and a newline:\n"

  • 7/28/2019 Calyx Manual

    16/138

    4 Language Syntax

    The escape sequences that are available are:"\b" : Backspace"\t": Tab"\n": Newline"\r": Carriage return

    2.3 Variables

    Variables are referred to by their names. Variable names may be of any length, but only thefirst 128 characters are considered significant. The names are case sensitive, must begin with analphabet or and underscore symbol, and all the following characters may be alphabets, numeralsor underscores. Examples of valid variable names:

    Transmission_Error

    Output_Torque

    Planet_1

    All variables must be declared before they can be used. A few variables are pre-defined, and donot need to be declared. Many of these are Read-only, which means that their value cannot bechanged.

    2.4 Function Calls

    Functions are called by invoking their name and supplying arguments in parentheses. Functionsmay be pre-defined, or defined by the user. Examples of function calls:

    sin(Theta) ln(x) exp(y) Clear()

    Set_Window(0,1,0,.75) Set_Viewport(0,1,0,.75)

    PartialDiff(Time^2+0.1*Time,Time)

    Some of the important pre-defined functions are:The parentheses are mandatory, even if no arguments are passed to the function.

    2.5 Expressions:

    Expressions may be formed by using constants, variables, function calls and the following sym-bols: Arithmentic Operators:+ :Addition or string concatenation- :Subtraction* :Multiplication/ :Division^ :To the power of

    Parentheses:( :Open parenthesis) :Close parenthesisRelational operators (RELOPS):> :Greater than< :Less than== : Equal to

  • 7/28/2019 Calyx Manual

    17/138

    2.6 Statements 5

    >= :Greater than or equal to!= :Not equal toBoolean operators:& :Boolean AND operator| :Boolean OR operator! :Boolean NOT operator

    Array operators:[ :Start of an array list or array element extractor] :End an array list or array element extractor, :Separator for array list and argument list elementsExamples:

    1+2

    1.0092*Pi

    [0,1,x^2,3/Pi]

    Translate(0.001*e1-0.002*e2)*Rotate(Time*Omega,e3)

    [Sin(Theta),Cos(Theta),0]

    Body_Frame_Reaction_Vector(Sun_Body)[6]

    e1[2]

    ([0,1,2,3,4,5,6])[2]

    Note: [0,1,2,3,4,5,6][2] is not valid!

    Transfm_Matrix[1][2]

    ([[[0,1],

    [0,1]],

    0])[1][2][1]

    [[1,0,0,0],

    [0,1,0,0],

    [0,0,1,0],

    [0,0,0,1]]

    2.6 Statements

    All simple statements are terminated by a semi-colon. The statement is not processed until thesemicolon is entered. A statement does not have to be contained entirely in one line.

    2.6.1 Declaration Statement

    The first type of statement is a declaration statement. It simply declares one or more variables forlater use. If a variable is used without being formally declared, an error is generated. Examples:

    var x;

    var x,y,z;

    2.6.2 Expression Statement

    The second type of statement is an expression followed by a semicolon:

    Set_Surface_Pairs(

    [Conformal,[CrankCase_Body ,"InnerSeal"],

    [OrbitingScroll_Body,"PressureSurface"],

  • 7/28/2019 Calyx Manual

    18/138

    6 Language Syntax

    Friction_Coeff,Separation_Tolerance_Conf,

    1,1,x1,x2,x3,Fixed_Frame

    ],

    [Conformal,[CrankCase_Body ,"OuterSeal"],

    [OrbitingScroll_Body,"PressureSurface"],

    Friction_Coeff,Separation_Tolerance_Conf,

    1,1,x1,x2,x3,Fixed_Frame]

    );

    2.6.3 Assignment Statement

    The next type of statement is an assignment:

    Symbolic assignment:

    Planet_3_Runout_Error:=0.001*e1+0.00003*e2;

    Evaluated assignment:

    Planet_1_Runout_Error =0.001*e1+0.00003*e2;

    2.6.4 Declaration with Assignment

    A value can be assigned to a variable at the same time that it is being declared:

    var x=1,y,z=3;

    Arrays are allocated using the Dim() function:

    var x=Dim(20);

    var x=Dim(3,5);

    2.6.5 Compound Statement

    A compound statement is formed by enclosing a sequence of zero or more statements in braces.Each of these statements may be a simple statement or a compound statement. Examples:

    {}

    {{}{}{}}

    {Out("Hello");Out("World");}

    {

    var x=1;

    var y=2;

    Out(x+y);

    Out(Eval(x+y));

    }

  • 7/28/2019 Calyx Manual

    19/138

    2.6 Statements 7

    2.6.6 Symbolic Form and Evaluation of Expressions

    Expressions are manipulated by Calyx in symbolic form unless it is explicitly told to evaluatethem. Example:

    var y:=1.0;

    var x:=2*y+3;

    Out("x=",x);Output:

    x=x

    Example:

    var y:=1.0;

    var x:=2*y+3;

    Out("x=",Eval(x));

    Output:

    x=5

    The subsitute function Subst() can be used to substitute a variable by the symbolic expressionit contains. Example:

    var y:=1.0;

    var x:=y;

    Out("x=",Subst(x));

    Output:

    x=y

    Example:

    var y:=1.0;

    var x:=2*y+3;

    Out("x=",Subst(x));

    Output:

    x=((2*y)+3)

    Evaluation of an expression can also be caused by using the = assignment operator instead ofthe := assignment operator. In that case, evaluation of the expression on the right hand sidetakes place before it is assigned to variable on the left hand side. Example:

    var y:=1.0;

    var x=2*y+3;

    Out("x=",Subst(x));

    Output:x=5

    Example:

    var y:=1.0;

    var x:=y;

    Out("x=",Subst(Subst(x)));

  • 7/28/2019 Calyx Manual

    20/138

    8 Language Syntax

    Output:

    x=y

    The Subst() function does nothing if its argument is not a simple variable. Example:

    var y:=1.0;

    var x:= 2*y+3;Out("x=",Subst(Subst(x)));

    Output:

    x=((2*y)+3)

    Circular definitions could occur, in which case evaluation will create a runtime error. Exam-ple:

    var y;

    var x:=2*y+3;

    y:=2*x;

    Out("x=",Eval(x));

    Output:

    The variable: x has been

    defined in terms of itself.

    2.6.7 if Statement

    An if statement comes in two forms:

    if ( )

    and

    if () else

    Here is a Boolean valued expression and is any simple or compound state-ment. Examples:

    if(i==10) Out("Value(10)=",Eval(val[10]));

    if(j>2) {

    x[j]=x[j-1];

    }

    if(j>2) {

    x[j]=x[j-1];

    } else {

    x[j]=1.0;

    }

    The second form of the if statement can lead to an ambiguity:

    var j=3;

    if(j>2) if(j==10) Out("OK"); else Out("Not OK");

  • 7/28/2019 Calyx Manual

    21/138

    2.6 Statements 9

    The ambiguity is resolved by binding the else part to the innermost if part. So the abovestatement is equivalent to:

    var j=3;

    if(j>2) {

    if(j==10) {

    Out("OK");

    } else {

    Out("Not OK");

    }

    }

    In such a situation, it is recommended that braces be used to explicitly resolve the ambiguity.

    2.6.8 for Statement

    The for statement takes the following form:

    for ( ; ; )

    Here is either a simple expression, or a declaration (with or without an

    assignment). It is executed once at the beginning of the for loop. is any simple Booleanvalued expression. It is executed before each iteration. If it evaluates to TRUE, then the simple orcompound statement in is executed, otherwise the loop terminates. is an expression with or without an assignment. It is executed at the end of each iteration. It isusually used to increment some counter. Example:

    var i,x=Dim(10);

    for(i=1;i

  • 7/28/2019 Calyx Manual

    22/138

    10 Language Syntax

    2.6.9 while Statement

    The while statement is a simpler alternative to the for statement:

    while ( )

    is a Boolean valued expression, and is a simple or compound statement. The

    expression is evaluated first. If its value is TRUE, then statement is executed. Otherwisethe while statement is terminated. This process is repeated until evaluates to FALSE.

    var i;

    function Done(){

    return i>=10;

    }

    function Increment(){

    i=i+1;

    }

    function DoSomething(){

    Out("Hi ",Eval(i));

    }

    i=1;while(!Done()) {

    DoSomething();

    Increment();

    }

    2.6.10 do-while Statement

    The do-while statement is similar to the while statement except that it evaluates its conditionalexpression after executing its statement.

    do while ( ) ;

    First is executed. Then Boolean valued expression in is evaluated. If itevaluates to FALSE, the do-while statement is terminated. otherwise the process is repeated.Hence the do-while statement always executes its body at least once.

    var i;

    function Done(){

    return i>=10;

    }

    function Increment(){

    i=i+1;

    }

    function DoSomething(){

    Out("Hi ",Eval(i));}

    i=1;

    do {

    DoSomething();

    Increment();

    } while (!Done());

  • 7/28/2019 Calyx Manual

    23/138

    2.6 Statements 11

    2.6.11 break Statement

    The break statement is used to exit out of the innermost loop in a for, while, do-while or switchstatement.

    Example:

    var i;

    function Initialize(){i=1;

    }

    function Done(){

    return i>=10;

    }

    function Increment(){

    i=i+1;

    }

    function DoSomething(){

    Out("Hi ",Eval(i));

    }

    for(Initialize();!Done();Increment()) {

    if(i==5) break;

    DoSomething();

    }

    Out("Im done.");

    Output:

    Hi 1

    Hi 2

    Hi 3

    Hi 4

    Im done.

    2.6.12 continue Statement

    The continue statement is used to jump to the end of the loop in a for, while or do-whilestatement.

    Example:

    var i;

    function Initialize(){

    i=1;

    }

    function Done(){

    return i>=10;

    }function Increment(){

    i=i+1;

    }

    function DoSomething(){

    Out("Hi ",Eval(i));

    }

    for(Initialize();!Done();Increment()) {

  • 7/28/2019 Calyx Manual

    24/138

    12 Language Syntax

    if(i==5) continue;

    DoSomething();

    }

    Out("Im done.");

    Output:

    Hi 1Hi 2

    Hi 3

    Hi 4

    Hi 6

    Hi 7

    Hi 8

    Hi 9

    Hi 10

    Im done.

    2.6.13 switch Statement

    The switch statement is used to selectively execute a part of a compound statement. It takesthe form:

    switch ( )

    The simple expression is evaluated first. The value of this expression is then comparedwith the values of expressions in case statements that occur in the compound statement. A casestatement is of the form:

    case :

    if the value matches that of a particular case, then execution jumps to the statement part ofthat case.

    var x=2;switch(x) {

    case 1:

    Out("One");

    break;

    case 2:

    Out("Two");

    break;

    case 3:

    Out("Three");

    break;

    }

    Otherwise, execution jumps to a default statement, which is of the form:

    default :

    var x=4;

    switch(x) {

    case 1:

    Out("One");

    break;

  • 7/28/2019 Calyx Manual

    25/138

    2.6 Statements 13

    case 2:

    Out("Two");

    break;

    case 3:

    Out("Three");

    break;

    default:Out("Unknown");

    }

    If the expression does not match that of any case, and no default statement is found in thecompound statement, then a runtime error is generated. Example:

    for(var month=1; month

  • 7/28/2019 Calyx Manual

    26/138

    14 Language Syntax

    Month:10, Quarter=Fall

    Month:11, Quarter=Fall

    Month:12, Quarter=Fall

    2.6.14 Variable Scope (Visibility) Rules

    A variable may be declared using a declaration statement anywhere in a program. A variablethat is declared within a compound statement is visible to all subsequent statements withinthat compound statement. It is not visible to statements that precede the declaration, or tostatements that are outside of the compound statement.

    // The variable x is not visible to statements here.

    {

    // The variable x is not visible to statements here.

    var x;

    // the variable x is visible to all statements here.

    }

    // The variable x is not visible to statements here.

    A variable can be declared only once in a compound statement.

    {

    var x=1;

    var x=2; //This will generate an Error!

    Out("x=",Eval(x));

    }

    However, it is possible that a variable with the same name might have been declared in an outercontext. In such a case, the variable declared in the innermost context is the only one visible.

    var x=1;

    {

    var x=2;Out("x is = ",Eval(x));

    }

    Output:

    x i s = 2

    Variables declared in the initialization part of a for statement will be visible only within the forstatement:

    var y=Dim(10);

    for(var j=1;j

  • 7/28/2019 Calyx Manual

    27/138

    2.6 Statements 15

    var x1=Dim(10);

    var x2=Dim(20);

    var i1,i2;

    for(i1=1;i1

  • 7/28/2019 Calyx Manual

    28/138

    16 Language Syntax

    function Factorial(in n){

    if(n==1) {

    return 1;

    } else {

    return Eval(n*Factorial(n-1));

    }

    }

    Out(Factorial(4));

    Out(Factorial(5));

    Output:

    24

    120

    Example:

    function Binary(in n){

    if(n==1) {

    return "1";} else if(n==0) {

    return "0";

    } else {

    var n1=int(n/2);

    var n2=n-2*n1;

    return Eval(Binary(n1)+Binary(n2));

    }

    }

    Out(Binary(3));

    Out(Binary(13));

    Out(Binary(6876));

    Output:

    11

    1101

    1101011011100

    Like variables, a function once declared inside a compound statement, is visible to all subse-quent statements inside that compound statement. It is not visible to statements outside thatcompound statement. Example:

    // Sample routine to expand the function f into its Taylor series

    // of order n, in variable x, about its current value.

    function Taylor(in f, in x, in n){// define a local function:

    function Factorial(in n){

    if(n==1) {

    return 1;

    } else {

    return Eval(n*Factorial(n-1));

    }

  • 7/28/2019 Calyx Manual

    29/138

    2.6 Statements 17

    }

    // The first term of the series:

    var lastder:=Subst(f);

    var TaylorSeries=f;

    for(var i=1;i

  • 7/28/2019 Calyx Manual

    30/138

    18 Language Syntax

    if(x

  • 7/28/2019 Calyx Manual

    31/138

    2.6 Statements 19

    }

    }

    try{

    Out("Factorial(4)=",Factorial(4));

    Out("Factorial(5)=",Factorial(5));

    Out("Factorial(4.5)=",Factorial(4.5));} catch (message) {

    Out(Eval("Error:"+message));

    }

    Output:

    Factorial(4)=24

    Factorial(5)=120

    Error:Factorial of negative number attempted.

    If there is no try-catch statement that can catch an exception, then the exception will be passedon to Calyx, which will handle it in the same way it handles its internally generated errormessages. The exception can also be re-thrown after being caught.

    try{

    Out("Factorial(4)=",Factorial(4));

    Out("Factorial(5)=",Factorial(5));

    Out("Factorial(4.5)=",Factorial(4.5));

    } catch (message) {

    Out(Eval("Error:"+message));

    throw(Subst(message));

    }

    2.6.17 Statement Label

    Any statement can be assigned a label or IDENTIFIER as follows. This label is visible to all

    statements contained in the compound statement of which this statement is a part. Unlikevariables and functions, this label is also visible to statements preceding the label, provided theyare contained in the same compound statement. IDENTIFIER : statement

    2.6.18 Goto Statement

    A goto statement transfers control to a statement that has been labeled as shown above. Thegoto statement can be used to transfer control to any labeled statement, as long as the label isvisible. However, the goto statement cannot be used to transfer control out of a function body:

    goto IDENTIFIER ;

    Example:

    { var x=1;

    var y=2;

    if(x==0) goto exitlabel;

    var z=3;

    exitlabel:

    Out("Done");

    }

  • 7/28/2019 Calyx Manual

    32/138

    20 Language Syntax

    Example:

    {

    var x=1;

    var y=2;

    if(x==0) goto exitlabel; // This is not correct. The label

    // exitlabel is not visible from here.var z=3;

    {

    var z1=2;

    exitlabel:

    Out("Done");

    }

    }

    Example:

    {

    var x=1;

    {

    var y=2;if(x==0) goto exitlabel; // This is OK

    }

    var z=3;

    exitlabel:

    Out("Done");

    }

    2.7 End of Input

    The input Session is terminated by an end of file marker, or by the special symbol:

    End

    2.8 Grammar

    The syntactical elements of the language are formally specified by the rules described in tables 2.1and 2.2.

  • 7/28/2019 Calyx Manual

    33/138

    2.8 Grammar 21

    Table 2.1: Calyx Language Grammar

    Non-Terminal Symbol Expansion (empty)input stmt list toplevel

    stmt list toplevel | stmt list toplevel statement

    compound stmt { stmt list }stmt list

    | stmt list statementstatement assign decl exp ;

    | compound stmt| function defn| if ( exp )statement| if (exp )statement else statement

    | break ;| continue ;| return ;| return exp ;| for ( assign decl exp ; exp ; assign exp ) statement| while ( exp ) statement| do statement while ( exp ) ;| switch ( exp ) compound stmt| case exp : statement| goto IDENTIFIER ;| IDENTIFIER : statement| default : statement| throw ;

    | throw exp ;| try statement catch () statement| try statement catch ( IDENTIFIER ) statement

    function defn function IDENTIFIER ( parameter list ) statementparameter list

    | parameter list 1parameter list 1 parameter

    | parameter list 1 , parameterparameter in IDENTIFIER

    | out IDENTIFIER| inout IDENTIFIER

    assign decl exp assign exp| decl list

    decl list var identdecl listidentdecl list identdecl list , identdecl

    | identdecl

  • 7/28/2019 Calyx Manual

    34/138

    22 Language Syntax

    Table 2.2: Calyx Language Grammar (contd.)Non-Terminal Symbol Expansion

    identdecl IDENTIFIER

    | IDENTIFIER = exp| IDENTIFIER := exp

    assign exp | addr = exp| addr := exp| exp

    addr addr [ exp ]| IDENTIFIER

    exp or listor list or list | and list

    | and listand list and list & binary

    | binarybinary binary relop binary

    | binary + binary| binary - binary| binary * binary| binary / binary| binary ^ binary| unary

    relop =| ==

    | !=unary addr| aoterm| [ list ]| + unary| - unary| ! unary| floating point constant| string constant| TRUE| FALSE

    aoterm aoterm [ exp ]| IDENTIFIER ( list )

    | ( exp )list

    | list 1list 1 list 1 ; exp

    | exp

  • 7/28/2019 Calyx Manual

    35/138

    Chapter 3

    Kinematics

    3.1 Reference Frames

    Reference frames are used to measure the coordinates of vectors. These reference frames maybe stationary or moving. Moving reference frames are used to describe the kinematics of amultibody system. In this manual, a reference frame is denoted by upper case names such as X,Xo, X1 and X2. There is a special reference frame called the fixed reference frame, denotedhere by Xo which is an inertial reference frame, and is used as the basis for defining all otherreference frames.

    3.2 Vectors

    The term vector is used to refer to three-dimensional vectors. The representation of a vectorconsists of its coordinates measured in some reference frame. In this manual, a vector is denotedby a lower case symbol such as x1, e1, o, and a. Except for the special vectors e1, e2, and e3,the subscript denotes the reference frame in which the coordinates have been measured.

    Some vectors such as surface normal vectors and tangent vectors, are the same measured intwo reference frames that have different origins, but have parallel axes. Such vectors are referredto here as Relative Vectors. Other vectors, such as the position of a point in space are not thesame in these two frames. We refer to these vectors as Position Vectors.

    There are three predefined unit vectors e1 , e2 , and e3. These are relative vectors and pointalong the three axes of a reference frame. They form a right handed system. There is a predefinedposition vector o, also referred to as Origin, which is the position vector corresponding to theorigin of a reference frame.

    Arbitrary vectors can be formed by linear combinations of these vectors, such as:

    x = o + 0.001e1 + 0.2e2 (3.1)

    a = 0.001e1 + 0.2e2 (3.2)

    Here x is a position vector and a is a relative vector.

    3.3 Transformation Operators

    Transformation operators are used to describe new reference frames based on previously definedreference frames. If X1 and X2 are two reference frames attached to two independently movingbodies (Figure 3.1), and x1 and x2 are coordinates of a vector (Relative vector or Position vector)

  • 7/28/2019 Calyx Manual

    36/138

    24 Kinematics

    Figure 3.1: Reference Frames X1 and X2

    measured in the frames X1 and X2 respectively (position vectors are depicted in Figure 3.1),then a linear operator can be used to convert x1 to x2 :

    x2 = Qx1 (3.3)

    Q is called a Transformation operator, and it is used to define the motion of the frame X2 withrespect to X1.

    Equivalently, we may also express the relationship between the reference frame as

    X2 = QX1 (3.4)

    Transformation operators may be compounded. So if we have a third reference frame X3 relatedto X2 by:

    X3 = PX2 (3.5)

    Then we can create a new operator S by compounding Q and P as follows:

    X3 = P(QX1) (3.6)

    Or:X3 = SX1 (3.7)

    Where:S = PQ (3.8)

    Two Calyx functions are used to build the basic transformation operators: Translate() and

    Rotate(). New operators can be created by compounding these basic operators.

    3.4 The translation operator

    The function Translate(v) used to create the operator T(v) takes one argument; a translationvector v. The notation:

    X2 = T(v)X1 (3.9)

  • 7/28/2019 Calyx Manual

    37/138

    3.5 The rotation operator 25

    Figure 3.2: Example of the translation operation

    means that the reference frame X2 is obtained by translating the origin of X1 by the vector v.v is a relative vector, and may be measured either in X1 or X2. Coordinates x1 and x2 of aposition or relative vector measured in X1 and X2 are also transformed by the same operator:

    x2 = T(v)x1 (3.10)

    Figure 3.2 shows an example of a translation operator in action.

    3.5 The rotation operator

    The function Rotate(theta,a) used to create the operator R(, a) takes two arguments; a scalarvalue which is the amount of rotation in Radians, and a vector value a which must be a unitvector in the direction of the axis of rotation. The right hand rule is used to define the sign ofthe rotation angle. The notation:

    X2 = R(, a)X1 (3.11)

    means that the reference frame X2 is obtained by rotating X1 by an angle about an axis alongthe unit vector a passing through the origin of X1. a is a relative vector, and may be measuredeither in X1 or X2, because a is the same when measured in either. Coordinates x1 and x2 of aposition or relative vector measured in X1 and X2 are also transformed by the same operator:

    x2 = R(, a)x1 (3.12)

    Figure 3.4 shows the rotation and translation operators compounded.A statement of the type:

    var Omega_Carrier:=1100;

    var Carrier_Initial_Rotn:=1.278;

    var XCarrier:=

    Rotate(Time*Omega_Carrier+Carrier_Initial_Rotn,e3)*

    Fixed_Frame;

  • 7/28/2019 Calyx Manual

    38/138

    26 Kinematics

    Figure 3.3: Example of the Rotation Operation

    Figure 3.4: Example of the Translation and Rotation operations combined

  • 7/28/2019 Calyx Manual

    39/138

    3.5 The rotation operator 27

    Figure 3.5: Carrier reference frame definition

    defines a new reference frame and stores the definition in the variable XCarrier. This newreference frame is related to the fixed frame through the Rotation operator, and is obtained byrotating the Fixed frame by the amount Time*Omega Carrier about an axis parallel to the Zaxis (= e3) of the Fixed frame, and passing through the origin of the Fixed frame (Figure 3).Equivalently we may write:

    var Omega_Carrier:=1100;

    var Carrier_Initial_Rotn:=1.278;

    var XfmCarrier:=

    Rotate(Time*Omega_Carrier+Carrier_Initial_Rotn,e3);

    var XCarrier:= XfmCarrier*Fixed_Frame;

    Here XfmCarrier contains only the transformation operator, and XCarrier contains the definitionof the new reference frame.

    Other reference frames may be obtained by compounding other transformations on the Fixedframe, or on reference frames defined earlier:

    var Sun_Axis_From_Carrier_Axis_Error:=-0.000001*e1+0.000002*e2;

    var Sun_Runout_Error := 0.000002*e1+0.000001*e2;

    var Sun_Initial_Rotn :=-0.26768471940946;var XSun :=Translate(Sun_Runout_Error)*

    Rotate(Time*Omega_Sun+Sun_Initial_Rotn)*

    Translate(Sun_Axis_From_Carrier_Axis_Error)*

    Fixed_Frame;

    Here the fixed frame is first translated to account for the error in the location of the sun axisin the fixed frame. Then the Rotation operator is applied, and finally, a translation operator

  • 7/28/2019 Calyx Manual

    40/138

    28 Kinematics

    fixed

    w qt+s so

    X

    Xsun

    Sun Axis from Carrier Axis Error

    Sun Runout Error

    Sun Gear Pitch Circle

    0.000001

    0.0000

    02

    0.

    0000

    02

    0.000001

    Figure 3.6: Sun reference frame definition

  • 7/28/2019 Calyx Manual

    41/138

    3.6 Angular velocity and acceleration of reference frames 29

    is applied to account for the sun runout error, and the sun gears reference frame XSun is obtained.Sun Runout Error is a relative vector measured in the frame XSun. Sun Axis From Carrier Axis Erroris also a relative vector, but is measured in the Fixed frame (Figure 3.6).

    Consider the following operation (Illustrated in Figure 3.7):

    var Omega_ Planet =3300;

    var Cent_Dist_Planet_Sun=10.0;var Planet_1_Runout_Error:=0.000002*e1+0.000001*e2;

    var Planet_1_Pin_Posn_Error:=0.000001*e1+0.000002*e2;

    var XPlanet_1:=

    Translate(Planet_1_Runout_Error)*

    Rotate((Omega_Planet-Omega_Carrier)*Time+

    Planet_1_Initial_Rotn,e3)*

    Translate(Cent_Dist_Planet_Sun*e2+

    Planet_1_Pin_Posn_Error)*

    XCarrier;

    Here the reference frame for Planet 1, XPlanet 1 is obtained by taking the Carrier referenceframe XCarrier, and first applying a translation equal to the center distance between the planet

    and carrier in the Y direction (= e2) of the carrier reference frame, and the pin position error.Then a rotation is applied, and finally a translation is applied to account for the eccentricity ofthe planet. The pin position error and the runout errors are defined as relative vectors. The pinposition error vector is measured in the carrier reference frame XCarrier, and the runout errorvector is measured in the planet reference frame XPlanet 1. The transformation operators areretained in symbolic form by Calyx so that it may later compute velocities and accelerations bydifferentiating these operators with respect to time.

    3.6 Angular velocity and acceleration of reference frames

    Given two reference frames X1 and X2 such that:

    X2 = PX1 (3.13)

    X1 = QX2 (3.14)

    Where:P = Q1 (3.15)

    Then the angular velocity of frame X1 with respect to frame X2, measured in frame X2 is:

    122 = P

    ((Pe3).(

    dP

    dte2))e1 + ((Pe1).(

    dP

    dte3))e2 + ((Pe2).(

    dP

    dte1))e3

    (3.16)

    And the angular velocity of frame X2 with respect to frame X1, measured in frame X1 is:

    211 = Q

    ((Qe3).(

    dQ

    dt e2))e1 + ((Qe1).(

    dQ

    dt e3))e2 + ((Qe2).(

    dQ

    dt e1))e3

    (3.17)

    3.7 Example

    Compute the angular acceleration of a top spinning with an angular velocity of 100 Rad/sec,with an axis that is tipped over by /6 Rad, precessing about the vertical axis at 2 Rad/sec:

    Input:

  • 7/28/2019 Calyx Manual

    42/138

    30 Kinematics

    Figure 3.7: Planet reference frame definition

  • 7/28/2019 Calyx Manual

    43/138

    3.7 Example 31

    // Ref Frame 1 is fixed frame.

    // Ref frame 2 is attached to a top spinning with

    // angular velocity 100 Rad/s, with an axis

    // that is tipped over by pi/6 Radians, precessing

    // at 2 Radians per sec.

    // Transformation from 1 to 2 (X2=P*X1):

    var P:=

    Rotate(100*Time,e3)*

    Rotate(pi/6,e1)*

    Rotate(2*Time,e3);

    var Pdot:=TotalDiff(P,Time);

    // Transformation from 2 to 1 (X1=Q*X2):

    var Q:=

    Rotate(-2*Time,e3)*

    Rotate(-pi/6,e1)*

    Rotate(-100*Time,e3);

    var Qdot:=TotalDiff(Q,Time);

    // Angular velocity of Frame 2 wrt Frame 1 measured in Frame 1:var Omega211:=Q*(((Q*e3)*(Qdot*e2))*e1+

    ((Q*e1)*(Qdot*e3))*e2+

    ((Q*e2)*(Qdot*e1))*e3);

    Out("Motion of 2 wrt. 1 measured in 1:\nOmega=",Eval(Omega211),

    "\nAccln=",Eval(TotalDiff(Omega211,Time)));

    // Angular velocity of Frame 2 wrt Frame 1 measured in Frame 2:

    var Omega212:=P*Omega211;

    Out("Motion of 2 wrt. 1 measured in 2:\nOmega=",Eval(Omega212),

    "\nAccln=",Eval(TotalDiff(Omega212,Time)));

    // Angular velocity of Frame 1 wrt Frame 2 measured in Frame 2:

    var Omega122:=P*(((P*e3)*(Pdot*e2))*e1+

    ((P*e1)*(Pdot*e3))*e2+

    ((P*e2)*(Pdot*e1))*e3);

    Out("Motion of 1 wrt. 2 measured in 2:\nOmega=",Eval(Omega122),

    "\nAccln=",Eval(TotalDiff(Omega122,Time)));

    // Angular velocity of Frame 1 wrt Frame 2 measured in Frame 1:

    var Omega121:=Q*Omega122;

    Out("Motion of 1 wrt. 2 measured in 1:\nOmega=",Eval(Omega121),

    "\nAccln=",Eval(TotalDiff(Omega121,Time)));

    Output:

    Motion of 2 wrt. 1 measured in 1:

    Omega=[

    0

    -5088.6025

    0

    ]

    Accln=[

    100

    0

    0

  • 7/28/2019 Calyx Manual

    44/138

    32 Kinematics

    0

    ]

    Motion of 2 wrt. 1 measured in 2:

    Omega=[

    0

    1

    101.7320

    ]

    Accln=[

    100

    0

    0

    0

    ]

    Motion of 1 wrt. 2 measured in 2:

    Omega=[

    0

    -1

    -101.7320

    ]

    Accln=[

    -100

    0

    0

    0

    ]

    Motion of 1 wrt. 2 measured in 1:

    Omega=[

    0

    50

    -88.6025

    0

    ]

    Accln=[

    -100

    0

    0

    0

    ]

  • 7/28/2019 Calyx Manual

    45/138

    Chapter 4

    Two-Dimensional Finite ElementModel

    4.1 Nodes

    The finite element concept of nodes is used in a generalized sense: nodes are simply the smallestbundle of finite element data. They may or may not be associated with a point in space.Depending on the use of this bundle of data, the node may be classified as either a coordinate ordisplacement node, and depending on the availability of a physical interpretation for the samedata, it may be classified as either a real or virtual node.

    4.1.1 Coordinate vs. displacement nodes

    When the data associated with a node is used to interpolate coordinates, the node is said to bea coordinate node. 2D Coordinate nodes have two coordinate data values associated with them.When the data associated with a node is used to interpolate displacements and stresses, the

    node is said to be a displacement node. A 2D displacement node has four floating point and twointeger values associated with it: two floating point values for the 2D displacement component,floating point values for two load components, and two integer constraint codes associated witheach of the two nodal degrees of freedom. A constraint code of 1 means that the correspondingdegree of freedom is constrained, while a constraint code of 0 means that the degree of freedomis free.

    4.1.2 Real vs. virtual nodes

    When the components of a coordinate node can be associated with the components of thecoordinate vector of an actual point in space, the node is said to be a real node. Similarly,when the displacement and stress components of a displacement node can be associated with the

    displacements and stresses at an actual point in space, the node is said to be a real displacementnode. Otherwise it is said to be a virtual node. The distinction between real and virtual nodesis of no consequence if one makes sure not to attach a physical interpretation to the values ofthe components of nodes.

    4.2 Contact surfaces

  • 7/28/2019 Calyx Manual

    46/138

    34 Two-Dimensional Finite Element Model

    A contact surface in a 2D finite element model is a curve. The curve is defined by a sequence ofcoordinate nodes. The odd members of this sequence contain the position vector, and the evenmebers contain normal vector. Each contact surface is assigned a unique name.

    4.3 D.O.F. sets

    Each node has two degrees of freedom (Dofs). These nodal degrees of freedom may be groupedtogether in named sets referred to here as Dof Sets or Dofsets. If a particular Dof is not explicitlyassigned to any named Dofset, then by default, it is assigned to a predefined set called Slave.

    4.4 Rigid regions

    The finite element model may also include rigid regions. Rigid regions have mass, momentsof inertia, and damping. The 2D rigid region has two translation and one rotation degrees offreedom. Each rigid region is also assigned a name.

    4.5 Gap constraints

    Some of the degrees of freedom in a mesh file: 2 nodal degrees of freedom per displacement node,and 3 degrees of freedom per rigid region can be related to each other through an inequalityconstraint called a gap constraint:

    + C1u1 + C2u2 + . . . 0 (4.1)

    The load carried by this gap is the generalized load:

    C1f1 + C2f2 + . . . (4.2)

    4.6 Element

    An element is defined as a composite of a bundle of coordinate nodes, a bundle of displacementnodes and a set of material properties. The bundle of coordinate nodes is called the elementcoordinate connectivity. The bundle of displacement nodes is called the element displacementconnectivity. The elements are modeled as isotropic plane strain elements.

    4.6.1 Coordinate connectivity

    The number of coordinate nodes used to define the coordinate connectivity of an element dependson the degree of coordinate accuracy that is required of that element. Elements that share partof the active profile of the teeth or part of the fillet have a very high coordinate accuracyrequirement. Typically, the coordinates along the active profile must be defined to within 106

    inches everywhere along the profile. Elements in the interior of the teeth need not have the same

    degree of coordinate accuracy.

    Type I coordinate connectivity

    Type I connectivity may be used for the elements requiring low coordinate accuracy. Figure 4.1shows an element with type I connectivity. The element consists of only four coordinate nodes.All four are real nodes. Coordinates of points within an element that do not lie along any ofthese four nodes may be obtained by linear interpolation between the nodes. Any side of a type

  • 7/28/2019 Calyx Manual

    47/138

    4.6 Element 35

    Figure 4.1: Type I coordinate connectivity

    I element may be shared with any side of another type I element. If a type II coordinate elementlies adjacent to a type I element, then the common side must be the =-1 side of the type IIelement, but can be any side of the type I element.

    Type II coordinate connectivity

    Elements along the active profile and fillet region use type II connectivity. This kind of elementhas a variable number of coordinate nodes. This number n of coordinate nodes is even and greaterthan six, as shown in Figure 4.2. Nodes number 1, 2, 3, 5, 7, . . . , n 1 are all real coordinate

    nodes. Coordinate nodes number 4, 6, 8, 10, . . . , n are virtual coordinate nodes used to definethe variation of the surface normal along the = +1 side of the element. This kind of elementshould not be interfaced with any other element along this ( = +1 ) side. The element mayinterface with type II elements on the = +1 and = 1 sides. Along the side = 1, theelement may interface with any side of a type I element, or with the = 1 side of another typeII element.

    4.6.2 Displacement connectivity

    At this time, only one kind of displacement connectivity is available to choose from. But thisdisplacement connectivity has optional nodes, so that the displacement connectivity can bevaried from a linear element connectivity all the way to a complete cubic element connectivity.

    Figure 4.3 shows an element with sixteen displacement nodes. The four corner nodes 1 to 4 arereal displacement nodes. They are mandatory, and must be included. The remaining nodes arecircled, indicating that they are optional. Any of these can be dropped from the element at theusers discretion. The number of dash marks within the circle indicates the order of interpolationthat the node is associated with, in the direction of the line that the circle is drawn on. Thisfigure is only a schematic representation. Table 1 lists explicitly the type of interpolation thateach node is associated with. The nodes that are drawn on the boundaries of an element mustbe shared with elements that share the same boundary.

  • 7/28/2019 Calyx Manual

    48/138

    36 Two-Dimensional Finite Element Model

    Figure 4.2: Type II coordinate connectivity

    1 2

    34

    5 6

    7 8

    9

    10

    11

    12

    13 14

    15 16

    x

    h

    Figure 4.3: Displacement connectivity

  • 7/28/2019 Calyx Manual

    49/138

    4.6 Element 37

    Table 4.1: Interpolation type associated with displacement nodes

    Node interpolation interpolation1 Linear Linear

    1 at = 1 +1 at = 10 at = +1 0 at = +1

    2 Linear Linear0 at = 1 +1 at = 11 at = +1 0 at = +1

    3 Linear Linear0 at = 1 +1 at = 11 at = +1 0 at = +1

    4 Linear Linear1 at = 1 1 at = 10 at = +1 0 at = +1

    5 Linear Quadratic0 at = 1

    0 at = +1 0 at = +1

    6 Linear Quadratic0 at = 1

    0 at = 1 0 at = +17 Linear Cubic

    0 at = 10 at = +1 0 at = +1

    8 Linear Cubic0 at = 1

    0 at = 1 0 at = +19 Quadratic Linear

    0 at = 10 at = +1 0 at = +1

    10 Quadratic Linear

    0 at = 10 at = +1 0 at = 11

    11 Cubic Linear0 at = 10 at = +1 0 at = +1

    12 Cubic Linear0 at = 10 at = +1 0 at = 1

    13 Quadratic Quadratic0 at = 1 0 at = 10 at = +1 0 at = +1

    14 Cubic Quadratic0 at = 1 0 at = 10 at = +1 0 at = +1

    15 Quadratic Cubic0 at = 1 0 at = 10 at = +1 0 at = +1

    16 Cubic Cubic0 at = 1 0 at = 10 at = +1 0 at = +1

  • 7/28/2019 Calyx Manual

    50/138

    38 Two-Dimensional Finite Element Model

    4.7 Mesh file format

    The 2D mesh file contains the following data:

    V ersionHeader (Optional, Version defaults to 0.00)

    nCoordNodes

    nDisplNodes

    nElems

    nContSurfs

    nDofSets

    nRigidRegions

    nGaps

    nCoordNodes

    x, y (coordinates of nodal position/normal vector)

    nDisplNodes

    if(F ileV ersionNo > 1.00)NodeTypeCode

    NodeTypeCode = 0 implies TRANSLATIONAL type displacement node.

    NodeTypeCode = 1 implies ROTATIONAL type displacement node.

    For F ileV ersionNo 1.00, the displacement node is assumed to be of the TRANS-LATIONAL type.

    ConstraintCode1, ConstraintCode2 (0=FREE,1=FIXED)

    e1x, e1y (unit vector e1)

    e2x, e2y (unit vector e2)

    f1|u1, f2|u2 (Prescribed nodal load or displacement)

    nElems

    if(F ileV ersionNo > 1.00)ElementTypeCode

    ElementTypeCode = 0 implies SOLID type element.

    For F ileV ersionNo 1.00, the element is assumed to be of the SOLID type.

    ncel (number of coordinate nodes in element)

    CNode1,CNode2,CNode3, . . . , C N o d encel

    ndel (number of displacement nodes in element)

    DNode1,DNode2,DNode3, . . . , D N o d endel

    Y oungsModulus PoissonsRatio

    Density

    RaleighAlpha

    RaleighBeta

    nContSurfs

  • 7/28/2019 Calyx Manual

    51/138

    4.7 Mesh file format 39

    Name

    nNodes

    nNodes

    iCoordNode, 1 iCoordNode nCoordNodes

    nDofSets Name

    nDofs

    nDofs

    iDisplNode, 1 iDisplNode nDisplNodes

    iDir, 1 iDir 2

    nRigidRegions

    Name

    T ranslConstraintCode1, T ranslConstraintCode2, RotnConstraintCode (0=FREE,1=FIXED)

    e1x, e1y (unit vector e1)

    e2x, e2y (unit vector e2)

    f1|u1, f2|u2, Mz|z (Prescribed nodal load or displacement)

    xcr, ycr (Center of rotation)

    xcm, ycm (Center of mass)

    Mass

    Mxx, Mxy, 0

    Myx, Myy, 0

    0, 0, 0

    RaleighAlpha

    RaleighBeta nNodeDirs

    nNodeDirs

    iDisplNode, 1 iDisplNode nDisplNodes

    iDir, 1 iDir 2

    nLines

    nLines

    x1, y1 x2, y2

    nGaps

    InitialGap (InitialGap + c1u1 + c2u2 + . . . 0)

    nNodeDirs

    nNodeDirs

    iDisplNode, 1 iDisplNode nDisplNodes

    iDir, 1 iDir 2

    C

  • 7/28/2019 Calyx Manual

    52/138

    40 Two-Dimensional Finite Element Model

    nRigidDirs

    nRigidDirs

    iRigidReg, 1 iRigidReg nRigidRegions

    iDir, 1 iDir 3

    C

    nArrows

    nArrows

    x, y

    nx, ny

    The V ersionHeader part of the mesh file is a single line, which must be in the followingformat:

    Mesh File Version No.:x.xx

    Presently, the version number x.xx may take any numeric value between 0.00 and 1.02. As newfields are added to the mesh file format, higher version numbers will be allowed. This line is

    optional, and if it is skipped, the file version will be assumed to be 0.00.This scheme allows newer versions of Calyx to read mesh files created for older versions.

  • 7/28/2019 Calyx Manual

    53/138

    Chapter 5

    External Structure Model

    Structures whose stiffness and mass properties have been computed outside of Calyx can beassembled into the Calyx model. Such an external structure will have a set of rotational andtranslational degrees of freedom (Figure 5.1)arranged in the column vector u. These Ndofsdegrees of freedom are relative to a reference frame attached to the structure. The reference

    frame itself has three translational and three rotational degrees of freedom arranged in thecolumn vector ur. The corresponding force vectors are f and fr.

    Furthermore, there may be gap type linear inequality constraints imposed on the structuredegrees of freedom. Let Ngap be the number of such constraints. Let d be a vector of the initialseparations, the vector of separation after the structure is deformed, and h a vector of thecompressive loads carried in each gap,

    The equation of motion is assumed to be of the form:

    K 0

    0 0

    u

    ur

    +

    M MrMTr Mrr

    u

    ur

    +

    C CrCTr Crr

    u

    ur

    +

    A

    0

    h =

    f

    fr

    (5.1)The damping matrices C, Cr and Crr are assumed to dependent on the mass and stiffnessmatrices through the Raleigh damping coefficients and :

    C = K (5.2)

    Cr = Mr (5.3)

    Crr = Mrr (5.4)

    Furthermore, there will be a linear inequality type of constraint arising from the non-interpenetrationcondition at the gaps:

    = d + ATu + Ch 0 (5.5)

    Here C is called the compliance matrix.

    5.1 File Format

    The external structure data is read by Calyx from a data file which has to follow the followingformat:

    nDofs

    nGaps

    RaleighAlpha

  • 7/28/2019 Calyx Manual

    54/138

    42 External Structure Model

    Figure 5.1: An external structure and its degrees of freedom (dofs).

  • 7/28/2019 Calyx Manual

    55/138

    5.1 File Format 43

    RaleighBeta

    nDofs

    Name

    T ranslationCode (1=Translation, 0=Rotation)

    x, y, z (Position vector) nx, ny, nz (Direction vector for dof.)

    iGap = 1 : nGaps

    diGap

    nGapDofs

    nGapDofs

    iDof (1 iDof nDofs)

    AiDof,iGap

    nArrows

    nArrows x, y, z

    nx, ny, nz

    iDof = 1 : nDofs

    jDof = 1 : nDofs

    KiDof,jDof Stiffness Term

    MiDof,jDof Mass Term

    jrDof = 1 : 6

    M riDof,jrDof Mass term for ref. frame acceln

    irDof = 1 : 6 jrDof = 1 : 6

    M rrirDof,jrDof Mass term for ref. frame acceln

    iDof = 1 : nDofs

    fiDof Generalized load

    iGap = 1 : nGaps

    jGap = 1 : nGaps

    CiGap,jGap Gap compliance matrix

  • 7/28/2019 Calyx Manual

    56/138

    44 External Structure Model

  • 7/28/2019 Calyx Manual

    57/138

    Chapter 6

    Three-Dimensional FiniteElement Model

    6.1 Nodes

    Similar to nodes in the two-dimensional finite element model, the three-dimensional may or maynot be associated with a point in space. Depending on the use of this bundle of data, the nodemay be classified as either a coordinate or displacement node, and depending on the availabilityof a physical interpretation for the same data, it may be classified as either a real or virtualnode.

    6.1.1 Coordinate vs. displacement nodes

    When the data associated with a node is used to interpolate coordinates, the node is said tobe a coordinate node. 3D Coordinate nodes have three coordinate data values associated withthem. A 3D displacement node has seven floating point and two integer values associated with

    it: three floating point values for the 3D displacement component, three floating point values forthree load components, and three integer constraint codes associated with each of the two nodaldegrees of freedom. A constraint code of 1 means that the corresponding degree of freedom isconstrained, while a constraint code of 0 means that the degree of freedom is free.

    6.1.2 Real vs. virtual nodes

    When the components of a coordinate node can be associated with the components of thecoordinate vector of an actual point in space, the node is said to be a real node. Similarly, whenthe displacement of a displacement node can be associated with the displacements and stressesat an actual point in space, the node is said to be a real displacement node. Otherwise it is saidto be a virtual node. The distinction between real and virtual nodes is of no consequence if one

    makes sure not to attach a physical interpretation to the values of the components of nodes.

    6.2 Axodes

    A group of nodes may sometimes be used to interpolate displacements or coordinates along acurve in space. If it is a group of coordinate nodes, then this group is called a coordinate axode.A group of displacement nodes can be used to form a displacement axode.

  • 7/28/2019 Calyx Manual

    58/138

    46 Three-Dimensional Finite Element Model

    6.3 Contact surfaces

    A contact surface in a 3D finite element model is made up of rectangular patches. Each patchof the contact surface comes from a face of an individual finite element.

    6.4 D.O.F. setsAll the nodal degrees of freedom may be grouped together in named sets referred to here as DofSets or Dofsets. If a particular Dof is not explicitly assigned to any named Dofset, then bydefault, it is assigned to a predefined set called Slave.

    6.5 Rigid regions

    The finite element model may also include rigid regions. Rigid regions have mass, moments ofinertia, and damping. The 3D rigid region has three translation and three rotation degrees offreedom. Each rigid region is also assigned a name.

    6.6 Gap constraintsSome of the degrees of freedom in a mesh file: three nodal degrees of freedom per displacementnode, and six degrees of freedom per rigid region can be related to each other through aninequality constraint called a gap constraint:

    + C1u1 + C2u2 + . . . 0 (6.1)

    The load carried by this gap is the generalized load:

    C1f1 + C2f2 + . . . (6.2)

    6.7 Element

    An element is defined as a composite of a set of coordinate nodes, a set of displacement nodesor axodes and a set of material properties. The set of coordinate nodes or axodes is calledthe element coordinate connectivity. The set of displacement nodes or axodes is called theelement displacement connectivity. As long as the element shapes are compatible, any typeof coordinate connectivity can be combined with any type of displacement connectivity. Forexample, linear pentahedral coordinate connectivity can be used with a cubic pentahedral shelldisplacement connectivity. This allows for greater flexibility in choosing the type of coordinateand displacement interpolation within a finite element.

    6.7.1 Coordinate connectivity

    Several options are available for the coordinate connectivity of an element. The Lagragian,

    pentahedral and tetrahedral elements are conventional elements. The FQP elements combine a2D element in cross-section with an axode at every 2D node location. Each axode may have adifferent order (or number of nodes). These FQP elements have only been implemented for therectangular cross sections.

    LAGRANGE LINEAR

    The linear Lagrangian (CoordInterpolationTypeCode=0) element has 8 nodes, all of whichare mandatory. The node numbering is shown in Figure 6.1 and Table 6.1. , and are

  • 7/28/2019 Calyx Manual

    59/138

    6.7 Element 47

    Figure 6.1: Linear Lagrangian hexahedral coordinate element

    Table 6.1: Element coordinates of nodes in a linear Lagrangian hexahedral coordinate element

    Node Type

    1 corner 1 1 12 corner +1 1 13 corner 1 +1 14 corner +1 +1 15 corner 1 1 +16 corner +1 1 +17 corner 1 +1 +18 corner +1 +1 +1

    element coordinates. Each of these element coordinates ranges from 1.0 to +1.0 over thevolume of the element.

    LAGRANGE QUADRATIC

    The Quadratic Lagrangian (CoordInterpolationTypeCode=1) element has 27 nodes. Thenode numbering is shown in Figure 6.2 and Table 6.2. Of the 27 nodes, the first 8 arecorner nodes, and are mandatory. The remaining 19 nodes are mid-edge, mid-face andmid-volume nodes, and are optional. , and are element coordinates. Each of theseelement coordinates ranges from 1.0 to +1.0 over the volume of the element.

    LAGRANGE CUBIC

    The Cubic Lagrangian (CoordInterpolationTypeCode=2) element has 64 nodes. The nodenumbering is shown in Table 6.12. Of the 64 nodes, the first 8 are corner nodes, and aremandatory. The remaining 56 nodes are mid-edge and mid-face nodes, and are optional., and are element coordinates. Each of these element coordinates ranges from 1.0to +1.0 over the volume of the element.

    PENT A LINEAR

  • 7/28/2019 Calyx Manual

    60/138

    48 Three-Dimensional Finite Element Model

    Table 6.2: Element coordinate of nodes in a quadratic Lagrangian hexahedral coordinate element

    Node Type

    1 corner 1 1 12 corner +1 1 13 corner 1 +1 14 corner +1 +1 15 corner 1 1 +1

    6 corner +1 1 +17 corner 1 +1 +18 corner +1 +1 +19 mid-edge 0 1 1

    10 mid-edge 0 +1 111 mid-edge 0 1 +112 mid-edge 0 +1 +113 mid-edge 1 0 114 mid-edge +1 0 115 mid-edge 1 0 +116 mid-edge +1 0 +117 mid-edge 1 1 018 mid-edge +1 1 0

    19 mid-edge 1 +1 020 mid-edge +1 +1 021 mid-face 1 0 022 mid-face +1 0 023 mid-face 0 1 024 mid-face 0 +1 025 mid-face 0 0 126 mid-face 0 0 +127 mid-volume 0 0 0

  • 7/28/2019 Calyx Manual

    61/138

    6.7 Element 49

    Table 6.3: Element coordinate of nodes in a cubic Lagrangian hexahedral coordinate element

    Node Type

    1 corner 1 1 12 corner +1 1 13 corner 1 +1 14 corner +1 +1 15 corner 1 1 +16 corner +1 1 +17 corner 1 +1 +18 corner +1 +1 +19 edge 1/3 1 1

    10 edge +1/3 1 111 edge 1/3 +1 112 edge +1/3 +1 113 edge 1/3 1 +114 edge +1/3 1 +115 edge 1/3 +1 +116 edge +1/3 +1 +117 edge 1 1/3 118 edge 1 +1/3 119 edge +1 1/3 120 edge +1 +1/3 1

    21 edge 1 1/3 +122 edge 1 +1/3 +123 edge +1 1/3 +124 edge +1 +1/3 +125 edge 1 1 1/326 edge 1 1 +1/327 edge +1 1 1/328 edge +1 1 +1/329 edge 1 +1 1/330 edge 1 +1 +1/331 edge +1 +1 1/332 edge +1 +1 +1/3

    Node Type

    33 face 1 1/3 1/334 face 1 +1/3 1/335 face 1 1/3 +1/336 face 1 +1/3 +1/337 face +1 1/3 1/338 face +1 +1/3 1/339 face +1 1/3 +1/340 face +1 +1/3 +1/341 face 1/3 1 1/342 face +1/3 1 1/343 face 1/3 1 +1/344 face +1/3 1 +1/345 face 1/3 +1 1/346 face +1/3 +1 1/347 face 1/3 +1 +1/348 face +1/3 +1 +1/349 face 1/3 1/3 150 face +1/3 1/3 151 face 1/3 +1/3 152 face +1/3 +1/3 1

    53 face 1/3 1/3 +154 face +1/3 1/3 +155 face 1/3 +1/3 +156 face +1/3 +1/3 +157 vol. 1/3 1/3 1/358 vol. +1/3 1/3 1/359 vol. 1/3 +1/3 1/360 vol. +1/3 +1/3 1/361 vol. 1/3 1/3 +1/362 vol. +1/3 1/3 +1/363 vol. 1/3 +1/3 +1/364 vol. +1/3 +1/3 +1/3

  • 7/28/2019 Calyx Manual

    62/138

    50 Three-Dimensional Finite Element Model

    Figure 6.2: Quadratic Lagrangian hexahedral coordinate element

    Table 6.4: Element coordinate of nodes in a linear pentahedral coordinate element

    Node Type

    1 corner 1 0 0 12 corner 0 1 0 13 corner 0 0 1 14 corner 1 0 0 +15 corner 0 1 0 +16 corner 0 0 1 +1

    The Linear Pentahedral (CoordInterpolationTypeCode=11) element has 6 nodes. Thenode numbering is shown in Figure 6.3 and Table 6.4. All the nodes are mandatory. ,, and are element coordinates. Of these, , and are area coordinates of a pointin the trangular cross section. Each of them ranges from 0.0 to +1.0 over the area of thecross section. They are related by the relationship.

    + + = 1.0 (6.3)

    varies from 1.0 to +1.0.

    P ENT A QUADRAT IC

    The Quadratic Pentahedral (CoordInterpolationTypeCode=12) element has 18 nodes. Thenode numbering is shown in Figure 6.4 and Table 6.5. All the nodes are mandatory. Thefirst 6 are corner nodes. The remaining 12 are mid-edge and mid-face nodes. , , and are element coordinates. Of these, , and are area coordinates of a point in thetrangular cross section. Each of them ranges from 0.0 to +1.0 over the area of the crosssection. They are related by the relationship.

    + + = 1.0 (6.4)

  • 7/28/2019 Calyx Manual

    63/138

    6.7 Element 51

    Figure 6.3: Linear pentahedral coordinate element

    Figure 6.4: Quadratic pentahedral coordinate element

  • 7/28/2019 Calyx Manual

    64/138

    52 Three-Dimensional Finite Element Model

    Table 6.5: Element coordinate of nodes in a quadratic pentahedral coordinate element

    Node Type

    1 corner 1 0 0 12 corner 0 1 0 1

    3 corner 0 0 1 14 corner 1 0 0 +15 corner 0 1 0 +16 corner 0 0 1 +17 edge 0 1/2 1/2 18 edge 1/2 0 1/2 19 edge 1/2 1/2 0 1

    10 edge 0 1/2 1/2 +111 edge 1/2 0 1/2 +112 edge 1/2 1/2 0 +113 edge 1 0 0 014 edge 0 1 0 015 edge 0 0 1 0

    16 face 0 1/2 1/2 017 face 1/2 0 1/2 018 face 1/2 1/2 0 0

    varies from 1.0 to +1.0.

    PE NTA CUBIC

    The Cubic Pentahedral (CoordInterpolationTypeCode=13) element has 40 nodes. Thenode numbering is shown in Table 6.6. All the nodes are mandatory. The first 6 are cornernodes. The remaining 34 are mid-edge, mid-face and mid-volume nodes. , , and areelement coordinates. Of these, , and are area coordinates of a point in the trangular

    cross section. Each of them ranges from 0.0 to +1.0 over the area of the cross section.They are related by the relationship.

    + + = 1.0 (6.5)

    varies from 1.0 to +1.0.

    T ETRA LINEAR

    The Linear Tetrahedral (CoordInterpolationTypeCode=8) element has 4 nodes. The nodenumbering is shown in Figure 6.5 and Table 6.7. All the nodes are mandatory. , , and are element volume coordinates. They are related by the relationship.

    + + + = 1.0 (6.6)

    TETRA QUADRATICThe Quadratic Tetrahedral (CoordInterpolationTypeCode=9) element has 10 nodes. Thefirst 4 nodes are corner nodes. The remaining 6 nodes are mid-edge nodes. The nodenumbering is shown in Figure 6.6 and Table 6.8. All the nodes are mandatory. , , and are element volume coordinates. They are related by the relationship.

    + + + = 1.0 (6.7)

  • 7/28/2019 Calyx Manual

    65/138

    6.7 Element 53

    Table 6.6: Element coordinate of nodes in a cubic pentahedral coordinate element

    Node Type 1 corner 1 0 0 12 corner 0 1 0 13 corner 0 0 1 14 corner 1 0 0 +15 corner 0 1 0 +16 corner 0 0 1 +17 edge 0 2/3 1/3 18 edge 0 1/3 2/3 19 edge 1/3 0 2/3 1

    10 edge 2/3 0 1/3 111 edge 2/3 1/3 0 112 edge 1/3 2/3 0 113 edge 0 2/3 1/3 +114 edge