# dloads Module¶

All dynamic loads are defined in this file. This includes:

• ACSRCE

class pyNastran.bdf.cards.loads.dloads.ACSRCE(sid, excite_id, rho, b, delay=0, dphase=0, power=0, comment='')[source]

Defines acoustic source as a function of power vs. frequency.

1

2

3

4

5

6

7

8

ACSRCE

SID

EXCITEID

DELAYI/DELAYR

DPHASEI/DPHASER

TP/RP

RHO

B

..math ::

C = sqrt(B ⁄ ρ) Source Strength = {A} * 1/(2πf) * sqrt( 8πC P(f) / ρ) ^ (ei(θ + 2πfτ))

Creates an ACSRCE card

Parameters
sidint

load set id number (referenced by DLOAD)

excite_idint

Identification number of a DAREA or SLOAD entry that lists each degree of freedom to apply the excitation and the corresponding scale factor, A, for the excitation

rhofloat

Density of the fluid

bfloat

Bulk modulus of the fluid

delayint; default=0

Time delay, τ.

dphaseint / float; default=0

the dphase; if it’s 0/blank there is no phase lag float : delay in units of time int : delay id

powerint; default=0

Power as a function of frequency, P(f). float : value of P(f) used over all frequencies for all

degrees of freedom in EXCITEID entry.

intTABLEDi entry that defines P(f) for all degrees of

freedom in EXCITEID entry.

a comment for the card

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

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

Parameters
cardBDFCard()

a BDFCard object

a comment for the card

cross_reference(model: BDF) → None[source]

Cross links the card so referenced cards can be extracted directly

Parameters
modelBDF()

the BDF object

get_load_at_freq(freq)[source]
..math ::

C = sqrt(B ⁄ ρ) Source_strength = {A} * 1/(2πf) * sqrt( 8πC P(f) / ρ) ^ (ei(θ + 2πfτ))

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

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

safe_cross_reference(model: BDF, xref_errors)[source]
type = 'ACSRCE'
uncross_reference() → None[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.loads.dloads.DLOAD(sid, scale, scale_factors, load_ids, comment='')[source]

1

2

3

4

5

6

7

8

9

SID

S

S1

L1

S2

L2

S3

L3

S4

L4

etc.

Creates a DLOAD card

Parameters
sidint

Load set identification number. See Remarks 1. and 4. (Integer > 0)

scalefloat

Scale factor. See Remarks 2. and 8. (Real)

SiList[float]

Scale factors. See Remarks 2., 7. and 8. (Real)

Load set identification numbers of RLOAD1, RLOAD2, TLOAD1, TLOAD2, and ACSRCE entries. See Remarks 3 and 7. (Integer > 0)

a comment for the card

classmethod _init_from_empty()[source]
cross_reference(model: BDF) → None[source]

Cross links the card so referenced cards can be extracted directly

Parameters
modelBDF()

the BDF object

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

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

safe_cross_reference(model: BDF, xref_errors, debug=True)[source]
type = 'DLOAD'
uncross_reference() → None[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.loads.dloads.RLOAD1(sid, excite_id, delay=0, dphase=0, tc=0, td=0, Type='LOAD', comment='')[source]

Defines a frequency-dependent dynamic load of the form for use in frequency response problems.

$\left\{ P(f) \right\} = \left\{A\right\} [ C(f)+iD(f)] e^{ i \left\{\theta - 2 \pi f \tau \right\} }$

1

2

3

4

5

6

7

8

SID

EXCITEID

DELAY

DPHASE

TC

TD

TYPE

5

3

1

NX allows DELAY and DPHASE to be floats

Creates an RLOAD1 card, which defienes a frequency-dependent load based on TABLEDs.

Parameters
sidint

excite_idint

node id where the load is applied

delayint/float; default=None

the delay; if it’s 0/blank there is no delay float : delay in units of time int : delay id

dphaseint/float; default=None

the dphase; if it’s 0/blank there is no phase lag float : delay in units of time int : delay id

tcint/float; default=0

TABLEDi id that defines C(f) for all degrees of freedom in EXCITEID entry

tdint/float; default=0

TABLEDi id that defines D(f) for all degrees of freedom in EXCITEID entry

the type of load 0/LOAD 1/DISP 2/VELO 3/ACCE 4, 5, 6, 7, 12, 13 - MSC only

a comment for the card

Tc()[source]
Td()[source]
classmethod _init_from_empty()[source]
_properties = ['delay_id', 'dphase_id']
classmethod add_card(card, comment='')[source]

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

Parameters
cardBDFCard()

a BDFCard object

a comment for the card

cross_reference(model: BDF) → None[source]

Cross links the card so referenced cards can be extracted directly

Parameters
modelBDF()

the BDF object

property delay_id
property dphase_id
get_load_at_freq(freq, scale=1.0)[source]
get_loads()[source]
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

safe_cross_reference(model: BDF, xref_errors)[source]
type = 'RLOAD1'
uncross_reference() → None[source]

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.loads.dloads.RLOAD2(sid, excite_id, delay=0, dphase=0, tb=0, tp=0, Type='LOAD', comment='')[source]

Defines a frequency-dependent dynamic load of the form for use in frequency response problems.

$\left\{ P(f) \right\} = \left\{A\right\} * B(f) e^{ i \left\{ \phi(f) + \theta - 2 \pi f \tau \right\} }$

1

2

3

4

5

6

7

8

SID

EXCITEID

DELAY

DPHASE

TB

TP

TYPE

5

3

1

NX allows DELAY and DPHASE to be floats

Creates a nRLOAD2 card, which defienes a frequency-dependent load based on TABLEDs.

Parameters
sidint

excite_idint

node id where the load is applied

delayint/float; default=None

the delay; if it’s 0/blank there is no delay float : delay in units of time int : delay id

dphaseint/float; default=None

the dphase; if it’s 0/blank there is no phase lag float : delay in units of time int : delay id

tbint/float; default=0

TABLEDi id that defines B(f) for all degrees of freedom in EXCITEID entry

tcint/float; default=0

TABLEDi id that defines C(f) for all degrees of freedom in EXCITEID entry

tdint/float; default=0

TABLEDi id that defines D(f) for all degrees of freedom in EXCITEID entry

tpint/float; default=0

TABLEDi id that defines phi(f) for all degrees of freedom in EXCITEID entry

the type of load 0/LOAD 1/DISP 2/VELO 3/ACCE 4, 5, 6, 7, 12, 13 - MSC only

a comment for the card

LoadID()[source]
Tb()[source]
Tp()[source]
classmethod _init_from_empty()[source]
_properties = ['delay_id', 'dphase_id']
classmethod add_card(card, comment='')[source]

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

Parameters
cardBDFCard()

a BDFCard object

a comment for the card

cross_reference(model: BDF) → None[source]

Cross links the card so referenced cards can be extracted directly

Parameters
modelBDF()

the BDF object

property delay_id
property dphase_id
get_load_at_freq(freq, scale=1.0)[source]
get_loads()[source]
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

safe_cross_reference(model: BDF, xref_errors)[source]
type = 'RLOAD2'
uncross_reference() → None[source]

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.loads.dloads.TLOAD1(sid, excite_id, tid, delay=0, Type='LOAD', us0=0.0, vs0=0.0, comment='')[source]

Transient Response Dynamic Excitation, Form 1

Defines a time-dependent dynamic load or enforced motion of the form:

$\left\{ P(t) \right\} = \left\{ A \right\} \cdot F(t-\tau)$

for use in transient response analysis.

MSC 20005.2 +——–+—–+———-+——-+——+—–+—–+—–+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | +========+=====+==========+=======+======+=====+=====+=====+ | TLOAD1 | SID | EXCITEID | DELAY | TYPE | TID | US0 | VS0 | +——–+—–+———-+——-+——+—–+—–+—–+

NX 11 +——–+—–+———-+——-+——+—–+ | 1 | 2 | 3 | 4 | 5 | 6 | +========+=====+==========+=======+======+=====+ | TLOAD1 | SID | EXCITEID | DELAY | TYPE | TID | +——–+—–+———-+——-+——+—–+

Creates a TLOAD1 card, which defienes a time-dependent load based on a DTABLE.

Parameters
sidint

excite_idint

node id where the load is applied

tidint

TABLEDi id that defines F(t) for all degrees of freedom in EXCITEID entry float : MSC not supported

delayint/float; default=None

the delay; if it’s 0/blank there is no delay float : delay in units of time int : delay id

the type of load 0/LOAD 1/DISP 2/VELO 3/ACCE 4, 5, 6, 7, 12, 13 - MSC only

us0float; default=0.

Factor for initial displacements of the enforced degrees-of-freedom MSC only

vs0float; default=0.

Factor for initial velocities of the enforced degrees-of-freedom MSC only

a comment for the card

Tid()[source]
Type = None

Defines the type of the dynamic excitation. (LOAD,DISP, VELO, ACCE)

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

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

Parameters
cardBDFCard()

a BDFCard object

a comment for the card

cross_reference(model: BDF) → None[source]

Cross links the card so referenced cards can be extracted directly

Parameters
modelBDF()

the BDF object

delay = None

If it is a non-zero integer, it represents the identification number of DELAY Bulk Data entry that defines . If it is real, then it directly defines the value of that will be used for all degrees-of-freedom that are excited by this dynamic load entry. See also Remark 9. (Integer >= 0, real or blank)

property delay_id
excite_id = None

Identification number of DAREA or SPCD entry set or a thermal load set (in heat transfer analysis) that defines {A}. (Integer > 0)

get_load_at_time(time, scale=1.0)[source]
get_loads()[source]
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

safe_cross_reference(model: BDF, debug=True)[source]
sid = None

tid = None

Identification number of TABLEDi entry that gives F(t). (Integer > 0)

type = 'TLOAD1'
uncross_reference() → None[source]

us0 = None

Factor for initial displacements of the enforced degrees-of-freedom. (Real; Default = 0.0)

validate()[source]

card checking method that should be overwritten

vs0 = None

Factor for initial velocities of the enforced degrees-of-freedom. (Real; Default = 0.0)

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.loads.dloads.TLOAD2(sid, excite_id, delay=0, Type='LOAD', T1=0.0, T2=None, frequency=0.0, phase=0.0, c=0.0, b=0.0, us0=0.0, vs0=0.0, comment='')[source]

Transient Response Dynamic Excitation, Form 1

Defines a time-dependent dynamic load or enforced motion of the form:



left{ P(t) right} = left{ A right} e^(C*t) cos(2 pi f t + phi)

P(t) = 0 (t<T1+tau or t > T2+tau) P(t) = {A} * t^b * e^(C*t) * cos(2*pi*f*t + phase) (T1+tau <= t <= T2+tau)

for use in transient response analysis.

MSC 2016.1 +——–+—–+———-+——-+——+—–+—–+——–+———+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +========+=====+==========+=======+======+=====+=====+========+=========+ | TLOAD2 | SID | EXCITEID | DELAY | TYPE | T1 | T2 | FREQ | PHASE | +——–+—–+———-+——-+——+—–+—–+——–+———+ | | C | B | US0 | VS0 | | | | | +——–+—–+———-+——-+——+—–+—–+——–+———+

NX 11 +——–+—–+———-+——-+——+—–+—–+——–+———+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +========+=====+==========+=======+======+=====+=====+========+=========+ | TLOAD2 | SID | EXCITEID | DELAY | TYPE | T1 | T2 | FREQ | PHASE | +——–+—–+———-+——-+——+—–+—–+——–+———+ | | C | B | | | | | | | +——–+—–+———-+——-+——+—–+—–+——–+———+

Creates a TLOAD2 card, which defines a exponential time dependent load based on constants.

Parameters
sidint

excite_idint

node id where the load is applied

delayint/float; default=None

the delay; if it’s 0/blank there is no delay float : delay in units of time int : delay id

the type of load 0/LOAD 1/DISP 2/VELO 3/ACCE 4, 5, 6, 7, 12, 13 - MSC only

T1float; default=0.

time constant (t1 > 0.0) times below this are ignored

T2float; default=None

time constant (t2 > t1) times above this are ignored

frequencyfloat; default=0.

Frequency in cycles per unit time.

phasefloat; default=0.

Phase angle in degrees.

cfloat; default=0.

Exponential coefficient.

bfloat; default=0.

Growth coefficient.

us0float; default=0.

Factor for initial displacements of the enforced degrees-of-freedom MSC only

vs0float; default=0.

Factor for initial velocities of the enforced degrees-of-freedom MSC only

a comment for the card

T1 = None

Time constant. (Real >= 0.0)

T2 = None

Time constant. (Real; T2 > T1)

Type = None

Defines the type of the dynamic excitation. (Integer; character or blank; Default = 0)

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

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

Parameters
cardBDFCard()

a BDFCard object

a comment for the card

b = None

Growth coefficient. (Real; Default = 0.0)

c = None

Exponential coefficient. (Real; Default = 0.0)

cross_reference(model: BDF) → None[source]

Cross links the card so referenced cards can be extracted directly

Parameters
modelBDF()

the BDF object

property delay_id
frequency = None

Frequency in cycles per unit time. (Real >= 0.0; Default = 0.0)

get_load_at_time(time, scale=1.0)[source]
get_loads()[source]
phase = None

Phase angle in degrees. (Real; Default = 0.0)

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

Gets the fields in their simplified form

Returns
fieldsList[varies]

the fields that define the card

safe_cross_reference(model: BDF, xref_errors, debug=True)[source]
sid = None

type = 'TLOAD2'
uncross_reference() → None[source]

us0 = None

Factor for initial displacements of the enforced degrees-of-freedom. (Real; Default = 0.0)

validate()[source]

card checking method that should be overwritten

vs0 = None

Factor for initial velocities of the enforced degrees-of-freedom (Real; Default = 0.0)

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

pyNastran.bdf.cards.loads.dloads._cross_reference_excite_id(self, model, msg)[source]

not quite done…not sure how to handle the very odd xref

EXCITEID may refer to one or more static load entries (FORCE, PLOADi, GRAV, etc.).

pyNastran.bdf.cards.loads.dloads._cross_reference_excite_id_backup(self, model, msg)[source]

not quite done…not sure how to handle the very odd xref

EXCITEID may refer to one or more static load entries (FORCE, PLOADi, GRAV, etc.).

pyNastran.bdf.cards.loads.dloads.get_lseqs_by_excite_id(model, excite_id)[source]
pyNastran.bdf.cards.loads.dloads.update_loadtype(load_type)[source]