elements Package

bars Module

Inheritance diagram of pyNastran.bdf.cards.elements.bars

class pyNastran.bdf.cards.elements.bars.CBAR(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.bars.LineElement

CBAR EID PID GA GB X1 X2 X3 OFFT
  PA PB W1A W2A W3A W1B W2B W3B

or

CBAR EID PID GA GB G0     OFFT
  PA PB W1A W2A W3A W1B W2B W3B
CBAR 2 39 7 6 105     GGG
    513 0.0+0 0.0+0 -9. 0.0+0 0.0+0 -9.

Attributes

Methods

Area()[source]
Centroid()[source]
Ga()[source]
Gb()[source]
I1()[source]
I2()[source]
J()[source]
Length()[source]
Mid()[source]
Nsm()[source]
_field_map = {1: u'eid', 2: u'pid', 3: u'ga', 4: u'gb', 8: u'offt', 9: u'pa', 10: u'pb'}
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
asterType = u'CBAR'
cross_reference(model)[source]
getX_G0_defaults()[source]
get_orientation_vector(xyz)[source]
initX_G0(card)[source]
nodeIDs()[source]
node_ids
offt = None

Todo

offt can be an integer; translate to char

raw_fields()[source]

Todo

not perfectly accurate b/c ???

repr_fields()[source]
type = u'CBAR'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.bars.CBAROR[source]

Bases: object

Methods

add(card=None, data=None, comment=u'')[source]
type = u'CBAROR'
class pyNastran.bdf.cards.elements.bars.CBEAM3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.bars.CBAR

Defines a three-node beam element

Attributes

Methods

Length()[source]
\[L = g_b - g_a\]
cross_reference(model)[source]
raw_fields()[source]
repr_fields()[source]
type = u'CBEAM3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.bars.CBEND(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.bars.LineElement

Attributes

Methods

Area()[source]
_field_map = {8: u'geom', 1: u'eid', 2: u'pid', 3: u'ga', 4: u'gb'}
_update_field_helper(n, value)[source]
raw_fields()[source]
repr_fields()[source]
type = u'CBEND'
write_card(size, is_double)[source]
class pyNastran.bdf.cards.elements.bars.LineElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

Area()[source]

returns the area of the element face

C()[source]

torsional constant

E()[source]

returns the Young’s Modulus, \(E\)

G()[source]

returns the Shear Modulus, \(G\)

I11()[source]

returns the Moment of Inertia, \(I_{11}\)

I12()[source]

returns the Moment of Inertia, \(I_{12}\)

I22()[source]

returns the Moment of Inertia, \(I_{22}\)

J()[source]

returns the Polar Moment of Inertia, \(J\)

Length()[source]

Gets the length, \(L\), of the element.

\[L = \sqrt{ (n_{x2}-n_{x1})^2+(n_{y2}-n_{y1})^2+(n_{z2}-n_{z1})^2 }\]
Parameters:self – the object pointer
Mass()[source]

Get the mass of the element.

\[m = \left( \rho A + nsm \right) L\]
MassPerLength()[source]
Get the mass per unit length, :math:`

rac{m}{L}`

Nsm()[source]

Placeholder method for the non-structural mass, \(nsm\)

Nu()[source]

Get Poisson’s Ratio, :math:` u`

Rho()[source]

Get the material density, :math:` ho`

cross_reference(model)[source]

bush Module

Inheritance diagram of pyNastran.bdf.cards.elements.bush

All bush elements are defined in this file. This includes:

  • CBUSH
  • CBUSH1D
  • CBUSH2D

All bush elements are BushElement and Element objects.

class pyNastran.bdf.cards.elements.bush.BushElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

Cid()[source]
Mass()[source]
class pyNastran.bdf.cards.elements.bush.CBUSH(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.bush.BushElement

Attributes

Methods

Cid()[source]
Eid()[source]
Ga()[source]
Gb()[source]
OCid()[source]
_field_map = {1: u'eid', 2: u'pid', 3: u'ga', 4: u'gb', 8: u'cid', 9: u's', 10: u'ocid'}
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
cid = None

Element coordinate system identification. A 0 means the basic coordinate system. If CID is blank, then the element coordinate system is determined from GO or Xi. (default=blank=element-based)

cross_reference(model)[source]
nodeIDs()[source]
node_ids
ocid = None

Coordinate system identification of spring-damper offset. See Remark 9. (Integer > -1; Default = -1, which means the offset point lies on the line between GA and GB

raw_fields()[source]
repr_fields()[source]
s = None

Location of spring damper (0 <= s <= 1.0)

si = None

Components of spring-damper offset in the OCID coordinate system if OCID > 0.

type = u'CBUSH'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.bush.CBUSH1D(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.bush.BushElement

Attributes

Methods

Ga()[source]
Gb()[source]
_field_map = {1: u'eid', 2: u'pid', 3: u'ga', 4: u'gb', 5: u'cid'}
_verify(xref=False)[source]
cross_reference(model)[source]
nodeIDs()[source]
node_ids
raw_fields()[source]
type = u'CBUSH1D'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.bush.CBUSH2D(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.bush.BushElement

2-D Linear-Nonlinear Connection Defines the connectivity of a two-dimensional Linear-Nonlinear element.

Attributes

Methods

Ga()[source]
Gb()[source]
_field_map = {1: u'eid', 2: u'pid', 3: u'ga', 4: u'gb', 5: u'cid', 6: u'plane', 7: u'sptid'}
_verify(xref=False)[source]
cross_reference(model)[source]
nodeIDs()[source]
node_ids
raw_fields()[source]
type = u'CBUSH2D'
write_card(size=8, is_double=False)[source]

damper Module

Inheritance diagram of pyNastran.bdf.cards.elements.damper

All damper elements are defined in this file. This includes:

  • CDAMP1
  • CDAMP2
  • CDAMP3
  • CDAMP4
  • CDAMP5
  • CVISC

All damper elements are DamperElement and Element objects.

class pyNastran.bdf.cards.elements.damper.CDAMP1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.damper.LineDamper

Attributes

Methods

B()[source]
Eid()[source]
_field_map = {1: u'eid', 2: u'pid', u'c1': 4, u'c2': 6}
_is_same_card(elem, debug=False)[source]
_update_field_helper(n, value)[source]
_verify(xref=True)[source]
c1 = None

component number

cross_reference(model)[source]
nodeIDs()[source]

deprecated

node_ids
raw_fields()[source]
type = u'CDAMP1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.damper.CDAMP2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.damper.LineDamper

Attributes

Methods

B()[source]
Eid()[source]
_field_map = {1: u'eid', 2: u'b', u'c1': 4, u'c2': 6}
_update_field_helper(n, value)[source]
_verify(xref=True)[source]
b = None

Value of the scalar damper (Real)

c1 = None

component number

cross_reference(model)[source]
nodeIDs()[source]
node_ids
raw_fields()[source]
type = u'CDAMP2'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.damper.CDAMP3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.damper.LineDamper

Attributes

Methods

B()[source]
Eid()[source]
_field_map = {1: u'eid', 2: u'pid'}
_update_field_helper(n, value)[source]
_verify(xref=True)[source]
cross_reference(model)[source]
nodeIDs()[source]

deprecated

node_ids
raw_fields()[source]
type = u'CDAMP3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.damper.CDAMP4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.damper.LineDamper

Attributes

Methods

B()[source]
Eid()[source]
_field_map = {1: u'eid', 2: u'b'}
_update_field_helper(n, value)[source]
_verify(xref=True)[source]
b = None

Value of the scalar damper (Real)

cross_reference(model)[source]
nodeIDs()[source]

deprecated

node_ids
raw_fields()[source]
type = u'CDAMP4'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.damper.CDAMP5(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.damper.LineDamper

Attributes

Methods

B()[source]
Eid()[source]
_field_map = {1: u'eid', 2: u'pid'}
_update_field_helper(n, value)[source]
_verify(xref=True)[source]
cross_reference(model)[source]
nodeIDs()[source]

deprecated

node_ids
pid = None

Property ID

raw_fields()[source]
type = u'CDAMP5'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.damper.CVISC(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.damper.LineDamper

Attributes

Methods

B()[source]
Eid()[source]
_field_map = {1: u'eid', 2: u'pid'}
_update_field_helper(n, value)[source]
_verify(xref=True)[source]
nodeIDs()[source]

deprecated

node_ids
raw_fields()[source]
repr_fields()[source]
type = u'CVISC'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.damper.DamperElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

class pyNastran.bdf.cards.elements.damper.LineDamper(card, data)[source]

Bases: pyNastran.bdf.cards.elements.damper.DamperElement

Attributes

Methods

cross_reference(model)[source]

elements Module

Inheritance diagram of pyNastran.bdf.cards.elements.elements

All ungrouped elements are defined in this file. This includes:

  • CFAST
  • CGAP
  • CRAC2D
  • CRAC3D

All ungrouped elements are Element objects.

class pyNastran.bdf.cards.elements.elements.CFAST(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

_field_map = {1: u'eid', 2: u'pid', 3: u'Type', 4: u'ida', 5: u'idb', 6: u'gs', 7: u'ga', 8: u'gb', 9: u'xs', 10: u'ys', 11: u'zs'}
cross_reference(model)[source]
raw_fields()[source]
repr_fields()[source]
type = u'CFAST'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.elements.CGAP(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.Element

# .. todo:: not done...

Attributes

Methods

Cid()[source]
Eid()[source]
Ga()[source]
Gb()[source]
_field_map = {1: u'eid', 2: u'pid', 3: u'ga', 4: u'gb'}
_verify(xref=True)[source]
cross_reference(model)[source]
nodeIDs()[source]
node_ids
raw_fields()[source]
type = u'CGAP'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.elements.CRAC2D(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.elements.CrackElement

Attributes

Methods

Eid()[source]
_field_map = {1: u'eid', 2: u'pid'}
_verify(xref=True)[source]
nodeIDs()[source]
node_ids
raw_fields()[source]
type = u'CRAC2D'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.elements.CRAC3D(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.elements.CrackElement

Attributes

Methods

Eid()[source]
_field_map = {1: u'eid', 2: u'pid'}
_verify(xref=True)[source]
nodeIDs()[source]
node_ids
raw_fields()[source]
type = u'CRAC3D'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.elements.CrackElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

cross_reference(model)[source]
type = u'Crack'

mass Module

Inheritance diagram of pyNastran.bdf.cards.elements.mass

All mass elements are defined in this file. This includes:

  • CMASS1
  • CMASS2
  • CMASS3
  • CMASS4
  • CONM1
  • CONM2

All mass elements are PointMassElement and Element objects.

class pyNastran.bdf.cards.elements.mass.CMASS1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.mass.PointMassElement

Defines a scalar mass element.

CMASS1 EID PID G1 C1 G2 C2

Attributes

Methods

Centroid()[source]

Centroid is assumed to be c=(g1+g2)/2. If g2 is blank, then the centroid is the location of g1.

Eid()[source]
G1()[source]
G2()[source]
Mass()[source]
Pid()[source]
_field_map = {1: u'eid', 2: u'pid', 3: u'g1', 4: u'c1', 5: u'g2', 6: u'c2'}
_verify(xref=False)[source]
cross_reference(model)[source]
nodeIDs()[source]
raw_fields()[source]
type = u'CMASS1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.mass.CMASS2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.mass.PointMassElement

Defines a scalar mass element without reference to a property entry.

CMASS2 M PID G1 C1 G2 C2

Attributes

Methods

Centroid()[source]

Centroid is assumed to be c=(g1+g2)/2. If g2 is blank, then the centroid is the location of g1.

Eid()[source]
G1()[source]
G2()[source]
Mass()[source]
_field_map = {1: u'eid', 2: u'pid', 3: u'g1', 4: u'c1', 5: u'g2', 6: u'c2'}
_verify(xref=False)[source]
cross_reference(model)[source]
nodeIDs()[source]
raw_fields()[source]
repr_fields()[source]
type = u'CMASS2'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.mass.CMASS3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.mass.PointMassElement

Defines a scalar mass element that is connected only to scalar points.

CMASS3 EID PID S1 S2

Attributes

Methods

Eid()[source]
Mass()[source]
_field_map = {1: u'eid', 2: u'pid', 3: u's1', 4: u's2'}
_is_same_card(elem, debug=False)[source]
cross_reference(model)[source]

Links up the propertiy ID

raw_fields()[source]
type = u'CMASS3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.mass.CMASS4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.mass.PointMassElement

Defines a scalar mass element that is connected only to scalar points, without reference to a property entry

CMASS4 EID M G1 S2

Attributes

Methods

Eid()[source]
Mass()[source]
_field_map = {1: u'eid', 2: u'mass', 3: u's1', 4: u's2'}
_is_same_card(elem, debug=False)[source]
cross_reference(model)[source]
raw_fields()[source]
type = u'CMASS4'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.mass.CONM1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.mass.PointMassElement

Concentrated Mass Element Connection, General Form Defines a 6 x 6 symmetric mass matrix at a geometric grid point

CONM1 EID G CID M11 M21 M22 M31 M32
  M33 M41 M42 M43 M44 M51 M52 M53
  M54 M55 M61 M62 M63 M64 M65 M66
[M] = [M11 M21 M31 M41 M51 M61]
      [    M22 M32 M42 M52 M62]
      [        M33 M43 M53 M63]
      [            M44 M54 M64]
      [    Sym         M55 M65]
      [                    M66]

Attributes

Methods

Cid()[source]
Eid()[source]
Mass()[source]
MassMatrix()[source]
Nid()[source]
_field_map = {1: u'eid', 2: u'nid', 3: u'cid'}
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
cross_reference(model)[source]
nodeIDs()[source]
raw_fields()[source]
repr_fields()[source]
type = u'CONM1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.mass.CONM2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.mass.PointMassElement

Parameters:
  • self – the CONM2 object
  • eid – element ID
  • nid – node ID
  • cid – coordinate frame of the offset (-1=absolute coordinates)
  • X – offset vector relative to nid
  • I – mass moment of inertia matrix about the CG
CONM2 EID NID CID MASS X1 X2 X3  
  I11 I21 I22 I31 I32 I33    
CONM2 501274 11064   132.274

Attributes

Methods

Centroid()[source]

This method seems way more complicated than it needs to be thanks to all these little caveats that don’t seem to be supported.

Cid()[source]
Eid()[source]
I = None

Mass moments of inertia measured at the mass center of gravity in

Inertia()[source]

Returns the 3x3 inertia matrix .. warning:: doesnt handle offsets or coordinate systems

Mass()[source]
Nid()[source]
X = None

Offset distances from the grid point to the center of gravity of coordinate system. (Real)

_field_map = {1: u'eid', 2: u'nid', 3: u'cid', 4: u'mass'}
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
cid = None

Coordinate system identification number. For CID of -1; see X1, X2, X3 below. (Integer > -1; Default = 0)

cross_reference(model)[source]
eid = None

Element identification number. (0 < Integer < 100,000,000)

mass = None

Mass value. (Real)

nid = None

Grid point identification number. (Integer > 0)

nodeIDs()[source]
raw_fields()[source]
repr_fields()[source]
type = u'CONM2'
write_card(size=8, is_double=False)[source]
write_code_aster()[source]
class pyNastran.bdf.cards.elements.mass.PointElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

class pyNastran.bdf.cards.elements.mass.PointMassElement(card, data)[source]

Bases: pyNastran.bdf.cards.elements.mass.PointElement

Attributes

Methods

Mass()[source]

rigid Module

Inheritance diagram of pyNastran.bdf.cards.elements.rigid

All rigid elements are defined in this file. This includes:

  • RBAR
  • RBAR1
  • RBE1
  • RBE2
  • RBE3

All rigid elements are RigidElement and Element objects.

class pyNastran.bdf.cards.elements.rigid.RBAR(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.rigid.RigidElement

RBAR EID GA GB CNA CNB CMA CMB ALPHA
RBAR 5 1 2 123456       6.5-6

Attributes

Methods

raw_fields()[source]
repr_fields()[source]
type = u'RBAR'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.rigid.RBAR1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.rigid.RigidElement

RBAR1 EID GA GB CB ALPHA
RBAR1 5 1 2 123 6.5-6

Attributes

Methods

raw_fields()[source]
repr_fields()[source]
type = u'RBAR1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.rigid.RBE1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.rigid.RigidElement

Attributes

Methods

raw_fields()[source]
repr_fields()[source]
type = u'RBE1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.rigid.RBE2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.rigid.RigidElement

1 2 3 4 5 6 7 8 9
RBE2 EID GN CM GM1 GM2 GM3 GM4 GM5
  GM6 GM7 GM8 etc. ALPHA      

Attributes

Methods

_field_map = {1: u'eid', 2: u'gn', 3: u'cm'}
_update_field_helper(n, value)[source]

Updates complicated parameters on the GRID card

Parameters:
  • self – the GRID object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
alpha = None

Grid point identification numbers at which dependent degrees-of-freedom are assigned. (Integer > 0)

cm = None

Component numbers of the dependent degrees-of-freedom in the global coordinate system at grid points GMi. (Integers 1 through 6 with no embedded blanks.)

convert_to_MPC(mpc_id)[source]
\[-A_i u_i + A_j u_j = 0\]

where \(u_i\) are the base DOFs (max=6)

MPC sid g1 c1 a1 g2 c2 a2
RBE2 eid gn cm g1 g2 g3 g4
convert_to_RBE3()[source]
eid = None

Element identification number

gn = None

Identification number of grid point to which all six independent degrees-of-freedom for the element are assigned. (Integer > 0)

raw_fields()[source]
repr_fields()[source]
type = u'RBE2'
write_card(size=8, is_double=False)[source]
write_code_aster()[source]

Converts to a LIAISON SOLIDE for dofs 123456. For other dof combinations, general MPC equations are written

class pyNastran.bdf.cards.elements.rigid.RBE3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.rigid.RigidElement

Todo

not done, needs testing badly

Attributes

Methods

eid refgrid refc WtCG_groups = [wt,ci,Gij] Gmi Cmi alpha

Attributes

Methods

alpha = None

thermal expansion coefficient

raw_fields()[source]
repr_fields()[source]
type = u'RBE3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.rigid.RigidElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

cross_reference(model)[source]

shell Module

Inheritance diagram of pyNastran.bdf.cards.elements.shell

All shell elements are defined in this file. This includes:

  • CTRIA3
  • CTRIA6
  • CTRIAX
  • CTRIAX6
  • CSHEAR
  • CQUAD
  • CQUAD4
  • CQUAD8
  • CQUADR
  • CQUADX

All tris are TriShell, ShellElement, and Element objects. All quads are QuadShell, ShellElement, and Element objects.

class pyNastran.bdf.cards.elements.shell.CQUAD(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.QuadShell

Attributes

Methods

Thickness()[source]

Returns the thickness

cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
1--5--2       1--8--4
|     |  -->  |     |
8  9  6       5  9  7
|     |       |     |
4--7--3       2--6--3
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CQUAD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CQUAD4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.QuadShell

Attributes

Methods

_field_map = {1: u'eid', 2: u'pid', 7: u'thetaMcid', 8: u'zOffset', 10: u'TFlag', 11: u'T1', 12: u'T2', 13: u'T3'}
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
asterType = u'QUAD4 # CQUAD4'
calculixType = u'S4'
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
1---2       1---4
|   |  -->  |   |
|   |       |   |
4---3       2---3
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CQUAD4'
writeAsCTRIA3(newID)[source]

triangle - 012 triangle - 023

write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CQUAD8(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.QuadShell

Attributes

Methods

Area()[source]
\[A = \frac{1}{2} \lvert (n_1-n_3) \times (n_2-n_4) \rvert\]

where a and b are the quad’s cross node point vectors

AreaCentroid()[source]
1-----2
|    /|
| A1/ |
|  /  |
|/ A2 |
4-----3

centroid
   c = sum(ci*Ai)/sum(A)
   where:
     c=centroid
     A=area
Normal()[source]
Thickness()[source]

Returns the thickness

_verify(xref=False)[source]
asterType = u'QUAD8'
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
1--5--2       1--8--4
|     |  -->  |     |
8     6       5     7
|     |       |     |
4--7--3       2--6--3
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CQUAD8'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CQUADR(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.QuadShell

Attributes

Methods

Thickness()[source]

Returns the thickness

_verify(xref=False)[source]
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
1---2       1---4
|   |  -->  |   |
|   |       |   |
4---3       2---3
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CQUADR'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CQUADX(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.QuadShell

Attributes

Methods

Thickness()[source]

Returns the thickness

calculixType = u'CAX8'
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
1--5--2       1--8--4
|     |  -->  |     |
8  9  6       5  9  7
|     |       |     |
4--7--3       2--6--3
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CQUADX'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CSHEAR(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.QuadShell

Attributes

Methods

Area()[source]
\[A = \frac{1}{2} \lvert (n_1-n_3) \times (n_2-n_4) \rvert\]

where a and b are the quad’s cross node point vectors

AreaCentroid()[source]
::
1—–2 | /| | A1/ | | / | |/ A2 | 4—–3
AreaCentroidNormal()[source]
Centroid()[source]
G()[source]
Normal()[source]
Thickness()[source]
_verify(xref=True)[source]
calculixType = u'S4'
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
1---2       1---4
|   |  -->  |   |
|   |       |   |
4---3       2---3
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CSHEAR'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CTRIA3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.TriShell

Attributes

Methods

Interp(un)[source]

Interpolation based on the area coordinates

Jacob()[source]
_field_map = {1: u'eid', 2: u'pid', 6: u'thetaMcid', 7: u'zOffset', 10: u'TFlag', 11: u'T1', 12: u'T2', 13: u'T3'}
_update_field_helper(n, value)[source]
_verify(xref=True)[source]
asterType = u'TRIA3'
calculixType = u'S3'
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
   1           1
  * *   -->   * *
 *   *       *   *
2-----3     3-----2
getReprDefaults()[source]
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CTRIA3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CTRIA6(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.TriShell

Attributes

Methods

Area()[source]

Get the area, \(A\).

\[A = \frac{1}{2} (n_0-n_1) \times (n_0-n_2)\]
AreaCentroidNormal()[source]

Returns area, centroid, normal as it’s more efficient to do them together

Centroid()[source]

Get the centroid.

\[CG = \frac{1}{3} (n_1+n_2+n_3)\]
Normal()[source]

Get the normal vector, \(n\).

\[n = \frac{(n_0-n_1) \times (n_0-n_2)}{\lvert (n_0-n_1) \times (n_0-n_2) \lvert}\]
Thickness()[source]

Returns the thickness, \(t\)

_verify(xref=False)[source]
asterType = u'TRIA6'
calculixType = u'S6'
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
    1                1
    **               **
   *  *             *  *
  4    6   -->     6    4
 *      *         *      *
2----5---3       3----5---2
getReprDefaults()[source]
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CTRIA6'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CTRIAR(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.TriShell

Attributes

Methods

Thickness()[source]

Returns the thickness

_verify(xref=False)[source]
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
   1           1
  * *   -->   * *
 *   *       *   *
2-----3     3-----2
getReprDefaults()[source]
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CTRIAR'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CTRIAX(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.TriShell

Attributes

Methods

Area()[source]

Get the area, \(A\).

\[A = \frac{1}{2} \lvert (n_1-n_2) \times (n_1-n_3) \rvert\]
AreaCentroidNormal()[source]

Returns area, centroid, normal as it’s more efficient to do them together

_verify(xref=True)[source]
calculixType = u'CAX6'
cross_reference(model)[source]
eid = None

Element ID

nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'CTRIAX'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.CTRIAX6(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.shell.TriShell

Nodes defined in a non-standard way:

     5
    / \
   6   4
 /       \
1----2----3

Attributes

Methods

Area()[source]

Get the normal vector.

\[A = \frac{1}{2} \lvert (n_1-n_3) \times (n_1-n_5) \rvert\]
AreaCentroidNormal()[source]

Returns area, centroid, normal as it’s more efficient to do them together

Mass()[source]
MassPerArea()[source]
Mid()[source]
Nsm()[source]
Pid()[source]
Thickness()[source]

CTRIAX doesn’t have a thickness because ???

_verify(xref=True)[source]
cross_reference(model)[source]
eid = None

Element ID

flipNormal()[source]
     5               5
    / \             / \
   6   4   -->     6   4
 /       \       /       \
1----2----3     1----2----3
mid = None

Material ID

nodeIDs()[source]
node_ids
raw_fields()[source]
repr_fields()[source]
theta = None

theta

type = u'CTRIAX6'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.shell.QuadShell(card, data)[source]

Bases: pyNastran.bdf.cards.elements.shell.ShellElement

Attributes

Methods

Area()[source]
\[A = \]

rac{1}{2} lvert (n_1-n_3) imes (n_2-n_4) vert

where a and b are the quad’s cross node point vectors
AreaCentroid()[source]
::
1—–2 | /| | A1/ | | / | |/ A2 | 4—–3
AreaCentroidNormal()[source]
Centroid()[source]
MassMatrix(isLumped=True, gauss=1)[source]

6x6 mass matrix triangle http://www.colorado.edu/engineering/cas/courses.d/IFEM.d/IFEM.Ch32.d/IFEM.Ch32.pdf

Normal()[source]
Thickness()[source]

Returns the thickness

flipNormal()[source]
1---2       1---4
|   |  -->  |   |
|   |       |   |
4---3       2---3
getReprDefaults()[source]
get_edges()[source]

Returns the edges

class pyNastran.bdf.cards.elements.shell.ShellElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element, pyNastran.bdf.deprecated.ShellElementDeprecated

Attributes

Methods

Area()[source]
Eid()[source]
Mass()[source]
\[m = \frac{m}{A} A \f]\]
MassPerArea()[source]

Returns the mass per area

Mid()[source]

Returns the material ID

Todo

possibly remove this

Nsm()[source]

Returns the non-structural mass

Thickness()[source]

Returns the thickness

flipNormal()[source]
mid()[source]

Returns the material

Todo

possibly remove this

type = u'ShellElement'
class pyNastran.bdf.cards.elements.shell.TriShell(card, data)[source]

Bases: pyNastran.bdf.cards.elements.shell.ShellElement

Attributes

Methods

Area()[source]

Get the area, \(A\).

\[A = \frac{1}{2} \lvert (n_0-n_1) \times (n_0-n_2) \rvert\]
AreaCentroidNormal()[source]

Returns area,centroid, normal as it’s more efficient to do them together

Returns:

area : float

the area

centroid : (3,) array

the centroid

normal : (3,) array

the normal vector

Centroid()[source]

Get the centroid.

\[CG = \frac{1}{3} (n_0+n_1+n_2)\]
MassMatrix(isLumped=True)[source]

6x6 mass matrix triangle http://www.colorado.edu/engineering/cas/courses.d/IFEM.d/IFEM.Ch32.d/IFEM.Ch32.pdf

Normal()[source]

Get the normal vector, \(n\).

\[n = \frac{(n_0-n_1) \times (n_0-n_2)} {\lvert (n_0-n_1) \times (n_0-n_2) \lvert}\]
Thickness()[source]

Returns the thickness

get_edges()[source]

Returns the edges

pyNastran.bdf.cards.elements.shell._normal(a, b)[source]

Finds the unit normal vector of 2 vectors

pyNastran.bdf.cards.elements.shell._triangle_area_centroid_normal(nodes)[source]

Returns area,centroid,unitNormal

Parameters:nodes – list of three triangle vertices
n = Normal = a x b
Area = 1/2 * |a x b|
V = <v1,v2,v3>
|V| = sqrt(v1^0.5+v2^0.5+v3^0.5) = norm(V)

Area = 0.5 * |n|
unitNormal = n/|n|

solid Module

Inheritance diagram of pyNastran.bdf.cards.elements.solid

All solid elements are defined in this file. This includes:

  • CHEXA8
  • CHEXA20
  • CPENTA6
  • CPENTA15
  • CTETRA4
  • CTETRA10

All solid elements are SolidElement and Element objects.

class pyNastran.bdf.cards.elements.solid.CHEXA20(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.solid.SolidElement

CHEXA EID PID G1 G2 G3 G4 G5 G6
  G7 G8 G9 G10 G11 G12 G13 G14
  G15 G16 G17 G18 G19 G20    

Attributes

Methods

Centroid()[source]

See also

CHEXA8.Centroid

Volume()[source]

See also

CHEXA8.Volume

_verify(xref=False)[source]
asterType = u'HEXA20'
calculixType = u'C3D20'
cross_reference(model)[source]
eid = None

Element ID

nodeIDs()[source]
node_ids
pid = None

Property ID

type = u'CHEXA'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.solid.CHEXA8(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.solid.SolidElement

CHEXA EID PID G1 G2 G3 G4 G5 G6
  G7 G8            

Attributes

Methods

Centroid()[source]

Averages the centroids at the two faces

Volume()[source]
_verify(xref=False)[source]
asterType = u'HEXA8'
calculixType = u'C3D8'
cross_reference(model)[source]
eid = None

Element ID

nodeIDs()[source]
node_ids
pid = None

Property ID

type = u'CHEXA'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.solid.CPENTA15(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.solid.SolidElement

CPENTA EID PID G1 G2 G3 G4 G5 G6
  G7 G8 G9 G10 G11 G12 G13 G14
  G15              

Attributes

Methods

Centroid()[source]

See also

CPENTA6.Centroid

Volume()[source]

See also

CPENTA6.Volume

_verify(xref=False)[source]
asterType = u'PENTA15'
calculixType = u'C3D15'
cross_reference(model)[source]
eid = None

Element ID

nodeIDs()[source]
node_ids
pid = None

Property ID

type = u'CPENTA'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.solid.CPENTA6(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.solid.SolidElement

CPENTA EID PID G1 G2 G3 G4 G5 G6
  *----------*
 / \        /       / A \      / c       *---*-----*-----*
V = (A1+A2)/2  * norm(c1-c2)
C = (c1-c2)/2

Attributes

Methods

Centroid()[source]
Volume()[source]
_verify(xref=False)[source]
asterType = u'PENTA6'
calculixType = u'C3D6'
cross_reference(model)[source]
eid = None

Element ID

getFaceAreaCentroidNormal(nidOpposite, nid)[source]
getFaceNodesAndArea(nidOpposite, nid)[source]
nodeIDs()[source]
node_ids
pid = None

Property ID

raw_fields()[source]
type = u'CPENTA'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.solid.CPYRAM13(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.solid.SolidElement

CPYRAM EID PID G1 G2 G3 G4 G5 G6
  G7 G8 G9 G10 G11 G12    

Attributes

Methods

Centroid()[source]

See also

CPYRAM5.Centroid

Volume()[source]

See also

CPYRAM5.Volume

_verify(xref=False)[source]
cross_reference(model)[source]
eid = None

Element ID

nodeIDs()[source]
node_ids
pid = None

Property ID

type = u'CPYRAM'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.solid.CPYRAM5(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.solid.SolidElement

CPYRAM EID PID G1 G2 G3 G4 G5  

Attributes

Methods

Centroid()[source]

See also

CPYRAM5.Centroid

Volume()[source]

See also

CPYRAM5.Volume

_verify(xref=False)[source]
cross_reference(model)[source]
eid = None

Element ID

nodeIDs()[source]
node_ids
pid = None

Property ID

type = u'CPYRAM'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.solid.CTETRA10(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.solid.SolidElement

CTETRA EID PID G1 G2 G3 G4 G5 G6
  G7 G8 G9 G10        
CTETRA 1 1 239 229 516 99 335 103
  265 334 101 102        

Attributes

Methods

Centroid()[source]

Gets the cenroid of the primary tetrahedron.

See also

CTETRA4.Centroid

N_10(g1, g2, g3, g4)[source]
Volume()[source]

Gets the volume, \(V\), of the primary tetrahedron.

See also

CTETRA4.Volume

_verify(xref=False)[source]
asterType = u'TETRA10'
calculixType = u'C3D10'
cross_reference(model)[source]
eid = None

Element ID

getFaceNodes(nidOpposite, nid=None)[source]
nodeIDs()[source]
node_ids
pid = None

Property ID

type = u'CTETRA'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.solid.CTETRA4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.solid.SolidElement

CTETRA EID PID G1 G2 G3 G4

Attributes

Methods

Centroid()[source]
Volume()[source]
_verify(xref=False)[source]
asterType = u'TETRA4'
calculixType = u'C3D4'
cross_reference(model)[source]
eid = None

Element ID

getFaceAreaCentroidNormal(nid_opposite, nid=None)[source]
getFaceNodes(nid_opposite, nid=None)[source]
nodeIDs()[source]
node_ids
pid = None

Property ID

type = u'CTETRA'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.solid.SolidElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

E()[source]
Eid()[source]
G()[source]
Mass()[source]

Calculates the mass of the solid element Mass = Rho * Volume

Mid()[source]

Returns the material ID as an integer

Nu()[source]
Rho()[source]

Returns the density

Volume()[source]

Base volume method that should be overwritten

_field_map = {1: u'nid', 2: u'pid'}
_is_same_card(elem, debug=False)[source]
_update_field_helper(n, value)[source]
cross_reference(model)[source]
raw_fields()[source]
pyNastran.bdf.cards.elements.solid.area_centroid(n1, n2, n3, n4)[source]

Gets the area, \(A\), and centroid of a quad.:

1-----2
|   / |
| /   |
4-----3
pyNastran.bdf.cards.elements.solid.volume4(n1, n2, n3, n4)[source]

Gets the volume, \(V\), of the tetrahedron.

\[V = \frac{(a-d) \cdot \left( (b-d) \times (c-d) \right) }{6}\]

springs Module

Inheritance diagram of pyNastran.bdf.cards.elements.springs

All spring elements are defined in this file. This includes:

  • CELAS1
  • CELAS2
  • CELAS3
  • CELAS4

All spring elements are SpringElement and Element objects.

class pyNastran.bdf.cards.elements.springs.CELAS1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.springs.SpringElement

Attributes

Methods

K()[source]
_field_map = {1: u'eid', 2: u'pid', 4: u'c1', 6: u'c2'}
_is_same_card(elem, debug=False)[source]
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
asterType = u'CELAS1'
c1 = None

component number

cross_reference(model)[source]
nodeIDs()[source]
node_ids
pid = None

property ID

raw_fields()[source]
type = u'CELAS1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.springs.CELAS2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.springs.SpringElement

Attributes

Methods

K()[source]
_field_map = {1: u'eid', 2: u'k', 4: u'c1', 6: u'c2'}
_is_same_card(elem, debug=False)[source]
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
asterType = u'CELAS2'
c1 = None

component number

cross_reference(model)[source]
ge = None

damping coefficient

k = None

stiffness of the scalar spring

nodeIDs()[source]
node_ids
raw_fields()[source]
repr_fields()[source]
s = None

stress coefficient

type = u'CELAS2'
write_card(size=8, is_double=False)[source]
write_code_aster()[source]
class pyNastran.bdf.cards.elements.springs.CELAS3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.springs.SpringElement

Attributes

Methods

K()[source]
_field_map = {1: u'eid', 2: u'pid', 4: u's1', 6: u's2'}
_is_same_card(elem, debug=False)[source]
asterType = u'CELAS3'
cross_reference(model)[source]
nodeIDs()[source]
node_ids
pid = None

property ID

raw_fields()[source]
s1 = None

Scalar point identification numbers

type = u'CELAS3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.springs.CELAS4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.elements.springs.SpringElement

Attributes

Methods

K()[source]
_field_map = {1: u'eid', 2: u'k', 4: u's1', 6: u's2'}
_is_same_card(elem, debug=False)[source]
asterType = u'CELAS4'
cross_reference(model)[source]
k = None

stiffness of the scalar spring

nodeIDs()[source]
node_ids
raw_fields()[source]
s1 = None

Scalar point identification numbers

type = u'CELAS4'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.elements.springs.SpringElement(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Element

Attributes

Methods

Centroid()[source]
Eid()[source]
Mass()[source]
repr_fields()[source]