National Aeronautics and Space Administration NASA Johnson Space Center.
CAMRAD II - Johnson Aeronautics
Transcript of CAMRAD II - Johnson Aeronautics
CAMRAD IICOMPREHENSIVE ANALYTICAL MODEL OFROTORCRAFT AERODYNAMICS AND DYNAMICS
Volume IV: Input
Wayne Johnson Distributed by
Johnson Aeronautics AMI Aero, LLCPalo Alto, California Redmond, Washington
CAMRAD IICOMPREHENSIVE ANALYTICAL MODEL OF
ROTORCRAFT AERODYNAMICS AND DYNAMICS
Volume IV: Input
Release 5.0
Wayne Johnson
Johnson Aeronautics
Copyright c© 1992–2020 Wayne Johnson
Published by Johnson Aeronautics, Palo Alto, California
This volume is part of the Documentation of the proprietary computer software CAMRAD II, provided to Licenseeunder a software license agreement. Documentation and all information and trade secrets contained therein areConfidential Information. Confidential Information constitutes valuable trade secrets and proprietary property ofJohnson Aeronautics.
Notice of Proprietary Rights: This document discloses subject matter in which Johnson Aeronautics has proprietaryrights. Neither receipt nor possession of this document confers or transfers any right to reproduce or disclose thedocument, any part thereof, or any information contained therein, except by written permission from or writtenagreement with Johnson Aeronautics.
LIMITED RIGHTS LEGEND: The restrictions governing the use and disclosure of technical data marked with thislegend are set forth in the definition of “Limited Rights” in paragraph (a)(15) of the clause at DFARS 252.227-7013.The limited rights are not subject to an expiration date. Manufacturer: Johnson Aeronautics, PO Box 1253, PaloAlto, California 94302.
CONTENTS
1. INTRODUCTION 1
1–1 Background 1
1–2 Approach 2
1–3 Nomenclature 3
1–4 General Warnings and Limitations 5
2. PROGRAM CONVENTIONS 7
2–1 Data Structures 7
2–2 Shell, Core, and Table Input 8
2–3 Data Vectors and Memory 8
2–4 Main Programs 9
3. RUNNING CAMRAD II PROGRAMS 11
3–1 Input 11
3-1.1 Shell and Core Input 11
3-1.2 Table Input 13
3-1.3 System Definition and Names 13
3–2 Shell and Core Namelist 14
3–3 Summary of Input Process 16
3–4 Programs 16
3-4.1 Input and Table File Preparation: Program INPUT 16
3-4.2 Analysis: Program CAMRADII 27
3-4.3 Plot File Examination: Program OUTPUT 31
3-4.4 Graphics and Animation 35
3–5 Input Conventions 37
3–6 Rotorcraft Shell 37
4. OUTLINE OF PROGRAM INPUT DESCRIPTION 43
5. CORE INPUT FILE PREPARATION 47
6. TABLE FILE PREPARATION 51
7. CAMRAD II ANALYSIS 63
8. Class = CASE 69
9. Class = FRAME 75
iv CONTENTS
10. Class = INTERFACE, Type = STRUCTURAL DYNAMIC 77
11. Class = INTERFACE, Type = INPUT/OUTPUT 79
12. Class = OUTPUT 81
13. Class = INPUT 85
14. Class = WIND 87
15. Class = OPERATING CONDITION 89
16. Class = PERIOD 91
17. Class = TRIM LOOP, All Types 93
18. Class = TRIM LOOP, Type = SUCCESSIVE SUBSTITUTION 95
19. Class = TRIM LOOP, Type = NEWTON RAPHSON 97
20. Class = TRIM LOOP, Type = REGULATOR 99
21. Class = TRIM PART, All Types 101
22. Class = TRIM PART, Type = IMPLICIT 103
23. Class = TRIM PART, Type = STATIC 105
24. Class = TRIM PART, Type = HARMONIC 109
25. Class = TRIM PART, Type = TIME FINITE ELEMENT 115
26. Class = TRANSIENT 121
27. Class = TRANSIENT LOOP, All Types 123
28. Class = TRANSIENT LOOP, Type = SUCCESSIVE SUBSTITUTION 125
29. Class = TRANSIENT PART, All Types 127
30. Class = TRANSIENT PART, Type = IMPLICIT 129
31. Class = TRANSIENT PART, Type = INTEGRATION 131
32. Class = FLUTTER 135
33. Class = FLUTTER LOOP 143
34. Class = FLUTTER PART, All Types 147
35. Class = FLUTTER PART, Type = INTERFACE 149
36. Class = FLUTTER PART, Type = DIFFERENTIAL EQUATIONS 151
37. Class = TRANSFORM 153
38. Class = MODES 157
39. Class = RESPONSE, All Types 161
40. Class = RESPONSE, Type = RIGID 165
CONTENTS v
41. Class = RESPONSE, Type = VARIABLE 169
42. Class = WEIGHTS 171
43. TABLE FORMATS 173
43–1 Class and Type 173
43–2 Table File Formats 173
43–3 Class = Two Dimensional, Type = Standard 175
43–4 Class = Three Dimensional, Type = Standard 175
43–5 Class = Four Dimensional, Type = Standard 178
43–6 Class = Airfoil 179
43-6.1 Class = Airfoil, Type = Standard 179
43-6.2 Class = Airfoil, Type = C81 180
43-6.3 Class = Airfoil, Type = CAMRAD 182
43–7 Class = Matrix, Type = Standard 182
43–8 Class = Unstructured, Type = Real or Integer 183
vi CONTENTS
Chapter 1
INTRODUCTION
CAMRAD II is an analysis of aeromechanical systems that incorporates a combination of advanced tech-
nology, including multibody dynamics, nonlinear finite elements, structural dynamics, and aerodynamics. It is
a comprehensive analysis: for the design, testing, and evaluation of systems — at all stages, including research,
conceptual design, detailed design, and development — CAMRAD II calculates performance, loads, vibration,
response, and stability — with a consistent, balanced, yet high level of technology in a single computer program
— applicable to a wide range of problems, and a wide class of configurations. Such an approach is essential for
many modern problems, which are inherently complex and multidisciplinary.
CAMRAD II uses a building block approach to achieve flexibility in the model of the dynamic and aerodynamic
configuration. Hence it can model the true geometry of a system, including multiple load paths. CAMRAD II
provides a powerful analysis capability, including advanced aerodynamics; rigorous kinematics and dynamics
(with consistent structural loads and dynamic response, and general interfaces between aerodynamic and structural
dynamic components); and general transient solutions. For ease of use a shell is provided to build typical system
models, while the core input capability always gives complete flexibility to define and revise the model. A range
of components and modelling options makes it a practical engineering tool, allowing the best balance of efficiency
and accuracy to be found for a particular problem. CAMRAD II offers a design for growth that makes it an
appropriate platform for future developments, for continuing access to new technology.
This volume of the CAMRAD II documentation describes the program input for the analysis.
1–1 Background
CAMRAD II incorporates a combination of advanced technology. The existing technology was not found
sufficient however, individually or in combination, to solve the required problems, as designers take modern systems
rapidly beyond the capability of present analyses. Yet there is much to build on in this background technology.
Multibody dynamics technology provides a background on rigid body components, frames, and joints; non-
linear kinematics; and joint operations. In addition however, it is necessary to deal with elastic motion.
Structural dynamics technology provides a background on substructure coupling and static residuals; modal
analysis and truncation; and elimination of constraints. Most of this work is for linear systems, however; here it
is necessary to deal with nonlinear systems.
Nonlinear finite element technology provides a background on nonlinear elements, numerical integration,
and beam components. In addition however, it is necessary to deal with large motion. Hence the present approach
diverges from finite elements by not using nodal motion as degrees of freedom.
2 INTRODUCTION
In general the problems of interest here involve more than just structural dynamics. In particular, there is no
system Lagrangian. For numerous reasons, CAMRAD II also uses explicit constraint forces (for example, in order
to handle partitioned solutions, static residuals, input/output constraints, and evaluation of reactions).
Rotorcraft aeromechanics provides a background on aircraft dynamics, rotating systems, and aerodynamics.
This field also helps define the required tasks and results of the analysis.
The configuration and operation of modern systems requires an analysis and design tool capable of han-
dling complex configurations with unusual load paths and interactions, and with many subsystems; structural,
aerodynamic, and kinematic nonlinearities; arbitrary large motion, including rigid body motions and rotation of
components relative to each other; and components that are not defined by the equations and interfaces of structural
dynamics. The analysis must be flexible, which demands that the specification of the configuration, the aerome-
chanical models, and the solution procedures be separated. The analysis must be designed for growth, so it can
incorporate future technology developments. It is also important that the analysis be easy to use, especially for
normal configurations. A final requirement is that the analysis be practical: efficient, accurate, and reliable.
1–2 Approach
CAMRAD II performs a nonlinear dynamic/static analysis of an aeromechanical system. Flexibility and
generality of the system configuration are obtained by assembling standard components with standard interfaces,
and solving the system by standard procedures. The basic approach of the analysis is to make no approximations
at the highest levels. A finite-dimension description of the system is required. The components and interfaces
introduce spatial discretization; the solution procedures introduce time discretization. No further approximations
are made at the top level. The coupling and solution procedures can handle arbitrary and exact models, including
nonlinear and time-varying equations. Approximations are possible (indeed required for most practical solutions),
but enter at the component level. With this approach, new technology and more accurate models can be developed
and implemented in the form of new components, without changing the framework of the analysis.
For configuration generality, the analysis splits the system into pieces, with connections between. The
following pieces are available to construct the system:
environmental physical logical
case component loopwind frame partoperating condition interface transformperiod output modes
input responseweights
These system pieces constitute the core analysis, providing a flexible, building-block oriented modelling capability.
There are physical pieces (components and interfaces) and logical pieces (solution procedure). The components
available include structural dynamic, aerodynamic, differential equation, and performance models. Standard
descriptions of components, interfaces, and solution procedures are required. Structural dynamic systems are an
important subset of the problems of interest, but other types of components are equally important, particularly
aerodynamic models. The conventions and methodology must encompass all types of components, interfaces, and
solution procedures; and yet also accommodate the conventional approaches for specific types.
INTRODUCTION 3
The analysis solves differential, integral, static, and implicit equations for the motion of the system, and
evaluates required output quantities from the response. Figure 1 illustrates the analysis tasks: trim, transient, and
flutter. The trim task finds the equilibrium solution (constant or periodic) for a steady state operating condition.
Often it is necessary for the trim task to identify parameter values required to achieve a specified operating condition.
The transient task integrates the equations in time, from trim, for a prescribed excitation. The flutter task obtains
and analyzes differential equations, linearized about trim. With a quasistatic reduction of the system, the flutter
task can produce a stability derivative model.
It is important that the analysis be easy to use, especially for normal configurations. Modelling a large system
requires definition of many core pieces (particularly interface and response pieces). Hence the analysis has a shell
to facilitate application to specific problems. The shell constructs the core input for typical configurations and
typical problems. The objective is to isolate the user from details of the system definition at the core level. The
shell creates the components and other system pieces required, from parametric input and from assumptions about
the system configuration and model. By using such a shell, it is typically possible to accomplish 2–3 orders of
magnitude compression of the amount of input data supplied by the user.
The shell does not have the flexibility of the core input, and may not be able to model exactly every config-
uration. The shell constructs most of the system, minimizing the need to deal directly with the core input; and
what the shell constructs will provide guidance for the use of the analysis. The user can still use the core input to
change the model constructed by the shell, as required for specific problems. In addition, there is no need for the
shell input to implement features that can be obtained by simple changes to the core input (as long as the shell at
least creates the system piece).
1–3 Nomenclature
The nomenclature for kinematics of rigid motion employs the following conventions. A vector x is a column
matrix of three elements, measuring the vector relative to a particular basis (or axes, or frame). The basis is
indicated as follows:
a) xA is a vector measured in axes A;
b) xEF/A is a vector from point F to point E, measured in axes A.
A rotation matrix C is a three-by-three matrix that transforms vectors from one basis to another:
c) CBA transforms vectors from basis A to basis B, so xB = CBAxA.
The matrix CBA defines the orientation of basis B relative basis A, so it also may be viewed as rotating the axes
from A to B. For a vector u, a cross-product matrix u is defined as follows:
u =
⎡⎣ 0 −u3 u2
u3 0 −u1
−u2 u1 0
⎤⎦
such that uv is equivalent to the vector cross-product u × v. Note that outside the context of rigid motion
kinematics, the tilde symbol does not imply this matrix. The cross-product matrix enters the relation between
angular velocity and the time derivative of a rotation matrix:
CAB = −ωAB/ACAB = CABωBA/B
TRIM
TRANSIENT
FLUTTER
RESPONSEandOUTPUT
RESPONSEandOUTPUT
RESPONSEandOUTPUT
equilibrium solution steady or periodicsteady state operating condition identify parameters to achieve specified operating condition
integrate in time from trimfor prescribed excitation
differential equations linearized about trimfull dynamics orquasistatic reduction including stability derivative representation
solve equations (differential, integral, static, implicit) for motion of system evaluate required output quantities from response
4 INTRODUCTION
Figure 1-1 CAMRAD II tasks.
INTRODUCTION 5
(the Poisson equations). For rotation by an angle α about the x, y, or z axis (1, 2, or 3 axis), the following notation
is used:
Xα =
⎡⎣ 1 0 0
0 cos α sinα0 − sinα cos α
⎤⎦
Yα =
⎡⎣ cos α 0 − sinα
0 1 0sinα 0 cos α
⎤⎦
Zα =
⎡⎣ cos α sinα 0− sinα cos α 0
0 0 1
⎤⎦
Thus for example, CBA = XφYθZψ means that the axes B are located relative the axes A by first rotating by angle
ψ about the z-axis, then by angle θ about the y-axis, and finally by angle φ about the x-axis. Euler-Rodrigues
parameters (or Rodrigues parameters) are defined by the relation p = 2u tanψ/2, for rotation by angle ψ about
an axis in the direction of the unit vector u. This differs by a factor of 2 from the classical definition, but has
the advantage that p ∼= uψ for small rotations. Consider the relative motion of axes A and B. Let xBA/A be the
displacement from the origin of A to the origin of B, measured in A axes; and CBA the rotation from axes A to
axes B. Time derivatives of the motion of B relative A can be described by body axis velocity and angular velocity.
Thus the following standard convention is used for a description of the rigid motion of axes B relative axes A:
a) linear motion: xBA/A and vBA/B = CBAxBA/A and vBA/B
b) angular motion: CBA and ωBA/B = CBACAB and ωBA/B
The axes A and B might be frames, or rigid body degrees of freedom, or the position of some point on a structure.
1–4 General Warnings and Limitations
The state-of-the-art of engineering is such that it is not yet possible to accurately calculate or predict aerome-
chanical system behavior in all circumstances. Any computer program must be used in that context. It is always
possible to get a bad answer from bad input or misuse of an analysis. It is also possible that the best results of
an analysis may not be accurate. A computer program is a tool, not substituting for but rather to be used with
judgement, experience, and much testing of the actual system.
The analysis models a system by dividing it into components. Each component is a model of the actual device.
Rarely are the complete equations being solved for the exact response. Rather empiricism and approximations
are required in order to make the analysis practical. Hence engineering judgement is required to use and interpret
the analysis, based on experience with the code, particularly projects using the code to correlate with measured
results.
6 INTRODUCTION
Chapter 2
PROGRAM CONVENTIONS
This chapter provides background on the programming conventions followed in developing the software. In
particular, the information on data structures supports the description of the program input process. Changing the
amount of memory available to the program and changing the default values of system parameters are discussed.
2–1 Data Structures
A data structure is a set of real, integer, and character variables, in fixed order. The structure types and their
use are as follows.
a) Data vector: for general data storage; no variables.
b) Record or list: an organized group of data, with access directly in data vector.
c) Common: data to be manipulated in Fortran common, for access and input/output.
The program stores most global data in a data-vector-type data structure (a “heap”). In addition there are some
system commons. CAMRAD II uses the following data vectors: core input, table input, shell input, and principal
data vector of the analysis. A data vector is partitioned into sections; each section may have records. The storage
modes are as follows.
a) Block storage: copy section to/from common-type data structures (block or table).
b) List storage: section is a list-record-type data structure.
c) Record storage: section is a record-type data structure (fixed format, fixed length or variable
length).
List and record storage are used for general analysis and computations (accessed directly in the data vector). A
single data vector is used for this purpose (the principal data vector of the analysis).
Block storage is used for namelist and file input (data are read from a file or namelist to a common, which
is copied to a section in the data vector). The input process requires separate data vectors from the analysis (for
initialization, copy to or from a file, and searches). There is a separate data vector for each kind of input, entirely
composed of blocks. An unformatted input file is just the image of the input data vector (omitting any free space).
For block storage, each section is an input block or table. The section consists of a header and the data; the
data are equivalent to set of commons. The data are usually compressed for storage in the data vector (there is
a system option to store commons in the data vectors without compression). Each block is uniquely identified
by class, type, and name (hierarchical, from class to name). The analysis defines fixed possibilities for class and
type, while the user defines the name. Possibly there is only one type for a class (no type), or only one block for a
class/type (no name, or name ignored). Each class/type (hence each block when the data are stored) corresponds
8 PROGRAM CONVENTIONS
to a specific set of commons. Within a class, names must be unique, even if the type is different (store and search
are based on the class and name; the type defines the form of the data within a class).
2–2 Shell, Core, and Table Input
Shell and core input may be obtained from a file or from namelist. File input consists of reading an unformatted
input file into the data vector. Namelist input occurs by section, identified by class, type, and name. A section
corresponds to a set of commons. Namelist input therefore involves the following steps: move the existing section
from the data vector to the commons (or initialize the commons); namelist read of selected parameters into the
commons; implement scenarios; move the section from the commons to the data vector (in compressed form).
When shell input is used, the analysis produces the core input from shell parameters. After the core input has
been created, core namelist input must be possible, in order to model what the shell can not. So the shell namelist
input is followed by core namelist input, the latter defining core changes. If the job has more than one case, usually
it is desirable for the second case to inherit all parameters of the first case. Then for the second case it must be
possible to change the shell input by namelist, followed again by the core namelist input (without repeating all
of the first case input). If the analysis only saved the final core input of the first case (as modified by the core
namelist), it would not be possible to go back to the shell input for the first case. Hence the shell data vector must
store not only the shell input, but also change-core blocks corresponding to the core namelist input. With this
information, the shell can recreate the core namelist input of previous cases. Hence the shell data vector contains
change-core sections (class = CHANGE CORE, no type, no name). These sections are associated with the core
namelist input, which consists of a definition namelist plus a value namelist. The change-core section therefore
contains the definition (class, type, name, and action) plus the value changes produced by the core input.
Tables are handled as an extension of block storage. Table input is obtained from a file (one file per table).
There is a specific file format for each table class/type (the file data can be binary or ASCII). A common is used
as an interface between the file and the table data vector. The common data includes the table arrays. Because
the sizes of the table arrays can be very large, the arrays are always stored compressed in the data vector, and the
arrays are accessed directly in the data vector.
Tables correspond to files, so they provide a general file input capability for the analysis (the plot file is used
for general file output). Tables provide a mechanism for input of large arrays of data. The table data may be a
function of continuous variables (interpolated from the data vector), or a function of discrete variables (moved to
a record in the principal data vector of the analysis).
2–3 Data Vectors and Memory
The data vectors are implemented as commons (separate commons are used for the real, integer, and character
variables). The data vector is partitioned into sections; the analysis creates sections as required. The sections
are stored in the data vector starting from the beginning (after the directory header record for the integer vector).
There is free space in the vector extending from the last section to the end (to the directory records for the integer
vector). There may also be free space between sections, if sections have been moved. The usage of space in the
data vectors is printed at the end of each case, and this information can be saved in a statistics file.
New sections are added after the last section in the vector. If there is not enough free space after the last
section, the vector is packed. If after the pack there still is not enough free space, the analysis halts, with the
PROGRAM CONVENTIONS 9
following error message: “SPACE REQUIRED GREATER THAN FREE SPACE”. If the analysis runs out of free
space in any data vector, it is necessary to either change parameters to create a smaller problem, or to increase the
size of the data vector. The data vector sizes are defined in the main programs.
2–4 Main Programs
The main programs can be revised to change the data vector size, or to change default job parameters (source
code is supplied for the main programs). To change the data vector size, change the length of the variable in the
common; and change the corresponding SIZEx value. The default values for parameters in the namelist NLJOB
can be changed in the main programs.
If the computer system compiler uses the largest size encountered to define a common block, then it is
possible to increase the size of a data vector by simply changing its definition in then main program. Otherwise it
is necessary to acquire a version of the analysis with the data vector size changed throughout the code.
In order to identify a modification or revision within a particular release, a variable MODID is available. This
variable can be defined by the analysis administrator, in each of the main programs. The variable is printed in the
header of the program output.
10 PROGRAM CONVENTIONS
Chapter 3
RUNNING CAMRAD II PROGRAMS
This chapter describes the steps required to run the CAMRAD II programs. CAMRAD II consists of three
main programs:
Analysis (CAMRADII)
Input and Table File Preparation (INPUT)
Plot File Examination (OUTPUT)
The programs communicate by means of files. Figure 1 shows the relation between the programs for a typical
application. The analysis input data consists of an unformatted input file, job namelists, and table files. The
input file preparation program INPUT generates a shell input file (unformatted), from namelist files of baseline
parameters. The table file preparation program INPUT generates a CAMRAD (unformatted) airfoil table file for
the entire blade, from Standard (free form) or C81 (fixed form) airfoil table files. The rotorcraft analysis program
CAMRADII reads the input and table files as required, and executes one or more cases per job. Namelist input is
read for each case; the same format is used for the namelist input to the program CAMRADII and to the program
INPUT. The analysis program creates the job output, and perhaps a plot file. The program OUTPUT examines the
plot file, creating files for the user’s graphics routine.
In general, the input file preparation program INPUT can be run batch or interactive, to prepare unformatted
input files from namelist data; and to print the input data. The input file preparation program can also be run
interactive, in order to extract data to plot or draw the input, and to examine the initialized system data. The table
file preparation program INPUT can be run batch or interactive, to prepare unformatted or formatted table files of
each class and type; and to print the table data. The table file preparation program can also be run interactive, in
order to extract data to plot the table. The plot file examination program OUTPUT can only be run interactive, to
read and extract data from the plot file; or to print linear differential equations to a log file.
3–1 Input
3-1.1 Shell and Core Input
The core input provides a flexible, component-oriented analysis. The core input defines the tables required.
The shell input facilitates application of the analysis to specific problems.
Shell input consists of both shell and core namelists. The analysis uses the shell input to produce the core
data, which the user can then change using core input. Core namelist input is stored as changes to the core data
produced by the shell, so these changes can be implemented for subsequent cases in a job (without repeating the
core namelist for each case).
INPUT
input filepreparation
INPUT
table filepreparation
CAMRADII
analysis
OUTPUT
plot fileexamination
namelistinput file(s)
STANDARD or C81table file(s)
jobcontrol
joboutput
shellinput file(unformatted)
CAMRADtable file(unformatted)
job controlwithnamelistinput plot
filejoboutput
files for user'sgraphicsroutine
jobcontrol
joboutput
12 RUNNING CAMRAD II PROGRAMS
Figure 3-1 Relation between CAMRAD II programs.
RUNNING CAMRAD II PROGRAMS 13
The input consists of a set of sections, identified by class, type, and name. Each section corresponds to a
system piece, either system description or solution procedure. A shell or core section is read from namelist. The
data are read from namelist into commons, and the commons are moved to a data vector for storage; the data are
usually compressed for storage in the data vector. Data are moved from a data vector to commons for initialization;
the input data are not used during the analysis. The shell or core input can be stored as an unformatted file, which
can be read before the namelists to initialize all sections.
The input sections and tables are uniquely identified by class, type, and name. The analysis defines the
allowable classes, and types for each class. The user defines the names. Within a class, names must be unique,
even if the type is different. The analysis stores and searches information based on the class and name; the type
defines the form of data within a class. Each class/type corresponds to a set of commons. Possibly there is no type
for a class; or only one block for a class/type (the name is ignored).
3-1.2 Table Input
Tables correspond to files; thus table input provides a general capability to obtain input from files. The plot
file is used for general file output. Tables provide a mechanism for input of large arrays of data. The table data
may be a function of continuous variables (interpolated from the data vector), or a function of discrete variables
(moved to a record for use).
The table specification consists of class, type, and name; plus a file unit number, and the file name or logical
name. The file name or logical name can be the same as the name in the class/type/name specification (this is the
default).
The core input data defines which tables are required by the analysis. A core section can define more than
one table required. The same table (same class/type/name) can be required by more than one core section. In such
a case the unit number and logical name of the first requirement encountered are used to read table. The user can
delete tables not used for this case, or all tables at the end of a case (to minimize storage in the table data vector).
A table section is read from a file (formatted or unformatted).
3-1.3 System Definition and Names
For each class (component, part, and so on) there is a collection of system pieces, identified by unique
names (32 characters). The user identifies things in the input by name. There are also short labels (8 characters)
corresponding to each name, for use by the output routines. A blank input name or label produces the default (if
a default exists).
Each system piece has a name. The input section header name identifies the data section. Generally, there is
an equivalence between a data section and a piece of system. So the system piece inherits the name of the section.
Within a class, names must be unique, even if the type is different. The class and name are used to identify system
pieces, and hence to store and search the data. The type serves to define optional structure of the data within a
class.
Subnames may be needed to identify a quantity. For example, specifying a degree of freedom requires a
component name, a vector name, and an element name. The top level name (from the input section) must be
defined by the user. The other names can be user or computer defined; the user can generally override any default
name. There are defaults for all labels.
14 RUNNING CAMRAD II PROGRAMS
When the user must identify a thing in the input by name, optionally it can be identified by sequence number
(as a character string) instead. This option is useful for subnames (vectors and elements) where the sequence
number is obvious; for example, to identify the element of a force, moment, or motion vector. When the analysis
searches for a specified name and does not find the name, it then tries to translate the name as a valid sequence
number.
For some quantities, element names may not exist. This option is useful for cases where the vector is very
long, typically for component input or output, or for an interface. However, an input vector or a component degree-
of-freedom vector must have element names (without element names, the analysis would lose the capability to
label or select the element).
3–2 Shell and Core Namelist
Shell and core namelist occur in the job command stream (or the JOBINPUT file) of the program CAMRADII,
or in a file for the program INPUT. The input for the analysis program CAMRADII begins with the namelist NLJOB
(which always has defaults); then there is the namelist input for each case of the job.
Figure 2 shows the form of the namelist input for a case (or in a file for the program INPUT). It consists of a
set (perhaps none) of definition and value (NLDEF–NLVAL) namelist pairs. The order is arbitrary. More than one
namelist pair can be used for any input section (class/type/name). The case input must always conclude with a
definition namelist (NLDEF) containing “action = end” (with no NLVAL namelist). The core input (perhaps just
the concluding NLDEF) is required even when the shell is used.
The definition namelist (NLDEF) has only four parameters: CLASS, TYPE, NAME, ACTION (all character
strings, length 32). CLASS, TYPE, and NAME identify the shell or core input block. Possibly there is no type;
possibly the name is ignored (only one block of this class/type). Lower case and some abbreviations and alternatives
are accepted in CLASS and TYPE. The contents of the value namelist (NLVAL) depend on the section class and
type. Each NLVAL namelist contains the character variable C (or COMMENT if C is already defined), which can
be used to insert comments among the input data.
The parameter ACTION in the NLDEF namelist can take the following values: zero, initialize, change, delete,
or end. The default is ACTION = ’change’, so usually ACTION can be ignored (except to specify the end of
shell input and the end of core input). Only the first character in ACTION is used; both upper and lower case are
accepted.
ACTION function
zero set all parameters in block to zero before read namelist
initialize set all parameters in block to initial values before read namelist
change get current values of parameters before read namelist;same as initialize for new block
delete delete section
end end input category
There are built-in parameter values for each core and shell block, implemented by initialization and scenarios.
Initialization is controlled by the parameter ACTION in the NLDEF namelist, which gives the option to set all
parameters to default values, before reading the NLVAL namelist. Scenarios are controlled by the parameter
RUNNING CAMRAD II PROGRAMS 15
shell and core input:
$NLDEF class=’xxxx’,type=’xxxx’,name=’xxxx’,action=’xxxx’,$END
$NLVAL data,........................................,data,$END
....
....
$NLDEF class=’xxxx’,type=’xxxx’,name=’xxxx’,action=’xxxx’,$END
$NLVAL data,........................................,data,$END
$NLDEF action=’END OF SHELL’,$END
$NLDEF class=’xxxx’,type=’xxxx’,name=’xxxx’,action=’xxxx’,$END
$NLVAL data,........................................,data,$END
....
....
$NLDEF class=’xxxx’,type=’xxxx’,name=’xxxx’,action=’xxxx’,$END
$NLVAL data,........................................,data,$END
$NLDEF action=’END OF CORE’,$END
core input:
$NLDEF class=’xxxx’,type=’xxxx’,name=’xxxx’,action=’xxxx’,$END
$NLVAL data,........................................,data,$END
....
....
$NLDEF class=’xxxx’,type=’xxxx’,name=’xxxx’,action=’xxxx’,$END
$NLVAL data,........................................,data,$END
$NLDEF action=’END OF CORE’,$END
Figure 3-2 Program namelist input.
OPSCEN in some NLVAL namelists. A scenario is a set of values for selected parameters, implemented immediately
after reading the NLVAL namelist.
Input scenarios are implemented immediately after each read of namelist NLVAL. The procedure consists of
moving the existing section from general data storage to commons (or initializing the commons); using namelist
to read selected parameters into commons; implementing the scenario; and moving the section from commons
to general data storage (in compressed form). Scenarios are controlled by the parameter OPSCEN in each block
(if available). Set OPSCEN = 0 for no scenario. A scenario provides a set of values for other parameters in the
namelist, superseding any other input value. Hence in order to change a parameter that is set by a scenario, it
is necessary to use a separate, subsequent NLDEF–NLVAL pair, containing OPSCEN = 0 and the new parameter
values. If a scenario is turned on after parameters have already been read for a block, it is best to use ACTION=’init’
to reset all parameters to the default values.
Each shell input block has an elementary scenario, corresponding to a simplified configuration. These
scenarios must be used with the initial values defined for the shell input blocks.
16 RUNNING CAMRAD II PROGRAMS
3–3 Summary of Input Process
Figure 3 summarizes the input process. The shell input consists of blocks corresponding to the input categories.
There are blocks for the physical description and for the solution procedure. Usually the baseline parameters are
obtained from a file, and then namelist input is used to change the shell for this job and case. The shell then
constructs the core input for typical configurations.
The core input consists of blocks corresponding to system pieces. Namelist input is used to change the
core constructed by the shell. The core input defines the tables required. The table input consists of blocks
corresponding to table files.
Each block is identified by class, type, and name (plus the file name and unit number for tables). In the shell
input, all blocks needed must be defined by the user, even if only the default parameter values are required. There
is no automatic definition of the shell blocks. Figure 4 lists the core, table, and shell input blocks of the analysis.
3–4 Programs
CAMRAD II has three main programs: Analysis (CAMRADII), Input and Table File Preparation (INPUT), and
Plot File Examination (OUTPUT). The analysis input data consists of an unformatted input file, job namelists, and
table files. The unformatted input file is optional, but its use is recommended. With a large amount of input data,
the unformatted input file serves to separate the baseline and job input, and it provides configuration control of the
baseline input parameters. The input file preparation program generates a unformatted input file from namelists
in files. The same format is used for both the namelist input to the program CAMRADII and the namelist input to
the program INPUT. The rotorcraft shell usually requires unformatted airfoil table file(s). Other tables may be
needed as well.
3-4.1 Input and Table File Preparation: Program INPUT
The program INPUT prepares input files for the analysis. Input file preparation produces unformatted files
from namelist input, for either the shell or core input. Table file preparation produces unformatted or formatted
files, for each table class and type. The program can also write or extract data in input and table files; or examine
initialized data.
The program INPUT can be operated in batch or interactive mode. For interactive mode, printed output can
be directed to a log file (OUTPUTLOG). The first line of the job input stream must be “Batch” or “Interactive” (the
default is interactive). Then the program reads namelist NLJOB, containing parameters that define the job. The
batch/interactive selection and namelist NLJOB are always read from the default NUIN unit. Table file preparation
requires additional namelists.
File unit numbers are set by parameters in namelist NLJOB. File JOBINPUT need be defined only if its
unit number is not 5 (NUIN). File JOBOUTPUT need be defined only if its unit number is not 6 (NUOUT). All
parameters in namelist NLJOB have defaults, which are set (and may be changed) in the main program.
Figure 5 is an outline of the input file preparation process, and figure 6 shows the form of a batch job to run
the analysis. The input data are obtained by reading an input file and/or namelist files. The required file names (or
logical names) are: INPUTFILE, INPUTLISTn, OUTPUTFILE, and OUTPUTLIST; JOBINPUT and JOBOUTPUT.
shell input blocks = physical description and solution procedure
core input blocks = system pieces
data structures= system pieces and solution
analysisexecution
outputplot file
table blocks
generatedata structures
tablesrequired
change core
file
baseline
namelist
change shell
generatecore input
namelist
tables
files
class type name
scenariosinitialization
class type name
lists and records
class type name
scenariosinitialization
RUNNING CAMRAD II PROGRAMS 17
Figure 3-3a Summary of shell and core input process.
core input blocks = system pieces
data structures= system pieces and solution
analysisexecution
outputplot file
table blocks
generatedata structures
tablesrequired
file
baseline
namelist
change core tables
files
class type name
scenariosinitialization
class type name
lists and records
18 RUNNING CAMRAD II PROGRAMS
Figure 3-3b Summary of core input process.
RUNNING CAMRAD II PROGRAMS 19
CLASS TYPE NAME
CASE none ignore
COMPONENT typeFRAME noneINTERFACE STRUCTURAL DYNAMICINTERFACE INPUT/OUTPUTOUTPUT noneINPUT none
WIND none ignoreOPERATING CONDITION nonePERIOD none
TRIM LOOP NO SOLUTIONTRIM LOOP SUCCESSIVE SUBSTITUTIONTRIM LOOP NEWTON RAPHSONTRIM LOOP REGULATORTRIM PART NO SOLUTIONTRIM PART IMPLICITTRIM PART STATICTRIM PART HARMONICTRIM PART TIME FINITE ELEMENT
TRANSIENT none ignoreTRANSIENT LOOP NO SOLUTIONTRANSIENT LOOP SUCCESSIVE SUBSTITUTIONTRANSIENT PART NO SOLUTIONTRANSIENT PART TRIM SOLUTIONTRANSIENT PART IMPLICITTRANSIENT PART INTEGRATION
FLUTTER none ignoreFLUTTER LOOP noneFLUTTER PART NO SOLUTIONFLUTTER PART INTERFACEFLUTTER PART DIFFERENTIAL EQUATIONS
TRANSFORM noneMODES noneRESPONSE RIGIDRESPONSE VARIABLEWEIGHTS none
If there is only one block, the name is ignored. Lower case is accepted for class andtype. Unique initial letters of class or type are accepted. Specific abbreviations andalternatives:
class = TRIM LOOP:type = NO SOLUTION = NULLtype = NEWTON RAPHSON = NR
class = TRIM PART, TRANSIENT LOOP, TRANSIENT PART:type = NO SOLUTION = NULL
class = FLUTTER PART:type = NO SOLUTION = NULLtype = DIFFERENTIAL EQUATIONS = DE = EQUATIONS
Figure 3-4a Core input blocks.
20 RUNNING CAMRAD II PROGRAMS
CLASS TYPE NAME
COMPONENT RIGID BODYCOMPONENT LINEAR NORMAL MODESCOMPONENT FINITE ELEMENT BEAMCOMPONENT ROD/CABLECOMPONENT TRANSMISSIONCOMPONENT REFERENCE FRAME
COMPONENT FILTERCOMPONENT REFERENCE PLANECOMPONENT DIFFERENTIAL EQUATIONCOMPONENT PROGRAMMABLECOMPONENT TRANSFER FUNCTIONCOMPONENT FOURIER SERIESCOMPONENT PRESCRIBED CONTROLCOMPONENT GUST
COMPONENT RIGID AIRFRAME AERODYNAMICSCOMPONENT AIRFRAME FLOW FIELDCOMPONENT LIFTING LINE WINGCOMPONENT WING INFLOWCOMPONENT ROTOR INFLOWCOMPONENT ROTOR DYNAMIC WAKECOMPONENT WING WAKECOMPONENT WING WAKE GEOMETRYCOMPONENT ROTOR WAKE GEOMETRYCOMPONENT WING PERFORMANCECOMPONENT ROTOR PERFORMANCECOMPONENT ROTORCRAFT PERFORMANCECOMPONENT RIGID WINGCOMPONENT HELICOPTER TAIL BOOMCOMPONENT COMPUTATIONAL FLUID DYNAMICS
COMPONENT PLUGIN
Lower case is accepted for class and type. Unique initial letters of class or type are accepted.Specific abbreviations and alternatives:
class = COMPONENT:type = LINEAR NORMAL MODES = NORMAL MODES = MODEStype = FINITE ELEMENT BEAM = BEAMtype = ROD/CABLE = ROD = CABLEtype = FILTER = LOW PASS FILTER = RESOLVER = DIFFERENTIATORtype = DIFFERENTIAL EQUATION = DE = STATIC EQUATION = ADDERtype = AIRFRAME FLOW FIELD = AIRFRAME INTERFERENCE VELOCITYtype = ROTOR INFLOW = UNIFORM INFLOWtype = WING WAKE = NONUNIFORM INFLOWtype = COMPUTATIONAL FLUID DYNAMICS = CFD
Figure 3-4b Core component input blocks.
RUNNING CAMRAD II PROGRAMS 21
CLASS TYPE NAME
TWO DIMENSIONAL STANDARDTHREE DIMENSIONAL STANDARDFOUR DIMENSIONAL STANDARD
AIRFOIL STANDARDAIRFOIL C81AIRFOIL CAMRAD
MATRIX STANDARD
UNSTRUCTURED REALUNSTRUCTURED INTEGER
Lower case is accepted for class and type. Unique initial letters of class or type areaccepted. Specific abbreviations and alternatives:
class = TWO DIMENSIONAL = 2Dclass = THREE DIMENSIONAL = 3Dclass = FOUR DIMENSIONAL = 4D
class = AIRFOIL:type = C81 = FIXED FORMATtype = CAMRAD = WING
class = MATRIX = ARRAY
Figure 3-4c Table blocks.
22 RUNNING CAMRAD II PROGRAMS
CLASS TYPE NAME
CHANGE CORE none ignoreCASE none ignore
TRIM none ignoreTRIM ROTOR none Rotor
TRANSIENT none ignoreTRANSIENT ROTOR none Rotor
FLUTTER none ignoreFLUTTER ROTOR none Rotor
AIRFRAME STRUCTURE ignoreAIRFRAME AERODYNAMICS ignoreAIRFRAME CONTROL ignoreAIRFRAME DRIVE TRAIN ignore
ROTOR STRUCTURE RotorROTOR FLEXBEAM RotorROTOR AERODYNAMICS RotorROTOR INFLOW RotorROTOR WAKE Rotor
TABLES none ignore
The “Rotor” name is defined by the parameter ROTOR in the class= AIRFRAME, type = STRUCTURE input (default = ’ROTOR 1’,’ROTOR 2’, . . . , ’ROTORkk’).
If there is only one block, the name is ignored. Lower case is acceptedfor class and type. Unique initial letters of class or type are accepted.Specific abbreviations and alternatives:
class = ROTOR:type = INFLOW = UNIFORM INFLOWtype = WAKE = NONUNIFORM INFLOW
Figure 3-4d Shell input blocks.
PROGRAM INPUT
read job input
read data any or all sources, overwriting
write data any or all output
extract data to plot or draw input
examine initializeddata
interactive only
input file
namelist file
print data
files for user'sgraphics routine
namelistNLJOB
input file
namelistfile(s)
RUNNING CAMRAD II PROGRAMS 23
Figure 3-5 Outline of INPUT process — input file preparation.
24 RUNNING CAMRAD II PROGRAMS
INPUT FILE PREPARATION
define files required by jobrun INPUT
BATCHnamelist NLJOB (contains parameters defining job)
TABLE FILE PREPARATION
define files required by jobrun INPUT
BATCHnamelist NLJOB (contains parameters defining job)namelist NLTABL (contains table parameters)namelist NLzz (table calculation parameters)
Figure 3-6 Form of batch INPUT job.
PROGRAM INPUT
read job input
read table parameters
generate table by oneof following methods
construct from source files
or calculate internally (read calculation parameters)
or read table file
write data any or all output
extract data to plot table
interactive only
table file
print data
files for user'sgraphics routine
namelistNLJOB
namelistNLTABL
sourcefiles
namelistNLEQN
table file
RUNNING CAMRAD II PROGRAMS 25
Figure 3-7 Outline of INPUT process — table file preparation.
26 RUNNING CAMRAD II PROGRAMS
In interactive mode, after reading the input data the INPUT program can extract the data and write it to new files,
which can then be read by the user’s graphics routines. Data can be extracted from shell input and from core input.
The first option is to extract data in order to plot or draw the shell input. The data available are blade parameters
and geometry, specifically the structure and aerodynamic information that depends on blade radius. The parameters
consist of the input variables, identified by name as defined in the input manual. The structural parameters can be
obtained at input radial stations or at the Gaussian integration points. The aerodynamic parameters can be obtained
at the input radial stations, at the aerodynamic panel edges, or at the panel mid points. The Gaussian points and
the panel mid points are where the input data are actually used. The geometry consists of chordwise and normal
offsets (x and z as a function of r), which can be used to draw the planform (top or side projection). The offsets
can be obtained relative the blade span axis, relative the reference line, or relative the element beam axis; normally
the offset relative the blade span axis (the total offset) is used. Normally the twist is suppressed in the geometry,
since otherwise twist makes the blade appear to be tapered. The structural geometry includes the elastic axis at the
nodes, which can be compared with the input elastic axis data. The aerodynamic geometry includes the quarter
chord, leading edge, and trailing edge. A script is available to run the INPUT program to extract all the information
needed to draw the planform.
The second option is to extract data in order to plot or draw core input, or examine the initialization. Before
creating the core input, there are options to override shell parameters. The flutter task may be required in order to
create all wings (the normal trim task solves for the motion of just one blade, so the aerodynamic components are
created only for that blade unless the flutter or transient task is executed or initialized). Also, aerodynamics can
be suppressed in order to create a smaller system. It is possible to plot input data (plot input as a function of radius
for wings and for beams, similar to the plot function for shell input), draw the geometry, or examine the initialized
data (for specified system pieces; this information can also be produced by the analysis program). To draw the
system, three-dimensional geometry is extracted for structural dynamic components and wings. This geometry is
for the system rest position as defined by the input data, not for the system solution. The default drawing options
for structural dynamic components are to draw the position as a line from a reference line (such as the beam axis),
for all structural dynamic interfaces. It is also possible to draw the orientation, as an axis system at the interface.
Typically the components identified to draw are “all structural dynamic components” and “lifting line wings”. For
most structural dynamic components, if there are more than two locations then the user must identify two of them
as the end points of the reference line. The locations on the airframe component defined by the rotorcraft shell
are the hub nodes of all rotors; then the swashplate nodes of all rotors; then general locations; and finally the four
aerodynamic collocation points. A general location can be defined on the shaft axis below the swashplate, so a
reference line that connects this point and the hub node looks like the rotor shaft. For blade elements (rigid bodies
or beams), the first two locations defined by the rotorcraft shell are the ends of the beams. For wings, the default
option is recommended. Note that the geometry of a wing consists of the quarter chord and three-quarter chord
points, and the planform is extrapolated from these points to the leading edge, trailing edge, and wing tips.
Figure 7 is an outline of the table file preparation process, and figure 6 shows the form of a batch job to run
the analysis. A table class and type are selected. The table is generated by constructing it from one or more source
files; by internal calculation; or by reading the table file (a table of the class and type selected). For airfoil tables
(C81, standard, or CAMRAD), the source files can be C81 or standard airfoil tables. For standard two-dimensional,
three-dimensional, and four-dimensional tables, reading the source file is the same as reading the table file. The
required file names (or logical names) are: INPUTDECKn, INPUTTABLE, and OUTPUTTABLE; JOBINPUT and
RUNNING CAMRAD II PROGRAMS 27
JOBOUTPUT. The namelist NLzz is only required when the table is calculated internally. Its name and contents
depend on the table class/type (NLEQN for airfoil tables). In interactive mode, after producing the table the INPUT
program can extract the data and write it to new files, which can then be read by the user’s graphics routines. The
extraction options depend on the table class and type.
For two-dimensional, three-dimensional, and four-dimensional tables, the data can be extracted as a function
of one independent variable, for selected values of a second independent variable and one value of the remaining
variables.
For airfoil tables, the first option is to extract data in order to plot the table, perhaps with a stall delay factor.
The quantities available are lift, drag, or moment as a function of angle of attack for selected Mach numbers;
lift, drag, or moment as a function of Mach number for selected angles of attack; drag or moment as a function
of lift, for one Mach number. The second option is to identify dynamic stall parameters or airfoil characteristics
from the airfoil table data. The dynamic stall parameters define the trailing edge separation point function, for
the Leishman-Beddoes or ONERA BH model. The airfoil characteristics include zero lift angle, drag at zero
lift, moment at zero lift, lift-curve slope, moment slope, aerodynamic center shift, and drag recovery factor. It is
possible to identify the separation point parameters and airfoil characteristics (at a selected Mach number; and
produce a plot of lift coefficient and separation point function as a function of angle of attack, from the table data
and from the identified separation point parameters); identify the critical lift coefficient (at all Mach numbers);
produce a two-dimensional table file (dynamic stall parameters as a function of Mach number and span station, to
be pasted into the dynamic stall file); plot the airfoil characteristics (one characteristic or parameter, as a function
of Mach number); or change the identification options.
3-4.2 Analysis: Program CAMRADII
The program CAMRADII performs the analysis of the aeromechanical system. Figure 8 is an outline of the
process, and figure 9 shows the form of a batch job to run the analysis.
The program first reads namelist NLJOB, containing parameters that define the job. Then shell and core
namelists are read for each case, as NLDEF—NLVAL namelist pairs. The namelist NLJOB is always read from
the default NUIN unit. File unit numbers and system parameters are set by parameters in namelist NLJOB. File
JOBINPUT need be defined only if its unit number is not 5 (NUIN). File JOBOUTPUT need be defined only if
its unit number is not 6 (NUOUT). All parameters in namelist NLJOB have defaults, which are set (and may be
changed) in the main program.
For shell input, the required file names (or logical names) are: SHELLINPUT, PLOTFILE, TRIMSOLUTION-
INn and TRIMSOLUTIONOUTn, TRANRESTARTIN and TRANRESTARTOUT, and STATFILE; JOBINPUT and
JOBOUTPUT. The table file names are defined by the shell class = TABLES input.
For core input, the required file names (or logical names) are: COREINPUT, PLOTFILE, TRIMSOLUTION-
INn and TRIMSOLUTIONOUTn, TRANRESTARTIN and TRANRESTARTOUT, and STATFILE; JOBINPUT and
JOBOUTPUT. The table file names are defined by core input.
Typically the unformatted input file is only read for the first case, so following cases inherit all previous input.
With the shell input type, changes to the core by core namelist input are saved, and implemented automatically for
subsequent cases.
PROGRAM CAMRAD II
read job input
following for each case
job output
plot file
namelistNLJOB
namelistsNLDEF NLVAL
namelistsNLDEFNLVAL
inputfile
tablefile
shell and core input read input file
read shell namelist
generate core input from shell input; implement core changes from previous cases
read core namelist
basic initialization case and environment parameters; construct list of tables required
read table files
print header and input parameters
initialize, print initialized parameters
analysis
job separatecommand filesstream
28 RUNNING CAMRAD II PROGRAMS
Figure 3-8 Outline of CAMRADII process.
RUNNING CAMRAD II PROGRAMS 29
SHELL INPUT
define input files required by jobshell input file SHELLINPUT (contains baseline parameters)airfoil file(s) and other table files
define output files required by jobplot data file PLOTFILE
run CAMRADII
namelist NLJOB (contains parameters defining job)shell and core namelist for each case (NLDEF and NLVAL)
CORE INPUT
define input files required by jobcore input file COREINPUT (contains baseline parameters)table files
define output files required by jobplot data file PLOTFILE
run CAMRADII
namelist NLJOB (contains parameters defining job)core namelist for each case (NLDEF and NLVAL)
Figure 3-9 Form of batch CAMRADII job.
case 1
JOB 1
case 2
case 1
JOB 2
file
OPITJR
OPITJW
OPINIT
can skip uniform inflow (ITERU = 0), or even skip trim task (TMTASK = 2)
OPINIT defines trim initialization: loop variables and/or system response
30 RUNNING CAMRAD II PROGRAMS
Figure 3-10 Initialization of trim solution from previous case or job.
RUNNING CAMRAD II PROGRAMS 31
For the second and subsequent cases of a job, it is possible to initialize the response from the trim solution
of the previous case. Optionally the case can be initialized using the loop solution; the part solution reference
response; or the part solution total response. The loop solution refers to the values of the derivative matrices,
control, wind, operating condition, and period parameters involved in the trim iteration. Thus it is possible to start
the solution from that of the previous case. This trim solution can also be written to a file. Then a case can be
initialized by reading such a file from a previous job. Figure 10 illustrates the initialization of the trim solution
from a previous case or previous job. Model changes from case to case are handled by storing the kind and name
of the response from the previous case. For the next case, the previous case response is searched for a match to
the current kind and name. It is assumed that if the structure of the response records has been changed, then the
corresponding names are changed as well. If the names match, the analysis only checks that the sizes of the data
structures are the same.
A restart capability is implemented for the transient task. The transient solution can be interrupted at a
specified time in the numerical integration; or at a specified place in an outer iteration loop. At the interruption
the complete solution is saved by writing all the system data vectors and commons to a file. Then the transient
output is produced, using the solution obtained so far; and the transient task is terminated. Another job can jump
to the interrupt point, and restore the solution by reading all the system data vectors and commons from the restart
file. Then the transient task continues; the results are the same as if the transient task were completed in a single
job. It is possible to interrupt again a restarted transient task. The purpose of this restart capability is to allow the
progress of the transient task to be assessed by examining the output at an intermediate point in the solution. None
of the analysis input can be changed for the restarted job (except the point for the next interrupt). The transient
analysis is completely specified by the initial job.
The core write modules handle print, printer-plot, and write to plot file operations. A write module is defined
by identifying it in the loop input data. The parameters controlling the write operations are obtained from the
corresponding system piece. Flutter output is also produced by analysis of the flutter equations; the write modules
produce output during evaluation of the equations. All calculations are performed by components, as part of the
solution process. No calculations are performed by the write modules, only formatting and transformations. Figure
11 summarizes the available write modules. The identification of the shell write module has the form “XXXX nn”.
Actually only the last characters are used (n = 0 is obtained if these characters are not numbers). The rotorcraft shell
implements the following write modules for trim: name = ROTOR1, ROTOR2, ROTORn, ROTORCRAFT1000,
FRAMES2000. For transient and flutter, no write modules are implemented by the rotorcraft shell.
3-4.3 Plot File Examination: Program OUTPUT
Selected output can be directed to a plot data file. This file includes only enough header information and titles
to identify its data. Reference must be made to the printed output for a complete description of the output. Figure
12 lists the basic titles found in the plot file. The plot file can be read using the OUTPUT program. Alternatively
the user can write special routines to read the plot file. The plot file format is suitable for either formatted or
namelist read of the contents.
The program OUTPUT reads and extracts data from a plot file that has been produced by the analysis. The
program can also print (to a log file) the linear differential equations of the flutter analysis. The program OUTPUT
is intended to be operated in interactive mode. Figure 13 is an outline of the process. The extracted data are written
to new files, which can then be read by the user’s graphics routines. The plot file data are considered by section;
32 RUNNING CAMRAD II PROGRAMS
TASK KIND NAME
trim shell XXXX nnconvergence looploop looppart partmodes mode setoutput of part partoutput outputgraphics part
transient shell XXXX nnconvergence looploop looppart partmodes mode setoutput of part partoutput outputgraphics part
flutter shell XXXX nnloop looppart partmodes mode set
flutter analysis, constant equationsflutter analysis, periodic equations
Figure 3-11 Core write modules.
RUNNING CAMRAD II PROGRAMS 33
TASK WRITE MODULE FIRST TITLE OF SECTION
trim convergence STATUS ** XXXXloop STATUS ** XXXXpart TRIM SOLUTION ** PART = namemodes TRIM SOLUTION ** MODE SET = nameoutput TRIM SOLUTION ** OUTPUT = namegraphics TRIM GRAPHICS ** PART = name
transient convergence STATUS ** XXXXloop STATUS ** XXXXpart TRAN SOLUTION ** PART = namemodes TRAN SOLUTION ** MODE SET = nameoutput TRAN SOLUTION ** OUTPUT = namegraphics TRAN GRAPHICS ** PART = name
flutter loop FLUT SOLUTION ** LOOP = namepart FLUT SOLUTION ** PART = namemodes FLUT SOLUTION ** MODE SET = name
flutter analysis FLUT SOLUTION ** ANALYSIS
Figure 3-12 Plot file titles.
PROGRAM OUTPUT
identify plot files
read titles and data, for each section and subsection
print linear differential equations of flutter analysis
plotfile
extract data to plot or draw output files for user's
graphics routine
log file
34 RUNNING CAMRAD II PROGRAMS
Figure 3-13 Outline of OUTPUT process (interactive only).
RUNNING CAMRAD II PROGRAMS 35
each section is the output for some quantity. It is possible to list the sections, moving down or up the sections while
displaying titles; perhaps jumping down to the next status line, the next case, or the next graphics section. Carriage
return produces the default, which is to move down to the next section. It is possible to identify a section (from a
compact list); find a title (search for a string in the title); find a title again; change the list options; or examine the
current section (extract the data to a file for the graphics routines). Quantities that can be extracted include time
history data (function of azimuth or time); wing sensors (as a function of azimuth for selected radial stations, or
as a function of radial station for selected azimuths); and wake geometry data (three-dimensional geometry).
The INPUT and OUTPUT programs can extract data and write it to new files, which can then be read by
the user’s graphics routines. The utilities that produce these new files can be modified as appropriate. The
utility subroutines FILEXP, FILEXA, and FILEXD write the extracted data to a file. FILEXP handles plotable-data,
consisting of y1(x), . . . , yn(x) for set of points xi. The new file produced has the format shown in figure 14. There
are at most 40 characters in the code, and 12 characters in the labels. Blanks are removed from the labels. FILEXD
handles drawable-data, consisting of (x, y, z) coordinates for a set of points. The new file produced has the format
shown in figure 15. Additional legends can be present in the data section. There are at most 40 characters in the
code, and 80 characters in the legend. The export formats available are the CAMRAD standard (figures 14 and
15), with space, tab, or comma delimiters; Tecplot; and DXF (for draw only). The default export format can be
changed by revising the main programs.
3-4.4 Graphics and Animation
A graphical image of the trim or transient solution, either a still picture or an animation, can be produced
using Mathematica or Tecplot. The graphics data required can be sent to the plot file, and read by the OUTPUT
program. The OUTPUT program generates two input files for Mathematica (a command file and a geometry file)
or one input file for Tecplot. Mathematica or Tecplot produces the animation. Note that the INPUT program is
used to extract the geometry of the system rest position, not the solution. The objects that can be drawn include the
structure geometry, structural sensors, wings, wing sensors, and wake geometry. The structure geometry is drawn
as lines, or with appended shapes. Wings are drawn as surfaces, or with defined airfoil shapes. These shapes of
the structure and wings are defined when the OUTPUT program is run, they are not part of the CAMRAD II input.
Structural sensors are typically drawn as arrows representing a force or moment acting at a point on the system.
Wing sensors display section aerodynamic quantities along the wing span. Typically the OUTPUT program is run
using a script file, to facilitate changes.
The Mathematica input consists of a command file and a geometry file. The user should read the comments
in the command file (either using Mathematica, or reading it as a text file). The animation is produced by opening
a Mathematica notebook, and executing commands to set the current working directory to the location of the two
input files, read the geometry file, and read the command file. Then the cells are executed by selecting them in the
order they appear (the contents of most of cells are hidden), and pressing “enter”. A palette is created containing
buttons that can be used to control the display, including changing the orientation, size, and viewpoint. Such
changes are most efficiently made using a single frame. Image frames are created for a number of azimuth or time
steps, and from them an animation can be created.
The Tecplot input file contains the geometric data for a single time step. To produce the image, open Tecplot
and load this data file using the “3D Cartesian” plot type. Activate the “Contour” zone layer to display surfaces.
The “Mesh” zone layer displays lines and polygon edges. The color is specified directly for lines. For surfaces
36 RUNNING CAMRAD II PROGRAMS
(polygons) the color is defined in terms of the contour values. An animation is produced by writing a script to run
the CAMRAD II OUTPUT program and produce a Tecplot input file for each time step. Then a Tecplot macro can
be used to load the files and create the animation.
From the information available in the plot file, structural elements are drawn as lines, wing planforms are
drawn as surfaces, and wake vorticity is drawn as lines and sheets. In order to draw the structure and wings as
more general objects, the OUTPUT program can read files of shape data. These files are CAMRAD II tables, of
class = unstructured and type = real. The format for unstructured real tables consists of a title line, an identification
line, a description line, and then real numbers.
For wings, the section can be defined as an NACA 4-digit airfoil (generated directly, without reading a file);
by a section file; or by a coordinate file. The section file or coordinate file is a real unstructured table file, containing
data at a set of span stations. The description line (third line in the file) has integers describing the file contents.
Figure 16 defines the format of the section file, and figure 17 defines the format of the coordinate file. The file
data are used to construct the wing upper and lower surface, scaled to a unit chord. The wing is drawn as a set of
polygons, interpolating the file data as required.
For structural elements, the shape can be defined by a polygon file, or a section file. The file is a real
unstructured table file, containing spacial coordinates of the shape. The description line (third line in the file) has
integers describing the file contents. Figure 18 defines the format of the polygon file, and figures 19 and 20 define
the formats of the section file. The file data are used to construct the structural shapes, drawn as a set of polygons,
with the following conventions for the data.
a) The coordinates are in axes defined by three points identified during execution of the OUTPUT program. The
first point is the origin; the x-axis is the vector from the first point to the second point; and the y-axis is the vector
(the part normal to the x-axis) from the first point to the third point.
b) The file contains a scale factor L, and a dimensional offset (x0, y0, z0). If the value of L in the file is zero, then
the scale factor is the length from the first point to the second point. All x, y, z values are multiplied by L, and
then the origin is shifted by (x0, y0, z0).
c) In a polygon file (figure 18), all the polygons have the same number of sides (three or four).
d) A section file defines a set of axial stations (along the x-axis), and at each axial station a set of circumferential
points (the same number at each axial station). The axial shape is a function S(x) that multiplies the circumferential
coordinates. The axial shape can be specified by input values (figure 19), or by a designated shape (figure 20).
e) The input axial shape (figure 19) consists of a set of arbitrary x and S values. The length of the body is the
difference between the maximum and minimum x values, times the scale factor L.
f) The designated axial shape (figure 20) can be a circle or ellipse, or an airfoil (NACA 4-digit thickness distribution);
with x = 0. to 1., and the maximum S equal the thickness value in the file. The length of the body is the scale
factor L.
g) The section (circumferential points) can be defined by a set of y and z values; a set of r and θ values (y = r cos θ,
z = r sin θ); or a shape. For the first two options, the values are arbitrary. For the shape option (specified by kind
and form), y = 0. to 1. and form defines the thickness (maximum z).
RUNNING CAMRAD II PROGRAMS 37
3–5 Input Conventions
Dimensional input parameters can be in English or metric (SI) units, using consistent length-mass-time
system: foot-slug-second or meter-kilogram-second. The unit system is selected by the parameter OPUNIT in
class = CASE. Angles are input in degrees. There are the following exceptions to this convention in the rotorcraft
shell: (a) aircraft gross weight is in lb or kg; (b) wind speed and aircraft speed can be in knots.
In the core input, a blank name or label produces the default (if a default exists).
Rotation matrices required by the analysis are defined in a standard manner, using input parameters of the
following form.
REP representationCROT(3,3) rotation matrixANGLE(3) rotation anglesAXIS(3) rotation axes
The representation options and required parameters are:
a) REP = 0 for unit rotation matrix C = I .
b) REP = 1 for Euler angles, C = XY Z. ANGLE is the rotation angles (deg) of the X , Y , and Z rotations.
c) REP = 2 for Rodrigues parameters, C(p). ANGLE is the Rodrigues parameters p (deg). Given the rotation
vector v = uψ, the Rodrigues parameters are defined as p = 2u tan(ψ/2).
d) REP = 3 for arbitrary Euler angles, C = UV W . ANGLE is the rotation angles (deg) and AXIS is the rotation
axis of the U , V , and W rotations. AXIS = ±123 for rotation about the ±XY Z axis.
e) REP = 4 for input rotation matrix C. CROT is the matrix.
3–6 Rotorcraft Shell
The rotorcraft shell has the following special characteristics. The CAMRADII program usually requires
unformatted airfoil table file(s). Other tables may be needed as well.
The rotorcraft shell implements the following write modules for trim: name = ROTOR1, ROTOR2, ROTORn,
ROTORCRAFT1000, FRAMES2000. For transient and flutter, no write modules are implemented by the rotorcraft
shell.
There are the following exceptions to the conventions for units of input parameters in the rotorcraft shell: (a)
aircraft gross weight is in lb or kg; (b) wind speed and aircraft speed can be in knots.
38 RUNNING CAMRAD II PROGRAMS
header linesnumber of dependent variables = N, number of points = NNNNCODEcodeLABELSxlabel y1label . . . ynlabelDATAxvalue y1value . . . ynvalue. . . .. . . .xvalue y1value . . . ynvalue
Figure 3-14 Format of file produced by FILEXP.
header linesCODEcodeLEGENDlegendDATAxvalue yvalue zvalue penaction. . . .. . . .xvalue yvalue zvalue penaction
pen action (fourth field) can have the following values:NEW = start new line (move to point with pen up)NEWn = start new line, and change to line type n = 1–4blank = continue old line (move to point with pen down)
Figure 3-15 Format of file produced by FILEXD.
RUNNING CAMRAD II PROGRAMS 39
TITLEIDENTIFICATIONnumberofspanstations=Nspanstation=r kind=k form=f ! N lines... ... ...spanstation=r kind=k form=fEND OF FILE
span stations sequential and uniquekind = 1: line; form present but ignoredkind = 2: ellipse; form = 100*thickness/chordkind = 3: circle; form present but ignoredkind = 4: NACA 4-digit airfoil; form = 4-digit codekind = 5: NACA 5-digit airfoil; form = 5-digit code
Figure 3-16 Format of wing section file.
TITLEIDENTIFICATIONnumberofspanstations=N maxchord(upper)=MU maxchord(lower)=MLspanstation=r ! N groupsnumberofchordvalue(upper)=KUnumberofchordvalues(lower)=KLxupper=... ! MU values, first KU usedyupper=... ! MU values, first KU usedxlower=... ! ML values, first KL usedylower=... ! ML values, first KL used...END OF FILE
span stations sequential and uniqueupper and lower surface coordinates, scaled to chord = 1.x = chordwise coordinate (0. to 1.), y = normal coordinate
Figure 3-17 Format of wing coordinate file.
TITLEIDENTIFICATIONnumberofpolygons=N numberofsides=Kscale=L x0=A y0=B z0=C ! scale factor and offsetfacen vertexk= x y z ! N faces, K vertices each...facen vertexk= x y zEND OF FILE
number of sides = 3 or 4L=0. for default scale factor
Figure 3-18 Format of structure polygon file.
40 RUNNING CAMRAD II PROGRAMS
TITLEIDENTIFICATIONaxial=N circumferential=M axialdefn=1 sectiondefn=1 endpoly=Escale=L x0=A y0=B z0=C ! scale factor and offsetaxialstation=x scalefactor=S ! N groupsy=... ! M valuesz=... ! M values...END OF FILE
TITLEIDENTIFICATIONaxial=N circumferential=M axialdefn=1 sectiondefn=2 endpoly=Escale=L x0=A y0=B z0=C ! scale factor and offsetaxialstation=x scalefactor=S ! N groupsr=... ! M valuesθ=... ! M values...END OF FILE
TITLEIDENTIFICATIONaxial=N circumferential=M axialdefn=1 sectiondefn=3 endpoly=Escale=L x0=A y0=B z0=C ! scale factor and offsetaxialstation=x scalefactor=S ! N groupskind=k form=f...END OF FILE
axial definition = 1 for inputsection definition = 1 (y and z), 2 (r and θ), 3 (shape)end polynomial = 0 (no end), 1 (end)L=0. for default scale factoraxial stations sequential and unique
section definition = 3 (shape): y = 0. to 1., z from kindkind = 1: line; form present but ignoredkind = 2: ellipse; form = 100*thickness/chordkind = 3: circle; form present but ignoredkind = 4: NACA 4-digit airfoil; form = 4-digit codekind = 5: NACA 5-digit airfoil; form = 5-digit code
Figure 3-19 Format of structure section file, input axial definition.
RUNNING CAMRAD II PROGRAMS 41
TITLEIDENTIFICATIONaxial=N circumferential=M axialdefn=A sectiondefn=1scale=L x0=A y0=B z0=C ! scale factor and offsetthickness=t ! axial thickness ratioy=... ! M valuesz=... ! M valuesEND OF FILE
TITLEIDENTIFICATIONaxial=N circumferential=M axialdefn=A sectiondefn=2scale=L x0=A y0=B z0=C ! scale factor and offsetthickness=t ! axial thickness ratior=... ! M valuesθ=... ! M valuesEND OF FILE
TITLEIDENTIFICATIONaxial=N circumferential=M axialdefn=A sectiondefn=3scale=L x0=A y0=B z0=C ! scale factor and offsetthickness=t ! axial thickness ratiokind=k form=fEND OF FILE
axial definition A = 2 circle/ellipse, 3 airfoilsection definition = 1 (y and z), 2 (r and θ), 3 (shape)L=0. for default scale factorthickness = fraction (1.0 for circle)
section definition = 3 (shape): y = 0. to 1., z from kindkind = 1: line; form present but ignoredkind = 2: ellipse; form = 100*thickness/chordkind = 3: circle; form present but ignoredkind = 4: NACA 4-digit airfoil; form = 4-digit codekind = 5: NACA 5-digit airfoil; form = 5-digit code
Figure 3-20 Format of structure section file, other axial definitions.
42 RUNNING CAMRAD II PROGRAMS
Chapter 4
OUTLINE OF PROGRAM INPUT DESCRIPTION
The remainder of this volume describes the input for the analysis program CAMRADII and the input and table
file preparation program INPUT. The chapters present the following information:
a) Core input file preparation:
description of namelist NLJOB (parameters defining job)
summary of files required
b) Table file preparation:
description of namelist NLJOB (parameters defining job)
description of namelist NLTABL (table parameters)
description of namelist NLzz (table calculation parameters)
summary of files required
c) CAMRADII analysis:
description of namelist NLJOB (parameters defining job)
summary of files required
d) Core input, by class and type:
description of namelist NLVAL parameters
e) Table file formats
Figure 1 lists the class and type for the available core input. The input parameters for core components are described
in a separate volume. Figure 2 lists the class and type for the available tables.
44 OUTLINE OF PROGRAM INPUT DESCRIPTION
CLASS TYPE NAME
CASE none ignore
COMPONENT typeFRAME noneINTERFACE STRUCTURAL DYNAMICINTERFACE INPUT/OUTPUTOUTPUT noneINPUT none
WIND none ignoreOPERATING CONDITION nonePERIOD none
TRIM LOOP NO SOLUTIONTRIM LOOP SUCCESSIVE SUBSTITUTIONTRIM LOOP NEWTON RAPHSONTRIM LOOP REGULATORTRIM PART NO SOLUTIONTRIM PART IMPLICITTRIM PART STATICTRIM PART HARMONICTRIM PART TIME FINITE ELEMENT
TRANSIENT none ignoreTRANSIENT LOOP NO SOLUTIONTRANSIENT LOOP SUCCESSIVE SUBSTITUTIONTRANSIENT PART NO SOLUTIONTRANSIENT PART TRIM SOLUTIONTRANSIENT PART IMPLICITTRANSIENT PART INTEGRATION
FLUTTER none ignoreFLUTTER LOOP noneFLUTTER PART NO SOLUTIONFLUTTER PART INTERFACEFLUTTER PART DIFFERENTIAL EQUATIONS
TRANSFORM noneMODES noneRESPONSE RIGIDRESPONSE VARIABLEWEIGHTS none
If there is only one block, the name is ignored. Lower case is accepted for class andtype. Unique initial letters of class or type are accepted. Specific abbreviations andalternatives:
class = TRIM LOOP:type = NO SOLUTION = NULLtype = NEWTON RAPHSON = NR
class = TRIM PART, TRANSIENT LOOP, TRANSIENT PART:type = NO SOLUTION = NULL
class = FLUTTER PART:type = NO SOLUTION = NULLtype = DIFFERENTIAL EQUATIONS = DE = EQUATIONS
Figure 4-1 Core input blocks.
OUTLINE OF PROGRAM INPUT DESCRIPTION 45
CLASS TYPE NAME
TWO DIMENSIONAL STANDARDTHREE DIMENSIONAL STANDARDFOUR DIMENSIONAL STANDARD
AIRFOIL STANDARDAIRFOIL C81AIRFOIL CAMRAD
MATRIX STANDARD
UNSTRUCTURED REALUNSTRUCTURED INTEGER
Lower case is accepted for class and type. Unique initial letters of class or type areaccepted. Specific abbreviations and alternatives:
class = TWO DIMENSIONAL = 2Dclass = THREE DIMENSIONAL = 3Dclass = FOUR DIMENSIONAL = 4D
class = AIRFOIL:type = C81 = FIXED FORMATtype = CAMRAD = WING
class = MATRIX = ARRAY
Figure 4-2 Table blocks.
46 OUTLINE OF PROGRAM INPUT DESCRIPTION
Chapter 5
CORE INPUT FILE PREPARATION
Namelist NLJOB of program INPUT
Variable Type Description
job descriptionOPFILE int input or table category
input: 1 for core, 2 for shelltable: 3 for standard two dimensional, 4 for standard three dimensionaltable: 5 for standard airfoil, 6 for C81 airfoil, 7 for CAMRAD airfoiltable: 8 for standard matrix, 9 for real unstructured, 10 for integer unstructuredtable: 11 for standard four dimensional
NPRINT int print of input data (0 for none)print of core input data
NPRNTC int number of blocks printed (0 for none, maximum 100)identification of blocks (blank for all)
PCLASS(NPRNTC) c*32 classPTYPE(NPRNTC) c*32 typePNAME(NPRNTC) c*32 nameNFILEI int read of input file (0 for none)NLISTI int read of namelist file (number of files; 0 for none)NFILEO int write of input file (0 for none)NLISTO int write of namelist file (0 for none)
input/output unit numbersNUIN int job namelist and interactive inputNUOUT int printer outputNFDATO int input file writeNFNLO int namelist file writeNFDATI int input file read
CORE INPUT FILE PREPARATION 48
NFNLI int namelist file read (NFNLI to NFNLI + n − 1, n files; NFNLI for all if NFUMAX = −1)NFLOG int interactive mode log file writeNFXDAT int interactive mode extracted plot-data file writeNFXDRW int interactive mode extracted draw-data file writeNFXDAX int interactive mode extracted axes-data file writeNFXDAF int interactive mode extracted airfoil-parameters file write
The following table summarizes the files that may be required for the input file preparation.
file name or logical name unit number control parameter
input file INPUTFILE NFDATI NFILEI
namelist file INPUTLISTn NFNLI (1) NLISTI
input file OUTPUTFILE NFDATO NFILEO
namelist file OUTPUTLIST NFNLO NLISTO
job input JOBINPUT (2) NUIN
job output JOBOUTPUT (3) NUOUT
(1) NFNLI to NFNLI + n − 1 for n files (n = NLISTI); or NFNLI for all(2) file definition required only if NUIN �= 5(3) file definition required only if NUOUT �= 6
The input file preparation program first reads the namelist NLJOB, containing parameters defining the job. Abatch job has the following structure:
define files required by jobrun INPUT
BATCHnamelist NLJOB
CORE INPUT FILE PREPARATION 49
Variable Initial Values
OPFILE 2OPSRC 1NPRINT 1NPRNTC 0NFILEI 0NLISTI 1NLISTC 0NFILEO 1NLISTO 0
NUIN 5NUOUT 6NFDATO 41NFNLO 42NFDATI 43NFNLI 44NFDECK 44NFLOG 40NFXDAT 30NFXDRW 31NFXDAX 32NFXDAF 33
CORE INPUT FILE PREPARATION 50
Chapter 6
TABLE FILE PREPARATION
Namelist NLJOB of program INPUT
Variable Type Description
job descriptionOPFILE int input or table category
input: 1 for core, 2 for shelltable: 3 for standard two dimensional, 4 for standard three dimensionaltable: 5 for standard airfoil, 6 for C81 airfoil, 7 for CAMRAD airfoiltable: 8 for standard matrix, 9 for real unstructured, 10 for integer unstructuredtable: 11 for standard four dimensional
OPSRC int source of table (1 for source files, 2 for internal, 3 for table file)NPRINT int print of table (0 for none, 1 for parameters, 2 for parameter and data)NFILEO int write of table file (0 for none)
input/output unit numbersNUIN int job namelist and interactive inputNUOUT int printer outputNFDATO int table file writeNFDATI int table file readNFDECK int table source file read (NFDECK to NFDECK + n − 1, n files); NFDECK for all if NFUMAX = −1)NFLOG int interactive mode log file writeNFXDAT int interactive mode extracted plot-data file writeNFXDRW int interactive mode extracted draw-data file writeNFXDAX int interactive mode extracted axes-data file writeNFXDAF int interactive mode extracted airfoil-parameters file write
TABLE FILE PREPARATION 52
The following table summarizes the files that may be required for the table file preparation.
file name or logical name unit number control parameter
source file INPUTDECK (1) NFDECK (2) OPSRC = 1
table file INPUTTABLE NFDATI OPSRC = 3table file OUTPUTTABLE NFDATO NFILEO
job input JOBINPUT (3) NUIN
job output JOBOUTPUT (4) NUOUT
(1) INPUTDECKn or INPUTDECKnFLAPm for CAMRAD airfoil table(2) NFDECK to NFDECK + n − 1 for n files; or NFDECK for all(3) file definition required only if NUIN �= 5(4) file definition required only if NUOUT �= 6
The table file preparation program first reads the namelist NLJOB, containing parameters defining the job. Thenthe program may read the namelist NLTABL, containing table parameters. If the table source is internal generation(OPSRC = 2), the program reads the namelist NLzz containing table calculation variables. A batch job has thefollowing structure:
define files required by jobrun INPUT
BATCHnamelist NLJOB
namelist NLTABL
namelist NLEQN
Only for table class = AIRFOIL can the table be generated from source files or internally (OPSRC = 1 or 2). Sonamelists NLTABL and NLzz = NLEQN are only required for table class = AIRFOIL. For other table classes, thetable file preparation program does not transform the table data.
Table class = AIRFOIL, type = STANDARD or C81: The program requires one source file INPUTDECK or onenamelist NLEQN (OPSRC = 1 or 2).
Table class = AIRFOIL, type = CAMRAD, without trailing edge flap: The span station number is n = 1 to NRB.The program requires a source file INPUTDECKn or a namelist NLEQN (OPSRC = 1 or 2) for each span stationR(n).
TABLE FILE PREPARATION 53
Table class = AIRFOIL, type = CAMRAD, with trailing edge flap: The span station number is n = 1 to NRB;the flap angle number is m = 1 to ND(n) The program requires a source file INPUTDECKnFLAPm or a namelistNLEQN (OPSRC = 1 or 2) for each span station R(n) and flap angle. The namelists are ordered with span stationas the outer loop and flap angle as the inner loop. The flap angles (from the deck or the namelist) must be uniqueand sequential, and must include zero.
Variable Initial Values
OPFILE 2OPSRC 1NPRINT 1NPRNTC 0NFILEI 0NLISTI 1NLISTC 0NFILEO 1NLISTO 0
NUIN 5NUOUT 6NFDATO 41NFNLO 42NFDATI 43NFNLI 44NFDECK 44NFLOG 40NFXDAT 30NFXDRW 31NFXDAX 32NFXDAF 33
TABLE FILE PREPARATION 54
Table parameters namelist NLTABL for table class = AIRFOIL, type = STANDARD or C81
Variable Type Description
table generationconstruction internal
TITLE c*80 title for airfoil dataOPFLAP int trailing edge flap (0 for none)
angle of attack and Mach numberlift coefficient
NAL int number of angle of attack values (maximum 400)NML int number of Mach numbers values (maximum 100)AL(NAL) real angles of attack (deg)ML(NML) real Mach numbers
drag coefficientNAD int number of angle of attack values (maximum 400)NMD int number of Mach number values (maximum 100)AD(NAD) real angles of attack (deg)MD(NMD) real Mach numbers
moment coefficientNAM int number of angle of attack values (maximum 400)NMM int number of Mach number values (maximum 100)AM(NAM) real angles of attack (deg)MM(NMM) real Mach numbers
flap lift coefficientNALF int number of angle of attack values (maximum 400)NMLF int number of Mach numbers values (maximum 100)ALF(NAL) real angles of attack (deg)MLF(NML) real Mach numbers
flap drag coefficientNADF int number of angle of attack values (maximum 400)NMDF int number of Mach number values (maximum 100)ADF(NAD) real angles of attack (deg)MDF(NMD) real Mach numbers
TABLE FILE PREPARATION 55
flap moment coefficientNAMF int number of angle of attack values (maximum 400)NMMF int number of Mach number values (maximum 100)AMF(NAM) real angles of attack (deg)MMF(NMM) real Mach numbers
construction from source fileOPFORM int type of source file (0 same as table being constructed, 1 standard, 2 C81)OPTRAN int angle of attack and Mach number array (0 from this namelist, 1 from source file)OPSTD int output form of standard airfoil table (1 for c(α, M), 2 for c(M, α))
NA and NM ≥ 2; A and M unique and sequential.
For type = C81: File format limits NA and NM to a maximum value of 99. Only the first 30 characters of TITLE
are used for the header (first line of the file).
Construction from source file (OPSRC = 1): Use OPFORM or OPTRAN; OPSTD (if type = STANDARD); andthe angle of attack and Mach number parameters if OPTRAN = 1. Do not use TITLE or OPFLAP (obtained fromsource file).
Construction internal (OPSRC = 2): Do not use OPFORM or OPTRAN.
Construction from table file (OPSRC = 3): Only use OPSTD (if type = STANDARD).
Variable Initial Values
NAL 2NML 2AL -180.,180.,398*0.ML 0.,1.,98*0.NAD 2
TABLE FILE PREPARATION 56
NMD 2AD -180.,180.,398*0.MD 0.,1.,98*0.NAM 2NMM 2AM -180.,180.,398*0.MM 0.,1.,98*0.NALF 2NMLF 2ALF -180.,180.,398*0.MLF 0.,1.,98*0.NADF 2NMDF 2ADF -180.,180.,398*0.MDF 0.,1.,98*0.NAMF 2NMMF 2AMF -180.,180.,398*0.MMF 0.,1.,98*0.OPTRAN 1OPSTD 1
TABLE FILE PREPARATION 57
Table parameters namelist NLTABL for table class = AIRFOIL, type = CAMRAD
Variable Type Description
table generationTITLE c*80 title for wing dataOPFLAP int trailing edge flap (0 for none)
angle of attack and Mach numberangle of attack boundaries
NAB int number of boundaries (maximum 20)NA(NAB) int indices at boundariesA(NAB) real angle of attack at boundaries (deg)
Mach number boundariesNMB int number of boundaries (maximum 20)NM(NMB) int indices at boundariesM(NMB) real Mach number at boundaries
span stationsNRB int number (maximum 20)R(NRB) real stationND(NRB) int number of trailing edge flap angles at span station (maximum 50)RNTRP int spanwise interpolation option (0 interpolate, 1 search)
start of searchASTART real angle of attack (deg)MSTART real Mach number
construction from source fileOPFORM int type of source files (1 standard, 2 C81)
NAB and NMB ≥ 2; NRB ≥ 1; A, M, R, NA, NM unique and sequential.NA and NM start at 1; A range −180 to 180.
The number of airfoil decks required is determined by the number of span stations NRB (and ND with a trailingedge flap). The program requires a source file INPUTDECKn or a namelist NLEQN (OPSRC = 1 or 2) for eachspan station R(n) (n = 1 to NRB), ordered from root to tip. With a trailing edge flap, the program requires a source
TABLE FILE PREPARATION 58
file INPUTDECKnFLAPm or a namelist NLEQN (OPSRC = 1 or 2) for each span station R(n) and flap angle (m =1 to ND(n)).
The span station can be searched or interpolated (RNTRP). In both cases, there are NRB sets of coefficients,corresponding to span stations R(k), for k = 1 to NRB. For interpolation, R(k) defines the value for the k-thairfoil. For search, R(k) defines the beginning of the range of the k-th airfoil. In the latter case the table data areused over the range R(k) to R(k + 1).
With a trailing edge flap: ND ≥ 1 (assume flap angle is zero if ND = 1). The flap angles must be unique andsequential at each span station, and must include zero. In order to use spanwise interpolation (RNTRP = 0) witha flap, should have tables at the span stations of the flap edges.
The Reynolds number and flap angle are obtained from the reference quantities of the source.
Defaults define table with 2415 entries per span station; default increments:angle of attack = 1 deg from −30 to 30, 2 deg from 150 to −150, 10 deg elsewhereMach number = .1 from 0. to .6, .025 from .6 to .95
Construction from source file (OPSRC = 1): Use all parameters.Construction internal (OPSRC = 2): Do not use OPFORM.Construction from table file (OPSRC = 3): Use no parameters.
Refer to the theory volume for a description of the convention for angle of attack boundaries, Mach numberboundaries, and span stations.
Variable Initial Values
OPFLAP 0NAB 6NA 1,16,28,88,100,115,14*0A -180.,-150.,-30.,30.,150.,180.,14*0.NMB 3
TABLE FILE PREPARATION 59
NM 1,7,21,17*0M 0.,.6,.95,17*0.NRB 1ND 20*1RNTRP 1ASTART 0.MSTART .65OPFORM 1
TABLE FILE PREPARATION 60
Table calculation variables namelist NLEQN for table class = AIRFOIL (internal table generation)
Variable Type Description
airfoil equation parameterslift coefficient
ALPHAZ real angle of attack for zero lift (deg)CLA real lift curve slope at M = 0 (per rad)MDIV real lift divergence Mach number Mdiv
CLMAX real maximum lift c�max from M = 0 to Ms
FSTALL real maximum lift fsc�max at M = 1MSTALL real Mach number Ms for stallGSTALL real minimum lift at α = gsαstall after stallHSTALL real minimum lift hsc�max after stallCLF real stall lift at α = 45 deg
drag coefficientDEL0 real drag below stall (δ0 + δ1α + δ2α
2, α in rad)DEL1 real drag below stall (δ0 + δ1α + δ2α
2, α in rad)DEL2 real drag below stall (δ0 + δ1α + δ2α
2, α in rad)DCDDM real derivative of drag with Mach number above Mc
MCRIT real critical mach number Mc at α = 0ACRIT real angle of attack where critical mach number Mc is 0 (deg)ALPHAD real drag stall angle (deg)CDF real stall drag at α = 90 deg
moment coefficientCMAC real moment below stallCMS real stall moment at α = 90 deg
reference quantitiesRETBL1 real Reynolds number of airfoil table for Mach number = 1FLAP real trailing edge flap angle of table (deg)
All angles in degrees, coefficient derivatives per rad. Default values represent NACA 0012 airfoil.
The Reynolds number of the airfoil table is obtained from the Mach number: Re = RETBL1 × M .
TABLE FILE PREPARATION 61
Airfoil section aerodynamic characteristics are calculated from equations. Refer to the theory volume forcomplete definitions of the variables.
Variable Initial Values
ALPHAZ 0.CLA 5.7MDIV 0.75CLMAX 1.2FSTALL 0.5MSTALL 0.4GSTALL 1.2HSTALL 0.6CLF 1.12DEL0 0.0084DEL1 -0.0102DEL2 0.384DCDDM 0.65MCRIT 0.8ACRIT 33.ALPHAD 12.CDF 2.05CMAC 0.CMS -0.07RETBL1 2.E6FLAP 0.
TABLE FILE PREPARATION 62
Chapter 7
CAMRAD II ANALYSIS
Namelist NLJOB of program CAMRADII
Variable Type Description
job descriptionNCASES int number of casesPLFILE int plot file write (0 for never, 1 for one file per job)
INFILE int input category (0 for core, 1 for shell)OPSHLL int shell input file read (0 for never, 1 for first case only, 2 for each case)OPCORE int core input file read (0 for never, 1 for first case only, 2 for each case)OPREIN int empty input data vectors for next case (0 never, 1 shell/core, 2 tables, 3 all)OPTABL int delete tables not used by this case (0 for never)OPINIT int initialize trim solution from previous case (0 none, 1 loop variables, 6 part solution, 7 both)OPITJR int initialize trim solution from previous job, read file (0 never, 1 only first case, 2 same file each case, 3 separate files)OPITJW int initialize trim solution from previous job, write file (0 never, 1 each case)OPRNJR int restart transient solution from previous job, read file (0 never)OPRNJW int restart transient solution from previous job, write file (0 never)JOBTRC int trace of operation (0 to 4, 0 for none, 4 for high level print); for job start (data vector utility)CSITRC int trace of operation (0 to 4, 0 for none, 4 for high level print); for case inputTIMTRC int trace of operation (0 to 4, 0 for none, 4 for high level print); for timer and debug counter
OPINIT: +1 for trim loop variables, +2 for trim part solution reference, +4 for trim part total solution (referenceand difference). Trim loop variables are wind, operating condition, and periods; derivative matrices; and controlsselected by loop solution methods. Trim part solution includes all the component degrees of freedom, interfacevectors, and output vectors of the system.
OPITJR, OPITJW: Must have OPINIT > 0.
CAMRAD II ANALYSIS 64
OPITJR: File is always read for the first case (if OPITJR > 0). The options for the remaining cases are to initializefrom the previous case, to read the same file, or to read a separate file.
input/output unit numbersNUIN int namelist inputNUOUT int printer outputNFSHLL int shell input data fileNFCORE int core input data fileNFPLOT int plot data fileNFITJR int trim initialization input fileNFITJW int trim initialization output fileNFRNJR int transient restart input fileNFRNJW int transient restart output fileNFSTAT int data vector statistics fileNFTABL int table files default (NFTABL to NFTABL + n − 1, n tables); NFTABL for all if NFUMAX = −1)
system parametersOPNFIL int file open utility (0 for no action, 1 to open file)CLSFIL int file close utility (0 for no action, 1 to close file, 2 to rewind file)NFUMAX int maximum file unit number (0 for no maximum, −1 for constant unit number)DEFFIL int file definition for interactive mode (1 name, 2 unit number, 3 both)BLKCMP int block compression in data vector (0 for none, 1 to compress)DVSFIL int data vector statistics file (0 for none, 1 to append to old file, 2 to create new file)ERRACT int action on error (0 for none, 1 to exit, 2-3 for traceback)OPEXIT int analysis exit (0 for no action, 1 to stop on abnormal exit, 2 to stop)OUTRES int output resolution (0 standard, 1 enhanced)OPMATH int numerical precision in mathematics utilities (1 single, 2 double)OPEIGN int eigenanalysis method (1 for first, 2 for second)
CAMRAD II ANALYSIS 65
System parameters are set as appropriate for the installation environment.OPNFIL, CLSFIL, DEFFIL: depend on how operating system handles files.
Use CLSFIL = “rewind” if file not available after closed.NFUMAX: affects NFTABL of analysis program; NFNLI and NFDECK of input program.BLKCMP: use “none” in order to check compression.DVSFIL: use “none” to ignore statistics file.ERRACT: use “none” to continue execution beyond error occurrence.
Traceback forced using print overflow (2) or divide check (3).OPEXIT: use “no action” if Fortran stop not desired (affects exit on error also).
The following table summarizes the files that may be required by the analysis.
file name or logical name unit number control parameter
input data file COREINPUT NFCORE OPCORE
table files NFTABL (1) core input
plot data file PLOTFILE NFPLOT PLFILE
trim initialization input file TRIMSOLUTIONINn (5) NFITJR OPITJR
trim initialization output file TRIMSOLUTIONOUTn (5) NFITJW OPITJW
transient restart input file TRANRESTARTIN NFRNJR OPRNJR
transient restart output file TRANRESTARTOUT NFRNJW OPRNJW
data vector statistics file STATFILE (4) NFSTAT DVSFIL
job input JOBINPUT (2) NUIN
job output JOBOUTPUT (3) NUOUT
(1) NFTABL to NFTABL + n − 1 for n files; or NFTABL for all(2) file definition required only if NUIN �= 5(3) file definition required only if NUOUT �= 6(4) file definition required only if DVSFIL �= 0(5) n is case number (1 if only one file is read)
CAMRAD II ANALYSIS 66
The analysis first reads the namelist NLJOB, containing parameters defining the job. Then the analysis reads thecore namelists for each case, consisting of NLDEF and NLVAL pairs. A job has the following structure:
define files required by jobrun CAMRADII
namelist NLJOB
core namelists NLDEF and NLVAL
The tables required depend on the core components.
Variable Initial Values
NCASES 1PLFILE 0INFILE 1OPSHLL 1OPCORE 1OPREIN 0OPTABL 1OPINIT 0OPITJR 0OPITJW 0OPRNJR 0OPRNJW 0JOBTRC 0CSITRC 0TIMTRC 0
NUIN 5NUOUT 6NFSHLL 41NFCORE 42NFPLOT 43
CAMRAD II ANALYSIS 67
NFITJR 44NFITJW 45NFRNJR 46NFRNJW 47NFSTAT 48NFTABL 49
OPNFIL 1CLSFIL 1NFUMAX -1DEFFIL 1BLKCMP 1DVSFIL 0ERRACT 1OPEXIT 1OPMATH 2OPEIGN 2
CAMRAD II ANALYSIS 68
Chapter 8
Class = CASE
Variable Type Description
case descriptionTITLE c*80 case titleCODE c*20 case identificationOPUNIT int unit system (1 for English units, 2 for metric units)
analysis tasks (0 skip, 1 execute, 2 initialize only)TMTASK int trimTNTASK int transientFLTASK int flutter
print of core input dataNPRNTI int number of blocks printed (0 for none, maximum 100)
identification of blocks (blank for all)PCLASS(NPRNTI) c*32 classPTYPE(NPRNTI) c*32 typePNAME(NPRNTI) c*32 nameNPRNTT int print of tables (0 for none, 1 for tables used, 2 for all)NPRNTD int print of derived data after initialization (0 for none, 1 for basic, 2 for more, 3 for all)
The transient or flutter task requires at least trim initialization. If the transient or flutter task is executed withoutfirst executing trim (TNTASK or FLTASK = 1, with TMTASK = 2), then the trim solution should be initializedfrom a previous case or job (determined by OPINIT and OPITJR in namelist NLJOB).
timerTIMERC int component force and matrix evaluation (0 for none, 1 for timer, 2 by component type)TIMERP int part solution (0 for none)
Class = CASE 70
debugDEBUG(16) int trace of operation (0 to 4, 0 for none, 4 for high level print)
DEBUG(1) initialization DEBUG(11) modesDEBUG(2) trim loop DEBUG(12) componentDEBUG(3) trim part DEBUG(13) responseDEBUG(4) trim output DEBUG(14) equation managerDEBUG(5) transient loop DEBUG(15) matrix algebraDEBUG(6) transient part DEBUG(16) data vector utilitiesDEBUG(7) transient outputDEBUG(8) flutter loopDEBUG(9) flutter partDEBUG(10) flutter output
print of data structuresNPRNTQ int number of structures printed (0 for none, maximum 100)
location of printQPLACE(NPRNTQ) c*8 place (blank for all)QSTAT(NPRNTQ) int status (0 for all)
identification of structureQNAME(NPRNTQ) c*8 nameQINDX(NPRNTQ) int index, recordQTASK(NPRNTQ) int task, sequence, record
debug print intervalOPDBG int option (0 always; 1 start/stop print; 2 start print/stop execution)DBSTRT int debug counter at startDBSTOP int debug counter at stop
Class = CASE 71
environmentaerodynamic
OPDENS int specification1 for altitude and standard day, 2 for altitude and temperature3 for density and temperature, 4 for density, sound speed, viscosity
DENSE real air density (slug/ft3 or kg/m3)TEMP real air temperature (◦F or ◦C)ALTMSL real altitude above mean sea level (ft or m)CSOUND real sound speed (ft/sec or m/sec)VISCOS real viscosity (slug/ft-sec or kg/m-sec)
earthAXGRAV int direction gravity in inertial frame (±123 = ±XY Z axis, 4 input direction, 5 input direction and magnitude)GRAVI(3) real gravity vector (inertial axes; ft/sec2 or m/sec2)AXGRND int ground plane orientation (0 perpendicular to gravity direction, 1 input direction)GRNDI(3) real downward ground normal vector (inertial axes)HIAGL real height origin of inertial frame above ground level (ft or m)
AXGRAV defines the orientation of the inertial frame relative the earth. AXGRAV = 4 or 5 uses GRAVI. GRAVI isin ft/sec2 or m/sec2 for AXGRAV = 5. Aircraft convention is z-axis down (AXGRAV = +Z = 3).
AXGRND defines the orientation of the ground plane. AXGRND = 1 uses GRNDI (direction only, the magnitudeis ignored).
Core block class = CASE must exist (only one; no type, ignore name).
The parameters controlling print of data structures are described in the following table. Generally QPLACE is asubroutine name.
Class = CASE 72
structure QNAME QINDX QTASK
data vector DTVCCM section index 1 directory informationCORECM (0 for all) 2 status informationTABLCM for tasks 5,6 3 statisticsSHLLCM 4 organization
5 directory record6 section data7 block/table headers
standard list LSTSxx list index sequence (0 for all)LSTNAM
record RECORD record index
list LIST list index record (0 for all)
array MATRIX index 1 record and subarray listSUBMTX 2 subarray recordsVECTOR 3 all lists and subarray dataSUBVECXRIGIDFLEQNS
analysis common name
analysis record name
analysis list name record 1 list(unformatted) (0 for all) 2 record
3 sublists4 data
analysis list name /I record 1 basic(formatted) (0 for all) 3 all
Class = CASE 73
Variable Initial Values
OPUNIT 1TMTASK 1OPDENS 1AXGRAV 3GRAVI 0.,0.,1.GRNDI 0.,0.,1.
Class = CASE 74
Chapter 9
Class = FRAME
Variable Type Description
LABEL c*8 label (name from header)PARENT c*32 parent frame name (blank for base frame)OPCOND c*32 operating condition name (for base frame; blank for first)
The frame hierarchy must be a tree, following the structural dynamic interfaces.There is one and only one base frame for each free body.There is only one (or no) frame component for each frame.
Class = FRAME 76
Chapter 10
Class = INTERFACE, Type = STRUCTURAL DYNAMIC
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
part namesTMPART c*32 trimTNPART c*32 transientFLPART c*32 flutter
structural dynamic interfacemode names
TMMODE c*32 trimTNMODE c*32 transientFLMODE c*32 flutter
connection between components A and B (constraint variables = force on A)ANAMEC c*32 A-component nameANAMEV c*32 A-component interface name (input f and output x)BNAMEC c*32 B-component nameBNAMEV c*32 B-component interface name (input f and output x)KINDSD int interface kind (1 complete cantilever, 2 complete pin, 3 torque)AXESC int axes of force for cantilever interface (0 for common frame, 1 for connection)
degrees of freedom to be eliminated (no residual only)OPELIM int selection (0 input, 1 for B-component rigid plus input, 2 for A-component rigid plus input)NXELIM int number of degrees of freedom designated
designated degrees of freedomXNAMEC(6) c*32 component nameXNAMEV(6) c*32 degree of freedom nameXNAMEE(6) c*32 element name
Class = INTERFACE, Type = STRUCTURAL DYNAMIC 78
Component interface must be structural dynamic kind (same name for component x and f ).Component A can not be same as component B.Interface kind of components must be both complete or both torque, and match KINDSD.
Definition of degrees of freedom to be eliminated, ξb:Only required for no-residual interface kind; number ξb = length fl.OPELIM: default is 1 (B rigid); ignored for torque interface.For torque interface must identify 1 ξb; for complete interface need 6 or 3 ξb (including rigid).Complete interface: if OPELIM = 1 or 2, begin with rigid (in order, linear then angular);
if need more (3 or 6), use input; delete duplicate degrees of freedom.XNAMEz: designation of ξb must be unique.
Side A of interface: fl = force on A (and probably eliminate rigid of B).Interface force (on A): cantilever fl = (FP , MC) or (FC , MC); pin fl = FP ; torque fl = Q.If cantilever interface is in mode set, careful using connection axes (must maintain symmetry).
Variable Initial Values
OPELIM 1
Chapter 11
Class = INTERFACE, Type = INPUT/OUTPUT
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
part namesTMPART c*32 trimTNPART c*32 transientFLPART c*32 flutter
input/output interfaceoutput x
XNAMEC c*32 component nameXNAMEV c*32 component output name
connections fNCNXN int number of connections (maximum 1000)FNAMEC(NCNXN) c*32 component nameFNAMEV(NCNXN) c*32 component input nameTMPASS int trim part solution passTNPASS int transient part solution passTNRLX int transient part relaxation (0 for none)
Component x and all f must be input/output kind; and all same length.TMPASS, TNPASS ≥ 1 for implicit part, ≥ 0 for differential equation part.
Differential equation part: TMPASS = 0 or TNPASS = 0 to include this interface with the differential equations;≥ 1 for an implicit solution. Transient part relaxation (TNRLX) only for implicit solution by differential equationpart.
Interface force: fl = x; f = fl (not um; only one connection to f ).
Class = INTERFACE, Type = INPUT/OUTPUT 80
Variable Initial Values
TMPASS 1TNPASS 1
Chapter 12
Class = OUTPUT
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
KINDY int output kind (1 component degree of freedom ξ; 2 interface fl; 3 input um; 4 component output x; 5 frame β)specification of output
YNAMEC c*32 component nameYNAMEV c*32 vector name
part namesTMPART c*32 trimTNPART c*32 transientFLPART c*32 flutter
mode namesTMMODE c*32 trimTNMODE c*32 transientFLMODE c*32 flutter
output write moduletrim
time history (0 for none)NTPRNT int printNTFILE int plot fileNTPLOT int printer-plot (1 same scale all quantities, 2 separate scales)MTIME int number of time stepsMPEAK int derived (0 none; 1 mean, maximum, minimum, half peak-to-peak)
harmonics (0 for none)NHPRNT int printNHFILE int plot fileMHARM int number of harmonicsOPHARM int harmonic analysis method (1 Fourier interpolation, 2 linear interpolation)
Class = OUTPUT 82
transienttime history (0 for none)
NSPRNT int printNSFILE int plot fileNSPLOT int printer-plot (1 same scale all quantities, 2 separate scales)TIMEB real begin time (sec)TIMEE real end time (sec)TSTEP real time step (sec)
Component output (KINDY = 4) must be input/output kind.If y = (ξ, fl, um, or β), can not solve for y (no trim or transient part; not available in flutter).Output y = (ξ, fl, um, or β) shares response with solution; y = x has separate response for output.Can get component input since f = fl or um (or zero).
Modes are identified only for normalization and print of mode set; must be input/output x.
MTIME ≥ 1, MHARM ≥ 0; for Fourier interpolation, MHARM ≤ (MTIME − 1)/2Harmonics:
Calculated from time history, at MTIME steps; even if time history output not requested, and regardless ofform of solution. Only available if response is periodic (time domain or frequency domain).
Printer-plot: not for harmonics; not if solution is single value.Transient:
TIMEB, TIMEE not used if they are outside the solution range. Time step TRESP of part solution used ifTSTEP≤ 0.
Output write module parameters can be used for component-specific write.For lifting line wing sensors: NTPLOT = 0 for none, +1 for time history, +2 for spanwise, +4 for polar
Variable Initial Values
NTPRNT 1
Class = OUTPUT 83
NTFILE 1NTPLOT 0MTIME 1MPEAK 1NHPRNT 1NHFILE 1MHARM 0OPHARM 2NSPRNT 1NSFILE 1NSPLOT 0
Class = OUTPUT 84
Chapter 13
Class = INPUT
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
connections fNCNXN int number of connections (maximum 1000)FNAMEC(NCNXN) c*32 component nameFNAMEV(NCNXN) c*32 component input name
input vector uLENGTH int length of vector (maximum 40)UENAME(LENGTH) c*32 element nameUELABL(LENGTH) c*8 element label
All f must be input/output kind, same length as um.
Input/output connection: f = um (not fl; only one connection to f ).
Class = INPUT 86
Chapter 14
Class = WIND
Variable Type Description
OPAXES int wind/gust axes (1 velocity axes, 2 inertial axes, 3 input orientation)OPCOND c*32 operating condition name for velocity axes (blank for first)WIND real wind speed
orientation wind/gust axes relative inertial axes (GI)WYAW real yaw angle (deg), ψG
WPITCH real pitch angle (deg), θG
weights for perturbationWTNAME c*32 standard weights name (blank for none)WTPERT(3) real weights or weight factors
ground boundary layerOPGBL int model (0 none, 1 log law, 2 modified log law, 3 power law)HGBL real reference height H (ft or m)RGBL real log law and modified low law: roughness height R (ft or m)GGBL real modified log law: gradient height G (ft or m)AGBL real power law: exponent α
Core block class = WIND must exist (only one; no type, ignore name).
Input is initial value if variable is selected for Newton-Raphson loop.
A perturbation weight is needed for each variable involved in a loop solution. The three values in WTPERT
correspond to the variables WIND, WYAW, WPITCH. See class = WEIGHTS for a description of the standardweights.
Wind speed positive for air from +x axis direction; gust axes = wind axes.OPAXES: 1 for G=V, 2 for G=I, 3 for GI from WYAW and WPITCH.Velocity axes (G=V) are not used if the operating condition is constrained or turning (get G=I).
Class = WIND 88
The ground boundary layer parameters are not available to trim loops.HGBL > 0., RGBL > 0., GGBL > 0., AGBL > 0.
Variable Initial Values
OPAXES 1WTPERT 3*1.
Chapter 15
Class = OPERATING CONDITION
Variable Type Description
LABEL c*8 label (name from header; element name and label = variable name)OPFREE int operating condition kind (0 constrained, 1 free)SPEED real flight speed
orientation of body frame relative inertial axes (FI)YAW real yaw angle (deg), ψF0
PITCH real pitch angle (deg), θF
ROLL real roll angle (deg), φF
TURN real turn rate (deg/sec), ψF
orientation of velocity frame relative inertial axes (VI)SIDE real yaw angle (deg), ψV
CLIMB real pitch angle (deg), θV
weights for perturbationWTNAME c*32 standard weights name (blank for none)WTPERT(7) real weights or weight factors
Core block class = OPERATING CONDITION must exist (at least one).
If analysis identifies operating condition by name = blank, use first (probably only) operating condition.Input is initial value if variable is selected for Newton-Raphson loop.
A perturbation weight is needed for each variable involved in a loop solution. The seven values in WTPERT
correspond to the variables SPEED, YAW, PITCH, ROLL, TURN, SIDE, CLIMB. See class = WEIGHTS for adescription of the standard weights.
Free:Flight speed positive for body moving in +x axis direction (x forward).Orientation of inertial axes relative earth is defined by AXGRAV; aircraft convention is z-axis down.Orientation defined by Euler angles, with yaw/pitch/roll sequence.
Class = OPERATING CONDITION 90
Constrained:Only use ROLL, PITCH, YAW; which are the three angular variables of rigid response (Euler XY Z, Ro-drigues, or Euler UV W ).
Orientation of axes (free flight):Orientation of body relative inertial axes defined by φF , θF , and ψF = ψF t + ψF0: CFI = XφF
YθFZψF
.Orientation of velocity relative inertial axes defined by θV , ψV , and ψF = ψF t+ψF0: CV I = YθV
ZψVZψF
.So orientation of body relative velocity axes does not depend on ψF : CFV = XφF
YθFZ−ψV
Y−θV.
Orientation of wind/gust relative inertial axes defined by θG and ψG: CGI = YθGZψG
.
Variable Initial Values
OPFREE 1WTPERT 7*1.
Chapter 16
Class = PERIOD
Variable Type Description
LABEL c*8 label (name from header)PARENT c*32 parent period name (blank for base period)
base periodOMEGA real rotational speedWUNIT int units of input Ω (0 rad/sec, 1 Hz, 2 rpm)
weights for perturbationWTNAME c*32 standard weights name (blank for none)WTPERT real weight or weight factor
rpm control (Ωtotal = Ω +∑
GiΩcontroli)NCNTRL int number of control periods (0 for none, maximum 8)CNTRL(NCNTRL) c*32 control period nameGAIN(NCNTRL) real gain
child periodGEAR real gear ratio (Ωchild = GEAR × Ωparent)
Rotational speed value can be negative.Input is initial value if period is selected for Newton-Raphson loop.
A perturbation weight is needed only for a base period involved in a loop solution. The value of WTPERT
corresponds to the rotational speed in rad/sec. See class = WEIGHTS for a description of the standard weights.
Parent must be base period (not hierarchical). Gear ratio can be negative.
Control used when evaluate rotational speed. Control period must be base period; should only be used as control(not checked).
Class = PERIOD 92
Variable Initial Values
WTPERT 1.GEAR 1.
Chapter 17
Class = TRIM LOOP, All Types
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
loop definitionCHILD c*32 child loop name (blank for last loop)
parts solved in loop (iterated with inner loops)NPARTI int number of parts (maximum 400)PARTI(NPARTI) c*32 part name
parts solved at end of loopNPARTE int number of parts (maximum 400)PARTE(NPARTE) c*32 part name
modules written at end of loopNWRT int number of modules (maximum 400)WRT(NWRT) c*32 module nameKINDW(NWRT) int write module kind (1 shell; 2 convergence; 3 loop; 4 part; 5 modes; 6 output of part; 7 output; 8 graphics)
loop outputTRACE(2) int trace during loop solution
TRACE(1) = 0 noneTRACE(1) = 1 warning at end of loop if not convergedTRACE(1) = 2 and status at end of each iterationTRACE(1) = 3 and information at end of each iterationTRACE(1) = 4 and warning if subordinate part/loop not convergedTRACE(2) = 0 header only at beginning of solution
trim convergence write moduleNCPRNT int print (0 none, 1 summary, 2 variables not converged, 3 all variables)
loop solution write module (0 for no output)NLPRNT int printNLFILE int plot file
Class = TRIM LOOP, All Types 94
Loop hierarchy must be series (no branches).More than one first loop is possible.
PARTI parts should not directly affect each other, or must be solved in proper order (not checked).PARTE parts should not be involved in convergence of iteration (not checked).Parts can appear in several loops, or in no loop (not solved).Write modules can appear in several loops.Parts and write modules are solved, written in the order that they are defined in the loop.
Last loop can not be successive substitution type.Successive substitution must have one part in loop, and child.
Write modules:
KINDW WRT function
shell XXXX nn only last characters used (if not integer, get n = 0)convergence loop convergence of WRT loop, and all subordinate loops and partsloop loop no output availablepart part also calls modes write modulemodes mode setoutput of part part output y corresponding to ξ, fl, y of part solutionoutput outputgraphics part
Convergence: controlled by NCPRNT of loop and part.System status always printed and written to plot file (even if NCPRNT = 0).WRT loop and loop containing it must have common parent loop (same first loop).
Output of part: if more than one y defined for ξ or fl, get last defined.Graphics: graphics data written to plot file, at times specified by implicit part.
Chapter 18
Class = TRIM LOOP, Type = SUCCESSIVE SUBSTITUTION
Variable Type Description
successive substitution solution methodMLEVEL int number of levels (1 for none; maximum 8)
convergence control, for each levelMITER(MLEVEL) int number of iterations (1 for no iteration, 0 to skip level)TOLER(MLEVEL) real toleranceRELAX(MLEVEL) real relaxation factorLEVLAB(MLEVEL) c*32 level labelOPTEST(MLEVEL) int test for convergence (0 to suppress)PARENT c*32 parent loop, level determines parameters of this loop (blank for none)
If parent loop is not identified: There must be at least one level (MLEVEL ≥ 1), and at least one iteration at thelast level. Any level except the last can be skipped entirely (MITER = 0). The MLEVEL parameters correspondto the levels of this loop.
If parent loop is identified: There is one level for this loop, and at least one iteration (MITER ≥ 1). The MLEVEL
parameters correspond to the levels of the parent loop. The parent loop must be successive substitution, and aparent can not be identified for that loop. MLEVEL must equal or exceed the number of levels of the parent loop.
Last loop can not be successive substitution type.Successive substitution must have one part in loop, and child.
Variable Initial Values
MLEVEL 1MITER 8*1OPTEST 8*1
Class = TRIM LOOP, Type = SUCCESSIVE SUBSTITUTION 96
Chapter 19
Class = TRIM LOOP, Type = NEWTON RAPHSON
Variable Type Description
Newton Raphson solution methodMNR int number of variables (maximum 16)
specification of quantity MKINDM(MNR) int kind (1 for component degree of freedom (mean rigid equation), 2 for input/output interface)MNAMEC(MNR) c*32 component nameMNAMEV(MNR) c*32 vector nameMNAMEE(MNR) c*32 element name
specification of variable vKINDV(MNR) int kind (1 for input (control), 2 for wind, 3 for operating condition, 4 for period)VNAMEV(MNR) c*32 vector nameVNAMEE(MNR) c*32 element nameMLABEL(MNR) c*8 label for quantity MMTARG(MNR) real target for quantity MVLABEL(MNR) c*8 label for variable vVSCALE(MNR) real scale factor for variable vVINIT(MNR) real initial value of variable vOPINIT int initialization of variable v (0 for response/operating-condition/period input, 1 to use VINIT)
convergence controlMITER int number of iterations (0 for none)TOLER real toleranceRELAX real relaxation factorOPTEST int test for convergence (0 to suppress)
perturbation identification of derivative matrixOPPID int perturbation (0 for never, 1 first order difference, 2 second order difference, 3 baseline at end)MPID int number of iterations between perturbation identification (0 for never recalculated)DELTA real control step
Class = TRIM LOOP, Type = NEWTON RAPHSON 98
recursive update of derivative matrixOPRID int recursive update (0 for never, 1 exponential window, 2 Broyden)ALPHA real weight (exponential window)DMTRX(MNR,MNR) real initial derivative matrix
If there are no variables, then there is no iteration (loop equivalent to no solution).
The quantity M must be a degree of freedom (mean rigid equation) or an input/output interface f ; it can not bechild response. The variable v must be an input (control), wind, operating condition, or base period variable.The scale factor is only used for print of the variable v.
The variable v can be solved by only one loop. Parts that calculate M must be inside this loop (in PARTI or childloop; not checked).
Specification of quantity M :mean rigid equation = component + vector + element (of degree of freedom)input/output interface f = vector + element (of interface)
Specification of variable v:control = vector + element (of input)wind = element (variable name)operating condition = vector (operating condition name) + element (variable name)period = vector (period name)
Variable Initial Values
VSCALE 16*1.OPTEST 1OPPID 1ALPHA .5
Chapter 20
Class = TRIM LOOP, Type = REGULATOR
Variable Type Description
regulator solution methodMZ int number of measurements (maximum 40)MT int number of controls (≤ MZ; maximum 24)
specification of measurement z (input/output interface)ZNAMEV(MZ) c*32 vector nameZNAMEE(MZ) c*32 element name
specification of control θ (input)TNAMEV(MT) c*32 vector nameTNAMEE(MT) c*32 element nameZLABEL(MZ) c*8 label for measurement zZTARG(MZ) real target for measurementWTZ(MZ) real measurement weight in cost functionTLABEL(MT) c*8 label for control θTSCALE(MT) real scale factor for controlWTDELT(MT) real control change weight in cost functionQFLTR(MT) real T -matrix variance for Kalman filterTINIT(MT) real initial value of controlOPINIT int initialization of control (0 for response input, 1 to use TINIT)
convergence controlMITER int number of iterations (0 for none)TOLER real toleranceRELAX real relaxation factorOPTEST int test for convergence (0 to suppress, 1 for cost, 2 for change in cost)
perturbation identification of T -matrixOPPID int perturbation (0 for never, 1 first order difference, 2 second order difference)MPID int number of iterations between perturbation identification (0 for never recalculated)DELTA real control step
Class = TRIM LOOP, Type = REGULATOR 100
recursive update of T -matrixOPRID int recursive update (0 for never, 1 exponential window, 2 Broyden)ALPHA real weight (exponential window)TMTRX(MZ,MT) real initial T -matrix
If there are no measurements, then there is no iteration (loop equivalent to no solution). There must be at leastone control (unless there are no measurements), MT ≤ MZ. The measurement must be an input/output interfacef ; it can not be child response. The control must be an input. The scale factors are only used for print of thecontrol.
The control can be solved by only one loop. Parts that calculate the measurements must be inside this loop (inPARTI or child loop; not checked).
Variable Initial Values
TSCALE 24*1.OPTEST 1OPPID 1ALPHA .5
Chapter 21
Class = TRIM PART, All Types
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
part outputTRACE(2) int trace during part solution
TRACE(1) = 0 noneTRACE(1) = 1 warning at end of part if not convergedTRACE(1) = 2 and status at end of each iterationTRACE(1) = 3 and information at end of each iteration (variables not converged)TRACE(1) = 4 and information at end of each iteration (all variables)TRACE(2) = 0 header only at beginning of solution
trim convergence write moduleNCPRNT int print (0 none, 1 summary, 2 variables not converged, 3 all variables)
part solution write module (0 for no output)NPPRNT int printNPFILE int plot file
Parts are identified in the component, interface, and output definitions.
Structural dynamic no-residual interface: part with fl must also have ξb to be eliminated.Structural dynamic interface: in same part as A or B component.Input/output interface: for implicit solution (implicit or differential equation part), solve in passes.
Ordered so evaluate fl before used by any other equations in this part (not checked).Implicit: no degrees of freedom, constraint must be input/output interface.Harmonic or time finite element solution: no implicit equations if more than one period.
Class = TRIM PART, All Types 102
Trace not available for implicit solution.Part solution write module, NPPRNT and NPFILE parameters:
implicit: 1 for responseharmonic, time finite element, static:
1 for motion (excluding rigid unless frame), 2 for motion, 3 for all responseplus 4 for solution vector and part rigid force
Chapter 22
Class = TRIM PART, Type = IMPLICIT
Variable Type Description
implicit solution methodKINDS int solution kind (1 single value, 2 periodic, 3 not periodic, 4 multiperiod)OPCPAR int inconsistent periods of available and required response (0 to suppress)
periodic and multiperiodPERIOD c*32 period nameAZREF real azimuth for time = 0 (deg)
not periodicTIMEB real begin time (sec)TIMEE real end time (sec)
multiperiodNTIMEB real begin azimuth stepNTIMEE real end azimuth step
single valueTIME real time (sec)MTIME int number of time steps
MTIME ≥ 1, TIMEE > TIMEB, NTIMEE > NTIMEB
Single value: MTIME not used, TIME may be ignored.Multiperiod: MTIME is the number of steps per revolution; NTIMEB = 0 and NTIMEE = 0 at zero azimuth.
Class = TRIM PART, Type = IMPLICIT 104
Chapter 23
Class = TRIM PART, Type = STATIC
Variable Type Description
differential equationsKINDDE int differential equation kind (1 periodic, 2 time invariant)
matrix calculationOPMTRX int method (0 use component option, 1 analytical, 2 perturbation)
perturbation methodOPPERT int perturbation order (1 first order, 2 second order)DELTAD real variable perturbation, displacementDELTAV real variable perturbation, velocityDELTAA real variable perturbation, accelerationOPREF int equation reference (0 none, 1 nominal, 2 nominal/reference, 3 current solution)MPSIAV int number of time steps per rev in average of matrices
update of reference and matricesOPUPDT(4) int strategy
OPUPDT(1) count of iterations from beginning of solution (1 system solution, 2 part solution)OPUPDT(2) update at second iteration (0 no, 1 yes)OPUPDT(3) update interval (0 never, 1 constant, 2 arithmetic progression, 3 geometric progression)OPUPDT(4) recalculate modes when update part equations (0 no, 1 yes)
NUPDT int number of iterations between update (minimum 2)OPSDF int perturbation of forces on structural dynamic components (1 only SD interface forces, 2 and applied loads, 3 and aerodynamic loads)OPQSR int quasistatic reduction option (1 no residual, 2 residual)
Class = TRIM PART, Type = STATIC 106
rigid degrees of freedom and forces in partNRIGID int number of rigid degrees of freedom (maximum 16)
specification of rigid degree of freedomXNAMEC(NRIGID) c*32 component nameXNAMEV(NRIGID) c*32 vector nameXNAMEE(NRIGID) c*32 element nameMNAME(NRIGID) c*32 names of forcesMLABEL(NRIGID) c*8 labels of forces
weight on force for convergence testWTNAME c*32 standard weights name (blank for none)KINDWT(NRIGID) int standard weights variable kind (0 to 12)WTCONV(NRIGID) real weight or weight factor
MPSIAV ≥ 1; use OMEGA and AZREF of primary period.Update of reference and matrices:
For OPUPDT(1) = 2, reset counter at beginning of part solution.Always update reference and calculate matrices at counter = 1.Should use OPUPDT(2) = 1 when matrices depend on solution for interface forces or elastic motion.Require update interval NUPDT ≥ 2 to be sure test convergence.NUPDT is initial value of update interval for OPUPDT(3) ≥ 2:
for OPUPDT(3) = 1, interval constant at NUPDT;for OPUPDT(3) = 2, interval increased by NUPDT after each update;for OPUPDT(3) = 3, interval multiplied by factor 2 after each update.
Should use OPUPDT(4) = 1 when modes depend on solution for interface forces or elastic motion.For only structural dynamic contributions to matrices: use implicit solution of input/output interface equations(TMPASS ≥ 1) and OPSDF = 1.
Matrix calculation method OPMTRX: 0 to use component option (if exists, else analytical); 1 for analytical (ifavailable, else perturbation); 2 for perturbation.
The identified rigid degrees of freedom must be a statically determinate set, such that the spring of the remainingdegrees of freedom is not singular (not checked). These rigid degrees of freedom can not be eliminated by aconstraint. A weight for the convergence test is needed for each rigid degree of freedom. See class = WEIGHTSfor a description of the standard weights.
Class = TRIM PART, Type = STATIC 107
static solution methodMITERI int initialization of implicit equations (number of iterations)
convergence controlMITER int number of iterationsTOLER real toleranceRELAX real relaxation factorOPTEST int test for convergence (0 to suppress)
There must be at least one iteration (MITER ≥ 1); MITERI ≥ 0.
The implicit equations can be evaluated for a number of iterations before the start of the solution (MITERI > 0);at the beginning of the system solution or the part solution, depending on OPUPDT(1).
Variable Initial Values
OPMTRX 1OPPERT 2OPREF 2MPSIAV 4OPUPDT 1,0,0,1NUPDT 4OPSDF 1OPQSR 2WTCONV 16*1.
MITER 1TOLER 1.RELAX 1.OPTEST 1
Class = TRIM PART, Type = STATIC 108
Chapter 24
Class = TRIM PART, Type = HARMONIC
Variable Type Description
differential equationsKINDDE int differential equation kind (1 periodic, 2 time invariant)
matrix calculationOPMTRX int method (0 use component option, 1 analytical, 2 perturbation)
perturbation methodOPPERT int perturbation order (1 first order, 2 second order)DELTAD real variable perturbation, displacementDELTAV real variable perturbation, velocityDELTAA real variable perturbation, accelerationOPREF int equation reference (0 none, 1 nominal, 2 nominal/reference, 3 current solution)MPSIAV int number of time steps per rev in average of matrices
update of reference and matricesOPUPDT(4) int strategy
OPUPDT(1) count of iterations from beginning of solution (1 system solution, 2 part solution)OPUPDT(2) update at second iteration (0 no, 1 yes)OPUPDT(3) update interval (0 never, 1 constant, 2 arithmetic progression, 3 geometric progression)OPUPDT(4) recalculate modes when update part equations (0 no, 1 yes)
NUPDT int number of iterations between update (minimum 2)OPSDF int perturbation of forces on structural dynamic components (1 only SD interface forces, 2 and applied loads, 3 and aerodynamic loads)OPQSR int quasistatic reduction option (1 no residual, 2 residual)
Class = TRIM PART, Type = HARMONIC 110
rigid degrees of freedom and forces in partNRIGID int number of rigid degrees of freedom (maximum 16)
specification of rigid degree of freedomXNAMEC(NRIGID) c*32 component nameXNAMEV(NRIGID) c*32 vector nameXNAMEE(NRIGID) c*32 element nameMNAME(NRIGID) c*32 names of forcesMLABEL(NRIGID) c*8 labels of forces
weight on force for convergence testWTNAME c*32 standard weights name (blank for none)KINDWT(NRIGID) int standard weights variable kind (0 to 12)WTCONV(NRIGID) real weight or weight factor
MPSIAV ≥ 1; use OMEGA and AZREF of primary period.Update of reference and matrices:
For OPUPDT(1) = 2, reset counter at beginning of part solution.Always update reference and calculate matrices at counter = 1.Should use OPUPDT(2) = 1 when matrices depend on solution for interface forces or elastic motion.Require update interval NUPDT ≥ 2 to be sure test convergence.NUPDT is initial value of update interval for OPUPDT(3) ≥ 2:
for OPUPDT(3) = 1, interval constant at NUPDT;for OPUPDT(3) = 2, interval increased by NUPDT after each update;for OPUPDT(3) = 3, interval multiplied by factor 2 after each update.
Should use OPUPDT(4) = 1 when modes depend on solution for interface forces or elastic motion.For only structural dynamic contributions to matrices: use implicit solution of input/output interface equations(TMPASS ≥ 1) and OPSDF = 1.
Matrix calculation method OPMTRX: 0 to use component option (if exists, else analytical); 1 for analytical (ifavailable, else perturbation); 2 for perturbation.
The identified rigid degrees of freedom must be a statically determinate set, such that the spring of the remainingdegrees of freedom is not singular (not checked). These rigid degrees of freedom can not be eliminated by aconstraint. A weight for the convergence test is needed for each rigid degree of freedom. See class = WEIGHTSfor a description of the standard weights.
Class = TRIM PART, Type = HARMONIC 111
differential equation periods (one for periodic; first is primary for time invariant)NPER int number of periods (maximum 40)OPCPAR int inconsistent periods of available and required response (0 to suppress)PERIOD(NPER) c*32 period nameAZREF(NPER) real azimuth for time = 0 (deg)MPSI(NPER) int number of azimuth steps
harmonic solution methodMHARM(NPER) int number of harmonicsMHARMQ(NPER) int number of harmonics for quasistatic degrees of freedomOPHARM(NPER) int harmonic analysis of forces (1 Fourier interpolation, 2 linear interpolation)OPCALC(NPER) int calculation of harmonics (1 at every azimuth step, 2 at end of each revolution)MREVI(NPER) int initialization of implicit equations (number of iterations)
convergence controlMREV(NPER) int number of iterations (revs)TOLER(NPER) real toleranceRELAX(NPER) real relaxation factorDAMP(NPER) real damping (fraction critical)OPTEST(NPER) int test for convergence (0 to suppress)
filterOPFILT(NPER) int operation (0 none, 1 pass pM harmonics, 2 pass pM ± 1 harmonics, +2 filter degrees of freedom)MFILT(NPER) int fundamental harmonic M
child transformation of degrees of freedomOPCHLD(NPER) int transformation (0 none, 1 parent/child sets, 2 averaged parent sets, +2 and gimbal/teeter)MCHLD(NPER) int number of degrees of freedom in set, fundamental harmonic M
MPSI ≥ 1; MHARM ≥ MHARMQ ≥ 0; MFILT ≥ 1, MCHLD ≥ 2There must be at least one iteration (MREV ≥ 1); MREVI ≥ 0.
The implicit equations can be evaluated for a number of revolutions before the start of the solution (MREVI >0); at the beginning of the system solution or the part solution, depending on OPUPDT(1).
One iteration is one revolution or cycle.OPHARM: MHARM ≤ (MPSI − 1)/2 for Fourier interpolation.DAMP: Damping added to both sides of differential equation, to improve convergence.
Class = TRIM PART, Type = HARMONIC 112
OPFILT: Filter option of response piece determines which variables are filtered by part.
OPFILT = 1 or 2: Set harmonics of response to zero after solve equations. Can be used to enforce true symmetriesof the system.
OPFILT = 3 or 4: Also filter degrees of freedom when solve equations. Set harmonics of degrees of freedom tozero and ignore the corresponding equations. Can be used to simulate a gimbal or teeter hinge. Modal degreesof freedom are not filtered. The option is not available if there are rigid degrees of freedom in the part (NRIGID).
OPCHLD: Child option of response piece determines which variables are transformed by the part. The childdegrees of freedom are set equal to the parent degrees of freedom (with a phase shift) after the equationsare solved. The transformation is applied only to the dynamic degrees of freedom (including modes). Theparent/child degrees of freedom are defined in sets of M = MFILT variables (except for gimbal and teeter degreesof freedom).
OPCHLD = 1: Parent is one variable of set.OPCHLD = 2: Parent is average of set (with phase shifts).
OPCHLD = 3 or 4: The transformation is also applied for gimbal degrees of freedom, and only pM ±1 harmonicsof the gimbal and teeter degrees of freedom are nonzero.
Variable Initial Values
OPMTRX 1OPPERT 2OPREF 2MPSIAV 4OPUPDT 1,0,0,1NUPDT 4OPSDF 1OPQSR 2WTCONV 16*1.
Class = TRIM PART, Type = HARMONIC 113
NPER 1MHARMQ 40*0OPHARM 40*2OPCALC 40*2MREV 40*1TOLER 40*1.RELAX 40*1.DAMP 40*.5OPTEST 40*1
Class = TRIM PART, Type = HARMONIC 114
Chapter 25
Class = TRIM PART, Type = TIME FINITE ELEMENT
Variable Type Description
differential equationsKINDDE int differential equation kind (1 periodic, 2 time invariant)
matrix calculationOPMTRX int method (0 use component option, 1 analytical, 2 perturbation)
perturbation methodOPPERT int perturbation order (1 first order, 2 second order)DELTAD real variable perturbation, displacementDELTAV real variable perturbation, velocityDELTAA real variable perturbation, accelerationOPREF int equation reference (0 none, 1 nominal, 2 nominal/reference, 3 current solution)MPSIAV int number of time steps per rev in average of matrices
update of reference and matricesOPUPDT(4) int strategy
OPUPDT(1) count of iterations from beginning of solution (1 system solution, 2 part solution)OPUPDT(2) update at second iteration (0 no, 1 yes)OPUPDT(3) update interval (0 never, 1 constant, 2 arithmetic progression, 3 geometric progression)OPUPDT(4) recalculate modes when update part equations (0 no, 1 yes)
NUPDT int number of iterations between update (minimum 2)OPSDF int perturbation of forces on structural dynamic components (1 only SD interface forces, 2 and applied loads, 3 and aerodynamic loads)OPQSR int quasistatic reduction option (1 no residual, 2 residual)
Class = TRIM PART, Type = TIME FINITE ELEMENT 116
rigid degrees of freedom and forces in partNRIGID int number of rigid degrees of freedom (maximum 16)
specification of rigid degree of freedomXNAMEC(NRIGID) c*32 component nameXNAMEV(NRIGID) c*32 vector nameXNAMEE(NRIGID) c*32 element nameMNAME(NRIGID) c*32 names of forcesMLABEL(NRIGID) c*8 labels of forces
weight on force for convergence testWTNAME c*32 standard weights name (blank for none)KINDWT(NRIGID) int standard weights variable kind (0 to 12)WTCONV(NRIGID) real weight or weight factor
MPSIAV ≥ 1; use OMEGA and AZREF of primary period.Update of reference and matrices:
For OPUPDT(1) = 2, reset counter at beginning of part solution.Always update reference and calculate matrices at counter = 1.Should use OPUPDT(2) = 1 when matrices depend on solution for interface forces or elastic motion.Require update interval NUPDT ≥ 2 to be sure test convergence.NUPDT is initial value of update interval for OPUPDT(3) ≥ 2:
for OPUPDT(3) = 1, interval constant at NUPDT;for OPUPDT(3) = 2, interval increased by NUPDT after each update;for OPUPDT(3) = 3, interval multiplied by factor 2 after each update.
Should use OPUPDT(4) = 1 when modes depend on solution for interface forces or elastic motion.For only structural dynamic contributions to matrices: use implicit solution of input/output interface equations(TMPASS ≥ 1) and OPSDF = 1.
Matrix calculation method OPMTRX: 0 to use component option (if exists, else analytical); 1 for analytical (ifavailable, else perturbation); 2 for perturbation.
The identified rigid degrees of freedom must be a statically determinate set, such that the spring of the remainingdegrees of freedom is not singular (not checked). These rigid degrees of freedom can not be eliminated by aconstraint. A weight for the convergence test is needed for each rigid degree of freedom. See class = WEIGHTSfor a description of the standard weights.
Class = TRIM PART, Type = TIME FINITE ELEMENT 117
differential equation periods (one for periodic; first is primary for time invariant)NPER int number of periods (maximum 40)OPCPAR int inconsistent periods of available and required response (0 to suppress)PERIOD(NPER) c*32 period nameAZREF(NPER) real azimuth for time = 0 (deg)MPSI(NPER) int number of azimuth steps
time finite element solution methodMHARM(NPER) int number of harmonicsMHARMQ(NPER) int number of harmonics for quasistatic degrees of freedomOPHARM(NPER) int harmonic analysis of forces (1 Fourier interpolation, 2 linear interpolation)MREVI(NPER) int initialization of implicit equations (number of iterations)
convergence controlMREV(NPER) int number of iterations (revs)TOLER(NPER) real toleranceRELAXF(NPER) real relaxation factor for forcesRELAXN(NPER) real relaxation factor for Newton-Raphson iterationDAMP(NPER) real damping (fraction critical)OPTEST(NPER) int test for convergence (0 to suppress)
derivative matrixOPDRV(NPER) int form (0 coupled harmonics, 1 uncoupled harmonics)
perturbation identificationOPPID(NPER) int option (0 never, 1 first order difference, 2 second order difference)OPCNT(NPER) int count of iterations (1 system, 2 part)MPID(NPER) int number of iterations between perturbation identification (0 for never recalculated)DELTA(NPER) real degree of freedom step
recursive updateOPRID(NPER) int option (0 for never, 1 exponential window, 2 Broyden)ALPHA(NPER) real weight (exponential window)
filterOPFILT(NPER) int operation (0 none, 1 pass pM harmonics, 2 pass pM ± 1 harmonics)MFILT(NPER) int fundamental harmonic M
child transformation of degrees of freedomOPCHLD(NPER) int transformation (0 none, 1 parent/child sets, 2 averaged parent sets, +2 and gimbal/teeter)MCHLD(NPER) int number of degrees of freedom in set, fundamental harmonic M
Class = TRIM PART, Type = TIME FINITE ELEMENT 118
MPSI ≥ 1; MHARM ≥ MHARMQ ≥ 0; MFILT ≥ 1, MCHLD ≥ 2There must be at least one iteration (MREV ≥ 1); MREVI ≥ 0.
The implicit equations can be evaluated for a number of revolutions before the start of the solution (MREVI >0); at the beginning of the system solution or the part solution, depending on OPUPDT(1).
One iteration is one revolution or cycle.OPHARM: MHARM ≤ (MPSI − 1)/2 for Fourier interpolation.DAMP: Damping used to initialize derivative matrix.
OPFILT: Filter option of response piece determines which variables are filtered by part. Set harmonics of responseto zero after solve equations. Can be used to enforce true symmetries of the system.
OPCHLD: Child option of response piece determines which variables are transformed by the part. The childdegrees of freedom are set equal to the parent degrees of freedom (with a phase shift) after the equationsare solved. The transformation is applied only to the dynamic degrees of freedom (including modes). Theparent/child degrees of freedom are defined in sets of M = MFILT variables (except for gimbal and teeter degreesof freedom).
OPCHLD = 1: Parent is one variable of set.OPCHLD = 2: Parent is average of set (with phase shifts).
OPCHLD = 3 or 4: The transformation is also applied for gimbal degrees of freedom, and only pM ±1 harmonicsof the gimbal and teeter degrees of freedom are nonzero.
Variable Initial Values
OPMTRX 1OPPERT 2OPREF 2MPSIAV 4
Class = TRIM PART, Type = TIME FINITE ELEMENT 119
OPUPDT 1,0,0,1NUPDT 4OPSDF 1OPQSR 2WTCONV 16*1.
NPER 1MHARMQ 40*0OPHARM 40*2MREV 40*1TOLER 40*1.RELAXF 40*1.RELAXN 40*1.DAMP 40*.5OPTEST 40*1OPDRV 40*0OPPID 40*1OPCNT 40*1MPID 40*0OPRID 40*0ALPHA 40*.5
Class = TRIM PART, Type = TIME FINITE ELEMENT 120
Chapter 26
Class = TRANSIENT
Variable Type Description
time range of transient solutionTIMEB real begin time (sec), tBTIMEE real end time (sec), tE
transient restartPARTX c*32 transient partLOOPX c*32 transient loopTIMEX real part restart exit time (sec), tXITERX int loop restart exit iterationLEVELX int loop restart exit level
For transient analysis task: core block class = TRANSIENT must exist (only one; no type, ignore name).
Response has trim value at time tB .Each part solution has response time step Δt = TRESP. Number of time steps MTIME = (tE − tB)/Δt.TIMEE > TIMEB; MTIME ≥ 1, TRESP ≤ TIMEE − TIMEB
The transient restart is controlled by OPRNJW and OPRNJR in namelist NLJOB.
Restart exit (OPRNJW = 1): Identify the loop or the part for the restart exit (not both). The part method mustbe integration; the integration is interrupted at time tX . The loop method must be successive substitution; theloop is interrupted at the specified iteration and level. At the interruption, the complete solution is saved to therestart file. Then the transient output is produced, using the solution obtained so far; and the transient task isterminated. The values of the output quantities will be constant after the interrupt time tX .
Restart entrance (OPRNJR = 1): The job jumps to the interrupt point in the specified part or loop, and restores thesolution by reading the restart file. Then the transient task continues; the results are the same as if the transienttask were completed in a single job. It is possible to interrupt again a restarted transient task. None of the analysis
Class = TRANSIENT 122
input can be changed for the restarted job (except TIMEX, ITERX, LEVELX for the next interrupt). The transientanalysis is completely specified by the initial job.
ITERX, LEVELX ≥ 1
Chapter 27
Class = TRANSIENT LOOP, All Types
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
loop definitionCHILD c*32 child loop name (blank for last loop)
parts solved in loop (iterated with inner loops)NPARTI int number of parts (maximum 400)PARTI(NPARTI) c*32 part name
parts solved at end of loopNPARTE int number of parts (maximum 400)PARTE(NPARTE) c*32 part name
modules written at end of loopNWRT int number of modules (maximum 400)WRT(NWRT) c*32 module nameKINDW(NWRT) int write module kind (1 shell; 2 convergence; 3 loop; 4 part; 5 modes; 6 output of part; 7 output; 8 graphics)
loop outputTRACE(2) int trace during loop solution
TRACE(1) = 0 noneTRACE(1) = 1 warning at end of loop if not convergedTRACE(1) = 2 and status at end of each iterationTRACE(1) = 3 and information at end of each iterationTRACE(1) = 4 and warning if subordinate part/loop not convergedTRACE(2) = 0 header only at beginning of solution
transient convergence write moduleNCPRNT int print (0 none, 1 summary, 2 variables not converged, 3 all variables)
loop solution write module (0 for no output)NLPRNT int printNLFILE int plot file
Class = TRANSIENT LOOP, All Types 124
Loop hierarchy must be series (no branches).More than one first loop is possible.
PARTI parts should not directly affect each other, or must be solved in proper order (not checked).PARTE parts should not be involved in convergence of iteration (not checked).Parts can appear in several loops, or no loop (not solved).Write modules can appear in several loops.Parts and write modules are solved, written in the order that they are defined in the loop.
Write modules:
KINDW WRT function
shell XXXX nn only last characters used (if not integer, get n = 0)convergence loop convergence of WRT loop, and all subordinate loops and partsloop loop no output availablepart part also calls modes write modulemodes mode setoutput of part part output y corresponding to ξ, fl, y of part solutionoutput outputgraphics part
Convergence: controlled by NCPRNT of loop and part.System status always printed and written to plot file (even if NCPRNT = 0).
WRT loop and loop containing it must have common parent loop (same first loop).Output of part: if more than one y defined for ξ or fl, get last defined.Graphics: graphics data written to plot file, at times specified by implicit part.
Chapter 28
Class = TRANSIENT LOOP, Type = SUCCESSIVE SUBSTITUTION
Variable Type Description
successive substitution solution methodMLEVEL int number of levels (1 for none; maximum 8)
convergence control, for each levelMITER(MLEVEL) int number of iterations (1 for no iteration, 0 to skip level)TOLER(MLEVEL) real toleranceRELAX(MLEVEL) real relaxation factorLEVLAB(MLEVEL) c*32 level labelOPTEST(MLEVEL) int test for convergence (0 to suppress)PARENT c*32 parent loop, level determines parameters of this loop (blank for none)
If parent loop is not identified: There must be at least one level (MLEVEL ≥ 1), and at least one iteration at thelast level. Any level except the last can be skipped entirely (MITER = 0). The MLEVEL parameters correspondto the levels of this loop.
If parent loop is identified: There is one level for this loop, and at least one iteration (MITER ≥ 1). The MLEVEL
parameters correspond to the levels of the parent loop. The parent loop must be successive substitution, and aparent can not be identified for that loop. MLEVEL must equal or exceed the number of levels of the parent loop.
Last loop can not be successive substitution type.Successive substitution must have one part in loop, and child.
Variable Initial Values
MLEVEL 1MITER 8*1OPTEST 8*1
Class = TRANSIENT LOOP, Type = SUCCESSIVE SUBSTITUTION 126
Chapter 29
Class = TRANSIENT PART, All Types
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
part outputTRACE(2) int trace during part solution
TRACE(1) = 0 noneTRACE(1) = 1 warning at end of part if not convergedTRACE(1) = 2 and status at end of each iterationTRACE(1) = 3 and information at end of each iteration (variables not converged)TRACE(1) = 4 and information at end of each iteration (all variables)TRACE(2) = 0 header only at beginning of solution
transient convergence write moduleNCPRNT int print (0 none, 1 summary)
part solution write module (0 for no output)NPPRNT int printNPFILE int plot file
Parts are identified in the component, interface, and output definitions.
Structural dynamic no-residual interface: part with fl must also have ξb to be eliminated.Structural dynamic interface: in same part as A or B component.Input/output interface: for implicit solution (implicit or differential equation part), solve in passes.
Ordered so evaluate fl before used by any other equations in this part (not checked).Implicit: no degrees of freedom, constraint must be input/output interface.
Class = TRANSIENT PART, All Types 128
Trace not available for implicit solution.Part solution write module, NPPRNT and NPFILE parameters:
implicit: 1 for responseintegration:
1 for motion (excluding rigid unless frame), 2 for motion, 3 for all responseplus 4 for solution vector
Chapter 30
Class = TRANSIENT PART, Type = IMPLICIT
Variable Type Description
implicit solution methodtransient response solution
TRESP real time step (sec), Δt
Number of time steps MTIME = (tE − tB)/Δt (tE not used otherwise).MTIME ≥ 1; 0. < TRESP ≤ TIMEE − TIMEB
Class = TRANSIENT PART, Type = IMPLICIT 130
Chapter 31
Class = TRANSIENT PART, Type = INTEGRATION
Variable Type Description
differential equationsKINDDE int differential equation kind (1 time varying, 2 time invariant)
matrix calculationOPMTRX int method (0 use component option, 1 analytical, 2 perturbation)
perturbation methodOPPERT int perturbation order (1 first order, 2 second order)DELTAD real variable perturbation, displacementDELTAV real variable perturbation, velocityDELTAA real variable perturbation, accelerationOPREF real equation reference (0 none, 1 nominal, 2 nominal/reference, 3 current solution)
average of matricesMPSIAV int number of time steps in windowPERIOD c*32 period name (blank for none, use WINDOW)WINDOW real window (sec)
update of matricesOPUPDT(3) int strategy
OPUPDT(1) count of time steps (1 response, 2 integration)OPUPDT(2) update interval (0 never, 1 constant, 2 once)OPUPDT(3) recalculate modes when update part equations (0 no, 1 yes)
NUPDT int number of time steps between updateOPSDF int perturbation of forces on structural dynamic components (1 only SD interface forces, 2 and applied loads, 3 and aerodynamic loads)OPQSR int quasistatic reduction option (1 no residual, 2 residual)
first order degrees of freedom in partNFIRST int number (maximum 100)
specificationFNAMEC(NFIRST) c*32 component nameFNAMEV(NFIRST) c*32 vector nameFNAMEE(NFIRST) c*32 element name
Class = TRANSIENT PART, Type = INTEGRATION 132
Average of matrices: over window before current time; MPSIAV ≤ 1 for none.The window value is one revolution, or input. The average is not implemented for time invariant equations.
Update of matrices:Matrices that depend on time varying transform always updated each integration time step.Should update matrices and modes if system time varying, or reference changes.Always calculate matrices at beginning of part solution.NUPDT is constant update interval (response or integration steps) for OPUPDT(2) = 1.
Update every integration time step if OPUPDT(1) = 2, OPUPDT(2) = 1, NUPDT = 1.Should use OPUPDT(3) = 1 when modes depend on solution for interface forces or elastic motion.
For only structural dynamic contributions to matrices:Use implicit solution of input/output interface equations (TNPASS ≥ 1) and OPSDF = 1.
First order degrees of freedom: For numerical integration of degrees of freedom with zero mass, the accelerationis set to zero.
Matrix calculation method OPMTRX: 0 to use component option (if exists, else analytical); 1 for analytical (ifavailable, else perturbation); 2 for perturbation.
integration solution methodtransient response solution
TRESP real time step (sec), Δtnumerical integration method
METHOD int algorithm1 Newmark linear, 3 Wilson linear, 5 HHT linear2 Newmark nonlinear, 4 Wilson nonlinear, 6 HHT nonlinear
ALPHA real HHT numerical dissipationOPINIT int initialization at each time step (0 zero, 1 constant, 2 constant disp, 3 constant acc, 4 zero acc)OPMATH int numerical precision (0 system option, 1 single, 2 double)TSTEP real numerical integration time increment (sec), δt
Class = TRANSIENT PART, Type = INTEGRATION 133
iteration at each integration stepconvergence control
MITER int number of iterationsTOLER real toleranceRELAX real relaxation factorRELAXI real relaxation factor for implicit solutionDAMP real damping (fraction critical)OPTEST int test for convergence (0 to suppress)
Δt = TRESP determines response available to other parts and output.δt = TSTEP determines integration accuracy.
Number of response time steps MTIME = (tE − tB)/Δt (tE not used otherwise).Number of integration time increments MINTEG = Δt/δt (in each step of response solution).
Then the analysis replaces TSTEP = Δt/MINTEG; input δt not used otherwise.MINTEG ≥ 1, TSTEP ≤ TRESP; MTIME ≥ 1, TRESP ≤ TIMEE − TIMEB
Can iterate with either linear or nonlinear algorithm; no iteration if MITER = 1.No iteration required for linear problem (matrices independent of solution).
Can iterate even with no degrees of freedom, since still solving constraint equations (all algorithms same).
DAMP: damping added to both sides of differential equation, to improve convergence. This damping can affectthe result, if both sides of the differential equation are not treated the same by the integration algorithm.
Variable Initial Values
KINDDE 2OPMTRX 1OPPERT 2OPREF 3MPSIAV 12
Class = TRANSIENT PART, Type = INTEGRATION 134
OPUPDT 1,0,1NUPDT 4OPSDF 1OPQSR 2
METHOD 2ALPHA -.05OPINIT 1MITER 1TOLER 1.RELAX 1.RELAXI 1.OPTEST 1
Chapter 32
Class = FLUTTER
Variable Type Description
OPFLUT int system kind (0 time invariant, 1 periodic)
Time invariant: true or constant coefficient approximation (first loop averaged).Periodic: actual equations might be time invariant.
For flutter analysis task: core block class = FLUTTER must exist (only one; no type, ignore name).
periodic systemPERIOD c*32 period nameAZREF real azimuth for time = 0 (deg)
evaluate equationsMPSI int number of time steps in periodOPNTRP int interpolation method (1 linear, 2 Fourier, 3 Fourier-linear)MHARM int number of harmonics (Fourier, MHARM < MPSI/2; or Fourier-linear)
outputOPLABL int variable label (1 variable element number, 2 quantity element label; may be superseded by shell)
write modules (periodic system)time step increment for output (0 for only last step)
MEQNS int loop and part equationsMMODE int modes
analysis of equationsNVPRNT int print variable description
1 for description without constraint force, 2 for all variablesplus 2 for full variable description
Class = FLUTTER 136
analysis of flutter equationsTASK(4) int analysis tasks (0 to suppress)
TASK(1) eigenanalysisTASK(2) time history responseTASK(3) frequency responseTASK(4) rms gust response
OPEQN(9) int equation sets analyzed (0 to suppress) complete symmetric antisymmetric
full dynamics OPEQN(1) OPEQN(2) OPEQN(3)quasistatic reduction of designated degrees of freedom OPEQN(4) OPEQN(5) OPEQN(6)quasistatic reduction of all but rigid degrees of freedom OPEQN(7) OPEQN(8) OPEQN(9)
OPQSR int quasistatic reduction (1 no residual, 2 with residual)FSCALE c*32 period name for frequency scale (blank for scale = 1.)
Time invariant: MEIGN, MSTEP not used.
Periodic: Only eigenanalysis and time history tasks are available. No zeros or output eigenvectors; time historyby numerical integration only.
output selection (0 for none)print plot file printer-plot
KPRNT(4) int eigenanalysis KPRNT(1) KFILE(1) KPLOT(1)KFILE(4) int time history response KPRNT(2) KFILE(2) KPLOT(2)KPLOT(4) int frequency response KPRNT(3) KFILE(3) KPLOT(3)NMPRNT int rms gust response KPRNT(4) KFILE(4) KPLOT(4)NMFILE int matrices NMPRNT NMFILE
matrices: 0 none, 1 first order, 2 second order, 3 bothalways print eigenvalues; KPLOT not used for eigenanalysisKPRNT, KPLOT, KFILE not used for rms gust responsefrequency response printer-plot only for OPBODE
Class = FLUTTER 137
MTXOUT int matrix output form0 for dimensional, 1 for dimensionless time2 to divide equation by highest order nonzero diagonal term, 3 for both
variables as outputNOUT int number (maximum 250)
specificationKINDO(NOUT) int kind (0 degree of freedom displacement, 1 velocity, 2 acceleration, 3 control)ONAMEC(NOUT) c*32 component nameONAMEV(NOUT) c*32 vector nameONAMEE(NOUT) c*32 element name
rigid degrees of freedom in systemNRIGID int number (maximum 250)
specificationXNAMEC(NRIGID) c*32 component nameXNAMEV(NRIGID) c*32 vector nameXNAMEE(NRIGID) c*32 element name
first order degrees of freedom in systemNFIRST int number (maximum 250)KINDF(NFIRST) int identification of order (0 determine from equations, 1 first (K=0), 2 second, 3 first (M=0))
specificationFNAMEC(NFIRST) c*32 component nameFNAMEV(NFIRST) c*32 vector nameFNAMEE(NFIRST) c*32 element name
Variables as output: ONAMEC = ONAMEV = blank for ONAMEE = variable number (degree of freedom numberor control number in flutter equations).
First order degrees of freedom in system: for variables that are not specified in this list, the order is determinedfrom the equations. Even if a variable is physically first order, a small spring or mass may be found when theequations are linearized by numerical perturbation. Hence this option is implemented to override determinationof the order from the equations. The option must be used with care: if identify first order variable as secondorder, may get multiple zero roots or singular mass matrix; if identify second order variable as first order, losespring or mass.
Class = FLUTTER 138
analysis parameterseigenanalysis, TASK(1)
OPEIGN int calculation control0 eigenvalues; +1 state eigenvectors; +2 output eigenvectors; +4 zeros and residues
MEIGN int integration method1 numerical integration, modified trapezoidal2 numerical integration, Runge-Kutta
MSTEP int number of time steps in period
Periodic system: state transition matrix is obtained by integration. Number of time steps must be even for Runge-Kutta method. Eigenvectors are of state transition matrix. Zeros and output eigenvectors are not available.
time history response, TASK(2)OPHIST int control input type
0 impulse, 1 step, 2 ramp, 3 cosine impulse, 4 sine doublet, 5 square impulse6 square doublet, 7 triangular impulse, 8 triangular doublet, 9 general (piecewise linear)
TPER real period (sec)NCYCLE int number of cyclesTIMEB real beginning time (sec)
general time historyNTIME int number of time steps (maximum 200)TIME(NTIME) real time (sec)AMP(NTIME) real amplitudeMHIST int integration method
0 from modes (time invariant)1 numerical integration, modified trapezoidal2 numerical integration, Runge-Kutta
TSTEP real time step for numerical integration (sec)TMAX real maximum time (sec)TOUT real time step for output (sec)
Class = FLUTTER 139
TPER > 0., NCYCLE ≥ 1; TPER for OPHIST = 3–8, NCYCLE for OPHIST = 3–4TMAX is measured from TIMEB.
General time history (OPHIST = 9): NTIME ≥ 1; TIME(i) > 0., sequential and unique. Assume amplitude AMP
= 0. at TIME = 0., AMP = AMP(NTIME) for time ≥ TIME(NTIME).
From modes: not available for periodic system. Results do not depend on time step TOUT (and TSTEP notused).
Numerical integration: impulse (OPHIST = 0) not available. Time step TSTEP affects accuracy. Should haveTMAX exact multiple of TOUT, TOUT exact multiple of TSTEP.
frequency response, TASK(3)OPSTEP int static response (0 for none)OPBODE int frequency response at range of frequencies (0 for none)
frequency response at list of frequenciesNFREQ int number of frequencies (0 for none; maximum 400)FREQ(NFREQ) real frequencies (dimensionless)MFREQ int calculation method
1 matrices2 poles and zeros3 modes
Three ways to specify frequencies: zero, calculated range, and input list.Zero (OPSTEP): response from matrices.Calculated range (OPBODE): frequencies from OPSCL parameters.Input list (NFREQ): FREQ in rad/sec if no frequency scale identified.
Three ways to calculate response (MFREQ): matrices probably most accurate, poles and zeros least accurate;modes probably fastest.
Class = FLUTTER 140
rms gust response, TASK(4)OPSPEC int gust spectrum type (1 Dryden, 2 von Karman)
gust correlation length (τ = L/V )KINDL int definition (1 from length, 2 from time constant)OPCOND c*32 operating condition name for velocity V
gust component parameters (longitudinal, lateral, vertical)GLABEL(3) c*8 labels in control variablesGRMS(3) real rms magnitudeLGUST(3) real correlation length L (ft or m)TGUST(3) real correlation time constant τ (sec)MGUST int calculation method
0 stochastic, modes1 integral of transfer function, matrices2 integral of transfer function, poles and zeros3 integral of transfer function, modes
Rms response not properly defined for system with unstable modes.LGUST ≤ 0. for default = 400.; TGUST ≤ 0. for default = 0.1; use TGUST if V is zero.GRMS dimensional magnitude (ft/sec or m/sec) or relative magnitude of three components.
Two methods to calculate response (MGUST):Stochastic method, with a Markov process gust model. Dryden gust spectrum only (OSPEC not used).
Or integrate product of gust spectrum and transfer function. Requires OPSCL parameters. Integration ofgust spectrum always performed. Result very sensitive to range and increment of frequency scale.
To check, identify gust variables as output: rms response of gust variables should equal input magnitude. Systemresponse spectra are not as smooth as the gust spectra (because of resonances). So may need still smallerfrequency increment for accuracy.
Class = FLUTTER 141
definition of range of frequencieslog scale, exponent base 10
NFB int begin frequencyNFE int end frequency
linear scaleFB real begin frequencyFE real end frequencyOPSCL(7) int definition of scales
frequency scaleOPSCL(1) 1 log (base 10), 2 linearOPSCL(2) 1 per rev, 2 Hz, 3 rad/secOPSCL(3) frequency step per decade (log)OPSCL(4) number of frequency increments (linear)OPSCL(5) frequency label increment (linear)
magnitude scaleOPSCL(6) 1 log (base 10), 2 dB (20 log10), 3 linearOPSCL(7) 1 relative maximum, 2 relative 10K , 3 relative 10.
OPSCL required for frequency response (OPBODE �= 0), and for rms gust response (MGUST ≥ 1).Magnitude scale only used for printer-plot.Number of frequencies (NDLOG(NFE-NFB)+1 for log, NDLIN+1 for linear) has same maximum as NFREQ.
Variable Initial Values
MPSI 12OPNTRP 2MHARM 5OPLABL 1NVPRNT 1
Class = FLUTTER 142
TASK 1,3*0OPEQN 1,8*0OPQSR 2KPRNT 1,0,1,1KFILE 4*1KPLOT 4*1NMPRNT 2NMFILE 2MTXOUT 2OPEIGN 0MEIGN 1MSTEP 100OPHIST 3TPER 1.NCYCLE 1MHIST 0TSTEP .001TMAX 10.TOUT .01OPSTEP 1OPBODE 1MFREQ 3OPSPEC 1KINDL 1GRMS 3*1.MGUST 0NFB -2NFE 1FB 0.FE 10.OPSCL 1,1,20,50,10,1,2
Chapter 33
Class = FLUTTER LOOP
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
loop definitionparts solved before child loops
NPARTI int number of parts (maximum 1000)PARTI(NPARTI) c*32 part namePASSI(NPARTI) int pass
child loopsNLOOP int number of loops (maximum 1000)CHILD(NLOOP) c*32 loop name
parts solved after child loopsNPARTE int number of parts (maximum 1000)PARTE(NPARTE) c*32 part namePASSE(NPARTE) int pass
modules written at end of loopNWRT int number of modules (maximum 1000)WRT(NWRT) c*32 module nameKINDW(NWRT) int write module kind (1 shell; 2 convergence; 3 loop; 4 part; 5 modes)
loop operationsaverage of matrices
MPSIAV int number of time steps per revPERIOD c*32 period nameOPRED int order reduction (0 none)OPQSR int quasistatic reduction (0 none, 1 no residual, 2 residual)
Class = FLUTTER LOOP 144
loop outputTRACE int trace during loop solution (0 none, 1 status at end of loop, 2 status during loop)
loop solution write module (0 for no output)NLPRNT int printNLFILE int plot file
Loop hierarchy must be tree (not circular). Only one first loop is allowed.Parts can appear in one loop, or no loop (not solved).The pass defines the order in which the interface parts are solved.Write modules are written in the order that they are defined in the loop.
Checks at execution (not initialization):When merge equations of loop:
No mode or transform yet applied to degree of freedom identified as coupling with other parts.When transform equations of loop:
Transform variables (system degrees of freedom, input, or output) must be found in loop equations.When flutter loop solution complete:
No degrees of freedom or forces still identified as coupling with other parts can remain in final equations.
Average of matrices: over window of one revolution before current time; MPSIAV ≤ 1 for none.Transforms: performed at designated loop, if required variables are present.Delete equations and variables (OPRED):
For all omitted degrees of freedom, control, and output (REDUCE = 0) present in equations of loop.Quasistatic reduction (OPQSR):
For all quasistatic degrees of freedom (REDUCE = 2) present in equations of loop. Spring of quasistaticdegrees of freedom must be nonsingular if reduced in loop. Analysis of equations can handle quasistaticvelocity and acceleration.
Variables will be reduced by analysis of equations if not by flutter loop.
Class = FLUTTER LOOP 145
Transform: not implemented unless all variables found in system.All variables must be found in loop equations (check at execution). Transform of input variables applied inall loops at designated level.
Transform, order reduction, quasistatic reduction:Can not be applied to degree of freedom that is needed by any loop at this or parent level (any degreeof freedom identified as coupling with other parts). In transform, variables will be inconsistent otherwise(check at execution). In reduction, final equations will contain coupling degrees of freedom otherwise(check at execution).
Write modules:
KINDW WRT function
shell XXXX nn only last characters used (if not integer, get n=0)convergence loop no output availableloop looppart part also calls modes write modulemodes mode set
Write modules are executed after all loop operations are complete. If equations are averaged, output will be atlast time step of average. Put part and write module inside child loop to get output at all times.
Loop solution write module, NLPRNT and NLFILE parameters:1 for equations without constraint forces, 2 for all equations; plus 2 for full variable description
Variable Initial Values
MPSIAV 4OPRED 1OPQSR 0
Class = FLUTTER LOOP 146
Chapter 34
Class = FLUTTER PART, All Types
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
part outputpart solution write module (0 for no output)
NPPRNT int printNPFILE int plot file
Parts are identified in the component, interface, and output definitions.
Structural dynamic no-residual interface: part with fl must also have ξb to be eliminated.Structural dynamic interface: in same part as A or B component.Interface solution: no motion or output equations; constraint must be input/output interface.
Constraint equation can not depend on interface variables of any differential equations part.Differential equations:
Input/output or structural dynamic (full-residual) constraint equation can not depend on degree of freedomor interface variable of other part. Motion and output equations can not depend on interface variable ofanother differential equations part. Degrees of freedom that couple parts can not be modes or transformedvariable (checked during execution, not at initialization).
If an equation depends on variables of a parent interface part, they must be available (the parent interface partmust be solved before this part).
Part solution write module, NPPRNT and NPFILE parameters:differential equations:
1 for equations without constraint forces, 2 for all equations; plus 2 for full variable descriptioninterface: none
Class = FLUTTER PART, All Types 148
Chapter 35
Class = FLUTTER PART, Type = INTERFACE
Variable Type Description
interface solution methodmatrix calculation
OPMTRX int method (0 use component option, 1 analytical, 2 perturbation)perturbation method
OPPERT int perturbation order (1 first order, 2 second order)DELTAD real variable perturbation, displacementDELTAV real variable perturbation, velocityDELTAA real variable perturbation, accelerationOPREF int equation reference (0 none, 1 nominal, 2 nominal/reference, 3 trim solution)
Dependence on other interface parts must be tree (not circular).
OPREF: perturb relative trim response; trim reference is updated mean; should perturb about complete trimsolution (nominal, reference, and difference) if system is nonlinear.
Matrix calculation method OPMTRX: 0 to use component option (if exists, else analytical); 1 for analytical (ifavailable, else perturbation); 2 for perturbation.
Variable Initial Values
OPMTRX 1OPPERT 2OPREF 3
Class = FLUTTER PART, Type = INTERFACE 150
Chapter 36
Class = FLUTTER PART, Type = DIFFERENTIAL EQUATIONS
Variable Type Description
differential equationsmatrix calculation
OPMTRX int method (0 use component option, 1 analytical, 2 perturbation)perturbation method
OPPERT int perturbation order (1 first order, 2 second order)DELTAD real variable perturbation, displacementDELTAV real variable perturbation, velocityDELTAA real variable perturbation, accelerationOPREF int equation reference (0 none, 1 nominal, 2 nominal/reference, 3 trim solution)
OPREF: perturb relative trim response; trim reference is updated mean; should perturb about complete trimsolution (nominal, reference, and difference) if system is nonlinear.
Matrix calculation method OPMTRX: 0 to use component option (if exists, else analytical); 1 for analytical (ifavailable, else perturbation); 2 for perturbation.
Update of matrices: only calculate modes once for flutter solution.
Variable Initial Values
OPMTRX 1OPPERT 2OPREF 3
Class = FLUTTER PART, Type = DIFFERENTIAL EQUATIONS 152
Chapter 37
Class = TRANSFORM
Variable Type Description
KINDT int transform kind1 multiblade coordinates, 2 rotating to nonrotating, 3 symmetric/antisymmetric
variablesKINDV int kind (1 degree of freedom, 2 mode, 3 input, 4 output)OPDEFN int definition (0 by vector, 1 by element)
specification of variablesNAMEC(nvar) c*32 component nameNAMEV(nvar) c*32 vector nameNAMEE(nvar) int element sequence number
transformed variablesREDUCE(nvar) int order reduction (0 zero, 1 dynamic, 2 quasistatic)
parametersNBLADE int number of blades (maximum 60)OPEQNS int equation transform (1 conventional, 2 symmetric)PERIOD c*32 period nameAZREF real azimuth for time = 0 (deg)
Can apply transform to degree of freedom, mode, input, or output. Each variable (ξ, mode, u, y) can be in at mostone multiblade coordinates or rotating-to-nonrotating transform, and one symmetric/antisymmetric transform.All variables of transform must be in same transient part or flutter loop (that all variables are present in the flutterloop equations is checked at execution, not initialization). NBLADE ≥ 2.
Class = TRANSFORM 154
transform multiblade coordinates rotating to nonrotating symmetric/antisymmetric
number of variables number of blades N 2 2order of variables blade 1 to blade N A, B right, lefttransformed to 0,1c,1s, . . . ,nc,ns,N/2 cosine, sine symmetric, antisymmetricparameters NBLADE, OPEQNS PERIOD, AZREF OPEQNS
PERIOD, AZREF
Define variables by vector or by element. For definition by vector, transform all elements of the vectors (do notuse element names; order reduction applies to all elements). Symmetric/antisymmetric transform can be appliedto multiblade or nonrotating variables (still identified by original variable name).
Specification of order reduction supersedes previous specification. Symmetry identification superseded bysymmetric/antisymmetric transform.
transform applicationTMPART c*32 trim part name (blank for none)TNPART c*32 transient part name (blank for none)FLLOOP c*32 flutter loop name (blank for none)
Must identify where the transform is performed: each transform is used for trim and/or transient and/or fluttertask. If the variables are not found in the trim part, transient part, or flutter system, then the transform is notimplemented.
Trim or transient task: only multiblade coordinate or rotating-to-nonrotating transform, of degree of freedom ormode. OPEQNS not used.
Flutter task: transform of input variables applied in all loops at designated level.
Class = TRANSFORM 155
Variable Initial Values
REDUCE 60*1OPEQNS 1
Class = TRANSFORM 156
Chapter 38
Class = MODES
Variable Type Description
LABEL c*8 label (name from header)DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
PARENT c*32 parent mode set name (blank for none)OPREF int equation reference (0 none, 1 nominal, 2 nominal/reference, 3 current solution)
average of matricesMPSIAV int number of time steps in windowPERIOD c*32 period name (blank for none, use WINDOW
WINDOW real window (sec)trim part solution
OPCHLD int child degree of freedom (0 no, 1 yes)PNAMEM c*32 parent mode set nameDELAZ real azimuth phase shift (deg)
mode vectorLENGTH int length of vector (maximum 400)TENAME(LENGTH) c*32 element nameTELABL(LENGTH) c*8 element labelGDAMP(LENGTH) real structural damping (g = 2 × critical)REDUCE(LENGTH) int order reduction (0 zero, 1 dynamic, 2 quasistatic)OPSYM(LENGTH) int symmetry identification (1 symmetric, −1 antisymmetric, 0 both)DEFDMP real default structural damping (g = 2 × critical)DEFRED int default order reduction (0 zero, 1 dynamic, 2 quasistatic)OPNORM int mode normalization method (1 for max(|wqyq|) = 1; 2 for
∑(w2
qy2q ) = 1)
weight for perturbation of modesWTNAME c*32 standard weights name (blank for none)WTPERT real weight or weight factor
Class = MODES 158
outputmode write module
NMPRNT int print (0 for none, 1 for dynamic, 2 for not zero, 3 for all)NMFILE int plot file (0 for none)MFREQ int print frequencies for all modes (0 no, 1 yes)
Modes are identified in the component, interface, and output definitions. Each mode set can be used for only onetask. Mode equations must be a subset of a part (except for the output equations). Modes are only available fordifferential equation parts; and only for structural dynamic components and structural dynamic interfaces. Themodal subsystem must be constrained (any rigid degrees of freedom eliminated, in ξb).
Output is defined for normalization and print of mode shapes. The output must be input/output x, and not dependon derivatives of ξ, or on structural dynamic no-residual fl.
The definition of the parent mode set (PARENT) is not hierarchical. If the parent modes are in another part, theymust be calculated before this mode set is needed (not checked). The child and parent definitions must match(only the number of vectors and the total lengths are checked). The child and parent mode sets must be used inthe same task.
Average of matrices: over window before current time; MPSIAV ≤ 1 for none. The window value is onerevolution, or input.
Mode vector (θ) total length = number of kept degrees of freedom. Input element information is used for the firstLENGTH modes, in order by frequency. Defaults are used for the remainder (default name, label; damping =DEFDMP, reduction = DEFRED, symmetry = both). The order reduction supersedes the order defined for degreeof freedom in response. Symmetry identification is only required for the flutter analysis.
NMPRNT selects output based on order reduction (only mode shapes if MFREQ �= 0).
The same perturbation weight is used for all modes. So the modes must be appropriately normalized if WTPERT
is used. See class = WEIGHTS for a description of the standard weights.
Negative eigenvalues of the mass or spring matrix, or zero eigenvalues of the mass matrix, cause an errormessage to be printed. The eigenvalues of the mass and spring matrix are printed if the matrix algebra debug ison (DEBUG(15) ≥ 1 in class = CASE).
Class = MODES 159
Child degree of freedom for trim part solution (OPCHLD): Not hierarchical. Length must match parent. Childand parent must be in same trim part (harmonic or time finite element).
Variable Initial Values
OPREF 2MPSIAV 4OPNORM 1WTPERT 1.NMPRNT 2
Class = MODES 160
Chapter 39
Class = RESPONSE, All Types
Variable Type Description
DEBUG int debug trace of operation (0 to 4, 0 for none, 4 for high level print)
KINDR int response kind (1 component degree of freedom ξ; 2 interface fl; 3 input um; 4 output y; 5 frame β)specification of response vector
RNAMEC c*32 component nameRNAMEV c*32 vector nameWTNAME c*32 standard weights name (blank for none)
trim child responsespecification of parent response (blank for none)
PNAMEC c*32 component namePNAMEV c*32 vector nameOPSIGN int change sign (0 no, 1 yes)
rigid response type: 1/2/3 for angular X/Y/Z axis and linear Y Z/XZ/XY axesOPPHS int phase shift (0 no, 1 yes)DELT real time shift value (sec)DELAZ real azimuth shift value (deg)
trim part solutionOPFILT int filter active (0 no, 1 yes)OPCHLD int child degree of freedom (0 no, 1 yes, 2 gimbal, 3 teeter)
Frame: definition for frame degree of freedom (if exists) supersedes definition for component degree of freedom.
Output: y = (ξ, fl, um, β) shares response with solution; y = x has separate response.
For each quantity, only one response definition by input (or none).Rigid response for rigid body component degree of freedom and frame (KINDRM must match componentdefinition); variable response otherwise. Input must be variable response, rest position. Turning framenominal only used for appropriate interface variables.
Class = RESPONSE, All Types 162
If the response is not defined by input, then the analysis creates a response record using defaults:Rigid response for rigid body component degree of freedom and frame; variable response otherwise.Rest position; nominal, reference, initial difference = 0 (unit rotation matrices).Order reduction = dynamic; weight = 1.0 (convergence, perturbation), 0.0 (mode).For rigid response, representation of degrees of freedom is inertial axis displacement and Rodrigues param-eters; and degree of freedom relative nominal.
The names of default response records created by the analysis are printed if the initialization debug is on(DEBUG(1) ≥ 1 in class = CASE).
Order reduction (xxRED,QxxRED, PxxRED):degree of freedom ξ, constraint fl, output y (trim and transient)
For REDUCE = zero, set difference to zero when part solves for response. Implemented at end ofsolution procedure, so variable zero to other parts; not during solution, to avoid inconsistencies withinpart (for example, with structural dynamic force).
degree of freedom ξ, control u, output y (flutter)For REDUCE = zero, delete variable/equation in loop solution or flutter analysis.For REDUCE = quasistatic, reduce degree of freedom in loop solution or flutter analysis.
degree of freedom ξ (and mode or transform variables)Used to partition solution vector with differential equations part. Partition may not be used, or speci-fication may not be allowed. In particular, quasistatic not used for trim static part (same as dynamic);zero not used for flutter part; trim part rigid degrees of freedom must be dynamic, so can get rigidforce. For REDUCE = zero, degree of freedom also set to zero at end of solution.
Response specification of order reduction may be superseded by mode or transform.Symmetry (OPSYM, QOPSYM, POPSYM):
Identification only required for flutter analysis.Trim filter implemented when response evaluated by solution procedure (if available in part).
Perturbation and convergence weights:The response can identify a standard weights by name (WTNAME; blank for none). If none is identified,the weight is the input value of WTPxxx or WTCxxx. Otherwise, the weight is the product of the standardweight and the input WTPxxx or WTCxxx. The standard weight depends on the variable kind (KINDWT).See class = WEIGHTS for a description of the standard weights.
Class = RESPONSE, All Types 163
Trim child response:No part solution (null solution method, or no loop). Not hierarchical (parent can not be child of anotherresponse). Not available for input. Parent can not have secondary periods.Must match parent: type, KINDR, length;
and KINDRM, REPLIN, REPANG, KINDN, KINDB, KINDDN or KINDN.Parent response evaluated at time t + Δt, possibly with sign changes.
Phase shift from DELAZ if periodic or multiperiod, Δt = Δψ/Ω.Phase shift from DELT otherwise.Rigid nominal still evaluated at time t, using child parameters (including AZREF forrotating frame kind).
Child does not use:OPFILT; or WTCxxx, WTPxxx, QINIT/PINIT, QREF/PREF parameters of rigid type;or any parameters of variable type except for KINDN, TNRED, FLRED, OPSYM.
Nominal used for transient also, so must be careful if not constant (rest position).
Child degree of freedom for trim part solution (OPCHLD):Trim child response requires OPCHLD = 0.Parent defined for OPCHLD = 1; use PNAMEC, PNAMEV, DELAZ.
Not hierarchical. Length and type must match parent.Child and parent must be in same trim part (harmonic or time finite element).
No parent for gimbal or teeter degree of freedom (OPCHLD = 2 or 3).Gimbal (OPCHLD = 2): variable must be 2 degree of freedom vector (β, θ).Teeter (OPCHLD = 3): variable must be 1 degree of freedom vector.
Class = RESPONSE, All Types 164
Chapter 40
Class = RESPONSE, Type = RIGID
Variable Type Description
nominal/reference, rigidKINDRM int rigid motion degrees of freedom (1 linear, 2 linear and angular)
representation of degrees of freedomREPLIN int linear (1 inertial displacement, 2 body displacement, 3 body velocity)REPANG int angular (1 Euler C = XY Z, 2 Rodrigues, 3 arbitrary Euler C = UV W )AXIS(3) int arbitrary Euler, axes of UV W rotations (±123 = ±XY Z)
weightsfor convergence test of difference
WTCLIN real linearWTCANG real angular
for perturbation of differenceWTPLIN real linearWTPANG real angular
nominal/referenceKINDN int kind (1 base frame, 2 rotating frame, 3 rest position)KINDB int kind base frame (1 body axes, 2 stability axes, 3 constrained)KINDDN int rotating frame or rest position (1 degree of freedom relative nominal, 2 nominal relative degree of freedom)
base frameOPCOND c*32 operating condition name (blank for first)XFIREF(3) real position of frame origin for time = 0
Class = RESPONSE, Type = RIGID 166
rotating framePERIOD c*32 period nameAZREF real rotation for time = 0 (deg)
orientation of rotation axisCRREP int representationCROT(3,3) real rotation matrixCRANGL(3) real rotation anglesCRAXIS(3) int rotation axes
representation: 0 unit C = I , 1 Euler C = XY Z, 2 Rodrigues C(p), 3 arbitrary Euler C = UV W , 4 matrixrotation angles (deg) for REP=1 (XY Z), REP=2 (p), REP=3 (UV W ); rotation matrix for REP=4rotation axes for REP=3, UV W rotations: ±123 = ±XY Z axis
AXROT int rotation axis (±123 = ±XY Z)nominal, rotating frame or rest position
orientationCNREP int representationCNOM(3,3) real rotation matrixCNANGL(3) real rotation anglesCNAXIS(3) int rotation axes
representation: 0 unit C = I , 1 Euler C = XY Z, 2 Rodrigues C(p), 3 arbitrary Euler C = UV W , 4 matrixrotation angles (deg) for REP=1 (XY Z), REP=2 (p), REP=3 (UV W ); rotation matrix for REP=4rotation axes for REP=3, UV W rotations: ±123 = ±XY Z axis
ZNOM(3) real displacement
degrees of freedom order reductionQREF(3) real reference initial difference trim transient flutter symmetryPREF(3) realQINIT(3) real linear QREF QINIT QTMRED QTNRED QFLRED QOPSYM
PINIT(3) real angular PREF PINIT PTMRED PTNRED PFLRED POPSYM
QTMRED(3) intPTMRED(3) int reference: for rotating frame or rest positionQTNRED(3) int order reduction: 0 zero, 1 dynamic, 2 quasistaticPTNRED(3) int symmetry identification: 1 symmetric, −1 antisymmetric, 0 bothQFLRED(3) intPFLRED(3) int
Class = RESPONSE, Type = RIGID 167
QOPSYM(3) intPOPSYM(3) int
A base frame (parent frame = inertial) can use any nominal. Need KINDN = base frame for constant velocitynominal, and so solution procedure has access to parameters (operating condition parameters).
Base frame nominal and reference (KINDN = 1):KINDB must match OPFREE of operating condition.Not constrained:
Representation must be body axis velocity or inertial axis displacement; and Euler angles.Body axis velocity and Euler angles is aircraft convention.Body axes: no nominal, reference from operating condition, degree of freedom = FI.Stability axes: total = FI, nominal = FV and reference from operating condition,nominal relative degree of freedom.
Constrained:No nominal, reference from operating condition (angular displacement only),degree of freedom = FI.
Representation of linear degrees of freedom: body axis velocity only for KINDN = base frame. Body axis velocityrepresentation does not produce complete position x. Use inertial axis displacement if position relative inertialframe important (such as for ground effect or for wake geometry in transient).
Variable Initial Values
KINDRM 2REPLIN 1REPANG 2AXIS 1,2,3WTCLIN 1.WTCANG 1.
Class = RESPONSE, Type = RIGID 168
WTPLIN 1.WTPANG 1.KINDN 3KINDB 1KINDDN 1AXROT 3QTMRED 3*1PTMRED 3*1QTNRED 3*1PTNRED 3*1QFLRED 3*1PFLRED 3*1
Chapter 41
Class = RESPONSE, Type = VARIABLE
Variable Type Description
nominal/reference, variableMVAR int number of variables (maximum 100)
nominal/referenceKINDN int kind (1 turning frame, 2 rotating variable, 3 rest position, 4 none)OPCOND c*32 turning frame: operating condition name (blank for first)XNOM(MVAR) real rest position and rotating variable: nominal (at time = 0 for rotating variable)PERIOD(MVAR) c*32 rotating variable: period name (blank for none)
weightsKINDWT(MVAR) int standard weights variable kindWTCONV(MVAR) real for convergence test of differenceWTPERT(MVAR) real for perturbation of differenceWTMODE(MVAR) real for normalization of modesXREF(MVAR) real referenceXINIT(MVAR) real initial difference
order reduction (0 zero, 1 dynamic, 2 quasistatic)TMRED(MVAR) int trimTNRED(MVAR) int transientFLRED(MVAR) int flutterOPSYM(MVAR) int symmetry identification (1 symmetric, −1 antisymmetric, 0 both)
Generally MVAR equals the number of elements in the vector.With no nominal/reference (KINDN = 4), only the first record of the variable list is used (MVAR = 1).
If there is input for only one element (MVAR = 1), the values are applied to all elements in the vector. Thestandard weights for aerodynamic interfaces still produce a different weight for each element.
If the input variable list is too short (1 < MVAR < length), the analysis expands the list using defaults. If theinput variable list is too long (MVAR > length), the list is truncated.
Class = RESPONSE, Type = VARIABLE 170
WTMODE is only required for output y used by a mode set.The symmetry identification is only required for the flutter analysis.
kind nominal units
turning frame from operating conditionrotating variable
PERIOD = period XNOM + Ωt degPERIOD = blank XNOM variable x (angular = rad)
rest position XNOM variable x (angular = rad)none none
Variable Initial Values
KINDN 3WTCONV 100*1.WTPERT 100*1.TMRED 100*1TNRED 100*1FLRED 100*1
Chapter 42
Class = WEIGHTS
Variable Type Description
LABEL c*8 label (name from header; element name and label = variable name)reference quantities
LENGTH real length (ft or m), LANGVEL real angular velocity (rad/sec), ΩLINVEL real linear velocity (ft/sec or m/sec), VFORCE real force (lb or N), F
Core block class = WEIGHTS must exist (at least one).
LENGTH, ANGVEL, LINVEL, FORCE > 0.
The response (and other pieces) that require a perturbation or convergence weight can identify a standard weightsby name (WTNAME; blank for none). If none is identified, the weight is the input value of WTPxxx or WTCxxx.Otherwise, the weight is the product of the standard weight and the input WTPxxx or WTCxxx. The default valuesof WTPxxx and WTCxxx should be 1. The standard weight depends on the variable kind (KINDWT).
The response (and other pieces) specify the variable kind, by the parameter KINDWT. The standard weight is1. for input KINDWT out of range, or for extra elements of the aerodynamic interfaces. The following standardweights are available.
Class = WEIGHTS 172
basicKINDWT = 0 unitKINDWT = 1 angular displacement (deg)KINDWT = 2 angular displacement (rad)KINDWT = 3 angular velocityKINDWT = 4 angular accelerationKINDWT = 5 linear displacementKINDWT = 6 linear velocityKINDWT = 7 linear accelerationKINDWT = 8 forceKINDWT = 9 momentKINDWT = 10 powerKINDWT = 11 circulationKINDWT = 12 dynamic pressure
aerodynamic interfaces of structural dynamic componentsKINDWT = 13 velocity (10 elements: v, q, dv/dt, ω)KINDWT = 14 position (6 elements: r, dr/dt)KINDWT = 15 force (6 elements: F , M )
aerodynamicKINDWT = 16 circulation peaks
Chapter 43
TABLE FORMATS
43–1 Class and Type
Tables correspond to files, so they provide a general file input capability for the analysis, particularly for large
arrays of data. Each table class and type has a specific file format and data organization. The table quantities may
be functions of continuous variables, accessed by interpolation; functions of discrete variables; or unstructured
sets of numbers. Figure 1 lists the table classes and types implemented in the analysis.
A component identifies a table by class, type, and name. The user defines the names. Within a class, names
must be unique, even if the type is different. The table specification also includes a file unit number, and the
file name or logical name. The file name or logical name can be the same as the name in the class/type/name
specification (this is the default). There is also a default unit number.
43–2 Table File Formats
The table file can be written and read either formatted or unformatted. A formatted file can be fixed form
or free form. In a free form file, each line consists of a number of fields separated by blanks or commas or tabs.
In a fixed form file, the data are found in fields of specific width and position. The tables implemented use the
following formats.
class type format
two dimensional standard formatted, freethree dimensional standard formatted, freefour dimensional standard formatted, free
airfoil standard formatted, freeairfoil C81 formatted, fixedairfoil CAMRAD unformatted
matrix standard formatted, free
unstructured real formatted, freeunstructured integer formatted, free
In free form, the characteristics of a line are as follows: maximum 132 characters; maximum 20 fields; each field
maximum 40 characters. The field separator is a blank or comma or tab. Any equals sign and the part of the field
to its left will be ignored. Thus the format “name=value” can be used (blanks before and after the equals sign
are permitted). Comments (exclamation mark and what follows on the line) are ignored, except for the title and
identification lines.
174 TABLE FORMATS
CLASS TYPE NAME
TWO DIMENSIONAL STANDARDTHREE DIMENSIONAL STANDARDFOUR DIMENSIONAL STANDARD
AIRFOIL STANDARDAIRFOIL C81AIRFOIL CAMRAD
MATRIX STANDARD
UNSTRUCTURED REALUNSTRUCTURED INTEGER
Lower case is accepted for class and type. Unique initial letters of class or type areaccepted. Specific abbreviations and alternatives:
class = TWO DIMENSIONAL = 2Dclass = THREE DIMENSIONAL = 3Dclass = FOUR DIMENSIONAL = 4D
class = AIRFOIL:type = C81 = FIXED FORMATtype = CAMRAD = WING
class = MATRIX = ARRAY
Figure 43-1 Table blocks.
TABLE FORMATS 175
Generally each table has a title, and the file has an identification, which should be unique. Independent and
dependent variables may have labels. The maximum lengths of these parameters are as follows: title 80 characters;
file identification 20 characters; labels 8 characters. Blank lines are typically interpreted as zeros and blank labels,
depending on the location in the file. The end of each table has values of reference quantities. Comments can be
placed at the end of the file.
43–3 Class = Two Dimensional, Type = Standard
This table contains one or more two-dimensional coefficients: a set of Cγ(α, β). There is a separate,
rectangular (α, β) array for each coefficient:
αi for i = 1 to Nα
βj for j = 1 to Nβ
The coefficients are identified by a label γk (k = 1 to Nγ). The dependent variable data consist of the values
Ck(i, j). The independent variables α and β can be cyclical, and uniform. Figure 2 defines the file format
(formatted, free form). There are NG dependent variables, each a function of A and B: a set of C(A,B). The
limitations are:
parameter maximum minimum
TITLE 80 charactersIDENT 20 charactersLABELA, LABELB, LABELGk 8 charactersNG 250 1NAk, NBk 100 1number of reference values 10
The independent variable αi has uniform increments if it is designated uniform, or if NAk exceeds the above limit.
Then Δα is determined by the first two A values (but all A values must still be present in the table). Similarly,
the independent variable βj can be uniform. There is no limit on the number of values of a uniform independent
variable. The number of coefficient values (sum of NAk times NBk) is arbitrary. The values of A and B must be
unique and sequential. More than one line can be used for each table row (A value). A new table row (A values)
must start on a new line. The key words are “ALPHA”, “BETA”, “ANGLE” or “CYCLICAL”, “UNIFORM”, and
“END”. Nothing is read after “END OF FILE”.
Since NA or NB can equal 1, this table class can be used for one-dimensional coefficients: a set of Cγ(α)or Cγ(β), with a separate array for each γk. Figure 3 defines an alternate file format (formatted, free form) for
one-dimensional coefficients. In this case the table contains a set of coefficients Cγ(α), identified by a label γk
(k = 1 to Nγ), each with the same independent variables αi (i = 1 to Nα). The coefficients are in a single array
with α values in the first column, followed by columns of the Cγ values. More than one line can be used for each
table row (A value).
43–4 Class = Three Dimensional, Type = Standard
This table contains a three-dimensional coefficient: C(α, β, γ). The information is arranged as a separate,
rectangular (α, β) array:αi for i = 1 to Nα
βj for j = 1 to Nβ
176 TABLE FORMATS
TITLEIDENTLABELA LABELB NG NG=1 if absent
NAk NBk LABELGk block repeated NG timesB(1,k) ... ... B(NBk,k) k = 1 to NG
A(1,k) C(1,1,k) ... ... C(1,NBk,k). . .. . .. . .A(NAk,k) C(NAk,1,k) ... ... C(NAk,NBk,k)
REF1 ... REFn optionalALPHA = ANGLE, UNIFORM optional, default noBETA = ANGLE, UNIFORM optional, default noEND OF FILE
Figure 43-2 Table File Format: Class = Two Dimensional, Type = Standard(blank lines shown for clarity, not part of file format).
TITLEIDENTLABELA
NA NG NG=1 if absentLABELG(1) ... ... LABELG(NG)
A(1) C(1,1) ... ... C(1,NG). . .. . .. . .A(NA) C(NA,1) ... ... C(NA,NG)
REF1 ... REFn optionalALPHA = ANGLE, UNIFORM optional, default noEND OF FILE
Figure 43-3 Table File Format: Class = Two Dimensional, Type = Standard(one-dimensional option; blank lines shown for clarity, not part of file format).
TABLE FORMATS 177
TITLEIDENTLABELA LABELB LABELG NG NG=1 if absent
NAk NBk Gk block repeated NG timesB(1,k) ... ... B(NBk,k) k = 1 to NG
A(1,k) C(1,1,k) ... ... C(1,NBk,k). . .. . .. . .A(NAk,k) C(NAk,1,k) ... ... C(NAk,NBk,k)
REF1 ... REFn optionalALPHA = ANGLE, UNIFORM optional, default noBETA = ANGLE, UNIFORM optional, default noGAMMA = ANGLE, SEARCH, UNIFORM optional, default noEND OF FILE
Figure 43-4 Table File Format: Class = Three Dimensional, Type = Standard(blank lines shown for clarity, not part of file format).
TITLEIDENTLABELA LABELB LABELG LABELD ND ND=1 if absent
NG Dm block repeated ND timesm = 1 to ND
NA NB Gk block repeated NG timesB(1) ... ... B(NB) k = 1 to NG
A(1) C(1,1,k,m) ... ... C(1,NB,k,m). . .. . .. . .A(NA) C(NA,1,k,m) ... ... C(NA,NB,k,m)
REF1 ... REFn optionalALPHA = ANGLE, UNIFORM optional, default noBETA = ANGLE, UNIFORM optional, default noGAMMA = ANGLE, UNIFORM optional, default noDELTA = ANGLE, UNIFORM optional, default noEND OF FILE
Figure 43-5 Table File Format: Class = Four Dimensional, Type = Standard(blank lines shown for clarity, not part of file format).
178 TABLE FORMATS
for a set of values γk (k = 1 to Nγ). The dependent variable data consist of the values Ck(i, j). The independent
variables α and β can be cyclical, and uniform. The independent variable γ can be searched or interpolated;
cyclical; and uniform. For interpolation, γk defines the value for the k-th two-dimensional array. For search, γk
defines the beginning of the range of the k-th two-dimensional array. Figure 4 defines the file format (formatted,
free form). There are NG values of G, at each of which the coefficient is a function of A and B: C(A,B,G). The
limitations are:
parameter maximum minimum
TITLE 80 charactersIDENT 20 charactersLABELA, LABELB, LABELG 8 charactersNG 250 1NAk, NBk 100 1number of reference values 10
The independent variable αi has uniform increments if it is designated uniform, or if NAk exceeds the above limit.
Then Δα is determined by the first two A values (but all A values must still be present in the table). Similarly,
the independent variables βj and γk can be uniform. There is no limit on the number of values of a uniform
independent variable. If NG exceeds the above limit, the values of NAk, NBk, A, and B at the limit are used for all
following γk. The number of coefficient values (sum of NAk times NBk) is arbitrary. The values of A, B, and G
must be unique and sequential. More than one line can be used for each table row (A value). A new table row (A
values) must start on a new line. The key words are “ALPHA”, “BETA”, “GAMMA”, “ANGLE” or “CYCLICAL”,
“SEARCH”, “UNIFORM”, and “END”. Nothing is read after “END OF FILE”.
43–5 Class = Four Dimensional, Type = Standard
This table contains a four-dimensional coefficient: C(α, β, γ, δ). The information is arranged as a separate,
rectangular (α, β) array:αi for i = 1 to Nα
βj for j = 1 to Nβ
for a set of γk (k = 1 to Nγ) and δm (m = 1 to Nδ) values. The (αi, βj) values are the same for all (γ, δ); the
γk values are the same for all δ. The dependent variable data consist of the values C(i, j, k, m). The independent
variables α, β, γ, and δ can be cyclical, and uniform. Figure 5 defines the file format (formatted, free form). There
are ND values of D and NG values of G, at each of which the coefficient is a function of A and B: C(A,B,G,D).
The limitations are:
parameter maximum minimum
TITLE 80 charactersIDENT 20 charactersLABELA, LABELB, LABELG 8 charactersND, NG 250 1NA, NB 100 1number of reference values 10
The independent variable αi has uniform increments if it is designated uniform, or if NA exceeds the above limit.
Then Δα is determined by the first two A values (but all A values must still be present in the table). Similarly,
TABLE FORMATS 179
the independent variables βj , γk, and δm can be uniform. There is no limit on the number of values of a uniform
independent variable. The number of coefficient values (product of ND, NG, NA, NB) is arbitrary. The values of
A, B, G, and D must be unique and sequential. More than one line can be used for each table row (A value). A
new table row (A values) must start on a new line. The key words are “ALPHA”, “BETA”, “GAMMA”, “DELTA”,
“ANGLE” or “CYCLICAL”, “UNIFORM”, and “END”. Nothing is read after “END OF FILE”.
43–6 Class = Airfoil
Airfoil tables contain lift coefficient, drag coefficient, and moment coefficient data as a function of angle of
attack α and Mach number M : c�(α, M), cd(α, M), and cm(α, M). The angle of attack is cyclical. For all airfoil
tables, the first reference value is the Reynolds number Re1 (default value of zero). This is the Reynolds number of
the table corresponding to a Mach number M = 1. The Reynolds number at an arbitrary Mach number will then be
calculated as Re = M Re1. This linear relation is usually an approximation to the true relation between Reynolds
number and Mach number for the airfoil data. Thus Re1 is chosen to minimize the error of the approximation over
the range of data in the table.
The airfoil can have a trailing edge flap. Then the coefficients are functions of the flap angle φ as well as
angle of attack and Mach number; and the table includes coefficients of lift, drag, and moment acting on the flap:
c�f , cdf , and cmf . The coefficients c�, cd, and cm are the total loads on the airfoil, including the flap loads. The
second reference value is the flap angle φ.
43-6.1 Class = Airfoil, Type = Standard
This table contains three or six two-dimensional coefficients: c�(α, M), cd(α, M), and cm(α, M); and
c�f (α, M), cdf (α, M), and cmf (α, M) with a trailing edge flap. There is a separate, rectangular (α, M ) array for
each coefficient:αi for i = 1 to Nα
Mj for j = 1 to NM
The dependent variable data consist of the values c�(i, j), cd(i, j), and cm(i, j); and c�f (i, j), cdf (i, j), and
cmf (i, j). The coefficients can be in any order, and angle of attack can be the row or the column. The angle of
attack α is cyclical. If the airfoil has a trailing edge flap, the table is for one flap angle. Figure 6 defines the file
format (formatted, free form). There are three or six coefficients, each a function of A and B: a set of C(A,B). The
labels LABELA and LABELB identify the independent variables A and B as
a) Angle of attack: label = ALPHA
b) Mach number: label = MACH
(either order). The table is for an airfoil with a trailing edge flap if the keyword “FLAP” is present; the second
reference value is the flap angle. The labels LABELGk identify the dependent variables as
a) Lift coefficient: label = CL
b) Drag coefficient: label = CD
c) Moment coefficient: label = CM
d) Flap lift coefficient: label = CLF
e) Flap drag coefficient: label = CDF
f) Flap moment coefficient: label = CMF
180 TABLE FORMATS
(any order). The limitations are:
parameter maximum minimum
TITLE 80 charactersIDENT 20 charactersLABELA, LABELB, LABELG 8 charactersNAk, NBk 400 α, 100 M 2number of reference values 2
The values of A and B must be unique and sequential. More than one line can be used for each table row (A value).
A new table row (A values) must start on a new line. The key words are “MACH”, “FLAP”, and “END”. Nothing
is read after “END OF FILE”.
43-6.2 Class = Airfoil, Type = C81
This table contains three or six two-dimensional coefficients: c�(α, M), cd(α, M), and cm(α, M); and
c�f (α, M), cdf (α, M), and cmf (α, M) with a trailing edge flap. There is a separate, rectangular (α, M ) array for
each coefficient:αi for i = 1 to Nα
Mj for j = 1 to NM
The dependent variable data consist of the values c�(i, j), cd(i, j), and cm(i, j); and c�f (i, j), cdf (i, j), and
cmf (i, j). The coefficients must be in a fixed order, and the angle of attack must be the row. The angle of attack
α is cyclical. If the airfoil has a trailing edge flap, the table is for one flap angle. Figure 7 defines the file format
(formatted, fixed form). There are three or six coefficients, each a function of A and M: a set of C(A,M). The
independent variable A is angle of attack, and the independent variable M is Mach number. The table is for an airfoil
with a trailing edge flap if NA and NM for the flap coefficients are present in the header line; the second reference
value is the flap angle. The dependent variables are lift coefficient, drag coefficient, and moment coefficient; and
flap lift coefficient, flap drag coefficient, and flap moment coefficient (fixed order). The limitations are:
parameter maximum minimum
HEADER 30 charactersNML, NAL, NMD, NAD, NMM, NAM 99 2NMLF, NALF, NMDF, NADF, NMMF, NAMF 99 2number of reference values 2
The values of A and M must be unique and sequential. The header is used as the title. The basic read format is
10 columns, each 7 characters wide; the first column is only used for the A values. If NM is greater than 9, more
than one line is used for each table row (A value). A new table row (A values) must start on a new line. With
a trailing edge flap, the header line includes NMLF, NALF, NMDF, NADF, NMMF, NAMF; and the CLF, CDF,
CMF arrays follow the CM array. Nothing is read after the reference values (or one blank line).
This description has several extensions of the original C81 file format. Reference values (for Reynolds
number and perhaps flap angle) have been added to the end of the table. Lift, drag, and moment coefficients for a
trailing edge flap have been added. The table is for an airfoil with a trailing edge flap if NA and NM for the flap
coefficients are present in the header line; so these values must be blank if the table does not have the trailing edge
flap coefficients.
TABLE FORMATS 181
TITLEIDENTLABELA LABELB FLAP
NAk NBk LABELGk block repeated 3 or 6 timesB(1,k) ... ... B(NBk,k) k = 1 to 3 or 6
A(1,k) C(1,1,k) ... ... C(1,NBk,k). . .. . .. . .A(NAk,k) C(NAk,1,k) ... ... C(NAk,NBk,k)
REF1 REF2END OF FILE
Figure 43-6 Table File Format: Class = Airfoil, Type = Standard(blank lines shown for clarity, not part of file format).
read formatHEADER NML,NAL,NMD,NAD,NMM,NAM A30,6I2,6I2
M(1,k) ... ... M(NML,k) 7X,9F7.0A(1,k) CL(1,1,k) ... ... CL(1,NML,k) 10F7.0/(7X,9F7.0). . . .. . . .A(NAL,k) CL(NAL,1,k) ... ... CL(NAL,NML,k) 10F7.0/(7X,9F7.0)
M(1,k) ... ... M(NMD,k) 7X,9F7.0A(1,k) CD(1,1,k) ... ... CD(1,NMD,k) 10F7.0/(7X,9F7.0). . . .. . . .A(NAD,k) CD(NAD,1,k) ... ... CD(NAD,NMD,k) 10F7.0/(7X,9F7.0)
M(1,k) ... ... M(NMM,k) 7X,9F7.0A(1,k) CM(1,1,k) ... ... CM(1,NMM,k) 10F7.0/(7X,9F7.0). . . .. . . .A(NAM,k) CM(NAM,1,k) ... ... CM(NAM,NMM,k) 10F7.0/(7X,9F7.0)REF1 REF2 2F14.0
Figure 43-7 Table File Format: Class = Airfoil, Type = C81.
182 TABLE FORMATS
43-6.3 Class = Airfoil, Type = CAMRAD
This table contains three three-dimensional coefficients: c�(α, M, r), cd(α, M, r), and cm(α, M, r). The last
independent variable is the wing span station r. If the wing has a trailing edge flap at any span station, the table con-
tains six four-dimensional coefficients: c�(α, M, φ, r), cd(α, M, φ, r), and cm(α, M, φ, r); and c�f (α, M, φ, r),cdf (α, M, φ, r), and cmf (α, M, φ, r). The information is arranged as a common, rectangular (α, M ) array:
αi for i = 1 to Nα
Mj for j = 1 to NM
for a set of values φl (l = 1 to Nφ) and rk (k = 1 to Nr). A special convention is used for the (α, M ) array,
designed for efficient interpolation. The dependent variable data consist of the values c�(i, j, l, k), cd(i, j, l, k), and
cm(i, j, l, k); and c�f (i, j, l, k), cdf (i, j, l, k), and cmf (i, j, l, k). The angle of attack α is cyclical. The span station
r can be searched or interpolated. In both cases, there are Nr sets of coefficients, corresponding to span stations
rk, for k = 1 to Nr. For interpolation, rk defines the value for the k-th airfoil. For search, rk defines the beginning
of the range of the k-th airfoil. In the latter case the table data are used over the range r = rk to r = rk+1. If the
wing has a trailing edge flap, at each span station k there are Nφk sets of coefficients, corresponding to the flap
angles φl, for l = 1 to Nφk. If a section has no flap, then Nφk = 1 and zero flap angle is assumed.
The CAMRAD table file is constructed by the program INPUT from a set of two-dimensional airfoil tables,
one for each span station and each flap angle. Each source table (Standard or C81 type) is for a single airfoil
section and flap angle. The CAMRAD table is for the entire wing, containing one or more airfoil sections. The
file format (unformatted) is internal to the analysis.
43–7 Class = Matrix, Type = Standard
This table contains one or more two-dimensional matrices or arrays: a set of CM (I, J). There is a separate,
rectangular (I , J) array for each matrix (integers):
Ii for i = 1 to NI
Jj for j = 1 to NJ
The matrices are identified by a label or number Mk (k = 1 to NM ). The independent variables I and J can
be uniform. The dependent variable data consist of the values Ck(i, j). The data are not interpolated. Figure 8
defines the file format (formatted, free form). There are NMTX matrices, each a function of I and J: a set of C(I,J).
The limitations are:
parameter maximum minimum
TITLE 80 charactersIDENT 20 charactersLABELRk, LABELCk, LABELMk 8 charactersNMTX 50NIk 400 1NJk 50 1number of reference values 10
The independent variable Ii has uniform increments if it is designated uniform, or if NIk exceeds the above limit.
Then ΔI is determined by the first two I values (but all I values must still be present in the table). Similarly,
TABLE FORMATS 183
the independent variable Jj can be uniform. There is no limit on the number of values of a uniform independent
variable. The number of coefficient values (sum of NIk times NJk) is arbitrary. The values of I and J must be
unique and sequential. More than one line can be used for each table row (I value). A new table row (I values)
must start on a new line. The key words are “ROW”, “COLUMN”, “UNIFORM”, and “END”. Nothing is read
after “END OF FILE”.
43–8 Class = Unstructured, Type = Real or Integer
This table contains real or integer numbers: a set of numbers T (i), for i = 1 to N . The numbers are counted
as read, and stored in a record in the order read. The data are not interpolated. The use of the table data by the
analysis depends on the component implementation. The component may assume a structure of the numbers in
the table. Figure 9 defines the file format (formatted, free form). The limitations are:
parameter maximum minimum
TITLE 80 charactersIDENT 20 charactersDESCRIPTION 120 characters
A data line contains one or more numbers. As a free form file, the characteristics of a line are as follows: maximum
132 characters; maximum 20 fields; each field maximum 40 characters. The field separator is a blank or comma
or tab. Any equals sign and the part of the field to its left will be ignored. Thus the format “name=value” can
be used (blanks before and after the equals sign are permitted). Comments (exclamation mark and what follows
on the line) are ignored, except for the title and identification lines. The third line of the file contains descriptive
information. If this line has the format of a data line with integer values, the integers are extracted for use by the
component. Nothing is read after “END OF FILE” (the key word is “END”).
184 TABLE FORMATS
TITLEIDENTNMTX NMTX=1 if blank
LABELRk LABELCk LABELMk block repeated NMTX timesNIk NJk MTXIDk k = 1 to NMTX
J(1,k) ... ... J(NJk,k)I(1,k) C(1,1,k) ... ... C(1,NJk,k). . .. . .. . .I(NIk,k) C(NIk,1,k) ... ... C(NIk,NJk,k)
REF1 ... REFn optionalROW = UNIFORM optional, default noCOLUMN = UNIFORM optional, default noEND OF FILE
Figure 43-8 Table File Format: Class = Matrix, Type = Standard(blank lines shown for clarity, not part of file format).
TITLEIDENTDESCRIPTIONdata.....dataEND OF FILE optional
Figure 43-9 Table File Format: Class = Unstructured, Type = Real or Integer.