dynamic_loads Module

Inheritance diagram of pyNastran.bdf.cards.aero.dynamic_loads

All aero cards are defined in this file. This includes:

  • AERO
  • FLFACT
  • FLUTTER
  • GUST
  • MKAERO1 / MKAERO2

All cards are BaseCard objects.

class pyNastran.bdf.cards.aero.dynamic_loads.AERO(velocity, cref, rho_ref, acsid=0, sym_xz=0, sym_xy=0, comment='')[source]

Bases: pyNastran.bdf.cards.aero.dynamic_loads.Aero

Gives basic aerodynamic parameters for unsteady aerodynamics.

1 2 3 4 5 6 7
AERO ACSID VELOCITY REFC RHOREF SYMXZ SYMXY
AERO 3 1.3+
1.-5 1 -1

Creates an AERO card

Parameters:
velocity : float

the airspeed

cref : float

the aerodynamic chord

rho_ref : float

FLFACT density scaling factor

acsid : int; default=0

aerodyanmic coordinate system defines the direction of the wind

sym_xz : int; default=0

xz symmetry flag (+1=symmetry; -1=antisymmetric)

sym_xy : int; default=0

xy symmetry flag (+1=symmetry; -1=antisymmetric)

comment : str; default=’‘

a comment for the card

classmethod _init_from_empty()[source]
_properties = ['is_anti_symmetric_xy', 'is_anti_symmetric_xz', 'is_symmetric_xy', 'is_symmetric_xz']
classmethod add_card(card, comment='')[source]

Adds an AERO card from BDF.add_card(...)

Parameters:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

cref = None

Reference length for reduced frequency

cross_reference(self, model)[source]

Cross refernece aerodynamic coordinate system.

Parameters:
model : BDF

The BDF object.

raw_fields(self)[source]

Gets the fields in their unmodified form

Returns:
fields : List[int/float/str]

the fields that define the card

repr_fields(self)[source]

Gets the fields in their simplified form

Returns:
fields : List[varies]

the fields that define the card

rho_ref = None

Reference density

safe_cross_reference(self, model, xref_errors)[source]

Safe cross refernece aerodynamic coordinate system.

Parameters:
model : BDF

The BDF object.

sym_xy = None

The symmetry key for the aero coordinate x-y plane can be used to simulate ground effect. (Integer = -1 for symmetry, 0 for no symmetry, and +1 for antisymmetry; Default = 0)

sym_xz = None

Symmetry key for the aero coordinate x-z plane. See Remark 6. (Integer = +1 for symmetry, 0 for no symmetry, and -1 for antisymmetry; Default = 0)

type = 'AERO'
uncross_reference(self)[source]

Removes cross-reference links

update(self, maps)[source]
maps = {
‘coord’ : cid_map,

}

validate(self)[source]

card checking method that should be overwritten

velocity = None

Velocity for aerodynamic force data recovery and to calculate the BOV parameter

write_card(self, size=8, is_double=False)[source]

Writes the card with the specified width and precision

Parameters:
size : int (default=8)

size of the field; {8, 16}

is_double : bool (default=False)

is this card double precision

Returns:
msg : str

the string representation of the card

class pyNastran.bdf.cards.aero.dynamic_loads.Aero[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Base class for AERO and AEROS cards.

Common class for AERO, AEROS

Attributes:
acsid : int; default=0

aerodyanmic coordinate system defines the direction of the wind

sym_xz : int; default=0

xz symmetry flag (+1=symmetry; -1=antisymmetric)

sym_xy : int; default=0

xy symmetry flag (+1=symmetry; -1=antisymmetric)

Acsid(self)[source]
is_anti_symmetric_xy
is_anti_symmetric_xz
is_symmetric_xy
is_symmetric_xz
set_ground_effect(self, enable)[source]
class pyNastran.bdf.cards.aero.dynamic_loads.FLFACT(sid, factors, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

1 2 3 4 5 6 7 8 9
FLFACT SID F1 F2 F3 F4 F5 F6 F7
  F8 F9 etc.          
FLFACT 97 .3 .7 3.5        

# delta quantity approach

1 2 3 4 5 6 7
FLFACT SID F1 THRU FNF NF FMID
FLFACT 201 0.200 THRU 0.100 11 0.1333

Creates an FLFACT card, which defines factors used for flutter analysis. These factors define either:

  • density
  • mach
  • velocity
  • reduced frequency

depending on the FLUTTER method chosen (e.g., PK, PKNL, PKNLS)

Parameters:
sid : int

the id of a density, reduced_frequency, mach, or velocity table the FLUTTER card defines the meaning

factors : varies
values : List[float, …, float]

list of factors

List[f1, THRU, fnf, nf, fmid]
f1 : float

first value

THRU : str

the word THRU

fnf : float

second value

nf : int

number of values

fmid : float; default=(f1 + fnf) / 2.

the mid point to bias the array

TODO: does f1 need be be greater than f2/fnf???

comment : str; default=’‘

a comment for the card

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds an FLFACT card from BDF.add_card(...)

Parameters:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

max(self)[source]
min(self)[source]
raw_fields(self)[source]

Gets the fields in their unmodified form

Returns:
fields : list[varies]

the fields that define the card

type = 'FLFACT'
validate(self)[source]

card checking method that should be overwritten

write_card(self, size=8, is_double=False)[source]

Writes the card with the specified width and precision

Parameters:
size : int (default=8)

size of the field; {8, 16}

is_double : bool (default=False)

is this card double precision

Returns:
msg : str

the string representation of the card

class pyNastran.bdf.cards.aero.dynamic_loads.FLUTTER(sid, method, density, mach, reduced_freq_velocity, imethod='L', nvalue=None, omax=None, epsilon=0.001, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Defines data needed to perform flutter analysis.

1 2 3 4 5 6 7 8 9
FLUTTER SID METHOD DENS MACH RFREQ IMETH NVALUE/OMAX EPS
FLUTTER 19 K 119 219 319 S 5 1.-4

Creates a FLUTTER card, which is required for a flutter (SOL 145) analysis.

Parameters:
sid : int

flutter id

method : str
valid methods = [K, KE,

PKS, PKNLS, PKNL, PKE]

density : int

defines a series of air densities in units of mass/volume PARAM,WTMASS does not affect this AERO affects this references an FLFACT id

mach : int

defines a series of the mach numbers references an FLFACT id

reduced_freq_velocity : int
Defines a series of either:
  1. reduced frequencies - K, KE
  2. velocities - PK, PKNL, PKS, PKNLS

depending on the method chosen. references an FLFACT id

imethod : str; default=’L’

Choice of interpolation method for aerodynamic matrix interpolation. imethods :

  1. L - linear
  2. S - surface
  3. TCUB - termwise cubic
nvalue : int

Number of eigenvalues beginning with the first eigenvalue for output and plots

omax : float

For the PKS and PKNLS methods, OMAX specifies the maximum frequency, in Hz., to be used in he flutter sweep. MSC only.

epsilon : float; default=1.0e-3

Convergence parameter for k. Used in the PK and PKNL methods only

comment : str; default=’‘

a comment for the card

_get_raw_nvalue_omax(self)[source]
_get_repr_nvalue_omax(self)[source]
classmethod _init_from_empty()[source]
_properties = ['_field_map', 'headers']
classmethod add_card(card, comment='')[source]

Adds a FLUTTER card from BDF.add_card(...)

Parameters:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

cross_reference(self, model)[source]

Cross links the card so referenced cards can be extracted directly

Parameters:
model : BDF()

the BDF object

get_density(self)[source]
get_mach(self)[source]
get_rfreq_vel(self)[source]
headers
make_flfacts_alt_sweep(self, model, mach, alts, eas_limit=1000.0, alt_units='m', velocity_units='m/s', density_units='kg/m^3', eas_units='m/s')[source]

makes an altitude sweep

make_flfacts_mach_sweep(self, model, alt, machs, eas_limit=1000.0, alt_units='m', velocity_units='m/s', density_units='kg/m^3', eas_units='m/s')[source]

makes a mach sweep

raw_fields(self)[source]

Gets the fields in their unmodified form

Returns:
fields : list[varies]

the fields that define the card

repr_fields(self)[source]

Gets the fields in their simplified form

Returns:
fields : List[varies]

the fields that define the card

safe_cross_reference(self, model)[source]
type = 'FLUTTER'
uncross_reference(self)[source]

Removes cross-reference links

validate(self)[source]

card checking method that should be overwritten

write_card(self, size=8, is_double=False)[source]

Writes the card with the specified width and precision

Parameters:
size : int (default=8)

size of the field; {8, 16}

is_double : bool (default=False)

is this card double precision

Returns:
msg : str

the string representation of the card

class pyNastran.bdf.cards.aero.dynamic_loads.GUST(sid, dload, wg, x0, V=None, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Defines a stationary vertical gust for use in aeroelastic response analysis.

1 2 3 4 5 6
GUST SID DLOAD WG X0 V
GUST 133 61 1.0
1.+4

Creates a GUST card, which defines a stationary vertical gust for use in aeroelastic response analysis.

Parameters:
sid : int

gust load id

dload : int

TLOADx or RLOADx entry that defines the time/frequency dependence

wg : float

Scale factor (gust velocity/forward velocity) for gust velocity

x0 : float

Streamwise location in the aerodynamic coordinate system of the gust reference point.

V : float; default=None
float : velocity of the vehicle (must be the same as the

velocity on the AERO card)

None : ???

comment : str; default=’‘

a comment for the card

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds a GUST card from BDF.add_card(...)

Parameters:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

raw_fields(self)[source]

Gets the fields in their unmodified form

Returns:
fields : list[varies]

the fields that define the card

type = 'GUST'
write_card(self, size=8, is_double=False)[source]

Writes the card with the specified width and precision

Parameters:
size : int (default=8)

size of the field; {8, 16}

is_double : bool (default=False)

is this card double precision

Returns:
msg : str

the string representation of the card

class pyNastran.bdf.cards.aero.dynamic_loads.MKAERO1(machs, reduced_freqs, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Provides a table of Mach numbers (m) and reduced frequencies (k) for aerodynamic matrix calculation.

1 2 3 4 5 6 7 8 9
MKAERO1 m1 m2 m3 m4 m5 m6 m7 m8
  k1 k2 k3 k4 k5 k6 k7 k8

Creates an MKAERO1 card, which defines a set of mach and reduced frequencies.

Parameters:
machs : List[float]

series of Mach numbers

reduced_freqs : List[float]

series of reduced frequencies

comment : str; default=’‘

a comment for the card

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds an MKAERO1 card from BDF.add_card(...)

Parameters:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

mklist(self)[source]
raw_fields(self)[source]

Gets the fields in their unmodified form

Returns:
fields : list[varies]

the fields that define the card

type = 'MKAERO1'
validate(self)[source]

card checking method that should be overwritten

write_card(self, size=8, is_double=False)[source]

Writes the card with the specified width and precision

Parameters:
size : int (default=8)

size of the field; {8, 16}

is_double : bool (default=False)

is this card double precision

Returns:
msg : str

the string representation of the card

class pyNastran.bdf.cards.aero.dynamic_loads.MKAERO2(machs, reduced_freqs, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Provides a table of Mach numbers (m) and reduced frequencies (k) for aerodynamic matrix calculation.

1 2 3 4 5 6 7 8 9
MKAERO2 m1 k1 m2 k2 m3 k3 m4 k4

Creates an MKAERO2 card, which defines a set of mach and reduced frequency pairs.

Parameters:
machs : List[float]

series of Mach numbers

reduced_freqs : List[float]

series of reduced frequencies

comment : str; default=’‘

a comment for the card

classmethod _init_from_empty()[source]
classmethod add_card(card, comment='')[source]

Adds an MKAERO2 card from BDF.add_card(...)

Parameters:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

mklist(self)[source]
raw_fields(self)[source]

Gets the fields in their unmodified form

Returns:
fields : list[varies]

the fields that define the card

type = 'MKAERO2'
validate(self)[source]

card checking method that should be overwritten

write_card(self, size=8, is_double=False)[source]

Writes the card with the specified width and precision

Parameters:
size : int (default=8)

size of the field; {8, 16}

is_double : bool (default=False)

is this card double precision

Returns:
msg : str

the string representation of the card