methods Module

Inheritance diagram of pyNastran.bdf.cards.methods

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

  • EIGB

  • EIGC

  • EIGR

  • EIGP

  • EIGRL

All cards are Method objects.

class pyNastran.bdf.cards.methods.EIGB(sid, method, L1, L2, nep, ndp, ndn, norm, G, C, comment='')[source]

Bases: pyNastran.bdf.cards.methods.Method

Defines data needed to perform buckling analysis

L1 = None

Eigenvalue range of interest. (Real, L1 < L2)

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

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

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

cross_reference(model: BDF) → None[source]
method = None

Method of eigenvalue extraction. (Character: ‘INV’ for inverse power method or ‘SINV’ for enhanced inverse power method.) apparently it can also be blank…

ndp = None

Desired number of positive and negative roots. (Integer>0; Default = 3*NEP)

nep = None

Estimate of number of roots in positive range not used for METHOD = ‘SINV’. (Integer > 0)

norm = None

Method for normalizing eigenvectors. (‘MAX’ or ‘POINT’;Default=’MAX’)

raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGB'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.methods.EIGC(sid, method, grid, component, epsilon, neigenvalues, norm='MAX', mblkszs=None, iblkszs=None, ksteps=None, NJIs=None, alphaAjs=None, omegaAjs=None, alphaBjs=None, omegaBjs=None, LJs=None, NEJs=None, NDJs=None, shift_r1=None, shift_i1=None, isrr_flag=None, nd1=None, comment='')[source]

Bases: pyNastran.bdf.cards.methods.Method

Defines data needed to perform complex eigenvalue analysis .. todo: not done

inverse power

1

2

3

4

5

6

7

8

EIGC

SID

METHOD

EPS

ND0

ALPHAAj

OMEGAAj

ALPHABj

OMEGABj

Lj

NEj

NDj

complex Lanczos

1

2

3

4

5

6

7

8

SHIFTRj

SHIFTIj

MBLKSZj

IBLKSZj

KSTEPSj

NDj

iterative Schur-Rayleigh-Ritz

1

2

3

4

5

6

7

8

SHIFTR1

SHIFTI1

ISRRFLG

ND1

Creates a EIGC card, which is required for a SOL 107 analysis

Parameters
sidint

CMETHOD id in the case control deck

methodstr
Method of complex eigenvalue extraction

MSC 2014 = [INV, HESS, CLAN, IRAM] NX 8.5 = [INV, HESS, CLAN, ISRR] Autodesk 2015 = [ARNO, HESS, CLAN] INV : Inverse Power IRAM : Implicitly Restarted Arnoldi method ISRR : Iterative Schur-Rayleigh-Ritz method CLAN : Complex Lanczos. For linear perturbation of ANALYSIS=DCEIG

with large displacement, CLAN is recommended.

HESSUpper Hessenberg. For linear perturbation of ANALYSIS=DCEIG

with large displacement, please don’t use HESS.

ARNO: ???

normstr; default=’MAX’

Method for normalizing eigenvectors valid_norm = {MAX, POINT}

gridint

GRID/SPOINT id Required if norm=’POINT’

componentint

Required if norm=’POINT’

epsilonfloat
neigenvaluesint

Number of Eigenvalues

mblkszsList[float]; default=None

used by CLAN

iblkszsList[int]; default=None

used by CLAN

kstepsList[int]; default=None

used by CLAN

NJIsList[int]; default=None

used by CLAN

alphaAjsList[float]; default=None

used by HESS/INV

omegaAjsList[float]; default=None

used by HESS/INV

alphaBjsList[float]; default=None

used by HESS/INV

omegaBjsList[float]; default=None

used by HESS/INV

LJsList[float]; default=None

used by HESS/INV

NEJsList[int]; default=None

used by HESS/INV

NDJsList[int]; default=None

used by HESS/INV

shift_r1List[float]; default=None

used by ISSR

shift_i1List[float]; default=None

used by ISSR

isrr_flagList[int]; default=None

used by ISSR

nd1List[int]; default=None

used by ISSR

commentstr; default=’’

a comment for the card

C = None

Component number. Required only if NORM=’POINT’ and G is a geometric grid point. (1<Integer<6)

G = None

Grid or scalar point identification number. Required only if NORM=’POINT’. (Integer>0)

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

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

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

cross_reference(model: BDF) → None[source]
epsilon = None

Convergence criterion. (Real > 0.0. Default values are: 10^-4 for METHOD = “INV”, 10^-8 for METHOD = “CLAN”, 10^-8 for METHOD = “ISRR”, 10^-15 for METHOD = “HESS”, E is machine dependent for METHOD = “CLAN”.)

method = None

Method of complex eigenvalue extraction MSC 2014 = [INV, HESS, CLAN, IRAM] NX 8.5 = [INV, HESS, CLAN, ISRR] Autodesk 2015 = [ARNO, HESS, CLAN]

norm = None

Method for normalizing eigenvectors

raw_fields()[source]
raw_method()[source]
repr_fields()[source]

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

repr_method()[source]
sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGC'
validate()[source]

card checking method that should be overwritten

write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.methods.EIGP(sid, alpha1, omega1, m1, alpha2, omega2, m2, comment='')[source]

Bases: pyNastran.bdf.cards.methods.Method

Defines poles that are used in complex eigenvalue extraction by the Determinant method.

1

2

3

4

5

6

7

8

EIGP

SID

ALPHA1

OMEGA1

M1

ALPHA2

OMEGA2

M2

EIGP

15

-5.2

0.0

2

6.3

5.5

3

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

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

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

alpha1 = None

Coordinates of point in complex plane. (Real)

alpha2 = None

Coordinates of point in complex plane. (Real)

cross_reference(model: BDF) → None[source]
m1 = None

Multiplicity of complex root at pole defined by point at ALPHAi and OMEGAi

m2 = None

Multiplicity of complex root at pole defined by point at ALPHAi and OMEGAi

omega1 = None

Coordinates of point in complex plane. (Real)

omega2 = None

Coordinates of point in complex plane. (Real)

raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGP'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.methods.EIGR(sid, method='LAN', f1=None, f2=None, ne=None, nd=None, crit=None, norm='MASS', G=None, C=None, comment='')[source]

Bases: pyNastran.bdf.cards.methods.Method

Defines data needed to perform real eigenvalue analysis

# msc/nx | EIGR | SID | METH| F1 | F2 | NE | ND | | | | | NORM | G | C | | | | | |

# mystran | EIGR | SID | METH| F1 | F2 | NE | ND | | CRIT | | | NORM | G | C | | | | | |

Adds a EIGR card

Parameters
sidint

method id

methodstr; default=’LAN’

eigenvalue method recommended: {LAN, AHOU} obsolete : {INV, SINV, GIV, MGIV, HOU, MHOU, AGIV}

f1 / f2float; default=None

lower/upper bound eigenvalue

f2float; default=None

upper bound eigenvalue

neint; default=None

estimate of number of roots (used for INV)

ndint; default=None

desired number of roots

critfloat; default=0.0

orthogonality criteria

msglvlint; default=0

debug level; 0-4

maxsetint; default=None

Number of vectors in block or set

shfsclfloat; default=None

estimate of first flexible mode natural frequency

normstr; default=None

{MAX, MASS, AF, POINT} default=MASS (NX)

Gint; default=None

node id for normalization; only for POINT

Cint; default=None

component for normalization (1-6); only for POINT

commentstr; default=’’

a comment for the card

C = None

Component number. Required only if NORM=’POINT’ and G is a geometric grid point. (1<Integer<6)

G = None

Grid or scalar point identification number. Required only if NORM=’POINT’. (Integer>0)

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

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

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

allowed_methods = ['LAN', 'AHOU', 'INV', 'SINV', 'GIV', 'MGIV', 'HOU', 'MHOU', 'AGIV']
crit = None

orthogonality criterion

cross_reference(model: BDF) → None[source]
f1 = None

Frequency range of interest

method = None

Method of eigenvalue extraction. (Character: ‘INV’ for inverse power method or ‘SINV’ for enhanced inverse power method.)

nd = None

Desired number of roots (default=600 for SINV 3*ne for INV)

ne = None

Estimate of number of roots in range (Required for METHOD = ‘INV’). Not used by ‘SINV’ method.

norm = None

Method for normalizing eigenvectors. (‘MAX’ or ‘POINT’; Default=’MAX’)

raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGR'
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.methods.EIGRL(sid, v1=None, v2=None, nd=None, msglvl=0, maxset=None, shfscl=None, norm=None, options=None, values=None, comment='')[source]

Bases: pyNastran.bdf.cards.methods.Method

Defines data needed to perform real eigenvalue (vibration or buckling) analysis with the Lanczos method

1

2

3

4

5

6

7

8

9

EIGRL

SID

V1

V2

ND

MSGLVL

MAXSET

SHFSCL

NORM

option_1 = value_1 option_2 = value_2, etc.

Adds an EIGRL card

Parameters
sidint

method id

v1float; default=None

lower bound eigenvalue

v2float; default=None

upper bound eigenvalue

ndint

number of roots

msglvlint; default=0

debug level; 0-4

maxsetint; default=None

Number of vectors in block or set

shfsclfloat; default=None

estimate of first flexible mode natural frequency

normstr; default=None

{MAX, MASS, AF}

options???; default=None -> []

???

values???; default=None -> []

???

commentstr; default=’’

a comment for the card

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

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

Parameters
cardBDFCard()

a BDFCard object

commentstr; default=’’

a comment for the card

cross_reference(model: BDF) → None[source]
maxset = None

Number of vectors in block or set. Default is machine dependent

msglvl = None

Diagnostic level. (0 < Integer < 4; Default = 0)

nd = None

Number of roots desired

norm = None

Method for normalizing eigenvectors (Character: ‘MASS’ or ‘MAX’)

raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

shfscl = None

Estimate of the first flexible mode natural frequency (Real or blank)

sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGRL'
v1 = None

For vibration analysis: frequency range of interest. For buckling analysis: eigenvalue range of interest. See Remark 4. (Real or blank, -5 10e16 <= V1 < V2 <= 5.10e16)

validate()[source]

card checking method that should be overwritten

write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.methods.MODTRAK(sid, low_range, high_range, mt_filter, comment='')[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

MODTRAK SID LOWRNG HIGHRNG MTFILTER MODTRAK 100 1 26 0.80

classmethod add_card(card, comment='')[source]
raw_fields() → List[Any][source]
write_card(size: int = 8, is_double: bool = False) → str[source]

Writes the card with the specified width and precision

Parameters
sizeint (default=8)

size of the field; {8, 16}

is_doublebool (default=False)

is this card double precision

Returns
msgstr

the string representation of the card

class pyNastran.bdf.cards.methods.Method[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Generic class for all methods. Part of self.methods

pyNastran.bdf.cards.methods._load_clan(nrows, card)[source]

loads complex Lanczos

pyNastran.bdf.cards.methods._load_hess_inv(nrows, method, card)[source]

loads inverse power

pyNastran.bdf.cards.methods._load_isrr(nrows, card)[source]

loads the iterative Schur-Rayleigh-Ritz