CAMRAD II - Johnson Aeronautics

192
CAMRAD II COMPREHENSIVE ANALYTICAL MODEL OF ROTORCRAFT AERODYNAMICS AND DYNAMICS Volume IV: Input Wayne Johnson Distributed by Johnson Aeronautics AMI Aero, LLC Palo Alto, California Redmond, Washington

Transcript of CAMRAD II - Johnson Aeronautics

Page 1: 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

Page 2: CAMRAD II - Johnson Aeronautics
Page 3: CAMRAD II - Johnson Aeronautics

CAMRAD IICOMPREHENSIVE ANALYTICAL MODEL OF

ROTORCRAFT AERODYNAMICS AND DYNAMICS

Volume IV: Input

Release 5.0

Wayne Johnson

Johnson Aeronautics

Page 4: CAMRAD II - 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.

Page 5: CAMRAD II - Johnson Aeronautics

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

Page 6: CAMRAD II - Johnson Aeronautics

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

Page 7: CAMRAD II - Johnson Aeronautics

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

Page 8: CAMRAD II - Johnson Aeronautics

vi CONTENTS

Page 9: CAMRAD II - Johnson Aeronautics

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.

Page 10: CAMRAD II - Johnson Aeronautics

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.

Page 11: CAMRAD II - Johnson Aeronautics

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

Page 12: CAMRAD II - Johnson Aeronautics

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.

Page 13: CAMRAD II - Johnson Aeronautics

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.

Page 14: CAMRAD II - Johnson Aeronautics

6 INTRODUCTION

Page 15: CAMRAD II - Johnson Aeronautics

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

Page 16: CAMRAD II - Johnson Aeronautics

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

Page 17: CAMRAD II - Johnson Aeronautics

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.

Page 18: CAMRAD II - Johnson Aeronautics

10 PROGRAM CONVENTIONS

Page 19: CAMRAD II - Johnson Aeronautics

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).

Page 20: CAMRAD II - Johnson Aeronautics

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.

Page 21: CAMRAD II - Johnson Aeronautics

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.

Page 22: CAMRAD II - Johnson Aeronautics

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

Page 23: CAMRAD II - Johnson Aeronautics

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.

Page 24: CAMRAD II - Johnson Aeronautics

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.

Page 25: CAMRAD II - Johnson Aeronautics

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.

Page 26: CAMRAD II - Johnson Aeronautics

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.

Page 27: CAMRAD II - Johnson Aeronautics

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.

Page 28: CAMRAD II - Johnson Aeronautics

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.

Page 29: CAMRAD II - Johnson Aeronautics

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.

Page 30: CAMRAD II - Johnson Aeronautics

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.

Page 31: CAMRAD II - Johnson Aeronautics

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.

Page 32: CAMRAD II - Johnson Aeronautics

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.

Page 33: CAMRAD II - Johnson Aeronautics

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.

Page 34: CAMRAD II - Johnson Aeronautics

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

Page 35: CAMRAD II - Johnson Aeronautics

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.

Page 36: CAMRAD II - Johnson Aeronautics

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.

Page 37: CAMRAD II - Johnson Aeronautics

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.

Page 38: CAMRAD II - Johnson Aeronautics

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.

Page 39: CAMRAD II - Johnson Aeronautics

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;

Page 40: CAMRAD II - Johnson Aeronautics

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.

Page 41: CAMRAD II - Johnson Aeronautics

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.

Page 42: CAMRAD II - Johnson Aeronautics

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).

Page 43: CAMRAD II - Johnson Aeronautics

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

Page 44: CAMRAD II - Johnson Aeronautics

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).

Page 45: CAMRAD II - Johnson Aeronautics

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.

Page 46: CAMRAD II - Johnson Aeronautics

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.

Page 47: CAMRAD II - Johnson Aeronautics

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.

Page 48: CAMRAD II - Johnson Aeronautics

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.

Page 49: CAMRAD II - Johnson Aeronautics

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.

Page 50: CAMRAD II - Johnson Aeronautics

42 RUNNING CAMRAD II PROGRAMS

Page 51: CAMRAD II - Johnson Aeronautics

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.

Page 52: CAMRAD II - Johnson Aeronautics

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.

Page 53: CAMRAD II - Johnson Aeronautics

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.

Page 54: CAMRAD II - Johnson Aeronautics

46 OUTLINE OF PROGRAM INPUT DESCRIPTION

Page 55: CAMRAD II - Johnson Aeronautics

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

Page 56: CAMRAD II - Johnson Aeronautics

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

Page 57: CAMRAD II - Johnson Aeronautics

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

Page 58: CAMRAD II - Johnson Aeronautics

CORE INPUT FILE PREPARATION 50

Page 59: CAMRAD II - Johnson Aeronautics

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

Page 60: CAMRAD II - Johnson Aeronautics

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).

Page 61: CAMRAD II - Johnson Aeronautics

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

Page 62: CAMRAD II - Johnson Aeronautics

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

Page 63: CAMRAD II - Johnson Aeronautics

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

Page 64: CAMRAD II - Johnson Aeronautics

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

Page 65: CAMRAD II - Johnson Aeronautics

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

Page 66: CAMRAD II - Johnson Aeronautics

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

Page 67: CAMRAD II - Johnson Aeronautics

TABLE FILE PREPARATION 59

NM 1,7,21,17*0M 0.,.6,.95,17*0.NRB 1ND 20*1RNTRP 1ASTART 0.MSTART .65OPFORM 1

Page 68: CAMRAD II - Johnson Aeronautics

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 .

Page 69: CAMRAD II - Johnson Aeronautics

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.

Page 70: CAMRAD II - Johnson Aeronautics

TABLE FILE PREPARATION 62

Page 71: CAMRAD II - Johnson Aeronautics

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.

Page 72: CAMRAD II - Johnson Aeronautics

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)

Page 73: CAMRAD II - Johnson Aeronautics

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)

Page 74: CAMRAD II - Johnson Aeronautics

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

Page 75: CAMRAD II - Johnson Aeronautics

CAMRAD II ANALYSIS 67

NFITJR 44NFITJW 45NFRNJR 46NFRNJW 47NFSTAT 48NFTABL 49

OPNFIL 1CLSFIL 1NFUMAX -1DEFFIL 1BLKCMP 1DVSFIL 0ERRACT 1OPEXIT 1OPMATH 2OPEIGN 2

Page 76: CAMRAD II - Johnson Aeronautics

CAMRAD II ANALYSIS 68

Page 77: CAMRAD II - Johnson Aeronautics

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)

Page 78: CAMRAD II - Johnson Aeronautics

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

Page 79: CAMRAD II - Johnson Aeronautics

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.

Page 80: CAMRAD II - Johnson Aeronautics

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

Page 81: CAMRAD II - Johnson Aeronautics

Class = CASE 73

Variable Initial Values

OPUNIT 1TMTASK 1OPDENS 1AXGRAV 3GRAVI 0.,0.,1.GRNDI 0.,0.,1.

Page 82: CAMRAD II - Johnson Aeronautics

Class = CASE 74

Page 83: CAMRAD II - Johnson Aeronautics

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.

Page 84: CAMRAD II - Johnson Aeronautics

Class = FRAME 76

Page 85: CAMRAD II - Johnson Aeronautics

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

Page 86: CAMRAD II - Johnson Aeronautics

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

Page 87: CAMRAD II - Johnson Aeronautics

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 ).

Page 88: CAMRAD II - Johnson Aeronautics

Class = INTERFACE, Type = INPUT/OUTPUT 80

Variable Initial Values

TMPASS 1TNPASS 1

Page 89: CAMRAD II - Johnson Aeronautics

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)

Page 90: CAMRAD II - Johnson Aeronautics

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

Page 91: CAMRAD II - Johnson Aeronautics

Class = OUTPUT 83

NTFILE 1NTPLOT 0MTIME 1MPEAK 1NHPRNT 1NHFILE 1MHARM 0OPHARM 2NSPRNT 1NSFILE 1NSPLOT 0

Page 92: CAMRAD II - Johnson Aeronautics

Class = OUTPUT 84

Page 93: CAMRAD II - Johnson Aeronautics

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 ).

Page 94: CAMRAD II - Johnson Aeronautics

Class = INPUT 86

Page 95: CAMRAD II - Johnson Aeronautics

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).

Page 96: CAMRAD II - Johnson Aeronautics

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.

Page 97: CAMRAD II - Johnson Aeronautics

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.

Page 98: CAMRAD II - Johnson Aeronautics

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.

Page 99: CAMRAD II - Johnson Aeronautics

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).

Page 100: CAMRAD II - Johnson Aeronautics

Class = PERIOD 92

Variable Initial Values

WTPERT 1.GEAR 1.

Page 101: CAMRAD II - Johnson Aeronautics

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

Page 102: CAMRAD II - Johnson Aeronautics

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.

Page 103: CAMRAD II - Johnson Aeronautics

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

Page 104: CAMRAD II - Johnson Aeronautics

Class = TRIM LOOP, Type = SUCCESSIVE SUBSTITUTION 96

Page 105: CAMRAD II - Johnson Aeronautics

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

Page 106: CAMRAD II - Johnson Aeronautics

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

Page 107: CAMRAD II - Johnson Aeronautics

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

Page 108: CAMRAD II - Johnson Aeronautics

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

Page 109: CAMRAD II - Johnson Aeronautics

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.

Page 110: CAMRAD II - Johnson Aeronautics

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

Page 111: CAMRAD II - Johnson Aeronautics

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.

Page 112: CAMRAD II - Johnson Aeronautics

Class = TRIM PART, Type = IMPLICIT 104

Page 113: CAMRAD II - Johnson Aeronautics

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)

Page 114: CAMRAD II - Johnson Aeronautics

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.

Page 115: CAMRAD II - Johnson Aeronautics

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

Page 116: CAMRAD II - Johnson Aeronautics

Class = TRIM PART, Type = STATIC 108

Page 117: CAMRAD II - Johnson Aeronautics

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)

Page 118: CAMRAD II - Johnson Aeronautics

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.

Page 119: CAMRAD II - Johnson Aeronautics

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.

Page 120: CAMRAD II - Johnson Aeronautics

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.

Page 121: CAMRAD II - Johnson Aeronautics

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

Page 122: CAMRAD II - Johnson Aeronautics

Class = TRIM PART, Type = HARMONIC 114

Page 123: CAMRAD II - Johnson Aeronautics

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)

Page 124: CAMRAD II - Johnson Aeronautics

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.

Page 125: CAMRAD II - Johnson Aeronautics

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

Page 126: CAMRAD II - Johnson Aeronautics

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

Page 127: CAMRAD II - Johnson Aeronautics

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

Page 128: CAMRAD II - Johnson Aeronautics

Class = TRIM PART, Type = TIME FINITE ELEMENT 120

Page 129: CAMRAD II - Johnson Aeronautics

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

Page 130: CAMRAD II - Johnson Aeronautics

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

Page 131: CAMRAD II - Johnson Aeronautics

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

Page 132: CAMRAD II - Johnson Aeronautics

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.

Page 133: CAMRAD II - Johnson Aeronautics

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

Page 134: CAMRAD II - Johnson Aeronautics

Class = TRANSIENT LOOP, Type = SUCCESSIVE SUBSTITUTION 126

Page 135: CAMRAD II - Johnson Aeronautics

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.

Page 136: CAMRAD II - Johnson Aeronautics

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

Page 137: CAMRAD II - Johnson Aeronautics

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

Page 138: CAMRAD II - Johnson Aeronautics

Class = TRANSIENT PART, Type = IMPLICIT 130

Page 139: CAMRAD II - Johnson Aeronautics

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

Page 140: CAMRAD II - Johnson Aeronautics

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

Page 141: CAMRAD II - Johnson Aeronautics

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

Page 142: CAMRAD II - Johnson Aeronautics

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

Page 143: CAMRAD II - Johnson Aeronautics

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

Page 144: CAMRAD II - Johnson Aeronautics

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

Page 145: CAMRAD II - Johnson Aeronautics

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.

Page 146: CAMRAD II - Johnson Aeronautics

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)

Page 147: CAMRAD II - Johnson Aeronautics

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.

Page 148: CAMRAD II - Johnson Aeronautics

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.

Page 149: CAMRAD II - Johnson Aeronautics

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

Page 150: CAMRAD II - Johnson Aeronautics

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

Page 151: CAMRAD II - Johnson Aeronautics

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)

Page 152: CAMRAD II - Johnson Aeronautics

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.

Page 153: CAMRAD II - Johnson Aeronautics

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

Page 154: CAMRAD II - Johnson Aeronautics

Class = FLUTTER LOOP 146

Page 155: CAMRAD II - Johnson Aeronautics

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

Page 156: CAMRAD II - Johnson Aeronautics

Class = FLUTTER PART, All Types 148

Page 157: CAMRAD II - Johnson Aeronautics

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

Page 158: CAMRAD II - Johnson Aeronautics

Class = FLUTTER PART, Type = INTERFACE 150

Page 159: CAMRAD II - Johnson Aeronautics

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

Page 160: CAMRAD II - Johnson Aeronautics

Class = FLUTTER PART, Type = DIFFERENTIAL EQUATIONS 152

Page 161: CAMRAD II - Johnson Aeronautics

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.

Page 162: CAMRAD II - Johnson Aeronautics

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.

Page 163: CAMRAD II - Johnson Aeronautics

Class = TRANSFORM 155

Variable Initial Values

REDUCE 60*1OPEQNS 1

Page 164: CAMRAD II - Johnson Aeronautics

Class = TRANSFORM 156

Page 165: CAMRAD II - Johnson Aeronautics

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

Page 166: CAMRAD II - Johnson Aeronautics

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).

Page 167: CAMRAD II - Johnson Aeronautics

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

Page 168: CAMRAD II - Johnson Aeronautics

Class = MODES 160

Page 169: CAMRAD II - Johnson Aeronautics

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.

Page 170: CAMRAD II - Johnson Aeronautics

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.

Page 171: CAMRAD II - Johnson Aeronautics

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.

Page 172: CAMRAD II - Johnson Aeronautics

Class = RESPONSE, All Types 164

Page 173: CAMRAD II - Johnson Aeronautics

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

Page 174: CAMRAD II - Johnson Aeronautics

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

Page 175: CAMRAD II - Johnson Aeronautics

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.

Page 176: CAMRAD II - Johnson Aeronautics

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

Page 177: CAMRAD II - Johnson Aeronautics

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.

Page 178: CAMRAD II - Johnson Aeronautics

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

Page 179: CAMRAD II - Johnson Aeronautics

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.

Page 180: CAMRAD II - Johnson Aeronautics

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

Page 181: CAMRAD II - Johnson Aeronautics

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.

Page 182: CAMRAD II - Johnson Aeronautics

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.

Page 183: CAMRAD II - Johnson Aeronautics

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β

Page 184: CAMRAD II - Johnson Aeronautics

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).

Page 185: CAMRAD II - Johnson Aeronautics

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).

Page 186: CAMRAD II - Johnson Aeronautics

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,

Page 187: CAMRAD II - Johnson Aeronautics

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

Page 188: CAMRAD II - Johnson Aeronautics

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.

Page 189: CAMRAD II - Johnson Aeronautics

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.

Page 190: CAMRAD II - Johnson Aeronautics

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,

Page 191: CAMRAD II - Johnson Aeronautics

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”).

Page 192: CAMRAD II - Johnson Aeronautics

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.