Ans Prog
Ans Prog
Reference
ANSYS, Inc.
Southpointe
275 Technology Drive
Canonsburg, PA 15317
[email protected]
http://www.ansys.com
(T) 724-746-3304
(F) 724-514-9494
Release 14.5
October 2012
002328
ANSYS, Inc. is
certified to ISO
9001:2008.
Disclaimer Notice
THIS ANSYS SOFTWARE PRODUCT AND PROGRAM DOCUMENTATION INCLUDE TRADE SECRETS AND ARE CONFIDENTIAL AND PROPRIETARY PRODUCTS OF ANSYS, INC., ITS SUBSIDIARIES, OR LICENSORS. The software products
and documentation are furnished by ANSYS, Inc., its subsidiaries, or affiliates under a software license agreement
that contains provisions concerning non-disclosure, copying, length and nature of use, compliance with exporting
laws, warranties, disclaimers, limitations of liability, and remedies, and other provisions. The software products
and documentation may be used, disclosed, transferred, or copied only in accordance with the terms and conditions
of that software license agreement.
ANSYS, Inc. is certified to ISO 9001:2008.
Third-Party Software
See the legal information in the product help files for the complete Legal Notice for ANSYS proprietary software
and third-party software. If you are unable to access the Legal Notice, please contact ANSYS, Inc.
Published in the U.S.A.
Table of Contents
Preface ...................................................................................................................................................... xix
I. Guide to Interfacing with ANSYS ............................................................................................................. 1
1. Format of Binary Data Files ............................................................................................................... 3
1.1. Understanding ANSYS Binary Files .............................................................................................. 3
1.1.1. Conventions Used to Describe Binary Files .......................................................................... 4
1.1.2. The Standard Header for ANSYS Binary Files ........................................................................ 4
1.2. Description of the Results File ..................................................................................................... 5
1.2.1. Nomenclature .................................................................................................................... 5
1.2.2. Standard ANSYS File Header ............................................................................................... 5
1.2.3. Results File Format ............................................................................................................. 6
1.3. Description of the Reduced Displacement File ........................................................................... 26
1.3.1. Standard ANSYS File Header ............................................................................................. 26
1.3.2. RDSP File Format .............................................................................................................. 26
1.4. Description of the Reduced Complex Displacement File ............................................................. 30
1.4.1. Standard ANSYS File Header ............................................................................................. 30
1.4.2. RFRQ File Format .............................................................................................................. 30
1.5. Description of the Modal Results File ......................................................................................... 34
1.5.1. Standard ANSYS File Header ............................................................................................. 34
1.5.2. MODE File Format ............................................................................................................ 34
1.6. Description of the Element Matrices File .................................................................................... 38
1.6.1. Standard ANSYS File Header ............................................................................................. 39
1.6.2. EMAT File Format .............................................................................................................. 39
1.7. Description of the Substructure Matrices File ............................................................................. 43
1.7.1. Standard ANSYS File Header ............................................................................................. 43
1.7.2. SUB File Format ................................................................................................................ 43
1.8. Description of the Component Mode Synthesis Matrices (CMS) File ............................................ 48
1.8.1. Standard ANSYS File Header ............................................................................................. 48
1.8.2. CMS File Format ............................................................................................................... 48
1.8.3. TCMS File Format .............................................................................................................. 49
1.9. Description of the Full Stiffness-Mass File .................................................................................. 50
1.9.1. Standard ANSYS File Header ............................................................................................. 51
1.9.2. FULL File Format .............................................................................................................. 51
2. Accessing Binary Data Files ............................................................................................................. 59
2.1. Accessing ANSYS Binary Files .................................................................................................... 59
2.1.1. Access Routines to Results, Substructure, and Matrix Files .................................................. 59
2.1.2. Characteristics of ANSYS Binary Files ................................................................................. 60
2.1.3. Viewing Binary File Contents ............................................................................................ 61
2.1.4. Abbreviations .................................................................................................................. 61
2.1.5. binini (Initializing Buffered Binary I/O Systems) ................................................................. 61
2.1.6. Function sysiqr (Retrieving the Status of a File) .................................................................. 62
2.1.7. Function biniqr8 (Retrieving System-Dependent Parameters) ............................................ 62
2.1.8. Function binset (Opening a Blocked Binary File or Initializing Paging Space) ...................... 63
2.1.9. Subroutine bintfo (Defining Data for a Standard ANSYS File Header) .................................. 64
2.1.10. Subroutine binhed (Writing the Standard ANSYS File Header) ......................................... 64
2.1.11. Subroutine binrd8 (Reading Data from a Buffered File) .................................................... 65
2.1.12. Subroutine binwrt8 (Writing Data to a Buffered File) ....................................................... 66
2.1.13. Subroutine exinc4 (Decoding an Integer String into a Character String) ........................... 66
2.1.14. Subroutine inexc4 (Coding a Character String into an Integer String) ............................... 67
2.1.15. Subroutine binclo (Closing or Deleting a Blocked Binary File) .......................................... 67
2.1.16. Subroutine largeIntGet (Converting Two Integers into a Pointer) ..................................... 67
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
iii
Programmer's Reference
2.2. Demonstration Routines ........................................................................................................... 68
2.2.1. Program bintst (Demonstrates Dumping a Binary File and Copying It for Comparison Purposes) ...................................................................................................................................... 68
2.2.1.1. Common Variables: ................................................................................................. 68
2.2.2. Subroutine bintrd (Demonstrates Printing a Dump of File Contents) .................................. 68
2.2.3. Subroutine bintwr (Demonstrates Copying Binary File Contents) ....................................... 69
2.2.4. Program wrtsub (Demonstrates Writing an ANSYS Substructure File) ................................. 69
2.2.5. Program rdsubs (Demonstrates Reading a Substructure File) ............................................. 70
2.2.6. Program rdfull (Demonstrates Reading and Reformatting the .FULL File) ........................... 70
2.2.7. Program ResRdDemo (Demonstrates Reading a Results File) ............................................. 71
2.2.8. Program ResWrDemo (Demonstrates Writing a Results File) ............................................... 71
2.3. Results File Access Routines ...................................................................................................... 71
2.3.1. Overview of the Routines ................................................................................................. 71
2.3.2. ResRdBegin (Opening the File and Retrieving Global Information) ..................................... 72
2.3.3. ResRdGeomBegin (Retrieving Global Geometry Information) ............................................ 73
2.3.4. ResRdType (Retrieving Element Types) .............................................................................. 73
2.3.5. ResRdReal (Retrieving Real Constants) .............................................................................. 74
2.3.6. ResRdCsys (Retrieving Coordinate Systems) ...................................................................... 74
2.3.7. ResRdNode (Retrieving Nodal Coordinates) ...................................................................... 74
2.3.8. ResRdElem (Retrieving Elements) ..................................................................................... 74
2.3.9. ResRdSectMatBegin (Retrieving Global Section and Material Information) ......................... 75
2.3.10. ResRdSect (Retrieving Section Data) ............................................................................... 75
2.3.11. ResRdMat (Retrieving Material Data) ............................................................................... 75
2.3.12. ResRdSolBegin (Retrieving Result Set Location) ............................................................... 76
2.3.13. ResRdDisp (Retrieving Nodal Solution) ............................................................................ 76
2.3.14. ResRdRfor (Retrieving Reaction Solution) ........................................................................ 76
2.3.15. ResRdFix (Retrieving Applied Nodal Constraints) ............................................................. 77
2.3.16. ResRdForc (Retrieving Applied Nodal Loads Solution) ..................................................... 77
2.3.17. ResRdEstr (Retrieving Element Solutions) ........................................................................ 77
3. The CDWRITE (CDB) File Format ...................................................................................................... 79
3.1. Using the CDWRITE Command .................................................................................................. 79
3.1.1. Customizing Degree of Freedom Labels: the /DFLAB Command ........................................ 79
3.2. Coded Database File Commands ............................................................................................... 80
3.2.1. CE Command ................................................................................................................... 81
3.2.2. CP Command ................................................................................................................... 81
3.2.3. CMBLOCK Command ........................................................................................................ 82
3.2.4. EBLOCK Command ........................................................................................................... 82
3.2.5. EDCADAPT Command ...................................................................................................... 83
3.2.6. EDCGEN Command .......................................................................................................... 84
3.2.7. EDCURVE Command ........................................................................................................ 85
3.2.8. EDDRELAX Command ...................................................................................................... 86
3.2.9. EDLCS Command ............................................................................................................. 86
3.2.10. EDLOAD Command ........................................................................................................ 87
3.2.11. EDPREAD Command ...................................................................................................... 88
3.2.12. EDWELD Command ........................................................................................................ 89
3.2.13. EN Command ................................................................................................................. 90
3.2.14. LOCAL Command ........................................................................................................... 90
3.2.15. M Command .................................................................................................................. 91
3.2.16. MPDATA Command ........................................................................................................ 91
3.2.17. MPTEMP Command ........................................................................................................ 91
3.2.18. N Command ................................................................................................................... 92
3.2.19. NBLOCK Command ........................................................................................................ 92
iv
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Programmer's Reference
3.2.20. R Command ................................................................................................................... 93
3.2.21. RLBLOCK Command ....................................................................................................... 93
3.2.22. SECBLOCK Command ..................................................................................................... 94
3.2.23. SFBEAM Command ........................................................................................................ 95
3.2.24. SFE Command ................................................................................................................ 96
4. ANSYS Graphics File Format ........................................................................................................... 97
4.1. Pixmap Format for Graphic Display Files .................................................................................... 97
4.2. Neutral Graphics File Format ..................................................................................................... 98
4.2.1. Characters the Graphics File Uses ...................................................................................... 98
4.2.2. Graphics File Directives .................................................................................................... 99
4.2.2.1. Parameter Types for Graphics File Directives ............................................................. 99
4.2.2.2. Directive Descriptions ............................................................................................ 100
4.2.2.3. Color Specification ................................................................................................. 102
4.3. Decoding a Graphics File: an Example ...................................................................................... 103
4.3.1. The Example Command Stream ...................................................................................... 103
4.3.2. Example Graphics File Contents ...................................................................................... 104
II. Guide to User-Programmable Features .............................................................................................. 107
1. Using User Programmable Features (UPFs) .................................................................................. 109
1.1. What Are User Programmable Features? .................................................................................. 109
1.2. What You Should Know Before Using UPFs ............................................................................... 110
1.3. Planning Your UPFs ................................................................................................................. 111
1.4. Studying the ANSYS User Routines .......................................................................................... 111
1.5. Programming in Languages Other than Fortran ....................................................................... 112
1.6. Developing UPFs: a Suggested Strategy ................................................................................... 112
1.7. Include Decks ......................................................................................................................... 113
1.8. Choosing a Linking Method .................................................................................................... 114
1.9. Compiling and Linking UPFs on Linux Systems ........................................................................ 114
1.9.1. Using the /UPF Command .............................................................................................. 115
1.9.2. Creating a Shared Library ............................................................................................... 115
1.9.3. Using the ANS_ADMIN Utility ......................................................................................... 116
1.10. Compiling and Linking UPFs on Windows Systems ................................................................. 116
1.10.1. Using the /UPF Command ............................................................................................ 117
1.10.1.1. Using the /UPF Command on a Windows HPC Server System ................................ 119
1.10.2. Creating a Dynamic-link (DLL) Library ........................................................................... 120
1.10.3. Using the ANS_ADMIN Utility ....................................................................................... 121
1.10.4. Alternative to Using Visual Studio 2008 ......................................................................... 123
1.11. Activating UPFs ..................................................................................................................... 123
1.12. Running Your Custom Executable .......................................................................................... 124
1.13. Verifying Your Routines ......................................................................................................... 124
1.14. Debugging Commands ......................................................................................................... 125
1.14.1. Tracking the Path of Program Logic ............................................................................... 125
1.14.2. Debugging Elements and Solutions .............................................................................. 125
1.14.2.1. Solution Debug Format ........................................................................................ 126
1.14.2.2. Element Debug Format ........................................................................................ 126
1.14.2.3. General Debug Format ......................................................................................... 127
1.15. Other Useful Commands ....................................................................................................... 128
1.16. Generating Output ................................................................................................................ 128
1.17. Reading Large Data Files More Rapidly .................................................................................. 128
2. UPF Subroutines and Functions .................................................................................................... 129
2.1. Creating a New Element .......................................................................................................... 129
2.1.1. Input and Output Abbreviations ..................................................................................... 131
2.1.2. Creating a New Element via the User-Defined Element API .............................................. 131
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Programmer's Reference
2.1.2.1. Subroutine UserElem (Writing Your Own Elements) ................................................ 132
2.1.2.2. Subroutine ElemGetMat (Calling the Standard Structural Material Library) .............. 143
2.1.3. Creating a New Element by Directly Accessing the Program Database ............................. 147
2.1.3.1. User Subroutines ................................................................................................... 147
2.1.3.2. Subroutine uec100 (Defining Characteristics of the usr100 Subroutine) .................. 148
2.1.3.2.1. Subroutines uec101 through uec105 ............................................................. 148
2.1.3.3. Subroutine uex100 (Overriding Element Characteristic Defaults) ............................ 148
2.1.3.3.1. Subroutines uex101 through uex105 ............................................................. 149
2.1.3.4. Subroutine uel100 (Computing Element Matrices, Load Vectors, and Results) .......... 149
2.1.3.4.1. Subroutines uel101 through uel105 .............................................................. 150
2.1.3.5. Subroutine uep100 (Printing Output for User Elements in POST1 via
PRESOL,ELEM) ................................................................................................................. 150
2.1.3.5.1. Subroutines uep101 through uep105 ............................................................ 150
2.1.3.6. Subroutine usertr (Adjusting the Nodal Orientation Matrix) .................................... 151
2.1.3.7. Subroutine userac (Accessing Element Information) ............................................... 151
2.2. Supporting Subroutines for Element Creation .......................................................................... 151
2.2.1. Subroutine nminfo (Returning Element Reference Names) .............................................. 152
2.2.2. Subroutine svgidx (Fetching the Index for Saved Variables) ............................................. 152
2.2.3. Subroutine svrget (Fetching Saved Variable Data for an Element) ..................................... 152
2.2.4. Subroutine svrput (Writing an Element's Saved Variable Set) ........................................... 153
2.2.5. Subroutine svpidx (Writing the Saved Variable Element Index to a File) ............................ 153
2.2.6. Subroutine mreuse (Determining Which Element Matrices Can Be Reused) ...................... 154
2.2.7. Subroutine subrd (Reading Element Load Data for a Substructure Generation Run) ......... 155
2.2.8. Subroutine subwrt (Writing an Element Load Vector to a File for a Substructure Generation
Run) ....................................................................................................................................... 155
2.2.9. Subroutine rvrget (Fetching Real Constants for an Element) ............................................ 156
2.2.10. Subroutine propev (Evaluating a Group of Material Properties) ...................................... 156
2.2.11. Subroutine prope1 (Evaluating One Material Property) .................................................. 157
2.2.12. Subroutine pstev1 (Evaluating Material Properties for 1-D Elements) ............................. 158
2.2.13. Subroutine tbuser (Retrieving User Table Data) .............................................................. 158
2.2.14. Subroutine plast1 (Updating an Element's Plastic History) ............................................. 158
2.2.15. Subroutine plast3 (Updating an Element's Plastic History, 4 or 6 components) ................ 159
2.2.16. Subroutine creep1 (Updating an Element's Creep History) ............................................. 160
2.2.17. Subroutine creep3 (Updating an Element's Creep History, 3-D Elements) ....................... 160
2.2.18. Subroutine swell1 (Updating an Element's Swelling History) .......................................... 161
2.2.19. Subroutine swell3 (Updating an Element's Swelling History, 3-D Elements) .................... 161
2.2.20. Function elLenPsvrBuf (Determining Additional ESAV Record for Plasticity) .................... 162
2.2.21. Function nlget (Retrieving Material Nonlinear Property Information) ............................. 162
2.2.22. Subroutine usereo (Storing Data in the nmisc Record) ................................................... 163
2.2.23. Subroutine eldwrtL (Writing Element Data to a File) ...................................................... 164
2.2.24. Subroutine eldwrnL (Writing Element Nonsummable Miscellaneous Data to the Results
File) ........................................................................................................................................ 164
2.2.25. Subroutine trrot (Computing the Rotation Vector) ......................................................... 164
2.2.26. Subroutine rottr (Computing the Transformation Matrix) ............................................... 165
2.2.27. Subroutine xyzup3 (Updating an Element's 3-D Nodal Coordinates) .............................. 165
2.2.28. Subroutine updrot (Updating the Rotation Pseudovector) ............................................. 165
2.2.29. Subroutine tmpget (Defining Current Temperature Loads) ............................................ 166
2.2.30. Subroutine prsget (Defining Current Pressure Loads) ..................................................... 166
2.2.31. Subroutine cnvget (Defining Current Convection Loads) ............................................... 167
2.2.32. Subroutine hgnget (Defining Current Heat Generation Loads) ....................................... 167
2.2.33. Subroutine prinst (Computing Principal Stress and Stress Intensity) ............................... 167
2.3. Subroutines for Modifying and Monitoring Existing Elements .................................................. 168
vi
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Programmer's Reference
2.3.1. Subroutine userou (Storing User-Provided Element Output) ............................................ 168
2.3.2. Subroutine useran (Modifying Orientation of Material Properties) ................................... 169
2.3.3. Subroutine userrc (Performing User Operations on COMBIN37 Parameters) ..................... 170
2.3.4. Subroutine UElMatx (Accessing Element Matrices and Load Vectors) ............................... 170
2.3.5. Subroutine UTHICK (Getting User-Defined Initial Thickness) ............................................ 171
2.3.6. Subroutine UsrFictive (Providing User-Defined Fictive Temperature Relationship) ............ 172
2.3.7. Subroutine uflex (Computing Flexibility Factors for PIPE288 and PIPE289) ........................ 172
2.3.8. Subroutine UsrShift (Calculating Pseudotime Time Increment) ........................................ 173
2.4. Subroutines for Customizing Material Behavior ........................................................................ 173
2.4.1. Subroutine UserMat (Creating Your Own Material Model) ................................................ 174
2.4.1.1. UserMat Overview ................................................................................................. 174
2.4.1.2. Stress, Strain, and Material Jacobian Matrix ............................................................. 174
2.4.1.3. The UserMat API .................................................................................................... 176
2.4.1.4. UserMat Variables ................................................................................................. 178
2.4.1.5. Table (TB) Commands for UserMat ......................................................................... 180
2.4.1.6. Material Constitutive Integration with UserMat ....................................................... 181
2.4.1.7. UserMat Restrictions .............................................................................................. 181
2.4.1.8. Accessing Material and Element Data for UserMat .................................................. 182
2.4.1.9. Utility Functions for UserMat .................................................................................. 183
2.4.2. Subroutine UserHyper (Writing Your Own Hyperelasticity Laws) ...................................... 183
2.4.3. Subroutine UserCreep (Defining Creep Material Behavior) ............................................... 184
2.4.4. Subroutine user_tbelastic (Defining Material Linear Elastic Properties) ............................ 186
2.4.4.1. Overview of the user_tbelastic Subroutine ............................................................. 186
2.4.4.2. Data Types Supported by user_tbelastic ................................................................. 186
2.4.4.3. Table (TB) Command for user_tbelastic .................................................................. 186
2.4.4.4. User Interface for user_tbelastic ............................................................................. 187
2.4.4.5. The user_tbelastic API ............................................................................................ 187
2.4.4.6. Usage Example for user_tbelastic ........................................................................... 188
2.4.5. Subroutine userfc (Defining Your Own Failure Criteria) .................................................... 189
2.4.6. Subroutine userswstrain (Writing Your Own Swelling Laws) ............................................. 190
2.4.7. Subroutine userck (Checking User-Defined Material Data) ............................................... 190
2.4.8. Supporting Function egen .............................................................................................. 191
2.5. Subroutines for Customizing Contact Interfacial Behavior ........................................................ 191
2.5.1. Subroutine usercnprop (Programming Your Own Contact Properties) .............................. 191
2.5.2. Subroutine userfric (Writing Your Own Friction Laws) ...................................................... 195
2.5.3. Subroutine userinter (Writing Your Own Contact Interactions) ......................................... 198
2.6. Subroutines for Customizing Loads ......................................................................................... 202
2.6.1. Subroutine usrefl (Changing Scalar Fields to User-Defined Values) ................................... 203
2.6.2. Subroutine userpr (Changing Element Pressure Information) ........................................... 203
2.6.3. Subroutine usercv (Changing Element Face Convection Surface Information) .................. 204
2.6.4. Subroutine userfx (Changing Element Face Heat Flux Surface Information) ...................... 205
2.6.5. Subroutine userch (Changing Element Face Charge Density Surface Information) ............ 206
2.6.6. Subroutine userfd (Computing the Complex Load Vector for Frequency Domain Logic) .... 206
2.6.7. Function userpe (Calculating Rotation Caused by Internal Pressure) ................................ 207
2.6.8. Subroutine usrsurf116 (Modifying SURF151 and SURF152 Film Coefficients and Bulk Temperatures) ............................................................................................................................... 208
2.6.9. Subroutine User116Cond (Computing the Conductance Coefficient for FLUID116) .......... 209
2.6.10. Subroutine User116Hf (Computing the Film Coefficient for FLUID116) ........................... 210
2.6.11. Subroutine userPartVelAcc (Computing Particle Velocities and Accelerations of Ocean
Waves) .................................................................................................................................... 210
2.6.11.1. Subroutine userPartVelAccSetup (Initializing Data for Use by the userPartVelAcc
Subroutine) ...................................................................................................................... 211
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
vii
Programmer's Reference
2.6.11.2. Subroutine userWavHt ......................................................................................... 212
2.6.11.3. Subroutine wvhybl .............................................................................................. 213
2.6.11.4. Subroutine wvargu .............................................................................................. 213
2.6.11.5. Subroutine wavHtSec .......................................................................................... 213
2.6.12. Subroutine userPanelHydFor (Computing Panel Loads Caused by Ocean Loading) ......... 214
2.6.12.1. Subroutine userOceanRead .................................................................................. 214
2.7. Running Mechanical APDL as a Subroutine .............................................................................. 215
2.8. Defining Your Own Commands ............................................................................................... 215
2.8.1. Function user01 ............................................................................................................. 216
2.8.2. Function user02 (Demonstrates Offsetting Selected Nodes) ............................................ 217
2.8.3. Function user03 (Demonstrates Using Memory) .............................................................. 218
2.8.4. Function user04 ............................................................................................................. 220
2.8.5. Functions user05 through user10 ................................................................................... 222
2.9. Supporting Subroutines .......................................................................................................... 222
2.9.1. Function GetRForce (Getting Nodal Reaction Force values) .............................................. 222
2.9.2. Function GetStackDisp (Getting Current Displacement Values) ........................................ 223
2.9.3. Subroutine ElResultStrt (Getting Load Data from Analysis Results) ................................... 223
2.9.4. Subroutine ElResultGet (Getting Results Values at Selected Points) .................................. 224
2.9.5. Subroutine ElInterp (Finding Element Coordinates) ......................................................... 224
2.10. Access at the Beginning and End of Various Operations ......................................................... 225
2.11. Memory Management Subroutines ....................................................................................... 226
2.11.1. Using the Memory-Management Subroutines ............................................................... 226
2.11.2. Function fAnsMemAlloc (Allocating Space and Returning a Pointer) .............................. 227
2.11.3. Subroutine fAnsMemFree (Deallocating Space) ............................................................ 228
2.12. Parameter-Processing Subroutines ........................................................................................ 228
2.12.1. Subroutine pardim (Creating a Dimensioned Parameter) ............................................... 228
2.12.2. Function parevl (Finding and Evaluating a Parameter) ................................................... 228
2.12.3. Subroutine pardef (Adding a Parameter) ....................................................................... 229
2.13. Miscellaneous Useful Functions ............................................................................................. 230
2.13.1. Using Function RunCommand ...................................................................................... 230
2.13.2. Using the /UNDO Command ........................................................................................ 231
2.13.3. Using the /HOLD command ......................................................................................... 231
3. Accessing the ANSYS Database ..................................................................................................... 233
3.1. Routines for Selecting and Retrieving Nodes and Elements ...................................................... 234
3.1.1. ndnext Function (Getting the Next Node Number) .......................................................... 234
3.1.2. ndprev Function (Getting the Number of the Previous Selected Node) ............................ 234
3.1.3. ndnxdf Function (Getting the Number of the Next Defined Node) ................................... 234
3.1.4. ndsel Function (Selecting, Unselecting, Deleting, or Inverting a Node) .............................. 235
3.1.5. elnext Function (Getting the Number of the Next Element) ............................................. 235
3.1.6. elprev Function (Getting the Number of the Previous Selected Element) ......................... 235
3.1.7. elnxdf Function (Getting the Number of the Next Defined Element) ................................ 236
3.1.8. elsel Subroutine (Selecting, Unselecting, Deleting, or Inverting an Element) ..................... 236
3.2. Node Information Routines ..................................................................................................... 236
3.2.1. ndinqr Function (Getting Information About a Node) ...................................................... 236
3.2.2. getnod Function (Getting a Nodal Point) ......................................................................... 237
3.2.3. putnod Function (Storing a Node) .................................................................................. 238
3.2.4. ndgall Function (Getting the XYZ/Rotation Coordinates Vector for a Node) ...................... 238
3.2.5. ndspgt Subroutine (Getting the Nodal Solution for a Node of an Element) ....................... 238
3.3. Element Attribute Routines ..................................................................................................... 239
3.3.1. elmiqr Function (Getting Information About an Element) ................................................ 239
3.3.2. elmget Function (Getting an Element's Attributes and Nodes) ......................................... 240
3.3.3. elmput Subroutine (Storing an Element) ......................................................................... 240
viii
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Programmer's Reference
3.3.4. etyiqr Function (Getting a Data Item About an Element Type) .......................................... 241
3.3.5. etyget Function (Getting Information About an Element Type) ........................................ 241
3.3.6. etyput Subroutine (Storing Element Type Data) ............................................................... 242
3.3.7. echrtr Subroutine (Getting Information About Element Characteristics) ........................... 242
3.3.8. etysel Subroutine (Selecting, Unselecting, Deleting, or Inverting an Element Type) ........... 242
3.3.9. mpinqr Function (Getting Information About a Material Property) ................................... 243
3.3.10. mpget Function (Getting a Material Property Table) ...................................................... 243
3.3.11. mpput Subroutine (Storing a Material Property Table) ................................................... 244
3.3.12. mpdel Subroutine (Deleting a Material Property Table) .................................................. 245
3.3.13. rlinqr Function (Getting Information About a Real Constant Set) .................................... 245
3.3.14. rlget Function (Getting Real Constant Data) .................................................................. 246
3.3.15. rlsel Subroutine (Selecting or Deleting a Real Constant Set) ........................................... 246
3.3.16. csyiqr Function (Getting Information About a Coordinate System) ................................. 246
3.3.17. csyget Function (Getting a Coordinate System) ............................................................. 247
3.3.18. csyput Subroutine (Storing a Coordinate System) .......................................................... 247
3.3.19. csydel Subroutine (Deleting a Coordinate System) ........................................................ 248
3.3.20. userac Subroutine (Demonstrates Use of Element Attribute Routines) ........................... 248
3.4. Coupling and Constraint Routines ........................................................................................... 248
3.4.1. cpinqr Function (Getting Information About a Coupled Set) ............................................ 248
3.4.2. cpget Function (Getting a Coupled Set) .......................................................................... 249
3.4.3. cpput Subroutine (Storing a Coupled Set) ....................................................................... 249
3.4.4. cpsel Subroutine (Selecting or Deleting a Coupled Set) ................................................... 249
3.4.5. ceinqr Function (Getting Information About a Constraint Equation Set) ........................... 250
3.4.6. ceget Function (Getting a Constraint Equation) ............................................................... 250
3.4.7. ceput Subroutine (Storing a Constraint Equation) ............................................................ 251
3.4.8. cesel Subroutine (Deleting or Selecting a Constraint Equation) ........................................ 251
3.5. Nodal Loading Routines .......................................................................................................... 251
3.5.1. disiqr Function (Getting Information About Constraints) ................................................. 251
3.5.2. disget Function (Getting a Constraint from the Database) ............................................... 252
3.5.3. disput Subroutine (Storing a Constraint at a Node) .......................................................... 252
3.5.4. disdel Subroutine (Deleting a Constraint at a Node) ........................................................ 252
3.5.5. foriqr Function (Getting Information About Nodal Loads) ................................................ 253
3.5.6. forget Function (Getting a Constraint from the Database) ................................................ 253
3.5.7. forput Subroutine (Storing a Nodal Load at a Node) ........................................................ 253
3.5.8. fordel Subroutine (Deleting a Nodal Load at a Node) ....................................................... 254
3.5.9. ntpiqr Function (Getting Information About a Nodal Temperature) .................................. 254
3.5.10. ntpget Function (Getting a Specified Nodal Temperature) ............................................. 255
3.5.11. ntpput Subroutine (Storing a Nodal Temperature) ......................................................... 255
3.5.12. ntpdel Subroutine (Deleting a Nodal Temperature) ....................................................... 255
3.5.13. nhgiqr Function (Getting Information About Nodal Heat Generations) .......................... 255
3.5.14. nhgget Function (Getting a Nodal Heat Generation) ...................................................... 256
3.5.15. nhgput Subroutine (Storing Nodal Heat Generation) ..................................................... 256
3.5.16. nhgdel Subroutine (Deleting a Nodal Heat Generation) ................................................. 256
3.5.17. nfuiqr Function (Getting Information About Nodal Fluences) ......................................... 257
3.5.18. nfuget Function (Getting a Nodal Fluence) .................................................................... 257
3.5.19. nfuput Subroutine (Storing a Nodal Fluence) ................................................................. 257
3.5.20. nfudel Subroutine (Deleting a Nodal Fluence) ............................................................... 258
3.5.21. ndciqr Function (Getting Information About Nodal Current Densities) ........................... 258
3.5.22. ndcget Function (Getting a Nodal Current Density) ....................................................... 258
3.5.23. ndcput Subroutine (Storing a Nodal Current Density) .................................................... 259
3.5.24. ndcdel Subroutine (Deleting a Nodal Current Density) .................................................. 259
3.5.25. nvdiqr Function (Getting Information About Nodal Magnetic Virtual Displacements) ..... 259
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ix
Programmer's Reference
3.5.26. nvdget Function (Getting a Nodal Magnetic Virtual Displacement) ................................ 260
3.5.27. nvdput Subroutine (Storing a Nodal Virtual Displacement) ............................................ 260
3.5.28. nvddel Subroutine (Deleting a Nodal Virtual Displacement) ........................................... 260
3.6. Element Loading Routines ...................................................................................................... 260
3.6.1. epriqr Function (Getting Information About Element Pressure/Convection) ..................... 260
3.6.2. eprget Function (Getting an Element Face Pressure) ........................................................ 261
3.6.3. eprput Subroutine (Storing an Element Face Pressure) .................................................... 261
3.6.4. eprdel Subroutine (Deleting an Element Pressure/Convection) ........................................ 262
3.6.5. ecviqr Function (Getting Information About Element Convections) ................................. 262
3.6.6. ecvget Function (Getting an Element Face Convection) ................................................... 263
3.6.7. ecvput Subroutine (Storing an Element Face Convection) ................................................ 263
3.6.8. ecvdel Subroutine (Deleting a Convection on an Element) .............................................. 263
3.6.9. etpiqr Function (Getting Information About Element Temperatures) ................................ 264
3.6.10. etpget Function (Getting an Element Temperature) ....................................................... 265
3.6.11. etpput Subroutine (Storing an Element Temperature) ................................................... 265
3.6.12. etpdel Subroutine (Deleting an Element Temperature) .................................................. 265
3.6.13. ehgiqr Function (Getting Information About Element Heat Generation) ......................... 266
3.6.14. ehgget Function (Getting an Element Heat Generation) ................................................ 266
3.6.15. ehgput Subroutine (Storing an Element Heat Generation) ............................................. 267
3.6.16. ehgdel Subroutine (Deleting an Element Heat Generation) ............................................ 267
3.6.17. efuiqr Function (Getting Information About Element Fluences) ..................................... 267
3.6.18. efuget Function (Getting an Element Fluence) .............................................................. 268
3.6.19. efuput Subroutine (Storing an Element Fluence) ........................................................... 268
3.6.20. efudel Subroutine (Deleting an Element Fluence) .......................................................... 268
3.6.21. edciqr Function (Getting Information About Element Current Densities) ........................ 269
3.6.22. edcget Function (Getting Element Current Densities) .................................................... 269
3.6.23. edcput Subroutine (Storing an Element Current Density) ............................................... 269
3.6.24. edcdel Subroutine (Deleting an Element Current Density) ............................................. 270
3.6.25. evdiqr Function (Getting Information About Element Virtual Displacements) ................. 270
3.6.26. evdget Function (Getting an Element Virtual Displacement) .......................................... 270
3.6.27. evdput Subroutine (Storing an Element Virtual Displacement) ....................................... 271
3.6.28. eimiqr Function (Getting Information About Element Impedances) ............................... 271
3.6.29. eimget Function (Getting an Element Face Impedance) ................................................. 271
3.6.30. eimput Subroutine (Storing an Element Impedance) ..................................................... 272
3.6.31. eimdel Subroutine (Deleting an Element Impedance) .................................................... 272
3.6.32. esfiqr Function (Getting Information About Element Surface Stress Data) ...................... 272
3.6.33. esfget Function (Getting Element Surface Stress Data) ................................................... 273
3.6.34. esfput Subroutine (Storing Element Surface Stress Data) ............................................... 273
3.6.35. esfdel Subroutine (Deleting an Element's Surface Stress Data) ....................................... 273
3.6.36. efsdel Subroutine (Deleting a Flagged Surface on an Element) ...................................... 274
3.6.37. efsget function (Getting Element Face Flagged Surfaces) ............................................... 274
3.6.38. efsiqr function (Getting Information About Flagged Surfaces) ....................................... 274
3.6.39. efsput Subroutine (Storing an Element Face Flagged Surface) ........................................ 275
3.7. Results Information Routines ................................................................................................... 275
3.7.1. dspiqr Function (Getting Information About Nodal Results) ............................................. 275
3.7.2. dspget Function (Getting a Nodal Result from the Database) ........................................... 275
3.7.3. dspput Subroutine (Storing a Result at a Node) ............................................................... 276
3.7.4. dspdel Subroutine (Deleting a Result at a Node) .............................................................. 276
3.7.5. emsiqr Function (Getting Information About an Element's Miscellaneous Summable
Data) ...................................................................................................................................... 276
3.7.6. emsget Function (Getting an Element's Miscellaneous Summable Data) .......................... 277
3.7.7. emsput Subroutine (Storing an Element's Miscellaneous Summable Data) ....................... 277
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Programmer's Reference
3.7.8. emsdel Subroutine (Deleting an Element's Miscellaneous Summable Data) ..................... 277
3.7.9. enfiqr Function (Getting Information About Element Nodal Forces) ................................. 278
3.7.10. enfget Function (Getting an Element's Nodal Forces) ..................................................... 278
3.7.11. enfput Subroutine (Storing an Element's Nodal Forces) ................................................. 278
3.7.12. enfdel Subroutine (Deleting an Element's Nodal Forces) ................................................ 279
3.7.13. ensiqr Function (Getting Information About an Element's Nodal Stresses) ...................... 279
3.7.14. ensget Function (Getting an Element's Nodal Stresses) .................................................. 279
3.7.15. ensput Subroutine (Storing Nodal Stresses at an Element) ............................................. 280
3.7.16. ensdel Subroutine (Deleting an Element's Nodal Stresses) ............................................. 281
3.7.17. engiqr Function (Getting Information About an Element's Energies) .............................. 281
3.7.18. engget Function (Getting an Element's Energies) .......................................................... 281
3.7.19. engput Subroutine (Storing an Element's Energies and Volume) .................................... 282
3.7.20. engdel Subroutine (Deleting an Element's Energies) ..................................................... 282
3.7.21. egriqr Function (Getting Information About an Element's Nodal Gradients) ................... 282
3.7.22. egrget Function (Getting an Element's Nodal Gradients) ............................................... 283
3.7.23. egrput Subroutine (Storing an Element's Nodal Gradients) ............................................ 283
3.7.24. egrdel Subroutine (Deleting an Element's Nodal Gradients) ........................................... 284
3.7.25. eeliqr Function (Getting Information About an Element's Nodal Elastic Strains) .............. 284
3.7.26. eelget Function (Getting an Element's Nodal Elastic Strains) .......................................... 284
3.7.27. eelput Subroutine (Storing an Element's Nodal Elastic Strains) ....................................... 285
3.7.28. eeldel Subroutine (Deleting an Element's Nodal Elastic Strains) ..................................... 286
3.7.29. epliqr Function (Getting Information About an Element's Nodal Plastic Strains) ............. 286
3.7.30. eplget Function (Getting an Element's Nodal Plastic Strains) .......................................... 286
3.7.31. eplput Subroutine (Storing an Element's Nodal Plastic Strains) ...................................... 287
3.7.32. epldel Subroutine (Deleting an Element's Nodal Plastic Strains) ..................................... 288
3.7.33. ecriqr Function (Getting Information About an Element's Nodal Creep Strains) .............. 288
3.7.34. ecrget Function (Getting an Element's Nodal Creep Strains) ........................................... 288
3.7.35. ecrput Subroutine (Storing an Element's Nodal Creep Strains) ....................................... 289
3.7.36. ecrdel Subroutine (Deleting an Element's Nodal Creep Strains) ...................................... 290
3.7.37. ethiqr Function (Getting Information About an Element's Nodal Thermal Strains) ........... 290
3.7.38. ethget Function (Getting an Element's Nodal Thermal Stresses) ..................................... 290
3.7.39. ethput Subroutine (Storing an Element's Nodal Thermal Stresses) .................................. 291
3.7.40. ethdel Subroutine (Deleting an Element's Thermal, Initial, and Swelling Strains) ............. 292
3.7.41. euliqr Function (Getting Information About an Element's Euler Angles) ......................... 292
3.7.42. eulget Function (Getting an Element's Nodal Euler Angles) ............................................ 292
3.7.43. eulput Subroutine (Storing an Element's Euler Angles) .................................................. 293
3.7.44. euldel Subroutine (Deleting an Element's Euler Angles) ................................................. 293
3.7.45. efxiqr Function (Getting Information About Element Fluxes) .......................................... 293
3.7.46. efxget Function (Getting an Element Flux) .................................................................... 294
3.7.47. efxput Subroutine (Storing an Element's Fluxes) ............................................................ 294
3.7.48. efxdel Subroutine (Deleting Element Fluxes) ................................................................. 294
3.7.49. elfiqr Function (Getting Information About Element Local Forces) ................................. 295
3.7.50. elfget Function (Getting an Element Local Force) ........................................................... 295
3.7.51. elfput Subroutine (Storing an Element's Local Forces) .................................................... 295
3.7.52. elfdel Subroutine (Deleting Element Local Forces) ......................................................... 296
3.7.53. emniqr Function (Getting Information About Element Miscellaneous Non-summable
Data) ...................................................................................................................................... 296
3.7.54. emnget Function (Getting an Element's Miscellaneous Non-summable Data) ................ 296
3.7.55. emnput Subroutine (Storing an Element's Miscellaneous Non-summable Data) ............. 297
3.7.56. emndel Subroutine (Deleting an Element's Miscellaneous Non-summable Data) ........... 297
3.7.57. ecdiqr Function (Getting Information About Element Current Densities) ........................ 297
3.7.58. ecdget Function (Getting an Element Current Density) .................................................. 298
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
xi
Programmer's Reference
3.7.59. ecdput Subroutine (Storing an Element's Current Densities) .......................................... 298
3.7.60. ecddel Subroutine (Deleting Element Current Densities) ............................................... 298
3.7.61. enliqr Function (Getting Information About Element Nonlinear Tables) .......................... 299
3.7.62. enlget Function (Getting Element Nonlinear Tables) ...................................................... 299
3.7.63. enlput Subroutine (Storing an Element's Nonlinear Tables) ............................................ 299
3.7.64. enldel Subroutine (Deleting Element Nonlinear Tables) ................................................. 300
3.7.65. ehciqr Function (Getting Information About Calculated Element Heat Generations) ....... 300
3.7.66. ehcget Function (Getting a Calculated Element Heat Generation) .................................. 300
3.7.67. ehcput Subroutine (Storing an Element's Calculated Heat Generations) ......................... 301
3.7.68. ehcdel Subroutine (Deleting Element Calculated Heat Generations) .............................. 301
4. Subroutines for Users' Convenience ............................................................................................. 303
4.1. Input and Output Abbreviations .............................................................................................. 303
4.2. General Subroutines ............................................................................................................... 303
4.2.1. dptoch Subroutine (Retrieve Eight Characters From a Double Precision Variable) ............. 303
4.2.2. wrinqr Function (Obtain Information About Output) ....................................................... 304
4.2.3. erinqr Subroutine (Obtaining Information from the Errors Common) ............................... 304
4.2.4. TrackBegin Subroutine (Beginning Tracking for a Subroutine Call) ................................... 306
4.2.5. TrackEnd Subroutine (Ending Tracking for a Subroutine Call) ........................................... 306
4.2.6. erhandler Subroutine (Displaying Program Errors) ........................................................... 306
4.2.7. intrp Subroutine (Doing Single Interpolation) ................................................................. 307
4.2.8. tranx3 Subroutine (Processing Geometry for 3-D Line Elements) ...................................... 308
4.2.9. systop Subroutine (Stopping a Program Run) .................................................................. 308
4.3. Vector Functions ..................................................................................................................... 309
4.3.1. vdot Function (Computing the Dot Product of Two Vectors) ............................................ 309
4.3.2. vidot Function (Computing the Dot Product of Two Vectors with Increments) .................. 309
4.3.3. vsum Function (Summing Vector Components) .............................................................. 309
4.3.4. vmax Function (Retrieving the Maximum Vector Value at a Given Location) ..................... 310
4.3.5. lastv Function (Retrieving the Position of the Last Nonzero Term in a Double Precision
Vector) ................................................................................................................................... 310
4.3.6. izero Function (Setting an Integer Vector to Zero) ............................................................ 310
4.3.7. imove Function (Assigning Equal Values to Two Integer Vectors) ...................................... 310
4.3.8. vzero Subroutine (Initializing a Vector to Zero) ................................................................ 310
4.3.9. vmove Subroutine (Moving One Vector into Another) ..................................................... 310
4.3.10. vimove Subroutine (Moving One Vector into Another Incrementally) ............................. 310
4.3.11. vinit Subroutine (Assigning a Scalar Constant to a Vector) .............................................. 311
4.3.12. viinit Subroutine (Assigning a Scalar Constant to a Vector Incrementally) ....................... 311
4.3.13. vapb Subroutine (Setting a Vector to Sum of Two Vectors) ............................................. 311
4.3.14. vapb1 Subroutine (Combining Two Vectors in One) ....................................................... 311
4.3.15. vapcb1 Subroutine (Multiplying a Vector to a Constant) ................................................ 311
4.3.16. vamb Subroutine (Gets a Third Vector by Subtracting One Vector from Another) ............ 311
4.3.17. vamb1 Subroutine (Subtracting One Vector from Another) ............................................ 311
4.3.18. vmult Subroutine (Multiplying a Vector by a Constant) .................................................. 312
4.3.19. vmult1 Subroutine (Multiplying a Vector by a Constant) ................................................ 312
4.3.20. vcross Subroutine (Defining a Vector via a Cross Product) .............................................. 312
4.3.21. vnorme Subroutine (Normalizing a Three-Component Vector) ....................................... 312
4.3.22. vnorm Subroutine (Normalizing a Vector to Unit Length) ............................................... 312
4.3.23. ndgxyz Function (Getting the X,Y,Z Vector for a Node) ................................................... 313
4.3.24. ndpxyz Subroutine (Storing X,Y,Z for a Node) ................................................................ 313
4.4. Matrix Subroutines .................................................................................................................. 313
4.4.1. maxv Subroutine (Multiplying a Vector by a Matrix) ......................................................... 313
4.4.2. maxv1 Subroutine (Multiplying a Vector by a Matrix) ....................................................... 314
4.4.3. matxv Subroutine (Multiplying a Vector by a Full Transposed Matrix) ............................... 314
xii
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Programmer's Reference
4.4.4. matxv1 Subroutine (Multiplying a Vector by a Full Transposed Matrix) ............................. 315
4.4.5. matxb Subroutine (Transposing a matrix) ....................................................................... 315
4.4.6. maat Subroutine (Changing a Matrix Value via Addition, Multiplication, and Transposition) ....................................................................................................................................... 315
4.4.7. matba Subroutine (Updating Matrix Value via Transposition, Multiplications, and Addition) ....................................................................................................................................... 316
4.4.8. matsym Subroutine (Filling the Upper Triangle from the Lower Triangle) .......................... 316
4.4.9. mctac Subroutine (Transposing a symmetric matrix) ....................................................... 317
4.4.10. tran Subroutine (Transposing a matrix) ......................................................................... 317
4.4.11. symeqn Subroutine (Solving Simultaneous Linear Equations) ........................................ 317
A. Creating External Commands in Linux ............................................................................................. 319
A.1. Tasks in Creating an External Command .................................................................................. 319
A.1.1. Creating Compatible Code ............................................................................................. 319
A.1.2. Creating a Shared Library ............................................................................................... 320
A.1.3. Creating an External Table File ........................................................................................ 321
A.1.4. Setting the ANSYS_EXTERNAL_PATH Environment Variable ............................................. 322
A.1.5. Using External Commands ............................................................................................. 322
A.1.6. Checking External Command Status ............................................................................... 322
A.1.7. Resetting External Commands ....................................................................................... 322
B. Creating External Commands in Windows ........................................................................................ 325
B.1. Tasks in Creating an External Command .................................................................................. 325
B.1.1. Creating Compatible Code ............................................................................................. 325
B.1.2. Creating a Visual Studio Project ...................................................................................... 326
B.1.3. Creating an External Definition File ................................................................................. 326
B.1.4. Creating a Shared Library ............................................................................................... 326
B.1.5. Creating an External Table File ........................................................................................ 326
B.1.6. Setting the ANSYS_EXTERNAL_PATH Environment Variable ............................................. 327
B.1.7. Using External Commands .............................................................................................. 328
B.1.8. Checking External Command Status ............................................................................... 328
B.1.9. Resetting External Commands ........................................................................................ 328
B.1.10. Example: Creating an External Command Using Visual Studio 2008 ................................ 328
C. User Material (UserMat) Subroutine Example ................................................................................... 331
C.1. UserMat Example Description ................................................................................................. 331
C.2. UserMat Example Input Data ................................................................................................... 331
C.3. UserMat Example POST26 Output Results ............................................................................... 332
C.4. USERMAT.F List File for This Example ........................................................................................ 333
C.5. Accessing Solution and Material Data ...................................................................................... 339
D. Fully Coupled Wind Turbine Example in Mechanical APDL ................................................................ 341
D.1. Implementing a Fully Coupled Wind Turbine Analysis .............................................................. 341
D.2. Theory .................................................................................................................................... 342
D.3. Compiling a Custom Version of Mechanical APDL .................................................................... 343
D.4. Performing a Wind Coupled Analysis ....................................................................................... 344
D.4.1. The Wind Coupling Process ............................................................................................ 344
D.4.2. Data Exchange Routines ................................................................................................ 344
D.4.3. Important Analysis Notes ............................................................................................... 346
D.5. Example Analysis Using Provided WindProg Example for Aeroelastic Coupling ....................... 347
D.6. References ............................................................................................................................. 348
Index ........................................................................................................................................................ 349
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
xiii
xiv
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
List of Figures
4.1. Display Format for Z-buffered Graphics ................................................................................................. 98
4.2. Example Display of a Graphics File ....................................................................................................... 103
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
xv
xvi
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
List of Tables
2.1. ANSYS Exit Codes ................................................................................................................................ 215
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
xvii
xviii
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Preface
About the Programmer's Reference
The Programmer's Reference provides information about the various programming interfaces available
to customers. This manual assumes that you have at least a basic knowledge of programming (a working
knowledge of Fortran would be very helpful). The two part manual includes:
Part I - Guide to Interfacing with ANSYS
This guide describes a group of utilities as well as a set of Fortran routines that you can use to directly
access the ANSYS database. You can also use these capabilities to access data in any of the binary files
that ANSYS writes or uses.
Part II - Guide to User-Programmable Features
ANSYS provides a set of Fortran functions and routines that are available to extend or modify the program's capabilities. Using these routines requires relinking the ANSYS program, resulting in a custom
version of ANSYS. ANSYS provides an external commands capability which you can use to create shared
libraries available to ANSYS (either from ANSI standard C or Fortran). You can use this feature to add
custom extensions to ANSYS without the need to rebuild the ANSYS executable.
In addition, you can find the ANSYS Parametric Design Language Guide as part of the ANSYS online
documentation. This guide was designed for ANSYS users that have some programming skills and wish
to tap the power of the ANSYS Parametric Design Language (APDL) to increase the productivity. APDL
is a scripting language that is very similar to Fortran. The guide describes how to define parameters
(variables), how to create macro programs using APDL, how to use APDL for simple user interaction,
how to encrypt an APDL macro, and how to debug an APDL macro.
Note
The Programmer's Reference is offered solely as an aid, and does not undergo the same rigorous
verification as the ANSYS product documentation set. Therefore, the Programmer's Reference
is not considered to be part of the formal program specification as stated in your license
agreement.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
xix
xx
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Item 2
The file format. This item has a value of 1 if the file is small format, -1 if
large format.
Item 3
Item 4
Item 5
Item 10
Item 11
Items 12-14
Items 15-16
Items 17-18
Item 19
The ANSYS special version label in integer form (one four-character string)
Items 20-22
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Item 26
Item 27
Item 28
Items 31-38
Items 41-60
Items 61-80
Item 95
The split point of the file (0 means the file will not split)
Items 97-98
.brfl
.rmg
.brmg
.rst
.brst
.rth
.brth
.lnn
1.2.1. Nomenclature
A load case contains the results for an instance in an analysis. A load case is defined by a load step
number and a substep number. A load case is also categorized by a cumulative iteration number and
time (or frequency) values. A load case is identified by all three methods in the results file.
The results file does not have to contain all the load cases of an analysis.
A data set is used in this chapter to designate a load case.
For a complex analysis, there will be two data sets for each load case. The first data set contain the real
solution and the second contains the imaginary solution.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
**********
')
LONGINT
resufpL, adrZipL
integer
resubk, resuut
common /fdresu/ resufpL, adrZipL, resubk, resuut
c
co
co
co
**********
file format
FUN12
**********
c
c
c
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in a header.
c
c
c
c
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
standard ANSYS file header (see binhed for
details of header contents)
c
c
---
100
---
80
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
maxn,
nnod,
nelm,
kan,
ptrTIMl, ptrLSPl,
ptrCYCl,
CMSflg,
csCord, ptrEnd8,
noffst,
eoffst,
csNds,
cpxrst,
mmass, kPerturb,
ptrTIMh, ptrLSPh,
ptrGEOh, ptrTRANh,
qrDmpKy, MSUPkey,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
resmax,
numdof,
nsets,
ptrend,
ptrELMl, ptrNODl,
csEls,
units,
ptrEnd8, fsiflag,
nTrans, ptrTRANl,
extopt,
nlgeom,
XfemKey, rstsprs,
ptrCYCh, ptrELMh,
Glbnnod, ptrGNODl,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
(10)
(20)
(30)
(40)
(50)
(60)
(70)
(80)
maxn
nnod
resmax
numdof
maxe
nelm
kan
nsets
ptrend
ptrDSIl,h
ptrTIMl,h
ptrLSPl,h
ptrELMl,h
ptrNODl,h
ptrGEOl,h
ptrCYCl,h
CMSflg
csEls
units
nSector
csCord
ptrEnd8
fsiflag
pmeth
noffst
eoffst
nTrans
ptrTRANl,h
PrecKey
csNds
cpxrst
extopt
nlgeom
AvailData
mmass
kPerturb
XfemKey
rstsprs
Glbnnod
ptrGNODl,h
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
c
c
c
c
c
c
c
c
c
c
c
---
c
c
c
c
NOD
nnod
c
c
c
c
c
ELM
nelm
c
c
c
c
c
GNOD
Glbnnod
c
c
c
c
c
c
c
c
c
c
c
c
c
DSI
2*resmax
c
c
c
TIM
dp
resmax
c
c
c
LSP
3*resmax
CYC
resmax
TRAN
dp
nTran
25
GEO
80
c
c
c
c
c
c
c
numdof
AY = 8
WARP=16
ENDS=24
SP06=32
TE8 =40
TE16=48
TE24=56
TTOP=64
0, maxety,
maxrl,
nnod,
nelm,
maxcsy, ptrETY, ptrREL, ptrLOC, ptrCSY,
ptrEID, maxsec, secsiz, maxmat, matsiz,
ptrMAS, csysiz, elmsiz, etysiz,
rlsiz,
ptrETYl, ptrETYh, ptrRELl, ptrRELh, ptrCSYl,
ptrCSYh, ptrLOCl, ptrLOCh, ptrEIDl, ptrEIDh,
ptrMASl, ptrMASh, ptrSECl, ptrSECh, ptrMATl,
(10)
(20)
(30)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
(40)
(50)
(60)
(70)
(80)
0
- position not used
maxety - the maximum element type reference
number in the model
maxrl - the maximum real constant reference
number in the model
nnod
- the number of defined nodes in the
model
nelm
- the number of defined elements in
the model
maxcsy - the maximum coordinate system
reference number in the model
ptrETY - pointer to the element type index
table
ptrREL - pointer to the real constant
index table
ptrLOC - pointer to the nodal point
locations
ptrCSY - pointer to the local coordinate
system index table
ptrEID - pointer to the element index
table
maxsec - the maximum section
reference number in the model
secsiz - the maximum size that any
section record may have
nummat - the number of materials
in the model
matsiz - the maximum size that any material
property or table may have
ptrMAS - pointer to the diagonal mass matrix
csysiz - the number of items describing a
local coordinate system (usually
24)
elmsiz - the maximum number of nodes that a
defined element may have
etysiz - the number of items describing an
element type(=IELCSZ from echprm.inc)
rlsiz - the maximum number of items
defining a real constant (0, if no
real constants are defined)
ptrETYl,h - 64 bit pointer to element type data
ptrRELl,h - 64 bit pointer to real constant data
ptrCSYl,h - 64 bit pointer to coordinate system data
ptrLOCl,h - 64 bit pointer to nodal locations
ptrEIDl,h - 64 bit pointer to element data
ptrSECl,h - 64 bit pointer to section data
ptrMATl,h - 64 bit pointer to material data
ptrCNTl,h - 64 bit pointer to element centroids
ptrNODl,h - 64 bit pointer to nodal equivalence table
ptrELMl,h - 64 bit pointer to element equivalence table
Glbnnod - global number of nodes actually used
in the solution phase (== nnod unless
using Distributed Ansys)
ptrGNODl,h- 64 bit pointer to the global nodal
equivalence table (only used with
Distributed ANSYS and when the mesh
does not change during solution)
maxn
- maximum node number of the model
Note: ptrXXX are relative to beginning of file
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
c
c
c
ETY
c
c
c
c
c
---
numety
maxety
etysiz
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
REL
maxrl
c
c
c
c
c
c
c
c
c
---
dp
numrl
varies
c
c
c
c
c
c
c
c
c
c
CSY
maxcsy
c
c
c
c
c
---
dp
csysiz
numcsy
c
c
c
10
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
c
c
c
LOC
dp
c
c
c
LOC
dp
c
c
c
c
c
c
EID
c
c
c
c
c
c
c
c
---
7*nnod
nnod
nelm
nelm
10+nodelm
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
mat
type
real
secnum
esys
death
solidm
shape
elnum
NODES
CENT
dp
nelm
MAS
dp
c
c
c
SEC
c
c
c
c
c
c
---
dp
6
nnod*numdof
numsec
maxsec
varies
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
11
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
MAT
c
c
c
c
c
c
c
c
---
dp
c
c
c
c
NOD
c
c
c
c
c
ELM
c
c
c
c
c
GNOD
3+nummat*(158+1)+2
Total Sz = Header Data + (158+1)*Number of Materials + Tail
The 1st 3 integers contain the header information
1) Version Number( -101 for differentiation from prev rst data )
2) Header Size which is 3
3) Size of the Index Array
I th Material Id is stored at
I varies from 1 to nummat
Data(3+((I-1)*(158+1))+1) .
varies
nnod
nelm
Glbnnod
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
12
---
200
nelm,
ncumit,
ptrESL,
mode,
DOFS,
DOFS,
DOFS,
DOFS,
DOFS,
DOFS,
title,
title,
title,
title,
stitle,
stitle,
nnod,
nrf,
ptrRF,
isym,
DOFS,
DOFS,
DOFS,
DOFS,
DOFS,
DOFS,
title,
title,
title,
title,
stitle,
stitle,
mask,
cs_LSC,
ptrMST,
kcmplx,
DOFS,
DOFS,
DOFS,
DOFS,
DOFS,
DOFS,
title,
title,
title,
title,
stitle,
stitle,
itime,
nmast,
ptrBC,
numdof,
DOFS,
DOFS,
DOFS,
DOFS,
DOFS,
DOFS,
title,
title,
title,
title,
stitle,
stitle,
(10)
(20)
(30)
(40)
(50)
(60)
(70)
(80)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
(90)
(100)
(110)
(120)
(130)
(140)
(150)
(160)
(170)
(180)
(190)
(200)
itime
iter
ncumit
nrf
cs_LSC
nmast
ptrNSL
ptrESL
ptrRF
ptrMST
ptrBC
rxtrap
mode
isym
kcmplx -
numdof DOFS
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
13
14
dp
100
lfacto,
tbulk,
accel,
omega,
omegacg,
cgcent,
pCnvVal,
pCnvVal,
pCnvVal,
pCnvVal,
timdat,
lfactn,
volbase,
accel,
omega,
omegacg,
cgcent,
pCnvVal,
pCnvVal,
pCnvVal,
pCnvVal,
timdat,
cptime,
tstep,
omega,
omega,
omegacg,
fatjack,
pCnvVal,
pCnvVal,
pCnvVal,
pCnvVal,
timdat,
tref,
0.0,
omega,
omegacg,
omegacg,
fatjack,
pCnvVal,
pCnvVal,
pCnvVal,
pCnvVal,
timdat,
(10)
(20)
(30)
(40)
(50)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timfrq
lfacto
lfactn
cptime
tref
tunif
tbulk
VolBase
tstep
0.0
accel
omega
omegacg
cgcent
fatjack
dval1
pCnvVal
timdat
EXA
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat
(60)
(70)
(80)
(90)
(100)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
timdat,
64
200
reference numbers
LMD1= 6, LMD2= 7,
EMD3=14, EMD4=15,
STRM=22, HFLU=23,
are:
LMD3= 8
EMD5=16
HFLM=24
*************************
Header extension
positions
1-32
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
15
c * NSL
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
---
dp
varies
nnod*Sumdof
c
c
c
c
c
VSL
dp
1 nnod*numvdof
c
c
c
c
c
ASL
dp
1 nnod*numadof
16
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
OSL
c
c
c
c
c
c
RF
c * --c
c
c
c
c
c
c
c
c
MST
c
c
c
c
c
c
c
c
c
c
BC
dp
LONG
nrf
dp
nrf
LONG
nmast
nnod*Sumdof
40
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
DIX
numdis
c
c
c
c
c
---
c
c
c
c
DIS
dp
4*numdis
c
c
FIX
numfor
numdis
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
17
c
c
c
c
c
---
c
c
c
FOR
dp
4*numfor
c
c
c
TRF
dp
28*nnod
c
c
OND
nnod
c
c
OEL
nelm
c
c
c
c
c
c
ESL
2*nelm
c
c
RCM
dp
6*numRotCmp
c
c
DMI
dp
3+nContours
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
18
numfor
c
c
c
c
c
25
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
pointer
to
to
to
to
to
to
to
to
to
to
to
to
to
to
misc. data
nodal forces
nodal stresses
volume and energies
nodal gradients
elastic strains
plastic strains
creep strains
thermal strains
euler angles
nodal fluxes
local forces
misc. non-sum values
element current
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
densities
ptrENL - pointer to nodal nonlinear data
ptrEHC - pointer to calculated heat
generations
ptrEPT - pointer to element temperatures
ptrESF - pointer to element surface
stresses
ptrEDI - pointer to diffusion strains
ptrETB - pointer to ETABLE items(post1 only
ptrECT - pointer to contact data
ptrEXY - pointer to integration point
locations
ptrEBA - pointer to back stresses
ptrESV - pointer to state variables
ptrMNL - pointer to material nonlinear record
c
c
c
c
c
c
c
c
c
EMS
dp
varies
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
ENF
dp
varies
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
ENS
dp
varies
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
19
20
NL
7 for EEL
7 for EPL
7 for ECR
8 for ETH
10 for ENL
7 for EDI
- number of layers in
elements
record
record
record
record
record
record
layered
dp
11
- element volume
- element energy associated with
the stiffness matrix
aenergy - artificial hourglass energy
kenergy - kinetic energy
coenergy - co-energy (magnetics)
incenergy- incremental energy (magnetics)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
0.0
- position not used
0.0
- position not used
thenergy - thermal dissipation energy
(see ThermMat, shell131/132 only)
0.0
- position not used
0.0
- position not used
EGR
dp
varies
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
EEL
c
c
c
c
c
c
c
c
c
c
c
c
EPL
c
c
c
c
c
c
c
c
c
c
ECR
dp
varies
dp
varies
dp
varies
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
21
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
ETH
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
EUL
22
dp
varies
dp
varies
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
(nodstr*3)+NL.
--For layered solid elements, add NL values
NOTE: See ENS record section for definition of
terms NL and nodstr.
EFX
dp
varies
c
c
c * ELF
c
c
c
c
c
c
c
c
c
c
dp
varies
c
c
c
c
c
c
c
EMN
dp
c * ECD
c
c
dp
c
c
c
c
c
dp
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
ENL
varies
varies
PLWK
CRWK
is described below:
equivalent stress parameter
stress ratio
hydrostatic pressure
accumulated equivalent plastic
strain
plastic state variable
accumulated equivalent creep
strain. Applies to current
technology element types
180,181,182,183,185,186,
187,188,189,208,209,265,
281,288,289,290
plastic strain energy density(work)
creep strain energy density (work)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
23
c
c
c
c
c
c
c
c
c * EHC
c
dp
dp
EPT
varies
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
24
ECT
dp
varies
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
CNOS
FPRS
ESF
dp
nsurf*19
* For 2d elements:
c
c
c
c
* For 3d elements:
c
c
c
c
facenm,
epy,
sz,
s2,
c
c
c
c
epx,
sy,
s1,
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
facenm
area
temp
press
epx
epy
epz
epxy
eppar
epper
epsh
sx
sy
sz
sxy
spar
sper
ssh
s1
s2
s3
sint
seqv
0.0d0
c
c
c
c
c
c
c
c
c
c
c
c
EDI
EXY
dp
varies
face number
face area
face temperature
face pressure
strain parallel to face
strain parallel to face
strain perpendicular to
shear strain
strain parallel to face
strain perpendicular to
torsion shear strain
stress parallel to face
stress parallel to face
stress perpendicular to
shear stress
stress parallel to face
stress perpendicular to
torsion shear stress
S(1)
S(2)
S(3)
S(INT)
S(EQV)
position not used
face
face
face
face
dp
varies
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
25
c
c
c
c
c
c
c
c
c
EBA
dp
varies
c
c
ESV
dp
varies
MNL
dp
varies
c
c
records marked with * to the left of the record id can be read and stored
into database with "ldread" command.
NDSTR
dp
6*nnod
dp
6*nnod
dp
6*nnod
**********
LONGINT
rdspfpL, rdspfp
integer
rdspbk, rdsput
common /fdrdsp/ rdspfpL, rdspbk, rdsput
equivalence (rdspfp,rdspfpL)
c
c
26
write:
write:
lnfrcl,lnfrin,lnfrwr
rdtrcl,rdtrin,rdtrwr
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
read:
rdtrs
c
co
co
co
c
c
c
file format
**********
c
c
c
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in the second file header.
c
c
c
c
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
standard ANSYS file header (see binhed for
details of header contents)
c
c
---
100
c
c
c
c
c
c
c
c
c
c
---
40
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
27
c
c
c
c
c
c
c
---
numdof
c
c
c
c
c
c
---
lenbac
---
dp
10
c
c
c
c
c
Time information:
dtime,
0.0,
0.0,
0.0,
c
c
c
c
c
0.0,
0.0,
0.0, timend
nmrow
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
0.0,
0.0,
---
nmrow+1
c
c
c
c
c
c
c
c
c
c
28
DNC
nbcdsp
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
c
c
c
c
c
c
STF
dp
nmrow
nmrow
c
c
c
c
c
c
MAS
dp
nmrow
nmrow
DMP
dp
varies
varies
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
FRQ
dp
c
c
c
*** The next 4 records are repeated (as a pair) until the time value
*** equals the value of timend. The number of iterations is stored as
*** ncumit. (see above records that deal with time)
c
c
c
c
c
c
c
c
c
c
c
DSP
dp
nmrow
nmrow+6
Calculated displacements
The first nmrow entries are the displacements
in the same order as the original set of DOFs
(see record AFTER ptrDOF). If DSPfmt=0, these
are physical displacements, If DSPftm!=0,
these are the nmode modal coordinates.
For
1.
2.
3.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
29
c
c
---
1 numdeflvs
c
c
---
1 numdeflvs
c
c
c
c
c
---
dp
ngaps
c *** The next 6 records are kept for possible restart using mode superposition
c *** method. They are overwritten upon restarting. They are written once (last
c *** loadstep).
c
c
c
c
c
c
c
c
c
c
DVA
dp
ndva+6
---
dp
ndva
---
dp
ndva
30
**********
rfrqfpL, rfrqfp
rfrqbk, rfrqut
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
write:
write:
read:
harmcl,harmin,harmwr
hrfrcl,hrfreq
harstr
c
co
co
co
c
c
c
file format
**********
c
c
c
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in the second file header.
c
c
c
c
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
standard ANSYS file header (see binhed for
details of header contents)
c
c
---
100
c
c
c
c
c
c
c
c
c
c
---
40
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
numdof
maxn
wfmax
lenbac
extopt
ncumit kan
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
31
c
c
c
c
c
c
c
---
numdof
c
c
c
---
lenbac
c
c
c
---
dp
10
c
c
c
c
c
DOF
nmrow
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
---
nmrow+1
c
c
c
c
c
c
c
c
32
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
c
c
c
c
c
c
c
DNC
c
c
c
c
c
c
c
STF
dp
c
c
c
c
c
c
MAS
dp
DMP
dp
nbcdsp
nmrow
nmrow
nmrow
nmrow
varies
varies
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
FRQ
c
c
c
c
c
c
c
DSP
c
c
c
c
c
dp
cmp
ncumit
nmrow
nmrow+5
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
33
c
c
c
c
c
c
c
c
---
1 numdeflvs
c
c
c
---
1 numdeflvs
**********
character*8 MODENM
parameter (MODENM='mode
c
c
**********
')
modefpL
modebk,
modeut
c
c
34
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
**********
file format
**********
c
c
c
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in the second file header.
c
c
c
c
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
c
c
---
100
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
---
100
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
fun09,
nmrow,
nmatrx,
nmode,
numdof,
maxn,
wfmax,
lenbac, nEnfGrp,
nontp,
lumpms,
extopt,
SvCode,
kan,
ldstep,
numitr,
expbeg,
expend,
nspect,
nSPdat,
ptrRDF,
ptrFRQ, kPerturb,
ptrSHP,
ptrLOD,
ptrSTF,
ptrMAS,
ptrDMP,nrkeyPert,
nrigid,
ptrLPM,
ptrSP1, ptrSHPh, ptrLODh, ptrSTFh,
ptrMASh, ptrDMPh, ptrLPMh, ptrSP1h, ptrIRHSl,
ptrIRHSh, PowerDyn,
ptrRES, ptrRESh,Glblenbac,
KeyStress,
ptrELD, ptrELDh,
ptrGBk, ptrGBkh,
modlstp,
nresi,
ptrEf1, ptrEf1h,
sstif,
ptrFSTA,
ptrEf2, ptrEf2h,
ptrEf3, ptrEf3h,
qrDampKey,
0
0,
0,
0,
0,
0
0,
0,
0,
0,
0
0,
0,
0,
0,
0
0,
0,
0,
0,
0
0,
0,
0,
0,
0
0,
0,
0,
0,
0
0,
0,
0,
0,
0
0,
0,
0,
nmatrx
nmode
numdof
maxn
wfmax
lenbac
nEnfGrp
nontp
lumpms
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
35
36
numdof
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
---
lenbac
c
c
c
c
GBK
FSTA
dp
30
fstacm.inc information
c
c
c
c
c
c
c
RDF
nmrow
c
c
c
c
c
c
c
FRQ
dp
nmode+nresi
c
c
c
c
c
c
c
SHP
dp
nmode
nmrow
RES
dp
nresi
nmrow
residual vectors
c
c
LOD
dp
ldstep
nmrow
Load vectors
(f(i),i=1,nmrow)
c IRHS
c
dp
ldstep
nmrow
c
c
c
c
c
LPM
dp
nmrow
c
c
c
c
c
c
STF
dp
nmrow
nmrow
c
c
c
c
c
MAS
dp
nmrow
nmrow
c
c
c
c
c
c
DMP
dp
nmrow
nmrow
EF1
int
nEnfGrp
Glblenbac
(groupID(i),i=1,nEnfGrp)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
37
int
dp
1
nEnfGrp
nEnfGrp
grpdof(i)
(grpdof(i),i = 1,nEnfGrp)
dofIndx(i,j) i = 1,grpdof(j)
EF2
dp
nEnfGrp
nmrow
EF3
dp
nEnfGrp
nmrow
ELD
int
15
nelm,
mask, nItems, ptrELM, ptrERS,
ptrCER,ptrCERh, ptrESL,ptrESLh,
nRF
ptrFR, ptrRFh, PrecKey
each item in header is described below:
c
c
c
c
c
c
c
c
c
c
c
c
---
int
2*nItems
c
c
c
ELM
int
nelm
c
c
ERS
int
nelm
c
c
CER
int
nItems
5
ptrVOL, ptrEPT, ptrEUL,
above pointers are relative to ptrCER
c
c
c
c
c
c
c
ESL
c
c
c
c
c
c
int
0,
by mode):
volume
structural nodal temperatures
Euler angles
10
38
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
********** description of element matrix file **********
c
c *** mpg fdemat.inc < eoelem elostr eofini outelm elfini EmatAssemble sffini
c
eqprep sfform elstrt slvstr: emat file description
c
character*8 EMATNM
parameter (EMATNM='emat
')
LONGINT
ematfpL, ematfp
integer
ematbk, ematut
common /fdemat/ ematfpL, ematbk, ematut
equivalence (ematfp,ematfpL)
c
co
co
co
c
c
c
file format
**********
c
c
c
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in the second file header.
c
c
c
c
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
standard ANSYS file header (see binhed for
details of header contents)
c
c
---
100
c
c
c
c
c
c
c
c
c
c
---
40
c
c
c
c
c
lenu,
nodref,
kygss,
ptrGBkl,
ptrBITh,
ptrCEl,
ptrFSTl,
ptrendH,
lenbac,
lumpm,
kygaf,
ptrGBkh,
ptrEHDh,
ptrCEh,
ptrLSTl,
ptrendL
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
39
c
c
c
c
c
c
c
c
c
c
c
c
c
40
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
c
c
c
c
c
---
dp
20
Time information
timval, timinc, frqval, timbeg, timend,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
DOF
numdof
c
c
c
c
BAC
lenbac
c
c
c
c
c
c
ELM
nume
c
c
c
c
c
GBK
c
c
c
c
FST
lenu
c
c
c
c
LST
lenu
c
c
c
BIT
lenu
Glblenbac
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
41
IDX
c
c
c
The records at the end of the file store element information and get written
as a set for each element(nume sets of these records will appear on the file
at this point) ptrEHD indicates the beginning of the element data.
c
c
c
If substructure matrices are written to the EMAT file, they are written in a
different format than is shown here. This alternate format is not documented
at this time, as it is likely to change in the future.
c
c
c
c
EHD
2*nume
10
mkey,
ikey,
dkey,
0,
sskey, akey,
0, nmrow
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
stkey
mkey
dkey
sskey
akey
nrkey
ikey
0
0
nmrow
c
c
c
c
c
c
c
---
c
c
c
c
c
c
c
c
c
---
dp
---
dp
42
varies
nmrow
varies
2*nmrow
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
---
---
dp
numCE
nTerms
numCE
nTerms
numCE
kygst
kygm
kygd
kygss
kygaf
kygrf
global
global
global
global
global
global
c
c
**********
matout
c
co
co
co
co
c
c
c
c
c
c
**********
file format
**********
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in the second file header.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
43
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
standard ANSYS file header (see binhed
for details of header contents)
c
c
---
100
c
c
c
c
c
c
c
c
c
c
c
c
c
c
HED
60
c
c
c
c
c
c
c
c
c
c
c
c
c
c
HED
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
44
(FULL MATRICES)
60
10
20
30
40
50
60
(SPARSE MATRICES)
9,
nEqn, nmatrx, ndege, numdof,
maxn, wfmax, lenbac,
nnod, kunsym,
kstf, kmass, kdamp,
, nvect,
nTermL,
,
, lenlst,ptrLodL,
ntrans,ptrMtxL, ptrXFM, ptrHED, name1,
name2, ptrCG,
, name3, name4,
ptrDOF,
, ptrBAC, ptrTIT, ptrNOD,
ptrXYZ, ptrEdg, ptrGDF, thsubs,
,
, stfmax,ptrLodH,
, keydim,
, name5, name6, name7, name8,
,ptrCTXM, nTermH,ptrMtxH,ptrColL,
ptrColH,ptrCofL,ptrCofH,ptrEndL,ptrEndH
10
20
30
40
50
60
nnod
kunsym
kstf
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
kmass
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
45
CMS s.e.
keydim - dimensionality key
= 1 - axisymmetric
= 2 - 2-D
= 3 - 3-D
cmsMethod - component mode synthesis method
name5 - fifth four characters of the
substructure file name, in integer
form
name6 - sixth four characters of the
substructure file name, in integer
form
name7 - seventh four characters of the
substructure file name, in integer
form
name8 - eighth four characters of the
substructure file name, in integer
form
nvnodes - number of virtual nodes that contain
the modal coordinates
ptrCTXM - coordinate transformation
ptrColL,H - pointer to the iCol sparse matrix
array
ptrCofL,H - pointer to the of the
sparse matrix Sk(1:nTerm),
Sm(1:nTermL),Sc(1:nTermL),
Ss(1:nTermL) Each matrix is a
single large record
ptrEndL,H - Next location after end of file
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
46
XFM
dp
125
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
250
operation
Substructure transformations
CTXM
dp
c
c
c
c
c
c
c
DOF
numdof
c
c
c
c
c
c
c
c
DST
nmrow
c
c
c
POS
nmrow
c
c
c
c
c
c
c
ORG
nmrow
c
c
c
c
c
c
c
BAC
c
c
TIT
20
c
c
c
c
c
NOD
nnod
c
c
c
c
c
XYZ
dp
nnod
c
c
c
c
EDG
dp
nedge
c
c
c
c
c
c
c
c
GDF
LONG
nmrow
CG
dp
10
TVAL
dp
1000
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
47
steps
c The substructure matrices are written at this position in the file. One row
c of each matrix is written to the file at a time. i.e. the first row of each
c matrix is written, then the second row of each matrix, etc. this pattern
c continues until all nmrow rows of each matrix have been written to the file.
c
c
c
c
c
c
c
c
c
MAT
dp
nmrow
---
dp
nmrow
---
dp
nmrow
---
dp
nmrow
c
c
LOD
dp
nvect
nmrow
xslin
**********
character*8 CMSNM
parameter
(CMSNM='cms
LONGINT
integer
')
cmsfpL, cmsfp
cmsbk, cmsut
c
c
c
file format
**********
c
c
c
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in the second file header.
c
c
c
c
48
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
**********
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
standard ANSYS file header (see binhed for
details of header contents)
c
c
---
100
c
c
c
c
c
c
c
c
c
c
---
40
fun45,
neqn,
nirfm,
nnorm,
ncstm,
nrsdm, cmsMeth,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
ptrIRFl, ptrNORl, ptrCSTl, ptrRSDl, ptrIRFh,
ptrNORh, ptrCSTh, ptrRSDh,
0,
0
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
each item
fun45 neqn nirfm nnorm ncstm >
<
nrsdm cmsMeth -
ptrIRFl,ptrIRFh
ptrNORl,ptrNORh
ptrCSTl,ptrCSTh
ptrRSDl,ptrRSDh
0
---
neqn
c
c
c
c
c
c
c
c
c
NOR
dp
nnorm
neqn
Normal Modes
IRF
dp
nirfm
neqn
CST
dp
ncstm
neqn
Constraint Modes
RSD
dp
nrsdm
neqn
Residual modes
xslin
**********
character*8 TCMSNM
parameter
(TCMSNM='tcms
LONGINT
integer
**********
')
tcmsfpL, tcmsfp
tcmsbk, tcmsut
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
49
c
c
c
file format
**********
c
c
c
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in the second file header.
c
c
c
c
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
standard ANSYS file header (see binhed for
details of header contents)
c
c
---
100
c
c
c
c
c
c
c
c
c
c
c
---
40
c
c
c
c
c
c
c
c
c
c
c
c
each item
fun48 nNodes neqn numdof nirfm nnorm ncstm ptrIRFl,ptrIRFh ptrNORl,ptrNORh ptrCSTl,ptrCSTh 0
-
numdof,
0,
0,
0,
0,
0,
0,
0,
0,
nirfm,
0,
0,
0,
0,
0,
0,
0,
0
c
c
c
---
nNodes
NOR
dp
nnorm
neqn
Normal Modes
IRF
dp
nirfm
neqn
CST
dp
ncstm
neqn
Constraint Modes
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
**********
character*8 FULLNM
parameter (FULLNM='full
c
c
**********
')
fullfpL, fullfp
fullbk, fullut, wrLdstep, wrSbstep, wrEqiter,
x
wrOption
common /fdfull/ fullfpL, fullbk, fullut,
x
wrLdstep,wrSbstep,wrEqiter,wrOption
equivalence (fullfp,fullfpL)
c
co
co
co
c
c
**********
**********
file format
**********
c
c
c
recid tells the identifier for this record. Not all records will have
identifiers -- they are only indicated for those records whose
record pointers are stored in the second file header.
c
c
c
c
nrec tells how many records of this description are found here
lrec tells how long the records are (how many items are stored)
c recid
type
nrec
lrec
contents
standard ANSYS file header (see binhed for
details of header contents)
c
c
---
100
c
c
c
c
c
c
c
c
c
c
c
---
60
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
51
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
c NOTE: If fun04 > 0, then the file was created with frontal assembly
c
If fun04 < 0, then the file was created with symbolic assembly;see below
c
for its format
c -------------------------- frontal assembled file -------------------------c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
---
c
c
c
c
---
c
c
c
c
NOTE: The next five records are repeated as a group neqn times.
When the matrices get written, one row of each matrix is written to the file
at a time. i.e. the first row of each matrix is written, then the second row
of each matrix, etc. this pattern continues until all the rows of each
52
numdof
lenbac
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
matrix have been written to the file. If kan=3, the matrix rows will be
complex valued, otherwise they will be double precision values.
c
c
c
c
c
c
c
c
c
IDX
varies
c
c
c
c
c
c
---
varies
---
varies
Stiffness matrix.
dp/cmp
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
---
dp/cmp
varies
Mass matrix.
nmatrix > 1.
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
dp/cmp
varies
Damping matrix.
nmatrx > 2.
c
c
c
c
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
53
c
c
c
c
54
---
100
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ncefull
ptrENDl
ptrENDh
ptrIRHSl,h
ptrMASl,h
ptrDMPl,h
ptrCEl,h
nNodes
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
55
---
c
c
c
---
numdof
lenbac
c Stiffness Matrix. The next two records are repeated as a group neqn times.
c
c
c
c
STF
---
dp/cmp
varies
varies
Matrix terms
c
c
c
c
c
c Load Vector
RHS
dp/cmp
neqn
IRHS
dp
neqn
DIAGK
dp/cmp
neqn
SCLK
dp/cmp
neqn
c DOF information
c
c
DOF
nNodes
c
c
---
neqn
---
neqn
---
varies
dp/cmp
Imposed values
c Mass Matrix.
c
if lumpm = 0:
c
The next two records are repeated as a group neqn times.
c
c
c
c
MAS
varies
---
dp
varies
Matrix terms
c
c
if lumpm = 1:
--dp
neqn
Matrix diagonals
56
DIAGM
dp
neqn
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
DMP
varies
---
dp
varies
Matrix terms
DIAGD
dp
neqn
CE
ncefull
---
dp
ncefull
c ---c
dp
ncefull
c
c
c
---
dp
ncefull
c ---c
dp
ncefull
---
---
nRows
Vector of 1's
---
nRows
---
varies
Column indices
---
dp
varies
Column values
nNodes
varies
Index vector.
NGPH
c
c
c
c
c
c
c
c
c
c
c
VBC
nVirtBCs
nVirtBCs
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
57
58
K21' *g'
= (K21,M21)*(g,gx)
= (K21*g- M21*gx, K21*gx + M21*g)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ResRdDemo
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
59
ResRdDemo
60
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
2.1.4. Abbreviations
The input and output for the routines discussed in this chapter are described with the following abbreviations:
Type of variable is one of the following:
int - integer
dp - double-precision
log - logical (true or false)
char - character
Size of variable is one of the following:
sc - scalar variable
ar(n) - array of size n
Intent of variable is one of the following:
in - input only
out - output only
inout - both an input and an output variable
input arguments:
iott
(int,sc,in)
output arguments:
none
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
61
input arguments:
variable (typ,siz,intent)
nunit
(int,sc,in)
fname
(chr,sc,in)
lname_in (int,sc,in)
inqr_in (chr,sc,in)
c
c
c
output arguments:
sysiqr
(int,func,out)
description
fortran unit number (used only for inqr='O')
name of file
length of file name (characters, max=50)
character key for information requested
= 'E' - return whether file exists
sysiqr = 1 - file exists
= 0 - file does not exist
< 0 - error occured
= 'O' - return whether file is open
sysiqr = 1 - file is open
= 0 - file is closed
< 0 - error occured
= 'N' - return unit number of file
sysiqr > 0 - unit number for file
= 0 - file not assigned to a unit
< 0 - error occured
62
input arguments:
nblk
(int,sc,in)
key
(in words)
= 9 - return starting word for this page
in buffer
=10 - return base location
=11 - return debug key
=12 - return absolute (non-base) key
=15 - return max record written
=16 - return swap and record header key
=17 - return precision key
output arguments:
biniqr
(int,func,out)
input arguments:
nblk
(int,sc,in)
nunit
(int,sc,in)
c
c
c
c
c
output arguments:
binset
(int,func,out)
ikeyrw
NOTE: 0
1
2
9
istart
paglen
npage
pname
nchar
kext
Buffer4
Buffer4
- error status
= 0 - no error
<>0 - error occurred
(i4, ar(*),inout) - work array for paging
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
63
2.1.9. Subroutine bintfo (Defining Data for a Standard ANSYS File Header)
*deck,bintfo
subroutine bintfo (title,jobnam,units,code)
c *** primary function:
set information necessary for binhed
c --- This routine is intended to be used in standalone programs.
c --- This routine should not be linked into the ANSYS program.
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c
typ=int,dp,log,chr,dcp
siz=sc,ar(n)
intent=in,out,inout
c
c input arguments:
c
variable (typ,siz,intent)
description
c
title
(chr*80,ar(2),in) - main title and 1st subtitle
c
jobnam
(chr*8,sc,in)
- jobname
c
units
(int,sc,in)
- units
c
= 0 - user defined units
c
= 1 - SI
c
= 2 - CSG
c
= 3 - U.S. Customary, using feet
c
= 4 - U.S. Customary, using inches
c
= 5 - MKS
c
= 6 - MPA
c
= 7 - uMKS
c
code
(int,sc,in)
- code defining 3rd party vendor
c
(contact ANSYS, Inc. for code assignment)
c
c output arguments:
c
none
c
input arguments:
nblk
(int,sc,in)
c
c
c
output arguments:
filpos
(int,sc,out)
- the position after the header
buffer
(int,ar(*),inout) - work array for paging
c
c
c
c
c
c
c
c
c
c
c
c
64
nunit
buffer
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
1
1
1
3
2
2
1
3
3
1
1
1
8
20
20
1
2
**********
input arguments:
nblk
(int,sc,in)
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
LongLocL(LONG,sc,inout)- location in integer*4 words of the current
position on the file. It is updated after
each read operation
leng
(int,sc,inout) - tells you how many items it actually read(in
integer words).
if zero, end of file(error case)
ivect (int,ar(*),out) - results (can be either integer or double
precision in the calling routine)
kbfint (int,sc,out)
- key for type(used only for AUX2 dump)
= 0 double precision data
> 0 integer data(usually the same as leng)
Buffer4 (i4,ar(*),inout) - work array for paging
- block number.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
65
input arguments:
nblk
(int,sc,in)
c
c
c
c
c
c
output arguments:
LongLocL(LONG,sc,inout)- location in integer words of the current
position on the file. It is updated after
each write operation
ivect (int,ar(*),out) - vector containing record to be written
Buffer4 (int,ar(*),inout) - work array for paging
- block number.
Versions of binrd8/binwrt8 exist without the "8" suffix (binrd/binwrt) that take a regular integer
for the second argument. These subroutines, therefore, cannot address large files where the file position
exceeds 2**31. Use the binrd8/binwrt8 versions for any new programs.
66
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
nblk
(int,sc,in)
c
c
output arguments:
Buffer4
(int,ar(*),inout) - work array for paging
pstat
Buffer4
input arguments:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
67
small
large
(int,sc,in)
(int,sc,in)
output arguments:
largeIntGet (LONGINT,sc,out)
- 64 bit integer
Description
iout
intpdp
lenfrm
reclng
Note
The bintst program is not part of the binlib.a library. It is included here only to aid you.
68
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Demonstration Routines
c
c
c
c
c
c
lenfnm
reclng
(int,sc,comm)
(int,sc,comm)
Note
The bintrd routine and the bintwr routine described below are not part of binlib.a.
This chapter includes it only to aid you. You can find the source for this routine on the ANSYS
distribution media.
Both subroutines require the following common:
COMMON/BINTCM/ IOUT,INTPDP,LENFNM,RECLNG
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
69
2.2.6. Program rdfull (Demonstrates Reading and Reformatting the .FULL File)
Program rdfull demonstrates how to read and reformat the .FULL file. ANSYS writes the full file for
most analysis types that use the sparse solver. You can also use the WRFULL command.
If you want to use the free stiffness and mass matrices, make sure that there are no constraints on your
model.
*deck,rdfull
program rdfull
c *** primary function:
demonstrates use of binary access routines
c *** secondary function: Read and reformat full file
c
c *** Copyright ANSYS. All Rights Reserved.
c *** ansys, inc.
c
c
c **************************************************************
c * Reads a FULL file. To be used as base for 3rd party
*
c * development of routines for reading ANSYS FULL files.
*
c * This demonstration program can handle up to:
*
c *
MAXNODE nodes and MAXEQN equations
*
c **************************************************************
c
c
c ****************************************************************
70
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
****************************************************************
NOTICE - A new assembly process, termed 'symbolic assembly', has
replaced the old assembly process, termed 'frontal
assembly', and is now the default assembly process for
most analyses. This program demonstrates how to read
and reformat the .FULL file that was created using
frontal assembly or symbolic assembly. The archived
feature PSOLVE can be used to create a .FULL file from
frontal assembly. ANSYS writes the .FULL
file from the 'symbolic assembly' by default,
when the sparse, ICCG, or JCG solver is used, as well as
when most mode extraction methods are used.
Be sure to set up for modal ANTYPE,2
and Block Lanczos
MODOPT,LANB,nmode,0,0, ,OFF
(nmode is not used - it can be any value
If the free-free stiffness and mass matrices are desired,
make sure there are no constraints on the model.
****************************************************************
****************************************************************
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
71
These routines are contained in the file ResRd.F. See the demonstration routine ResRdDemo.F on
the distribution medium for an example of the usage of these routines.
The memory allocation scheme is described in Memory Management Routines in the Guide to UserProgrammable Features.
The following sections describe the data-reading routines. See the file ResRd.F and its corresponding
include deck ResRd.inc for listings of the corresponding Begin/End routines.
72
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c object/library: ResRd
c
c
c
c
c
input arguments:
Nunit
(int,sc,in)
- Fortran Unit number for file (ANSYS uses 12)
Lunit
(int,sc,in)
- Current print output unit (usually 6 <STDOUT>)
Fname
(ch*(ncFname),sc,in) - The name (with extension) for the file
ncFname (int,sc,in)
- Number of characters in Fname
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
Title
(ch*80,ar(2),out) - Title and First subtitle
JobName (ch*32,sc,out)
- Jobname from file
Units
(int,sc,out)
- unit system
= 0 - user defined units
= 1 - SI
= 2 - CSG
= 3 - U.S. Customary, using feet
= 4 - U.S. Customary, using inches
= 5 - MKS
= 6 - MPA
= 7 - uMKS
NumDOF
(int,sc,out)
- Number of DOF per node
DOF
(int,ar(*),out)
- The DOFs per node
UserCode (int,sc,out)
- Code for this application
MaxNode (int,sc,out)
- Maximum node number used
NumNode (int,sc,out)
- Number of nodes attached to elements
MaxElem (int,sc,out)
- Maximum element number used
NumElem (int,sc,out)
- Number of elements used
MaxResultSet (int,sc,out) - Maximum number of result sets (usually 1000)
NumResultSet (int,sc,out) - Number of result sets on file
ResRdBegin (int,sc,out)
- 0, successful other, error in file open
input arguments:
none
c
c
c
c
c
output arguments:
MaxType (int,sc,out)
MaxReal (int,sc,out)
MaxCsys (int,sc,out)
nXYZ
(int,sc,out)
input arguments:
itype
(int,sc,on)
c
c
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
73
ResRdType (int,sc,out
input arguments:
iReal
(int,sc,in)
c
c
c
input arguments:
iCsys
(int,sc,in)
c
c
c
output arguments:
Csys
(dp,ar(ResRdCsys),out)- Coordinate system description
ResRdCsys (int,sc,out)
- Number of values
output arguments:
input arguments:
iNode
(int,sc,in)
c
c
c
output arguments:
xyzang
(dp,ar(6),out)
ResRdNode (int,sc,out)
74
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
iElem
(int,sc,in)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
ResRdElem(int,sc,out)
nodes
(int,ar(n),out)
ElemData (int,ar(10),out)
- Number of nodes
- Element nodes
- Element information
mat
- material reference number
type
- element type number
real
- real constant reference number
secnum - section number
esys
- element coordinate system
death - death flag
= 0 - alive
= 1 - dead
solidm - solid model reference
shape - coded shape key
elnum - element number
pexcl - P-Method exclude key
input arguments:
none
c
c
c
output arguments:
MaxSect (int,sc,out)
MaxMat
(int,sc,out)
input arguments:
iSect
(int,sc,in)
c
c
c
output arguments:
SecData
(dp,ar(ResRdSect),out) - Section data
ResRdSect (int,sc,out)
- Number of section data in set
input arguments:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
75
iMat
iprop
(int,sc,in)
(int,sc,in)
output arguments:
MatData
(dp,ar(ResRdMat),out)
ResRdMat (int,sc,out)
See mpinqr Function (Getting Information About a Material Property) (p. 243) for details on the property
reference number (iprop).
input arguments:
key
(int,sc,in)
c
c
c
c
c
output arguments:
Title
(ch*80,ar(5),out) - Title and 4 subtitles
DofLab
(ch*4,ar(nDOF),out)- Labels for DOFs
ResRdSolBegin (int,sc,out) - 0, requested solution set found
1, not found
lstep
substep
ncumit
kcmplx
time
(int,sc,in/out)
(int,sc,in/out)
(int,sc,in/out)
(int,sc,in)
(int,sc,in/out)
- 1, find by lstep/substep
2, find by ncumit
3, find by time
- Load step number
- Substep of this load step
- Cumulative iteration number
- 0, Real solution
1, Imaginary solution
- Current solution time
input arguments:
node
(int,sc,in)
c
c
c
- Node number
76
input arguments:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
node
idof
(int,sc,in)
(int,sc,in)
output arguments:
value
(dp,sc,in)
ResRdRfor (int,sc,out)
input arguments:
node
(int,sc,in)
idof
(int,sc,in)
c
c
c
output arguments:
value
(dp,ar(4),in)
ResRdFix (int,sc,out)
- Real,Imag, RealOld,ImagOld
- Number of returned values (0 or 4)
input arguments:
node
(int,sc,in)
idof
(int,sc,in)
c
c
c
output arguments:
value
(dp,ar(4),in)
ResRdForc (int,sc,out)
- Real,Imag, RealOld,ImagOld
- Number of returned values (0 or 4)
c
c
input arguments:
iStr
(int,sc,in)
c
c
c
output arguments:
ResRdEstr (int,sc,out)
Str
(dp,ar(nStr),out)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
77
78
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Note
Files created by the CDWRITE command have the active coordinate system set to Cartesian
(CSYS, 0).
ANSYS may create parameters in the CDWRITE file that start with an underscore (_), usually
an _z. Such parameters are for ANSYS internal use and pass information to the ANSYS GUI.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
79
NDOF
ANSYS degree of freedom number (1 to 32)
LabD
Displacement degree of freedom label to be assigned (up to four characters)
LabF
Force label to be assigned (up to four characters)
You can also use /DFLAB to assign labels to spare degree of freedom numbers. Spare displacement
and force labels are from 13 to 18 and from 27 to 32. All other DOF numbers are predefined, as follows:
DOF Number
Corresponding
Force Label
UX
FX
UY
FY
UZ
FZ
ROTX
MX
ROTY
MY
ROTZ
MZ
AX
CSGX
AY
CSGY
AZ
CSGZ
10
VX
VFX
11
VY
VFY
12
VZ
VFZ
19
PRES
FLOW
20
TEMP
HEAT
21
VOLT
AMPS
22
MAG
FLUX
23
ENKE
NPKE
24
ENDS
NPDS
25
EMF
CURT
26
CURR
VLTG
80
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
3.2.1. CE Command
The CE command defines the constant term in a constraint equation. The command format in Jobname.CDB is:
CE,R5.0,Type,LENGTH,NCE,CONST
Type
The type of data to be defined. DEFI is the valid label.
LENGTH
The total number of variable terms in the constraint equation.
NCE
The constraint equation reference number.
CONST
The constant term of the equation.
Another version of the CE command defines the variable terms in a constraint equation. You must issue
this version of the command after the CE command described above. This command repeats until all
terms are defined.
The alternate format for the CE command is:
CE,R5.0,Type,N1,Dlab1,C1,N2,Dlab2,C2
Type
The type of data to be defined. NODE is the valid label.
N1
The node number of the next term.
Dlab1
The DOF label of N1.
C1
The coefficient of N1.
N2
The node number of the next term.
Dlab2
The DOF label of N2.
C2
The coefficient of N2.
3.2.2. CP Command
The CP command defines a coupled node set. You repeat the command until all nodes are defined.
The command format in Jobname.CDB is:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
81
LENGTH
The total number of nodes in the coupled set
NCP
The coupled node reference number
Dlab
The degree of freedom label for the set
N1,N2,N3,N4,N5,N6,N7
The next seven node numbers in the coupled set
Cname
Eight character component name.
Entity
Label identifying the type of component (NODE or ELEMENT).
NUMITEMS
Number of items written.
Format
Data descriptors defining the format. For CMBLOCK this is always (8i10).
The items contained in this component are written at 10 items per line. Additional lines are repeated
as needed until all NumItems are defined. If one of the items is less than zero, then the entities from
the item previous to this one (inclusive) are part of the component.
NUM_NODES
The number of nodes to be read in the first line of an element definition.
Solkey
The solid model key. The element is part of a solid model if the keyword SOLID appears here. When
Solkey = SOLID, Field 8 (the element shape flag) may be left at zero, and Field 9 is the number of
nodes defining this element.
Format
Data descriptors defining the format.
82
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
FREQ
The time interval between adaptive mesh refinement.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
83
Option
The label identifying the contact behavior.
Cont
The contact surface, identified by component name, part ID, or part assembly ID.
Targ
The target surface, identified by component name, part ID, or part assembly ID.
84
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Option
The EDCURVE command option. The only valid option is ADD.
LCID
The curve ID.
Length
The number of data values for the abcissa array (Par1) and the ordinate array (Par2).
Par1
The abcissa values, repeat Length number of times.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
85
Option
EDDRELAX command option. Valid options are ANSYS (relaxation is based on the implicit analysis, see
the EDDRELAX command in the Command Reference) or DYNA, where the relaxation parameters are
controlled within the LS-DYNA analysis. The following arguments are valid for Option= DYNA only.
NRCYCK
The number of iterations between the convergence checks.
IRELAL
Automatic control based on Papadrakakis not active (0) or active (1).
EDTTL
The convergence tolerance when automatic control is used.
DRTOL
The convergence tolerance.
DFFCTR
The dynamic relaxation factor.
DRTERM
The termination time for dynamic relaxation.
TSSFDR
The scale factor for each computed time step.
NOTE: This command is also listed in the Command Reference. The format listed here contians information
specific to the CDREAD/CDWRITE file.
Option
The EDLCS command option. The only valid option is ADD.
CID
The coordinate system ID.
86
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Option
The EDLOAD command option. The only valid option is ADD.
Lab
The load labels.
Key
The coordinate system number defined by EDLCS or the element face number for the pressure loading.
Cname
The name of the existing component or part number to which this load will be applied.
Length
The number of data values for the time array (Par1) and the load array (Par2).
Phase
Phase of the analysis in which the load curve is to be used.
Par1
The time values, with the number of values in the string defined by the Length argument (above).
Par2
The load values, with the number of values in the string defined by the Length argument (above).
LCID
The curve ID, created using the EDCURVE command. If LCID is nonzero, then Length= 1, and Par1
and Par2 will be equal to 0.
Scale
The Scale Factor applied to the load curve.
Btime
The birth time.
Dtime
The death time.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
87
Nmat
The number of materials.
Npart
Number of parts, and also, the number of times to repeat the second Type,Mat,Real,Used input line.
Type
The element type number.
Mat
The material number.
Real
The real constant set number.
Used
The flag indicating if the part is used (1), or not used (0).
For Release 8.0 and beyond, the command format is:
EDPREAD,R8.0,Nmat,Npart,Part ID
Type, Mat, Real, Used
Nmat
The number of materials.
Npart
Number of parts, and also, the number of times to repeat the second Type,Mat,Real,Used input line.
PartID
The part number.
Type
The element type number.
Mat
The material number.
Real
The real constant set number.
Used
The flag indicating how many elements use PartID. If USED = 0, PartID is not used.
88
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Option
The EDWELD command option. The only valid option is ADD.
NWELD
The spotweld ID number.
N1
The node number of the first node connected by the spotweld.
N2
The node number of the second node connected by the spotweld.
SN
The normal force at the spotweld failure.
SS
The shear force at the spotweld failure.
EXPN
The exponent for spotweld normal force.
EXPS
The exponent for spotweld shear force.
The command format for the generalized weld appears in Jobname.CDB as follows:
EDWELD,R5.3,Option,NWELD,CNAME,,SN,SS,EXPN,EXPS,EPSF,TFAIL,NSW,CID
Option
The EDWELD command option. The only valid option is ADD.
NWELD
The generalized weld ID number.
CNAME
The name of the node component.
SN
The normal force at the weld failure.
SS
The shear force at the weld failure.
EXPN
The exponent for weld normal force.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
89
3.2.13. EN Command
The EN command is used to define an element . If an element contains more than eight nodes, the EN
command is repeated until all nodes are defined. The command format in Jobname.CDB is:
EN,R5.5,Type,NUMN,I1,I2,I3,I4,I5,I6,I7,I8
Type
The type of data to be defined. Valid labels are ATTR (read in element attributes), and NODE (read
in nodes defining the element).
NUMN
The number of nodes.
I1,I2,I3,I4I5,I6,I7,I8
The integer values to be read:
If Type is ATTR, the integer values are the element attributes. Attributes are in the order:
NUMN,MAT,TYPE,REAL,SECNUM,ESYS,NUMELEM,SOLID,DEATH,EXCLUDE
If Type is NODE, the integer values are the node numbers.
Type
The type of data to be defined. Valid labels are LOC (read in system origin), ANG (read in rotation angles),
and PRM (read in system parameters).
NCSY
The coordinate system reference number.
CSYTYP
The coordinate system type (0, 1, 2, or 3).
90
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
3.2.15. M Command
The M command defines a master degree of freedom. The command format in Jobname.CDB is:
M,R5.0,NODE,Dlab
NODE
The node number
Dlab
The DOF label
LENGTH
The total number of temperatures in the table.
Lab
The material property label. See the MP command description in Command Reference for valid labels.
MAT
The material reference number.
STLOC
The starting location in the table for the next three property values.
VAL1,VAL2,VAL3
Property values assigned to three locations in the table starting at STLOC.
LENGTH
The total number of temperatures in the table
STLOC
The starting location in the table for the next three temperature values
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
91
3.2.18. N Command
If the UNBLOCKED option is used with the CDWRITE command, then the N command defines a node.
This is also the method used for defining nodes in .CDB files before ANSYS 5.4. The command format
in Jobname.CDB is:
N,R5.3,Type,NODE,SOLID,PARM,VAL1,VAL2,VAL3
Type
The type of data to be defined. Valid labels are LOC (read in coordinates) and ANG (read in rotation
angles).
NODE
The node number.
SOLID
The solid model reference key. Not present for Type= ANG.
PARM
Line parameter value (0 if not on line). Not present for Type= ANG.
VAL1,VAL2,VAL3
Values to be read:
If Type is LOC, values are the coordinates in the global Cartesian system.
If Type is ANG, values are the rotation angles in degrees.
NUMFIELD
The number of fields in the blocked format.
Solkey
The solid model key. The node is part of a solid model if the keyword SOLID appears here.
NDMAX
The maximum node defined.
NDSEL
The number of nodes written.
Format
Data descriptors defining the format.
The format of the node "block" is as follows:
92
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
0.0000000000000E+00-2.7800000000000E-14
5.1620000000000E+02 1.1200000000000E+02
3.9980000000000E+02 5.8490000000000E+02
2.0010350750000E+03-2.0000000000000E+02
1.9922750340000E+03-4.9000000000000E+02
1.9408449890000E+03 5.2888200000000E+02
If you are in the GUI, the NBLOCK command must be contained in an externally prepared file and read
into ANSYS (i.e., CDREAD, /INPUT, etc.).
3.2.20. R Command
The R command defines a real constant set. You repeat the command until all real constants for this
set are defined. The command format in Jobname.CDB is:
R,R5.0,NSET,Type,STLOC,VAL1,VAL2,VAL3
NSET
The real constant set reference number.
Type
The type of data to be defined. LOC is the valid label.
STLOC
The starting location in the table for the next three constants.
VAL1,VAL2, VAL3
Real constant values assigned to three locations in the table starting at STLOC.
93
Format1
The First Line section. The first value is the number of nodes, and the second is the number of cells.
Format2
The Cells Section. The first 9 values are the cell connectivity nodes. The 10th (last) value is the material
ID (MAT).
Format3
The Nodes Section. This section contains as many lines as there are nodes. In this example, there are 27
nodes, so a total of 27 lines would appear in this section. Each node line contains the node's boundary
flag, the Y coordinate of the node, and the Z coordinate of the node. Currently, all node boundary flags
appear as 0s in a cell mesh file. Because all node boundary flags are 0, SECBLOCK ignores them when
it reads a cell mesh file.
Sample User Section Cell Mesh File
Following is a sample excerpt from a custom section mesh file for a section with 27 nodes, 4 cells, and
9 nodes per cell:
First Line:
94
27
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Nodes Section:
1
7
9
11
...
0
0
0
0
0
0
...
3
9
11
13
11
23
25
27
0.0
0.025
0.05
5.0175
19.98
20.00
9
21
23
25
2
8
10
12
6
16
18
20
10
22
24
26
4
14
16
18
5
15
17
19
2
1
1
1
0.0
0.0
0.0
0.0
10.00
10.00
N
Total number of layers. The second line (TKn, MATn, THETAn, NUMPTn) is repeated N times (once for
each layer).
TKn
Layer thickness for layer number n
MATn
Material ID for layer number n (defaults to element material ID)
THETAn
Layer orientation angle for layer number n
NUMPTn
Number of integration points in layer number n
ELEM
The element number.
LKEY
The load key associated with these surface loads.
Lab
A label indicating the type of surface load. PRES (for pressure) is the only valid label.
DIOFFST
Offset distance from node I.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
95
ELEM
The element number.
LKEY
The load key associated with this surface load.
Lab
A label indicating the type of surface load: Valid labels are:
PRES (pressure)
CONV (convection)
HFLU (heat flux)
IMPD (impedance)
SEL (substructure load vector)
SELV (S. E. load vectors)
CHRG (charge density)
KEY
A value key. If it is 1, the values are real (film coefficient if convection). If it is 2, values are imaginary
(bulk temperature if convection).
96
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
97
ANSYS 5.3
DATE
TIME
(IX1,IY1)
(0,0)
(KPX*1.33,0)
98
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
2A
0AAAAAAPPPLPO
The Window directive, which sets the coordinates for the displayed image. 0 is the
command character. AAAAAA represents
the first set of coordinates (the lower left
corner of the image), and PPPLPO represents the second coordinate set (the right
upper corner of the image).
>AP
$MEKLKBAJANSYS 5.3
$MEKLEFALNOV 15 1996
A second Text directive, defining the position and length of the string NOV 15 1996.
$MEKKOJAI10:01:40
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
99
Parameter Attributes
Int
0 through 15
Long
0 through 255
Byt3
0 through 65535
Xy
String
Command
Character
Parameters
Parameter
Types
Start_Plot
Xy, Xy
Area-Color
<
Long
Graph-Color
Text-Color
>
Long
Text-Size
Int
Line-Type
Int
100
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Command
Character
Parameters
Parameter
Types
Line-Width
Marker Size
int
Anno Size
Long
Pixmap Style
Int
Font Control
= 1 - Small font
Int
Text Justification
= 0 - Right justified
Int
= 1 - Left justified
Point
Xy
Move
Xy
Draw
Xy
Text
Xy, Long,
String
Long
Polygon
Int, Int,
Xy...Xy
none
no parameters
none
End-Plot
no parameters
none
Pixmap
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
101
Command
Character
Parameters
Parameter
Types
Color
Black
Cyan
Blue-Magenta
Red
Cyan-Blue
Magenta-Red
Green
Orange
Magenta
Yellow-Green
10
Blue
11
Green-Cyan
12
Yellow
13
Dark Gray
14
Light Gray
15
White
16
:
127
128
Blue
:
Cyan
:
Green
:
Indices 128 through 255
represent the color spec-
102
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Color
trum used to display the
Low (Blue) to High (Red)
contour values.
:
Yellow
:
Orange
255
Red
wx wivi
xiwivi
I Fyx yv
UHXUSXSI
TWWI DSI yx
QFS xe
xihhsr hsyxig
SFHa p
SFIa p
SSFHash
Ia
P
103
2A
Text-Size: Default
0AAAAAAPPPLPO
<AA
Area-Color: Black
>AP
Text-Color: White
$MEKLKBAJANSYS 5.3
$MEKLEFALNOV 16 1996
$MEKKOJAI15:57:07
$MEKKIMAMPLOT NO.
$MEKKDAAIELEMENTS
$MEKJNEAIELEM NUM
2B
Text-Size: Small
0AAAAAALPOLPO
<AB
Area-Color: Cyan
/PP
Normal: 255
+EBBBHBBHKOGBBHKOGKOGBBHKOG
$FPPFPPAB1
104
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
$LHCAILAB2
$LHCLHCAB4
$AILLHCAB3
2A
Text-Size: Default
0AAAAAAPPPLPO
.AAAAAA
Move: 0,0
-LPOAAA
Draw: 3070,0
-LPOLPO
Draw: 3070,3070
-AAALPO
Draw: 0,3070
-AAAAAA
Draw: 0,0
>AB
Text-Color: Cyan
$ABLLKBAB1
>AP
$MEKJBLAGZV
=1
$MEKILPAJDIST=0.55
$MEKIGCAIXF=1.5
$MEKIAGAIYF
=0.5
$MEKHKKAPCENTROID
HIDDEN
End-Plot
No-Op
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
105
106
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
109
Important
UPFs are not available or will behave unpredictably in certain data center environments or on some
hardware configurations. You should take special care when using UPFs on parallel systems. It is a good
110
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
111
112
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Include Decks
7. Again, compare the results from Steps 5 and 6. If they don't match, resolve the discrepancies before
moving on to Step 8.
8. Modify your element subroutines to include the features you want. Then, compile and link the subroutines
into a custom version of ANSYS.
9. Test the changes with a series of increasingly complex problems for which you already know the answers.
Description
acelcm.inc
ansysdef.inc
cmopt.inc
echprm.inc
elccmt.inc
elecom.inc
elparm.inc
elucom.inc
etycom.inc
impcom.inc
outpcm.inc
stepcm.inc
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
113
Description
usvrcm.inc
114
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
where RoutineName is the name of a user routine (filename.ext) that you want to link. The specified
routine must reside in the current working directory.
To use this method start ANSYS in batch mode and include one or more /UPF commands in the specified
input listing. When the program reads the input and detects /UPF, ANSYS will be relinked automatically.
You can include /UPF anywhere in your input file, and you can repeat /UPF as many times as needed
to include multiple user routines in the relinked version. Any user routine can be linked using this
method.
When you run a user-linked version of the ANSYS program by this method, the ANSYS output will include
the following:
NOTE This ANSYS version was linked by /UPF with n user supplied routines(s).
where n indicates the number of routines specified by /UPF commands. The routines that have been
linked will be included in the output listing.
The following restrictions apply when using the /UPF command to link user routines:
The /UPF command method cannot be used when ANSYS is run in interactive mode.
Example Using Mixed Languages
The following directory contains an example of using the /UPF command method to link user routines
that are written in mixed languages (Fortran, C, C++):
/ansys_inc/v145/ansys/custom/user/<platform>/Examples
The README.txt file in this directory contains complete instructions on running this example. This is
a simple, automated test that verifies whether compilers are correctly installed and configured.
115
If the compile was successful, you will be asked if a shared file is to be created. Choose Yes to create
a shared library named libansuser.so.
To use this library, set the ANS_USER_PATH environment variable to point to the working directory
where the libansuser shared library resides. Use one of the following commands, depending on the
Linux shell you are using:
setenv ANS_USER_PATH workingdirectory
or
export ANS_USER_PATH=workingdirectory
When you run a user-linked version of the ANSYS program, the ANSYS output will echo the value of
ANS_USER_PATH and will include the following:
NOTE:
To return to the original version of ANSYS, unset the ANS_USER_PATH environment variable.
ANSYS, Inc. recommends using the ANSUSERSHARED script as a template to try compilers that are not
supported by ANSYS, Inc., such as the GNU compilers. To do so, edit the ANSUSERSHARED script,
making changes to the appropriate platform logic. Note that if you do use compilers other than those
listed in the ANSYS Installation and Configuration Guide specific to your operating system, you will need
to debug (i.e., find missing libraries, unsatisfied externals, etc.) them yourself. ANSYS, Inc. does not
provide assistance for customers using unsupported compilers or if the resulting objects are not compatible with the ANSYS executable(s) as distributed.
If you intend to run the linked version of ANSYS in a distributed environment (for example, on a cluster),
the executable (ansyscust.e145) must reside in the same directory path on all systems. However,
you need to link it on only one system; you can then copy the executable to the other systems.
116
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Note
You will need all the compilers specified in the Installation Guide specific to your operating
system to use these user programmable features. ANSYS, Inc. does not provide assistance if
customers are using unsupported compilers, or if the resulting objects are not compatible
with the ANSYS executable(s) as distributed.
Before linking UPFs, make sure that the INCLUDE, LIB, and PATH environment variables are set correctly
for the required C/C++ and Intel Fortran compilers.
Visual Studio 2008 is also required for linking user programmable features on Windows platforms. Before
using any of the methods described below for linking UPFs, open the following Command Prompt
window if you have Visual Studio 2008 installed:
Start > Programs > Microsoft Visual Studio 2008 > Visual Studio Tools > Visual Studio 2008 x64
Win64 Command Prompt
If your system does not have Visual Studio 2008, see Alternative to Using Visual Studio 2008 (p. 123) for
a workaround.
where RoutineName is the name of a user routine (filename.ext) that you want to link. The specified
routine must reside in the current working directory.
The following are prerequisites for using the /UPF command method on a Windows system:
A script named findUPF.bat is used to detect the /UPF command. You must include the path to
this script in your system PATH variable. This script is typically located in Program Files\Ansys
Inc\V145\ansys\bin\<platform> where <platform> is a directory that uniquely identifies
the hardware platform version: Intel for 32-bit Windows, Winx64 for 64-bit Windows.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
117
If you are running in a distributed memory parallel environment (Distributed ANSYS), you need to include
the name of the master node when specifying the working directory:
set ANS_USER_PATH=\\masternode\workingdirectory
When you run a user-linked version of the ANSYS program by this method, the ANSYS output will include
the following:
NOTE This ANSYS version was linked by /UPF with n user supplied routines(s).
118
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
If the test worked correctly, this should display many lines of debug from all output files.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
119
After you issue ANSUSERSHARED.bat, the output will display the options for building the DLL library.
The first portion of the output is shown below:
This is the ANSYS 14.5 ANSUSERSHARED script. It is used
to build a DLL of User Programmable Features for the ANSYS program.
NOTE:
The user routines that are supported by this method will appear in a list. (These are the same user
routines as listed above for the /UPF command method.) Enter the number associated with a user
routine you wish to include. As an example, if you select USERMAT the following output will display
and prompt you to select another option:
You chose USERMAT
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
-out:UserMatLib.dll
-def:UserMatLibex.def
-dll
-machine:AMD64
-map
-manifest
-manifestfile:UserMatLib.dll.intermediate.manifest
-defaultlib:ANSYS.lib
-defaultlib:bufferoverflowU.lib
*.obj
Creating library UserMatLib.lib and object UserMatLib.exp
************************************************************************
UserMatLib.dll has been successfully built.
Set the environment variable ANS_USER_PATH to the directory where the
UserMatLib.dll resides and run ansys145 to use your newly generated
user shared library.
************************************************************************
After you have selected all desired user routines, press Enter to quit.
To use the resulting DLL library, set the ANS_USER_PATH environment variable to point to the working
directory where the UPF DLL library resides. Use the following command:
set ANS_USER_PATH=workingdirectory
If you are running in a distributed memory parallel environment (Distributed ANSYS), you need to include
the name of the master node when specifying the working directory:
120
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
When you run a user-linked version of the ANSYS program, the ANSYS output will echo the value of
ANS_USER_PATH and will include the following:
NOTE:
To return to the original version of ANSYS, return the ANS_USER_PATH environment variable to its
original value.
Multiple UPF DLLs can be created via the ANSUSERSHARED.bat script but must exist in the same
directory as designated by the ANS_USER_PATH environment variable.
Caution
When creating custom ANSYS executables, the executables must be named ansys.exe.
This requirement is due to shared library usage.
Note
On any Windows system, if you are attempting to create a relinked version of ANSYS by using
ANSCUST instead of using the ANS_ADMIN145 utility (as recommended above), error
messages may occur. These messages may state that object files have been created, but the
ANSYS executable has not been created; or the errors may state that some libraries necessary
to complete the link cannot be found. These errors usually indicate that required compiler
environment variables are not set. To avoid these errors, use the following workaround when
relinking ANSYS with ANSCUST:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
121
After relinking the ANSYS executable, the program can be executed by either of the following two
methods:
1. To execute the relinked version of the ANSYS program:
Click Start>Programs>ANSYS 14.5>Mechanical APDL Product Launcher
In the launcher, select the Customization/Preferences tab, then browse to the path which contains
the relinked ansys.exe. Select other desired options then pick Run to execute the customized
ansys.exe.
2. To execute the relinked ansys.exe from a Command Prompt window, use one of the following
commands.
Interactive:
ansys145 -p <product variable> -g -custom <path>
Batch:
ansys145 -b -p <product variable> -j jobname -i <input file> -o <output file> -custom <path>
Note
The -custom option must be the last option at the end of the command line.
Note
The commands above are for the SMP version of ANSYS. See Activating Distributed ANSYS
in the Parallel Processing Guide for instructions on running Distributed ANSYS.
Note
Output from a user-linked version will contain the following statement:
This ANSYS version was linked by Licensee
122
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Activating UPFs
123
Caution
If you are running on a Windows system and you create a custom ANSYS executable, the
executable must be named ansys.exe. This requirement is due to shared library usage.
On Linux, you can also run your custom executable via command line.
ansys145 -custom /pathname/ansyscust.e145
124
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Debugging Commands
Always remember: your last step, a series of steps, or even your concept may be wrong. Proceed in
clear steps, and verify your work as often as possible. Keep intermediate versions of your modified
source code on backup media.
Note
If you contact your site's ANSYS system support person or any ANSYS, Inc. representative
about the performance of a custom version of ANSYS, always tell him or her explicitly that
you are using a user programmable feature. If you feel that an error exists in an unrelated
feature of the ANSYS program, demonstrate the suspected error in a non-customized, production version of the program before you report the error to an ANSYS, Inc. representative.
MonLevel
The level for timing monitoring.
PrintLevel
The level for enter/exit printout.
SumLevel
The level at which the timing sum is output.
Each of these arguments can be any value between 0 and 9 (default is 0).
You can use the /TRACK command to identify which section of code is causing the program to abort.
For example, to flag up to eight levels of subroutines to determine when the program logic enters and
leaves them, you would issue the command /TRACK,,8.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
125
F1
1 (provides basic solution control debugging)
F2
1 (provides transient debugging using Newmark constants)
2 (provides transient debugging using velocities and accelerations)
F3
1 (provides element matrix debugging and prints matrix + load vectors, before going into solve)
2 (provides element matrix debugging with load vectors only, before going into solve)
3 (provides element matrix debugging with matrix diagonals and load vectors, before going into
solve)
F4
1 (provides auto time stepping debugging)
F5
1 (provides multifield debugging)
F6
1 (provides arc-length debugging)
F7
1 (provides basic Newton-Raphson debugging)
2 (provides Newton-Raphson debugging and prints out-of-balance forces or incremental displacement
or each DOF)
3 (provides Newton-Raphson debugging and prints applied loads and n-r restoring force for each
DOF)
F8
1,2 (provides displacement vector debugging with displacement pointers)
2 (provides displacement vector debugging with incremental displacement)
3 (provides displacement vector debugging with contact database)
F9
1 (provides temporary programmer debugging)
126
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Debugging Commands
G1
1 (provides basic element pass debugging)
G2
1 (provides element displacement and coordinate debugging)
G3
1 (provides element matrix debugging and prints matrix + load vectors, after the element routines)
2 (provides element matrix debugging with load vectors only, after the element routines)
3 (provides element matrix debugging with matrix diagonals and load vectors, after the element
routines)
G4
1 (provides element load information debugging)
G5
1 (provides element real constant debugging)
G6
1 (provides element saved variable debugging)
G7
1 (provides element material property debugging with linear material properties)
2 (provides element material property debugging with nonlinear properties)
G8
1,2 (provides element nonlinear debugging with plasticity)
2 (provides element nonlinear debugging with large deformation)
3 (provides element nonlinear debugging with contact database)
G9
1 (provides temporary programmer debugging)
H1
1 (provides file header record information)
2 (provides input line (character))
3 (provides input line (decoded))
H2
1 (provides element reordering and element checking debugging)
2 (provides meshing debugging)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
127
128
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
USERDISTRIB
User subroutines that do not have USERDISTRIB in the first line cannot be modified and must be used
as they are.
The following UPF topics are available:
2.1. Creating a New Element
2.2. Supporting Subroutines for Element Creation
2.3. Subroutines for Modifying and Monitoring Existing Elements
2.4. Subroutines for Customizing Material Behavior
2.5. Subroutines for Customizing Contact Interfacial Behavior
2.6. Subroutines for Customizing Loads
2.7. Running Mechanical APDL as a Subroutine
2.8. Defining Your Own Commands
2.9. Supporting Subroutines
2.10. Access at the Beginning and End of Various Operations
2.11. Memory Management Subroutines
2.12. Parameter-Processing Subroutines
2.13. Miscellaneous Useful Functions
Description
Offers a simpler interface while preserving much of the underlying userelement capability. An understanding
No special interface. With few exceptions, if a capability exists for an element, it will exist here. The logic ne-
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
129
Medium
High
Expected compatibility
between versions
High
Medium
Element names
USER300
USER100 to USER105
getMatProp
propev
Program in UserMat.
Non-structural material
properties
Effectively, no limit.
Effectively, no limit.
Element characteristic
capability
Input the basic 10 element characteristics (via the USRELEM and USRDOF
commands). All other characteristics
default automatically.
Applicable subroutines
to be programmed
UserElem
Special features
None.
130
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Comments
1.
Issue the ET and TYPE commands. The name of the element must be
USER300.
2.
Define your new ele- Issue the USRELEM command. Specify the element characteristics (such as
ment according to
the number of nodes, number of dimensions, number of real constants etc.).
the specified element
type.
3.
4.
If needed.
5.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
131
As needed.
7.
8.
Perform postprocessing.
132
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Input (I) or
Output (O)
Definition
Purpose
How
Defined
elId
Element number
Output information
At FE model
creation
matId
Material number
Output information
Call material subroutines
At FE model
creation
keyMtx
Formulation request
lumpm
nDim
nNodes
Specifying which
matrices and load
vectors to form
Program
code
Specifying how to
form the mass matrix
LUMPM
command
Number of dimensions
Element coding
USRELEM
command
Element coding
USRELEM
command
Nodes
Output
At FE model
creation
nIntPnts
Element coding
USRELEM
command
nUsrDof
Element
coding -The degrees of
freedom
are ordered
in the way
in which
they are listed via the
USRDOF
command
for each
node and
repeated
for all
nodes
All element
matrices -DOF values
and load
vectors
must be arranged in
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
USRELEM
and USRDOF
commands
133
keyAnsMat
keySym
Element
coding
Calling material subroutines if
requested
USRELEM
command
Element formulation
key:
0 -- Write your own
material formulation
1 -- Use standard
material subroutines
and call ElemGetMat subroutine
Specifying how to
create material data
USRELEM
command
Element
coding
Program assembly logic
USRELEM
command
nKeyOpt
Maximum number
of element key options allowed
Example: If nKeyOpt = 2, only KEYOPT(1) and KEYOPT(2) are allowed.
Element coding
Program
code
KeyOpt
ET command
temper
BF and BFE
commands (if
keyShape is
specified in
the UserElem subroutine)
temperB
Program
code
tRef
Reference temperature
TREF command
134
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Key indicating
whether a thermal
load exists:
1 = Calculate the
thermal load
0 = No thermal load
calculation
Element coding
nPress
Press
Pressures at nodes
of element facets
(available only when
keyShape is specified via the USRELEM command)
The pressure vector
is ordered in the
element with the
same topology as
that in the standard
element library.
Refer to that element for details.
SF and SFE
commands
kPress
Key indicating
whether a pressure
load exists:
1 = Calculate the
pressure load
0 = No pressure
load calculation
Element coding
Program
code
nReal
Element coding
USRELEM
command
RealConst
Element
coding
The size of
the press
vector
Element
coding
Can pass
material
properties,
section/layer information, element material control,
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
---
USRELEM
command
At
FE
model
creation
R command
135
I/O
Element coding
UserElem
subroutine
xRef
Initial coordinates of
the element nodes
Values in global
Cartesian coordinates
Element coding
At FE model
creation
xCur
Current (deformed)
coordinates of element nodes
Values in global
Cartesian coordinate
system, equal to
xRef when
nlgeom = off
Element coding
Program
code
TotValDofs
Element coding
Program
code
nSaveVars
saveVars
136
Element
coding
The size of
saveVars
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
USRELEM
command
Increment values of
degrees of freedom
occurring at the
current substeps
Values in global
Cartesian coordinate
system
Element coding
Program
code
ItrValDofs
Iteration values of
degrees of freedom
occurring at the last
iteration
Values in global
Cartesian coordinate
system
Element coding
Program
code
VelValDofs
Velocities
Program
code
AccValDofs
Accelerations
Program
code
kfstps
Initializing data
Program
code
nlgeom
nrkey
Output
Element
coding
outkey
Element coding
elPrint
Key indicating
whether any element output should
appear in the print
file:
Element coding
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
NLGEOM
command
---
Program
code
Program
code
OUTPR
137
keyHisUpd
command
The Fortran output
file number. All information written in
the specified file appears in the output
file.
Program
code
Element coding
Program
code
The following variables are for debug, timing, and convergence-control purposes only. You
can usually ignore them.
ldstep
Output
Debug
Program
code
isubst
Output
Program
code
ieqitr
Output
Program
code
timval
Current time
Output
Program
code
keyEleErr
I/O
Formulation error
key:
0 = No error (preset
value)
1 = Error occurred
in element formulation, possibly due to
excessive deformation. (The program
lessens deformation
if possible by cutback.)
Element coding
Program
code
keyEleCnv
I/O
Provides manual
control of convergence when you introduce any constraint at the element level (such as
Program
code
138
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Small-deformation
stiffness matrix
In global Cartesian
coordinate system
Solution
Requested
when
keyMtx(1)
=1
eMass
Mass matrix
In global Cartesian
coordinate system
Solution
Requested
when
keyMtx(2)
=1
eDamp
Damping matrix
In global Cartesian
coordinate system
Solution
Requested
when
keyMtx(3)
=1
eSStiff
Solution
Requested
when
keyMtx(4)
=1
fExt
Solution
Requested
when
keyMtx(5)
=1
fInt
Solution
Requested
when
keyMtx(6)
=1
elVol
Element volume
Output
UserElem
subroutine
elMass
Element mass
Output
UserElem
subroutine
elCG
Postprocessing
UserElem
subroutine
nRsltBsc
Program
code
RsltBsc
Postprocessing
UserElem
subroutine
Element centroid
coordinates
In global Cartesian
coordinate system
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
139
RsltVar
Postprocessing
UserElem
subroutine
nElEng
Number of energies
Fixed at 3
Solution
UserElem
subroutine
elEnergy
Output
UserElem
subroutine
*deck,UserElem
USERSDISTRIB
c Copyright ANSYS. All Rights Reserved.
subroutine UserElem (elId, matId, keyMtx, lumpm, nDim, nNodes,
&
Nodes, nIntPnts, nUsrDof, kEStress,
&
keyAnsMat, keySym, nKeyOpt, KeyOpt,
&
temper, temperB, tRef, kTherm,
&
nPress, Press, kPress, nReal, RealConst,
&
nSaveVars, saveVars, xRef, xCur,
&
TotValDofs, IncValDofs, ItrValDofs,
&
VelValDofs, AccValDofs,
&
kfstps, nlgeom, nrkey, outkey, elPrint, iott,
&
keyHisUpd, ldstep, isubst, ieqitr, timval,
&
keyEleErr, keyEleCnv,
&
eStiff, eMass, eDamp, eSStiff,
&
fExt, fInt, elVol, elMass, elCG,
&
nRsltBsc, RsltBsc, nRsltVar, RsltVar,
&
nElEng, elEnergy)
&
c*************************************************************************
c
c *** Primary function: General User Element Subroutine
c *** Note:
c
This routine is completed with an example, see more details later.
c
c
c
PROGRAMMER SHOULD NOT CHANGE ANY PURE INPUT ARGUMENTS (marked by ....,in)!
c
c
elId
(int,sc,in)
element number
c
matId
(int,sc,in)
material number of this element
c
keyMtx
(int,ar(10),in)
matrix and load vector form requests
c
0 = not requested, 1 = requested
140
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
USRELEM
command
(int,sc,in)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
141
elVol
142
requested if
keyMtx(1)=1
keyMtx(2)=1
keyMtx(3)=1
keyMtx(4)=1
keyMtx(5)=1
keyMtx(6)=1
element volume
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
elMass
elCG
nRsltBsc
RsltBsc
nRsltVar
RsltVar
(dp,sc,out)
(dp,ar(3),out)
element mass
element centroid coordinates in current
configuration
(dp,sc,in)
number of basic elemental results saved in
result files
(dp,ar(nRsltBsc),out) basic elemental results
(see EXPLANATION below)
(int,sc,in)
number of elemental results saved in
result file as non-summable miscellaneous
variables
(defined on USRELEM command as NRSLTVAR)
(dp,ar(nRsltVar),out) variables to saved in result files as
non-summable miscellaneous variables
requested when outkey = 1
nElEng
(int,sc,in)
elEnergy
EXPLANATION OF RsltBsc
Basic element results are saved and total number of result
quantities is nRsltBsc, where:
nRsltBsc = (7+7)* number of corner nodes at one element.
To process the quantites by post processing properly, the results
must be in the following order:
1.) Stresses: Sx Sy Sz Sxy Syz Sxz Seqv at all corner points,
followed by:
2.) Strains : Ex Ey Ez Exy Eyz Exz Eeqv at all corner points
where Seqv and Eeqv = equivalent stress and strain respectively
Input (I) or
Output (O)
Definition
Purpose
How Defined
Output
At FE model
creation
elId
Element number
matId
Material number
nDim
Output information
Getting material data
At FE model
creation
Material calculation
At FE model
creation
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
143
Number of
stress/strain tensor
components:
4 = 2-D and ordered
as x, y, z, xy
6 = 3-D and ordered
as x, y, z, xy, yz, xz
UserElem
subroutine
nDirect
Number of direct
component of
stress/strain tensors
nDirect< or =
nTens
UserElem
subroutine
intPnt
Output
Data handling
UserElem
subroutine
xCurIP
Material calculation
UserElem
subroutine
TemperIP
UserElem
subroutine
TemperIPB
Integration point temperatures Evaluating temperatat the end of the last increure-dependent matermental step
ial data
UserElem
subroutine
IncStrain
defG0
Material calculation
UserElem
subroutine
UserElem
subroutine
UserElem
subroutine
defG
I/O
The component in
thickness direction is
updated by material
subroutines for plane
stress and shell elements
144
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
I/O
UserElem
subroutine
Forming stiffness
Material subroutine
0 = No thermal loading
1 = Has thermal loading
cMat
MatProp
Forming
mass matrix
Handling
transverse
shear
Output
Material subroutine
Stress
Material subroutine
Strain
StressTh
StrainTh
Output
Material subroutine
StrainPl
Output
---
StrainCr
---
StressBk
Output
---
StrainSw
Swelling strain
---
EnergyD
---
---
MatRotGlb
Rotation matrix
from global
Cartesian to rotated element
coordinate system
Used
only for
solid elements
when
nlgeom
= on
Energy density:
1 = Elastic energy
density
2 = Plastic energy
density
3 = Creep energy
density
Rotation matrix
Output
Output
Calculating
thermal loading
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Material subroutine
Material subroutine
145
&
&
&
&
&
&
c*************************************************************************
c
c *** Primary function: call ANSYS material routines to obtain material
c
data for USER300 elements
c *** Notice - This file contains ANSYS Confidential information ***
c
c
input arguments
c
===============
c
elId
(int,sc)
element number
c
matId
(int,sc)
material number of this element
c
nDim
(int,sc)
number of dimensions of the problem
c
= 2 2D
c
= 3 3D
c
nTens
(int,sc)
number of stress/strain components
c
nDirect
(int,sc)
number of stress/strain direct
c
components
c
intPnt
(int,sc)
current integration point number
c
xCurIP
(dp,ar(3))
coordinates of integration point
c
TemperIP
(dp,sc)
integration point temperatures at
c
current time
c
TemperIPB
(dp,sc)
integration point temperatures at
c
the end of last incremetal step
c
IncStrain
(dp,ar(nTens))
strain for the current substep step when
c
nlgeom = on
c
total strain when nlgeom = off
c
defG0
(dp,ar(3x3))
deformation gradient tensor at the end
c
of last incremental step
c
c
input output arguments
input desc
/ output desc
c
======================
==========
===========
c
defG
(dp, ar(3x3))
deformation gradient tensor at current
c
time, updated for thichness change in
c
plane stress when nlgeom=on
c
kTherm
(int,sc)
flag for thermal loading
c
input as:
c
= 0 if temp = tref
c
= 1 if temp .ne. tref
c
gets reset to 0
c
if ALPX, ALPY, and ALPZ = 0
c
c
output arguments
c
================
c
cMat
(nTens*nTens)
material Jacobian matrix
c
MatProp
(dp,ar(5))
commonly used materail properties
c
MatProp(1),Gxz: shear modulus
c
MatProp(2),Gyz: shear modulus
c
MatProp(3),Gxy: shear modulus
c
MatProp(4), density
c
MatProp(5), nuxy
c
Stress
(dp,ar(nTens))
total stress
c
Strain
(dp,ar(nTens))
total strain
c
StressTh
(dp,ar(nTens))
thermal stress
c
StrainTh
(dp,ar(nTens))
thermal strain
c
StrainPl
(dp,ar(nTens))
plastic strain
c
StrainCr
(dp,ar(nTens))
creep strain
c
StressBk
(dp,ar(nTens))
back stress for kinematic hardening
146
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
StrainSw
(dp,sc)
EnergyD
MatRotGlb
(dp,ar(3))
(dp,ar(3,3))
147
148
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
2.1.3.4. Subroutine uel100 (Computing Element Matrices, Load Vectors, and Results)
*deck,uel100
USERSDISTRIB
subroutine uel100 (elem,ielc,elmdat,eomask,nodes,locsvrL,kelreq,
x kelfil,nr,xyz,u,kelout,zs,zass,damp,gstif,zsc,zscnr,elvol,elmass,
x center,elener,edindxL,lcerstL)
c --- general lumped mass is demonstrated -------------------------------c *** primary function:
c
1. compute element matrices, load vectors, and results
c *** secondary functions:
c
2. maintain element solution data
c *** user programmable functions may not be used in parallel processing ***
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
elem
(int,sc,in)
- element label (number)
ielc
(int,ar(IELCSZ),in) - array of element type characteristics
(IELCSZ = array size, defined in echprm)
elmdat (int,ar(EL_DIM),in) - array of element data
eomask (int,sc,in)
- bit pattern for element output
(see outpcm)
nodes (int,ar(nnod),in)
- array of element node numbers
(nnod = number of nodes; 1 in this case)
locsvrL (int,sc,in)
- location of the saved variables
on file .esav for this element
kelreq (int,ar(10),in)
- matrix and load vector form requests
(indices for kelreq are given with output
arguments below)
kelfil (int,ar(10),in)
- keys indicating incoming matrices and
load vectors (indices for kelfil are the
same as given for kelreq with output
arguments below)
nr
(int,sc,in)
- matrix and load vector size
xyz
(dp,ar(6,nnod),in) - nodal coordinates (orig) and rotation angle
u
(dp,ar(nr,5),in)
- element nodal solution values
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
kelout (int,ar(10),out)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
149
2.1.3.5. Subroutine uep100 (Printing Output for User Elements in POST1 via
PRESOL,ELEM)
*deck,uep100
USERSDISTRIB
subroutine uep100 (iott,elem,nodes,mat, kept,tem,
x kemn,fluen, kems,force, kens,sig, keel,epel,
x keth,eptho,epswel,epino, kenl,sigepl,sigrat,hpres,epeq,
x kepl,eppl, kecr,epcrp)
c
c *** primary function:
produce printed output for user100
c
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c *** Notice - This file contains ANSYS Confidential information ***
c
c ********** this subroutine is provided for user information *********
c *** user programmable features may not be used in parallel processing ***
c
c input arguments:
c
iott
(int,sc,in)
- output unit number
c
elem
(int,sc,in)
- element number
c
nodes
(int,ar(2),in)
- node numbers
c
mat
(int,sc,in)
- material number
c
kept
(int,sc,in)
- key to print temperatures
c
tem
(dp,ar(2),in)
- nodal temperatures
c
kemn
(inr,sc,in)
- key to print fluences
c
fluen
(dp,ar(2),in)
- neutron fluences
c
kems
(int,sc,in)
- key to print moment forces
c
force
(int,sc,in)
- member force fx
c
kens
(int,sc,in)
- key to print strains
c
sig
(dp,sc,in)
- axial stress
c
keel
(int,sc,in)
- key to print elastic strain
c
epel
(dp,sc,in)
- axial elastic strain
c
keth
(int,sc,in)
- key to print thermal,initial,swelling strai
c
eptho
(dp,sc,in)
- axial thermal strain
c
epswel
(dp,sc,in)
- swelling strain
c
epino
(dp,sc,in)
- initial axial strain
c
kenl
(int,sc,in)
- key set if any nonlinear materials present
c
sigepl
(dp,sc,in)
- stress in stress-strain curve
c
sigrat
(dp,sc,in)
- stress ratio
c
hpres
(dp,sc,in)
- hydrostatic pressure
c
epeq
(dp,sc,in)
- plastic equivalent strain
c
kepl
(int,sc,in)
- key to print plastic strain
c
eppl
(dp,sc,in)
- plastic strain
c
kecr
(int,sc,in)
- key to print creep strain
c
epcrp
(dp,sc,in)
- creep strain
c
c output arguments:
none
c
150
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
151
input arguments:
locsvr
(LONGINT,sc,in)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
svindx
(int,ar(20),out) - the 20 word index of svr variables
1,2-starting loc of this eles svr sets
3- length of eles svr sets
4-11-relative starting loc for each set
4-structural svrs
5-thermal/electric/fluid svrs
6-magnetic svrs
7-nonlinear svrs
8-plasticity svrs
9-creep svrs
10-coupled svrs
11-user svrs
12-initial strain svrs
13-section data after FiberSIM conversion
(shell181 only)
14-20 spares
152
input arguments:
svindx
(int,ar(20),in) - index for svr for this element (see svgidx)
nset
(int,sc,in)
- the set number in this index
= 1 - structural svrs
= 2 - thermal/electric/fluid svrs
= 3 - magnetic svrs
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
=
=
=
=
=
=
nsvr
nonlinear svrs
plasticity svrs
creep svrs
coupled svrs
user svrs
initial stress svrs
(2,42,82,45,92,95 only)
= 10 - section data after FiberSIM conversion
(shell181 only)
= 11-17 - spares (note that the first three
items in svindx are not available)
- number of dp words expected in this set
(int,sc,inout)
output arguments:
nsvr
(int,sc,inout)
svr
(dp,ar(nsvr),in)
4
5
6
7
8
9
input arguments:
svindx
(int,ar(20),inout)- the index for svr for this element
(see svgidx)
nset
(int,sc,in)
- the set number in this index (same as svrget)
= 1 - structural svrs
= 2 - thermal/electric/fluid svrs
= 3 - magnetic svrs
= 4 - nonlinear svrs
= 5 - plasticity svrs
= 6 - creep svrs
= 7 - coupled svrs
= 8 - user svrs
= 9 - initial stress svrs
(2,42,82,45,92,95 only)
= 10 - section data after FiberSIM conversion
(shell181 only)
= 11-17 - spares (note that the first three
items in svindx are not available)
leng
(int,sc,in)
- number of dp words in this set
svr
(dp,ar(leng),in) - data in this set
c
c
output arguments:
svindx
(int,ar(10,2),inout)- updated index
2.2.5. Subroutine svpidx (Writing the Saved Variable Element Index to a File)
*deck,svpidx
subroutine svpidx (locsvr,svindx)
c *** primary function:
write the svr element index onto file
c *** secondary functions: update the locsvr pointer to next element
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
c
input arguments:
locsvr
(LONGINT,sc,inout)
svindx
(int,ar(10,2),in)
c
c
output arguments:
locsvr
(LONGINT,sc,inout)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
153
154
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
rvr
rvro
amodo
asymo
output arguments:
propo
(dp,ar(nprop),inout)rvro
(dp,ar(*),inout)
amodo
(dp,sc,inout)
asymo
(dp,sc,inout)
kelin
(int,ar(10),out)
-
2.2.7. Subroutine subrd (Reading Element Load Data for a Substructure Generation Run)
*deck,subrd
subroutine subrd (iel,key,nd,vect,ka)
c *** primary function:
read element load data from file for substructure
c
generation run
c *** secondary functions: none
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
iel
(int,sc,in)
key
(int,sc,in)
c
c
c
c
c
output arguments:
vect
(dp,ar(nd),out)
ka
(int,sc,out)
nd
(int,sc,in)
- element number
- type of load data
= 1 temperature
= 2 fluences
= 3 heat generation rates
= 4 current densities
= 9 end pressures (needed for beams/pipes)
=10 pressures
=11 film coefficients
=12 bulk temperatures
=13 extra displacement shapes
=14 thermal strains(eptho in el42)
=15 thermal flux (as in el55)
=16 initial strains(epino in el01)
=17 magnetic virtual displacements
=18 calculated source field(hsn in el96)
=20 element load vector
=30 copy - do not scale(tempev in el42)
first load step only
- number of data items
2.2.8. Subroutine subwrt (Writing an Element Load Vector to a File for a Substructure Generation Run)
*deck,subwrt
subroutine subwrt (iel,nvect,kkey,nd,vect,ref)
c *** primary function:
write element load vect to file for substructure
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
155
input arguments:
iel
(int,sc,in)
nvect
(int,sc,in)
kkey
(int,sc,in)
nd
vect
ref
- element number
- number of load vectors
(current load step number)
- type of load vect
= 1 temperature
= 2 fluences
= 3 heat generation rates
= 4 current densities
= 9 end pressures
=10 pressures
=11 film coefficients
=12 bulk temperatures
=13 extra displacement shapes
=14 thermal strains(eptho in el42)
=15 thermal flux (as in el55)
=16 initial strains(epino in el01)
=17 magnetic virtual displacements
=18 calculated source field(hsn in el96)
=20 element load vector
=30 copy - do not scale(tempev in el42)
- number of vect items
- array of load data
- reference value for zero load
(int,sc,in)
(dp,ar(nd),in)
(dp,sc,in)
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
c
c
c
c
variable (typ,siz,intent)
iel
(int,sc,in)
ireal
(int,sc,in)
ielc
(int,ar(*),in)
description
- element number
- real constant set number
- elment type characteristics
c
c
c
output arguments:
nrvr
(int,sc,out)
rvr
(dp,ar(*),out)
156
c
c
c
integer lp(3)
data lp /1,10,13/
call propev (elem,mat,lp(1),tem,prop(1),3)
input arguments:
iel (int,sc,in)
mtr (int,sc,in)
lp
(int,ar(n),in)
- element number
- material number(input quantity mat, mat comma
- keys for which specific value is requested
each group must be in ascending
order (ex,ey,ez, etc)
if negative, a required property
if zero, leave prop term unchanged
---- MP command labels -------EX = 1, EY = 2, EZ = 3, NUXY= 4, NUYZ= 5, NUXZ= 6, GXY = 7, GYZ = 8,
GXZ = 9, ALPX=10, ALPY=11, ALPZ=12, DENS=13, MU =14, DAMP=15, KXX =16,
KYY =17, KZZ =18, RSVX=19, RSVY=20, RSVZ=21, C
=22, HF =23, VISC=24,
EMIS=25, ENTH=26, LSST=27, PRXY=28, PRYZ=29, PRXZ=30, MURX=31, MURY=32,
MURZ=33, PERX=34, PERY=35, PERZ=36, MGXX=37, MGYY=38, MGZZ=39, EGXX=40,
EGYY=41, EGZZ=42, SBKX=43, SBKY=44, SBKZ=45, SONC=46, SLIM=47, ELIM=48,
USR1=49, USR2=50, USR3=51, USR4=51, FLUI=53, ORTH=54, CABL=55, RIGI=56,
HGLS=57, CPH =58, QRAT=59, REFT=60, CTEX=61, CTEY=62, CTEZ=63, THSX=64,
THSY=65, THSZ=66, DMPR=67, LSSM=68, BETD=69, ALPD=70, RH =71, DXX =72,
DYY =73, DZZ =74, BETX=75, BETY=76, BETZ=77, CSAT=78, CREF=79, CVH =80
(see mpinit for uncommented code)
(see chapter 2 of the elements volume of the user's manual
for a detailed description))
tem
n
(dp,sc,in)
(int,sc,in)
output arguments:
prop
(dp,ar(n),out)
input arguments:
iel
(int,sc,in)
mtr
(int,sc,in)
icon
(int,sc,in)
- element number
- material number
- key for which specific value is requested
(negative if property is required)
---- MP command labels -------EX = 1, EY = 2, EZ = 3, NUXY= 4, NUYZ= 5, NUXZ= 6, GXY = 7, GYZ = 8,
GXZ = 9, ALPX=10, ALPY=11, ALPZ=12, DENS=13, MU =14, DAMP=15, KXX =16,
KYY =17, KZZ =18, RSVX=19, RSVY=20, RSVZ=21, C
=22, HF =23, VISC=24,
EMIS=25, ENTH=26, LSST=27, PRXY=28, PRYZ=29, PRXZ=30, MURX=31, MURY=32,
MURZ=33, PERX=34, PERY=35, PERZ=36, MGXX=37, MGYY=38, MGZZ=39, EGXX=40,
EGYY=41, EGZZ=42, SBKX=43, SBKY=44, SBKZ=45, SONC=46, SLIM=47, ELIM=48,
USR1=49, USR2=50, USR3=51, USR4=51, FLUI=53, ORTH=54, CABL=55, RIGI=56,
HGLS=57, CPH =58, QRAT=59, REFT=60, CTEX=61, CTEY=62, CTEZ=63, THSX=64,
THSY=65, THSZ=66, DMPR=67, LSSM=68, BETD=69, ALPD=70, RH =71, DXX =72,
DYY =73, DZZ =74, BETX=75, BETY=76, BETZ=77, CSAT=78, CREF=79, CVH =80
(see mpinit for uncommented code)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
157
c
c
c
tem
(dp,sc,in)
output arguments:
prop1
(dp,sc,out)
input arguments:
mat
(int,sc,in)
numitm
(int,sc,in)
c
c
output arguments:
tbprop
(dp,ar(numitm),out) - array of tb data
158
input arguments:
option
(int,sc,in)
elem
(int,sc,in)
intpt
(int,sc,in)
mat
(int,sc,in)
kstartL (intL,sc,in)
tem
(dp,sc,in)
dtem
(dp,sc,in)
e
(dp,sc,in)
ktform
(int,sc,in)
plasticity option
element number (label)
element integration point number
material reference number
virtual starting address of the data table
temperature at the end of this substep
temperature increment over this substep
elastic modulus
request key for tangent matrix formation
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
dens
flu
dflu
epel
eppl
statev
usvr
epeq
plwork
(dp,sc,in)
(dp,sc,in)
(dp,sc,in)
(dp,sc,inout)
(dp,sc,inout)
(dp,ar(6),inout)
(dp,ar(*),inout)
(dp,sc,inout)
(dp,sc,inout)
material density
fluence at the end of this substep
fluence increment over this substep
modified total strain (trial strain)
plastic strain at previous substep
state variables at previous substep
user-defined state variables (for userpl)
effective plastic strain at prev substep
accumulated plastic work at prev substep
c
c
c
c
c
c
c
c
c
c
output arguments:
epel
(dp,sc,inout)
eppl
(dp,sc,inout)
statev
(dp,ar(6),inout)
usvr
(dp,ar(*),inout)
epeq
(dp,sc,inout)
plwork
(dp,sc,inout)
sigepl
(dp,sc,out)
sigrat
(dp,sc,out)
et
(dp,sc,out)
elastic strain
updated plastic strain
updated state variables
updated user-defined state variables
updated effective plastic strain
updated accumulated plastic work
stress value on stress-strain curve
ratio of trial stress to yield stress
tangent modulus
c
c
internal variables:
deppl
(dp,sc)
input arguments:
option
(int,sc,in)
elem
(int,sc,in)
intpt
(int,sc,in)
mat
(int,sc,in)
kstartL (intL,sc,in)
ncomp
(int,sc,in)
tem
(dp,sc,in)
dtem
(dp,sc,in)
prop
(dp,ar(9),in)
c
c
c
c
output arguments:
epel
(dp,ar(ncomp),inout)- elastic strain
eppl
(dp,ar(ncomp),inout)- updated plastic strain
statev
(dp,ar(ncomp,6),inout)- updated state variables
d
ktform
dens
flu
dflu
epel
eppl
statev
usvr
epeq
plwork
kplst
plasticity option
element number (label)
element integration point number
material reference number
virtual starting address of the data table
number of stress/strain components (4 or 6)
temperature at the end of this substep
temperature increment over this substep
material property array (ex,ey,ez,
gxy,gyz,gxz, uxy,uyz,uxz)
(dp,ar(ncomp,ncomp),in) - elastic stress-strain matrix
(int,sc,in)
- request key for tangent matrix formation
(dp,sc,in)
- material density
(dp,sc,in)
- fluence at the end of this substep
(dp,sc,in)
- fluence increment over this substep
(dp,ar(ncomp),inout)- modified total strain (trial strain)
(dp,ar(ncomp),inout)- plastic strain at previous substep
(dp,ar(ncomp,6),inout)- state variables at previous substep
(dp,ar(*),inout)
- user-defined state variables (for pluser)
(dp,sc,inout)
- effective plastic strain at prev substep
(dp,sc,inout)
- accumulated plastic work at prev substep
(int,sc,in)
- plane stress key (form dtt if kplst=1)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
159
usvr
epeq
plwork
sigepl
sigrat
dt
dtt
(dp,ar(*),inout)
- updated user-defined state variables
(dp,sc,inout)
- updated effective plastic strain
(dp,sc,inout)
- updated accumulated plastic work
(dp,sc,out)
- stress value on stress-strain curve
(dp,sc,out)
- ratio of trial stress to yield stress
(dp,ar(ncomp,ncomp),out)- material modulus modified by dscpar
(dp,ar(ncomp,ncomp),out)- consistent tangent modulus
(formed only if kplst=1)
internal variables:
deppl
(dp,sc)
input arguments:
option
(int,sc,in)
elem
(int,sc,in)
intpt
(int,sc,in)
mat
(int,sc,in)
kstartL (intL,sc,in)
epel
(dp,sc,inout)
e
(dp,sc,in)
epcrp
(dp,sc,inout)
statev
(dp,ar(7),inout)
usvr
(dp,ar(*),inout)
tem
(dp,sc,in)
dtem
(dp,sc,in)
fluen
(dp,sc,in)
dflu
(dp,sc,in)
epel
(dp,sc,inout)
sig
(dp,sc,inout)
creep option
element number (label)
element integration point number
material reference number
virtual starting address of the data table
elastic strain
elastic modulus
creep strain at previous substep
state variables at previous substep
user-defined state variables (for usercr)
temperature at the end of this substep
temperature increment over this substep
fluence at the end of this substep
fluence increment over this substep
elastic strain adjusted for creep increment
stress (not really used)
c
c
c
c
c
output arguments:
epcrp
(dp,sc,inout)
statev
(dp,ar(7),inout)
usvr
(dp,ar(*),inout)
sig
(dp,sc,inout)
160
input arguments:
option
(int,sc,in)
elem
(int,sc,in)
intpt
(int,sc,in)
mat
(int,sc,in)
kstartL (intL,sc,in)
creep option
element number (label)
element integration point number
material reference number
virtual starting address of the data table
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ncomp
epel
e
posn
d
epcrp
statev
usvr
tem
dtem
fluen
dflu
kplst
sig
hsig
(int,sc,in)
- number of stress/strain components (4 or 6)
(dp,ar(ncomp),inout)- elastic strain
(dp,sc,in)
- elastic young'S MODULUS
(dp,sc,in)
- poisson'S RATIO
(dp,ar(ncomp,ncomp),in) - elastic stress-strain matrix
(dp,ar(ncomp),inout)- creep strain at previous substep
(dp,ar(ncomp*5+2),inout)- state variables at previous substep
(dp,ar(*),inout)
- user-defined state variables (for usercr)
(dp,sc,in)
- temperature at the end of this substep
(dp,sc,in)
- temperature increment over this substep
(dp,sc,in)
- fluence at the end of this substep
(dp,sc,in)
- fluence increment over this substep
(int,sc,in)
- plane stress/plane strain key
(dp,ar(ncomp),inout)- stresses (not used in input)
(dp,ar(1),inout)
- hydrostatic stress (not used in input)
output arguments:
epel
(dp,ar(ncomp),inout)- elastic strain adjusted for creep increment
epcrp
(dp,ar(ncomp),inout)- updated creep strain
statev
(dp,ar(ncomp*5+2),inout)- updated state variables
usvr
(dp,ar(*),inout)
- updated user-defined state variables
sig
(dp,ar(ncomp),inout)- stresses (redefined if c13 > 0)
hsig
(dp,sc,inout)
- hydrostatic stress (redefined if c13 > 0)
input arguments:
option
(int,sc,in)
elem
(int,sc,in)
intpt
(int,sc,in)
mat
(int,sc,in)
kstartL (intL,sc,in)
epswel
(dp,sc,inout)
epel
(dp,sc,inout)
e
(dp,sc,in)
fluen
(dp,sc,in)
dfluen
(dp,sc,in)
tem
(dp,sc,in)
dtem
(dp,sc,in)
usvr
(dp,ar(*),inout)
c
c
c
c
output arguments:
epel
(dp,sc,inout)
epswel
(dp,sc,inout)
usvr
(dp,ar(*),inout)
swelling option
element number (label)
element integration point number
material reference number
virtual starting address of the data table
swell strain at previous substep
elastic strain
elastic young'S MODULUS
fluence at the end of this substep
fluence increment over this substep
temperature at the end of this substep
temperature increment over this substep
user-defined state variables (for usersw)
161
input arguments:
option
(int,sc,in)
elem
(int,sc,in)
intpt
(int,sc,in)
mat
(int,sc,in)
kstartL (intL,sc,in)
ncomp
(int,sc,in)
epswel
(dp,sc,inout)
epel
(dp,ar(ncomp),inout)e
(dp,sc,in)
nuxy
(dp,sc,in)
fluen
(dp,sc,in)
dfluen
(dp,sc,in)
tem
(dp,sc,in)
dtem
(dp,sc,in)
usvr
(dp,ar(*),inout)
-
c
c
c
c
output arguments:
epel
(dp,ar(ncomp),inout)- elastic strain adjusted for swelling inc
epswel
(dp,sc,inout)
- updated swelling strain
usvr
(dp,ar(*),inout)
- updated user-defined state variables
swelling option
element number (label)
element integration point number
material reference number
virtual starting address of the data table
number of stress/strain components (4 or 6)
swell strain at previous substep
elastic strain
elastic young'S MODULUS
poisson'S RATIO
fluence at the end of this substep
fluence increment over this substep
temperature at the end of this substep
temperature increment over this substep
user-defined state variables (for usersw)
c
c
c
c
c
input arguments
===============
mat
(int,sc,in)
plOpt
(int,sc,in)
ncomp
(int,sc,in)
- material ID
- plasticity option
- number of strain components (1,4, or 6)
c
c
c
output arguments
================
elLenPsvrBuf (int,sc,out)
c
c
local variables
===============
c************************************************************************
162
input arguments:
variable (typ,siz,intent)
mat
(int,sc,in)
iprop
(int,sc,in)
description
- material number
- property number (tbpnum in tblecm)
use 13 for tb,user
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
163
numdat
udbdat
(int,sc,out)
(dp,ar(maxdat),out)
input arguments:
ielem
(int,sc,in)
- element number
edtype
(int,sc,in)
- element data type (see elparm)
lcerstL
(LONG,sc,inout)
- pointer to results file position
edindxL
(LONG,ar(NUMELEDATASETS),inout)- index to results file data
nval
(int,sc,in)
- the total number of values
if edtype = EDEMS,
this should -always- be ielc(nmsmis),
unless there is a variable number, as
in the layered shell elements.
value
(dp,ar(nval),in)
- output values (real)
164
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
tr
(dp,ar(3,3),in)
- transformation matrix
c
c
output arguments:
rot
(dp,ar(3),out)
- rotation vector
165
w1
- previous rotation pseudovector
output:
w1
- updated pseudovector
v1 = cos(v1/2) + 1/2*w1,
w1 = 2*sin(v1/2)*e1
v2 = cos(v2/2) + 1/2*w2,
w2 = 2*sin(v2/2)*e2
v21 = v2*v1 = cos(v21/2) + 1/2*w21 (quarternion multiplication)
w1 =: v21 (w1 is updated)
See also:
PrsRIGet
input arguments:
iel
(int,sc,in)
ielc (int,ar(IELCSZ),in)
nfac
(int,sc,in)
ndat
(int,sc,in)
begdat
(dp,ar(ndat),in)
c
c
c
c
c
c
output arguments:
dat
(dp,ar(ndat),out) - pressures at this iteration
enddat
(dp,ar(ndat),out) - pressure at end of this load step
iexist
(int,sc,out)
- flag if pressure exist
= 0 - no pressure
= 1 - yes pressure
166
element number
array of element type characteristics
number of pressure faces
number of pressure values
pressure at the beginning of load step
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
iel
(int,sc,in)
ielc (int,ar(IELCSZ),in)
nr
(int,sc,in)
u
(dp,ar(nr),in)
nfac
(int,sc,in)
ndat
(int,sc,in)
beghc
(dp,ar(ndat),in)
begtb
(dp,ar(ndat),in)
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
hc
(dp,ar(ndat),out)
tb
(dp,ar(ndat),out)
endhc
(dp,ar(ndat),in)
endtb
(dp,ar(ndat),in)
iexist
(int,sc,out)
element number
array of element type characteristics
dimension of u (temperature) vector
most current temperatures
number of convection faces
number of convection values
hcoef at the beginning of load step
tbulk at the beginning of load step
167
input arguments:
variable (typ,siz,intent)
s
(dp,ar(11),inout)
s(1)=sx
s(2)=sy
s(3)=sz
s(4)=sigxy
s(5)=sigyz
s(6)=sigzx
c
c
c
c
c
c
c
c
c
output arguments:
variable (typ,siz,intent)
s
(dp,ar(11),inout)
s(7)=sig1
s(8)=sig2
s(9)=sig3
s(10)=s.i.
s(11)=sige
description
- stress vector
description
- stress vector
168
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
169
170
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c primary function:
c
c
c
c
c
c
c
c
siz=sc,ar(n)
intent=in,out,inout
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
description
elem
(int,sc,in)
- User element number
nr
(int,sc,in)
- number of rows in element matrix
ls
(int,ar(nr),in)
- Dof Index vector for this element matrix
zs
(dp,ar(nr,nr,4),inout)- K,M,C,SS matrices for this element
zsc
(dp,ar(nr,2),inout) - Element load vector and N-R correction vec
uelm
(dp,ar(nr,5),in)
- Nodal displacements for this element
ielc
(int,ar(*),in)
- Element type characteristics
nodes
(int,ar(*),in)
- Nodes for this element
ElDofEachNode (int,ar(nr),in) - list of dofs for each node in Global
elmdat
(int,ar(10),in)
- Element data for this element
xyzang
(dp,ar(6,*),in)
- X,Y,Z,THXY,THYZ,THZX for each element node
lenu
(int,sc,in)
- Length of global displacement vector
c
c
c
c
c
c
output arguments:
zs
(dp,ar(nr,nr,4),inout)- K,M,C,SS matrices for this element
zsc
(dp,ar(nr,2),inout) - Element load vector and N-R correction vec
WARNING: any CHANGES to these (or any other) arguments will have a direc
impact on the solution, possibly giving meaningless results. The normal
usage of this routine is simply monitor what is happening.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
171
2.3.7. Subroutine uflex (Computing Flexibility Factors for PIPE288 and PIPE289)
*deck,uflex
USERSDISTRIB
subroutine uflex (elemId,pressInt,pressExt,ex,pois, sflex,twten)
c *** primary function:
to (re)compute the flexibility factors
c
for pipe288 and pipe289
c
this is accessed by inputting the axial flexibility factor
c
as -10.
c *** secondary functions: none
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c
c
typ=int,dp,log,chr,dcp
siz=sc,ar(n)
intent=in,out,inout
c
c
input arguments:
c elemId
(int,sc,in) - element number
c pressInt (dp,ar(2),in) - internal pressures at end nodes
c pressExt (dp,ar(2),in) - external pressures at end nodes
c
Pressures include hydrostatatic but
c
not hydrodynamic effects.
c ex
(dp,sc,in) - Young's Modulus
c pois
(dp,sc,in) - Poisson's ratio
c sflex (dp,ar(6),inout) - input flexibility factors
c
(axial, bending about element z,
c
bending about element y, twist, y shear, z shear)
c twten
(dp,sc,inout) - twist-tension factor
c
c
output arguments:
c sflex (dp,ar(6),inout) - output flexibility factors
c
(axial, bending about element z,
c
bending about element y, twist, y shear, z shear)
172
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
twten
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
173
174
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ji
ji
crement, and
UserMat is based on the current configuration for nonlinear geometry analysis (NLGEOM,ON). The
program uses a co-rotational approach to account for rigid body rotation. Because the program already
accounts for the strains passed into UserMat for the rigid body rotation, there is no need to apply
additional rotation within UserMat.
Stress, strain, and the material Jacobian tensors are stored in a vector or matrix format.
The order of components for all tensors is as follows:
3-D stress state
11, 22, 33, 12, 23, 13
2-D plane strain and axisymmetric stress states
11, 22, 33, 12
2-D plane stress states
11, 22, 12
Beam element stress states
11, 13, 12
Link element stress state
11
The order of components for the material Jacobian matrix is as follows:
3-D stress state
1111
1122
1133
1112
1123
1113
2211
2222
2233
2212
2223
2213
3311
3322
3333
3312
3323
3313
1211
1222
1233
1212
1223
1213
2311
2322
2333
2312
2323
2313
1311
1322
1333
1312
1323
1313
1122
1133
1112
2211
2222
2233
2212
3311
3322
3333
3312
1211
1222
1233
1212
1122
1112
2211
2222
2212
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
175
1222
1212
1113
1112
1311
1313
1312
1211
1213
1212
176
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
177
elemId
kDomIntPt
kLayer
kSectPt
ldstep
isubst
nDirect
nShear
Number of shear components of the stress or strain vector at material point (engineering
components).
ncomp
Total number of the stress or strain components at material point (nDirect + nShear).
nstatev
Number of state variables, specified by the NPTS value in the TB,STATE command.
nProp
Number of material constants, specified by the NPTS value in the TB,USER command.
Temp
dTemp
Time
Double-precision variable contains the total time at the beginning of the time increment.
dTime
Strain
Double-precision array contains the total strains at the beginning of the time increment. Array size is ncomp.
Thermal strains (defined via MP,ALPHA and temperature load), if any, are subtracted
from the total strains; therefore, the strains passed to UserMat are the mechanical
strains only.
178
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Double-precision array contains current strain increments. Array size is ncomp. As with
the Strain array, this value contains the mechanical strain increments only. Thermal strain
increments (if any) are subtracted from the total strains increments.
prop
Double-precision array contains the material constants defined via TB,USER and TBDATA
commands. Array size is nProp. Array prop contains the material constants at current
temperature point.
coords
defGrad_t
defGrad
stress
Double-precision array containing the stresses. Its size is defined by the ncomp input
value. The stress measure is the "true" stress. It is passed as the values of stresses
at the beginning of the time increment and must be updated to the values of stress
at the end of the time increment.
For finite-deformation problems, the stresses are rotated to account for rigid body
motion before they are passed in, and thus only the co-rotational portion of stress
integration is required in UserMat.
statev
Double-precision array containing the state variables. Its size is defined via the
TB,STATE command. It is passed as the values of state variables at the beginning
of the time increment and must be updated to the values of the state variables at
the end of the time increment.
epseq
epspl
Double-precision array containing the plastic strains. The strain measure is the "true"
strain. Its size is defined by the ncomp input value. It is passed as the values of the
plastic strains at the beginning of the time increment and must be updated to the
values of the plastic strains at the end of the time increment.
For finite-deformation problems, the plastic strains have been rotated to account
for rigid body motion before they are passed in.
sedEl
Elastic work. It is used for output purposes only and does not affect the solution.
sedPl
Plastic work. It is used for output purposes only and does not affect the solution.
UserMat Output Arguments
These values must be updated in the subroutine code.
keycut
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
179
Strain component at an out-of-plane direction for the plane stress state. This
value is required when the thickness change is taken into account in plane stress
or shell elements.
tsstif(2)
dsdePl(ncomp,ncomp)
ji
By default, the program assumes that the element stiffness matrix is symmetric; therefore, you must provide a symmetric material Jacobian matrix
even if it is unsymmetric. If your material requires an unsymmetric material
Jacobian matrix, issue the NROPT,UNSYM command to define the unsymmetric stiffness matrix.
180
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
tbtemp,1.0
tbdata,1,19e5, 0.3, 1e3,100,
tbtemp,2.0
tbdata,1,21e5, 0.3, 2e3,100,
!
!
!
!
!
!
!
!
TB,STATE Command
If you intend to use state variables with the UserMat subroutine, it is necessary to first specify the
number of state variables. Issue the TB command using the following syntax:
TB,STATE,MAT, ,NPTS
where
MAT = User material ID number
NPTS = Number of state variables that you intend to use.
The command defines only the number of state variables and must always be associated with a user
material ID. No temperatures or data are associated with the command.
By default, the program initializes state variables to zero at the beginning of an analysis. Use the TBDATA
command to initialize your own values for state variables.
Example 2.2: Defining the Number of State Variables for UserMat
tb,state,1,,8
tbdata,1,c1,c2,c3,c4,c5,c6,c7,c8
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
181
definition
inquire
elemId
kIntg
nvect
vect
inquire
elemId, kIntg, nvect
vect(nvect)
definition
inquire
elemId
kIntg
nvect
vect
inquire
elemId, kIntg, nvect
vect(nvect)
definition
inquire
elemId
kIntg
nvect
vect
inquire
elemId, kIntg, nvect
vect(nvect)
elemId
kDomIntPt
nvect
182
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ESYS
ISIG
Initial stress.
TREF
Reference temperature.
Multiplies two double-precision matrices and outputs the result as c (that is, c = a *
b).
The value na is number of rows in matrix a, nb the number of rows in matrix b, and
nc the number of rows in matrix c.
The n1 value is the number of rows in matrix c to fill, and n2 the number of columns
in matrix c to fill.
The value n3 is the number of columns in matrix a and the number of rows in matrix
b to work with. (The number of columns in a and rows in b is the same in order to
generate the inner product correctly.)
183
184
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
185
186
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Definition
elemId
Element number
matId
Material number
coords
temp
nprop
I/O
prop
187
input arguments
===============
elemId
(in, sc
matId
(in, sc
temp
(dp, sc
coords
, i)
, i)
, i)
(dp, ar(5), i)
output arguments
======================
nprop
(in, sc
, o)
prop
(dp, ar(*), o)
Element number
Number of material index
Current temperature
Coordinates at initial configuration
For continuum elements:
1-3: coordinates of integration point
4-5: not used
For line elements:
1-3: coordinates of integration point
along line member axis
4-5: offsets in element y and z directions
Number of constants
2 - isotropic
elasticity
9 - orthotropic elasticity
21 - anisotropic elasticity
Material elastic constants (stiffness)
c
local variables
c
===============
c
c*************************************************************************
c
c --- parameters
c
esize,,1
et,1,185
et,2,181
mp,ex,1,210e6
mp,nuxy,1,0.3
tb,elastic,2,1,2,user
! SOLID185 element
mat,2
block,,1,,1,,1
188
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
189
nfcOut
fc
(int,sc, out)
(dp,ar(9),out)
190
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
c
c
c
c
c
___________________________________________________________________
/1
2
2
2 1
2
2
2
\ / -*((ep - ep ) + (ep - ep ) + (ep - ep ) + -*(ep
+ ep
+ ep ))
\/ 2
1
2
2
3
3
1
2
4
5
6
-----------------------------------------------------------------------(1 + posn)
typ=int,dp,log,chr,dcp
siz=sc,ar(n)
intent=in,out,inout
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
kcomp
(int,sc,in)
ep
(dp,ar(6),in)
posn
(dp,sc,in)
description
- number of components of strain
- the strain components
- poisson's ratio
c
c
c
output arguments:
egen
(dp,func,out)
191
*deck,usercnprop
USERSDISTRIB
subroutine usercnprop (ndim,coor,nkeyopt,keyopt,nrl,rlconst,
x nintIn,intIn,nrealIn,realIn,kupdhis,localr,nuval,nintp,usvr,
x ncomp,stress,strain0,strain,kstat,mu,kcnprop,cnprop,keyerr)
c
c *** primary function:
Allow users to define their own contact properties
c
in real constant table
c
This logic is accessed with real constant defined
c
by table name: %_CNPROP%
c
(e.g. rmod,cid,kcnprop,%_CNPROP%)
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c
c input arguments:
c
variable (type,sze,intent)
description
c
c
elem
(int,sc,in)
- element number
c
intpt
(int,sc,in)
- element integration point number
c
ndim
(int,sc,in)
- number of dimensions of the problem
c
= 2 2D
c
= 3 3D
c
nintp
(int,sc,in)
- the total number of integration points of
c
an element to be used with this routine
c
nuval
(int)
- number of additional state variables per
c
integration point
c
note: nuval x nintp = nstv(on nsvr command); cannot exceed 840!
c
c
intIn
(int,ar(*),in)
- integer variables passed in
c
intIn
(int,ar(*),in)
- integer variables passed in
c
intIn(1) = element number
c
intIn(2) = element integration point number
c
intIn(3) = material reference number
c
intIn(4) = element type ID number (absolute value)
c
> 0 for CONTA171-CONTA177
c
< 0 for CONTA178
c
intIn(5) = real constant ID number
c
intIn(6) = associated contact nodal number
c
intIn(7) = contact indicator
c
0: intersection is found
c
otherwise: no intersection
c
intIn(8) = target element number
c
intIn(9) = flag for forcing sliding
c
frictional case
c
0 : not forcing
c
1 : forcing (Slip direction is
c
defined through CMROT command)
c
intIn(10) = 1 first pass through
c
(1st iteration)
c
(useful for initializing state
c
variables to a non-zero value)
c
= 2 first pass through key of
c
a restart
c
= 3 first pass through key of
c
a rezoning
c
intIn(11) = current load step number
c
intIn(12) = current substep number
c
intIn(13) = current equilibrium iteration
c
number
c
intIn(14) = flag for using unsymmetric
c
matrices (nropt,unsym)
c
0 : symmetric
c
1 : unsymmetric
c
intIn(15) = Linear perturbation flag
c
0 : a general load step
c
1 : a linear perturbation step
c
intIn(16) = key to indicate output pass
c
0 : not a output pass
192
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
1 : output pass
intIn(17) = key to indicate if historydependent variables
(user defined) need to be
updated after the substep has
converged
1 : update (converged)
0 : do not update (not converged)
intIn(18) = key to indicate transient effects
1 : transient is active
0 : transient is not active
intIn(19) = large deformation key [nlgeom cmd]
1 : on
0 : off
intIn(20) = analysis type (derived from
antype cmd)
0 : a static analysis
1 : a buckling analysis
2 : a modal analysis
3 : a harmonic analysis
4 : a transient analysis
7 : a substructure analysis
8 : a spectrum analysis
intIn(21) = key for displacement & force
convergence
1 : converged
0 : not converged
real variables passed in
realIn(1) = contact element length
realIn(2) = contact element depth
realIn(3) = area associated with the contact
detection point
realIn(4) = pinball radius
realIn(5) = un-scaled normal penalty stiffness
realIn(6) = time at the beginning of this
load step
realIn(7) = time at the end of this load step
realIn(8) = current time value
realIn(9) = time increment over this substep
realIn(10)= temperature offset from absolute
zero
realIn(11)= geometric penetration/gap
(current substep)
> 0 : gap
< 0 : penetration
realIn(12)= time increment scaling factor to
be used for structural transient
dynamics
number of key options
array containing key options
keyopt(1) : Select degree of freedom
keyopt(2) : Contact algorithm
... so on (see ANSYS documentation)
number of real constants
array containing real constants
Elements CONTA171 to CONTA177
rlconst(1) : R1
rlconst(2) : R2
rlconst(3) : FKN
rlconst(4) : FTOLN
... so on (see ANSYS documentation)
Element CONTA178
rlconst(1) : FKN
rlconst(2) : GAP
... so on (see ANSYS documentation)
realIn
(dp,ar(*),in)
nkeyopt
keyopt
(int,sc,in)
(int,ar(nkeyopt),in)-
nrl
rlconst
(int,sc,in)
(dp,ar(nrl),in)
kcnprop
(int,sc,in)
ncomp
(int,sc,in)
stress
(dp,ar(ncomp),in)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
193
194
strain0
strain
(dp,ar(ncomp+1),in) -
(dp,ar(ncomp+1),in)
kstat
(int,sc,in)
mu
(dp,sc,in)
coor
(dp,ar(ndim),in)
localr
(dp,ar(3,3),in)
usvr
kupdhis
output arguments:
variable (type,sze,intent)
cnprop
(dp,ar(5),out)
description
- user defined real constant value and
derivatives w.r.t. kcnprop position
cnprop(1) = user defined real constant value
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
usvr
keyerr
195
196
mat
intpt
nkeyopt
keyopt
nrl
rlconst
ncomp
npropu
uprop
kfirst
kfsteq
kn
kt
elen
kstat
timval
timinc
tcont
ttarg
toffst
dslip
slip
pres
tau
usvr
kupdhis
(int,sc,in)
(int,sc,in)
(int,sc,in)
(int,ar(nkeyopt),in)-
output arguments:
variable (type,sze,intent)
kstat
(int,sc,inout)
description
- updated contact status
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
mu
slip
tau
dt
dtdp
usvr
(dp,sc inout)
(dp,ar(ncomp),inout)(dp,ar(ncomp),inout)(dp,ar(5,5),out)
-
fdiss
(dp,sc,out)
elener
(dp,sc,out)
description
- temporary variable
- limit frictional stress
- equivalent frictional stress
- slip increment direction 1
- slip increment direction 2
- equivalent slip increment
- frictional stress 1 from prev substep
- frictional stress 2 from prev substep
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
197
err
(dp,ar(2))
198
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
realIn
(dp,ar(*),in)
nkeyopt
keyopt
(int,sc,in)
(int,ar(nkeyopt),in)-
nrl
rlconst
(int,sc,in)
(dp,ar(nrl),in)
ncomp
stress
(int,sc,in)
(dp,ar(ncomp),inout)-
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
199
200
strain0
(dp,ar(ncomp),in)
strain
(dp,ar(ncomp),in)
kstat
(int,sc,inout)
coor
(dp,ar(ndim),in)
localr
(dp,ar(3,3),in)
npropu
uprop
(int,sc,in)
(dp,ar(npropu),in)
usvr
kupdhis
output arguments:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
variable (type,sze,intent)
kstat
stress
description
(int,sc,inout)
- updated contact status
(dp,ar(ncomp),inout)- updated stress components
dt
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
201
usvr(1,intpt) : mu
usvr(2,intpt) : abs. acc. slip in dir1
usvr(3,intpt) : abs. acc. slip in dir2
usvr(4,intpt) : acc. slip in dir1
usvr(5,intpt) : acc. slip in dir2
They are passed in as the values at the
beginning of this substep. They are updated
to be the values at the end of this substep.
Use NSVR command to size usvr array and
set nuval to same value as number of
variables on NSVR commands
Use userou.F to save these values
on NMISC record for output purposes.
The number of user defined output items on
NMISC should be equal or less than NSTV
on nsvr command). It cannot exceed 120.
mu
fdiss
(dp,sc,inout)
(dp,sc,out)
elener
(dp,sc,out)
keyerr (int,sc,out)
keycnv (int,sc,inout)
internal variables:
variable (type,sze)
description
202
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
203
c
c
c
c
c
this routine is called at each substep of each load step for which
pressures are used. it is called for each equilibrium iteration.
it is called once per element.
the call to get the standard ansys input pressures is made just before
entering this routine.
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
description
ielc
(int,ar(IELCSZ),in) - array of element type characteristics
elem
(int,sc,in)
- element number for operation.
time
(dp,sc,in)
- time of current substep
ndat
(int,sc,in)
- number of pressure items for this element
dat
(dp,ar(ndat,2),inout) - the element pressure vector
(has input values for each corner
of each face)
c
c
c
c
c
c
c
c
output arguments:
variable (typ,siz,intent)
description
dat
(dp,ar(ndat,2),inout) - the element pressure vector
(defines input values for each corner
of each face)
dat(1:ndat,1) - real pressures
dat(1:ndat,2) - complex pressures
(surface elements only)
c
c
c
c
c
204
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
elem
(int,sc,in)
ielc
(int,ar(IELCSZ),in)
time
(dp,sc,in)
nr
(int,sc,in)
(dp,ar(nr),in)
ndat
(int,sc,in)
hc
(dp,ar(ndat),inout) -
tb
(dp,ar(ndat),inout) -
description
element number for operation.
array of element type characteristics
time of current substep
number of nodal temperatures
of the element
vector of most recent values of the
temperatures
number of data points per element
for example, for solid70, ndat = 24 = 6*4
where 6 = faces per element
4 = corners per face
film coefficients
(has input values for each corner
of each face)
bulk temperature
(has input values for each corner
of each face)
output arguments:
variable (typ,siz,intent)
description
hc
(dp,ar(ndat),inout) - film coefficients
(defines input values for each corner
of each face)
tb
(dp,ar(ndat),inout) - bulk temperature
(defines input values for each corner
of each face)
2.6.4. Subroutine userfx (Changing Element Face Heat Flux Surface Information)
*deck,userfx
USERSDISTRIB
subroutine userfx (ielc,elem,time,nr,u, ndat,dat)
c *** primary function: change element face heat flux surface info
c
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c
c
in order to activate this user programmable feature,
c
the user must enter the 'usrcal,userfx' command.
c
c
this routine is called during each substep of each load step.
c
it is called for each equilibrium iteration.
c
it is called once per element. it is called only during the heat
c
flow load vector formulation stage, and not during the heat flow
c
evaluation stage.
c
the call to get the standard ansys input heat flux surfaces
c
is made just before entering this routine, so this information is
c
available to be modified, if desired.
c
c
input arguments:
c
variable (typ,siz,intent)
description
c
ielc
(int,ar(IELCSZ),in) - array of element type characteristics
c
elem
(int,sc,in)
- element number for operation.
c
time
(dp,sc,in)
- time of current substep
c
nr
(int,sc,in)
- number of nodal temperatures
c
of the element
c
u
(dp,ar(nr),in)
- vector of most recent values of the
c
temperatures
c
ndat
(int,sc,in)
- number of data points per element
c
for example, for solid70, ndat = 24 = 6*4
c
where 6 = faces per element
c
4 = corners per face
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
205
dat
(dp,ar(ndat),inout) - fluxes
(has input values for each corner
of each face)
output arguments:
variable (typ,siz,intent)
description
dat
(dp,ar(ndat),inout) - fluxes
(defines input values for each corner
of each face)
2.6.5. Subroutine userch (Changing Element Face Charge Density Surface Information)
*deck,userch
USERSDISTRIB
subroutine userch (ielc,ielem,time,nr,u, ndat,dat)
c *** primary function: change element face charge density surface info
c
c
in order to activate this user programmable feature,
c
the user must enter the usrcal command.
c
c
this routine is called during each substep of each load step.
c
it is called once per element. it is called only during the heat
c
flow load vector formulation stage, and not during the heat flow
c
evaluation stage.
c
the call to get the standard ansys input charge densities of surfaces
c
is made just before entering this routine, so this information is
c
available to be modified, if desired.
c
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c
c
input arguments:
c
variable (typ,siz,intent)
description
c
ielc
(int,ar(IELCSZ),in) - array of element type characteristics
c
ielem
(int,sc,in)
- element number for operation.
c
time
(dp,sc,in)
- time of current substep
c
nr
(int,sc,in)
- number of nodal temperatures
c
of the element
c
u
(dp,ar(nr),in)
- vector of most recent values of the
c
temperatures
c
ndat
(int,sc,in)
- number of data points per element
c
dat
(dp,ar(ndat),inout) - fluxes
c
c
output arguments:
c
variable (typ,siz,intent)
description
c
dat
(dp,ar(ndat),inout) - fluxes
c
c
the input argument dat may be used in one of three ways:
c
1. they may be simply passed thru.
c
2. they may be used as a flag(e.g. if dat(2) = -3.0, use
c
a certain set of logic).
c
3. they may be completely ignored.
c
and instead redefined with new logic
c
2.6.6. Subroutine userfd (Computing the Complex Load Vector for Frequency
Domain Logic)
*deck,userfd
USERSDISTRIB
subroutine userfd (nr,kcbrm,kpfor,ktrsur,isur,
x cb,do,doext,aread,alenv,denswat,faclen,conac,fluidt,visc,
x watbas,watcur,watwav,xyzup,tr,accel,puvel,u,zass,
x forl,zsc,zsc2,pdyn,holdwv)
206
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
typ=int,dp,log,chr,dcp
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
prs
(dp,ar(5),in)
rvrp
(dp,ar(11),in)
angle
(dp,sc,in)
ex
(dp,sc,in)
siz=sc,ar(n)
intent=in,out,inout
description
pressure vector
real constants(see elements manual)
subtended angle
Young's modulus
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
207
nuxy
(dp,sc,in)
output arguments:
variable (typ,siz,intent)
userpe
(dp,sc,out)
- Poisson's ratio
description
rotation caused by internal pressure on the
elbow element
2.6.8. Subroutine usrsurf116 (Modifying SURF151 and SURF152 Film Coefficients and Bulk Temperatures)
*deck,usrsurf116
USERSDISTRIB
subroutine usrsurf116 (elem,ielc,center,jdim,kaxis,time,nr,u,
x
omeg,ndat,temvel,hc,tb,temfluid,mdot,key)
c *** primary function: change element convection surface info
c
for surf151 and/or surf152 based on information from fluid116.
c
It is called by el151 and el152.
c
c
in order to activate this user programmable feature,
c
the user must have used fluid116 with keyopt(2) = 1.
c
Further, surf151 and/or surf152 must have keyopt(5) = 1 or 2
c
(include extra node). Finally, for this routine to do anything,
c
key(1) and/or key(2) must be reset in this routine to a
c
nonzero number. There is no usrcal control over this routine.
c
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c *** Notice - This file contains ANSYS Confidential information ***
c
c
input arguments:
c
variable (typ,siz,intent)
description
c
elem
(int,sc,in)
- element number for operation.
c
ielc
(int,ar(IELCSZ),in) - array of element type characteristics
c
center (dp,ar(3),in)
- coordinates of center of surface element
c
jdim
(int,sc,in)
- dimensionality key
c
1 = 2d
c
2 = axisymmetric
c
3 = 3d
c
kaxis (int,sc,in)
- axis of rotation (keyopt(3) for el152)
c
(see getv116 for definition)
c
time
(dp,sc,in)
- time of current substep
c
nr
(int,sc,in)
- number of nodal temperatures
c
of the element
c
u
(dp,ar(nr),in)
- vector of most recent values of the
c
temperatures
c
omeg
(dp,sc,in)
- spin real constant (may be from table)
c
ndat
(int,sc,in)
- number of data points per element
c
hc
(dp,ar(ndat),inout) - film coefficients
c
(has input values for each corner
c
of element)
c
tb
(dp,ar(ndat),inout) - bulk temperature
c
(has input values for each corner
c
of element)
c
temfluid (dp,sc,in)
- temp of fluid at surf151/152 centroid
c
- when using kyop5 = 1 or 2
c
mdot (dp,sc,in)
- mass flow rate of fluid when using
c
- kyop5 = 2 ( 0 otherwise )
c
c
output arguments:
c
variable (typ,siz,intent)
description
c
temvel (dp,sc,out)
- user defined bulk temperature in excess of
c
fluid node temperature
c
hc
(dp,ar(ndat),inout) - film coefficients
c
(defines input values for each corner
c
of element)
c
tb
(dp,ar(ndat),inout) -bulk temperature(includes any modification)
c
(defines input values for each corner
c
of element)
c
key
(int,ar(2),out)
- key if to use this logic
208
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
elem
(int,sc,in)
prop
(dp,ar(4),in)
c
c
output arguments:
bco
(dp,sc,inout)
rvr
aleng
re
fric
uptot
uttot
bco
(dp,ar(24),in)
(dp,sc,in)
(dp,sc,in)
(dp,sc,in)
(dp,ar(2),in
(dp,ar(4),in
(dp,sc,inout)
- element number
- material property vector
order is: dens,visc,kxx,c
- real constant vector
- element length
- reynold's number
- friction factor
- nodal pressure values from previous iteration
- nodal temperature values from prev iteration
- the conductance coefficient from TB,fcon
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
209
input arguments:
elem
(int,sc,in)
prop
(dp,ar(4),inout)
c
c
output arguments:
hf
(dp,sc,inout)
rvr
aleng
re
uptot
uttot
hf
(dp,ar(18),in)
(dp,sc,in)
(dp,sc,in)
(dp,ar(2),in
(dp,ar(4),in
(dp,sc,inout)
- element number
- material property vector
order is: dens,visc,kxx,c
- real constant vector
- element length
- reynold's number
- nodal pressure values from previous iteration
- nodal temperature values from prevs iteration
- the film coefficient from TB,hflm
2.6.11. Subroutine userPartVelAcc (Computing Particle Velocities and Accelerations of Ocean Waves)
The userPartVelAcc subroutine is the primary component of the API for inputting your own wave
and current information. The API supports the hydrodynamic capability available with current-technology
pipe elements (PIPE288 and PIPE289). The userPartVelAcc subroutine works with the following
subroutines:
userPartVelAccSetup, which initializes the data for use by userPartVelAcc, and
userWavHt, which calculates the wave height for a user-defined wave.
For your convenience, three I/O service subroutines are called by the userPartVelAcc subroutine:
wvhybl, wvargu, and wavHtSec, all described below.
*deck,userPartVelAcc
USERSDISTRIB
subroutine userPartVelAcc (elemId,domInt,xyzg,doIns,
x
depth,denswat,
x
ncm,pCur,watcur, nw,pWav,watwav, timval,
x
argu,eta,vxyz,axyz,ar,pdynam)
c
---- accessed only if kwav .ge. 101 ----c
***** primary function: compute particle velocities and accelerations
c
due to waves and current
c
***** secondary function: compute dynamic pressures
c
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c *** Notice - This file contains ANSYS Confidential information ***
c
c input arguments:
c
elemId
(int,sc,in)
- element id
c
domInt
(int,sc,in)
- integration point number
c
xyzg
(dp,ar(3),in)
- coordinates of point of interest
c
doIns
(dp,sc,in)
- outside diameter with insulation
c
depth
(dp,sc,in)
- water depth
c
denswat (dp,sc,in)
- water density
c
ncm
(int,sc,in)
- number of current measurements
210
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
pCur
(int,sc,in)
watcur
(dp,ar(*),in)
nw
pWav
watwav
(dp,sc,in)
(int,sc,in)
(dp,ar(*),in)
timval
(dp,sc,in)
output arguments:
While the below 7 arguments are output, they can also
be used as input, based on other ANSYS input.
argu
(dp,sc,out)
- position in wave (radians) (passed out only for output)
eta
(dp,sc,out)
- total wave height
vxyz
(dp,ar(3),out)
- particle velocities
axyz
(dp,ar(3),out)
- particle accelerations
ar
(dp,sc,out)
- radial particle acceleration
pdynam
(dp,sc,out)
- dynamic pressure head
local variable
phead
(dp,sc,out)
- pressure head
2.6.11.1. Subroutine userPartVelAccSetup (Initializing Data for Use by the userPartVelAcc Subroutine)
This subroutine initializes the data for the userPartVelAcc subroutine.
*deck,userPartVelAccSetup
USERSDISTRIB
subroutine userPartVelAccSetup (secId,secIdCurr,secIdWave,
x
kch,ptr_Ocean,
x
nsize,nsizec,nsizew,
x
dWork,dWorkC,dWorkW,
x
rkd,wvmax)
c
---- accessed only if kwav .ge. 101 ----c *** primary function: set up and checking of user wave (and current) theory)
c *** secondary functions: none
c *** Notice - This file contains ANSYS Confidential information ***
c Copyright ANSYS. All Rights Reserved.
c
c
c input arguments:
c
secId
(int,sc,in)
- ocean basic data id
c
secIdCurr(int,sc,in)
- ocean current data id
c
secIdWave(int,sc,in)
- ocean wave data id
c
kch
(int,sc,in)
- key for checking or defaulting (not used by PIPE288)
c
ptr_Ocean (int,sc,in)
- storage offset
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
211
nsize
nsizec
nsizew
dWork
(int,sc,in)
(int,sc,in)
(int,sc,in)
(dp,ar(*),inout)
dWorkC
dWorkW
(dp,ar(*),inout)
(dp,ar(*),inout)
output arguments:
dWork
(dp,ar(*),inout)
dWorkC
(dp,ar(*),inout)
dWorkW
(dp,ar(*),inout)
rkd
(dp,sc,out)
wvmax
(dp,sc,out)
212
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
213
*deck,wavHtSec
subroutine wavHtSec (ktyp,xyzg,doext,depth,watwav,nw, eta,etadot)
c
--- primary function: Calculate wave height
c
--over point at xyzg of the element.
c
--if KWAVE .ge. 101, this routine calls userWavHt.
c
--- secondary functions: none
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c input arguments:
c
ktyp
(int,sc,in)
- key what argument is to be used
c
0 - compute value in wvargu
c
1 - pass directly in doext position
c
ktyp = 1 used for stream function only
c
xyzg
(dp,ar(3),in)
- updated coordinates of point of interest in
c
doext
(dp,sc,in)
- outside diameter with insulation
c
if ktyp = 1, doext = argu
c
depth
(dp,sc,in)
- water depth
c
watwav
(dp,ar(*),in)
- water wav table
c
nw
(int,sc,in)
- number of waves
c
c output arguments:
c
eta
(dp,sc,out)
- wave height (initialized before entering he
c
etadot
(dp,sc,out)
- time derivative of wave height
c
(used for kwav=1(wheeler) only)
c
USERSDISTRIB
c
---- accessed only if kwave on the OCDATA command .ge. 101 ----c Primary Function: read in ocean file for later use
214
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Secondary Functions:
----------------Notice:
------
For multiple calls to subroutine ansys, you must open and close standard input in the calling subroutine.
(Usually, input and output are Fortran units 5 and 6, respectively.) The calling subroutine cannot use
the database access subroutines; however, other user-programmable features can use the database
access subroutines freely.
There may be times when ANSYS exits abnormally. Check the file.err file to see if ANSYS wrote an
exit code to the file before ending. These error codes may help you to understand the problem ANSYS
had:
Table 2.1: ANSYS Exit Codes
Code Explanation
Code Explanation
Normal Exit
14
XOX Error
Stack Error
15
Fatal Error
Stack Error
16
Stack Error
17
Stack Error
18
21
25
30
Quit Signal
11
System-dependent Error
12
>32
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
215
To make these "custom command" subroutines available in all your sessions, include the /UCMD commands in your start-up file (START.ANS).
You also can use /UCMD to remove a custom command. To do so, simply use a blank value for Cmd,
as shown below:
/UCMD,,1
This command removes the PARB command. To list all user-defined command names, issue the command
/UCMD,STAT.
USERDISTRIB
user routine number
01
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
c
c
c
c
c
C
C
/*******************************************************************\
| this is a user routine that may be used by users to include their |
| special coding. accesss to this routine is by the command usr1. |
| usr1 may be changed by the user using the command /ucmd. the
|
| user may then use this routine to call his/her special routines. |
| ansys routines to access information in the ansys database may be |
| found in the "ansys programmer's manual", available from ansys,inc|
| see user02 for a simple example usage.
|
| routines user03 to user10 are also available.
|
\*******************************************************************/
input arguments:
c
c
c
output arguments:
user01
(int,sc,out)
none
c
**************************************************************
c
Functions for accessing data on the command line
c
integer function intinfun(iField) - gets an integer from field iField
c
double precision function dpinfun(iField) - gets double precision
c
character*4 ch4infun(iField) - gets (upper case) 4 characters
c
character*8 ch8infun(iField) - gets (mixed case) 8 characters
c
character*32 ch32infun(iField) - gets (mixed case) 32 characters
c
**************************************************************
c
#include "impcom.inc"
#include "ansysdef.inc"
external
216
wrinqr
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
wrinqr
user01, iott
iott = wrinqr(2)
c
c
c
c
*****'//)
/*******************************************************************\
| see user01 for additional information on user routines
|
\*******************************************************************/
input arguments:
c
c
c
output arguments:
user02
(int,sc,out)
none
c
**************************************************************
c
Functions for accessing data on the command line
c
integer function intinfun(iField) - gets an integer from field iField
c
double precision function dpinfun(iField) - gets double precision
c
character*4 ch4infun(iField) - gets (upper case) 4 characters
c
character*8 ch8infun(iField) - gets (mixed case) 8 characters
c
character*32 ch32infun(iField) - gets (mixed case) 32 characters
c
**************************************************************
c
#include "impcom.inc"
#include "ansysdef.inc"
external TrackBegin, TrackEnd
external wrinqr,ndinqr,ndgxyz,ndpxyz,erhandler, dpinfun
integer
wrinqr,ndinqr,ndgxyz
double precision dpinfun
integer user02, iott, maxnp, i ,ksel
double precision xyz(3), offset(3)
*****
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
217
*****
'/)
*****
user02 = 0
*****
*****
USERDISTRIB
user routine number 03. Gives example of
ANSYS Memory usage
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
/*******************************************************************\
| see user01 for additional information on user routines
|
\*******************************************************************/
input arguments:
c
c
c
output arguments:
user03
(int,sc,out)
c
c
c
c
c
c
c
c
none
**************************************************************
Functions for accessing data on the command line
integer function intinfun(iField) - gets an integer from field iField
double precision function dpinfun(iField) - gets double precision
character*4 ch4infun(iField) - gets (upper case) 4 characters
character*8 ch8infun(iField) - gets (mixed case) 8 characters
character*32 ch32infun(iField) - gets (mixed case) 32 characters
**************************************************************
#include "impcom.inc"
#include "ansysdef.inc"
external
external
x
integer
PTRFTN
218
TrackBegin, TrackEnd
wrinqr, ndinqr, ndgxyz, ndnext, fAnsMemAlloc,
fAnsMemFree,erhandler, parreturn, parstatus
wrinqr, ndinqr, ndgxyz, ndnext
fAnsMemAlloc
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
pointers:
pointer (pdXnodeL,Xnode)
pointer (pdYnodeL,Ynode)
pointer (pdZnodeL,Znode)
double precision Xnode(*), Ynode(*), Znode(*)
*****
c
c
allocate
pdXnodeL
pdYnodeL
pdZnodeL
node = ndnext(node)
if (node .gt. 0) then
store this
Xnode(i) =
Ynode(i) =
Znode(i) =
while
xmean
ymean
zmean
increment index
i = i + 1
endif
c
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
219
i =
sodx
sody
sodz
enddo
1, numnp
= sodx + (Xnode(i) - xmean)**2
= sody + (Ynode(i) - ymean)**2
= sodz + (Znode(i) - zmean)**2
999
*****
*****
*****
*****
*****
USERDISTRIB
user routine number 04; demonstrates gettting a
list of nodes attached to a keypoint, line, or area
c
*** Copyright ANSYS. All Rights Reserved.
c
*** ansys, inc.
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
/*******************************************************************\
| see user01 for additional information on user routines
|
\*******************************************************************/
input arguments:
c
c
c
output arguments:
user04
(int,sc,out)
220
none
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
c
**************************************************************
c
Functions for accessing data on the command line
c
integer function intinfun(iField) - gets an integer from field iField
c
double precision function dpinfun(iField) - gets double precision
c
character*4 ch4infun(iField) - gets (upper case) 4 characters
c
character*8 ch8infun(iField) - gets (mixed case) 8 characters
c
character*32 ch32infun(iField) - gets (mixed case) 32 characters
c
**************************************************************
c
#include "impcom.inc"
#include "ansysdef.inc"
external
ndkpnt
user04,
iott, listk(20),listl(20),lista(20), listin(1),
i, num,ktype, nkpnts, nlines, nareas
character*4 type, lab2
lab2 = ch4infun(2)
write (iott,2010) lab2
2010 format(/' group name (type of entity) = ',a4)
num = intinfun(3)
write (iott,2020) num
2020 format (' entity number =',i4)
listin(1) = num
if (lab2 .ne. 'KP ' ) then
type = ch4infun(4)
if (type .eq. 'INTE') then
write (iott,2030)
2030
format (' interior nodes only ')
ktype = 0
elseif (type .eq. 'ALL ') then
write (iott,2040)
2040
format (' all (interior and edge/end) nodes ')
ktype = 1
else
write (iott,2050)
2050
format ('Only INTE or ALL are acceptable in last field',
x
' on user-written gnsme command')
endif
endif
if (lab2 .eq. 'KP ' ) then
nkpnts = 0
call ndkpnt (1,listin(1),nkpnts,listk(1))
write (iott,2110) nkpnts
2110
format (' number of nodes on keypoint = ',i4)
write (iott,2115) (listk(i),i=1,nkpnts)
2115
format (' node on keypoint = ',i4)
elseif (lab2 .eq. 'LN ' ) then
nlines = ndline (num,ktype,listl(1))
write (iott,2120) nlines
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
221
usr
input arguments:
variable (typ,siz,intent)
Node
(int,sc,in)
Label
(ch*4,sc,in)
c
c
c
c
c
c
c
output arguments:
GetRForce (int,func,out)
222
Value
(dp,sc,out)
description
- Node Number (User)
- DOF Label (Upper Case)
'UX ','UY ','TEMP','VOLT','ROTY', etc
- status/pointer
= 0 - data not valid
> 0 - Rfsum pointer to data for fast access
see comments below
- Solution value for Node,Label
All results are in the nodal coordinate
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Supporting Subroutines
c
c
system
example usage:
c
external GetRForce
c
integer
GetRForce, ptr, Node2
c
double precision Value
c #include "handlecom.inc"
(if Value = Rfsum(ptr) form is to be used)
c
c
c
ptr
= GetRForce (Node2,'UY
',Value)
later...
Value = Rfsum(ptr)
usr
typ=int,dp,log,chr,dcp
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
Node
(int,sc,in)
Label
(ch*4,sc,in)
c
c
c
c
c
c
c
output arguments:
variable (typ,siz,intent)
GetStackDisp (int,sc,out)
example usage:
Value
(dp,sc,out)
siz=sc,ar(n)
intent=in,out,inout
description
- Node Number (User)
- DOF Label (Upper Case)
'UX ','UY ','TEMP','VOLT','ROTY', etc
description
- status/pointer
= 0 - data not valid
> 0 - UDisp pointer to data for fast access
see comments below
- Solution value for Node,Label
c
external GetStackDisp
c#include "handlecom.inc" (only if UDisp(ptr) form is used
c
integer
GetStackDisp, ptr, Node2
c
double precision Value
c
c
c
ptr
= GetStackDisp (Node2,'UY
',Value)
later...
Value = UDisp(ptr)
223
c
c
c
c
input arguments:
Label
(ch*4,sc,in)
Comp
(ch*4,sc,in)
LabAvg
(ch*4,sc,in)
c
c
c
c
c
output arguments:
TypeData (int,sc,out)
nVal
(int,sc,out)
iLoc
(int,sc,out)
- Result Type
- Result Component (8 char for ESTR)
- 'AVG ' or 'NOAV' ('AVG ' default)
input arguments:
nPoints (int,sc,in)
- Number of evaluation points
*** from ElInterp ***
ebest
(int,ar(nPoints),in) - Element(s) containing points
elcord
(dp,ar(3,nPoints),in) - Element coordinates
*** from ElResultStrt ***
TypeData (int,sc,in)
- Data type code
iLoc
(int,sc,in)
- Start of selected data
nVal
(int,sc,in)
- Number of results per point
c
c
output arguments:
Result
(dp,ar(nvar,nPoints),out)
- Array of results
c output arguments:
c
ebest
(int,ar(nPoints),out) - Best element number for each point
c
elcord
(dp,ar(3,nPoints),out) - Element coordinates of the point
224
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Is Called
UAnBeg
At start-up
USolBeg
Before solution
ULdBeg
USsBeg
Before a substep
UItBeg
Before an iteration
UItFin
After an iteration
USsFin
After a substep
ULdFin
USolFin
After solution
UAnFin
Subroutines USSBeg, UItBeg, UItFin and USSFin default to reading a command macro file from
the current working directory whose name is subroutine.mac (that is, ussfin.mac is read by
USSFin.F). No user action to relink the program is required for the command macro to be read except
that the calling subroutine must be activated by the USRCAL command. The design of the command
reading ability of these subroutines is limited to APDL parameter setting commands (*GET, *SET, a =
value, etc) and testing for general commands is limited. Commands which are known to work include
*DIM, *STATUS. Commands which require another line (*MSG, *VWRITE) are not allowed. Other commands which are known to not work are the solution loading commands (D, F, SFE, and so on). If these
capabilties are required, the user will need to create a Fortran subroutine and link this subroutine into
the program, as described in Using User Programmable Features (UPFs) (p. 109).
While parameter substitution into commands is not permitted, USSBeg, and so on were designed to
be used in conjunction with dynamic tables and parameter substitution from the user subroutine. As
an example, consider a table defined as d5 = f(par1), If d5 contains values of displacement as a function
of PAR1, then d5 may be used as a constraint, as
*dim,d5,table,10,1,1,PAR1
d5(1)=0,.1,.25,
/solu
d,5,ux,%d5%
Modify the value of PAR1 in USSBeg.MAC and the constraint on node 5, ux can then be modified in
the middle of a load step.
The following is an example of a valid input that may be read by USSBeg, UItBeg, UItFin and
USSFin.
/COM, SAMPLE ussfin.mac
a=5
b=nx(1)
*get,c,active,solu,Time,cpu
*dim,array,,6
! *get function is ok
! *get is ok
! array parameters are ok
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
225
and memory space for the array is allocated by assigning the pointer, in this case piArray, to the allocated
memory space:
piArray = fAnsMemAlloc (size,...)
226
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Note
If there is insufficient memory, fAnsMemAlloc returns "PTRFTNNULL".
The next two sections provide input and output listings for the memory management subroutines.
For an example, see Function user03 (Demonstrates Using Memory) (p. 218), which appears earlier in
this chapter.
c object/library:
mem
input arguments:
iLen (int,sc,in)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
227
c16Label (chr*16,sc,in)
key (int,sc,in)
output arguments:
fAnsMemAlloc (PTRFTN,sc,out)
c object/library:
mem
input arguments:
ptr
(PTRFTN,sc,inout)
c
c
output arguments:
ptr
(PTRFTN,sc,inout)
*dim,parm32,type,d1,d2,d3,cName1,cName2,cName3
*dim,parm32,type,d1,cName1
*dim,parm32,type,d1,d2,d3,d4,d5,cName1,cName2,cName3,cName4,cName5
input arguments:
cName
(chr*32,sc,in)
- the name of the parameter to create
labl4
(chr*4,sc,in)
- 'TABL' or 'ARRA' or 'CHAR' or 'STRI'
nDim
(int,sc,in)
- Dimension of array
nxyz
(int,ar(nDim),in) - the dimensions of the array
cLabels (chr*32,ar(nDim),in) - Names for the directions in table
output arguments:
none
228
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Parameter-Processing Subroutines
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
c
c
c
c
input arguments:
ParName (chr*(PARMSIZE),sc,in) - the name of the parameter
(must be upper case, left justified)
nDim
(int,sc,in)
- the number of subscripts (0,scaler)
subc
(dp,ar(*),in)
- values for the subscripts (if any)
lvl
(int,sc,in)
- 0,1 no error output 2, report error
-1, set kerr flag with no anserr call
c
c
c
c
c
c
c
output arguments:
dpValue (dp,sc,out)
chValue (ch*(*),sc,out)
kerr
(int,sc,out)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
229
230
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
nChar
(int,sc,in)
command (ch*(nChar),sc,in)
c
c
output arguments:
RunCommand
(int,sc,out)
Action
ON, to write the undo file
OFF, to prevent the undo file from being written
PROMPT, to have the program ask permission before writing the file
STATUS, to restore the file as it existed after executing the last command issued before the
/UNDO command.
Filename
The eight-character name of a message file. If the named file exists, the program reads a command from
the file and then deletes the file.
TimeInterval
The length of time, in seconds, that the program waits before trying to read the message file again.
Timeout
The maximum length of time, in seconds, that the program can wait between attempts to read the file.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
231
232
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
233
input arguments:
next
(int,sc,in)
c
c
c
output arguments:
ndnext
(int,func,out)
3.1.2. ndprev Function (Getting the Number of the Previous Selected Node)
*deck,ndprev
function ndprev (next)
c *** primary function:
get the number of the previous selected node
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
c
c
input arguments:
c
variable (typ,siz,intent)
description
c
next
(int,sc,in)
- the next node number used
c
= 0 - use for initial value
c
c
output arguments:
c
ndprev
(int,func,out)
- the previous selected node number
c
= 0 - no more nodes
c
3.1.3. ndnxdf Function (Getting the Number of the Next Defined Node)
*deck,ndnxdf
function ndnxdf (next)
c *** primary function:
get the number of the next defined node
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
c
c
input arguments:
c
variable (typ,siz,intent)
description
c
next
(int,sc,in)
- the last node number used
c
= 0 - use for initial value
c
c
output arguments:
c
ndnxdf
(int,func,out)
- the next defined node number
c
= 0 - no more nodes
234
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
typ=int,dp,log,chr,dcp
c
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
ndmi
(int,sc,in)
c
c
output arguments:
none.
ksel
siz=sc,ar(n),func
(int,sc,in)
intent=in,out,inout
description
- node number
= 0 - all nodes
< 0 - do not delete CPs and CEQNs
(merge/offset/compress)
- type of operation to be performed.
ksel = 0 - delete node.
= 1 - select node.
=-1 - unselect node.
= 2 - invert select status of node.
input arguments:
next
(int,sc,in)
c
c
c
output arguments:
elnext
(int,func,out)
3.1.6. elprev Function (Getting the Number of the Previous Selected Element)
*deck,elprev
function elprev (prev)
c *** primary function:
get the number of the previous selected element
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
c
c
input arguments:
c
variable (typ,siz,intent)
description
c
prev
(int,sc,in)
- the last element used
c
= 0 - use for initial value
c
c
output arguments:
c
elprev
(int,func,out)
- the previous selected element
c
= 0 - no more elements
c
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
235
3.1.7. elnxdf Function (Getting the Number of the Next Defined Element)
*deck,elnxdf
function elnxdf (next)
c *** primary function:
get the number of the next defined element
c
c *** Notice - This file contains ANSYS Confidential information ***
c
c
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
c
c
input arguments:
c
variable (typ,siz,intent)
description
c
next
(int,sc,in)
- the last element used
c
= 0 - use for initial value
c
c
output arguments:
c
elnxdf
(int,func,out)
- the next defined element
c
= 0 - no more elements
Note
Some of the database commands in the input file shown below are in the common
block ansysdef.inc, which must be included in the subroutine.
*deck,ndinqr
function ndinqr (node,key)
c *** primary function:
get information about a node.
c *** secondary functions: set current node pointer to this node.
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
c
c
c
c
c
c
c
236
input arguments:
node
(int,sc,in)
key
- node number
Should be 0 for key=11, DB_NUMDEFINED,
DB_NUMSELECTED, DB_MAXDEFINED, and
DB_MAXRECLENG
(dp,sc,in)
- key as to information needed about
the node.
= DB_SELECTED
- return select status:
ndinqr = 0 - node is undefined.
=-1 - node is unselected.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
= 1 - node is selected.
= DB_NUMDEFINED - return number of defined nodes
= DB_NUMSELECTED - return number of selected nodes
= DB_MAXDEFINED - return highest node number defined
= DB_MAXRECLENG - return maximum record length (dp words)
= 2, return length (dp words)
= 3,
= 4, pointer to first data word
= 11, return void percent (integer)
= 17, pointer to start of index
= -1,
= -2, superelement flag
= -3, master dof bit pattern
= -4, active dof bit pattern
= -5, solid model attachment
= -6, pack nodal line parametric value
= -7, constraint bit pattern
= -8, force bit pattern
= -9, body force bit pattern
= -10, internal node flag
= -11, orientation node flag =1 is =0 isnot
= -11, contact node flag <0
= -12, constraint bit pattern (for DSYM)
= -13, if dof constraint written to file.k (for LSDYNA only)
= -14, nodal coordinate system number (set by NROTATE)
=-101, pointer to node data record
=-102, pointer to angle record
=-103,
=-104, pointer to attached couplings
=-105, pointer to attacted constraint equations
=-106, pointer to nodal stresses
=-107, pointer to specified disp'S
=-108, pointer to specified forces
=-109, pointer to x/y/z record
=-110,
=-111,
=-112, pointer to nodal temperatures
=-113, pointer to nodal heat generations
=-114,
=-115, pointer to calculated displacements
=-116,
output arguments:
ndinqr
(int,func,out)
input arguments:
node
(int,sc,in)
kerr
(int,sc,inout)
c
c
output arguments:
v
(dp,ar(6),out)
kcrot
(int,sc,in)
- node number
- message flag
= 0 - print no message if node is unselected
or undefined
= 1 - print message if node is undefined
= 2 - print message if node is undefined
or unselected
- output coordinates in this coordinate system.
if kcrot is negative, output theta and
phi coordinates in radians
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
237
kerr
(int,sc,inout)
input arguments:
node
(int,sc,in)
vctn
(dp,ar(6),in)
output arguments:
kcrot
(int,sc,in)
- node number
- array of 3 nodal
3 nodal
- local coordinate
coordinates and
coordinates and
rotation angles.
system in which the nodal
angles are defined
none.
input arguments:
node
(int,sc,in)
c
c
c
c
c
c
output arguments:
ndgall
(int,sc,out)
xyz
(dp,ar(6),out)
- status of node.
0=node is undefined.
-1=node is unselected.
1=node is selected.
- vector containing x,y,z,rotx,roty,rotz
3.2.5. ndspgt Subroutine (Getting the Nodal Solution for a Node of an Element)
*deck,ndspgt
subroutine ndspgt (node,dofs,ndof,nrot,xyzang,nuvect,unode)
c *** primary function: get the nodal solution for a node of an element
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
c
c
c
c
c
c
238
input arguments:
node
(int,sc,in)
- The node number
dofs
(int,ar(DOFBITLENG),in) - The dofs to retrieve for the node.
dof = degree of freedom
The dofs array should be zeroed out,
except for the needed parts.
dofs is a bit pattern with true bits
representing the GLOBAL Dof set desired.
That is, dofs(1) is used for UX to SP06,
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ndof
nrot
(int,sc,in)
(int,sc,in)
xyzang
(dp,ar(6),in)
nuvect
(int,sc,in)
output arguments:
unode
(dp,ar(ndof,nuvect),out) - Element nodal solution vectors in
the global coordinate system.
input arguments:
ielem
(int,sc,in)
key
- element number
should be zero for key=11, DB_NUMDEFINED,
DB_NUMSELECTED, or DB_MAXDEFINED
(int,sc,in)
- information flag.
= DB_SELECTED
- return select status:
(1)
elmiqr = 0 - element is undefined.
=-1 - element is unselected.
= 1 - element is selected.
= DB_NUMDEFINED - return number of defined elements
(12)
= DB_NUMSELECTED - return number of selected elements
(13)
= DB_MAXDEFINED - return maximum element number used
(14)
= DB_MAXRECLENG - return maximum record length
(15)
(int words)
= 2 - return length (int words)
= 3 - return layer number
(for cross reference files return number of entities)
= 4 - return address of first data word
= 5 - return length (in record type units)
= 6 - return compressed record number.
= 11 - return void percent (integer)
= 16 - return location of next record
(this increments the next record count)
= 17 - pointer to start of index
= 18 - return type of file.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
239
elmiqr = 0 - integer
= 1 - double precision
= 2 - real
= 3 - complex
= 4 - character*8
= 7 - index
= 19 - return virtual type of file.
elmiqr = 0 - fixed length (4.4 form)
= 1 - indexed variable length (layer data)
= 2 - xref data tables
= 3 - bitmap data (for 32 data item packed records)
= 4 - data tables (three dimensional arrays)
= -1 - material number etc. (see elmcmx)
=-101 - pointer to element integers etc.
(see elmcmx with elmilg and 1 instead of -101)
c
output arguments:
c
elmiqr (int,sc,out) - the returned value of elmiqr is based on
c
setting of key.
c
c *** mpg elmiqr < el117,edgrde,edgrecc,edgmul: elem inquire
c
240
input arguments:
ielem
(int,sc,in)
- element number
elmdat
(int,ar(EL_DIM),in) - element attributes.
elmdat(EL_MAT) - material number
(EL_TYPE) - element type
(EL_REAL) - real constant number
(EL_SECT) - section number
(EL_CSYS) - coordinate system number
(EL_DEAD) - death flag (bit 0)
if clear - alive
if set
- dead
(EL_SOLID) - solid model reference
(EL_SHAPE) - 100*shape + specific shape
(EL_OBJOPTIONS) - reserved
(EL_PEXCLUDE) - p element include flag
(bit 0)
if clear - include
if set
- exclude
For LSDYNA, it means part ID
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
nnod
nodes
(int,sc,in)
(int,ar(*),in)
output arguments:
none.
input arguments:
itype
(int,sc,in)
c
c
c
output arguments:
etyiqr
(int,func,out)
key
input arguments:
itype
(int,sc,in)
c
c
c
c
c
c
c
c
c
output arguments:
etyget
(int,func,out)
ielx
(int,ar(*),out)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
241
input arguments:
itype
(int,sc,in)
n
(int,sc,in)
ielx
(int,ar(*),in)
output arguments:
none
c 2007 nov 5
c *** mpg etyput<etymod etydef dirasmdft dasupd dasdft:update elem type active
242
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
variable (typ,siz,intent)
itypi
(int,sc,in)
ksel
(int,sc,in)
description
- element type number
= 0 - all element types
- type of operation to be performed.
= 0 - delete element type.
= 1 - select element type.
=-1 - unselect element type.
= 2 - invert element type.
output arguments:
none.
input arguments:
mat
(int,sc,in)
- material number
should be 0 for key=11,
DB_NUMDEFINED(12),
DB_MAXDEFINED(14), and
DB_MAXRECLENG(15)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
iprop
(int,sc,in)
- property reference number:
if iprop = 0, test for existence of any material property with this
material number (with key = DB_SELECTED(1))
c
c
c
c
c
c
c
c
c
c
c
key
c
c
c
NUYZ= 5,
DENS=13,
RSVZ=21,
PRYZ=29,
MGXX=37,
SBKZ=45,
FLUI=53,
CTEX=61,
BETD=69,
BETZ=77,
NUXZ= 6,
MU =14,
C
=22,
PRXZ=30,
MGYY=38,
SONC=46,
ORTH=54,
CTEY=62,
ALPD=70,
CSAT=78,
GXY = 7,
DAMP=15,
HF =23,
MURX=31,
MGZZ=39,
SLIM=47,
CABL=55,
CTEZ=63,
RH =71,
CREF=79,
GYZ = 8
KXX =16
VISC=24
MURY=32
EGXX=40
ELIM=48
RIGI=56
THSX=64,
DXX =72,
CVH =80
=
=
=
=
=
=
output arguments:
mpinqr
(int,func,out)
243
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
description
mat
(int,sc,in)
- material number
iprop
(int,sc,in)
- property reference number:
---- MP command labels -------EX = 1, EY = 2, EZ = 3, NUXY= 4, NUYZ= 5, NUXZ= 6, GXY = 7,
GXZ = 9, ALPX=10, ALPY=11, ALPZ=12, DENS=13, MU =14, DAMP=15,
KYY =17, KZZ =18, RSVX=19, RSVY=20, RSVZ=21, C
=22, HF =23,
EMIS=25, ENTH=26, LSST=27, PRXY=28, PRYZ=29, PRXZ=30, MURX=31,
MURZ=33, PERX=34, PERY=35, PERZ=36, MGXX=37, MGYY=38, MGZZ=39,
EGYY=41, EGZZ=42, SBKX=43, SBKY=44, SBKZ=45, SONC=46, SLIM=47,
USR1=49, USR2=50, USR3=51, USR4=51, FLUI=53, ORTH=54, CABL=55,
HGLS=57, CPH =58, QRAT=59, REFT=60, CTEX=61, CTEY=62, CTEZ=63,
THSY=65, THSZ=66, DMPR=67, LSSM=68, BETD=69, ALPD=70, RH =71,
DYY =73, DZZ =74, BETX=75, BETY=76, BETZ=77, CSAT=78, CREF=79,
c
c
c
c
output arguments:
mpget
(int,func,out)
- number of temperature values
temp
(dp,ar(mpget),out) - vector of the temperature values
prop
(dp,ar(mpget),out) - vector of the property values
GYZ = 8
KXX =16
VISC=24
MURY=32
EGXX=40
ELIM=48
RIGI=56
THSX=64,
DXX =72,
CVH =80
244
input arguments:
mat
(int,sc,in)
- material number.
iprop
(int,sc,in)
- property reference number:
---- MP command labels -------EX = 1, EY = 2, EZ = 3, NUXY= 4, NUYZ= 5, NUXZ= 6, GXY = 7,
GXZ = 9, ALPX=10, ALPY=11, ALPZ=12, DENS=13, MU =14, DAMP=15,
KYY =17, KZZ =18, RSVX=19, RSVY=20, RSVZ=21, C
=22, HF =23,
EMIS=25, ENTH=26, LSST=27, PRXY=28, PRYZ=29, PRXZ=30, MURX=31,
MURZ=33, PERX=34, PERY=35, PERZ=36, MGXX=37, MGYY=38, MGZZ=39,
EGYY=41, EGZZ=42, SBKX=43, SBKY=44, SBKZ=45, SONC=46, SLIM=47,
USR1=49, USR2=50, USR3=51, USR4=51, FLUI=53, ORTH=54, CABL=55,
HGLS=57, CPH =58, QRAT=59, REFT=60, CTEX=61, CTEY=62, CTEZ=63,
THSY=65, THSZ=66, DMPR=67, LSSM=68, BETD=69, ALPD=70, RH =71,
DYY =73, DZZ =74, BETX=75, BETY=76, BETZ=77, CSAT=78, CREF=79,
GYZ = 8
KXX =16
VISC=24
MURY=32
EGXX=40
ELIM=48
RIGI=56
THSX=64,
DXX =72,
CVH =80
(int,sc,in)
(dp,ar(ntab),in)
(dp,ar(ntab),in)
output arguments:
none.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
mat
(int,sc,in)
iprop
(int,sc,in)
output arguments:
- material number.
- property reference number:
(0 = all properties)
---- MP command labels -------EX = 1, EY = 2, EZ = 3, NUXY= 4, NUYZ= 5, NUXZ= 6, GXY = 7,
GXZ = 9, ALPX=10, ALPY=11, ALPZ=12, DENS=13, MU =14, DAMP=15,
KYY =17, KZZ =18, RSVX=19, RSVY=20, RSVZ=21, C
=22, HF =23,
EMIS=25, ENTH=26, LSST=27, PRXY=28, PRYZ=29, PRXZ=30, MURX=31,
MURZ=33, PERX=34, PERY=35, PERZ=36, MGXX=37, MGYY=38, MGZZ=39,
EGYY=41, EGZZ=42, SBKX=43, SBKY=44, SBKZ=45, SONC=46, SLIM=47,
USR1=49, USR2=50, USR3=51, USR4=51, FLUI=53, ORTH=54, CABL=55,
HGLS=57, CPH =58, QRAT=59, REFT=60, CTEX=61, CTEY=62, CTEZ=63,
THSY=65, THSZ=66, DMPR=67, LSSM=68, BETD=69, ALPD=70, RH =71,
DYY =73, DZZ =74, BETX=75, BETY=76, BETZ=77, CSAT=78, CREF=79,
GYZ = 8
KXX =16
VISC=24
MURY=32
EGXX=40
ELIM=48
RIGI=56
THSX=64,
DXX =72,
CVH =80
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
input arguments:
variable (typ,siz,intent)
description
nreal
(int,sc,in)
- real constant table number
should be 0 for key=11, DB_NUMDEFINED,
DB_NUMSELECTED, DB_MAXDEFINED, and
DB_MAXRECLENG
key
(int,sc,in)
- information flag.
= 5
- return number of values stored for nreal
= DB_SELECTED
- return select status
rlinqr = 0 - real constant table is undefined.
=-1 - real constant table is unselected.
= 1 - real constant table is selected
= DB_NUMDEFINED - return number of defined real constant tables
= DB_NUMSELECTED - return number of selected real constant tables
= DB_MAXDEFINED - return highest real constant table defined
= DB_MAXRECLENG - return maximum record length (dp words)
c output arguments:
c
rlinqr
(int,func,out)
c
c *** mpg magnetic interface usage
c
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
245
input arguments:
nreal
(int,sc,in)
c
c
c
output arguments:
rlget
(int,func,out)
rtable
(dp,ar(*),out)
input arguments:
ncsy
(int,sc,in)
c
c
c
output arguments:
csyiqr
(int,func,out)
246
key
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
NOTE:
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
c
c
c
c
input arguments:
variable (typ,siz,intent)
ncsy
(int,sc,in)
csyinx(4) (int,sc,inout)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
csydpx
(dp,ar(18),out)
csydpx(1-9)
- transformation matrix
(10-12) - origin (XC, YC, ZC)
(13-14) - coordinate system parameters
description
- coordinate system number
- coordinate system number
csycom name
csyact
cparm
cparm2
(15)
- spare
(16-18) - defining angles
csyinx
(int,ar(6),out)
csyinx(1-2)
- theta, phi singularity keys
(3)
- coordinate system type
icdsys
(csyinx(4) is inout) (4)
- coordinate system number
csyact
(5)
- spare
(6)
- spare
csyget
(int,func,out)
- status of coordinate system
= 0 - coordinate system exists
= 1 - coordinate system doesn't exist
input arguments:
ncsy
(int,sc,in)
- coordinate system number
csydpx
(dp,ar(18),out)
csydpx(1-9)
- transformation matrix
(10-12) - origin (XC, YC, ZC)
(13-14) - coordinate system parameters
cparm
cparm2
(15)
- spare
(16-18) - defining angles
csyinx
(int,ar(6),out)
csyinx(1-2)
(3)
(4)
(5)
(6)
icdsys
csyact
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
247
248
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
= 11
= 16
= -1
output arguments:
cpinqr
(int,func,out)
input arguments:
ncp
(int,sc,in)
output arguments:
cpget
(int,func,out)
ieqn
(int,ar(cpget+2),out) ieqn(1:cpget)
ieqn(cpget+1)
ieqn(cpget+2)
input arguments:
ncp
(int,sc,in)
- coupled set number
n
(int,sc,in)
- number of nodes in coupled set
ieqn
(int,ar(n+2),in)
- info for storage
ieqn(1:n) - list of coupled nodes
ieqn(n+1) - degree of freedom label for set
(ieqn(n+2) is inout)
ieqn(n+2) - number of nodes in coupled set
(copy of n)
c
c
c
output arguments:
ieqn(n+2) (int,sc,inout)
249
variable
ncpi
ksel
(typ,siz,intent)
(int,sc,in)
(int,sc,in)
description
- coupled set number
- select/delete flag
= 0 - delete coupled set
= 1 - select coupled set
output arguments:
none
input arguments:
nce
(int,sc,in)
key
(int,sc,in)
c
c
c
output arguments:
ceinqr
(int,func,out)
= DB_SELECTED
=
=
=
=
=
=
=
2
3
4
11
16
21
-1
input arguments:
nce
c
c
c
c
c
c
c
c
c
c
output arguments:
ceget
(int,func,out)
ieqn
(int,ar(ceget+1),out)
ieqn(1:ceget)
ieqn(ceget+1)
250
deqn
(int,sc,in)
(dp,ar(ceget+1),out)
deqn(1:ceget) deqn(ceget+1) -
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
nce
(int,sc,in)
- constraint equation set number
n
(int,sc,in)
- number of degrees of freedom in set
ieqn
(int,ar(n+1),in) - integer info
ieqn(1:n) - node*32+dof for each dof in set
ieqn(n+1) - number of dof in set (copy of n above)
- negative means internal CE
deqn
(dp,ar(n+1),in)
- dp info
deqn(1:n) - coefficients of each dof in set
deqn(n+1) - constant term
output arguments:
none
input arguments:
ncei
(int,sc,in)
ksel
(int,sc,in)
output arguments:
none
- delete ce
input arguments:
node
(int,sc,in)
- node number for inquire.
key
(int,sc,in)
- key as to the information needed
= 1
- return constraint mask
= DB_MAXDEFINED,
DB_NUMDEFINED - return number of nodal constraints
NOTE: both DB_MAXDEFINED and
DB_NUMDEFINED produce the same
functionality
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
251
c
c
c
output arguments:
disiqr
(int,func,out)
output arguments:
disget
(int,func,out)
value
- status of constraint.
= 0 - no constraint on this node
for this DOF
= 4 - this node has a constraint
defined for this DOF
= -4 - this node has a pseudo-support
defined for this DOF
(dp,ar(4),out)
- constraint values
value(1-2) - (real,imag) values of present settings
value(3-4) - (real,imag) values of previous settings
input arguments:
node
(int,sc,in)
- node number
idf
(int,sc,in)
- reference number of DOF: (1-32)
UX = 1, UY = 2, UZ = 3, ROTX= 4, ROTY= 5, ROTZ= 6, AX = 7, AY = 8
AZ = 9, VX =10, VY =11, VZ =12
CONC=17
PRES=19, TEMP=20, VOLT=21, MAG =22, ENKE=23, ENDS=24
EMF =25, CURR=26
(missing entries are spares)
value
(dp,ar(2),in)
output arguments:
none.
252
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
node
(int,sc,in)
- node number.
idf
(int,sc,in)
- reference number of DOF: (1-32)
UX = 1, UY = 2, UZ = 3, ROTX= 4, ROTY= 5, ROTZ= 6, AX = 7, AY = 8
AZ = 9, VX =10, VY =11, VZ =12
CONC=17,
PRES=19, TEMP=20, VOLT=21, MAG =22, ENKE=23, ENDS=24
EMF =25, CURR=26
(missing entries are spares)
output arguments:
none.
input arguments:
node
(int,sc,in)
c
c
c
output arguments:
foriqr
(int,func,out)
key
(dp,sc,in)
input arguments:
inode
(int,sc,in)
c
c
c
c
c
c
c
output arguments:
forget
(int,func,out)
idf
value
(int,sc,in)
- status of constraint.
= 0 - no loading on this node for this DOF
= 4 - this node has a loading for this DOF
(dp,ar(4),out)
value(1-2) - (real,imag) values of present settings
value(3-4) - (real,imag) values of previous settings
253
input arguments:
node
(int,sc,in)
- node number
idf
(int,sc,in)
- reference number for the DOF: (1-32)
FX = 1, FY = 2, FZ = 3, MX = 4, MY = 5, MZ = 6, CSGX= 7, CSGY= 8
CSGZ= 9, VFX =10, VFY =11, VFZ =12
RATE=17
FLOW=19, HEAT=20, AMPS=21, FLUX=22, NPKE=23, NPDS=24
CURT=25, VLTG=26
(missing entries are spares)
value
(dp,ar(2),in)
output arguments:
none.
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
intent=in,out,inout
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
description
node
(int,sc,in)
- node number
idf
(int,sc,in)
- reference number for the DOF: (1-32)
FX = 1, FY = 2, FZ = 3, MX = 4, MY = 5, MZ = 6, CSGX= 7, CSGY= 8
CSGZ= 9, VFX =10, VFY =11, VFZ =12
RATE=17,
FLOW=19, HEAT=20, AMPS=21, FLUX=22, NPKE=23, NPDS=24
CURT=25, VLTG=26
(missing entries are spares)
c
c
output arguments:
none.
typ=int,dp,log,chr,dcp
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
node
(int,sc,in)
c
c
output arguments:
ndinqr
(int,func,out)
254
key
siz=sc,ar(n),func
(int,sc,in)
intent=in,out,inout
description
- node number
should be zero for key=2
- key for operation
= 1 - return temperature status
ntpiqr = 0 - node has no temperature
constraint defined
= 1 - node has a temperature
constraint defined
= 2 - return total number of nodal
temperatures defined in model
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
setting of key.
input arguments:
node
(int,sc,in)
c
c
c
c
c
output arguments:
ntpget
(int,func,out)
tmp
(dp,ar(2),out)
- node number
input arguments:
node
(int,sc,in)
temp
(dp ,sc,in)
output arguments:
- node number
- nodal temperature
none.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
255
typ=int,dp,log,chr,dcp
c
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
node
(int,sc,in)
c
c
c
output arguments:
nhgiqr
(int,func,out)
key
siz=sc,ar(n),func
intent=in,out,inout
description
- node number
should be 0 for key=2
(int,sc,in)
- key for operation
= 1 - return whether node has a heat generation rate
defined
nhgiqr = 0 - no heat generation defined for node
= 1 - heat generation is defined for node
= 2 - return total number of nodal heat generation
rates defined in model
typ=int,dp,log,chr,dcp
c
c
c
input arguments:
variable (typ,siz,intent)
node
(int,sc,in)
c
c
c
c
c
output arguments:
nhgget
(int,func,out)
hg
siz=sc,ar(n),func
(dp,ar(2),out)
intent=in,out,inout
description
- node number
input arguments:
node
(int,sc,in)
hg
(dp ,sc,in)
output arguments:
- node number
- nodal heat generation
none.
256
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
variable (typ,siz,intent)
node
(int,sc,in)
c
c
output arguments:
none.
description
- node number
typ=int,dp,log,chr,dcp
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
node
(int,sc,in)
c
c
c
output arguments:
nfuiqr
(int,func,out)
key
siz=sc,ar(n),func
intent=in,out,inout
description
- node number
should be zero for key=2
(int,sc,in)
- key for operation
= 1 - return status:
nfuiqr = 0 - node does not have a fluence constraint
= 1 - node has a fluence constraint
= 2 - return total number of nodal fluences defined on
model
input arguments:
node
(int,sc,in)
c
c
c
c
c
output arguments:
nfuget
(int,func,out)
fluen
(dp ,ar(2),out)
- node number
input arguments:
node
(int,sc,in)
fluen
(dp ,sc,in)
- node number
- nodal fluence
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
257
output arguments:
none.
typ=int,dp,log,chr,dcp
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
node
(int,sc,in)
c
c
c
output arguments:
ndciqr
(int,func,out)
key
siz=sc,ar(n),func
intent=in,out,inout
description
- node number
should be zero for key=2
(int,sc,in)
- key for operation
= 1 - return nodal current status:
ndciqr = 0 - no current density defined for this node
= 1 - node has a current density defined
= 2 - total number of nodal current densities defined
on model
input arguments:
node
(int,sc,in)
c
c
c
c
c
output arguments:
ndcget
(int,func,out)
258
currd
(dp,ar(4,2),out)
- node number
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
node
(int,sc,in)
currd
(dp ,ar(4),in)
output arguments:
- node number
- nodal current densities
none.
typ=int,dp,log,chr,dcp
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
node
(int,sc,in)
c
c
c
output arguments
nvdiqr
(int,func,out)
key
siz=sc,ar(n),func
intent=in,out,inout
description
- node number
should be zero for key=2
(int,sc,in)
- key for operation
= 1 - return magnetic virtual displacement status
nvdiqr = 0 - no mag. virt. disps defined for this node
= 1 - node has mag. virt. disps defined
= 2 - return total number of nodal magnetic virtual
displacements defined on model
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
259
input arguments:
node
(int,sc,in)
c
c
c
c
c
c
c
output arguments:
nvdget
(int,func,out)
virtd
(dp ,sc,out)
- node number
input arguments:
node
(int,sc,in)
virtd
(dp ,sc,in)
output arguments:
- node number
- nodal virtual displacement
none.
260
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
c
c
c
output arguments:
epriqr
(int,func,out)
iface
(int,sc,in)
key
(int,sc,in)
= 1
= 5
- element number
should be zero for key=DB_NUMDEFINED or
DB_MAXRECLENG
- face number for inquire (0-6)
face number is needed for key=5. for
other values of key, iface has different
meaning (see below)
- key as to the information needed
- return pressure mask for element
- return number of pressures for this
element face
= DB_NUMDEFINED,
= DB_MAXDEFINED - return value is based on setting of iface
NOTE: both DB_NUMDEFINED and
DB_MAXDEFINED produce the same
functionality
iface = 0 - return number of surface loads defined
= 1-6 - return number of pressure loads
defined for this element.
NOTE: only 1-6 is valid, but this
routine simply checks that iface is in
the range. The actual value of iface
does not matter in this case.
= DB_MAXRECLENG - return the maximum number of element
pressures on any element (max record
length)
input arguments:
elem
(int,sc,in)
c
c
c
c
c
c
c
output arguments:
eprget
(int,func,out)
iface
value
(int,sc,in)
(dp ,ar(*),out)
- status of element.
=-1 - element has no pressures
= 0 - this element face has no pressures
> 0 - number of values defined
- the element pressures (real,imag) at each
face
input arguments:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
261
ielem
iface
nval
value
(int,sc,in)
(int,sc,in)
(int,sc,in)
(dp ,ar(nval),in)
output arguments:
none.
input arguments:
ielem
(int,sc,in)
iface
(int,sc,in)
output arguments:
- element number
- face number
= 0 - delete all pressures on this
element
= 1-6 - delete pressure on this face
none.
input arguments:
ielem
(int,sc,in)
c
c
c
output arguments:
ecviqr
(int,func,out)
262
iface
(int,sc,in)
key
(int,sc,in)
= 1
= 5
= DB_NUMDEFINED,
= DB_MAXDEFINED - return value is based on setting of iface
NOTE: both DB_NUMDEFINED and
DB_MAXDEFINED produce the same
functionality
iface = 0 - return number of surface loads
defined (rec length)
= 1-6 - return number of convection loads
defined for this element.
NOTE: only 1-6 is valid, but this
routine simply checks that iface is in
the range. The actual value of iface
does not matter in this case.
= DB_MAXRECLENG - return the maximum number of convections
on any element (max rec length)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
elem
(int,sc,in)
iface
(int,sc,in)
c
c
c
c
c
c
c
c
output arguments:
ecvget
(int,func,out)
value
- element number
- face number (1-6)
(dp ,ar(*),out)
c
c
c
c
c
c
c
c
- status of element.
=-1 - element has no convections/heat
fluxes
= 0 - this element face has no
convections/heat fluxes
> 0 - number of values defined
- the element convections
NOTE: Two values at each node of an
element face: if loading is a convection,
the first first value is the film
coefficient and the second value is the
bulk temperature. If loading is a heat
flux, the first value is the heat flux,
and the second value is a large number
(2**100)
typ=int,dp,log,chr,dcp
siz=sc,ar(n),func
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
ielem
(int,sc,in)
iface
(int,sc,in)
nval
(int,sc,in)
value
(dp ,ar(nval),in)
intent=in,out,inout
description
- element number
- face number (1-6)
- number of values to put
- the element convections.
NOTE: Two values at each node of an
element face: if loading is a convection,
the first first value is the film
coefficient and the second value is the
bulk temperature. If loading is a heat
flux, the first value is the heat flux,
and the second value is a large number
(2**100)
output arguments:
none.
263
typ=int,dp,log,chr,dcp
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
ielem
(int,sc,in)
iface
(int,sc,in)
c
c
siz=sc,ar(n),func
intent=in,out,inout
output arguments:
none.
description
- element number.
- face number
= 0 - delete all convections on this
element
= 1-6 - delete convections on this face
input arguments:
ielem
(int,sc,in)
c
c
c
output arguments:
etpiqr
(int,func,out)
264
key
- element number
Should be 0 for key=11, DB_NUMDEFINED,
DB_MAXDEFINED, and DB_MAXRECLENG
(int,sc,in)
- information flag.
= DB_SELECTED
- return status:
etpiqr = 0 - element has no temperatures
= 1 - element has temperatures defined
= DB_NUMDEFINED - return number of temperatures defined for
this element (rec length)
= DB_MAXDEFINED - return number of temperatures defined in
model
= DB_MAXRECLENG - return maximum number of temperatures
defined for any element (max rec length)
= 2 - return length (dp words)
= 3 - return layer number (for cross reference files return
number of entities)
= 4 - return address of first data word
= 5 - return length (dp words)
= 6 - return compressed record number.
= 11 - return void percent (integer)
= 16 - return location of next record (this increments the
next record count)
= 18 - return type of file.
etpiqr = 0 - integer
= 1 - double precision
= 2 - real
= 3 - complex
= 4 - character*8
= 7 - index
= 19 - return virtual type of file.
etpiqr = 0 - fixed length (4.4 form)
= 1 - indexed variable length
(layer data)
= 2 - xref data tables
= 3 - bitmap data (for 32 data item packed
records)
= 4 - data tables (three dimensional arrays)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
c
output arguments:
etpget
(int,func,out)
c
c
tem
(dp,ar(n,2),out)
- element number
- status of element.
= 0 - this element has no element
temperatures
> 0 - number of element temperatures
retrieved
- the element temperatures (new,old).
c
c
c
input arguments:
ielem
(int,sc,in)
n
(int,sc,in)
temp
(dp ,ar(n),in)
c
c
c
c
output arguments:
- element number
- number of element temperature values
- element temperatures.
none.
NOTE: If a value is not defined (i.e.,
defaults to TUNIF), a very small
number should be used (2**-100)
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
none.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
265
input arguments:
ielem
(int,sc,in)
c
c
c
output arguments:
ehgiqr
(int,func,out)
key
- element number
should be 0 for key=11, DB_NUMDEFINED,
DB_MAXDEFINED, and DB_MAXRECLENG
(int,sc,in)
- information flag.
= DB_SELECTED
- return status:
ehgiqr = 0 - heat generation is undefined
= 1 - heat generation is defined
= DB_NUMDEFINED - return number of defined heat generations
in model
= DB_MAXRECLENG - return maximum number of heat generations
on any element (max rec length)
= 2 - return length (dp words)
= 3 - return layer number (for cross reference files return
number of entities)
= 4 - return address of first data word
= 5 - return length (record type units)
= 6 - return compressed record number.
= 11 - return void percent (integer)
= 16 - return location of next record (this increments the
next record count)
= 18 - return type of file.
ehgiqr = 0 - integer
= 1 - double precision
= 2 - real
= 3 - complex
= 4 - character*8
= 7 - index
= 19 - return virtual type of file.
ehgiqr = 0 - fixed length (4.4 form)
= 1 - indexed variable length
(layer data)
= 2 - xref data tables
= 3 - bitmap data (for 32 data
item packed records)
= 4 - data tables (three
dimensional arrays)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
output arguments:
ehgget
(int,func,out)
266
- element number
- status of element.
= 0 - heat generations undefined for this
element
> 0 - number of heat generations defined
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
qgen
(dp ,ar(*),out)
input arguments:
ielem
(int,sc,in)
n
(int,sc,in)
qgen
(dp ,ar(n),in)
c
c
c
output arguments:
- element number
- number of element heat generation values
- element heat generations
none
NOTE: If a value is not defined, a very
small number should be used (2**-100)
typ=int,dp,log,chr,dcp
c
c
c
input arguments:
variable (typ,siz,intent)
ielem
(int,sc,in)
c
c
siz=sc,ar(n),func
intent=in,out,inout
output arguments:
none
description
- element number
input arguments:
ielem
(int,sc,in)
- element number or zero (see below)
key
(int,sc,in)
- key as to the information needed
= 1 or DB_MAXRECLENG - return element fluences info
for ielem > 0 - return number of fluences for this
element (record length)
= 0 - return maximum number of fluences
defined for any element
(max rec length)
= DB_NUMDEFINED,
= DB_MAXDEFINED - return number of defined fluences
in model
NOTE: both DB_NUMDEFINED and DB_MAXDEFINED
produce the same functionality
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
267
output arguments:
efuiqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
output arguments:
efuget
(int,func,out)
value
(dp,ar(*),out)
c
c
- element number
- status of element.
= 0 - element has no fluences defined
> 0 - number of element fluences defined
- element fluences.
NOTE: If a value is not defined, it will
be a very small number (2**-100)
input arguments:
ielem
(int,sc,in)
n
(int,sc,in)
value
(dp,ar(n),in)
output arguments:
- element number
- the number of values to store
- element fluences.
none
c
c
variable (typ,siz,intent)
ielem
(int,sc,in)
output arguments:
268
description
- element number
none
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
- element number or zero (see below)
key
(int,sc,in)
- key as to the information needed
= 1 or DB_MAXRECLENG - return element densities info
for ielem > 0 - number of current densities for this
element (rec length)
= 0 - maximum number of current densities
defined for any element
(max rec length)
= DB_NUMDEFINED,
= DB_MAXDEFINED - return total number of current densities
defined in model
NOTE: both DB_NUMDEFINED and DB_MAXDEFINED
produce the same functionality
c
c
c
output arguments:
edciqr
(int,func,out)
typ=int,dp,log,chr,dcp
c
c
ielem
(int,sc,in)
output arguments:
c
c
c
c
c
value
siz=sc,ar(n),func
(dp,ar(*),out)
c
c
intent=in,out,inout
- element number
input arguments:
ielem
(int,sc,in)
n
(int,sc,in)
value
(dp,ar(n),in)
c
c
c
output arguments:
none
- element number
- the number of current densities to store
- element current densities
269
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
none
input arguments:
ielem
(int,sc,in)
- element number or zero (see below)
key
(int,sc,in)
- key as to the information needed
= 1 or DB_MAXRECLENG - return element virt disps info
for ielem > 0 - number of virt disps defined for this
element (rec length)
= 0 - maximum number of virt disps defined
for any element (max rec length)
= DB_NUMDEFINED,
= DB_MAXDEFINED - return total number of virt disps defined
in model
NOTE: both DB_NUMDEFINED and DB_MAXDEFINED
produce the same functionality
c
c
c
output arguments:
evdiqr
(int,func,out)
270
input arguments:
ielem
(int,sc,in)
output arguments:
evdget
(int,func,out)
value
(dp,ar(*),out)
- element number
- status of element.
= 0 - no virt disps defined for this
element
> 0 - number of element virtual
displacements
- element virtual displacements
NOTE: If a value is not defined, it will
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
n
(int,sc,in)
value
(dp,ar(n),in)
c
c
c
output arguments:
- element number
- the total number of values
- element virtual displacments
none
NOTE: If a value is not defined, a very
small number should be used (2**-100)
input arguments:
ielem
(int,sc,in)
c
c
c
output arguments:
eimiqr
(int,func,out)
iface
(int,sc,in)
key
(int,sc,in)
= 1
= 5
= DB_NUMDEFINED,
= DB_MAXDEFINED - return value is based on setting of iface
NOTE: both DB_NUMDEFINED and
DB_MAXDEFINED produce the same
functionality
iface = 0 - return number of surface loads defined
in model
= 1-6 - return number of pressure loads
defined for this element. (rec length)
NOTE: only 1-6 is valid, but this
routine simply checks that iface is in
the range. The actual value of iface
does not matter in this case.
= DB_MAXRECLENG - return the maximum number of element
impedences defined for any element
(max rec length)
271
input arguments:
ielem
(int,sc,in)
iface
(int,sc,in)
c
c
c
c
c
c
output arguments:
eimget
(int,func,out)
value
(dp ,ar(*),out)
- element number
- face number (1-6)
- status of element.
=-1 - element has no impedances
= 0 - this element face has no impedances
> 0 - number of values defined
- the element impedances (real,imag)
input arguments:
ielem
(int,sc,in)
iface
(int,sc,in)
nval
(int,sc,in)
value
(dp ,ar(nval),in)
output arguments:
element number
face number (1-6)
number of values to put
the element impedances (real,imag)
none
input arguments:
ielem
(int,sc,in)
iface
(int,sc,in)
output arguments:
- element number
- face number
= 0 - delete all impedances on this
element
= 1-6 - delete impedance on this face
none
272
input arguments:
ielem
(int,sc,in)
key
(int,sc,in)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
output arguments:
esfget
(int,func,out)
value
(dp,ar(*),out)
- element number
- status of element.
= 0 - element undefined
> 0 - number of values returned
- element surface stress data.
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
output arguments:
value
(dp,ar(nval),in)
- element number
- the total number of values
(19 * number of stress faces)
There is a max of 2 stress faces
- the values
none
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
273
input arguments:
ielem
(int,sc,in)
iface
(int,sc,in)
output arguments:
- element number
- face number
= 0 - all flagged surfaces
= 1-6 - this flagged surface
none.
input arguments:
ielem
(int,sc,in)
iface
(int,sc,in)
c
c
c
c
c
c
output arguments:
efsget
(int,func,out)
value
(dp ,ar(*),out)
- element number
- face number (1-6)
- status of element.
=-1 - no values for this element
= 0 - zero flagged surfaces defined
> 0 - number of values defined
- the element flagged surfaces
274
input arguments:
ielem
(int,sc,in)
iface
(int,sc,in)
key
(int,sc,in)
= 1
= 5
= DB_NUMDEFINED,
= DB_MAXDEFINED - return value is based on setting of iface
NOTE: both DB_NUMDEFINED and
DB_MAXDEFINED produce the same
functionality
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
iface
(int,sc,in)
nval
(int,sc,in)
value
(dp ,ar(nval),in)
output arguments:
element number
face number (1-6)
number of values to put
the element flagged surface values
none.
input arguments:
node
(int,sc,in)
c
c
c
output arguments:
dspiqr
(int,func,out)
key
(int,sc,in)
- node number
> 0 - return result mask at this node
= 0 - return number of calculated
displacements in model
- key as to the information needed
At this time, key should always = 1
275
c
c
c
c
c
c
c
c
c
c
c
input arguments:
node
(int,sc,in)
- node number
ndf
(int,sc,in)
- number of results requested
idf
(int,ary(ndf),in) - reference number for the DOF:
UX = 1, UY = 2, UZ = 3, ROTX= 4, ROTY= 5, ROTZ= 6, AX = 7,
AZ = 9, VX =10, VY =11, VZ =12
CONC=17
PRES=19, TEMP=20, VOLT=21, MAG =22, ENKE=23,
EMF =25, CURR=26 SP01=27, SP02=28, SP03=29, SP04=30, SP05=31,
(missing entries are spares)
output arguments:
value
(dp,ar(ndf),out)
(1-32)
AY = 8
ENDS=24
SP06=32
- result values
input arguments:
node
(int,sc,in)
ndf
(int,sc,in)
idf
(int,ary(ndf),in)
value
(dp,ar(ndf),in)
output arguments:
- node number
- number of results to be stored
- reference number for the DOF: (1-32)
- displacement values
none
input arguments:
node
(int,sc,in)
output arguments:
276
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about misc summed data records
ielem > 0 - return number of misc summed
data items for this element
(record length)
= 0 - return maximum number of misc
summed data items on any
element (max record length)
= DB_NUMDEFINED - return total number of misc summed data
items defined in model
c
c
c
output arguments:
emsiqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
output arguments:
emsget
(int,func,out)
value
(dp,ar(*),out)
c
c
- element number
- status of element.
= 0 - element is undefined
> 0 - number of data items returned
- element misc summed data.
NOTE: the contents of this record is element
dependent. See SMISC on ETABLE command
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
value
(dp,ar(nval),in)
c
c
c
output arguements:
- element number
- number of values to be stored
- the misc summed data values
none
NOTE: the contents of this record is element
dependent. See SMISC on ETABLE command
277
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete data for all defined elements
none
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about element nodal forces
ielem > 0 - return number of element nodal
forces for this element
(record length)
= 0 - return maximum number of element
nodal forces on any element
(max record length)
= DB_NUMDEFINED - return total number of element nodal
forces defined in model
c
c
c
output arguments:
enfiqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
output arguments:
enfget
(int,func,out)
value
(dp,ar(*),out)
- element number
- status of element.
= 0 - element has no nodal forces
> 0 - number of nodal forces returned
- element nodal forces
278
input arguments:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ielem
nval
value
(int,sc,in)
(int,sc,in)
(dp,ar(nval),in)
output arguments:
- element number
- the total number of values
NOTE: There may be a maximum of 3 sets of
nodal forces in the record: static
forces, inertia forces, and damping forces
- nodal force results
none
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about element nodal stresses
ielem > 0 - return number of element nodal
stresses for this element
(record length)
= 0 - return maximum number of element
nodal stresses on any element
(max record length)
= DB_NUMDEFINED - return total number of element
nodal stresses defined in model
c
c
c
output arguments:
ensiqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
- element number
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
279
output arguments:
ensget
(int,func,out)
value
- status of element.
= 0 - element undefined
> 0 - number of nodal stresses
returned
- element nodal stresses
(dp,ar(*),out)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
output arguments:
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
280
value
(dp,ar(nval),in)
- element number
- the total number of values
(11*nnod*nface)
- the stress values
none
NOTE: Stresses at each corner node in the order
X, Y, Z, XY, YZ, XZ, S1, S2, S3, SI, SE
For solid elements, stresses at each
corner node
For shell elements, stresses at each
corner node (first top surface, then
bottom)
For layered elements (w/KEYOPT(8)=0),
stresses for "first" layer at each
corner node (first at the bottom
surface of the bottom layer, then the
top surface of the top layer).
Stresses for "second" layer at each
corner node (first the bottom surface,
then the top surface for the layer with
the largest failure criteria).
The second layer is not present if
failure criteria were not used or are
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
not appropriate
For layered elements (w/KEYOPT(8)=1),
stresses for each layer at each corner
node (first at the bottom surface, then
the top surface)
For beam elements, the contents of this
record is element depenent. See LS
item of ETABLE command.
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about element energies
ielem > 0 - return number of element energies on
this element (rec length)
= 0 - return maximum number of element
energies on any element
(max rec length)
= DB_NUMDEFINED - return the number of element energies
defined in model
c
c
c
output arguments:
engiqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
- element number
c
c
output arguments:
engget
(int,func,out)
- status of element.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
281
= 0 - element undefined
= 11 - energies returned
value
(dp,ar(6),out)
value(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10-11)
=
=
=
=
=
=
=
=
=
=
volume of element
strain energy
dissipation energy
kinetic energy
plastic energy
creep energy
stabilization energy
strain energy density
thermal energy
spares
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
output arguments:
value
- element number
- the total number of values to be stored
Must be 11!
(dp,ar(6),in)
- volume and energies
value(1) = volume of element
(2) = strain energy
(3) = dissipation energy
(4) = kinetic energy
(5) = plastic energy
(6) = creep energy
(7) = stabilization energy
(8) = spares
(9) = thermal energy
(10-11) = spares
none
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
282
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about nodal gradients
for ielem > 0 - return number of nodal gradients on
this element (record length)
= 0 - return maximum number of nodal
gradients on any element
(maximum record length)
= DB_NUMDEFINED - return the number of nodal gradients defined
in model
c
c
c
output arguments:
egriqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
egrget
(int,func,out)
value
(dp,ar(*),out)
c
c
c
c
- element number
- status of element.
= 0 - element undefined
> 0 - number of nodal gradients
returned
- element nodal gradients
Note: If a coupled field, a set of
gradients are stored in the following
order (as available): fluid, thermal,
electric, magnetic
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
value
(dp,ar(nval),in)
- element number
- the total number of values
(ndir*nnod*nscalr)
- the gradient values
Note: If a coupled field, a set of
gradients are stored in the following
order (as appropriate): fluid, thermal,
electric, magnetic
output arguments:
none
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
283
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about elastic strains
ielem > 0 - return number of nodal elasic strains
on this element (rec length)
= 0 - return maximum number of nodal elastic
strains on any element
(max rec length)
= DB_NUMDEFINED - return the number of nodal elastic strains
defined in model
c
c
c
output arguments:
eeliqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
eelget
(int,func,out)
c
c
c
c
c
284
value
- element number
(dp,ar(*),out)
- status of element.
= 0 - element undefined
> 0 - number of nodal elastic strains
returned
- element nodal elastic strains
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
output arguments:
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
value
(dp,ar(nval),in)
- element number
- the total number of values
(7*nnod*nface)
- nval strain values
none
NOTE: Strains at each corner node in the order
X, Y, Z, XY, YZ, XZ, EQV
For solid elements, strains at each
corner node
For shell elements, strains at each
corner node (first top durface, then
bottom)
For layered elements (w/KEYOPT(8)=0),
strains for "first" layer at each
corner node (first at the bottom
surface of the bottom layer, then the
top surface of the top layer).
Strains for "second" layer at each
corner node (first the bottom surface,
then the top surface for the layer with
the largest failure criteria).
The second layer is not present if
failure criteria were not used or are
not appropriate
For layered elements (w/KEYOPT(8)=1),
strains for each layer at each corner
node (first at the bottom surface, then
the top surface)
For beam elements, the contents of this
record is element depenent. See LEPEL
item of ETABLE command.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
285
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about plastic strains
ielem > 0 - return number of nodal plastic strains
on this element
(record length)
= 0 - return maximum number of nodal plastic
strains on any element
(max record length)
= DB_NUMDEFINED - return the number of nodal plastic strains
defined in model
c
c
c
output arguments:
epliqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
eplget
(int,func,out)
c
c
c
c
286
value
- element number
(dp,ar(*),out)
- status of element.
= 0 - element undefined
> 0 - number of nodal plastic strains
returned
- element nodal plastic strains
NOTE: Strains at each corner node in the order
X, Y, Z, XY, YZ, XZ
For solid elements, strains at each
corner node
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
value
(dp,ar(nval),in)
- element number
- the total number of values
(6*nnod*nface)
- the strain values
none
NOTE: Strains at each corner node in the order
X, Y, Z, XY, YZ, XZ
For solid elements, strains at each
corner node
For shell elements, strains at each
corner node (first top durface, then
bottom)
For layered elements (w/KEYOPT(8)=0),
strains for "first" layer at each
corner node (first at the bottom
surface of the bottom layer, then the
top surface of the top layer).
Strains for "second" layer at each
corner node (first the bottom surface,
then the top surface for the layer with
the largest failure criteria).
The second layer is not present if
failure criteria were not used or are
not appropriate
For layered elements (w/KEYOPT(8)=1),
strains for each layer at each corner
node (first at the bottom surface, then
the top surface)
For beam elements, the contents of this
record is element depenent. See LEPPL
item of ETABLE command.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
287
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about creep strains
ielem > 0 - return number of nodal creep strains
on this element
(record length)
= 0 - return maximum number of nodal creep
strains on any element
(max record length)
= DB_NUMDEFINED - return the number of nodal creep strains
defined in model
c
c
c
output arguments:
ecriqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
ecrget
(int,func,out)
c
c
c
c
c
288
value
- element number
(dp,ar(*),out)
- status of element.
= 0 - element undefined
> 0 - number of nodal creep strains
returned
- element nodal creep strains
NOTE: Strains at each corner node in the order
X, Y, Z, XY, YZ, XZ
For solid elements, strains at each
corner node
For shell elements, strains at each
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
value
(dp,ar(nval),in)
- element number
- the total number of values
(6*nnod*nface)
- the strain values
none
NOTE: Strains at each corner node in the order
X, Y, Z, XY, YZ, XZ
For solid elements, strains at each
corner node
For shell elements, strains at each
corner node (first top durface, then
bottom)
For layered elements (w/KEYOPT(8)=0),
strains for "first" layer at each
corner node (first at the bottom
surface of the bottom layer, then the
top surface of the top layer).
Strains for "second" layer at each
corner node (first the bottom surface,
then the top surface for the layer with
the largest failure criteria).
The second layer is not present if
failure criteria were not used or are
not appropriate
For layered elements (w/KEYOPT(8)=1),
strains for each layer at each corner
node (first at the bottom surface, then
the top surface)
For beam elements, the contents of this
record is element depenent. See LEPCR
item of ETABLE command.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
289
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about thermal strains
ielem > 0 - return number of nodal thermal strains
on this element
(record length)
= 0 - return maximum number of nodal thermal
strains on any element
(max record length)
= DB_NUMDEFINED - return the number of nodal thermal strains
defined in model
c
c
c
output arguments:
ethiqr
(int,sc,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
ethget
(int,func,out)
c
c
c
c
c
290
value
- element number
(dp,ar(*),out)
- status of element.
= 0 - element undefined
> 0 - number of nodal thermal strains
returned
- element nodal thermal strains
NOTE: Strains at each corner node in the order
X, Y, Z, XY, YZ, XZ, epswel
For solid elements, strains at each
corner node
For shell elements, strains at each
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
output arguments:
value
(dp,ar(nval),in)
- element number
- the total number of values
(7*nnod*nface)
- the strain values
none
NOTE: Strains at each corner node in the order
X, Y, Z, XY, YZ, XZ, epswel
For solid elements, strains at each
corner node
For shell elements, strains at each
corner node (first top durface, then
bottom)
For layered elements (w/KEYOPT(8)=0),
strains for "first" layer at each
corner node (first at the bottom
surface of the bottom layer, then the
top surface of the top layer).
Strains for "second" layer at each
corner node (first the bottom surface,
then the top surface for the layer with
the largest failure criteria).
The second layer is not present if
failure criteria were not used or are
not appropriate
For layered elements (w/KEYOPT(8)=1),
strains for each layer at each corner
node (first at the bottom surface, then
the top surface)
For beam elements, the contents of this
record is element depenent. See LEPTH
item of ETABLE command.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
291
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about element euler angles
ielem > 0 - return number of euler angles on this
element
(record length)
= 0 - return maximum number of euler angles
on any element
(max record length)
= DB_NUMDEFINED - return the number of element euler angles
defined in model
c
c
c
output arguments:
euliqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
eulget
(int,func,out)
c
c
c
c
292
value
(dp,ar(*),out)
- element number
- status of element.
= 0 - element undefined
> 0 - number of euler angle values
returned
- element euler angles
NOTE: For lower-ordered elements, rotations
at centroid
For higher-ordered elements, rotations
at each corner node
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
c
c
c
c
c
c
c
c
c
c
c
output arguments:
value
(dp,ar(nval),in)
- element number
- the total number of values
(3 * number of display nodes)
- the euler angle values
none
NOTE: For lower-ordered elements, rotations
at centroid
For higher-ordered elements, rotations
at each corner node
For layered shells, rotations at each
corner node, plus layer rotation angle
for each layer (real constant THETA)
For layered solids, rotation angles at
centroid, plus layer rotation angle
for each layer (real constant THETA)
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about element fluxes
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
293
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
output arguments:
efxget
(int,func,out)
value
(dp,ar(*),out)
c
c
c
c
- element number
- status of element.
= 0 - element undefined
> 0 - number of nodal fluxes returned
- element nodal fluxes
Note: If a coupled field, a set of fluxes is
stored in the following order (as
available): fluid, thermal,
electric, magnetic
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
c
c
c
c
c
output arguments:
value
(dp,ar(nval),in)
- element number
- the total number of values
(ndir*nnod*nscalr)
- the flux values
none
Note: If a coupled field, a set of fluxes is
stored in the following order (as
available): fluid, thermal,
electric, magnetic
294
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about element local forces
ielem > 0 - return number of local forces on this
element
(record length)
= 0 - return maximum number of local forces
on any element
(max record length)
= DB_NUMDEFINED - return the number of element local forces
defined in model
c
c
c
output arguments:
elfiqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
output arguments:
elfget
(int,func,out)
value
(dp,ar(*),out)
- element number
- status of element.
= 0 - element has no local nodal forces
> 0 - number of nodal forces returned
- element local nodal forces.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
295
input arguments:
variable (typ,siz,intent)
ielem
(int,sc,in)
nval
(int,sc,in)
output arguments:
value
(dp,ar(nval),in)
description
- element number
- the total number of values
NOTE: There may be a maximum of 3 sets of
nodal forces in the record: static
forces, inertia forces, and damping forces
- element local nodal forces
none
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about element misc non-summed data
ielem > 0 - return number of data items on this
element
(record length)
= 0 - return maximum number of data items
on any element
(max record length)
= DB_NUMDEFINED - return the number of element misc non-summed
data items defined in model
c
c
c
output arguments:
emniqr
(int,func,out)
296
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
emnget
(int,func,out)
value
(dp,ar(*),out)
c
c
- element number
- status of element.
= 0 - no non-summed misc data at this
element
> 0 - number of data items returned
- element misc non-summed data.
NOTE: the contents of this record is element
dependent. See NMISC on ETABLE command
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
value
(dp,ar(nval),in)
c
c
c
output arguments:
- element number
- the total number of values
- the misc. non-summed data items
none
NOTE: the contents of this record is element
dependent. See NMISC on ETABLE command
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
key
(int,sc,in)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
297
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
ecdget
(int,func,out)
value
(dp,ar(*),out)
c
c
- element number
- status of element.
= 0 - element has no current densities
> 0 - number of calculated element
current densities
- calculated element current densities.
NOTE: current densities are in the order
X, Y, Z
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
value
(dp,ar(nval),in)
c
c
c
output arguments:
- element number
- the total number of values
- calculated element current densities.
none
NOTE: current densities are in the order
X, Y, Z
298
input arguments:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about element nonlinear tables
ielem > 0 - return number of nonlinear tables for
this element
(record length)
= 0 - return maximum number of nonlinear
tables for any element
(max record length)
= DB_NUMDEFINED - return the number of element nonlinear
tables defined in model
c
c
c
output arguments:
enliqr
(int,func,out)
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
output arguments:
enlget
(int,func,out)
c
c
c
c
c
c
c
value
(dp ,ar(n),out)
- element number
- status of element.
= 0 - nonlinear tables undefined
> 0 - number of nonlinear tables defined
- the element nonlinear tables.
NOTE: Nonlinear data at each node are in the
order SEPL, SRAT, HPRES, EPEQ, PSV,
PLWK, and 4 spares
For beam elements, the contents and
number of information is element
dependent. See NLIN on ETABLE
command
299
c
c
c
c
input arguments:
ielem
(int,sc,in)
n
(int,sc,in)
temp
(dp ,ar(6),in)
c
c
c
c
c
c
c
c
output arguments:
- element number
- number of element nonlinear table values
- element nonlinear table,etc.
none.
NOTE: Nonlinear data at each node are in the
order SEPL, SRAT, HPRES, EPEQ, PSV,
PLWK, and 4 spares
For beam elements, the contents and
number of information is element
dependent. See NLIN on ETABLE
command
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
input arguments:
ielem
(int,sc,in)
- element number (or zero, see below)
key
(int,sc,in)
- key as to the information needed
= 1 - return info about calculated element heat gens
for ielem > 0 - return number of heat gens for
this element
(record length)
= 0 - return maximum number of heat gens
for any element
(max record length)
= DB_NUMDEFINED - return the number of calculated element heat
generations defined in model
c
c
c
output arguments:
ehciqr
(int,func,out)
300
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
input arguments:
ielem
(int,sc,in)
c
c
c
c
c
c
output arguments:
ehcget
(int,func,out)
value
(dp,ar(*),out)
- element number
- status of element.
= 0 - element undefined
> 0 - number of calculated element
heat generations
- calculated element heat generations.
input arguments:
ielem
(int,sc,in)
nval
(int,sc,in)
value
(dp,ar(nval),in)
output arguments:
- element number
- the total number of values
- calculated element heat generations.
none
input arguments:
ielem
(int,sc,in)
output arguments:
- element number
= 0 - delete for all defined elements
none.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
301
302
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
303
c !!! NOTICE to progammers: this routine does not convert from a !!!
c !!! machine-independent format! Use dpexttoch if this dp word !!!
c !!! came from a common or non-char database record
!!!
c
c
input arguments:
dp8
(dp,sc,in)
c
c
output arguments:
ch8
(ch*8,sc,out)
siz=sc,ar(n),func
cwa
intent=in,out,inout
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
variable (typ,siz,intent)
description
wrcom name
key
(int,sc,in)
= WR_PRINT
- print flag (kprint)
prtkey
wrinqr = 0 - no output
= 1 - print
= WR_OUTPUT
- current output unit number(iott) outfil
= WR_MASTEROUT
- master output file
frstot
= WR_COLINTER
- interactive columns per page
intcol
= WR_COLBATCH
- batch columns per page
batcol
= WR_LINEINTER
- interactive lines per page
intlin
= WR_LINEBATCH
- batch lines per page
batlin
= WR_COMMASEP
- 1 for comma separated output
CommaSep
= WR_CHARITEM
- characters per output item
chrper
= WR_CHARDECIMAL - characters past decimal
chrdec
= WR_CHARINTEGER - characters in leading integer
chrint
= WR_CHARTYPE
chrtyp
wrinqr = 1 - using E format in output
= 2 - using F format in output
= 3 - using G format in output
= WR_SUPTITLE
- tlabel supress key
keyhed
= WR_SUPSUBTITLE - subtitle supress key
keytit
= WR_SUPLSITER
- ls,iter id supress key
keyid
= WR_NOTELINE
- note line supress key
keynot
= WR_SUPCOLHEADER - column header supress key
keylab
= WR_SUPCOLMAX
- column maximum supress key
keysum
= WR_LISTOPT
- ListOpt from /output command
ListOpt
c
c
output arguments:
wrinqr
(int,func,out)
304
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
General Subroutines
c input arguments:
c
key
(int,sc,in)
- item to be returned
c
1=keyerr, 2=errfil,
3=numnot, 4=numwrn,
c
5=numerr, 6=numfat,
7=maxmsg, 8=lvlerr,
c
9=mxpcmd, 10=nercmd, 11=nertim,12=nomore,
c
13=eropen,14=ikserr, 15=kystat,16=mxr4r5,
c
17=mshkey,
19=opterr,20=flowrn,
c
22=noreport,23=pdserr,24=mxpcmdw
c
25=kystop,26=icloads, 27=ifkey
c
c ---- below definitions copied from errcom 7/92 for user information
c
c
*** key number= ..........................
c
(see ansysdef for parameter definitions)
|
c
\/
c
co keyerr - master error flag
(ER_ERRORFLAG)
co errfil - errors file unit number
(ER_ERRORFILE)
co numnot - total number of notes displayed
(ER_NUMNOTE)
co numwrn - total number of warnings displayed
(ER_NUMWARNING)
co numerr - total number of errors displayed
(ER_NUMERROR)
co numfat - total number of fatals displayed
(ER_NUMFATAL)
co maxmsg - max allowed number of displayed messages before abort(ER_MAXMESSAGE)
co lvlerr - used basicly in solution (from cnvr command.)
(ER_ERRORLEVEL)
co
-1=do not set keyerr for notes/errors/warnings.
co
-2=same as -1 but do not display message either.
co mxpcmd - maximum number of messages allowed per command
(ER_MAXCOMMAND)
co nercmd - number of messages displayed for any one command
(ER_NUMCOMMAND)
co nertim - key as to how message cleared from u/i pop-up
(ER_UICLEAR)
co
(as per rsg/pft 5/1/92 - only for "info" calls
co
-1=message is timed before removal
co
0=message needs pick or keyboard before removal
co
1=message stays up untill replaced by another message
co nomore
display any more messages
(ER_NOMOREMSG)
co
0=display messages
co
1=display discontinue message and stop displaying
co eropen - 0=errors file is closed
(ER_FILEOPEN)
co
1=errors file is opened
co ikserr - 0=if interactive do not set keyerr
(ER_INTERERROR)
c
- 1=if interactive set keyerr (used by mesher and tessalation)
co kystat - flag to bypass keyopt tests in the elcxx routines
(ER_KEYOPTTEST)
c
associated with status/panel info inquiries.
c
0=do not bypass keyopt tests
c
1=perform all keyopt tests
c
also flag to bypass setting of _STATUS upon resume
co mxr4r5 - mixed rev4-rev5 input logic (*do,*if,*go,*if-go)
(ER_MIXEDREV)
c
(used in chkmix called from rdmac)
c
1=rev5 found (*do,*fi-then-*endif)
c
2=rev4 found (*go,:xxx,*if,....,:xxx)
c
3=warning printed. do not issue any more.
co mshkey - cpu intensive meshing etc. this will cause
(ER_MESHING)
c
"nertim (11)" to be set to -1 for "notes", 1 for "warnings",
c
and 0 for "errors". checking of this key is done in "anserr".
c
0=not meshing or cpu intensive
c
1=yes, meshing or cpu intensive
co syerro - systop error code. read by anserr if set.
(18)
co opterr - 0=no error in main ansys during opt looping
(ER_OPTLOOPING)
c
1=an error has happened in main ansys during opt looping
co flowrn - flag used by "floqa" as to list floqa.ans
(20)
c
0=list "floqa.ans"
c
1="floqa.ans" has been listed. do not list again.
co noreport- used in GUI for turning off errors due to strsub calls (22)
c
0=process errors as usual
c
1=do NOT report errors
co pdserr - 0=no error in main ansys during pds looping
(ER_PDSLOOPING)
c
1=an error has happened in main ansys during pds looping
co mxpcmdw- number of messages written to file.err for any one
(24)
co
command
c
0=write all errors to file.err
c
1=only write displayed errors to file.err
co icloads - key to forbid the iclist command from listing solution
(26)
c
data instead of the input data.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
305
input arguments:
sub32
(char*(*),sc,in)
output arguments:
none
input arguments:
sub32
(char*(*),sc,in)
output arguments:
none
(filein,msgid,msglvl,lngstrng,dperr,cherr)
Display ANSYS error messages
306
input arguments:
In order to make life for vismg easier,
do NOT use variables for the first four arguments
filein
(ch*40,sc,in)
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
General Subroutines
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
(int,sc,in)
end
the
end
of
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
307
(dp,sc,in)
(dp,ar(*),in)
(dp,ar(*),in)
(int,sc,in)
output arguments:
yval
(dp,sc,out)
kyoff
(int,sc,out)
308
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Vector Functions
c
c
c
c
c
c
c
c
c
c
c
c
17
18
21
25
30
31
none
input arguments:
v1
(dp,ar(n),in)
v2
(dp,ar(n),in)
n
(int,sc,in)
- vector v1
- vector v2
- length of vectors v1 and v2
c
c
output arguments:
vdot
(dp,sc,out)
4.3.2. vidot Function (Computing the Dot Product of Two Vectors with Increments)
*deck,vidot
function vidot (v1,inc1,v2,inc2,n)
c *** primary function: compute the dot product of vectors v1 and v2
c *** Notice - This file contains ANSYS Confidential information ***
c
c
---- inc1 and inc2 must be positive!
c
input arguments:
va
(dp,ar(n),in)
n
(int,sc,in)
- vector va
- length of vector va
c
c
output arguments:
vsum
(dp,sc,out)
- vector sum
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
309
4.3.4. vmax Function (Retrieving the Maximum Vector Value at a Given Location)
*deck,vmax
function vmax (v,n,locmax)
c *** primary function: get the biggest value and location in v
c *** Notice - This file contains ANSYS Confidential information ***
4.3.5. lastv Function (Retrieving the Position of the Last Nonzero Term in a
Double Precision Vector)
*deck,lastv
function lastv (v,n)
c ********* find position of last non-zero term in a d.p. vector *********
**********
**********
310
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Vector Functions
4.3.16. vamb Subroutine (Gets a Third Vector by Subtracting One Vector from
Another)
*deck,vamb
subroutine vamb (a,b,c,n)
c *** primary function: subtract vector b from vector a to get vector c
c *** Notice - This file contains ANSYS Confidential information ***
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
311
typ=int,dp,log,chr,dcp
siz=sc,ar(n)
intent=in,out,inout
c
c
c
input arguments:
a
(dp,ar(3),in)
b
(dp,ar(3),in)
c
c
c
c
output arguments:
c
(dp,ar(3),out)
- resulting vector
input arguments:
iel
(int,sc,inout)
v
(dp,ar(3),inout)
- element number
- vector to be normalized
c
c
c
output arguments:
iel
(int,sc,inout)
v
(dp,ar(3),inout)
312
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Matrix Subroutines
subroutine vnorm (v,n)
c *** primary function: normalize a vector to unit length
c *** Notice - This file contains ANSYS Confidential information ***
c
c
c
input arguments:
v
(dp,ar(n),inout)
n
(int,sc,inout)
- vector v
- dimension length of vector v
c
c
c
output arguments:
v
(dp,ar(n),inout)
n
(int,sc,inout)
- normalized vector v
- n = 0 if error in operation
input arguments:
node
(int,sc,in)
c
c
c
c
c
c
output arguments:
ndgxyz
(int,sc,out)
xyz
(dp,ar(3),out)
- status of node.
0=node is undefined.
-1=node is unselected.
1=node is selected.
- vector containing x,y,z
input arguments:
node
(int,sc,in)
xyz
(dp,ar(3),in)
output arguments:
none
input arguments:
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
313
a
v
nr
nc
(dp,ar(nr,*),in)
(dp,ar(*),in)
(int,sc,in)
(int,sc,in)
matrix
vector
number
number
a
v
of rows in matrix a
of columns to multiply in matrix a
c output arguments:
c
w
(dp,ar(*),out)
- product vector w
c
c *** mpg w = A v : A(nr,nc) : matrix vector product
c
input arguments:
a
(dp,ar(nr,nc),in) - matrix a
v
(dp,ar(nc),inout) - vector v
nr
(int,sc,in)
- number of rows in matrix a
*** nr limited to 60 ***
nc
(int,sc,in)
- number of columns to multiply in matrix a
c output arguments:
c
v
(dp,ar(nr),inout) - product, stored in vector v
c
c *** mpg v = A v : A(nr,nc) : matrix vector product, max 60 rows
c
input arguments:
a
(dp,ar(nr,*),in)
v
(dp,ar(nv),in)
nr
(int,sc,in)
nc
(int,sc,in)
c output
c
w
c
c
c *** mpg
c
c
c
314
arguments:
(dp,ar(na,*),out)
- product vector w
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Matrix Subroutines
input arguments:
a
(dp,ar(nr,*),in)
v
(dp,ar(nr),inout)
nr
(int,sc,in)
nc
(int,sc,in)
c
c
output arguments:
v
(dp,ar(nc),inout)
matrix
vector
number
number
*** nc
a
v
of rows in matrix (un-transposed)
of columns in matrix (un-transposed)
limited to 60 ***
c
c *** mpg A(nr,nc) : matrix transpose vector product
c
v = A+ v : max 60 nc
input arguments:
a
(dp,ar(na,*),in)
b
(dp,ar(nb,*),in)
na
(int,sc,in)
nb
(int,sc,in)
nc
(int,sc,in)
n1
(int,sc,in)
n2
(int,sc,in)
n3
(int,sc,in)
c
c
output arguments:
c
(dp,ar(nc,*),out)
- product matrix c
matrix a
matrix b
number of rows in matrix a
number of rows in matrix b
number of rows in matrix c
number of rows in matrix c to fill
number of columns in matrix c to fill
number of rows in matrix a and
number of rows of matrix b
to work with (the two need
to be the same for the inner product)
if n3 is negative, accumulate results in c
c *** mpg C =
A+ B
if n3 > 0
c
C = C + A+ B
if n3 < 0
c
A(na,*) B(nb,*) C(nc,*) C:minor n1 * n2
c
typ=int,dp,log,chr,dcp
siz=sc,ar(n)
intent=in,out,inout
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
315
input arguments:
a
(dp,ar(*),in)
c
c
c
output arguments:
c
(dp,ar(nc,*),inout) - matrix to be accumulated onto
only the lower triangular matrix is done
c
c
c
c
nc
n
con
Note:
4.4.7. matba Subroutine (Updating Matrix Value via Transposition, Multiplications, and Addition)
*deck,matba
subroutine matba (a,b,c,na,nb,nc,n1,n2,work,con)
c primary function:
does con(at*b*a) and sums the result
c
c *** Notice - This file contains ANSYS Confidential information ***
c input arguments:
c
a
(dp,ar(na,*),in)
- matrix a
c
b
(dp,ar(nb,*),in)
- matrix b (must be square,
c
and maximum dimension is (13,13)
c
c
(dp,ar(nc,*),inout)- matrix c (see output)
c
na
(int,sc,in)
- number of rows in matrix a
c
nb
(int,sc,in)
- number of rows in matrix b
c
nc
(int,sc,in)
- number of rows in matrix c
c
n1
(int,sc,in)
- number of rows in matrix c to fill
c
n2
(int,sc,in)
- number of columns in matrix c to fill
c
con
(dp,sc,in)
- multiplier on product added to sum
c
c
c
output arguments:
c
(dp,ar(nc,*),inout)- c = c + con*at*b*a
work
(dp,ar(n2,*),out) - at*b (this byproduct is occasionally useful)
C:minor n1 * n2
4.4.8. matsym Subroutine (Filling the Upper Triangle from the Lower Triangle)
*deck,matsym
subroutine matsym (a,nd,n)
c primary function:
fill upper triangle from lower triangle
c *** Notice - This file contains ANSYS Confidential information ***
c
typ=int,dp,log,chr,dcp
siz=sc,ar(n)
intent=in,out,inout
c
c
c
c
c
input arguments:
a
(dp,ar(nd,*),inout) - matrix to have
copied to its
nd
(int,sc,in)
- number of rows
n
(int,sc,in)
- size of matrix
c
c
c
output arguments:
a
(dp,ar(nd,*),inout) - matrix that has its lower triangular part
copied to its upper triangular part
316
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Matrix Subroutines
c
where a is symmetric
**
c
c
c
c
c
c
c
c
c
c
c
c
c
input arguments:
a
(dp,ar(na,na),inout) matrix to be pre and post multiplied
(part operated on must be
square(nold x nold) and symmetric)
na
(int,sc,in)
first dimension of the a matrix
c
(dp,ar(nc,nnew),in) matrix to pre and post multiply a by
(part used may be rectangular(nold x nnew))
nc
(int,sc,in)
first dimension of the c matrix
nold
(int,sc,in)
size of part of 'A' matrix that is
to be processed(input size).
maximum = 64
nnew
(int,sc,in)
size of part of 'A' matrix that
results from this operation(output size).
maximum = 64
c
c
c
output arguments:
a
(dp,ar(na,na),inout) resulting matrix
(still square(nnew x nnew) and symmetric).
input arguments:
variable (typ,siz,intent)
description
zs
(dp,ar(nz,nz),inout) - matrix to be transformed
tr
(dp,ar(ntr,ntr),in) - transformation matrix
nz
(int,sc,in)
- dimensioned size of zs matrix
ntr
(int,sc,in)
- dimensioned size of tr matrix
nrow
(int,sc,in)
- number of rows of zs matrix to transform
irot
(int,sc,in)
- block size to transform(size of tr matrix)
c
c
c
output arguments:
variable (typ,siz,intent)
description
zs
(dp,ar(nz,nz),inout) - transformed matrix
317
318
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Purpose:
Demonstrate C API entry function for an external command.
Parameters:
Input
----------------------------uecmd
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
319
where
-h
Produces command help.
-64
Configures the Makefile to use the -mips4 option for IRIX64 .
shared_object_name
Is the name that will be given to the shared library.
As gen_share is executing, you may see one or more "No match" messages. This is normal. The script
is searching for .c, .f, and .F file types in the current directory and returns this message if it cannot
locate any files matching one of those types.
To create a shared library called mylibrary.so, you would issue the following command:
% gen_share mylibrary.so
320
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
For example, to create the shared library for mylibrary.so, you would issue the following command:
% make
You will then find the specified shared library file in the current directory. You may also see warnings
from the make process, and you may need to modify the Makefile or your source code.
ANSYS also makes use of external commands, and places its own shared libraries and the associated
external table file in the /ansys_inc/v145/ansys/lib/<platform> directory (where <platform> is the directory specific to your computing platform, such as /linx64).
ANSYS loads external commands in the following order:
ANSYS first checks the ans_ext.tbl file in the /ansys_inc/v145/ansys/lib/<platform>
directory and loads any external commands referenced there.
ANSYS then loads external commands referenced by the external table file in the directory designated
with the ANSYS_EXTERNAL_PATH environment variable (see section Setting the ANSYS_EXTERNAL_PATH Environment Variable (p. 322)).
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
321
Note
The shared library must be consistent with the computer type and OS level on which ANSYS
will be executed.
Note
Avoid recursive external commands; that is, avoid situations where an external command
calls another external command.
In this example, the output lists the command, the related shared library, the function, and if the command has been accessed.
322
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Note
The /CLEAR command also closes/resets all external command shared libraries.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
323
324
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Purpose:
Demonstrate C API entry function for an external command.
Parameters:
Input
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
325
Description --------------------
*/
int extfnc(char* uecmd)
{
/* Note: uecmd is the entire command given to invoke this function */
char* cmdsend = {"/COM, COMMAND SENT FROM EXTERNAL COMMAND"};
char* querystr = {"NODE,,NUM,MAX"};
char strrtn[32];
int i, itype;
double dblrtn;
/* Send a simple command to be executed */
i = cAnsSendCommand(cmdsend);
/* Perform a simple query */
i = cAnsGetValue(querystr,&dblrtn,strrtn,&itype);
/* Display the value retrieved */
cAns_printf("Max Node Number = %g\n",dblrtn);
return (i);
}
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
ANSYS also makes use of external commands, and places its own shared libraries and the associated
external table file in the C:\Program Files\Ansys Inc\V145\lib\platform directory (where
platform is the directory specific to your computing platform, such as \Intel). ANSYS loads external
commands in the following order:
ANSYS first checks the ans_ext.tbl file in the C:\Program Files\Ansys
Inc\V145\lib\platform directory and loads any external commands referenced there.
ANSYS then loads external commands referenced by the external table file in the directory designated
with the ANSYS_EXTERNAL_PATH environment variable (see Setting the ANSYS_EXTERNAL_PATH
Environment Variable (p. 327)).
If you designate a command name that has the same first four characters as a command listed in the
C:\Program Files\Ansys Inc\V145\lib\platform file, you will not be able to access your
command. Therefore, it is a good practice to check the ANSYS external table file to make sure you have
no external command name conflicts. Do not modify the C:\Program Files\Ansys
Inc\V145\lib\platform\ans_ext.tbl file. You can also use the ~DEBUG command to verify
that no external command name conflicts exist.
Note
The shared library must be consistent with the computer type and OS level on which ANSYS
will be executed.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
327
Note
Avoid recursive external commands; that is, avoid situations where an external command
calls another external command.
Note that the output lists the command, the related shared library, the function, and whether or not
the command has been accessed.
Note
The /CLEAR command also closes/resets all external command shared libraries.
328
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
329
330
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
et,1,ele1
keyopt,1,2,1
mat,mat1
block,0,1,0,1,0,1
esize,,1
vmesh,1
mat,mat2
block,0,1,0,1,0,1
esize,,1
vmesh,2
elist
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
331
! first temp.
! E, posn, sigy, H
! boundary condition
nsel,s,loc,x
d,all,ux
nall
nsel,s,loc,y
d,all,uy
nall
nsel,s,loc,z
d,all,uz
nall
fini
/solu
tunif,1.5
nlgeom,on
nsel,s,loc,y,1
nsubst,20,100,1
d,all,uy,1.0
time,1
nall
outres,,-10
outpr,all,-10
solv
fini
/post26
esol,2,1,,s,x,SX_BISO
esol,3,2,,s,x,SX_USER
esol,4,1,,s,y,SY_BISO
esol,5,2,,s,y,SY_USER
esol,6,1,,eppl,x,EPX_BISO
esol,7,2,,eppl,x,EPX_USER
esol,8,1,,eppl,y,EPY_BISO
esol,9,2,,eppl,y,EPY_USER
prvar,2,3,4,5
prvar,6,7,8,9
fini
/exit,no save
TIME
0.10000
332
1 S
X
2 S
X
SX_BISO
SX_USER
-0.188102E-02 -0.188102E-02
1 S
Y
SY_BISO
1509.45
2 S
Y
SY_USER
1509.45
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
-0.110968
-0.110968
-0.814415
-0.814415
-1.73160
-1.73160
-1.86240
-1.86240
-0.176924E-01 -0.176924E-01
1525.07
1536.67
1548.95
1561.97
1569.16
1525.07
1536.67
1548.95
1561.97
1569.16
TIME
0.10000
0.28750
0.45625
0.66204
0.89592
1.0000
1 EPPLX
EPX_BISO
-0.472687E-01
-0.125917
-0.187417
-0.253409
-0.319141
-0.345853
2 EPPLX
EPX_USER
-0.472687E-01
-0.125917
-0.187417
-0.253409
-0.319141
-0.345853
1 EPPLY
EPY_BISO
0.945374E-01
0.251834
0.374835
0.506818
0.638282
0.691707
2 EPPLY
EPY_USER
0.945374E-01
0.251834
0.374835
0.506818
0.638282
0.691707
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
333
334
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
335
&
DATA G/1.0D0,1.0D0,1.0D0,0.0D0,0.0D0,0.0D0/
c
INTEGER
i, j
DOUBLE PRECISION pEl,
qEl,
pleq_t, sigy_t , sigy,
&
cpleq, dpleq,
pleq,
&
young, posn,
sigy0,
dsigdep,
&
elast1,elast2,
&
twoG, threeG, oneOv3G, qElOv3G, threeOv2qEl,
&
funcf, dFdep,
fratio, con1,
con2
c*************************************************************************
c
keycut
= 0
dsigdep = ZERO
pleq_t
= ustatev(1)
pleq
= pleq_t
c *** get Young's modulus and Poisson's ratio, initial yield stress and others
young
= prop(1)
posn
= prop(2)
sigy0
= prop(3)
c *** calculate the plastic slope
dsigdep = young*prop(4)/(young-prop(4))
twoG
= young / (ONE+posn)
threeG
= ONEHALF * twoG
c
c *** calculate elastic stiffness matrix (3-D)
c
c
elast1=young*posn/((1.0D0+posn)*(1.0D0-TWO*posn))
elast2=young/(TWO*(1.0D0+posn))
dsdeEl(1,1)=(elast1+TWO*elast2)*G(1)*G(1)
dsdeEl(1,2)=elast1*G(1)*G(2)+elast2*TWO*G(4)*G(4)
dsdeEl(1,3)=elast1*G(1)*G(3)+elast2*TWO*G(5)*G(5)
dsdeEl(1,4)=elast1*G(1)*G(4)+elast2*TWO*G(1)*G(4)
dsdeEl(1,5)=elast1*G(1)*G(5)+elast2*TWO*G(1)*G(5)
dsdeEl(1,6)=elast1*G(1)*G(6)+elast2*TWO*G(4)*G(5)
dsdeEl(2,2)=(elast1+TWO*elast2)*G(2)*G(2)
dsdeEl(2,3)=elast1*G(2)*G(3)+elast2*TWO*G(6)*G(6)
dsdeEl(2,4)=elast1*G(2)*G(4)+elast2*TWO*G(1)*G(4)
dsdeEl(2,5)=elast1*G(2)*G(5)+elast2*TWO*G(1)*G(5)
dsdeEl(2,6)=elast1*G(2)*G(6)+elast2*TWO*G(2)*G(6)
dsdeEl(3,3)=(elast1+TWO*elast2)*G(3)*G(3)
dsdeEl(3,4)=elast1*G(3)*G(4)+elast2*TWO*G(5)*G(6)
dsdeEl(3,5)=elast1*G(3)*G(5)+elast2*TWO*G(5)*G(3)
dsdeEl(3,6)=elast1*G(3)*G(6)+elast2*TWO*G(6)*G(3)
dsdeEl(4,4)=elast1*G(4)*G(4)+elast2*(G(1)*G(2)+G(4)*G(4))
dsdeEl(4,5)=elast1*G(4)*G(5)+elast2*(G(1)*G(6)+G(5)*G(4))
dsdeEl(4,6)=elast1*G(4)*G(6)+elast2*(G(4)*G(6)+G(5)*G(2))
336
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
337
100
c
c ***
keycut
= 1
GO TO 990
CONTINUE
update stresses
con1 = twoG * dpleq
DO i = 1 , ncomp
stress(i) = sigElp(i) - con1 * dfds(i)
END DO
c
c ***
338
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
339
340
'PLEQ'
'CREQ'
'SVAR'
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
341
D.2. Theory
The whole offshore wind turbine structure is split into two parts. The upper part is the rotor-nacelleassembly of the turbine including the tower and this is modeled by a wind turbine aeroelastic code.1
The lower part is the support structure and this is modeled by structural FE as usual.
In this coupling approach, both the aeroelastic and FE code runs concurrently, with data exchange
between the two programs occurring at every time step. The turbine effect as modeled by the aeroelastic
code is taken into account in the FE code as a special element, which accepts the wind turbine system
matrices (stiffness, damping and mass) and aerodynamic load vector as if it is a superelement.
In the case of Flex5, the maximum number of equations generated by a model is 28.
342
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
343
344
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
345
346
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
The units of the wind turbine data values are assumed to be consistent with the analysis units. No units
conversion will be carried out by Mechanical APDL.
It is assumed that identical time step sizes are used in both Mechanical APDL and the aeroelastic code.
The solution times are controlled by data in Mechanical APDL since it is the one that solves the complete
set of equations of the coupled system.
The table below shows the explanation of the various exit code values (i.e. ierr):
Code
Meaning
100
101
102
103
104
201
202
203
301
347
D.6. References
The following references are cited in this appendix:
1. D. Kaufer et. al., Integrated Analysis of the Dynamics of Offshore Wind Trubines with Arbitrary Support
Structures, Proc. of EWEC 2009, Marseille: EWEC, 2009.
2. M. Seidal et. Al., Validation of Offshore Load Simulations Using Measurement Data from the DOWNVInD
Project, Proc. European Offshore Wind 2009, Stockholm, 2009.
348
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
Index
Symbols
/UPF command, 114, 116
3-D line elements, 308
3-D nodal coordinates, 165
A
Abbreviations
file access routines, 61
acelcm.inc file, 113
activating UPFs, 123
aeroelastic analysis, 342
ANSYS
customized version of, 114
linking
UPFs to, 114
parameters, 113
standard file header, 64
tailoring with UPFs, 109
UPFs for, 109
ansyscust file, 116
ansysdef.inc file, 113
arc-length debugging, 126
auto time stepping debugging, 126
/AUX2 command, 61
AUX2 process, 61
B
basic element pass debugging, 126
Beam cross sections
reading, 94
Binary files
accessing, 59
characteristics of, 60
closing or deleting a blocked binary file, 67
Converting Two Integers into a Pointer, 67
copying contents, 69
opening a blocked binary file, 63
viewing contents, 61
binclo subroutine, 67
binhed subroutine, 64
binini subroutine, 61
biniqr function, 62
binlib library, 59
binrd8 subroutine, 65
binset function, 63
bintfo subroutine, 64
bintrd subroutine, 68
bintst program, 68
bintwr subroutine, 69
binwrt8 subroutine, 66
Buffered binary I/O systems
initializing, 61
Buffered file
reading data from, 65
writing data to, 66
C
C, 109, 112
Fortran shell for, 112
.c extension, 114
calculating
rotation caused by internal pressure, 207
Calculating
dot product of two vectors, 309
dot product of two vectors with increments, 309
sum of vector components, 309
CDWRITE
using the command, 79
CE, 81
ceget, 250
ceinqr, 250
ceput, 251
cesel, 251
Character string
converting to integer string, 67
Characters retrieved from a double precision variable,
303
CMBLOCK, 82
cmopt.inc file, 113
cnvget subroutine, 167
COMBIN37 parameters, 170
commands
creating, 215
common blocks, 113
component entities
defining, 82
constitutive material models
creating, 174
Constraint equation
defining constant term in, 81
Constraint equations
deleting or selecting, 251
getting , 250
getting information about, 250
storing, 251
Constraints
deleting at a node, 252
getting from the database, 252-253
getting information, 251
storing at a node, 252, 276
Contact
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
349
Index
defining, 84
contact
user-defined contact interfacial behaviors, 191
contact interfacial behavior, 191
convection loads
defining, 167
converting nodal data to fixed format data blocks, 128
Coordinate system
deleting a coordinate system, 248
getting a coordinate system, 247
getting information about a coordinate system, 246
storing a coordinate system, 247
Coordinate Systems
defining, 86
Coupled nodes
defining, 81
Coupled set
getting a coupled set, 249
getting information about, 248
selecting or deleting, 249
storing a coupled set, 249
Coupling and constraint routines, 248
CP, 81
cpget, 249
cpinqr, 248
cpput, 249
cpsel, 249
creep material behavior, 184
creep1 subroutine, 160
creep3 subroutine, 160
csydel, 248
csyget, 247
csyiqr, 246
csyput, 247
CURVE
defining, 85
D
debugging
elements, 126
solutions, 125
decks, 113
Degree of freedom labels
customizing, 79
Demonstration routines, 68
/DFLAB, 79
disdel, 252
disget, 251-252
displacement and coordinate debugging, 126
displacement values, 223
displacement vector debugging, 126
disput, 252
350
E
ecddel, 298
ecdget, 298
ecdiqr, 297
ecdput, 298
echprm.inc file, 113
echrtr, 242
ecrdel, 290
ecrget, 288
ecriqr, 288
ecrput, 289
ecvdel, 263
ecvget, 263
ecviqr, 262
ecvput, 263
EDCADAPT, 83
edcdel, 270
EDCGEN, 84
edcget, 269
edciqr, 269
edcput, 269
EDCURVE, 85
EDDRELAX, 86
EDLCS, 86
EDLOAD, 87
EDPREAD, 88
EDWELD, 89
eeldel, 286
eelget, 284
eeliqr, 284
eelput, 285
efsdel, 274
efsget, 274
efsiqr, 274
efsput, 275
efudel, 268
efuget, 268
efuiqr, 267
efuput, 268
efxdel, 294
efxget, 294
efxiqr, 293
efxput, 294
egen function, 191
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
egrdel, 284
egrget, 283
egriqr, 282
egrput, 283
ehcdel, 301
ehcget, 300
ehciqr, 300
ehcput, 301
ehgdel, 267
ehgget, 266
ehgiqr, 266
ehgput, 267
eimdel, 272
eimget, 271
eimiqr, 271
eimput, 272
elccmt subroutine, 147
elccmt.inc file, 113
eldwrnL subroutine, 164
eldwrtL subroutine, 164
elecom.inc file, 113
element array data pointers, 113
Element Attribute Routines, 239
Element calculated heat generation
deleting, 301
getting, 300
getting information about, 300
storing, 301
Element convection
deleting, 263
getting, 263
getting information about, 262
storing, 263
Element current densities
deleting, 298
getting, 298
getting information about, 297
storing, 298
Element current density
deleting, 270
getting, 269
getting information about, 269
storing, 269
element data
converting to fixed format blocks, 128
writing to a file, 164
Element energy
deleting, 282
getting, 281
getting information about, 281
storing, 282
Element euler angle
deleting, 293
getting, 292
storing, 293
Element euler angles
getting information about, 292
Element face flagged surface
deleting, 274
getting, 274
getting information about, 274
storing, 275
Element face impedance
getting, 271
Element face pressure
getting, 261
storing, 261
Element fluence
deleting, 268
getting, 268
getting information about, 267
storing, 268
Element fluxes
deleting, 294
getting information about, 293
storing, 294
Element Fluxes
getting, 294
Element heat generation
deleting, 267
getting, 266
getting information about, 266
storing, 267
Element impedance
deleting, 272
getting information about, 271
storing, 272
Element initial strain
deleting, 292
Element loading routines, 260
Element local force
deleting, 296
getting, 295
storing, 295
Element local forces
getting information about, 295
element matrices, 149
accessing, 170
reusing, 154
Element miscellaneous non-summable data
deleting, 297
getting, 296
getting information about, 296
storing, 297
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
351
Index
Element miscellaneous summable data
deleting, 277
getting, 277
getting information about, 276
storing, 277
Element nodal creep strain
deleting, 290
getting, 288
getting information about, 288
storing, 289
Element nodal elastic strain
deleting, 286
getting, 284
getting information about, 284
storing, 285
Element nodal force
getting, 278
getting information about, 278
storing, 278
Element nodal forces
deleting, 279
Element nodal gradients
deleting, 284
getting, 283
getting information about, 282
storing, 283
Element nodal plastic strain
deleting, 288
getting, 286
getting information about, 286
storing, 287
Element nodal stress
deleting, 281
getting, 279
getting information about, 279
storing, 280
Element nodal thermal strain
getting information about, 290
Element nodal thermal stress
getting, 290
storing, 291
Element nonlinear tables
deleting, 300
getting, 299
getting information about, 299
storing, 299
Element pressure/convection
deleting, 262
getting informatin about, 260
Element surface stress data
deleting, 273
getting, 273
352
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
enfdel, 279
enfget, 278
enfiqr, 278
enfput, 278
engdel, 282
engget, 281
engiqr, 281
engput, 282
enldel, 300
enlget, 299
enliqr, 299
enlput, 299
ensdel, 281
ensget, 279
ensiqr, 279
ensput, 280
epldel, 288
eplget, 286
epliqr, 286
eplput, 287
eprdel, 262
eprget, 261
epriqr, 260
eprput, 261
erhandler subroutine, 306
erinqr subroutine, 304
Errors
displaying, 306
obtaining information, 304
esfdel, 273
esfget, 273
esfiqr, 272
esfput, 273
ethdel, 292
ethget, 290
ethiqr, 290
ethput, 291
etpdel, 265
etpget, 265
etpiqr, 264
etpput, 265
etycom.inc file, 113
etyget, 241
etyiqr, 241
etyput, 242
etysel, 242
euldel, 293
eulget, 292
euliqr, 292
eulput, 293
evaluating material properties for 1-D elements, 158
evdget, 270
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
353
Index
evdiqr, 270
evdput, 271
exinc4 subroutine, 66
F
.F extension, 114
faces
convection surface information, 204
fAnsMemAlloc function, 226
fAnsMemFree subroutine, 226
File access routines
abbreviations, 61
file headers, 127
File status
retrieving, 62
Files
ansyscust, 116
binary
accessing, 59
characteristics of, 60
files, 114, 116
START.ANS, 215
/FILNAM, 79
fordel, 254
forget, 253
foriqr, 253
forput, 253
Fortran, 109-110, 112
Full transposed matrix, 314
functions
miscellaneous, 230
Functions
vector, 309
G
Geometry
relaxing, 86
getnod, 237
GetRForce function, 222
GetStackDisp function, 223
Graphics files
neutral graphics file format, 98
pixmap fromat for graphic display files , 97
z-buffered graphics, 97
H
heat generation
defining loads, 167
hgnget subroutine, 167
/HOLD command, 231
hyperelastic material models
creating, 183
354
I/O systems, 61
imove function, 310
impcom.inc file, 113
.inc extension, 113
files
.inc, 113
include files, 113
inexc4 subroutine, 67
Initializing paging space, 63
Integer string
converting to character string, 66
Interpolation, 307
intrp subroutine, 307
issuing a command from a user subroutine, 230
izero function, 310
J
Jobname.cdb
defining, 88
L
large data files, 128
largeIntGet subroutine, 67
lastv function, 310
Libraries, 59
linking UPFs to ANSYS, 109, 114
Linux systems
compiling and linking UPFs on, 114
Fortran programming on, 112
load data
getting from analysis results, 223
reading for a substructure generation run, 155
load steps
accessing program logic, 225
containing information about, 113
load vectors, 149
accessing, 170
Loads
defining, 87
loads, 109
computing complex load vector, 206
convection, 167
customizing, 202
debugging, 126
heat generation, 167
pressure, 166
temperature, 166
LOCAL, 90
Local coordinate system
defining, 90
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
M
M, 91
maat subroutine, 315
Master degree of freedom
defining, 91
matba subroutine, 316
material linear elastic properties: defining, 186
material properties, 109
checking user-defined data, 190
customizing, 173
debugging, 126
modifying orientation of, 169
nonlinear information, 162
Material properties
deleting a material property table, 245
getting a material property table, 243
getting information about a material property, 243
storing a material property table, 244
Material property data table
defining, 91
materials
defining material linear elastic properties, 186
user-defined: creating, 174
matrix
debugging, 126
Matrix
changing a matrix value, 315
filling upper triangle from lower triangle, 316
multiplying a vector by, 313
multiplying a vector by full transposed, 314
subroutines, 313
transposing, 315
transposing symmetric, 317
value updating via addition, 316
value updating via multiplications, 316
value updating via transposition, 316
matsym subroutine, 316
matxb subroutine, 315
matxv subroutine, 314
matxv1 subroutine, 315
maxv subroutine, 313
maxv1 subroutine, 314
mctac subroutine, 317
Mechanical APDL
running as a subroutine, 215
memory management subroutines, 226
Meshing
defining, 83
meshing debugging, 127
miscellaneous functions, 230
monitoring elements, 168
Moving one vector into another, 310
MPDATA, 91
mpdel, 245
mpget, 243
mpinqr, 243
mpput, 244
MPTEMP, 91
mreuse subroutine, 154
multifield debugging, 126
N
N, 92
ndcdel, 259
ndcget, 258
ndciqr, 258
ndcput, 259
ndgall, 238
ndgxyz function, 313
ndinqr, 236
ndnext, 234
ndnxdf, 234
ndprev, 234
ndpxyz subroutine, 313
ndsel, 235
ndspgt, 238
Neutral graphics file
character set used in, 98
color specification for, 102
decoding , 103
examples of , 103
format, 98
general format of, 98
plot directives , 99
Anno Size, 101
Area-Color, 100
Draw, 101
End-Plot, 101
Font Control, 101
Graph-Color , 100
Line-Type, 100
Line-Width, 101
Marker Size, 101
Move, 101
No-Opt , 101
Normal , 101
parameter types for directives , 99
Pixmap, 101
Pixmap Style, 101
Point, 101
Polygon , 101
Start_Plot, 100
Text , 101
Text Justification, 101
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
355
Index
Text-Color, 100
Text-Size, 100
Window, 100
Newton-Raphson debugging, 126
nfudel, 258
nfuget F, 257
nfuiqr, 257
nfuput, 257
nhgdel, 256
nhgget, 256
nhgiqr, 255
nhgput, 256
nlget function, 162
nminfo subroutine, 152
nmisc record
storing data in, 163
nodal coordinate system transformation debugging,
127
Nodal current density
deleting, 259
getting, 258
getting information about, 258
storing, 259
nodal data conversion to fixed format data blocks, 128
Nodal fluence
deleting, 258
Nodal fluences
getting, 257
getting information about, 257
storing, 257
Nodal heat generation
deleting, 256
getting, 256
getting information, 255
storing, 256
Nodal load
deleting at a node, 254
storing at a node, 253
Nodal loading routines, 251
Nodal loads
getting information about, 253
Nodal magnetic virtual displacement
getting, 260
getting information about, 259
nodal orientation matrix
adjusting, 151
nodal reaction force values
getting, 222
Nodal results
getting from the database, 275
getting information about, 275
Nodal temperature
356
deleting, 255
getting, 255
getting information about, 254
storing, 255
Nodal virtual displacement
deleting, 260
storing, 260
Node information routines, 236
Nodes
defining, 92
deleting a node, 235
getting a nodal point, 237
getting information about a node, 236
getting the next node number, 234
getting the nodal solution for a node of an element,
238
getting the number of the next defined node, 234
getting the number of the previous selected node,
234
getting the xyz/rotation coordinates vector for a
node, 238
getting XYZ vector for, 313
inverting a node, 235
routines for selecting and retrieving, 234
selecting a node, 235
storing a node, 238
storing XYZ vector for, 313
unselecting a node, 235
nonlinear debugging, 126
ntpdel, 255
ntpget, 255
ntpiqr, 254
ntpput, 255
nvddel, 260
nvdget, 260
nvdiqr, 259
nvdput, 260
O
.o extension, 114
.obj extension, 116
object files, 114, 116
optimization variables, 113
optimizing ANSYS file reads, 128
outpcm.inc file, 113
output
generating, 128
Output
obtaining information about, 304
output control, 113
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
P
parallel processing and UPFs, 110
Parameters
retrieving system-dependent parameters, 62
parameters
adding, 229
ANSYS, 113
creating a dimensioned parameter, 228
defining in subroutines, 147
element characteristics, 113
finding and evaluating, 228
performing user operations on COMBIN37, 170
subroutines to process, 228
pardef subroutine, 229
pardim subroutine, 228
plast1 subroutine, 158
plast3 subroutine, 159
pointers to element data array, 113
POST1 postprocessor, 147
pressure loads
defining, 166
printer output, 150
Printing file contents, 68
program logic
accessing, 225
tracking, 125
programmer debugging, 126
programming UPFs, 112
prope1 subroutine, 157
propev subroutine, 156
prsget subroutine, 166
pstev1 subroutine, 158
putnod, 238
R
R, 93
rdfull, 70
rdsubs subroutine, 70
Reading a results file, 71
Reading an ANSYS substructure file, 70
Reading and reformatting the .FULL file, 70
reading large data files rapidly, 128
Real constant set
defining, 93
real constants
debugging, 126
fetching, 156
Real constants
getting information about a real constant set, 245
getting real constant data, 246
selecting or deleting a real constant set, 246
ResRdBegin function, 72
ResRdCsys function, 74
ResRdDemo, 71
ResRdDisp function, 76
ResRdElem function, 74
ResRdEstr function, 77
ResRdFix function, 77
ResRdForc function, 77
ResRdGeomBegin function, 73
ResRdMat function, 75
ResRdNode function, 74
ResRdReal function, 74
ResRdRfor function, 76
ResRdSect function, 75
ResRdSectMatBegin function, 75
ResRdSolBeginl function, 76
ResRdType function, 73
restrictions on UPF creation, 109
Results
deleting at a node, 276
Results file
opening the file and retrieving global information,
72
retrieving applied nodal constraints, 77
retrieving applied nodal loads solution, 77
retrieving coordinate systems, 74
retrieving element solutions, 77
retrieving element types, 73
retrieving elements, 74
retrieving geometry information, 73
retrieving material data, 75
retrieving nodal coordinates, 74
retrieving nodal solution, 76
retrieving reaction solution, 76
retrieving real constants, 74
retrieving result set location, 76
retrieving section and material numbers, 75
retrieving section data, 75
Results files
retrieving information from, 71
Results information routines, 275
results values
getting at selected points, 224
ResWrDemo, 71
Retrieving
maximum vector value for a location, 310
position of last nonzero term in a vector, 310
reusing element matrices, 154
RLBLOCK, 93
rlget, 246
rlinqr, 245
rlsel, 246
rottr subroutine, 165
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
357
Index
RunCommand function, 230
rvrget subroutine, 156
S
saved variables
debugging, 126
fetching, 152
Scalar constants
assigning to vectors, 311
scalar fields to user-defined values, 203
SECBLOCK, 94
SFBEAM, 95
SFE, 96
Shell sections
reading, 94
Simultaneous linear equations, 317
solution control debugging, 126
solutions
accessing program logic, 225
debugging, 125
soptcm.inc file, 113
source files, 114
stack storage definition, 113
stack.inc file, 113
Standard ANSYS file header, 64
start-up
accessing program logic at, 225
START.ANS file, 215
stepcm.inc file, 113
stopping the program, 308
storing
user-supplied element output, 168
subrd subroutine, 155
Subroutines
accessing results files, 71
matrix, 313
tracking calls to, 306
subroutines
for elements, 112
for memory management, 226
for processing parameters, 228
running Mechanical APDL as, 215
supporting for user-created elements, 151
supporting user-defined commands, 222
subwrt subroutine, 155
Surface load
defining, 96
defining as beams, 95
svgidx subroutine, 152
svpidx subroutine, 153
svrget subroutine, 152
svrput subroutine, 153
358
T
table data
retrieving, 158
tbuser subroutine, 158
temperature loads
defining, 166
Temperature table
defining, 91
tmpget subroutine, 166
TrackBegin subroutine, 125, 306
TrackEnd subroutine, 125, 306
tran subroutine, 317
transient debugging, 126
Transposing a matrix, 315
tranx3 subroutine, 308
trrot subroutine, 164
U
UAnBeg subroutine, 225
UAnFin subroutine, 225
uec100 subroutine, 147-148
uel100 subroutine, 147, 149
uel101 subroutine, 112
UElMatx subroutine, 170
uep100 subroutine, 147, 150
uex100 subroutine, 147-148
UItBeg subroutine, 225
UItFin subroutine, 225
ULdBeg subroutine, 225
ULdFin subroutine, 225
/UNDO command, 231
UPFs (see user programmable functions (UPFs))
user programmable features (UPFs), 109
activating, 123
and loads, 109
and material properties, 109
before you begin using, 110
capabilities of, 109
compiling and linking
on Linux systems, 114
on Windows systems, 116
considerations for using, 110
debugging, 125
definition of, 109
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
V
vamb subroutine, 311
vamb1 subroutine, 311
vapb subroutine, 311
vapb1 subroutine, 311
vapcb1 subroutine, 311
variables
defining additional, 128
fetching the index for saved, 152
optimization, 113
writing saved element index, 153
Variables
retrieving characters from, 303
vcross subroutine, 312
vdot function, 309
Vector functions, 309
Vectors
assigning equal values to two vectors, 310
assigning scalar constants to, 311
assigning scalar constants to incrementally, 311
combining two in one, 311
defining by a cross product, 312
getting the difference of two, 311
getting XYZ vector for a node, 313
initializing to zero, 310
moving one into another, 310
moving one into another incrementally, 310
multiplying a matrix by, 314
multiplying by a full transposed matrix, 315
multiplying one by a constant, 312
multiplying to a constant, 311
normalizing a three-component vector, 312
normalizing to unit length, 312
setting integer vector to zero, 310
setting one to be the sum of two vectors, 311
storing XYZ vector for a node, 313
subtracting one from another, 311
velocity information, 113
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.
359
Index
vidot function, 309
viinit subroutine, 311
vimove subroutine, 310
vinit subroutine, 311
vmax function, 310
vmove subroutine, 310
vmult subroutine, 312
vmult1 subroutine, 312
vnorm subroutine, 312
vnorme subroutine, 312
vsum function, 309
vzero subroutine, 310
W
wavefront reordering debugging, 127
Weld
defining, 89
wind turbine analysis
fully coupled, 341
Windows systems
compiling and linking UPFs on, 116
wrinqr function, 304
Writing an ANSYS substructure file, 69
wrtsub subroutine, 69
X
xyzup3 subroutine, 165
Z
Z-buffered graphics, 97
360
Release 14.5 - SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
of ANSYS, Inc. and its subsidiaries and affiliates.