properties Package

bars Module

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

All bar properties are defined in this file. This includes:
  • PBAR
  • PBARL

All bars are LineProperty objects. Multi-segment beams are IntegratedLineProperty objects.

pyNastran.bdf.cards.properties.bars.IBeam(b, h)[source]
pyNastran.bdf.cards.properties.bars.IBeamOffset(b, h, y, z)[source]
class pyNastran.bdf.cards.properties.bars.IntegratedLineProperty(card, data)[source]

Bases: pyNastran.bdf.cards.properties.bars.LineProperty

Methods

Area()[source]
I11()[source]
I12()[source]
I22()[source]
J()[source]
Nsm()[source]
pyNastran.bdf.cards.properties.bars.IyyBeam(b, h)[source]
class pyNastran.bdf.cards.properties.bars.LineProperty(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

Area()[source]
CA_Section(iFace, iStart, dims)[source]
---msg1---
H1=0.1
W1=0.05

---msg2---
Face_1 = geompy.MakeFaceHW(H1, W1, 1)
geompy.addToStudy( Face_1, 'Face_1' )

---msg---
H1=0.1
W1=0.05
Face_1 = geompy.MakeFaceHW(H1, W1, 1)
geompy.addToStudy( Face_1, 'Face_1' )
E()[source]
G()[source]
I1()[source]
I11()[source]
I12()[source]
I1_I2_I12()[source]
BAR
    2
    ^
    |
*---|--*
|   |  |
|   |  |
|h  *-----------> 1
|      |
|   b  |
*------*
\[I_1 = \frac{1}{12} b h^3\]
\[I_2 = \frac{1}{12} h b^3\]
I2()[source]
I22()[source]
IAreaL(dim)[source]
J()[source]
Nsm()[source]
Nu()[source]
Rho()[source]
class pyNastran.bdf.cards.properties.bars.PBAR(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.bars.LineProperty

Todo

support solution 600 default do a check for mid -> MAT1 for structural do a check for mid -> MAT4/MAT5 for thermal

PBAR PID MID A I1 I2 J NSM  
  C1 C2 D1 D2 E1 E2 F1 F2
  K1 K2 I12          

Methods

A = None

Area -> use Area()

Area()[source]

Gets the area \(A\) of the CBAR.

I11()[source]
I12()[source]
I22()[source]
K1 = None

default=infinite; assume 1e8

K2 = None

default=infinite; assume 1e8

MassPerLength()[source]

Gets the mass per length \(\frac{m}{L}\) of the CBAR.

\[\frac{m}{L} = \rho A + nsm\]
_verify(xref=False)[source]
cross_reference(model)[source]
i1 = None

I1 -> use I1()

i12 = None

I12 -> use I12()

i2 = None

I2 -> use I2()

j = None

Polar Moment of Inertia J -> use J() default=1/2(I1+I2) for SOL=600, otherwise 0.0 .. todo:: support SOL 600 default

mid = None

material ID -> use Mid()

nsm = None

nonstructral mass -> use Nsm()

pid = None

property ID -> use Pid()

raw_fields()[source]
repr_fields()[source]
type = u'PBAR'
write_card(size=8, is_double=False)[source]
write_code_aster()[source]
class pyNastran.bdf.cards.properties.bars.PBARL(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.bars.LineProperty

Todo

doesnt support user-defined types

Methods

Area()[source]

Gets the area \(A\) of the CBAR.

I11()[source]
I22()[source]
J()[source]
MassPerLength()[source]

Gets the mass per length \(\frac{m}{L}\) of the CBAR.

\[\frac{m}{L} = A \rho + nsm\]
Nsm()[source]

Gets the non-structural mass \(nsm\) of the CBAR.

Type = None

Section Type (e.g. ‘ROD’, ‘TUBE’, ‘I’, ‘H’)

_points(Type, dim)[source]
_verify(xref=False)[source]
cross_reference(model)[source]
dim = None

dimension list

mid = None

Material ID

nsm = None

non-structural mass

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PBARL'
validTypes = {u'BOX': 4, u'CHAN2': 4, u'BAR': 2, u'T2': 4, u'HEXA': 3, u'CHAN1': 4, u'I': 6, u'CHAN': 4, u'TUBE': 2, u'HAT1': 5, u'ROD': 1, u'CROSS': 4, u'T1': 4, u'HAT': 4, u'I1': 4, u'DBOX': 10, u'T': 4, u'H': 4, u'Z': 4, u'BOX1': 6}
write_card(size, is_double)[source]
write_code_aster(iCut=0, iFace=0, iStart=0)[source]
class pyNastran.bdf.cards.properties.bars.PBEAM3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.bars.LineProperty

Methods

Nsm()[source]

Gets the non-structural mass \(nsm\). .. warning:: nsm field not supported fully on PBEAM3 card

cross_reference(model)[source]
repr_fields()[source]

Todo

not done

type = u'PBEAM3'
class pyNastran.bdf.cards.properties.bars.PBEND(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.bars.LineProperty

Methods

A = None

Area of the beam cross section

c1 = None

The r,z locations from the geometric centroid for stress data recovery.

cross_reference(model)[source]
deltaN = None

Radial offset of the neutral axis from the geometric centroid, positive is toward the center of curvature

fsi = None

Flag selecting the flexibility and stress intensification factors. See Remark 3. (Integer = 1, 2, or 3)

i1 = None

Area moments of inertia in planes 1 and 2.

j = None

Torsional stiffness \(J\)

k1 = None

Shear stiffness factor K in K*A*G for plane 1.

k2 = None

Shear stiffness factor K in K*A*G for plane 2.

nsm = None

Nonstructural mass per unit length.

p = None

Internal pressure

rb = None

Bend radius of the line of centroids

rc = None

Radial offset of the geometric centroid from points GA and GB.

repr_fields()[source]
rm = None

Mean cross-sectional radius of the curved pipe

t = None

Wall thickness of the curved pipe

thetab = None

Arc angle \(\theta_B\) of element (optional)

type = u'PBEND'
write_card(size=8, is_double=False)[source]
zc = None

Offset of the geometric centroid in a direction perpendicular to the plane of points GA and GB and vector v

pyNastran.bdf.cards.properties.bars._bar_areaL(x) method for the PBARL and PBEAML classes (pronounced **Area-L**)[source]
Parameters:
  • self – the object pointer
  • dim – a list of the dimensions associated with Type
Returns Area:

Area of the given cross section defined by self.Type

Note

internal method

pyNastran.bdf.cards.properties.bars.getInertiaRectangular(sections)[source]

Calculates the moment of inertia for a section about the CG.

Parameters:sections

[[b,h,y,z]_1,...] y,z is the centroid (x in the direction of the beam,

y right, z up)
Returns:interiaParameters list of [Area, Iyy, Izz, Iyz]

bush Module

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

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

  • PBUSH
  • PBUSH1D
  • PBUSH2D (not implemented)
  • PBUSHT (not implemented)

All bush properties are BushingProperty and Property objects.

class pyNastran.bdf.cards.properties.bush.BushingProperty(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

cross_reference(model)[source]
type = u'BushingProperty'
class pyNastran.bdf.cards.properties.bush.PBUSH(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.bush.BushingProperty

Methods

_field_map = {1: u'pid'}
_verify(xref=False)[source]
getB(card, iStart)[source]
getGE(card, iStart)[source]
getK(card, iStart)[source]
getRCV(card, iStart)[source]
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PBUSH'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.bush.PBUSH1D(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.bush.BushingProperty

Methods

_damper_fields()[source]
_gener_fields()[source]
_shock_fields()[source]
_spring_fields()[source]
_verify(xref=False)[source]
getDamper(card, iStart)[source]
getGener(card, iStart)[source]
getShockA(card, iStart)[source]
getSpring(card, iStart)[source]
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PBUSH1D'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.bush.PBUSH2D(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.bush.BushingProperty

Methods

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

Bases: pyNastran.bdf.cards.properties.bush.BushingProperty

Methods

type = u'PBUSHT'
write_card(size=8, is_double=False)[source]

damper Module

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

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

  • PDAMP
  • PDAMP5 (not implemented)
  • PDAMPT
  • PVISC

All damper properties are DamperProperty and Property objects.

class pyNastran.bdf.cards.properties.damper.DamperProperty(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

cross_reference(model)[source]
class pyNastran.bdf.cards.properties.damper.PDAMP(card=None, nPDAMP=0, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.damper.DamperProperty

Methods

B()[source]
_field_map = {1: u'pid', 2: u'b'}
_verify(xref=True)[source]
b = None

Force per unit velocity (Real)

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PDAMP'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.damper.PDAMP5(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.damper.DamperProperty

Defines the damping multiplier and references the material properties for damping. CDAMP5 is intended for heat transfer analysis only.

Methods

Mid()[source]
_field_map = {1: u'pid', 2: u'mid', 3: u'b'}
_verify(xref=True)[source]
b = None

Damping multiplier. (Real > 0.0) B is the mass that multiplies the heat capacity CP on the MAT4 or MAT5 entry.

cross_reference(model)[source]
mid = None

Material ID

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PDAMP5'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.damper.PDAMPT(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.damper.DamperProperty

Methods

Tbid()[source]
_field_map = {1: u'pid', 2: u'tbid'}
_verify(xref=False)[source]
cross_reference(model)[source]
pid = None

Property ID

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

Identification number of a TABLEDi entry that defines the damping force per-unit velocity versus frequency relationship

type = u'PDAMPT'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.damper.PVISC(card=None, nPVISC=0, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.damper.DamperProperty

Methods

_field_map = {1: u'pid', 2: u'ce', 3: u'cr'}
_verify(xref=False)[source]
cross_reference(model)[source]
raw_fields()[source]
repr_fields()[source]
type = u'PVISC'
write_card(size=8, is_double=False)[source]

mass Module

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

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

  • NSM
  • PMASS

All mass properties are PointProperty and Property objects.

class pyNastran.bdf.cards.properties.mass.NSM(card=None, nOffset=0, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.mass.PointProperty

Defines a set of non structural mass.

Methods

_field_map = {1: u'sid', 2: u'Type', 3: u'id', 4: u'value'}
raw_fields()[source]
repr_fields()[source]
type = u'NSM'
validProperties = [u'PSHELL', u'PCOMP', u'PBAR', u'PBARL', u'PBEAM', u'PBEAML', u'PBCOMP', u'PROD', u'CONROD', u'PBEND', u'PSHEAR', u'PTUBE', u'PCONEAX', u'PRAC2D']

Set points to either Property entries or Element entries. Properties are:

write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.mass.PMASS(card=None, nOffset=0, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.mass.PointProperty

Methods

Mass()[source]
_field_map = {1: u'pid', 2: u'mass'}
_verify(xref=False)[source]
pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PMASS'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.mass.PointProperty(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

cross_reference(model)[source]

properties Module

Inheritance diagram of pyNastran.bdf.cards.properties.properties

All ungrouped properties are defined in this file. This includes:
  • PFAST
  • PGAP
  • PLSOLID (SolidProperty)
  • PSOLID (SolidProperty)
  • PRAC2D (CrackProperty)
  • PRAC3D (CrackProperty)
  • PCONEAX (not done)
class pyNastran.bdf.cards.properties.properties.CrackProperty(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

Mid()[source]
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.properties.PCONEAX(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

Mid1()[source]
Mid2()[source]
Mid3()[source]
_field_map = {1: u'pid', 2: u'mid1', 3: u't1', 4: u'mid2', 5: u'i', 6: u'mid3', 7: u't2', 8: u'nsm', 9: u'z1', 10: u'z2'}
_update_field_helper(n, value)[source]
cross_reference(model)[source]
mid1 = None

Material ID

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PCONEAX'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.properties.PFAST(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

Mass()[source]
Mcid()[source]
_field_map = {1: u'pid', 2: u'd', 3: u'mcid', 4: u'mflag', 5: u'kt1', 6: u'kt2', 7: u'kt3', 8: u'kr1', 9: u'kr2', 10: u'kr3', 11: u'mass', 12: u'ge'}
cross_reference(model)[source]
d = None

diameter of the fastener

ge = None

Structural damping

kr1 = None

Rotational stiffness values in directions 1-3

kt1 = None

stiffness values in directions 1-3

mass = None

Lumped mass of fastener

mcid = None

Specifies the element stiffness coordinate system

mflag = None

0-absolute 1-relative

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PFAST'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.properties.PGAP(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Defines the properties of the gap element (CGAP entry).

Methods

_field_map = {1: u'pid', 2: u'u0', 3: u'f0', 4: u'ka', 5: u'kb', 6: u'kt', 7: u'mu1', 8: u'mu2', 9: u'tmax', 10: u'mar', 11: u'trmin'}
_verify(xref=True)[source]
cross_reference(model)[source]
f0 = None

preload

ka = None

axial stiffness of closed gap

kb = None

axial stiffness of open gap

kt = None

transverse stiffness of closed gap

mu1 = None

static friction coeff

mu2 = None

kinetic friction coeff

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PGAP'
u0 = None

initial gap opening

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

Bases: pyNastran.bdf.cards.properties.properties.SolidProperty

Defines a fully nonlinear (i.e., large strain and large rotation) hyperelastic solid element. PLSOLID PID MID STR PLSOLID 20 21

Methods

_field_map = {1: u'pid', 2: u'mid', 3: u'str'}
cross_reference(model)[source]
mid = None

Material ID

pid = None

Property ID

raw_fields()[source]
str = None

Location of stress and strain output

type = u'PLSOLID'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.properties.PRAC2D(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.properties.CrackProperty

CRAC2D Element Property Defines the properties and stress evaluation techniques to be used with the CRAC2D structural element.

Methods

_field_map = {1: u'pid', 2: u'mid', 3: u'thick', 4: u'iPlane', 5: u'nsm', 6: u'gamma', 7: u'phi'}
_verify(xref=True)[source]
cross_reference(model)[source]
gamma = None

Exponent used in the displacement field. See Remark 4. (Real; Default = 0.5)

iPlane = None

Plane strain or plane stress option. Use 0 for plane strain; 1 for plane stress. (Integer = 0 or 1)

mid = None

Material ID

nsm = None

Non-structural mass per unit area.(Real >= 0.0; Default = 0)

phi = None

Angle (in degrees) relative to the element x-axis along which stress intensity factors are to be calculated. See Remark 4. (Real; Default = 180.0)

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PRAC2D'
class pyNastran.bdf.cards.properties.properties.PRAC3D(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.properties.CrackProperty

CRAC3D Element Property Defines the properties of the CRAC3D structural element.

Methods

_field_map = {1: u'pid', 2: u'mid', 3: u'gamma', 4: u'phi'}
_verify(xref=True)[source]
cross_reference(model)[source]
gamma = None

Exponent used in the displacement field. See Remark 4. (Real; Default = 0.5)

mid = None

Material ID

phi = None

Angle (in degrees) relative to the element x-axis along which stress intensity factors are to be calculated. See Remark 4. (Real; Default = 180.0)

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PRAC3D'
class pyNastran.bdf.cards.properties.properties.PSOLID(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.properties.SolidProperty

PSOLID PID MID CORDM IN STRESS ISOP FCTN PSOLID 1 1 0 PSOLID 2 100 6 TWO GRID REDUCED

Methods

E()[source]
G()[source]
Nu()[source]
_field_map = {1: u'pid', 2: u'mid', 3: u'cordm', 4: u'integ', 5: u'stress', 6: u'isop', 7: u'fctn'}
_verify(xref=False)[source]
_write_calculix(elementSet=999)[source]
materials()[source]
mid = None

Material ID

pid = None

Property ID

raw_fields()[source]
repr_fields()[source]
type = u'PSOLID'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.properties.SolidProperty(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

Rho()[source]

shell Module

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

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

  • PCOMP
  • PCOMPG
  • PLPLANE
  • PSHEAR
  • PSHELL

All shell properties are ShellProperty and Property objects.

class pyNastran.bdf.cards.properties.shell.CompositeShellProperty(card, data)[source]

Bases: pyNastran.bdf.cards.properties.shell.ShellProperty, pyNastran.bdf.deprecated.DeprecatedCompositeShellProperty

Methods

Material(iply)[source]

Gets the material of the \(i^{th}\) ply (not the ID unless it is not cross-referenced).

Parameters:
  • self – the PCOMP/PCOMPG object
  • iply – the ply ID (starts from 0)
Mid(iply)[source]

Gets the Material ID of the \(i^{th}\) ply.

Parameters:
  • self – the PCOMP/PCOMPG object
  • iply – the ply ID (starts from 0)
Mids()[source]

Gets the material IDs of all the plies

Parameters:self – the PCOMP/PCOMPG object
Returns mids:the material IDs
_adjust_ply_id(iply)[source]

Gets the ply ID that’s stored in self.plies.

When a ply is not symmetric, this function returns the input iply. When a ply is symmetrical and the iply value is greater than the number of plies, we return the mirrored ply. For the case of a symmetrical ply, the element will always have an even number of layers.

Parameters:
  • self – the PCOMP object
  • iply – the ply ID
Raises:

IndexError if iply is invalid

Case 1 (nplies=6, len(plies)=3, lam='SYM'):
    ply 2
    ply 1
    ply 0
    ------- sym
    ply 0 / 3
    ply 1 / 4
    ply 2 / 5
  Ask for ply 3, return ply 0
  Ask for ply 4, return ply 1
  Ask for ply 5, return ply 2

Case 2 (nplies=5, len(plies)=5, lam='NO'):
    ply 5
    ply 4
    ply 3
    ply 1
    ply 0
  Ask for ply 3, return ply 1
  Ask for ply 4, return ply 2
_is_same_card(prop, debug=False)[source]
cross_reference(model)[source]

Links the Material IDs to the materials.

Parameters:
  • self – the PCOMP/PCOMPG object
  • model – a BDF object
get_density(iply)[source]

Gets the density of the \(i^{th}\) ply

Parameters:
  • self – the PCOMP/PCOMPG object
  • iply – the ply ID (starts from 0)
get_mass_per_area(iply=u'all', method=u'nplies')[source]

Gets the Mass/Area for the property.

\[\frac{m}{A} = \sum(\rho t) + nsm\]

or

\[\frac{m}{A} - nsm = \sum(\rho t)\]

and

\[\frac{m_i}{A} = rho_i t_i + nsm_i\]

where \(nsm_i\) is the non-structural mass of the \(i^{th}\) ply

Parameters:
  • self – the PCOMP object
  • iply – the string ‘all’ (default) or the mass per area of the \(i^{th}\) ply
  • method

    the method to compute MassPerArea

    • Case 1 (iply = all)

      method has no effect because the total nsm is defined

    • Case 2 (iply != all)

      method ‘nplies’ smear the nsm based on \(n_{plies}\) (default)

      \(nsm_i = nsm / n_{plies}\) # smear based on nplies

    • Case 3 (iply != all)

      method ‘rho*t’ smear the nsm based on the mass distribution

      \[nsm_i = \rho_i t_i \frac{nsm}{\sum(\rho_i t_i)}\]
      \[nsm_i = \rho_i t_i \frac{nsm}{\frac{m}{A} - nsm}\]
    • Case 4 (iply != all)

      method ‘t’ smear the nsm based on the thickness distribution

      \[nsm_i = t_i \frac{nsm}{\sum(t_i)}\]

Note

final mass calculation will be done later

get_mass_per_area_rho(rhos, iply=u'all', method=u'nplies')[source]

Gets the Mass/Area for the property.

\[\frac{m}{A} = \sum(\rho t) + nsm\]

or

\[\frac{m}{A} - nsm = \sum(\rho t)\]

and

\[\frac{m_i}{A} = rho_i t_i + nsm_i\]

where \(nsm_i\) is the non-structural mass of the \(i^{th}\) ply

Parameters:
  • self – the PCOMP object
  • iply – the string ‘all’ (default) or the mass per area of the \(i^{th}\) ply
  • method

    the method to compute MassPerArea

    • Case 1 (iply = all)

      method has no effect because the total nsm is defined

    • Case 2 (iply != all)

      method ‘nplies’ smear the nsm based on \(n_{plies}\) (default)

      \(nsm_i = nsm / n_{plies}\) # smear based on nplies

    • Case 3 (iply != all)

      method ‘rho*t’ smear the nsm based on the mass distribution

      \[nsm_i = \rho_i t_i \frac{nsm}{\sum(\rho_i t_i)}\]
      \[nsm_i = \rho_i t_i \frac{nsm}{\frac{m}{A} - nsm}\]
    • Case 4 (iply != all)

      method ‘t’ smear the nsm based on the thickness distribution

      \[nsm_i = t_i \frac{nsm}{\sum(t_i)}\]

Note

final mass calculation will be done later

get_material_ids()[source]
get_nonstructural_mass()[source]

Gets the non-structural mass \(i^{th}\) ply

Parameters:self – the PCOMP/PCOMPG object
get_nplies()[source]

Gets the number of plies including the core.

if Lam=SYM:
  returns nPlies*2   (even)
else:
  returns nPlies
get_sout(iply)[source]

Gets the the flag identifying stress/strain outpur of the \(i^{th}\) ply (not the ID). default=’NO’.

Parameters:
  • self – the PCOMP/PCOMPG object
  • iply – the ply ID (starts from 0)
get_theta(iply)[source]

Gets the ply angle of the \(i^{th}\) ply (not the ID)

Parameters:
  • self – the PCOMP/PCOMPG object
  • iply – the ply ID (starts from 0)
get_thickness(iply=u'all')[source]

Gets the thickness of the \(i^{th}\) ply.

Parameters:
  • self – the PCOMP object
  • iply – the string ‘all’ (default) or the mass per area of the \(i^{th}\) ply
get_z_locations()[source]

Gets the z locations for the various plies.

Parameters:
  • self – the PCOMP/PCOMPG object
  • iply – the ply ID (starts from 0)

Assume there are 2 plies, each of 1.0 thick, starting from \(z=0\).

>>> pcomp.get_z_locations()
[0., 1., 2.]
is_symmetrical()[source]

Is the laminate symmetrical?

:returns; True or False

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

Bases: pyNastran.bdf.cards.properties.shell.CompositeShellProperty

PCOMP     701512   0.0+0 1.549-2                   0.0+0   0.0+0     SYM
          300704   3.7-2   0.0+0     YES  300704   3.7-2     45.     YES
          300704   3.7-2    -45.     YES  300704   3.7-2     90.     YES
          300705      .5   0.0+0     YES

Methods

TRef = None

Reference Temperature (default=0.0)

_field_map = {1: u'pid', 2: u'z0', 3: u'nsm', 4: u'sb', 5: u'ft', 6: u'TRef', 7: u'ge', 8: u'lam'}
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
ft = None

Failure Theory

[‘HILL’, ‘HOFF’, ‘TSAI’, ‘STRN’, None]
lam = None

symmetric flag - default = No Symmetry (NO)

nsm = None

Non-Structural Mass per unit Area

pid = None

Property ID

plies = None

list of plies

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

Bases: pyNastran.bdf.cards.properties.shell.CompositeShellProperty

Methods

GlobalPlyID(iply)[source]
_field_map = {1: u'pid', 2: u'z0', 3: u'nsm', 4: u'sb', 5: u'ft', 6: u'TRef', 7: u'ge', 8: u'lam'}
_update_field_helper(n, value)[source]
_verify(xref=False)[source]
raw_fields()[source]
repr_fields()[source]
type = u'PCOMPG'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.shell.PLPLANE(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.shell.ShellProperty

Methods

Cid()[source]
Mid()[source]
_field_map = {1: u'pid', 2: u'mid', 6: u'cid', 7: u'str'}
_verify(xref=False)[source]
cross_reference(model)[source]
pid = None

Property ID

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

Bases: pyNastran.bdf.cards.properties.shell.ShellProperty

Defines the properties of a shear panel (CSHEAR entry). PSHEAR PID MID T NSM F1 F2

Methods

MassPerArea()[source]

Calculates mass per area.

rac{m}{A} = nsm + ho t

Mid()[source]
Rho()[source]
_field_map = {1: u'pid', 2: u'mid', 3: u't', 4: u'nsm', 5: u'f1', 6: u'f2'}
_is_same_card(prop, debug=False)[source]
_verify(xref=False)[source]
cross_reference(model)[source]
mid = None

Material ID

pid = None

Property ID

raw_fields()[source]
type = u'PSHEAR'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.properties.shell.PSHELL(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.shell.ShellProperty

PSHELL PID MID1 T MID2 12I/T**3 MID3 TS/T NSM
  Z1 Z2 MID4          
PSHELL 41111 1 1.0000 1   1   0.02081

Methods

MassPerArea()[source]

Calculates mass per area.

rac{m}{A} = nsm + ho t

Mid()[source]
Mid1()[source]
Mid2()[source]
Mid3()[source]
Mid4()[source]
Nsm()[source]
Rho()[source]
Thickness()[source]
_field_map = {1: u'pid', 2: u'mid1', 3: u't', 4: u'mid2', 5: u'twelveIt3', 6: u'mid3', 7: u'tst', 8: u'nsm', 9: u'z1', 10: u'z2'}
_verify(xref=False)[source]
_write_calculix(marker=u'markerDummyProp', element_set=u'ELsetDummyProp')[source]
cross_reference(model)[source]
get_z_locations()[source]
materials()[source]
mid()[source]
mid2 = None

Material identification number for bending -1 for plane strin

nsm = None

Non-structural Mass

pid = None

Property ID

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

thickness

twelveIt3 = None

Scales the moment of interia of the element based on the moment of interia for a plate

..math:: I = frac{12I}{t^3} I_{plate}

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

The angle_rep is a direction angle, use either angle(a,b) or vecteur(x,y,z) coque_ncou is the number of gauss nodes along the thickness, for linear analysis one node is sufficient.

class pyNastran.bdf.cards.properties.shell.ShellProperty(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods

springs Module

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

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

  • PELAS
  • PELAST

All spring properties are SpringProperty and Property objects.

class pyNastran.bdf.cards.properties.springs.PELAS(card=None, nPELAS=0, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.properties.springs.SpringProperty

Specifies the stiffness, damping coefficient, and stress coefficient of a scalar elastic (spring) element (CELAS1 or CELAS3 entry).

Methods

K()[source]
_field_map = {1: u'pid', 2: u'k', 3: u'ge', 4: u's'}
_verify(xref=False)[source]
cross_reference(model)[source]
ge = None

Damping coefficient, . See Remarks 5. and 6. (Real) To obtain the damping coefficient GE, multiply the critical damping ratio c/c0 by 2.0.

k = None

Ki Elastic property value. (Real)

pid = None

Property identification number. (Integer > 0)

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

Stress coefficient. (Real)

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

Bases: pyNastran.bdf.cards.properties.springs.SpringProperty

Frequency Dependent Elastic Property Defines the frequency dependent properties for a PELAS Bulk Data entry.

The PELAST entry is ignored in all solution sequences except frequency response (108) or nonlinear analyses (129).

Methods

Pid()[source]
Tgeid()[source]

Returns the table ID for nondimensional structural damping coefficient vs. frequency (c/c0 vs freq)

Tkid()[source]

Returns the table ID for force per unit displacement vs frequency (k=F/d vs freq)

Tknid()[source]

Returns the table ID for nondimensional force vs. displacement

_field_map = {1: u'pid', 2: u'tkid', 3: u'tgeid', 4: u'tknid'}
cross_reference(model)[source]
pid = None

Property identification number. (Integer > 0)

tgeid = None

Identification number of a TABLEDi entry that defines the nondimensional structural damping coefficient vs. frequency relationship. (Integer > 0; Default = 0)

tkid = None

Identification number of a TABLEDi entry that defines the force per unit displacement vs. frequency relationship. (Integer > 0; Default = 0)

tknid = None

Identification number of a TABELDi entry that defines the nonlinear force vs. displacement relationship. (Integer > 0; Default = 0)

type = u'PELAST'
class pyNastran.bdf.cards.properties.springs.SpringProperty(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Property

Methods