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:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

cross_reference(self, model)[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(self)[source]
repr_fields(self)[source]

Gets the fields in their simplified form

Returns:
fields : List[varies]

the fields that define the card

sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGB'
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.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:
sid : int

CMETHOD id in the case control deck

method : str
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.

HESS : Upper Hessenberg. For linear perturbation of ANALYSIS= DCEIG

with large displacement, please don’t use HESS.

ARNO: ???

norm : str; default=’MAX’

Method for normalizing eigenvectors valid_norm = {MAX, POINT}

grid : int

GRID/SPOINT id Required if norm=’POINT’

component : int

Required if norm=’POINT’

epsilon : float
neigenvalues : int

Number of Eigenvalues

mblkszs : List[float]; default=None

used by CLAN

iblkszs : List[int]; default=None

used by CLAN

ksteps : List[int]; default=None

used by CLAN

NJIs : List[int]; default=None

used by CLAN

alphaAjs : List[float]; default=None

used by HESS/INV

omegaAjs : List[float]; default=None

used by HESS/INV

alphaBjs : List[float]; default=None

used by HESS/INV

omegaBjs : List[float]; default=None

used by HESS/INV

LJs : List[float]; default=None

used by HESS/INV

NEJs : List[int]; default=None

used by HESS/INV

NDJs : List[int]; default=None

used by HESS/INV

shift_r1 : List[float]; default=None

used by ISSR

shift_i1 : List[float]; default=None

used by ISSR

isrr_flag : List[int]; default=None

used by ISSR

nd1 : List[int]; default=None

used by ISSR

comment : str; 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]
static _load_clan(nrows, card)[source]

loads complex Lanczos

static _load_hess_inv(nrows, method, card)[source]

loads inverse power

static _load_isrr(nrows, card)[source]

loads the iterative Schur-Rayleigh-Ritz

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

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

Parameters:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

cross_reference(self, model)[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(self)[source]
raw_method(self)[source]
repr_fields(self)[source]

Gets the fields in their simplified form

Returns:
fields : List[varies]

the fields that define the card

repr_method(self)[source]
sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGC'
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.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:
card : BDFCard()

a BDFCard object

comment : str; 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(self, model)[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(self)[source]
repr_fields(self)[source]

Gets the fields in their simplified form

Returns:
fields : List[varies]

the fields that define the card

sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGP'
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.methods.EIGR(sid, method='LAN', f1=None, f2=None, ne=None, nd=None, norm='MASS', G=None, C=None, comment='')[source]

Bases: pyNastran.bdf.cards.methods.Method

Defines data needed to perform real eigenvalue analysis

Adds a EIGR card

Parameters:
sid : int

method id

method : str; default=’LAN’

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

f1 / f2 : float; default=None

lower/upper bound eigenvalue

f2 : float; default=None

upper bound eigenvalue

ne : int; default=None

estimate of number of roots (used for INV)

nd : int; default=None

desired number of roots

msglvl : int; default=0

debug level; 0-4

maxset : int; default=None

Number of vectors in block or set

shfscl : float; default=None

estimate of first flexible mode natural frequency

norm : str; default=None

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

G : int; default=None

node id for normalization; only for POINT

C : int; default=None

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

comment : str; 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:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

allowed_methods = ['LAN', 'AHOU', 'INV', 'SINV', 'GIV', 'MGIV', 'HOU', 'MHOU', 'AGIV']
cross_reference(self, model)[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(self)[source]
repr_fields(self)[source]

Gets the fields in their simplified form

Returns:
fields : List[varies]

the fields that define the card

sid = None

Set identification number. (Unique Integer > 0)

type = 'EIGR'
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.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:
sid : int

method id

v1 : float; default=None

lower bound eigenvalue

v2 : float; default=None

upper bound eigenvalue

nd : int

number of roots

msglvl : int; default=0

debug level; 0-4

maxset : int; default=None

Number of vectors in block or set

shfscl : float; default=None

estimate of first flexible mode natural frequency

norm : str; default=None

{MAX, MASS, AF}

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

???

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

???

comment : str; 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:
card : BDFCard()

a BDFCard object

comment : str; default=’‘

a comment for the card

cross_reference(self, model)[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(self)[source]
repr_fields(self)[source]

Gets the fields in their simplified form

Returns:
fields : List[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(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.methods.Method[source]

Bases: pyNastran.bdf.cards.base_card.BaseCard

Generic class for all methods. Part of self.methods