Post on 03-Apr-2018
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