Welcome to pyNastran’s documentation for v0.8.0!

The pyNastran software interfaces to Nastran’s complicated input and output files and provides a simplified interface to read/edit/write the various files. The software is compatible currently being used on Windows, Linux, and Mac.

The BDF reader/editor/writer supports 278 cards including coordinate systems. Card objects have methods to access data such as Mass, Area, etc. The BDF writer writes a small field formatted file, but makes full use of the 8-character Nastran field. The OpenMDAO BDF parametrization syntax is also supported.

The OP2 reader supports static/transient results, which unless you analyzing frequency response data should be good enough. It also supports F06 Writing for most of the objects. Results include: displacement, velocity, acceleration, temperature, eigenvectors, eigenvalues, SPC forces, MPC forces, grid point forces, load vectors, applied loads, strain energy, as well as stress and strain.

The Python OP4 reader/writer supports reading ASCII/binary sparse and dense matrices, and writing ASCII matrices..

A simple GUI has been developed that can view BDF models and display static/dynamic stress/strain/displacement/eignevectors (they must be real!) results from the OP2. Additionally, Cart3d, STL, and Panair are included.

Quick Start

Installation

pyNastran is an easy package to install once you have the required Python modules. It’s a pure Python package so you shouldn’t have too many problems.

Install Procedure - From a Release

Overview
  • Install Python
  • Install numpy, scipy, pandas, vtk, PyQt4 (GUI)
  • Install numpy, scipy, pandas (no GUI)
  • Download pyNastran from Github
  • Navigate to pyNastran directory on the command line
  • Install the package
Download Python
v0.8 is tested against:
  • Python 2.7.12 (Windows/Linux)
  • Python 3.3 (Linux)
  • Python 3.4 (Linux)
  • Python 3.5 (Windows/Linux)
Options include:

Make sure to get 64-bit Python, so memory usage becomes a non-issue. It shouldn’t matter too much as long as your packages versions (e.g. numpy/scipy) are consistent. With either distribution, both Python and all 3rd party packages will be installed. With base Python, you need to do that yourself.

Note that Python 2.7.8+ is recommended because:

  • pyNastran is mainly tested against 2.7
  • not everything in the OP2 has been switched over to unicode from bytes
  • the GUI saves your state
Additional packages

The following packages are required.

PyNastran’s package requirements are tested with packages no older than 1 year at the time of release. If you require an older version, try changing version requirements in setup.py. It shouldn’t be that different, but pyNastran does make use of numpy’s “new” axis option in numpy.linalg.norm and there was a major bug fix in Python 2.7.7, so buyer beware.

Regarding the GUI, Python 2.7 with vtk==5.10.1 will give you the best looking GUI. The GUI in Python 3 won’t save your settings.

Download pyNastran

If you want to most recent official release, either:

  1. Run
>>> pip install pyNastran
  1. Download the most recent release (required if you don’t want to install the GUI).

If you don’t want the gui, use setup_no_gui.py instead of setup.py.

Install pyNastran
  • Navigate to pyNastran directory on the command line. The setup.py file should exist in the current directory.

  • Either run...

    1. Able to edit the source code and have the changes propogate (recommended)
    >>> python setup.py develop
    
    1. Changes will not propogate
    >>> python setup.py install
    

If you don’t want the gui for Python 2.7, use setup_no_gui.py instead of setup.py.

Install Procedure - From Source

Overview
  • Install Python
  • Install numpy, scipy, pandas, vtk, PyQt4 (GUI)
  • Install numpy, scipy, pandas (no GUI)
  • Install Sphinx, GraphViz, alabaster (for documentation)
  • Install Git
  • Clone pyNastran-master from Github
  • Install pyNastran
Install extra Python packages

Install Sphinx and alabaster

pip install Sphinx
pip install alabaster
Install Git
  • Download & install Git (required)

  • Download a GUI for Git (optional)
Install pyNastran

There are two ways to install the dev version of pyNastran

  1. Download the most recent zip version
  2. Clone pyNastran (see below). Using Git allows you to easily update to the latest dev version when you want to as well as push any commits of your own.

If you don’t want the gui for Python 2.7, use setup_no_gui.py instead of setup.py.

Cloning pyNastran using TortoiseGit

Right-click in a folder and select Git Clone.

_images/clone.png

Enter the above information. If desired, click the branch box and and enter a branch name. Then click OK to clone the dev version.

Cloning pyNastran Using Command Line

Checkout/clone the dev code by typing (preferred):

>>> git clone https://github.com/SteveDoyle2/pynastran

To checkout a branch

>>> git.exe clone --branch v0.8 --progress -v "https://github.com/SteveDoyle2/pyNastran.git" "C:\\work\\pyNastran_v0.8"
Documentation

Two options for documentation exist.

Build Docs

Navigate to pyNastran/docs_sphinx directory on the command line.

>>> make html
Use Web docs

web docs

bdf

Introduction

This is meant as a tutorial on how to use the pyNastran pyNastran.bdf.bdf.BDF class

The head/tail/file_slice methods can be found at:

These examples can be found at:

Example 1: Read/Write

this example will demonstate:

  • reading the BDF
  • getting some basic information
  • writing the BDF

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'solid_bending')
>>> bdf_filename = os.path.join(test_path, 'solid_bending.bdf')

instantiate the model

>>> from pyNastran.bdf.bdf import BDF
>>> model = BDF()
>>> model.read_bdf(bdf_filename)

For unicode:

The standard encoding is utf-8, but most English decks should use latin1 and will fail with utf-8.

If you just have ascii, then you don’t need to worry about the encoding.

>>> model.read_bdf(bdf_filename, encoding='latin1')

print information about the model

>>> print(model.get_bdf_stats())
---BDF Statistics---
SOL 101

bdf.loads[1]
  FORCE:   23

bdf.loads[2]
  LOAD:    1

bdf.params
  PARAM    : 2

bdf.nodes
  GRID     : 72

bdf.elements
  CTETRA   : 186

bdf.properties
  PSOLID   : 1

bdf.materials
  MAT1     : 1

bdf.coords
  CORD2R   : ???

write the file

>>> bdf_filename_out = os.path.join(test_path, 'solid_bending_out.bdf')
>>> model.write_bdf(bdf_filename_out)

looking at the output

>>> print(file_slice(bdf_filename_out, 94, 100))
GRID          71         .500008 1.61116      3.
GRID          72         .500015 1.00001      3.
$ELEMENTS_WITH_PROPERTIES
PSOLID         1       1
CTETRA         1       1       8      13      67      33
CTETRA         2       1       8       7      62      59

write the file with large field format; double precision

>>> bdf_filename_out2 = os.path.join(test_path, 'solid_bending_out2.bdf')
>>> model.write_bdf(bdf_filename_out2, size=16, is_double=False)
>>> print(file_slice(bdf_filename_out2, 166, 175))
GRID*                 71                         .500008         1.61116
*                     3.
GRID*                 72                         .500015         1.00001
*                     3.
$ELEMENTS_WITH_PROPERTIES
PSOLID         1       1
CTETRA         1       1       8      13      67      33
CTETRA         2       1       8       7      62      59
CTETRA         3       1       8      45      58      66

write the file with large field format; double precision

>>> bdf_filename_out3 = os.path.join(test_path, 'solid_bending_out3.bdf')
>>> model.write_bdf(bdf_filename_out3, size=16, is_double=True)
>>> print(file_slice(bdf_filename_out3, 166, 175))
GRID*                 71                5.0000800000D-011.6111600000D+00
*       3.0000000000D+00
GRID*                 72                5.0001500000D-011.0000100000D+00
*       3.0000000000D+00
$ELEMENTS_WITH_PROPERTIES
PSOLID         1       1
CTETRA         1       1       8      13      67      33
CTETRA         2       1       8       7      62      59
CTETRA         3       1       8      45      58      66

Example 2: Printing Nodes

this example will demonstate:

  • writing cards

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'solid_bending')
>>> bdf_filename = os.path.join(test_path, 'solid_bending.bdf')

instantiate the model

>>> from pyNastran.bdf.bdf import BDF
>>> model = BDF()
>>> model.read_bdf(bdf_filename, xref=True)
>>> f = open('junk.out', 'w')
Method 1 - using objects

GRIDs

>>> for nid,node in sorted(model.nodes.items()):
>>>     f.write(node.write_card(size=8, is_double=False))

GRIDSET

>>> if model.gridSet:
>>>     f.write(model.gridSet.write_card(size=8, is_double=False))

SPOINTs

>>> if model.spoints:
>>>     f.write(model.spoints.write_card(size=8, is_double=False))

CORDx

>>> for cid,coord in sorted(model.coords.items()):
>>>     if cid != 0:  # if CID=0 is the global frame, skip it
>>>         f.write(coord)
Method 2 - using built-in methods
>>> model._write_nodes(f)
>>> model._write_coords(f)

Example 3: Printing Elements/Properties

Print the Element ID and associated Node and Property to an Output File

note this skips rigidElements

this example will demonstate:

  • using the BDF class to write cards/properties

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'solid_bending')
>>> bdf_filename = os.path.join(test_path, 'solid_bending.bdf')

instantiate the model

>>> from pyNastran.bdf.bdf import BDF
>>> model = BDF()
>>> model.read_bdf(bdf_filename, xref=True)
>>> f = open('junk.out', 'w')
Method 1 - using objects
>>> for eid, element in sorted(model.elements.items()):
>>>     f.write(element.write_card(size=8, is_double=False))
>>> for pid, prop in sorted(model.properties.items()):
>>>     f.write(prop.write_card(size=8, is_double=False))
Method 2 - using built-in method
>>> model._write_elements_properties(f)
Method 3 - using built-in methods
>>> model._write_elements(f)
>>> model._write_properties(f)

Example 4: Get Element ID & Type

Print the Element ID and its type(e.g. CQUAD4, CTRIA3, etc.) to a file

note this skips rigidElements

this example will demonstate:

  • accessing element type information

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'solid_bending')
>>> bdf_filename = os.path.join(test_path, 'solid_bending.bdf')

instantiate the model

>>> from pyNastran.bdf.bdf import BDF
>>> model = BDF()
>>> model.read_bdf(bdf_filename, xref=True)
>>> f = open('junk.out', 'w')
Method 1 - using objects
>>> for eid,element in sorted(model.elements.items()):
>>>     msg = 'eid=%s type=%s\n' %(eid, element.type)
>>> f.write(msg)

Example 5: Get Elements by Node ID

this example will demonstate:

  • getting the list of elements that share a certain node

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'solid_bending')
>>> bdf_filename = os.path.join(test_path, 'solid_bending.bdf')

instantiate the model

>>> from pyNastran.bdf.bdf import BDF
>>> model = BDF()
>>> model.read_bdf(bdf_filename, xref=True)
>>> f = open('junk.out', 'w')

given a Node, get the Elements Attached to that Node

assume node 55

doesnt support 0d/1d elements yet

>>> nid_to_eids_map = model.get_node_id_to_element_ids_map()
>>> eids = nid_to_eids_map[55]

convert to elements instead of element IDs

>>> elements = []
>>> for eid in eids:
>>>     elements.append(model.Element(eid))
>>> print("eids = %s" % eids)
>>> print("elements =\n %s" % elements)

Example 6: Get Elements by Property ID

this example will demonstate:

  • getting a list of elements that have a certain property

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'sol_101_elements')
>>> bdf_filename = os.path.join(test_path, 'static_solid_shell_bar.bdf')

instantiate the model

>>> from pyNastran.bdf.bdf import BDF
>>> model = BDF()
>>> model.read_bdf(bdf_filename, xref=True)
>>> f = open('junk.out', 'w')

Creating a List of Elements based on a Property ID

assume pid=1

>>> pid_to_eids_map = model.get_property_id_to_element_ids_map()
>>> eids4  = pid_to_eids_map[4] # PSHELL
>>> print("eids4 = %s" % eids4)
eids4 = [6, 7, 8, 9, 10, 11]

convert to elements instead of element IDs

>>> elements4 = []
>>> for eid in eids4:
>>>     elements4.append(model.Element(eid))

just to verify

>>> elem = model.elements[eids4[0]]
>>> print(elem.pid)
PSHELL         4       1     .25       1               1

Example 7: Get Elements by Material ID

this example will demonstate:

  • getting a list of elements that have a certain material

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'sol_101_elements')
>>> bdf_filename = os.path.join(test_path, 'static_solid_shell_bar.bdf')

instantiate the model

>>> from pyNastran.bdf.bdf import BDF
>>> model = BDF()
>>> model.read_bdf(bdf_filename, xref=True)
>>> f = open('junk.out', 'w')

assume you want the eids for material 10

>>> pid_to_eids_map = model.get_property_id_to_element_ids_map()
>>> mid_to_pids_map = model.get_material_id_to_property_ids_map()
>>> pids1 = mid_to_pids_map[1]
>>> print('pids1 = %s' % pids1)
pids1 = [1, 2, 3, 4, 5]
>>> eids = []
>>> for pid in pids1:
>>>     eids += pid_to_eids_map[pid]

convert to elements instead of element IDs

>>> elements = []
>>> for eid in eids:
>>>     element = model.Element(eid)
>>>     elements.append(element)
>>>     print(str(element).rstrip())

CBAR          13       1      15      19      0.      1.      0.
$ Direct Text Input for Bulk Data
$ Pset: "shell" will be imported as: "pshell.1"
CHEXA          1       2       2       3       4       1       8       5
               6       7
CPENTA         2       2       6       8       5      10      11       9
CPENTA         3       2       6       7       8      10      12      11
CTETRA         4       2      10      11       9      13
CTETRA         5       2      10      12      11      13
CROD          14       3      16      20
CROD          15       3      17      21
CQUAD4         6       4       4       1      14      15
CQUAD4         7       4       3       2      17      16
CTRIA3         8       4       4       3      16
CTRIA3         9       4      16      15       4
CTRIA3        10       4       1       2      17
CTRIA3        11       4      17      14       1
$
CBEAM         12       5      14      18      0.      1.      0.     GGG

BDF Demo

The iPython notebook for this demo can be found in: - docs:raw-latex:quick_start:raw-latex:demo:raw-latex:`\bdf`_demo.ipynb - https://github.com/SteveDoyle2/pyNastran/tree/master/docs/quick_start/demo/bdf_demo.ipynb

Import pyNastran

import os
import pyNastran
print (pyNastran.__file__)
print (pyNastran.__version__)
pkg_path = pyNastran.__path__[0]

from pyNastran.bdf.bdf import BDF, read_bdf
from pyNastran.utils import object_attributes, object_methods

print("pkg_path = %s" % pkg_path)
f:workpynastranpynastranmaster3pyNastran__init__.pyc
0.8.0+dev.e79582b
pkg_path = f:workpynastranpynastranmaster3pyNastran

Let’s load the iSat model into the pyNastranGUI

it’s a .dat file, so instead of:

>>> pyNastranGUI -i bdf_filename

we need to include the format:

>>> pyNastranGUI -f nastran -i bdf_filename

Alternatively, we could load the model and the results, but in this demo we’re just showing off the geometry. To do that instead:

>>> pyNastranGUI -f nastran -i bdf_filename -o op2_filename
bdf_filename = os.path.abspath(os.path.join(pkg_path, '..', 'models', 'iSat', 'ISat_Launch_Sm_Rgd.dat'))
print(bdf_filename)

# look at the model
!pyNastranGUI -f nastran -i {bdf_filename} > junk.out
f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread

Loading a BDF

There are two ways to load a BDF; the long way or the short way.

The short way instantiates the BDF class and the short way uses the read_bdf function. As this demo was written for the Jupyter Notebook, we’ll use read_bdf and then mention the other method. The class-based method allows finer control over things like: - what cards should be loaded - OpenMDAO dynamic syntax support

The Class-based method
print(bdf_filename)

# create the BDF object
bdf = BDF()

# read the file from the GUI
# don't cross-reference
bdf.read_bdf(bdf_filename, xref=False)
f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat
DEBUG:     fname=bdf.py                    lineNo=1008   ---starting BDF.read_bdf of f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat---
DEBUG:     fname=bdf.py                    lineNo=2999   opening 'f:\work\pynastran\pynastran\master3\models\iSat\ISat_Launch_Sm_Rgd.dat'
DEBUG:     fname=bdf.py                    lineNo=1047   ---finished BDF.read_bdf of f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat---
The function-based method
bdf = read_bdf(bdf_filename, xref=False)
DEBUG:     fname=bdf.py                    lineNo=1008   ---starting BDF.read_bdf of f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat---
DEBUG:     fname=bdf.py                    lineNo=2999   opening 'f:\work\pynastran\pynastran\master3\models\iSat\ISat_Launch_Sm_Rgd.dat'
DEBUG:     fname=bdf.py                    lineNo=1047   ---finished BDF.read_bdf of f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat---

For simplicity of using the demo, we’ll again use the read_bdf method

#bdf_filename = r'D:\work\pynastran_0.8.0_py27\models\iSat\ISat_Launch_Sm_Rgd.dat'
bdf_filename = os.path.abspath(os.path.join(pkg_path, '..', 'models', 'iSat', 'ISat_Launch_Sm_Rgd.dat'))

# read the file as a path
bdf_xref = read_bdf(bdf_filename, xref=True)
DEBUG:     fname=bdf.py                    lineNo=1008   ---starting BDF.read_bdf of f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat---
DEBUG:     fname=bdf.py                    lineNo=2999   opening 'f:\work\pynastran\pynastran\master3\models\iSat\ISat_Launch_Sm_Rgd.dat'
DEBUG:     fname=cross_reference.py        lineNo=379    Cross Referencing...
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=1 midsurface: z1=0.400000006 z2=-0.400000006 t=0.035999998 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=2 midsurface: z1=0.400000006 z2=-0.400000006 t=0.054000005 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=3 midsurface: z1=0.400000006 z2=-0.400000006 t=0.017999999 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=7 midsurface: z1=0.418000013 z2=-0.418000013 t=0.035999998 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=34 midsurface: z1=0.194000006 z2=-0.194000006 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=37 midsurface: z1=0.308999985 z2=-0.308999985 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=38 midsurface: z1=0.284000009 z2=-0.284000009 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=46 midsurface: z1=0.199000001 z2=-0.199000001 t=0.0186 not in range of -1.5t < zi < 1.5t
DEBUG:     fname=bdf.py                    lineNo=1047   ---finished BDF.read_bdf of f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat---

Interrogating the BDF object

IDE’s like WingIDE, PyCharm, Spyder and “Python Tools for Visual Studio” make it very easy to program with their object introspection ability. Unfortunately, because pyNastran has so many functions, it can be difficult to learn the code.

Some handy object introspection methods were created that will work on all pyNastran objects and even non-pyNastran objects. By convention, private data members/functions start with an underscore _, and public ones do not.

We can use the generic object attributes/methods functions

print(object_attributes(bdf))
print(object_methods(bdf))
['MATS1', 'MATS3', 'MATS8', 'MATT1', 'MATT2', 'MATT3', 'MATT4', 'MATT5', 'MATT8', 'MATT9', 'active_filename', 'active_filenames', 'aecomps', 'aefacts', 'aelinks', 'aelists', 'aeparams', 'aero', 'aeros', 'aestats', 'aesurfs', 'asets', 'bcrparas', 'bcs', 'bctadds', 'bctparas', 'bctsets', 'bdf_filename', 'bsets', 'bsurf', 'bsurfs', 'cMethods', 'caero_ids', 'caeros', 'card_count', 'cards_to_read', 'case_control_deck', 'case_control_lines', 'convection_properties', 'coord_ids', 'coords', 'creep_materials', 'csets', 'csschds', 'dareas', 'dconadds', 'dconstrs', 'ddvals', 'debug', 'delays', 'dequations', 'desvars', 'divergs', 'dlinks', 'dload_entries', 'dloads', 'dmigs', 'dmijis', 'dmijs', 'dmiks', 'dmis', 'doptprm', 'dphases', 'dresps', 'dscreen', 'dtable', 'dumplines', 'dvcrels', 'dvmrels', 'dvprels', 'echo', 'element_ids', 'elements', 'epoints', 'executive_control_lines', 'flfacts', 'flutters', 'frequencies', 'gridSet', 'gusts', 'hyperelastic_materials', 'iSolLine', 'include_dir', 'is_long_ids', 'is_msc', 'is_nx', 'loads', 'log', 'masses', 'material_ids', 'materials', 'methods', 'mkaeros', 'monitor_points', 'mpcadds', 'mpcs', 'nastran_format', 'ncaeros', 'ncoords', 'nelements', 'nlparms', 'nlpcis', 'nmaterials', 'nnodes', 'node_ids', 'nodes', 'nproperties', 'paeros', 'params', 'pbusht', 'pdampt', 'pelast', 'phbdys', 'plotels', 'point_ids', 'points', 'properties', 'properties_mass', 'property_ids', 'punch', 'qsets', 'random_tables', 'read_includes', 'reject_cards', 'reject_count', 'reject_lines', 'rejects', 'rigid_elements', 'rsolmap_toStr', 'se_bsets', 'se_csets', 'se_qsets', 'se_sets', 'se_suport', 'se_usets', 'sets', 'sol', 'solMethod', 'spcadds', 'spcs', 'special_cards', 'splines', 'spoints', 'subcases', 'suport', 'suport1', 'tables', 'tables_sdamping', 'tempds', 'thermal_materials', 'tics', 'transfer_functions', 'trims', 'tstepnls', 'tsteps', 'units', 'usets', 'values_to_skip']
['AEFact', 'AELIST', 'AELink', 'AEList', 'AEParam', 'AEStat', 'Acsid', 'Aero', 'Aeros', 'CAero', 'CMethod', 'Coord', 'DConstr', 'DDVal', 'DELAY', 'DEQATN', 'DLoad', 'DMIG', 'DPHASE', 'DResp', 'DVcrel', 'DVmrel', 'DVprel', 'Desvar', 'Element', 'Elements', 'FLFACT', 'Flfact', 'Flutter', 'Gust', 'HyperelasticMaterial', 'Load', 'MPC', 'Mass', 'Material', 'Materials', 'Method', 'NLParm', 'Node', 'Nodes', 'PAero', 'Phbdy', 'Properties', 'Property', 'PropertyMass', 'RandomTable', 'RigidElement', 'SET1', 'SPC', 'Set', 'SetSuper', 'Spline', 'StructuralMaterial', 'Table', 'ThermalMaterial', 'add_AECOMP', 'add_AEFACT', 'add_AELINK', 'add_AELIST', 'add_AEPARM', 'add_AERO', 'add_AEROS', 'add_AESTAT', 'add_AESURF', 'add_ASET', 'add_BCRPARA', 'add_BCTADD', 'add_BCTPARA', 'add_BCTSET', 'add_BSET', 'add_BSURF', 'add_BSURFS', 'add_CAERO', 'add_CSET', 'add_CSSCHD', 'add_DAREA', 'add_DCONSTR', 'add_DDVAL', 'add_DELAY', 'add_DEQATN', 'add_DESVAR', 'add_DIVERG', 'add_DLINK', 'add_DMI', 'add_DMIG', 'add_DMIJ', 'add_DMIJI', 'add_DMIK', 'add_DPHASE', 'add_DRESP', 'add_DTABLE', 'add_DVCREL', 'add_DVMREL', 'add_DVPREL', 'add_FLFACT', 'add_FLUTTER', 'add_FREQ', 'add_LSEQ', 'add_MKAERO', 'add_MONPNT', 'add_NLPARM', 'add_NLPCI', 'add_PAERO', 'add_PARAM', 'add_PBUSHT', 'add_PDAMPT', 'add_PELAST', 'add_PHBDY', 'add_QSET', 'add_SEBSET', 'add_SECSET', 'add_SEQSET', 'add_SESET', 'add_SET', 'add_SEUSET', 'add_SPLINE', 'add_TEMPD', 'add_TF', 'add_TRIM', 'add_TSTEP', 'add_TSTEPNL', 'add_USET', 'add_card', 'add_card_class', 'add_card_fields', 'add_card_lines', 'add_cmethod', 'add_constraint', 'add_constraint_MPC', 'add_constraint_SPC', 'add_convection_property', 'add_coord', 'add_creep_material', 'add_damper', 'add_dload', 'add_dload_entry', 'add_element', 'add_epoint', 'add_gust', 'add_hyperelastic_material', 'add_load', 'add_mass', 'add_material_dependence', 'add_method', 'add_node', 'add_plotel', 'add_property', 'add_property_mass', 'add_random_table', 'add_rigid_element', 'add_sesuport', 'add_spoint', 'add_structural_material', 'add_suport', 'add_suport1', 'add_table', 'add_table_sdamping', 'add_thermal_BC', 'add_thermal_element', 'add_thermal_load', 'add_thermal_material', 'auto_reject_bdf', 'create_card_object', 'create_card_object_fields', 'create_card_object_list', 'cross_reference', 'deprecated', 'disable_cards', 'echo_bdf', 'fill_dmigs', 'geom_check', 'getElementIDsWithPID', 'getNodes', 'get_bdf_cards', 'get_bdf_cards_dict', 'get_bdf_stats', 'get_card_ids_by_card_types', 'get_cards_by_card_types', 'get_dependent_nid_to_components', 'get_displacement_index_transforms', 'get_dload_entries', 'get_element_ids_dict_with_pids', 'get_element_ids_list_with_pids', 'get_encoding', 'get_material_id_to_property_ids_map', 'get_material_ids', 'get_mpcs', 'get_node_id_to_element_ids_map', 'get_node_id_to_elements_map', 'get_node_ids_with_element', 'get_node_ids_with_elements', 'get_property_id_to_element_ids_map', 'get_reduced_mpcs', 'get_reduced_spcs', 'get_rigid_elements_with_node_ids', 'get_solid_skin_faces', 'get_spcs', 'get_structural_material_ids', 'get_thermal_material_ids', 'get_xyz_in_coord', 'is_reject', 'load', 'mass_properties', 'object_attributes', 'object_methods', 'pop_parse_errors', 'pop_xref_errors', 'process_card', 'read_bdf', 'remove_unassociated_properties', 'replace_cards', 'resolve_grids', 'safe_cross_reference', 'save', 'set_as_msc', 'set_as_nx', 'set_dynamic_syntax', 'set_error_storage', 'skin_solid_elements', 'sum_forces_moments', 'sum_forces_moments_elements', 'uncross_reference', 'unresolve_grids', 'update_solution', 'validate', 'write_bdf', 'write_bdf_symmetric', 'write_caero_model', 'write_skin_solid_faces']
print("attributes = [%s]\n" % ', '.join(bdf.object_attributes()))
print("methods = [%s]\n" % ', '.join(bdf.object_methods()))
attributes = [MATS1, MATS3, MATS8, MATT1, MATT2, MATT3, MATT4, MATT5, MATT8, MATT9, active_filename, active_filenames, aecomps, aefacts, aelinks, aelists, aeparams, aero, aeros, aestats, aesurfs, asets, bcrparas, bcs, bctadds, bctparas, bctsets, bdf_filename, bsets, bsurf, bsurfs, cMethods, caeros, card_count, cards_to_read, case_control_deck, case_control_lines, convection_properties, coords, creep_materials, csets, csschds, dareas, dconadds, dconstrs, ddvals, debug, delays, dequations, desvars, divergs, dlinks, dload_entries, dloads, dmigs, dmijis, dmijs, dmiks, dmis, doptprm, dphases, dresps, dscreen, dtable, dumplines, dvcrels, dvmrels, dvprels, echo, elements, epoints, executive_control_lines, flfacts, flutters, frequencies, gridSet, gusts, hyperelastic_materials, iSolLine, include_dir, is_msc, is_nx, loads, masses, materials, methods, mkaeros, monitor_points, mpcadds, mpcs, nastran_format, nlparms, nlpcis, nodes, paeros, params, pbusht, pdampt, pelast, phbdys, plotels, points, properties, properties_mass, punch, qsets, random_tables, read_includes, reject_cards, reject_count, reject_lines, rejects, rigid_elements, rsolmap_toStr, se_bsets, se_csets, se_qsets, se_sets, se_suport, se_usets, sets, sol, solMethod, spcadds, spcs, special_cards, splines, spoints, suport, suport1, tables, tables_sdamping, tempds, thermal_materials, tics, transfer_functions, trims, tstepnls, tsteps, units, usets, values_to_skip]

methods = [AEFact, AELIST, AELink, AEList, AEParam, AEStat, Acsid, Aero, Aeros, CAero, CMethod, Coord, DConstr, DDVal, DELAY, DEQATN, DLoad, DMIG, DPHASE, DResp, DVcrel, DVmrel, DVprel, Desvar, Element, Elements, FLFACT, Flfact, Flutter, Gust, HyperelasticMaterial, Load, MPC, Mass, Material, Materials, Method, NLParm, Node, Nodes, PAero, Phbdy, Properties, Property, PropertyMass, RandomTable, RigidElement, SET1, SPC, Set, SetSuper, Spline, StructuralMaterial, Table, ThermalMaterial, add_AECOMP, add_AEFACT, add_AELINK, add_AELIST, add_AEPARM, add_AERO, add_AEROS, add_AESTAT, add_AESURF, add_ASET, add_BCRPARA, add_BCTADD, add_BCTPARA, add_BCTSET, add_BSET, add_BSURF, add_BSURFS, add_CAERO, add_CSET, add_CSSCHD, add_DAREA, add_DCONSTR, add_DDVAL, add_DELAY, add_DEQATN, add_DESVAR, add_DIVERG, add_DLINK, add_DMI, add_DMIG, add_DMIJ, add_DMIJI, add_DMIK, add_DPHASE, add_DRESP, add_DTABLE, add_DVCREL, add_DVMREL, add_DVPREL, add_FLFACT, add_FLUTTER, add_FREQ, add_LSEQ, add_MKAERO, add_MONPNT, add_NLPARM, add_NLPCI, add_PAERO, add_PARAM, add_PBUSHT, add_PDAMPT, add_PELAST, add_PHBDY, add_QSET, add_SEBSET, add_SECSET, add_SEQSET, add_SESET, add_SET, add_SEUSET, add_SPLINE, add_TEMPD, add_TF, add_TRIM, add_TSTEP, add_TSTEPNL, add_USET, add_card, add_card_class, add_card_fields, add_card_lines, add_cmethod, add_constraint, add_constraint_MPC, add_constraint_SPC, add_convection_property, add_coord, add_creep_material, add_damper, add_dload, add_dload_entry, add_element, add_epoint, add_gust, add_hyperelastic_material, add_load, add_mass, add_material_dependence, add_method, add_node, add_plotel, add_property, add_property_mass, add_random_table, add_rigid_element, add_sesuport, add_spoint, add_structural_material, add_suport, add_suport1, add_table, add_table_sdamping, add_thermal_BC, add_thermal_element, add_thermal_load, add_thermal_material, auto_reject_bdf, create_card_object, create_card_object_fields, create_card_object_list, cross_reference, deprecated, disable_cards, echo_bdf, fill_dmigs, geom_check, getElementIDsWithPID, getNodes, get_bdf_cards, get_bdf_cards_dict, get_bdf_stats, get_card_ids_by_card_types, get_cards_by_card_types, get_dependent_nid_to_components, get_displacement_index_transforms, get_dload_entries, get_element_ids_dict_with_pids, get_element_ids_list_with_pids, get_encoding, get_material_id_to_property_ids_map, get_material_ids, get_mpcs, get_node_id_to_element_ids_map, get_node_id_to_elements_map, get_node_ids_with_element, get_node_ids_with_elements, get_property_id_to_element_ids_map, get_reduced_mpcs, get_reduced_spcs, get_rigid_elements_with_node_ids, get_solid_skin_faces, get_spcs, get_structural_material_ids, get_thermal_material_ids, get_xyz_in_coord, is_reject, load, mass_properties, pop_parse_errors, pop_xref_errors, process_card, read_bdf, remove_unassociated_properties, replace_cards, resolve_grids, safe_cross_reference, save, set_as_msc, set_as_nx, set_dynamic_syntax, set_error_storage, skin_solid_elements, sum_forces_moments, sum_forces_moments_elements, uncross_reference, unresolve_grids, update_solution, validate, write_bdf, write_bdf_symmetric, write_caero_model, write_skin_solid_faces]
print(bdf.get_bdf_stats())
print("card_count = %s\n" % bdf.card_count)
print("reject_count = %s" % bdf.reject_count)
---BDF Statistics---
SOL 103

bdf.params
  PARAM    : 8

bdf.nodes
  GRID     : 5380

bdf.elements
  CBAR     : 827
  CBUSH    : 104
  CHEXA    : 25
  CQUAD4   : 4580
  CTRIA3   : 32

bdf.rigid_elements
  RBE2     : 44

bdf.properties
  PBAR     : 1
  PBARL    : 18
  PBUSH    : 2
  PSHELL   : 8
  PSOLID   : 4

bdf.materials
  MAT1     : 14
  MAT8     : 8

bdf.coords
  CORD2R   : 75

bdf.methods
  EIGRL    : 1


card_count = {u'ENDDATA': 1, u'CQUAD4': 4580, u'PSOLID': 4, u'PARAM': 8, u'PBUSH': 2, u'CBUSH': 104, u'PBARL': 18, u'MAT1': 14, u'CTRIA3': 32, u'CORD2R': 75, u'PSHELL': 8, u'USET': 1, u'GRID': 5380, u'EIGRL': 1, u'CBAR': 827, u'PBAR': 1, u'CHEXA': 25, u'SPC': 1, u'CONM2': 15, u'RBE2': 44, u'MAT8': 8}

reject_count = {}

Cross-referencing

Cross-referencing a BDF allows improved usability of the BDF class. It comes with some negative side effects, but in general is a very useful thing. It dramatically minimizes the amount of code you need to write, greatly simplifies future operations, and is highly recommended.

The major downside is it prevents decks from being saved to object files for faster loading.

Without Cross-Referencing (xref=False)

Here the raw values of the the data objects are returned to us

cquad = bdf.elements[1]
print(cquad)
nid1 = cquad.nodes[0]
print("nid1 = %s" % nid1)
n1 = bdf.nodes[nid1]
cd4 = n1.cd
c4 = bdf.coords[cd4]
print("i xref=False %s" % str(c4.i))
#print object_attributes(c4)
$*
$*  ELEMENT CARDS
$*
CQUAD4         1       1       1       2       4       3

nid1 = 1
i xref=False [ 1.  0.  0.]
Cross-Referenced (xref=True)

Here we can trace the referenced objects very easily

print("i xref=True %s" % bdf_xref.elements[1].nodes[0].cd.i)
i xref=True [ 1.  0.  0.]

So how is this done?

cquad.nodes[0] = n1
print(cquad.nodes[0])
$*
$*  GRID CARDS
$*
GRID           1       4    -4.5    -7.5    -14.       4
Let’s show off the GRID card
# some Grid methods
n1 = bdf_xref.nodes[1]
print(n1)

# the comment
c1 = bdf_xref.nodes[1].comment
c2 = bdf_xref.nodes[2].comment
print("c1=%r" % c1)
print("c2=%r" % c2)


# get the position of a node
# in the local cooordinate system
print("xyz = %s" % n1.xyz)

# in the global frame
print("position = %s" % n1.get_position())

# in an arbitrary frame
print("wrt5 = %s" % n1.get_position_wrt(bdf, 5))
print("wrt4 = %s" % n1.get_position_wrt(bdf, 4))
$*
$*  GRID CARDS
$*
GRID           1       4    -4.5    -7.5    -14.       4

c1=u'$*n$*  GRID CARDSn$*n'
c2=u''
xyz = [ -4.5  -7.5 -14. ]
position = [ -4.5  -7.5 -14. ]
wrt5 = [  2.12132034  14.         -26.59188309]
wrt4 = [ -4.5  -7.5 -14. ]

Now let’s modify the GRID card and write it out

n1 = bdf_xref.nodes[1]
n1.xyz[1] = -7.5
print("repr  = %s" % n1.repr_fields())
print("raw   = %s" % n1.repr_fields())

#n1.xyz[1] = 100000000000.
print("repr2 = %s" % n1.repr_fields())
print(n1)
print(n1.write_card(size=8))
print(n1.write_card(size=16, is_double=False))
print(n1.write_card(size=16, is_double=True))
repr  = [u'GRID', 1, 4, -4.5, -7.5, -14.0, 4, u'', None]
raw   = [u'GRID', 1, 4, -4.5, -7.5, -14.0, 4, u'', None]
repr2 = [u'GRID', 1, 4, -4.5, -7.5, -14.0, 4, u'', None]
$*
$*  GRID CARDS
$*
GRID           1       4    -4.5    -7.5    -14.       4

$*
$*  GRID CARDS
$*
GRID           1       4    -4.5    -7.5    -14.       4

$*
$*  GRID CARDS
$*
GRID*                  1               4            -4.5            -7.5
*                   -14.               4

$*
$*  GRID CARDS
$*
GRID*                  1               4-4.500000000D+00-7.500000000D+00
*       -1.400000000D+01               4

Calculating the mass of the structure

You can also calculate the mass of individual groups

mass, cg, I = bdf_xref.mass_properties()
print("mass = %s" % mass)
DEBUG:     fname=bdf_methods.py            lineNo=524    Mass/MOI sym_axis = []
mass = 1.70202557344
Examples of xref on elements
eid100 = bdf_xref.elements[100]
print(eid100)
print("nodes = %s" % eid100.nodes)
print("--node0--\n%s" % eid100.nodes[0])
print("--cd--\n%s" % eid100.nodes[0].cd)
print("cd.cid = %s" % eid100.nodes[0].cd.cid)

print("area = %s" % eid100.Area())
print("mass = %s" % eid100.Mass())
print("--pid--\n%s" % eid100.pid)
print("pid.pid = %s" % eid100.pid.pid)
print("pid.Pid() = %s" % eid100.Pid())

print(eid100.pid.mid1)
print("type = %s" % eid100.pid.mid1.type)
print("nu12 = %s" % eid100.pid.mid1.nu12)
print("mass = %s" % eid100.Mass())
CQUAD4       100       1     149     152     161     160

nodes = [GRID         149       4      3.     7.5   -16.5       4
, GRID         152       4     1.5     7.5   -16.5       4
, GRID         161       4     1.5     7.5    -14.       4
, GRID         160       4      3.     7.5    -14.       4
]
--node0--
GRID         149       4      3.     7.5   -16.5       4

--cd--
CORD2R         4              0.      0.      0.      0.      0.      1.
              1.      0.      0.

cd.cid = 4
area = 3.75
mass = 3.6428803074e-05
--pid--
$*
$*  PROPERTY CARDS
$*
$*
$*  I-DEAS property: 1  name: BUS PNL HCMB 2PLY
PSHELL         1       6    .036       61415.815       7         3.551-6
              .4     -.4

pid.pid = 1
pid.Pid() = 1
$*
$*  I-DEAS Material: 6  name: BUS_CFRP_PW_ORTHO
$* M46J PW ETW
MAT8           6   1.7+7   1.7+7     .98 340000. 180000. 180000..0001712
                           71.33

type = MAT8
nu12 = 0.98
mass = 3.6428803074e-05

Write the modified deck

Let’s first switch to the desktop to make the file easy to find

import getpass
name = getpass.getuser()
os.chdir(os.path.join(r'C:\Users', name, 'Desktop'))
pwd
u'C:\Users\Steve\Desktop'

There are two ways to write a deck - interspersed : alternate properties and elements (similar to how Patran writes decks) - not-interspersed (default) : much faster

We can also use 8 or 16 character field width as well as double precision.

Note that double precision only works for certain cards (e.g. GRID, COORD, DMIG) and not much else.

bdf_xref.write_bdf('fem.bdf', interspersed=False, size=8, is_double=False)
!tail -n 5 "fem.bdf"

bdf_xref.write_bdf('fem.bdf', interspersed=True, size=16, is_double=False)
!tail "fem.bdf"

bdf_xref.write_bdf('fem.bdf', interspersed=True, size=16, is_double=True)
!tail "fem.bdf"
CORD2R        75        1.355-13-2.19-15    -40.1.355-13-2.19-15      0.
             40.-2.19-15    -40.
CORD2R        76        1.355-13-2.19-15    -40.1.355-13-2.19-15      0.
             40.-2.19-15    -40.
ENDDATA
*
CORD2R*               75                 1.3549966049-13-2.1854783949-15
*                   -40. 1.3549966049-13-2.1854783949-15              0.
*                    40.-2.1854783949-15            -40.
*
CORD2R*               76                 1.3549966049-13-2.1854783949-15
*                   -40. 1.3549966049-13-2.1854783949-15              0.
*                    40.-2.1854783949-15            -40.
*
ENDDATA
*
CORD2R*               75                1.3549966049D-13-2.185478395D-15
*       -4.000000000D+011.3549966049D-13-2.185478395D-150.0000000000D+00
*       4.0000000000D+01-2.185478395D-15-4.000000000D+01
*
CORD2R*               76                1.3549966049D-13-2.185478395D-15
*       -4.000000000D+011.3549966049D-13-2.185478395D-150.0000000000D+00
*       4.0000000000D+01-2.185478395D-15-4.000000000D+01
*
ENDDATA
bdf_filename
'f:\work\pynastran\pynastran\master3\models\iSat\ISat_Launch_Sm_Rgd.dat'

pyNastranGUI

print(bdf_filename)
%echo {bdf_filename}
#!pyNastranGUI -f nastran -i {bdf_filename}

solid_bending_bdf = os.path.abspath(os.path.join(pkg_path, '..', 'models', 'solid_bending', 'solid_bending.bdf'))
solid_bending_op2 = os.path.abspath(os.path.join(pkg_path, '..', 'models', 'solid_bending', 'solid_bending.op2'))

!pyNastranGUI -f nastran -i {solid_bending_bdf} -o {solid_bending_op2}  > junk.out
print("done")
f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat
f:workpynastranpynastranmaster3modelsiSatISat_Launch_Sm_Rgd.dat
done
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread

We can also script the GUI!

with open('script.py', 'w') as f:
    f.write('self.on_wireframe()\n')
    picture_filename = os.path.join(os.getcwd(), 'wireframe_solid_bending.png')
    f.write("self.on_take_screenshot(%r)\n" % picture_filename)
    f.write('sys.exit()')

!pwd
!pyNastranGUI -f nastran -i {solid_bending_bdf} -o {solid_bending_op2} --postscript script.py > junk.out

# display in a popup
!wireframe_solid_bending.png

from IPython.display import Image
from IPython.display import display
assert os.path.exists('wireframe_solid_bending.png')

# display in iPython
i = Image(filename='wireframe_solid_bending.png')
display(i)
print("the picture is visible")
/cygdrive/c/Users/Steve/Desktop
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread
QObject::startTimer: QTimer can only be used with threads started with QThread
quick_start/bdf_demo_files%5Cbdf_demo_41_2.png
the picture is visible

test_bdf

test_bdf is a very useful tool to check if pyNastran will read/write a BDF. Additionally, test_bdf is very useful when debugging bad decks.

It’ll crash when INCLUDE files aren’t found.

It’ll crash if you have invalid types. It’ll tell you the card, the field name and number as well.

It’ll crash if you have missing nodes, coordinate systems, elements, properties, materials, loads, optimization cards, etc.

It’ll crash if your TRIM card that’s referenced in your Case Control is over/underdefined (by looking at the data on your AESTAT, AESURF, AELINK, AEPARM, SUPORT1, and SUPORT cards), but not if it’s unused.

Afterwards, you can then use a program like Beyond Compare to see the differences. Most of the changes you’ll see are related to positioning of cards, precision of the data fields, and values that were the default value are left blank in order to simplify the file.

An ENDDATA card is highly recommended as it’s an easy way to tell if all the lines were parsed properly.

Details

After installing pyNastran, open a command prompt in a folder you have a BDF you want to test and type:

>>> test_bdf fem.bdf > test.out

The file test.out will be created...

INFO:    fname=bdf.pyc                lineNo=371    ---starting BDF.read of fem.bdf---
INFO:    fname=bdf.pyc                lineNo=589    reject_card_name = |TEMPD|
INFO:    fname=bdf.pyc                lineNo=589    reject_card_name = |CTRIA3|
INFO:    fname=bdf.pyc                lineNo=384    ---finished BDF.read of fem.bdf---
INFO:    fname=write_mesh.pyc         lineNo=68     ***writing fem02.bdf_out


INFO:    fname=bdf.pyc                lineNo=371    ---starting BDF.read of fem.bdf_out---
INFO:    fname=bdf.pyc                lineNo=589    reject_card_name = |TEMPD|
INFO:    fname=bdf.pyc                lineNo=384    ---finished BDF.read of fem.bdf_out---
INFO:    fname=write_mesh.pyc         lineNo=68     ***writing fem02.bdf_out2


diff_keys1=[] diff_keys2=[]
   key=CHEXA   value1=52   value2=52
   key=CPENTA  value1=52   value2=52
   key=ENDDATA value1=1    value2=1
   key=GRID    value1=135  value2=135
  *key=INCLUDE value1=1    value2=0
   key=MAT4    value1=1    value2=1
   key=NLPARM  value1=1    value2=1
   key=PARAM   value1=2    value2=2
   key=PSOLID  value1=1    value2=1
   key=SPC     value1=28   value2=28
   key=TEMP    value1=18   value2=18
  -key=TEMPD   value1=1    value2=1
  *key=CTRIA3  value1=1    value2=0
----------------------------------------------------------------
It’s broken into 3 sections:
  • Section 1 - tells you what file was read and what cards were rejected

  • Section 2 - uses the output of Section 1 to test again (helps to

    verifies fields weren’t shifted; not a perfect test)

  • Section 3 - prints out the cards that were found in the BDF along

    with the number of each.

  • A star (e.g. *key=CTRIA3) indicates a cards was not written out and you should be careful when using the code on the example. The CTRIA3 card was lost. Most likely the CTRIA3 shares an elementID with another element. Note that INCLUDE files always have stars by them.

  • A dash indicates the cards was rejected and will be echoed to the output BDF. Looking in Sections 1 & 2, tells us that the TEMPD card was ignored in both cases.

You can also test the code without using cross-referencing

>>> test_bdf -x fem.bdf > test.out

The full calling signature of test_bdf is shown below.

Duplicated Cards

Sometimes this will happen

diffKeys1=[] diffKeys2=[]
  *key=CROD    value1=2   value2=4

If you look at the definition of the card, you’ll see you can define 2 instances of them on a single Nastran card. pyNastran rewrites them in long form (unless specified).

The list of duplicate defined cards include (not a full list):
  • CORD1R
  • CORD1C
  • CORD1S
  • CROD
  • DAREA
  • SPOINT
  • PELAS
  • PDAMP
  • PMASS
  • SPOINT (writes in short form)

Modified Cards

Sometimes this will happen

diffKeys1=[] diffKeys2=[]
  *key=FREQ1    value1=2   value2=0
  *key=FREQ     value1=0   value2=1

If you look at the definition of the cards, you’ll see that if two FREQx cards have the same ID, then they will both be used during a frequency analysis. The simplest form of the card will be used (a FREQ card in this case), even if it means combining and/or changing card types.

The list of modified cards include:
  • FREQ
  • FREQ1
  • FREQ2

When things go Wrong

Try:

>>> test_bdf -x fem.bdf > test.out
If it’s still failing, you probably are have:
  • an unsupported card in your deck
  • the include files are too complicated (Nastran allows include files to be referenced from any previously referenced directory). pyNastran only references from the base input file. Stick all your include files in the same folder.
  • you’re missing cards
Calling Signature
C:\work>test_bdf --help

Usage:
  test_bdf [-q] [-D] [-i] [-e E] [-x] [-p] [-c] [-L] [-f] BDF_FILENAME
  test_bdf [-q] [-D] [-i] [-e E] [-x] [-p] [-c] [-L] [-d] [-f] BDF_FILENAME
  test_bdf [-q] [-D] [-i] [-e E] [-x] [-p] [-c] [-L] [-l] [-f] BDF_FILENAME
  test_bdf [-q] [-D] [-i] [-e E] [-p] [-r] [-f] BDF_FILENAME
  test_bdf [-q] [-D] [-i] [-e E] [-x] [-p] [-s] [-f] BDF_FILENAME
  test_bdf -h | --help
  test_bdf -v | --version

Positional Arguments:
  BDF_FILENAME   path to BDF/DAT/NAS file

Options:
  -q, --quiet    prints debug messages (default=False)
  -x, --xref     disables cross-referencing and checks of the BDF.
                  (default=False -> on)
  -p, --punch    disables reading the executive and case control decks in the BDF
                 (default=False -> reads entire deck)
  -c, --check    disables BDF checks.  Checks run the methods on
                 every element/property to test them.  May fails if a
                 card is fully not supported (default=False)
  -l, --large    writes the BDF in large field, single precision format (default=False)
  -d, --double   writes the BDF in large field, double precision format (default=False)
  -L, --loads    Disables forces/moments summation for the different subcases (default=False)
  -r, --reject   rejects all cards with the appropriate values applied (default=False)
  -D, --dumplines  Writes the BDF exactly as read with the INCLUDES processed (pyNastran_dump.bdf)
  -i, --dictsort  Writes the BDF with exactly as read with the INCLUDES processed (pyNastran_dict.bdf)
  -f, --profile   Profiles the code (default=False)
  -s, --stop      Stop after first read/write (default=False)
  -e E, --nerrors E  Allow for cross-reference errors (default=100)
  -h, --help     show this help message and exit
What test_bdf Does

test_bdf is useful for quickly finding out if your deck has a cross-reference error, which may not be caught by Nastran (often leading to segfaults). It’s also useful in testing to see if your specific set of cards handle large/double precison in Nastran (and that the code doesn’t have a bug).

The standard test is:

>>> test_bdf model.bdf
which will:
  1. read the model
  2. card checks
    • types of each card field
    • validate values of strings (e.g. HAT is a valid PBARL)
    • check range of certain values (e.g. CONM2 must be positive semidefinite)
  3. cross-reference the model
  • Passing requires all traced cards exist:
    • Structural:
      • GRID -> Coord
      • Coord -> Coord
      • Element -> Property
      • Property -> Material
      • Material -> Nonlinear Material
      • Load -> Load cards
      • DLOAD -> DLoad cards
    • Optimization
      • DRESP -> DRESP, DESVAR
      • DEQATN -> DRESP, DESVAR
    • Aero:
      • CAERO -> PAERO
      • SPLINE -> CAERO, SET
  1. validate the methods for the various cards
  • Area
  • Mass
  • DEQATN format
  1. write the model
  2. read it back in
  3. compare it to the original
  4. calculate mass/forces/moments for all the subcases

op2

Introduction

This is meant as a tutorial on how to use the pyNastran pyNastran.op2.op2.OP2 class

This page runs through examples relating to the OP2. The OP2 is preferred as it is much faster and easier to parse.

Note that a static model is a SOL 101 or SOL 144. A dynamic/”transient” solution is any transient/modal/load step/frequency based solution (e.g. 103, 109, 145).

The head/tail/file_slice methods can be found at:

These examples can be found at:

Example 1: Read Write

This example will demonstate:

  • reading the OP2
  • getting some basic information
  • writing the F06

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'solid_bending')
>>> op2_filename = os.path.join(test_path, 'solid_bending.op2')
>>> f06_filename = os.path.join(test_path, 'solid_bending_out.f06')

instantiate the model

>>> from pyNastran.op2.op2 import OP2
>>> model = OP2()
>>> model.read_op2(op2_filename)
>>> print(model.get_op2_stats())
op2.displacements[1]
  type=RealDisplacementArray nnodes=72
  data: [t1, t2, t3, r1, r2, r3] shape=[1, 72, 6] dtype=float32
  gridTypes
  lsdvmns = [1]

op2.spc_forces[1]
  type=RealSPCForcesArray nnodes=72
  data: [t1, t2, t3, r1, r2, r3] shape=[1, 72, 6] dtype=float32
  gridTypes
  lsdvmns = [1]

op2.ctetra_stress[1]
  type=RealSolidStressArray nelements=186 nnodes=930
  nodes_per_element=5 (including centroid)
  eType, cid
  data: [1, nnodes, 10] where 10=[oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, von_mises]
  data.shape = (1, 930, 10)
  element types: CTETRA
  lsdvmns = [1]
>>> model.write_f06(f06_filename)
F06:
 RealDisplacementArray SUBCASE=1
 RealSPCForcesArray    SUBCASE=1
 RealSolidStressArray  SUBCASE=1 - CTETRA
>>> print(tail(f06_filename, 21))
0       186           0GRID CS  4 GP
0                CENTER  X   9.658666E+02  XY  -2.978357E+01   A   2.559537E+04  LX-0.02 0.20 0.98  -1.094517E+04    2.288671E+04
                         Y   7.329372E+03  YZ   5.895411E+02   B  -7.168877E+01  LY-1.00-0.03-0.01
                         Z   2.454026E+04  ZX  -5.050599E+03   C   7.311813E+03  LZ 0.03-0.98 0.20
0                     8  X   9.658666E+02  XY  -2.978357E+01   A   2.559537E+04  LX-0.02 0.20 0.98  -1.094517E+04    2.288671E+04
                         Y   7.329372E+03  YZ   5.895411E+02   B  -7.168877E+01  LY-1.00-0.03-0.01
                         Z   2.454026E+04  ZX  -5.050599E+03   C   7.311813E+03  LZ 0.03-0.98 0.20
0                    62  X   9.658666E+02  XY  -2.978357E+01   A   2.559537E+04  LX-0.02 0.20 0.98  -1.094517E+04    2.288671E+04
                         Y   7.329372E+03  YZ   5.895411E+02   B  -7.168877E+01  LY-1.00-0.03-0.01
                         Z   2.454026E+04  ZX  -5.050599E+03   C   7.311813E+03  LZ 0.03-0.98 0.20
0                     4  X   9.658666E+02  XY  -2.978357E+01   A   2.559537E+04  LX-0.02 0.20 0.98  -1.094517E+04    2.288671E+04
                         Y   7.329372E+03  YZ   5.895411E+02   B  -7.168877E+01  LY-1.00-0.03-0.01
                         Z   2.454026E+04  ZX  -5.050599E+03   C   7.311813E+03  LZ 0.03-0.98 0.20
0                    58  X   9.658666E+02  XY  -2.978357E+01   A   2.559537E+04  LX-0.02 0.20 0.98  -1.094517E+04    2.288671E+04
                         Y   7.329372E+03  YZ   5.895411E+02   B  -7.168877E+01  LY-1.00-0.03-0.01
                         Z   2.454026E+04  ZX  -5.050599E+03   C   7.311813E+03  LZ 0.03-0.98 0.20
1    MSC.NASTRAN JOB CREATED ON 28-JAN-12 AT 12:52:32                       JANUARY  28, 2012  pyNastran v0.7.1       PAGE     3

1                                        * * * END OF JOB * * *

Example 2: Displacement (static)

This example will demonstate:

  • calculating total deflection of the nodes for a static case for an OP2
  • calculate von mises stress and max shear
\[\sqrt\left(T_x^2 + T_y^2 + T_z^2\right)\]

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'solid_bending')
>>> op2_filename = os.path.join(test_path, 'solid_bending.op2')
>>> out_filename = os.path.join(test_path, 'solid_bending.out')

instantiate the model

>>> from pyNastran.op2.op2 import OP2
>>> model = OP2()
>>> model.read_op2(op2_filename)
>>> print(model.get_op2_stats())

we’re analyzing a static problem, so itime=0

we’re also assuming subcase 1

>>> itime = 0
>>> isubcase = 1

get the displacement object

>>> disp = model.displacements[isubcase]

displacement is an array

# data = [tx, ty, tz, rx, ry, rz]
# for some itime
# all the nodes -> :
# get [tx, ty, tz] -> :3
>>> txyz = disp.data[itime, :, :3]

calculate the total deflection of the vector

>>> from numpy.linalg import norm
>>> total_xyz = norm(txyz, axis=1)

since norm’s axis parameter can be tricky, we’ll double check the length

>>> nnodes = disp.data.shape[1]
>>> assert len(total_xyz) == nnodes

we could also have found nnodes by using the attribute.

It has an underscore because the object is also used for elements.

>>> nnodes2 = disp._nnodes
>>> assert nnodes == nnodes2
>>> assert nnodes == 72

additionally we know we have 72 nodes from the shape:

op2.displacements[1]
  type=RealDisplacementArray nnodes=72
  data: [t1, t2, t3, r1, r2, r3] shape=[1, 72, 6] dtype=float32
  gridTypes
  lsdvmns = [1]

now we’ll loop over the nodes and print the total deflection

>>> msg = 'nid, gridtype, tx, ty, tz, txyz'
>>> print(msg)
>>> for (nid, grid_type), txyz, total_xyzi in zip(disp.node_gridtype, txyz, total_xyz):
>>>     msg = '%s, %s, %s, %s, %s, %s' % (nid, grid_type, txyz[0], txyz[1], txyz[2], total_xyzi)
>>>     print(msg)

nid, gridtype, tx, ty, tz, txyz
1, 1, 0.00764469, 4.01389e-05, 0.000111137, 0.00764561
2, 1, 0.00762899, 5.29171e-05, 0.000142154, 0.0076305
3, 1, 0.00944763, 6.38675e-05, 7.66179e-05, 0.00944816
4, 1, 0.00427092, 2.62277e-05, 7.27848e-05, 0.00427162
5, 1, 0.00152884, 1.71054e-05, -3.47525e-06, 0.00152894
...

Example 3: Eigenvector (transient)

This example will demonstate:

  • calculate von mises stress and max shear for solid elements for a static case for an OP2
\[\sqrt\left(T_x^2 + T_y^2 + T_z^2\right)\]

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'solid_bending')
>>> op2_filename = os.path.join(test_path, 'solid_bending.op2')
>>> out_filename = os.path.join(test_path, 'solid_bending.out')

instantiate the model

>>> from pyNastran.op2.op2 import OP2
>>> model = OP2()
>>> model.read_op2(op2_filename)
>>> print(model.get_op2_stats())

op2.ctetra_stress[1]
  type=RealSolidStressArray nelements=186 nnodes=930
  nodes_per_element=5 (including centroid)
  eType, cid
  data: [1, nnodes, 10] where 10=[oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, von_mises]
  data.shape = (1, 930, 10)
  element types: CTETRA
  lsdvmns = [1]

we’re analyzing a static problem, so itime=0

we’re also assuming subcase 1

>>> itime = 0
>>> isubcase = 1

get the stress object (there is also cpenta_stress and chexa_stress as well as ctetra_strain/cpenta_strain/chexa_strain)

>>> stress = model.ctetra_stress[isubcase]

The stress/strain data can often be von_mises/max_shear (same for fiber_distance/curvature), so check!

 #data = [oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, von_mises]
>>> o1 = stress.data[itime, :, 6]
>>> o3 = stress.data[itime, :, 8]
>>> if stress.is_von_mises():
>>>     max_shear = (o1 - o3) / 2.
>>>     von_mises = stress.data[itime, :, 9]
>>> else:
>>>     from numpy import sqrt
>>>     o2 = data[itime, :, 8]
>>>     von_mises = sqrt(0.5*((o1-o2)**2 + (o2-o3)**2, (o3-o1)**2))
>>>     max_shear = stress.data[itime, :, 9]
>>> for (eid, node), vm, ms in zip(stress.element_node, von_mises, max_shear):
>>>     print(eid, 'CEN/4' if node == 0 else node, vm, ms)

1 CEN/4 15900.2 2957.35
1 8     15900.2 2957.35
1 13    15900.2 2957.35
1 67    15900.2 2957.35
1 33    15900.2 2957.35
2 CEN/4 16272.3 6326.18
2 8     16272.3 6326.18
2 7     16272.3 6326.18
2 62    16272.3 6326.18
2 59    16272.3 6326.18

Note that because element_node is an integer array, the centroid is 0. We renamed it to CEN/4 when we wrote it

Example 4: Solid Stress (static)

This example will demonstate:

  • calculating total deflection of the nodes for a dynamic case for an OP2
\[\sqrt\left(T_x^2 + T_y^2 + T_z^2\right)\]

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'plate_py')
>>> op2_filename = os.path.join(test_path, 'plate_py.op2')

ut_filename = os.path.join(test_path, ‘solid_bending.out’)

instantiate the model

>>> from pyNastran.op2.op2 import OP2
>>> model = OP2()
>>> model.read_op2(op2_filename)
>>> print(model.get_op2_stats())

op2.eigenvectors[1]
  type=RealEigenvectorArray ntimes=10 nnodes=231
  data: [t1, t2, t3, r1, r2, r3] shape=[10, 231, 6] dtype=float32
  gridTypes
  modes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
eigrs = [-0.00037413835525512695, -0.00022113323211669922, -0.0001882314682006836, -0.00010025501251220703, 0.0001621246337890625, 0.00
07478296756744385, 1583362560.0, 2217974016.0, 10409966592.0, 11627085824.0]
mode_cycles = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> isubcase = 1
>>> eigenvector = model.eigenvectors[isubcase]

“time/mode/frequency are stored by id, so to get mode 5:

>>> modes = eigenvector._times  # it may not be "time" so we don't use the name "time"
>>> from numpy import where
>>> imode5 = where(modes == 5)[0]
>>> txyz = eigenvector.data[imode5, :, :3]

calculate the total deflection of the vector

>>> from numpy.linalg import norm
>>> total_xyz = norm(txyz, axis=1)

get the eigenvalue

>>> print('eigr5 = %s' % eigenvector.eigrs[imode5])
eigr5 = 0.000162124633789

Example 5: Isotropic Plate Stress (static)

This example will demonstate:

  • print the fiber distance and the max principal stress for a static case for an OP2

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'sol_101_elements')
>>> op2_filename = os.path.join(test_path, 'static_solid_shell_bar.op2')

instantiate the model

>>> from pyNastran.op2.op2 import OP2
>>> model = OP2()
>>> model.read_op2(op2_filename)
>>> print(model.get_op2_stats())

op2.cquad4_stress[1]
  type=RealPlateStressArray nelements=2 nnodes_per_element=5 nlayers=2 ntotal=20
  data: [1, ntotal, 8] where 8=[fiber_distance, oxx, oyy, txy, angle, omax, omin, von_mises]
  data.shape=(1L, 20L, 8L)
  element types: CQUAD4
  lsdvmns = [1]
>>> isubcase = 1
>>> itime = 0 # this is a static case
>>> stress = model.cquad4_stress[isubcase]
>>> assert stress.nnodes == 5, 'this is a bilinear quad'

write the data

#[fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm]
>>> eids = stress.element_node[:, 0]
>>> nids = stress.element_node[:, 1]
>>> if stress.is_fiber_distance():
>>>     fiber_dist = stress.data[itime, :, 0]
>>> else:
>>>     raise RuntimeError('found fiber curvature; expected fiber distance')
>>> maxp = stress.data[itime, :, 5]
>>> for (eid, nid, fdi, maxpi) in zip(eids, nids, fiber_dist, maxp):
>>>     print(eid, 'CEN/4' if nid == 0 else nid, fdi, maxpi)

6 CEN/4 -0.125 8022.26
6 CEN/4  0.125 12015.9
6 4     -0.125 7580.84
6 4      0.125 11872.9
6 1     -0.125 8463.42
6 1      0.125 12158.9
6 14    -0.125 8463.69
6 14     0.125 12158.9
6 15    -0.125 7581.17
6 15     0.125 11872.9
7 CEN/4 -0.125 10016.3
7 CEN/4  0.125 10019.5
7 3     -0.125 10307.1
7 3      0.125 10311.0
7 2     -0.125 9725.54
7 2      0.125 9727.9
7 17    -0.125 9725.54
7 17     0.125 9728.06
7 16    -0.125 10307.1
7 16     0.125 10311.1

note we have 2 layers (upper and lower surface) for any PSHELL-based elements

Example 6: Composite Plate Stress (static)

This example will demonstate:

  • print the fiber distance and the max principal stress for a static case for an OP2

our model

>>> import pyNastran
>>> pkg_path = pyNastran.__path__[0]
>>> test_path = os.path.join(pkg_path, '..', 'models', 'sol_101_elements')
>>> op2_filename = os.path.join(test_path, 'static_solid_shell_bar.op2')

instantiate the model

>>> from pyNastran.op2.op2 import OP2
>>> model = OP2()
>>> model.read_op2(op2_filename)
>>> print(model.get_op2_stats())
op2.ctria3_composite_stress[1]
  type=RealCompositePlateStressArray nelements=4 ntotal=18
  data: [1, ntotal, 9] where 9=[o11, o22, t12, t1z, t2z, angle, major, minor, max_shear]
  data.shape = (1, 18, 9)
  element types: CTRIA3
  lsdvmns = [1]
>>> isubcase = 1
>>> itime = 0 # this is a static case
>>> stress = model.ctria3_composite_stress[isubcase]

In the previous example, we had an option for a variable number of nodes for the CQUAD4s (1/5), but only nnodes=1 for the CTRIA3s.

In this example, we have 4 layers on one element and 5 on another, but they’re all at the centroid.

#[o11, o22, t12, t1z, t2z, angle, major, minor, ovm]
   >>> eids = stress.element_layer[:, 0]
   >>> layers = stress.element_layer[:, 1]
   >>> maxp = stress.data[itime, :, 6]
   >>> if stress.is_fiber_distance():
   >>>     fiber_dist = stress.data[itime, :, 0]
   >>> else:
   >>>     raise RuntimeError('found fiber curvature; expected fiber distance')
   >>> maxp = stress.data[itime, :, 5]
   >>> for (eid, layer, maxpi) in zip(eids, layers, maxp):
   >>>     print(eid, 'CEN/4', layer, maxpi)

   7  CEN/4 1  89.3406
   7  CEN/4 2  89.3745
   7  CEN/4 3  89.4313
   7  CEN/4 4  89.5115
   8  CEN/4 1 -85.6691
   8  CEN/4 2 -85.6121
   8  CEN/4 3 -85.5193
   8  CEN/4 4 -85.3937
   8  CEN/4 5 -85.2394
   9  CEN/4 1  86.3663
   9  CEN/4 2  86.6389
   9  CEN/4 3  87.0977
   9  CEN/4 4  87.7489
   10 CEN/4 1 -87.6962
   10 CEN/4 2 -87.4949
   10 CEN/4 3 -87.1543
   10 CEN/4 4 -86.6662
   10 CEN/4 5 -86.0192

OP2 Demo

The iPython notebook for this demo can be found in: - docs:raw-latex:quick_start:raw-latex:demo:raw-latex:`op`2_demo.ipynb - https://github.com/SteveDoyle2/pyNastran/tree/master/docs/quick_start/demo/op2_demo.ipynb

Why use the OP2? Why not use the F06/PCH file?

Most people are comfortable with the F06. However, it’s: - Ironically, a lot harder to parse. The OP2 is very structured. - Much, much, much slower. We can read entire blocks of arrays with a single call. The data is already typed. - Much, much more memory inefficient because we aren’t appending strings onto lists and turning that into a numpy array.

F06 parsers get ridiculously hard when you start do complicated results, like: - single subcase buckling - superelements - SOL 200 optimization with sub-optimization - SPOINTs

The pyNastran OP2 Reader is fast, highly validated, and it supports most result types. The data in the OP2 is also more accurate because there is no rounding.

Validating an OP2

The test_op2 script is created when you run python setup.py develop or python setup.py install on pyNastran. Assuming it’s on your path (it’ll be in Python27:raw-latex:`Scripts `or something similar), you can run:

>>> test_op2 -f solid_bending.op2

The -f tells us to print out solid_bending.test_op2.f06, which can be compared to your F06 for a small file to build confidence in the reader. It’s also useful when you want an F06 of your model without rerunning Nastran just to see what’s in it.

If you have a large model, you can make test_op2 run much, much faster. The -c flag disables double-reading of the OP2. By default, test_op2 uses two different read methods (the old method and new method) to ensure that results are read in properly. When running the code, this is turned off, but is turned on for test_op2.

>>> test_op2 -fc solid_bending.op2

Import the packages

import os
import copy
import numpy as np

import pyNastran
pkg_path = pyNastran.__path__[0]

from pyNastran.utils import print_bad_path
from pyNastran.op2.op2 import read_op2
from pyNastran.utils import object_methods, object_attributes

import pandas as pd
Sets default precision of real numbers for pandas output
pd.set_option('precision', 3)
np.set_printoptions(precision=3, threshold=20)

As with the BDF, we can use the long form and the short form. However, the long form for the OP2 doesn’t really add anything. So, let’s just use the short form.

Besides massive speed improvements in the OP2 relative to v0.7, this version adds pandas dataframe support.

#op2_filename = r'D:\work\pynastran_0.8.0\models\iSat\ISat_Launch_Sm_Rgd.op2'
#op2_filename = r'D:\work\pynastran_0.8.0\models\iSat\ISat_Launch_Sm_4pt.op2'
op2_filename = os.path.abspath(os.path.join(pkg_path, '..', 'models', 'iSat', 'ISat_Launch_Sm_4pt.op2'))
assert os.path.exists(op2_filename), print_bad_path(op2_filename)

# define the input file with a file path
op2 = read_op2(op2_filename, build_dataframe=True, debug=False)
INFO:      fname=op2_scalar.py             lineNo=1176   op2_filename = 'f:\work\pynastran\pynastran\master3\models\iSat\ISat_Launch_Sm_4pt.op2'

OP2 Introspection

The get_op2_stats() function lets you quickly understand what in an op2.

print(op2.get_op2_stats())
GridPointWeight:  reference_point=0
  mass=[    1.7746     1.7746     1.7746]
  cg  =[-1.02627e-17   -2.53061   -18.4676]
       [-0.0338509 -1.63349e-17   -18.4676]
       [-0.0338509   -2.53061 -2.18142e-19]

  IS  =[    705.69   -1.56671   0.141187]
       [  -1.56671    621.838    135.836]
       [  0.141187    135.836    415.861]

  IQ  =[   689.183                      ]
       [              348.384           ]
       [                         705.821]

  Q  = [ 0.0884636 0.00159685   0.996078]
       [ -0.892013  -0.444886  0.0799345]
       [  0.443269  -0.895586 -0.0379318]
eigenvectors[1]
  isubcase = 1
  type=RealEigenvectorArray ntimes=167 nnodes=5379
  data: [t1, t2, t3, r1, r2, r3] shape=[167, 5379, 6] dtype=float32
  gridTypes
  sort1
  modes = [  1   2   3 ..., 165 166 167]
  eigrs = [  2.758e+03   3.568e+03   9.686e+03 ...,   6.163e+06   6.170e+06
   6.230e+06]
  mode_cycles = [1112674317 1114566525 1120195719 ..., 1159407589 1159413465 1159462558]

cbar_force[1]
  type=RealCBarForceArray ntimes=167 nelements=827
  data: [ntimes, nnodes, 8] where 8=[bending_moment_a1, bending_moment_a2, bending_moment_b1, bending_moment_b2, shear1, shear2, axial, torque]
  data.shape = (167, 827, 8)
  element name: CBAR-34
  sort1
  modes = [  1   2   3 ..., 165 166 167]
  eigrs = [  2.758e+03   3.568e+03   9.686e+03 ...,   6.163e+06   6.170e+06
   6.230e+06]
  cycles = [   8.358    9.507   15.663 ...,  395.101  395.329  397.237]

ctria3_stress[1]
  type=RealPlateStressArray ntimes=167 nelements=32 nnodes_per_element=1 nlayers=2 ntotal=64
  data: [ntimes, ntotal, 8] where 8=[fiber_distance, oxx, oyy, txy, angle, omax, omin, von_mises]
  data.shape=(167L, 64L, 8L)
  element type: CTRIA3
  s_code: 1
  sort1
  modes = [  1   2   3 ..., 165 166 167]
  eigrs = [  2.758e+03   3.568e+03   9.686e+03 ...,   6.163e+06   6.170e+06
   6.230e+06]
  mode2s = [         2          3          4 ...,        166        167 1159462558]
  cycles = [  2.803e-45   4.204e-45   5.605e-45 ...,   2.326e-43   2.340e-43
   2.496e+03]

cquad4_stress[1]
  type=RealPlateStressArray ntimes=167 nelements=4580 nnodes_per_element=1 nlayers=2 ntotal=9160
  data: [ntimes, ntotal, 8] where 8=[fiber_distance, oxx, oyy, txy, angle, omax, omin, von_mises]
  data.shape=(167L, 9160L, 8L)
  element type: CQUAD4
  s_code: 1
  sort1
  modes = [  1   2   3 ..., 165 166 167]
  eigrs = [  2.758e+03   3.568e+03   9.686e+03 ...,   6.163e+06   6.170e+06
   6.230e+06]
  mode2s = [         2          3          4 ...,        166        167 1159462558]
  cycles = [  2.803e-45   4.204e-45   5.605e-45 ...,   2.326e-43   2.340e-43
   2.496e+03]

eigenvalues[ISAT_SM_LAUNCH_4PT MODES TO 400 HZ]
  type=RealEigenvalues neigenvalues=167
  title, extraction_order, eigenvalues, radians, cycles, generalized_mass, generalized_stiffness
If that’s too long...
print(op2.get_op2_stats(short=True))
GridPointWeight: ref_point=0 mass=1.7746; [reference_point, M0, S, mass, cg, IS, IQ, Q]
eigenvectors[1]
cbar_force[1]
ctria3_stress[1]
cquad4_stress[1]
eigenvalues[u'ISAT_SM_LAUNCH_4PT MODES TO 400 HZ']

Acccessing the Eigenvectors object

Eigenvectors are the simplest object. They use the same class as for displacements, velocity, acceleration, SPC Forces, MPC Forces, Applied Loads, etc. These are all node-based tables with TX, TY, TZ, RX, RY, RZ. Results are in the analysis coordinate frame (CD), which is defined by the GRID card.

Numpy-based Approach

We’ll first show off the standard numpy based results on a transient case. Static results are the same, except that you’ll always use the 0th index for the “time” index.

The tutorial is intetionally just accessing the objects in a very clear, though inefficient way. The OP2 objects can take full advantage of the numpy operations.

# what modes did we analyze:  1 to 167
print("loadcases = %s" % op2.eigenvectors.keys())

# get subcase 1
eig1 = op2.eigenvectors[1]

modes = eig1.modes
times = eig1._times #  the generic version of modes
print("modes = %s\n" % modes)
print("times = %s\n" % times)

imode2 = 1 # corresponds to mode 2
mode2 = eig1.data[imode2, :, :]

print('first 10 nodes and grid types\nNid Gridtype\n%s' % eig1.node_gridtype[:10, :])
node_ids = eig1.node_gridtype[:, 0]

index_node10 = np.where(node_ids == 10)[0]  # we add the [0] because it's 1d
mode2_node10 = mode2[index_node10]
print("translation mode2_node10 = %s" % eig1.data[imode2, index_node10, :3].ravel())
print("rotations mode2_node10 = %s" % eig1.data[imode2, index_node10, 3:].ravel())
loadcases = [1]
modes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167]

times = [   1.    2.    3. ...,  165.  166.  167.]

first 10 nodes and grid types
Nid Gridtype
[[ 1  1]
 [ 2  1]
 [ 3  1]
 [ 4  1]
 [ 5  1]
 [ 6  1]
 [ 7  1]
 [ 8  1]
 [ 9  1]
 [10  1]]
translation mode2_node10 = [  1.696e-05   7.937e-03   1.510e-03]
rotations mode2_node10 = [ -2.241e-04   1.228e-06  -1.187e-06]
Pandas-based Approach

If you like pandas, you can access all the OP2 objects, which is very useful within the Jupyter Notebook. Different objects will look differently, but you can change the layout.

If you’re trying to learn pandas, there are many tutorials online, such as: http://pandas.pydata.org/pandas-docs/stable/10min.html

or a very long, but good video:

from IPython.display import YouTubeVideo
YouTubeVideo('5JnMutdy6Fw')
#https://www.youtube.com/watch?v=5JnMutdy6Fw
# get subcase 1
eig1 = op2.eigenvectors[1]

eig1.data_frame
Mode 1 2 3 4 5 6 7 8 9 10 ... 158 159 160 161 162 163 164 165 166 167
EigenvalueReal 2757.896 3568.136 9685.530 16154.883 16278.047 16668.713 18248.492 18591.637 18617.254 31930.465 ... 5782436.500 5860846.500 5920603.000 6020617.500 6035178.000 6037030.000 6102521.500 6162773.500 6169898.500 6229584.500
Freq 8.358 9.507 15.663 20.229 20.306 20.548 21.500 21.701 21.716 28.440 ... 382.715 385.301 387.260 390.518 390.990 391.050 393.165 395.101 395.329 397.237
Radians 52.516 59.734 98.415 127.102 127.585 129.107 135.087 136.351 136.445 178.691 ... 2404.670 2420.919 2433.229 2453.695 2456.660 2457.037 2470.328 2482.493 2483.928 2495.914
NodeID Item
1 t1 5.548e-03 4.671e-06 -1.818e-04 -5.670e-02 1.722e-04 -4.175e-02 8.632e-05 -1.341e-03 1.582e-03 -2.428e-01 ... 5.723e-02 -5.369e-02 -3.838e-02 -1.326e-01 -1.973e-02 0.028 0.033 -0.104 -6.919e-02 -1.904e-02
t2 -2.133e-04 5.699e-03 2.392e-02 5.801e-04 -1.812e-04 1.971e-04 -6.526e-05 -3.563e-02 -3.164e-02 -1.292e-02 ... -3.090e-01 -3.746e-01 -5.840e-02 -2.385e-02 -5.889e-02 0.015 0.177 -0.010 5.252e-02 1.187e-01
t3 8.469e-04 1.512e-03 7.038e-03 -8.160e-03 -1.385e-03 -6.209e-03 1.004e-04 -9.286e-03 -7.856e-03 -3.743e-02 ... -4.535e-02 1.271e-01 2.550e-01 -1.792e-01 -1.136e-03 0.042 -0.037 0.263 2.141e-01 -1.473e-01
r1 8.399e-06 -2.241e-04 -1.035e-03 -4.509e-05 6.317e-05 -9.634e-06 2.518e-06 1.322e-03 1.172e-03 5.440e-04 ... -3.061e-02 -9.829e-04 2.993e-02 -3.527e-02 1.148e-04 0.007 -0.053 -0.004 2.357e-02 -3.403e-02
r2 2.507e-04 1.228e-06 -8.742e-06 -2.571e-03 6.180e-06 -1.767e-03 3.812e-06 -5.683e-05 5.614e-05 -1.004e-02 ... -1.174e-02 1.241e-03 1.025e-02 -3.112e-02 -4.135e-03 0.011 0.026 0.009 7.311e-03 -9.083e-04
r3 5.261e-05 -1.187e-06 -1.986e-04 -1.310e-04 -2.860e-05 -4.676e-05 -1.092e-07 -1.774e-04 1.806e-04 1.011e-03 ... 4.109e-05 2.184e-02 2.495e-03 8.832e-02 1.660e-02 -0.030 -0.100 0.022 2.547e-02 -5.581e-03
2 t1 5.548e-03 4.671e-06 -1.818e-04 -5.670e-02 1.722e-04 -4.175e-02 8.632e-05 -1.341e-03 1.582e-03 -2.428e-01 ... 5.723e-02 -5.369e-02 -3.838e-02 -1.326e-01 -1.973e-02 0.028 0.033 -0.104 -6.919e-02 -1.904e-02
t2 -1.081e-04 5.696e-03 2.353e-02 3.180e-04 -2.384e-04 1.036e-04 -6.548e-05 -3.598e-02 -3.128e-02 -1.090e-02 ... -3.090e-01 -3.309e-01 -5.341e-02 1.528e-01 -2.568e-02 -0.045 -0.022 0.034 1.035e-01 1.075e-01
t3 3.455e-04 1.510e-03 7.055e-03 -3.018e-03 -1.398e-03 -2.676e-03 9.274e-05 -9.172e-03 -7.968e-03 -1.735e-02 ... -2.187e-02 1.246e-01 2.345e-01 -1.170e-01 7.135e-03 0.020 -0.090 0.244 1.995e-01 -1.454e-01
r1 8.399e-06 -2.241e-04 -1.035e-03 -4.509e-05 6.317e-05 -9.634e-06 2.518e-06 1.322e-03 1.172e-03 5.440e-04 ... -3.061e-02 -9.829e-04 2.993e-02 -3.527e-02 1.148e-04 0.007 -0.053 -0.004 2.357e-02 -3.403e-02
r2 2.507e-04 1.228e-06 -8.742e-06 -2.571e-03 6.180e-06 -1.767e-03 3.812e-06 -5.683e-05 5.614e-05 -1.004e-02 ... -1.174e-02 1.241e-03 1.025e-02 -3.112e-02 -4.135e-03 0.011 0.026 0.009 7.311e-03 -9.083e-04
r3 5.261e-05 -1.187e-06 -1.986e-04 -1.310e-04 -2.860e-05 -4.676e-05 -1.092e-07 -1.774e-04 1.806e-04 1.011e-03 ... 4.109e-05 2.184e-02 2.495e-03 8.832e-02 1.660e-02 -0.030 -0.100 0.022 2.547e-02 -5.581e-03
3 t1 6.169e-03 7.911e-06 -2.160e-04 -6.310e-02 1.897e-04 -4.617e-02 9.580e-05 -1.466e-03 1.704e-03 -2.679e-01 ... 2.695e-02 -6.243e-02 -6.576e-03 -2.369e-01 -3.571e-02 0.065 0.135 -0.079 -5.365e-02 -2.056e-02
t2 -2.295e-04 6.255e-03 2.639e-02 6.019e-04 -2.806e-04 1.856e-04 -7.132e-05 -3.892e-02 -3.453e-02 -1.453e-02 ... -1.994e-01 -3.102e-01 -1.168e-01 1.054e-01 -4.058e-02 -0.023 0.200 0.023 1.385e-02 1.724e-01
t3 8.457e-04 1.512e-03 7.034e-03 -8.138e-03 -1.386e-03 -6.198e-03 1.003e-04 -9.286e-03 -7.856e-03 -3.736e-02 ... -4.493e-02 1.259e-01 2.542e-01 -1.777e-01 -1.024e-03 0.042 -0.038 0.262 2.140e-01 -1.467e-01
r1 8.883e-06 -2.240e-04 -1.036e-03 -5.241e-05 6.649e-05 -6.664e-06 2.507e-06 1.321e-03 1.174e-03 5.725e-04 ... -3.039e-02 2.253e-04 2.894e-02 -3.716e-02 -4.793e-04 0.008 -0.047 -0.006 2.042e-02 -3.308e-02
r2 2.507e-04 1.229e-06 -8.748e-06 -2.571e-03 6.181e-06 -1.767e-03 3.812e-06 -5.683e-05 5.614e-05 -1.004e-02 ... -1.174e-02 1.238e-03 1.025e-02 -3.111e-02 -4.135e-03 0.011 0.026 0.009 7.308e-03 -9.065e-04
r3 4.657e-05 2.289e-06 -8.563e-06 -2.151e-05 8.189e-06 1.310e-05 -1.439e-07 -1.571e-04 1.600e-04 1.240e-03 ... 6.409e-03 -2.870e-02 6.276e-03 -3.529e-02 -1.277e-02 0.016 0.091 -0.024 -3.187e-02 1.810e-03
4 t1 6.169e-03 7.956e-06 -2.157e-04 -6.310e-02 1.907e-04 -4.617e-02 9.580e-05 -1.466e-03 1.704e-03 -2.679e-01 ... 2.726e-02 -6.325e-02 -6.637e-03 -2.366e-01 -3.568e-02 0.065 0.135 -0.079 -5.359e-02 -2.070e-02
t2 -1.295e-04 6.253e-03 2.619e-02 4.724e-04 -3.533e-04 1.577e-04 -7.179e-05 -3.925e-02 -3.419e-02 -1.184e-02 ... -1.877e-01 -3.177e-01 -1.326e-01 1.642e-01 -3.435e-02 -0.035 0.187 0.006 6.929e-04 1.884e-01
t3 3.469e-04 1.510e-03 7.059e-03 -3.040e-03 -1.396e-03 -2.688e-03 9.276e-05 -9.173e-03 -7.968e-03 -1.742e-02 ... -2.215e-02 1.256e-01 2.349e-01 -1.179e-01 7.068e-03 0.020 -0.089 0.243 1.992e-01 -1.457e-01
r1 7.731e-06 -2.241e-04 -1.037e-03 -3.840e-05 6.177e-05 -1.181e-05 2.531e-06 1.322e-03 1.169e-03 5.129e-04 ... -3.086e-02 -3.467e-03 3.029e-02 -3.335e-02 6.161e-04 0.007 -0.058 -0.003 2.650e-02 -3.497e-02
r2 2.507e-04 1.229e-06 -8.746e-06 -2.571e-03 6.177e-06 -1.767e-03 3.812e-06 -5.682e-05 5.614e-05 -1.004e-02 ... -1.174e-02 1.238e-03 1.026e-02 -3.112e-02 -4.135e-03 0.011 0.026 0.010 7.313e-03 -9.084e-04
r3 4.712e-05 2.923e-07 5.697e-05 -2.570e-05 3.632e-06 1.221e-05 -1.684e-07 -1.412e-04 1.769e-04 1.298e-03 ... 1.457e-02 -1.664e-02 4.624e-03 -3.608e-02 -1.077e-02 0.016 0.083 -0.026 -3.403e-02 3.453e-04
5 t1 6.801e-03 1.081e-05 -2.255e-04 -6.955e-02 2.031e-04 -5.058e-02 1.054e-04 -1.626e-03 1.863e-03 -2.930e-01 ... -1.463e-03 -4.748e-02 1.290e-02 -2.882e-01 -4.040e-02 0.084 0.165 -0.056 -3.263e-02 -2.358e-02
t2 -2.553e-04 6.819e-03 2.910e-02 8.055e-04 -4.971e-04 2.453e-04 -7.785e-05 -4.223e-02 -3.750e-02 -1.564e-02 ... -1.560e-01 -3.697e-01 -2.080e-01 1.525e-01 -5.946e-02 -0.022 0.442 0.012 -6.531e-02 2.889e-01
t3 8.469e-04 1.512e-03 7.038e-03 -8.160e-03 -1.385e-03 -6.209e-03 1.004e-04 -9.286e-03 -7.856e-03 -3.743e-02 ... -4.535e-02 1.271e-01 2.550e-01 -1.792e-01 -1.136e-03 0.042 -0.037 0.263 2.141e-01 -1.473e-01
r1 8.399e-06 -2.241e-04 -1.035e-03 -4.509e-05 6.317e-05 -9.634e-06 2.518e-06 1.322e-03 1.172e-03 5.440e-04 ... -3.061e-02 -9.829e-04 2.993e-02 -3.527e-02 1.148e-04 0.007 -0.053 -0.004 2.357e-02 -3.403e-02
r2 2.507e-04 1.228e-06 -8.742e-06 -2.571e-03 6.180e-06 -1.767e-03 3.812e-06 -5.683e-05 5.614e-05 -1.004e-02 ... -1.174e-02 1.241e-03 1.025e-02 -3.112e-02 -4.135e-03 0.011 0.026 0.009 7.311e-03 -9.083e-04
r3 5.261e-05 -1.187e-06 -1.986e-04 -1.310e-04 -2.860e-05 -4.676e-05 -1.092e-07 -1.774e-04 1.806e-04 1.011e-03 ... 4.109e-05 2.184e-02 2.495e-03 8.832e-02 1.660e-02 -0.030 -0.100 0.022 2.547e-02 -5.581e-03
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5629 t1 -7.413e-05 -8.245e-05 -3.907e-04 3.482e-03 3.748e-05 2.988e-04 -2.694e-06 2.441e-05 1.075e-03 2.742e-03 ... 4.748e-04 5.261e-03 -4.662e-02 5.886e-02 -6.227e-03 -0.017 0.162 -0.557 6.614e-01 -1.042e-01
t2 -4.452e-05 -2.089e-04 -5.165e-03 2.748e-04 -1.754e-04 4.173e-04 -3.617e-06 -1.361e-04 1.100e-04 8.914e-04 ... 2.047e-01 6.117e-02 -5.444e-02 -1.529e-02 -1.469e-02 0.023 0.183 0.290 -3.938e-01 3.587e-01
t3 -1.283e-04 1.048e-03 8.982e-03 5.709e-04 -1.808e-04 1.258e-03 5.577e-06 -5.649e-03 -5.097e-03 7.869e-03 ... -1.857e-01 -2.785e-02 6.353e-02 5.410e-02 2.473e-02 -0.030 -0.234 0.069 6.091e-02 -3.214e-01
r1 -3.005e-07 5.476e-05 6.343e-04 6.332e-06 2.491e-06 2.715e-06 5.464e-07 -2.376e-04 -2.019e-04 -6.031e-05 ... -4.279e-04 -3.524e-03 9.710e-04 -6.896e-03 9.867e-04 0.001 -0.014 -0.008 2.789e-02 -2.645e-02
r2 1.195e-05 -1.468e-05 -9.874e-05 2.887e-07 7.293e-06 -1.234e-04 1.826e-07 7.492e-05 1.152e-04 -9.475e-04 ... 2.369e-02 1.095e-03 -8.118e-03 -1.289e-02 -1.785e-03 0.005 0.015 -0.021 3.344e-02 3.849e-03
r3 -2.865e-06 1.522e-05 6.912e-05 -4.279e-06 -4.743e-06 2.949e-05 1.857e-07 -1.044e-04 -6.757e-05 -1.060e-04 ... 2.703e-02 1.362e-03 -5.113e-03 -1.492e-02 -6.335e-04 0.005 0.001 0.027 -1.418e-02 1.118e-02
5630 t1 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
t2 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
t3 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
r1 -1.815e-05 -9.454e-05 -3.223e-04 -3.568e-05 1.340e-05 -3.384e-05 1.329e-06 7.127e-04 4.621e-04 -6.382e-04 ... -3.555e-02 -8.501e-03 1.420e-02 -1.374e-02 1.390e-04 0.004 -0.017 0.004 -2.480e-04 -2.458e-03
r2 -1.174e-04 8.335e-07 -1.801e-05 1.328e-03 2.448e-05 7.252e-04 -3.178e-07 -1.708e-05 -1.350e-05 3.852e-03 ... 6.103e-03 -6.432e-03 1.082e-02 -3.451e-02 -4.203e-03 0.011 0.018 -0.003 7.885e-03 2.321e-02
r3 1.512e-05 3.817e-05 2.898e-04 -7.734e-06 -1.064e-06 -1.914e-06 -6.212e-07 -2.275e-04 -1.247e-04 5.015e-04 ... 1.508e-02 -1.308e-03 3.008e-03 -9.727e-03 3.836e-04 0.001 -0.003 -0.030 -3.103e-02 -2.712e-02
5631 t1 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
t2 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
t3 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
r1 -9.862e-07 5.862e-05 5.579e-04 1.046e-05 6.905e-05 5.601e-06 -1.679e-06 -2.394e-04 -2.043e-04 -3.901e-05 ... 1.138e-03 -1.261e-02 1.119e-02 -1.439e-02 1.245e-03 0.004 -0.024 -0.012 4.048e-03 1.465e-02
r2 8.388e-06 -1.919e-06 -7.635e-06 -2.048e-04 -1.957e-07 -2.855e-04 5.311e-07 6.254e-05 -5.671e-05 -2.159e-03 ... -2.994e-02 -4.564e-03 1.167e-02 -1.208e-02 -2.319e-03 0.004 0.012 -0.005 -5.452e-03 -5.399e-03
r3 -4.235e-05 3.105e-06 1.132e-06 3.700e-04 3.678e-07 2.318e-04 -3.299e-07 -1.454e-05 -9.195e-06 8.113e-04 ... 7.605e-03 -3.327e-03 1.359e-02 8.849e-04 -7.085e-04 0.002 0.011 -0.018 -1.781e-02 -1.326e-02
5632 t1 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
t2 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
t3 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
r1 1.756e-05 -9.628e-05 -3.117e-04 4.014e-05 1.268e-05 3.502e-05 1.054e-06 5.821e-04 6.400e-04 9.411e-04 ... 3.064e-02 -2.242e-03 5.439e-04 -1.809e-02 1.961e-04 0.005 -0.016 0.004 1.558e-04 -4.253e-03
r2 -1.170e-04 -2.698e-07 2.598e-05 1.325e-03 -3.278e-05 7.227e-04 -2.756e-06 1.174e-05 1.113e-05 3.844e-03 ... 1.025e-02 4.245e-03 2.363e-03 -2.781e-02 -4.249e-03 0.009 0.026 0.024 1.089e-02 -1.333e-02
r3 1.548e-05 -4.294e-05 -2.770e-04 -1.257e-05 -3.928e-06 -5.062e-06 3.049e-07 1.836e-04 2.254e-04 5.881e-04 ... 2.334e-02 -1.135e-03 5.283e-03 -1.865e-03 -3.915e-03 0.002 0.024 -0.032 -2.891e-02 -1.447e-02
5633 t1 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
t2 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
t3 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000 0.000 0.000 0.000e+00 0.000e+00
r1 -3.006e-07 5.476e-05 6.343e-04 6.334e-06 2.491e-06 2.716e-06 5.464e-07 -2.376e-04 -2.019e-04 -6.030e-05 ... -4.279e-04 -3.524e-03 9.710e-04 -6.896e-03 9.867e-04 0.001 -0.014 -0.008 2.789e-02 -2.645e-02
r2 -1.723e-06 1.278e-06 -1.805e-06 1.940e-04 3.380e-07 -8.450e-06 3.548e-08 -4.728e-05 4.650e-05 -2.113e-04 ... 2.084e-02 1.171e-03 -6.235e-03 -1.349e-02 -1.096e-03 0.005 0.006 0.005 4.639e-03 6.872e-03
r3 7.271e-06 3.394e-06 -2.722e-06 -1.478e-04 4.108e-07 -5.572e-05 2.948e-07 -1.384e-05 -1.663e-05 -6.516e-04 ... 2.914e-02 1.305e-03 -6.509e-03 -1.448e-02 -1.144e-03 0.005 0.008 0.008 7.160e-03 8.942e-03

32274 rows × 167 columns

Accessing the plate stress/strain

Results are stored on a per element type basis.

The OP2 is the same as an F06, so CQUAD4 elements have centroidal-based results or centroidal-based as well as the results at the 4 corner nodes.

Be careful about what you’re accessing.

# element forces/stresses/strains are by element type consistent with the F06, so...
plate_stress = op2.cquad4_stress[1]
print("plate_stress_obj = %s" % type(plate_stress))

# the set of variables in the RealPlateStressArray
print("plate_stress = %s\n" % plate_stress.__dict__.keys())

# list of parameters that define the object (e.g. what is the nonlinear variable name
print("data_code_keys = %s\n" % plate_stress.data_code.keys())

# nonlinear variable name
name = plate_stress.data_code['name']
print("name = %r" % plate_stress.data_code['name'])

print("list-type variables = %s" % plate_stress.data_code['data_names'])

# the special loop parameter
# for modal analysis, it's "modes"
# for transient, it's "times"
# or be lazy and use "_times"
print("modes = %s" % plate_stress.modes) # name + 's'


# extra list-type parameter for modal analysis; see data_names
#print("mode_cycles =", plate_stress.mode_cycles)
plate_stress_obj = <class 'pyNastran.op2.tables.oes_stressStrain.real.oes_plates.RealPlateStressArray'>
plate_stress = ['_add_new_eid', '_add_new_node', 'subtitle', 'words', 's_code', 'is_built', 'stress_bits', 'load_set', 'itotal', '_add', '_ntotals', 'nnodes', 'sort_bits', 'isubcase', 'element_name', 'itime', 'nonlinear_factor', 'title', '_times', 'ntotal', 'approach_code', 'is_stress_flag', 'label', 'element_node', 'is_msc', 'num_wide', 'mode', 'format_code', 'device_code', 'modes', '_times_dtype', 'thermal_bits', 'mode2s', 'data_frame', 'mode2', 'dt', 'is_strain_flag', 'data', 'cycle', 'name', 'nelements', 'eigr', 'ielement', 'thermal', 'analysis_code', 'eigrs', 'table_code', 'element_type', 'table_name', 'data_code', 'isTransient', 'sort_code', 'cycles', 'ntimes', 'data_names']

data_code_keys = [u'subtitle', u'stress_bits', u'load_set', u'thermal', u's_code', u'sort_bits', u'isubcase', u'element_name', u'mode2', u'title', u'approach_code', u'is_stress_flag', u'label', u'is_msc', u'num_wide', u'format_code', u'device_code', u'_times_dtype', u'thermal_bits', u'nonlinear_factor', u'is_strain_flag', u'cycle', u'name', u'eigr', u'analysis_code', u'table_code', u'element_type', u'table_name', u'mode', u'sort_code', u'data_names']

name = u'mode'
list-type variables = [u'mode', u'eigr', u'mode2', u'cycle']
modes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167]
Similar to the BDF, we can use object_attributes/methods
#print "attributes =", object_attributes(plate_stress)
print("methods = %s\n" % object_methods(plate_stress))
print('methods2= %s\n' % plate_stress.object_methods())
print("headers = %s\n" % plate_stress.get_headers())
methods = ['apply_data_code', 'approach_code_str', 'build', 'build_dataframe', 'cast_grid_type', 'code_information', 'eid_to_element_node_index', 'get_data_code', 'get_element_index', 'get_element_type', 'get_headers', 'get_nnodes_bilinear', 'get_stats', 'get_unsteady_value', 'is_bilinear', 'is_complex', 'is_curvature', 'is_fiber_distance', 'is_magnitude_phase', 'is_max_shear', 'is_real', 'is_sort1', 'is_sort2', 'is_strain', 'is_stress', 'is_thermal', 'is_von_mises', 'object_attributes', 'object_methods', 'print_data_members', 'print_table_code', 'recast_gridtype_as_string', 'set_table_type', 'update_data_code', 'update_dt', 'write_f06']

methods2= ['apply_data_code', 'approach_code_str', 'build', 'build_dataframe', 'cast_grid_type', 'code_information', 'eid_to_element_node_index', 'get_data_code', 'get_element_index', 'get_element_type', 'get_headers', 'get_nnodes_bilinear', 'get_stats', 'get_unsteady_value', 'is_bilinear', 'is_complex', 'is_curvature', 'is_fiber_distance', 'is_magnitude_phase', 'is_max_shear', 'is_real', 'is_sort1', 'is_sort2', 'is_strain', 'is_stress', 'is_thermal', 'is_von_mises', 'print_data_members', 'print_table_code', 'recast_gridtype_as_string', 'set_table_type', 'update_data_code', 'update_dt', 'write_f06']

headers = [u'fiber_distance', u'oxx', u'oyy', u'txy', u'angle', u'omax', u'omin', u'von_mises']
Number of Nodes on a CQUAD4
  • For linear CQUAD4s, there is 1 centroidal stress at two locations
  • For bilinear quads, there are 5 stresses at two locations (4 nodes + centroidal)
  • node_id=0 indicates a centroidal quantity
  • CTRIA3s are always centroidal
What sets this?
STRESS(real, sort1, BILIN) = ALL   # bilinear cquad
STRESS(real, sort1, CENT) = ALL    # linear quad

STRAIN(real, sort1, BILIN) = ALL   # bilinear cquad
STRAIN(real, sort1, CENT) = ALL    # linear quad
How do we know if we’re bilinear?
print("is_bilinear = %s\n" % plate_stress.is_bilinear())
What locations are chosen?

That depends on fiber distance/fiber curvature... - fiber_curvature - mean stress (oa) & slope (om)

$$ \sigma_{top} = \sigma_{alt} + \frac{t}{2} \sigma_{mean}$$

$$ \sigma_{btm} = \sigma_{alt} + \frac{t}{2} \sigma_{mean}$$
  • fiber_distance - upper and lower surface stress (o_top; o_btm)
  • If you have stress, fiber_distance is always returned regardless of your option.
What sets this?
STRAIN(real, sort1, FIBER) = ALL   # fiber distance/default
STRAIN(real, sort1, STRCUR) = ALL  # strain curvature
How do we know if we’re using fiber_distance?
print("is_fiber_distance = %s" % plate_stress.is_fiber_distance())

Accessing results

# element forces/stresses/strains are by element type consistent
# with the F06, so...

def abs_max_min(vals):
    absvals = list(abs(vals))
    maxval = max(absvals)
    i = absvals.index(maxval)
    return vals[i]

#-----------------------------
# again, we have linear quads, so two locations per element
print("element_node[:10, :] =\n%s..." % plate_stress.element_node[:10, :])

# lets get the stress for the first 3 CQUAD4 elements
eids = plate_stress.element_node[:, 0]
ueids = np.unique(eids)
print('ueids = %s' % ueids[:3])

# get the first index of the first 5 elements
ieids = np.searchsorted(eids, ueids[:3])
print('ieids = %s' % ieids)

# the easy way to slice data for linear plates
ieids5 = np.vstack([ieids, ieids + 1]).ravel()
ieids5.sort()

print('verify5:\n%s' % ieids5)

#-----------------------------
itime = 0 # static analysis / mode 1
if plate_stress.is_von_mises():  # True
    ovm = plate_stress.data[itime, :, 7]
    print('we have von mises data; ovm=%s\n' % ovm)
else:
    omax_shear = plate_stress.data[itime, :, 7]
    print('we have max shear data; omax_shear=%s\n' % omax_shear)


print("[layer1, layer2, ...] = %s" % ovm[ieids5])

ieid1000 = np.where(eids == 1000)[0]
print('ieid1000 = %s' % ieid1000)
ovm_mode6_eid1000 = ovm[ieid1000]
print("ovm_mode6_eid1000 = %s -> %s" % (ovm_mode6_eid1000, abs_max_min(ovm_mode6_eid1000)))
element_node[:10, :] =
[[1 0]
 [1 0]
 [2 0]
 [2 0]
 [3 0]
 [3 0]
 [4 0]
 [4 0]
 [5 0]
 [5 0]]...
ueids = [1 2 3]
ieids = [0 2 4]
verify5:
[0 1 2 3 4 5]
we have von mises data; ovm=[ 54.222   5.041  13.143 ...,   2.34    6.146   7.368]

[layer1, layer2, ...] = [ 54.222   5.041  13.143  21.222  78.544  17.91 ]
ieid1000 = [1998 1999]
ovm_mode6_eid1000 = [ 90.618  94.09 ] -> 94.0905
# see the difference between "transient"/"modal"/"frequency"-style results
# and "nodal"/"elemental"-style results
# just change imode

imode = 5  # mode 6; could just as easily be dt
iele = 10  # element 10
ilayer = 1

ieid10 = np.where(eids == iele)[0][ilayer]
print('ieid10 = %s' % ieid10)
print(plate_stress.element_node[ieid10, :])


# headers = [u'fiber_distance', u'oxx', u'oyy', u'txy', u'angle', u'omax', u'omin', u'von_mises']
print("ps.modes = %s" % plate_stress.modes[imode])
print("ps.cycles = %s" % plate_stress.cycles[imode])
print("oxx = %s" % plate_stress.data[imode, ieid10, 1])
print("oyy = %s" % plate_stress.data[imode, ieid10, 2])
print("txy = %s" % plate_stress.data[imode, ieid10, 3])
print("omax = %s" % plate_stress.data[imode, ieid10, 5])
print("omin = %s" % plate_stress.data[imode, ieid10, 6])
print("ovm/max_shear = %s" % plate_stress.data[imode, ieid10, 7])

if plate_stress.is_fiber_distance():
    print("fiber_distance = %s" % plate_stress.data[imode, ieid10, 0])
else:
    print("curvature = %s" % plate_stress.data[imode, ieid10, 0])
ieid10 = 19
[10  0]
ps.modes = 6
ps.cycles = 9.80908925027e-45
oxx = -18.8701
oyy = -20.1605
txy = -8.30956
omax = -11.1807
omin = -27.8499
ovm/max_shear = 24.2743
fiber_distance = -0.4
from pyNastran.bdf.bdf import read_bdf
bdf_filename = os.path.abspath(os.path.join(pkg_path, '..', 'models', 'iSat', 'ISat_Launch_Sm_4pt.dat'))
model = read_bdf(bdf_filename, debug=False)
mass, cg, I = model.mass_properties()
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=1 midsurface: z1=0.400000006 z2=-0.400000006 t=0.035999998 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=2 midsurface: z1=0.400000006 z2=-0.400000006 t=0.054000005 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=3 midsurface: z1=0.400000006 z2=-0.400000006 t=0.017999999 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=7 midsurface: z1=0.418000013 z2=-0.418000013 t=0.035999998 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=34 midsurface: z1=0.194000006 z2=-0.194000006 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=37 midsurface: z1=0.308999985 z2=-0.308999985 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=38 midsurface: z1=0.284000009 z2=-0.284000009 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=46 midsurface: z1=0.199000001 z2=-0.199000001 t=0.0186 not in range of -1.5t < zi < 1.5t
Let’s print out the actual mass properties from the OP2 and get the same result as the F06

We need PARAM,POSTEXT,YES in out BDF to get the Grid Point Weight Table

gpw = op2.grid_point_weight
#print(gpw.object_attributes())

print(gpw)
                           O U T P U T   F R O M   G R I D   P O I N T   W E I G H T   G E N E R A T O R
0                                                     REFERENCE POINT =        0
                                                                M O
                      *  1.774601E+00  1.402827E-19  2.212874E-19 -1.821217E-17 -3.277270E+01  4.490826E+00 *
                      *  1.402827E-19  1.774601E+00 -4.675622E-19  3.277270E+01 -2.898787E-17 -6.007191E-02 *
                      *  2.212874E-19 -4.675622E-19  1.774601E+00 -4.490826E+00  6.007191E-02 -3.871152E-19 *
                      * -1.821217E-17  3.277270E+01 -4.490826E+00  1.322289E+03  1.414696E+00 -1.250574E+00 *
                      * -3.277270E+01 -2.898787E-17  6.007191E-02  1.414696E+00  1.227074E+03 -2.187713E+02 *
                      *  4.490826E+00 -6.007191E-02 -3.871152E-19 -1.250574E+00 -2.187713E+02  4.272278E+02 *
                                                                 S
                                           *  1.000000E+00  0.000000E+00  0.000000E+00 *
                                           *  0.000000E+00  1.000000E+00  0.000000E+00 *
                                           *  0.000000E+00  0.000000E+00  1.000000E+00 *
                               DIRECTION
                          MASS AXIS SYSTEM (S)     MASS              X-C.G.        Y-C.G.        Z-C.G.
                                  X            1.774601E+00     -1.026268E-17 -2.530611E+00 -1.846764E+01
                                  Y            1.774601E+00     -3.385094E-02 -1.633486E-17 -1.846764E+01
                                  Z            1.774601E+00     -3.385094E-02 -2.530611E+00 -2.181421E-19
                                                                I(S)
                                           *  7.056896E+02 -1.566714E+00  1.411869E-01 *
                                           * -1.566714E+00  6.218375E+02  1.358363E+02 *
                                           *  1.411869E-01  1.358363E+02  4.158613E+02 *
                                                                I(Q)
                                           *  6.891835E+02                             *
                                           *                3.483842E+02               *
                                           *                              7.058207E+02 *
                                                                 Q
                                           *  8.846355E-02  1.596853E-03  9.960781E-01 *
                                           * -8.920128E-01 -4.448861E-01  7.993453E-02 *
                                           *  4.432690E-01 -8.955857E-01 -3.793179E-02 *

PAGE 1
We can also write the full F06
import getpass
name = getpass.getuser()
os.chdir(os.path.join(r'C:\Users', name, 'Desktop'))

# write the F06 with Real/Imaginary or Magnitude/Phase
# only matters for complex results
op2.write_f06('isat.f06', is_mag_phase=False)

!head -n 40 isat.f06
F06:
 grid_point_weight
RealEigenvalues    case=u'ISAT_SM_LAUNCH_4PT MODES TO 400 HZ'
 RealEigenvectorArray SUBCASE=1 SUBTITLE=
 RealCBarForceArray   SUBCASE=1 SUBTITLE=  - CBAR-34
 RealPlateStressArray SUBCASE=1 SUBTITLE=  - CQUAD4
 RealPlateStressArray SUBCASE=1 SUBTITLE=  - CTRIA3
                           O U T P U T   F R O M   G R I D   P O I N T   W E I G H T   G E N E R A T O R
0                                                     REFERENCE POINT =        0
                                                                M O
                      *  1.774601E+00  1.402827E-19  2.212874E-19 -1.821217E-17 -3.277270E+01  4.490826E+00 *
                      *  1.402827E-19  1.774601E+00 -4.675622E-19  3.277270E+01 -2.898787E-17 -6.007191E-02 *
                      *  2.212874E-19 -4.675622E-19  1.774601E+00 -4.490826E+00  6.007191E-02 -3.871152E-19 *
                      * -1.821217E-17  3.277270E+01 -4.490826E+00  1.322289E+03  1.414696E+00 -1.250574E+00 *
                      * -3.277270E+01 -2.898787E-17  6.007191E-02  1.414696E+00  1.227074E+03 -2.187713E+02 *
                      *  4.490826E+00 -6.007191E-02 -3.871152E-19 -1.250574E+00 -2.187713E+02  4.272278E+02 *
                                                                 S
                                           *  1.000000E+00  0.000000E+00  0.000000E+00 *
                                           *  0.000000E+00  1.000000E+00  0.000000E+00 *
                                           *  0.000000E+00  0.000000E+00  1.000000E+00 *
                               DIRECTION
                          MASS AXIS SYSTEM (S)     MASS              X-C.G.        Y-C.G.        Z-C.G.
                                  X            1.774601E+00     -1.026268E-17 -2.530611E+00 -1.846764E+01
                                  Y            1.774601E+00     -3.385094E-02 -1.633486E-17 -1.846764E+01
                                  Z            1.774601E+00     -3.385094E-02 -2.530611E+00 -2.181421E-19
                                                                I(S)
                                           *  7.056896E+02 -1.566714E+00  1.411869E-01 *
                                           * -1.566714E+00  6.218375E+02  1.358363E+02 *
                                           *  1.411869E-01  1.358363E+02  4.158613E+02 *
                                                                I(Q)
                                           *  6.891835E+02                             *
                                           *                3.483842E+02               *
                                           *                              7.058207E+02 *
                                                                 Q
                                           *  8.846355E-02  1.596853E-03  9.960781E-01 *
                                           * -8.920128E-01 -4.448861E-01  7.993453E-02 *
                                           *  4.432690E-01 -8.955857E-01 -3.793179E-02 *

1    ISAT_SM_LAUNCH_4PT MODES TO 400 HZ                                     JANUARY   4, 2016  pyNastran v0.8.0+dev.82cefee  PAGE     1

1    ISAT_SM_LAUNCH_4PT MODES TO 400 HZ                                     JANUARY   4, 2016  pyNastran v0.8.0+dev.82cefee  PAGE     2
     DEFAULT

                                              R E A L   E I G E N V A L U E S
                                             ISAT_SM_LAUNCH_4PT MODES TO 400 HZ
   MODE    EXTRACTION      EIGENVALUE            RADIANS             CYCLES            GENERALIZED         GENERALIZED
    NO.       ORDER                                                                       MASS              STIFFNESS
#from IPython.display import display, Math, Latex

The mass results are different as pyNastran’s mass assumes point masses

\[m_{plates} = A * (rho * t + nsm)\]
\[m_{solid} = V * rho\]
\[m_{bars} = L * (rho * A + nsm)\]
\[I = m*r^2\]

The larger your model is and the further from the origin, the more accurate the result. For some applications (e.g. a weight breakdown), this is probably be fine.

print('cg =\n%s' % gpw.cg)
print('cg = %s' % cg)
cg =
[[ -1.026e-17  -2.531e+00  -1.847e+01]
 [ -3.385e-02  -1.633e-17  -1.847e+01]
 [ -3.385e-02  -2.531e+00  -2.181e-19]]
cg = [ -0.035  -2.623 -18.53 ]

It’s not like Nastran is perfect either.

Limitations
  1. You cannot do weight statements in Nastran by component/property/material.
  2. Everything is always summmed up (e.g. you can have different geometry in Subcase 2 and MPCs connecting physical geomtry, with other parts flying off into space).

These are things that pyNastran can do.

from pyNastran.bdf.bdf import read_bdf
bdf_filename = os.path.abspath(os.path.join(pkg_path, '..', 'models', 'iSat', 'ISat_Launch_Sm_4pt.dat'))
model = read_bdf(bdf_filename, debug=False)
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=1 midsurface: z1=0.400000006 z2=-0.400000006 t=0.035999998 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=2 midsurface: z1=0.400000006 z2=-0.400000006 t=0.054000005 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=3 midsurface: z1=0.400000006 z2=-0.400000006 t=0.017999999 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=7 midsurface: z1=0.418000013 z2=-0.418000013 t=0.035999998 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=34 midsurface: z1=0.194000006 z2=-0.194000006 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=37 midsurface: z1=0.308999985 z2=-0.308999985 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=38 midsurface: z1=0.284000009 z2=-0.284000009 t=0.0186 not in range of -1.5t < zi < 1.5t
WARNING:   fname=shell.py                  lineNo=1434   PSHELL pid=46 midsurface: z1=0.199000001 z2=-0.199000001 t=0.0186 not in range of -1.5t < zi < 1.5t
Let’s get the breakdown by property ID
from six import iteritems
#help(model.mass_properties)

pid_to_eids_map = model.get_element_ids_dict_with_pids()
#print(pid_to_eids_map.keys())
print('pid, mass, cg, [ixx, iyy, izz, ixy, ixz]')
for pid, eids in sorted(iteritems(pid_to_eids_map)):
    mass, cg, inertia = model.mass_properties(element_ids=eids, reference_point=[0., 0., 0.])
    print('%-3s %-.6f %-38s %s' % (pid, mass, cg, inertia))
pid, mass, cg, [ixx, iyy, izz, ixy, ixz]
1   0.027278 [  4.297e-15   2.980e-15  -2.000e+01]  [  1.461e+01   1.746e+01   4.384e+00   4.098e-17   1.450e-15   4.619e-16]
2   0.047993 [ -6.506e-16   2.530e-16  -2.000e+01]  [  3.723e+01   3.723e+01   1.245e+01  -3.469e-17  -5.690e-16   2.047e-16]
3   0.020998 [  6.842e-17  -4.699e-16  -2.000e+01]  [  1.428e+01   1.231e+01   5.270e+00   2.992e-17   5.281e-16   1.011e-15]
4   0.012216 [  0.043   0.438 -19.702]              [  7.090e+00   7.972e+00   2.021e+00   1.057e-02  -5.272e-03  -5.334e-02]
5   0.330158 [  0.    2.2 -20. ]                    [  1.970e+02   1.604e+02   4.335e+01   0.000e+00   4.441e-16  -1.453e+01]
7   0.027813 [  6.578e-17  -1.143e-14  -2.000e+01]  [  1.927e+01   1.927e+01   9.438e+00  -3.408e-15  -2.069e-16  -1.751e-15]
8   0.081584 [  0.000e+00   6.804e-16  -2.000e+01]  [  4.772e+01   4.772e+01   3.017e+01  -8.882e-16   0.000e+00  -8.882e-16]
9   0.012578 [  0.000e+00  -7.585e-16  -2.000e+01]  [  7.788e+00   7.788e+00   3.064e+00   5.551e-17  -4.857e-17  -1.180e-16]
10  0.000236 [  0.000e+00  -4.595e-16  -2.000e+01]  [  1.290e-01   1.290e-01   5.747e-02  -8.674e-19  -1.735e-18  -8.674e-19]
11  0.041700 [ -1.025  23.773 -12.016]              [ 30.253   7.053  23.957  -1.053   0.776 -11.967]
12  0.000457 [  0.     -5.92   20.506]              [ 0.221  0.205  0.016  0.     0.    -0.054]
13  0.000000 [ 0.  0.  0.]                          [ 0.  0.  0.  0.  0.  0.]
14  0.000353 [ -2.305e-16   0.000e+00   1.439e+01]  [  7.655e-02   8.537e-02   8.821e-03   0.000e+00  -2.168e-18   0.000e+00]
15  0.000000 [ 0.  0.  0.]                          [ 0.  0.  0.  0.  0.  0.]
16  0.000000 [ 0.  0.  0.]                          [ 0.  0.  0.  0.  0.  0.]
19  0.017749 [ -0.23    6.021 -35.642]              [ 24.961  26.944   6.461  -0.078   0.151  -3.954]
20  0.163082 [  6.808e-16   0.000e+00  -1.855e+01]  [  6.510e+01   9.086e+01   2.576e+01   0.000e+00  -1.776e-15   0.000e+00]
21  0.003625 [ -1.196e-16  -1.077e-15  -2.000e+01]  [  2.178e+00   2.178e+00   1.410e+00   0.000e+00   0.000e+00  -2.776e-17]
22  0.000000 [ 0.  0.  0.]                          [ 0.  0.  0.  0.  0.  0.]
23  0.000000 [ 0.  0.  0.]                          [ 0.  0.  0.  0.  0.  0.]
33  0.001346 [ -3.612e-14  -2.175e+00   3.691e-01]  [  8.358e-02   8.533e-02   1.683e-01   1.802e-16  -3.670e-17  -1.832e-03]
34  0.003561 [ -5.899e-17  -1.903e-18   1.483e+01]  [  1.054e+00   1.054e+00   6.701e-02  -5.828e-19  -4.120e-18  -8.674e-19]
35  0.000000 [ 0.  0.  0.]                          [ 0.  0.  0.  0.  0.  0.]
36  0.007197 [  3.676e-15   0.000e+00  -1.478e+01]  [  2.408e+00   5.178e+00   3.020e+00   6.939e-18   8.153e-17  -1.041e-17]
37  0.094566 [ -4.439e-15   0.000e+00  -1.950e+01]  [  4.493e+01   8.867e+01   4.649e+01   5.454e-14  -2.776e-16   0.000e+00]
38  0.007602 [  6.830e-06  -9.329e+00   2.731e+01]  [  7.013e+00   6.884e+00   1.223e+00  -2.922e-07   1.641e-06  -1.867e+00]
39  0.002433 [  1.348e-13  -8.954e+00   4.040e+00]  [  2.568e-01   8.454e-02   2.187e-01  -2.920e-15   1.207e-15  -9.123e-02]
41  0.000735 [ -9.583e-16  -1.843e-17   2.193e+00]  [  1.226e-02   6.032e-02   6.220e-02   5.127e-16   8.674e-19  -5.421e-20]
42  0.008854 [ -1.554  20.121 -19.007]              [ 7.95   4.679  3.9   -0.277  0.318 -3.386]
43  0.012241 [  6.191e-15   2.214e-18  -1.950e+01]  [  6.882e+00   1.224e+01   6.320e+00   7.003e-15  -4.749e-17   1.762e-18]
46  0.003671 [  3.544e-15   7.383e-18   1.528e+01]  [  1.035e+00   1.205e+00   3.350e-01   1.239e-07   8.544e-17   4.120e-18]
60  0.000000 [ 0.  0.  0.]                          [ 0.  0.  0.  0.  0.  0.]
61  0.000000 [ 0.  0.  0.]                          [ 0.  0.  0.  0.  0.  0.]

test_op2

test_op2 verifies that the OP2 is read properly. It’s mainly a developer debugging script as it runs the OP2 twice (with different routines to make sure the answers are the same), but test_op2 is very useful for understanding what is inside an OP2.

In general, it’s recommended that in general you call test_op2 like:

>>> test_op2 -c fem.op2

If you want an F06 file:

>>> test_op2 -cf fem.op2

You can skip results to minimize memory usage. Skipping stress and rod_strain:

>>> test_op2 -cf fem.op2 -x stress -x rod_strain

You may also skip specific subcases (read subcases 1, 5):

>>> test_op2 -cf fem.op2 -s 1_5

Finally, you can extract the geometry and write a BDF.

>>> test_op2 -c -gn fem.op2

or

>>> test_op2 -c --geometry --write_bdf fem.op2

Calling Signature

test_op2 [-q] [-b] [-c] [-g] [-n] [-m] [-f] [-o] [-p] [-z] [-w] [-t] [-s <sub>] [-x <arg>]... OP2_FILENAME
  test_op2 -h | --help
  test_op2 -v | --version

Tests to see if an OP2 will work with pyNastran

Positional Arguments:
  OP2_FILENAME         Path to OP2 file

Options:
  -b, --binarydebug     Dumps the OP2 as a readable text file
  -c, --disablecompare  Doesn't do a validation of the vectorized result
  -q, --quiet           Suppresses debug messages [default: False]
  -t, --short_stats     Short get_op2_stats printout
  -g, --geometry        Reads the OP2 for geometry, which can be written out
  -n, --write_bdf       Writes the bdf to fem.test_op2.bdf (default=False)
  -f, --write_f06       Writes the f06 to fem.test_op2.f06
  -m, --write_xlsx      Writes an XLSX to fem.test_op2.xlsx
  -o, --write_op2       Writes the op2 to fem.test_op2.op2
  -p, --profile         Profiles the code (default=False)
  -z, --is_mag_phase    F06 Writer writes Magnitude/Phase instead of
                        Real/Imaginary (still stores Real/Imag); [default: False]
  -s <sub>, --subcase   Specify one or more subcases to parse; (e.g. 2_5)
  -w, --is_sort2        Sets the F06 transient to SORT2
  -x <arg>, --exclude   Exclude specific results
  -h, --help            Show this help message and exit
  -v, --version         Show program's version number and exit

OP4 Demo

The iPython notebook for this demo can be found in: - docs:raw-latex:quick_start:raw-latex:demo:raw-latex:`op`4_demo.ipynb - https://github.com/SteveDoyle2/pyNastran/tree/master/docs/quick_start/demo/op4_demo.ipynb

The OP4 is a Nastran input/output format that can store matrices.

The OP2 can as well, but is less validated in regards to matrices.

Import pyNastran

import os
from pyNastran.utils import print_bad_path
from pyNastran.op4.op4 import read_op4
import numpy as np
from numpy import float32, float64, int32, int64, product

# decrease output precision
np.set_printoptions(precision=3, threshold=20)

Graphical User Interface (GUI)

Overview

Introduction

The Graphical User Interface (GUI) looks like:

_images/qt.png

A somewhat messy, but more featured image:

_images/eigenvectors_groups_legend.png

The GUI also has a sidebar and transient support.

Setup Note

Download the entire package from Github or just the GUI executable.

If you download the source, make sure you follow the Installation Guide and use setup.py develop and not setup.py install.

Python 2.7 with vtk==5.10.1 will probably give you the best looking GUI. VTK 6 and 7 probably still have some issues. The GUI in Python 3 won’t save your settings.

Running the GUI

On the command line:

>>> pyNastranGUI

To view the options:

>>> pyNastranGUI --help

  Usage:
    pyNastranGUI [-f FORMAT] INPUT [-o OUTPUT]
                 [-s SHOT] [-m MAGNIFY]
                 [-g GSCRIPT] [-p PSCRIPT]
                 [-u POINTS_FNAME...] [--user_geom GEOM_FNAME...]
                 [-q] [--groups]
    pyNastranGUI [-f FORMAT] INPUT OUTPUT [-o OUTPUT]
                 [-s SHOT] [-m MAGNIFY]
                 [-g GSCRIPT] [-p PSCRIPT]
                 [-u POINTS_FNAME...] [--user_geom GEOM_FNAME...]
                 [-q] [--groups]
    pyNastranGUI [-f FORMAT] [-i INPUT] [-o OUTPUT...]
                 [-s SHOT] [-m MAGNIFY]
                 [-g GSCRIPT] [-p PSCRIPT]
                 [-u POINTS_FNAME...] [--user_geom GEOM_FNAME...]
                 [-q] [--groups]
    pyNastranGUI -h | --help
    pyNastranGUI -v | --version

  Primary Options:
    -f FORMAT, --format FORMAT  format type (cart3d, lawgs, nastran, panair, stl, surf, ugrid)
    -i INPUT, --input INPUT     path to input file
    -o OUTPUT, --output OUTPUT  path to output file

  Secondary Options:
    -g GSCRIPT, --geomscript        path to geometry script file (runs before load geometry)
    -p PSCRIPT, --postscript        path to post script file (runs after load geometry)
    -s SHOT, --shots SHOT           path to screenshot (only 1 for now)
    -m MAGNIFY, --magnify           how much should the resolution on a picture be magnified [default: 5]
    --groups                        enables groups
    --user_geom GEOM_FNAME          add user specified points to an alternate grid (repeatable)
    -u POINTS_FNAME, --user_points  add user specified points to an alternate grid (repeatable)

  Info:
    -q, --quiet    prints debug messages (default=True)
    -h, --help     show this help message and exit
    -v, --version  show program's version number and exit

The standard way to run the code:

>>> pyNastranGUI -f nastran -i model.bdf -o model1.op2 -o model2.op2

The solid_bending.bdf and solid_bending.op2 files have been included as examples that work in the GUI. They are inside the “models” folder (at the same level as setup.py).

You can also run it like:

>>> pyNastranGUI model.bdf model1.op2

Here the code will guess based on your file extension what your file format is. If you want to load a second OP2, you must use -o model2.op2.

Features
  • fringe plot support
    • elemental/nodal results
    • custom CSV results
  • deflection results
  • command line interface
  • scripting capability
  • high resolution screenshot
  • snap to axis
  • change Background Color
  • show/hide elements
  • results may be shown alongside geometry
    • can edit properties (e.g. color/opacity/size) using Edit Geometry Properties... on the View menu
    • additional points may be added with the -u option
    • attach simplistic custom geometry
  • legend is more robust
  • clipping customization menu
  • save/load view menu
  • edges flippable from menu
  • change label color/size menu
Nastran Specific Features
  • attach multiple OP2 files
  • supports SPOINTs
  • displacement/eigenvectors now shown as a deformation (real)
    • scale editable from legend menu
    • rotated into global frame
  • Edit Geometry Properties
    • SPC/MPC/RBE constraints
    • CAERO panel, subpanels
    • AEFACT control surfaces
    • SPLINE panels/points
    • bar/beam orientation vectors
    • CONM2
BDF Requirements
  • Entire model can be cross-referenced
  • Same requirements as BDF (include an executive/case control deck, define all cross-referenced cards, etc.)
Versioning Note

The GUI download is typically newer than the latest release version.

Additional Formats

Some of the results include:

  • Nastran ASCII input (*.bdf, *.nas, *.dat, *.pch); binary output (*.op2)

    • geometry

      • node ID
      • element ID
      • property ID
      • material ID
      • thickness
      • normal
      • shell offset
      • PBAR/PBEAM/PBARL/PBEAML type
      • maximum interior angle
    • results (real only)

      • stress, strain
      • displacement, eigenvector, temperature, SPC forces, MPC forces, load vector
  • Cart3d ASCII/binary input (*.tri); ASCII output (*.triq)

    • Node ID
    • Element ID
    • Region
    • Cp, p, U, V, W, E, rho, rhoU, rhoV, rhoW, rhoE, Mach
    • Normal
  • LaWGS input (*.wgs)

  • Panair input (*.inp); output (agps, *.out)

    • Patch ID
    • Normal X/Y/Z
    • Centroid X/Y/Z
    • Area
    • Node X/Y/Z
    • Cp
  • STL ASCII/binary input (*.stl)

    • Normal X/Y/Z

Features Overview

Edit Geometry Properties

The View -> “Edit Geometry Properties” menu brings up:

_images/edit_geometry_properties.png

This menu allows you to edit the opacity, line width, point size, show/hide various things associated with the model. The geometry auto-updates when changes are made.

Modify Legend

The View -> “Modify Legend” menu brings up:

_images/legend.png

This menu allows you to edit the max/min values of the legend as well as the orientation, number format (e.g. float precision) and deflection scale. Defaults are stored, so they may always be gone back to. The geometry will update when Apply/OK is clicked. OK/Cancel will close the window.

Picking Results

Hover over an element and press the p key. A label will appear. This label will appear at the centroid of an elemental result or the closest node to the selected location. The value for the current result quantity will appear on the model.

_images/picking_results.png

For “NodeID”, the xyz of the selcted point and the node in global XYZ space will be shown. Labels may be cleared from the View menu. Text color may also be changed from the View menu.

Focal Point

Hover over an element and press the f key. The model will now rotate around that point.

Model Clipping

Clipping let’s you see “into” the model.

_images/clipping.png

Zoom in and hover over an element and press the f key. The model will pan and now rotate around that point. Continue to hold f while the model recenters. Eventually, the frame will clip. Reset the view by clicking the Undo-looking arrow at the top.

Modify Groups

The View -> “Modify Groups” menu brings up:

_images/modify_groups1.png

Had you first clicked View -> “Create Groups by Property ID”, you’d get:

_images/modify_groups2.png

Add/Remove use the “Patran-style” syntax:

# elements 1 to 10 inclusive
1:10

# elements 100 to the end
100:#

# every other element 1 to 11 - 1, 3, 5, 7, 9, 11
1:11:2

The name of the group may also be changed, but duplicate names are not allowed. The “main” group is the entire geometry.

The bolded/italicized text indicates the group that will be displayed to the screen. The defaults will be updated when you click Set As Main. This will also update the bolded/italicided group.

Camera Views

The eyeball icon brings up a camera view. You can set and save multiple camera views. Additionally, views are written out for scripting. You can script an external optimization process and take pictures every so many steps.

_images/camera_views.png
User Points

User points allow you to load a CSV of xyz points. These may be loaded from within the GUI or from the command line.

# x, y, z
1.0, 2.0, 3.0
4.0, 5.0, 6.0

These will show up as points in the GUI with your requested filename.

User Geometry

User geometry is an attempt at creating a simple file format for defining geometry. This may be loaded from the command line. The structure will probably change.

The geometry may be modified from the Edit Geometry Properties menu.

# all supported cards
#  - GRID
#  - BAR
#  - TRI
#  - QUAD
#
# doesn't support:
#  - solid elements
#  - element properties
#  - custom colors
#  - coordinate systems
#  - materials
#  - loads
#  - results

#    id  x    y    z
GRID, 1, 0.2, 0.3, 0.3
GRID, 2, 1.2, 0.3, 0.3
GRID, 3, 2.2, 0.3, 0.3
GRID, 4, 5.2, 0.3, 0.3
grid, 5, 5.2, 1.3, 2.3  # case insensitive

#    ID, nodes
BAR,  1, 1, 2
TRI,  2, 1, 2, 3
# this is a comment

QUAD, 3, 1, 5, 3, 4
QUAD, 4, 1, 2, 3, 4  # this is after a blank line
Custom Scalar Results

Custom Elemental/Nodal CSV/TXT file results may be loaded. The order and length is important. Results must be in nodal/elemental sorted order. The following example has 3 scalar values with 2 locations. The model must have only two nodes.

# x(%f), y(%i), z(%f)
1.0,     2,     3.0
4.0,     5,     6.0
Custom Results Specific Buttons

Nastran Static/Dynamic Aero solutions require custom cards that create difficult to view, difficult to validate geometry. The pyNastranGUI aides in creating models. The CAERO panels are seen when a model is loaded:

_images/caero.png

Additionally, by clicking the Toggle CAERO Subpanels button (the figure is somewhat outdated), the subpanels may be seen:

_images/caero_subpanels.png

Additionally, flaps are shown from within the GUI. SPLINE surfaces are also generated and may be seen on the View -> Edit Geometry Properties menu.

Scripting

GUI commands are logged to the window with their call signature. Scripting may be used to call any function in the GUI class. Most of these commands are written to the COMMAND output.

For example, you can:

  • load geometry
  • load results
  • plot unsupported result types
  • custom animations of mode shapes
  • high resolution screenshots
  • model introspection
Using the scripting menu

The scripting menu allows for custom code and experimentation to be written without loading a script from a file. All valid Python is accepted. Scripting commands should start with self. as they’re left off from the menu. Local variables do not need this.

Command line scripting

geom_script runs after the load_geometry method, while postscript runs after load_results has been performed

import sys
self.on_take_screenshot('solid_bending.png', magnify=5)
sys.exit()
>>> pyNastranGUI solid_bending.bdf solid_bending.op2 --postscript take_picture.py
High Resolution Screenshots
Option #1
self.on_take_screenshot('solid_bending.png', magnify=5)
Option #2
self.magnify = 5

Now take a screenshot.

Animation of Displacment/Mode Shapes

While it’s possible to take multiple screenshots of geometry with different scale factors, it’s tedious. Additionally, you can only plot displacement-type results (e.g. displacement, eigenvector) with deflection and not result types like Node ID or stress unless you write a script.

_images/solid_bending.gif
from PIL.Image import open as open_image
from pyNastran.gui.images2gif import writeGif

icase = 9
out = self.get_result_data_from_icase(icase)
obj, i, j, res_name, subcase_id, result_type, vector_size, location, data_format, label2 = out

xyz_base = obj.xyz
nnodes = xyz_base.shape[0]
actor = self.geometry_actors['main']

screenshot_filenames = []
scales = np.arange(-1., 1., 0.1) * 100.
for scale in scales:
    screenshot_filename = 'solid_bending_%.0f.png' % scale
    xyz = xyz_base + scale * obj.dxyz[i, :]
    for j in range(nnodes):
        self.grid.GetPoints().SetPoint(j, xyz[j, :])

    self.grid.Modified()
    actor.Modified()
    self.rend.Render()
    self.on_take_screenshot(screenshot_filename, magnify=1)
    screenshot_filenames.append(screenshot_filename)

screenshot_filenames += screenshot_filenames[::-1][1:]
gif_filename = 'solid_bending.gif'
with open_image(screenshot_filenames[0]) as image:
    shape = (image.width, image.height)

print('Writing gif to %s' % (gif_filename))

# down-res the image so we use less space
shape2 = (shape[0] // 2, shape[1] // 2)
images = [open_image(filename).resize(shape2) for filename in screenshot_filenames]

#writeGif('solid_bending.gif', images, duration=1/framerate, subRectangles=False)
writeGif(gif_filename, images, duration=0.1, dither=False)

Matlab

Example 1

TODO...

Static & Transient DataFrames in PyNastran

The iPython notebook for this demo can be found in: - docs:raw-latex:quick_start:raw-latex:demo:raw-latex:`op`2_pandas_multi_case.ipynb - https://github.com/SteveDoyle2/pyNastran/tree/master/docs/quick_start/demo/op2_pandas_multi_case.ipynb

import os
import pandas as pd
import pyNastran
from pyNastran.op2.op2 import read_op2

pkg_path = pyNastran.__path__[0]
model_path = os.path.join(pkg_path, '..', 'models')

Solid Bending

Let’s show off combine=True/False. We’ll talk about the keys soon.

solid_bending_op2 = os.path.join(model_path, 'solid_bending', 'solid_bending.op2')
solid_bending = read_op2(solid_bending_op2, combine=False, debug=False)
print(solid_bending.displacements.keys())
INFO:      fname=op2_scalar.py             lineNo=1176   op2_filename = 'f:\work\pynastran\pynastran\master3\pyNastran\..\models\solid_bending\solid_bending.op2'
[(1, 1, 1, 0, u'DEFAULT')]
solid_bending_op2 = os.path.join(model_path, 'solid_bending', 'solid_bending.op2')
solid_bending2 = read_op2(solid_bending_op2, combine=True, debug=False)
print(solid_bending2.displacements.keys())
INFO:      fname=op2_scalar.py             lineNo=1176   op2_filename = 'f:\work\pynastran\pynastran\master3\pyNastran\..\models\solid_bending\solid_bending.op2'
[1]

Single Subcase Buckling Example

The keys cannot be “combined” despite us telling the program that it was OK. We’ll get the following values that we need to handle. #### isubcase, analysis_code, sort_method, count, subtitle * isubcase -> the same key that you’re used to accessing * sort_method -> 1 (SORT1), 2 (SORT2) * count -> the optimization count * subtitle -> the analysis subtitle (changes for superlements) * analysis code -> the “type” of solution

### Partial code for calculating analysis code:

 if trans_word == 'LOAD STEP':  # nonlinear statics
    analysis_code = 10
elif trans_word in ['TIME', 'TIME STEP']:  # TODO check name
    analysis_code = 6
elif trans_word == 'EIGENVALUE':  # normal modes
    analysis_code = 2
elif trans_word == 'FREQ':  # TODO check name
    analysis_code = 5
elif trans_word == 'FREQUENCY':
    analysis_code = 5
elif trans_word == 'COMPLEX EIGENVALUE':
    analysis_code = 9
else:
    raise NotImplementedError('transient_word=%r is not supported...' % trans_word)
Let’s look at an odd case:

You can do buckling as one subcase or two subcases (makes parsing it a lot easier!).

However, you have to do this once you start messing around with superelements or multi-step optimization.

For optimization, sometimes Nastran will downselect elements and do an optimization on that and print out a subset of the elements. At the end, it will rerun an analysis to double check the constraints are satisfied. It does not always do multi-step optimization.

op2_filename = os.path.join(model_path, 'sol_101_elements', 'buckling_solid_shell_bar.op2')
model = read_op2(op2_filename, combine=True, debug=False, build_dataframe=True)
INFO:      fname=op2_scalar.py             lineNo=1176   op2_filename = 'f:\work\pynastran\pynastran\master3\pyNastran\..\models\sol_101_elements\buckling_solid_shell_bar.op2'
stress_keys = model.cquad4_stress.keys()
print (stress_keys)

# isubcase, analysis_code, sort_method, count, subtitle
key0 = (1, 1, 1, 0, 'DEFAULT1')
key1 = (1, 8, 1, 0, 'DEFAULT1')
[(1, 1, 1, 0, u'DEFAULT1'), (1, 8, 1, 0, u'DEFAULT1')]

Keys: * key0 is the “static” key * key1 is the “buckling” key

Similarly: * Transient solutions can have preload * Frequency solutions can have loadsets (???)

Moving onto the data frames

  • The static case is the initial deflection state
  • The buckling case is “transient”, where the modes (called load steps or lsdvmn here) represent the “times”

pyNastran reads these tables differently and handles them differently internally. They look very similar though.

stress_static = model.cquad4_stress[key0].data_frame
stress_transient = model.cquad4_stress[key1].data_frame

# The final calculated factor:
#   Is it a None or not?
# This defines if it's static or transient
print('stress_static.nonlinear_factor = %s' % model.cquad4_stress[key0].nonlinear_factor)
print('stress_transient.nonlinear_factor = %s' % model.cquad4_stress[key1].nonlinear_factor)

print('data_names  = %s' % model.cquad4_stress[key1].data_names)
print('loadsteps   = %s' % model.cquad4_stress[key1].lsdvmns)
print('eigenvalues = %s' % model.cquad4_stress[key1].eigrs)
stress_static.nonlinear_factor = None
stress_transient.nonlinear_factor = 4
data_names  = [u'lsdvmn', u'eigr']
loadsteps   = [1, 2, 3, 4]
eigenvalues = [-49357660160.0, -58001940480.0, -379750744064.0, -428462538752.0]

Static Table

# Sets default precision of real numbers for pandas output\n"
pd.set_option('precision', 2)

stress_static.head(20)
index fiber_distance oxx oyy txy angle omax omin von_mises
ElementID NodeID Location
6 CEN Top 0 -0.12 5.85e-07 9.73e-06 -1.36e-07 -89.15 9.73e-06 5.83e-07 9.46e-06
Bottom 1 0.12 4.71e-07 9.44e-06 -1.61e-07 -88.97 9.44e-06 4.69e-07 9.21e-06
4 Top 2 -0.12 -6.50e-07 9.48e-06 -1.36e-07 -89.23 9.48e-06 -6.52e-07 9.82e-06
Bottom 3 0.12 -8.37e-07 9.11e-06 -1.61e-07 -89.08 9.12e-06 -8.39e-07 9.56e-06
1 Top 4 -0.12 -6.50e-07 9.98e-06 -1.36e-07 -89.27 9.99e-06 -6.51e-07 1.03e-05
Bottom 5 0.12 -8.37e-07 9.76e-06 -1.61e-07 -89.13 9.76e-06 -8.39e-07 1.02e-05
14 Top 6 -0.12 1.82e-06 9.98e-06 -1.36e-07 -89.05 9.99e-06 1.82e-06 9.21e-06
Bottom 7 0.12 1.78e-06 9.76e-06 -1.61e-07 -88.85 9.76e-06 1.78e-06 9.01e-06
15 Top 8 -0.12 1.82e-06 9.48e-06 -1.36e-07 -88.98 9.48e-06 1.82e-06 8.72e-06
Bottom 9 0.12 1.78e-06 9.11e-06 -1.61e-07 -88.75 9.12e-06 1.78e-06 8.37e-06
7 CEN Top 10 -0.12 7.16e-07 1.02e-05 1.22e-07 89.26 1.02e-05 7.14e-07 9.82e-06
Bottom 11 0.12 7.31e-07 1.04e-05 1.53e-07 89.10 1.04e-05 7.29e-07 1.01e-05
3 Top 12 -0.12 -7.30e-07 1.04e-05 1.22e-07 89.37 1.04e-05 -7.31e-07 1.08e-05
Bottom 13 0.12 -8.05e-07 1.07e-05 1.53e-07 89.24 1.07e-05 -8.07e-07 1.12e-05
2 Top 14 -0.12 -7.30e-07 9.90e-06 1.22e-07 89.34 9.90e-06 -7.31e-07 1.03e-05
Bottom 15 0.12 -8.05e-07 1.01e-05 1.53e-07 89.20 1.01e-05 -8.07e-07 1.05e-05
17 Top 16 -0.12 2.16e-06 9.90e-06 1.22e-07 89.10 9.90e-06 2.16e-06 9.02e-06
Bottom 17 0.12 2.27e-06 1.01e-05 1.53e-07 88.88 1.01e-05 2.26e-06 9.18e-06
16 Top 18 -0.12 2.16e-06 1.04e-05 1.22e-07 89.15 1.04e-05 2.16e-06 9.52e-06
Bottom 19 0.12 2.27e-06 1.07e-05 1.53e-07 88.96 1.07e-05 2.26e-06 9.79e-06

Transient Table

# Sets default precision of real numbers for pandas output\n"
pd.set_option('precision', 3)
#import numpy as np
#np.set_printoptions(formatter={'all':lambda x: '%g'})

stress_transient.head(20)
LoadStep Item 1 2 3 4
EigenvalueReal -49357660160.0 -58001940480.0 -3.79750744064e+11 -4.28462538752e+11
Freq 35358.7915137 38330.227181 98077.5138317 104178.13059
Radians 222165.839318 240835.920244 616239.193872 654570.499451
ElementID NodeID Location
6 CEN Top fiber_distance -0.125 -0.125 -0.125 -0.125
Top oxx -36570.457 -158687.391 -149706.203 1068952.125
Top oyy 206374.969 1083602.750 403245.969 6158211.500
Top txy 229.650 -12673.086 4394314.500 -357167.656
Top angle 89.946 -89.416 46.800 -86.005
Top omax 206375.188 1083732.125 4529773.000 6183155.500
Top omin -36570.672 -158816.656 -4276233.500 1044008.062
Top von_mises 226881.938 1171244.000 7627279.000 5732896.500
Bottom fiber_distance 0.125 0.125 0.125 0.125
Bottom oxx -28156.799 -95551.906 -194234.062 -488197.969
Bottom oyy 140208.719 732509.188 7016.848 -278514.844
Bottom txy 74085.039 -35219.672 4534850.000 -353332.000
Bottom angle 69.325 -87.569 45.636 -53.263
Bottom omax 168165.734 734004.500 4442357.500 -14798.063
Bottom omin -56113.816 -97047.195 -4629575.000 -751914.750
Bottom von_mises 202150.672 787028.500 7857081.500 744626.000
4 Top fiber_distance -0.125 -0.125 -0.125 -0.125
Top oxx -99755.844 -580174.062 -292532.719 793623.688
Top oyy -1101563.000 1460770.000 -3137639.000 6441436.000
Top txy 229.650 -12673.086 4394314.500 -357167.656

Transient DataFrames in PyNastran

The iPython notebook for this demo can be found in: - docs:raw-latex:quick_start:raw-latex:demo:raw-latex:`op`2_pandas_DataFrames.ipynb - https://github.com/SteveDoyle2/pyNastran/tree/master/docs/quick_start/demo/op2_pandas_DataFrames.ipynb

We’ll use standard pyNastran methods to load a model. We’ll set build_dataframe=True to make pandas objects

import os
import pandas as pd
pd.set_option('precision', 3)

import pyNastran
pkg_path = pyNastran.__path__[0]
from pyNastran.op2.op2 import read_op2

op2_filename = os.path.join(pkg_path, '..', 'models', 'iSat', 'iSat_launch_100Hz.op2')
isat = read_op2(op2_filename, build_dataframe=True, debug=False, skip_undefined_matrices=True)
INFO:      fname=op2_scalar.py             lineNo=1176   op2_filename = 'f:\work\pynastran\pynastran\master3\pyNastran\..\models\iSat\iSat_launch_100Hz.op2'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAPCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAQCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RASCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAFCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAECONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RANCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAGCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAPEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAQEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RASEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAFEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAEEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RANEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAGEATC'

Get a list of all objects:

print(isat.get_op2_stats(short=True))
eigenvectors[1]
eigenvectors_RADCONS[1]
eigenvectors_RADEFFM[1]
eigenvectors_RADEATC[1]
mpc_forces[1]
grid_point_forces[1]
cbar_force[1]
cquad4_stress[1]
cquad4_strain[1]
chexa_stress[1]
chexa_strain[1]
eigenvalues[u'ISAT_SM_LAUNCH_4PT MODES TO 100 HZ']
cbush_force[1]
cquad4_force[1]
cquad4_composite_stress[1]
ctria3_composite_stress[1]
cquad4_composite_strain[1]
ctria3_composite_strain[1]
cquad4_strain_energy[1]
ctria3_strain_energy[1]
chexa_strain_energy[1]
cbar_strain_energy[1]
cbush_strain_energy[1]
matrices[RBMASSS].shape = (6L, 6L)
matrices[BHH].shape = (33L, 33L)
matrices[EFMASSS].shape = (6L, 6L)
matrices[EFMFSMS].shape = (6L, 1L)
matrices[RAFGEN].shape = (33L, 1L)
matrices[MEFWTS].shape = (6L, 33L)
matrices[K4HH].shape = (33L, 33L)
matrices[RADAMPZ].shape = (33L, 33L)
matrices[RADAMPG].shape = (33L, 33L)
matrices[MEFMASS].shape = (6L, 33L)
matrices[EFMFACS].shape = (6L, 33L)
matrices[MPFACS].shape = (6L, 33L)
matrices[RADEFMP].shape = (33L, 12L)

Access the DataFrames

eigenvalues             = isat.eigenvalues[u'ISAT_SM_LAUNCH_4PT MODES TO 100 HZ'].data_frame
eigenvectors            = isat.eigenvectors[1].data_frame
mpc_forces              = isat.mpc_forces[1].data_frame
grid_point_forces       = isat.grid_point_forces[1].data_frame
cbar_force              = isat.cbar_force[1].data_frame
cbush_force             = isat.cbush_force[1].data_frame
cquad4_force            = isat.cquad4_force[1].data_frame
cquad4_stress           = isat.cquad4_stress[1].data_frame
chexa_stress            = isat.chexa_stress[1].data_frame
cquad4_composite_stress = isat.cquad4_composite_stress[1].data_frame
ctria3_composite_stress = isat.ctria3_composite_stress[1].data_frame
cquad4_strain           = isat.cquad4_strain[1].data_frame
chexa_strain            = isat.chexa_strain[1].data_frame
cquad4_composite_strain = isat.cquad4_composite_strain[1].data_frame
ctria3_composite_strain = isat.ctria3_composite_strain[1].data_frame
#del isat

Now list each of the objects and be amazed!

eigenvalues
Mode ExtractionOrder eigenvalue radians cycle generalized_mass generalized_stiffness
0 1 1 2758.149 52.518 8.359 1 2758.149
1 2 2 3568.632 59.738 9.508 1 3568.632
2 3 3 9689.306 98.434 15.666 1 9689.306
3 4 4 16168.100 127.154 20.237 1 16168.100
4 5 5 16278.223 127.586 20.306 1 16278.223
5 6 6 16679.709 129.150 20.555 1 16679.709
6 7 7 18248.434 135.087 21.500 1 18248.434
7 8 8 18600.697 136.384 21.706 1 18600.697
8 9 9 18632.551 136.501 21.725 1 18632.551
9 10 10 32147.814 179.298 28.536 1 32147.814
10 11 11 38660.684 196.623 31.294 1 38660.684
11 12 12 48432.578 220.074 35.026 1 48432.578
12 13 13 112409.023 335.275 53.361 1 112409.023
13 14 14 113042.672 336.218 53.511 1 113042.672
14 15 15 113475.180 336.861 53.613 1 113475.180
15 16 16 131635.375 362.816 57.744 1 131635.375
16 17 17 148774.906 385.714 61.388 1 148774.906
17 18 18 161249.031 401.558 63.910 1 161249.031
18 19 19 191365.172 437.453 69.623 1 191365.172
19 20 20 204148.297 451.828 71.911 1 204148.297
20 21 21 248182.016 498.179 79.288 1 248182.016
21 22 22 249137.609 499.137 79.440 1 249137.609
22 23 23 251654.172 501.651 79.840 1 251654.172
23 24 24 253140.875 503.131 80.076 1 253140.875
24 25 25 295297.750 543.413 86.487 1 295297.750
25 26 26 306885.906 553.973 88.168 1 306885.906
26 27 27 309040.656 555.914 88.477 1 309040.656
27 28 28 319227.719 565.002 89.923 1 319227.719
28 29 29 350984.500 592.439 94.290 1 350984.500
29 30 30 351566.188 592.930 94.368 1 351566.188
30 31 31 364166.156 603.462 96.044 1 364166.156
31 32 32 384601.344 620.162 98.702 1 384601.344
32 33 33 386090.438 621.362 98.893 1 386090.438
eigenvectors
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
NodeID Item
1 t1 4.783e-03 -4.603e-06 -1.897e-04 4.649e-02 1.609e-04 3.418e-02 -6.925e-05 -1.378e-03 6.644e-04 -1.026e-01 ... 6.956e-02 -1.152e-02 -5.199e-03 7.273e-04 -1.588e-03 -4.755e-02 -3.118e-04 2.620e-01 -5.739e-04 8.475e-02
t2 -1.520e-04 -4.498e-03 1.997e-02 -5.473e-04 8.291e-05 -2.297e-04 4.005e-05 -1.423e-02 -3.019e-02 -8.731e-03 ... 5.743e-02 -2.854e-01 7.239e-03 6.322e-03 -5.218e-03 9.643e-03 1.106e-04 -3.971e-02 -6.828e-04 -5.038e-03
t3 8.177e-04 -1.411e-03 6.603e-03 7.383e-03 -1.335e-03 5.795e-03 -1.029e-04 -4.668e-03 -9.329e-03 -2.086e-02 ... -7.069e-03 1.501e-02 2.409e-02 2.687e-03 1.777e-02 1.803e-02 -7.755e-03 -7.859e-02 7.459e-03 -2.079e-02
r1 7.844e-06 1.974e-04 -9.370e-04 4.649e-05 5.713e-05 1.262e-05 -1.822e-06 5.970e-04 1.275e-03 4.882e-04 ... 1.328e-03 -2.209e-02 5.989e-04 4.577e-04 -7.003e-03 1.504e-03 1.094e-04 -6.754e-03 -1.151e-04 -2.408e-03
r2 2.356e-04 -1.469e-06 -7.085e-06 2.291e-03 5.973e-06 1.604e-03 -3.388e-06 -6.959e-05 2.359e-05 -4.935e-03 ... 4.963e-04 -8.451e-04 6.328e-03 -1.456e-04 1.215e-04 4.780e-03 4.534e-05 -1.864e-02 1.826e-05 -4.895e-03
r3 3.808e-05 1.405e-06 -2.035e-04 1.292e-04 -2.965e-05 5.825e-05 6.086e-08 -1.498e-04 6.374e-05 8.817e-04 ... -8.750e-03 -9.315e-03 -4.098e-03 3.825e-04 -8.811e-04 -1.678e-03 -4.572e-05 7.115e-03 -5.625e-05 8.746e-04
2 t1 4.783e-03 -4.603e-06 -1.897e-04 4.649e-02 1.609e-04 3.418e-02 -6.925e-05 -1.378e-03 6.644e-04 -1.026e-01 ... 6.956e-02 -1.152e-02 -5.199e-03 7.273e-04 -1.588e-03 -4.755e-02 -3.118e-04 2.620e-01 -5.739e-04 8.475e-02
t2 -7.586e-05 -4.495e-03 1.957e-02 -2.889e-04 2.362e-05 -1.132e-04 4.017e-05 -1.453e-02 -3.007e-02 -6.967e-03 ... 3.992e-02 -3.041e-01 -9.565e-04 7.087e-03 -6.980e-03 6.288e-03 1.914e-05 -2.548e-02 -7.953e-04 -3.289e-03
t3 3.465e-04 -1.408e-03 6.617e-03 2.801e-03 -1.347e-03 2.588e-03 -9.610e-05 -4.528e-03 -9.376e-03 -1.099e-02 ... -8.062e-03 1.670e-02 1.143e-02 2.978e-03 1.753e-02 8.466e-03 -7.846e-03 -4.130e-02 7.422e-03 -1.100e-02
r1 7.844e-06 1.974e-04 -9.370e-04 4.649e-05 5.713e-05 1.262e-05 -1.822e-06 5.970e-04 1.275e-03 4.882e-04 ... 1.328e-03 -2.209e-02 5.989e-04 4.577e-04 -7.003e-03 1.504e-03 1.094e-04 -6.754e-03 -1.151e-04 -2.408e-03
r2 2.356e-04 -1.469e-06 -7.085e-06 2.291e-03 5.973e-06 1.604e-03 -3.388e-06 -6.959e-05 2.359e-05 -4.935e-03 ... 4.963e-04 -8.451e-04 6.328e-03 -1.456e-04 1.215e-04 4.780e-03 4.534e-05 -1.864e-02 1.826e-05 -4.895e-03
r3 3.808e-05 1.405e-06 -2.035e-04 1.292e-04 -2.965e-05 5.825e-05 6.086e-08 -1.498e-04 6.374e-05 8.817e-04 ... -8.750e-03 -9.315e-03 -4.098e-03 3.825e-04 -8.811e-04 -1.678e-03 -4.572e-05 7.115e-03 -5.625e-05 8.746e-04
3 t1 5.366e-03 -8.268e-06 -2.216e-04 5.218e-02 1.778e-04 3.818e-02 -7.766e-05 -1.526e-03 7.134e-04 -1.149e-01 ... 7.093e-02 -1.334e-02 1.064e-02 4.827e-04 -1.207e-03 -3.557e-02 -2.138e-04 2.154e-01 -5.517e-04 7.238e-02
t2 -1.665e-04 -4.985e-03 2.219e-02 -5.796e-04 -1.982e-07 -2.302e-04 4.437e-05 -1.573e-02 -3.333e-02 -9.943e-03 ... 5.474e-02 -2.310e-01 6.516e-03 5.141e-03 1.281e-02 5.925e-03 -1.468e-04 -2.186e-02 -4.073e-04 1.324e-03
t3 8.168e-04 -1.411e-03 6.599e-03 7.365e-03 -1.336e-03 5.787e-03 -1.029e-04 -4.668e-03 -9.329e-03 -2.084e-02 ... -7.047e-03 1.503e-02 2.408e-02 2.669e-03 1.778e-02 1.801e-02 -7.748e-03 -7.858e-02 7.459e-03 -2.076e-02
r1 8.172e-06 1.972e-04 -9.380e-04 5.422e-05 6.038e-05 1.025e-05 -1.811e-06 5.961e-04 1.275e-03 5.058e-04 ... 1.260e-03 -2.190e-02 6.328e-04 4.519e-04 -7.011e-03 1.567e-03 1.114e-04 -7.087e-03 -1.132e-04 -2.529e-03
r2 2.356e-04 -1.469e-06 -7.091e-06 2.291e-03 5.975e-06 1.604e-03 -3.388e-06 -6.959e-05 2.359e-05 -4.935e-03 ... 4.963e-04 -8.450e-04 6.328e-03 -1.456e-04 1.215e-04 4.780e-03 4.535e-05 -1.864e-02 1.825e-05 -4.895e-03
r3 3.150e-05 -2.537e-06 -1.159e-05 3.114e-05 7.084e-06 5.241e-06 8.916e-08 -1.278e-04 4.439e-05 6.552e-04 ... -6.064e-03 -4.016e-03 -9.461e-04 1.519e-04 -8.794e-04 6.687e-04 7.993e-07 -4.101e-03 -3.794e-05 -1.265e-03
4 t1 5.366e-03 -8.330e-06 -2.211e-04 5.219e-02 1.787e-04 3.818e-02 -7.766e-05 -1.526e-03 7.133e-04 -1.149e-01 ... 7.093e-02 -1.326e-02 1.065e-02 4.918e-04 -1.193e-03 -3.557e-02 -2.154e-04 2.154e-01 -5.525e-04 7.238e-02
t2 -9.532e-05 -4.985e-03 2.198e-02 -4.398e-04 -7.593e-05 -1.697e-04 4.474e-05 -1.601e-02 -3.322e-02 -7.928e-03 ... 3.569e-02 -2.477e-01 -2.925e-03 5.861e-03 1.027e-02 2.880e-03 -2.270e-04 -1.129e-02 -4.901e-04 1.409e-03
t3 3.475e-04 -1.408e-03 6.621e-03 2.819e-03 -1.346e-03 2.597e-03 -9.612e-05 -4.528e-03 -9.377e-03 -1.100e-02 ... -8.087e-03 1.666e-02 1.143e-02 3.004e-03 1.752e-02 8.480e-03 -7.853e-03 -4.132e-02 7.420e-03 -1.102e-02
r1 7.323e-06 1.976e-04 -9.387e-04 3.944e-05 5.584e-05 1.423e-05 -1.836e-06 5.980e-04 1.273e-03 4.655e-04 ... 1.348e-03 -2.229e-02 4.951e-04 4.631e-04 -6.966e-03 1.396e-03 1.074e-04 -6.239e-03 -1.164e-04 -2.227e-03
r2 2.356e-04 -1.469e-06 -7.088e-06 2.291e-03 5.971e-06 1.604e-03 -3.388e-06 -6.959e-05 2.359e-05 -4.935e-03 ... 4.964e-04 -8.448e-04 6.328e-03 -1.456e-04 1.216e-04 4.780e-03 4.534e-05 -1.864e-02 1.826e-05 -4.895e-03
r3 3.222e-05 -8.046e-07 5.499e-05 3.545e-05 2.334e-06 6.479e-06 1.232e-07 -1.226e-04 6.149e-05 7.328e-04 ... -6.690e-03 -3.144e-03 -1.442e-03 1.254e-04 -1.175e-03 3.937e-04 8.474e-06 -3.010e-03 -3.323e-05 -1.213e-03
5 t1 5.961e-03 -1.195e-05 -2.252e-04 5.794e-02 1.908e-04 4.219e-02 -8.619e-05 -1.726e-03 7.824e-04 -1.273e-01 ... 7.204e-02 -1.574e-02 2.644e-02 -6.614e-07 -9.805e-04 -2.365e-02 -8.509e-05 1.687e-01 -4.826e-04 6.027e-02
t2 -1.912e-04 -5.485e-03 2.466e-02 -7.798e-04 -2.027e-04 -2.928e-04 4.916e-05 -1.722e-02 -3.657e-02 -1.117e-02 ... 5.078e-02 -1.750e-01 4.245e-03 4.033e-03 2.980e-02 2.121e-03 -4.367e-04 -5.935e-03 -1.071e-04 7.004e-03
t3 8.177e-04 -1.411e-03 6.603e-03 7.383e-03 -1.335e-03 5.795e-03 -1.029e-04 -4.668e-03 -9.329e-03 -2.086e-02 ... -7.069e-03 1.501e-02 2.409e-02 2.687e-03 1.777e-02 1.803e-02 -7.755e-03 -7.859e-02 7.459e-03 -2.079e-02
r1 7.844e-06 1.974e-04 -9.370e-04 4.649e-05 5.713e-05 1.262e-05 -1.822e-06 5.970e-04 1.275e-03 4.882e-04 ... 1.328e-03 -2.209e-02 5.989e-04 4.577e-04 -7.003e-03 1.504e-03 1.094e-04 -6.754e-03 -1.151e-04 -2.408e-03
r2 2.356e-04 -1.469e-06 -7.085e-06 2.291e-03 5.973e-06 1.604e-03 -3.388e-06 -6.959e-05 2.359e-05 -4.935e-03 ... 4.963e-04 -8.451e-04 6.328e-03 -1.456e-04 1.215e-04 4.780e-03 4.534e-05 -1.864e-02 1.826e-05 -4.895e-03
r3 3.808e-05 1.405e-06 -2.035e-04 1.292e-04 -2.965e-05 5.825e-05 6.086e-08 -1.498e-04 6.374e-05 8.817e-04 ... -8.750e-03 -9.315e-03 -4.098e-03 3.825e-04 -8.811e-04 -1.678e-03 -4.572e-05 7.115e-03 -5.625e-05 8.746e-04
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5629 r2 -2.652e-05 1.424e-05 -9.370e-05 -2.956e-04 3.750e-06 -1.464e-04 3.768e-07 5.684e-05 9.662e-05 1.169e-04 ... 1.147e-03 1.045e-03 -9.297e-03 8.883e-05 -8.159e-04 -1.083e-02 -7.433e-05 4.795e-02 -5.038e-05 1.669e-02
r3 -1.360e-05 -1.463e-05 6.278e-05 -1.863e-05 -3.205e-06 -4.586e-05 -1.952e-07 -3.109e-05 -1.056e-04 -4.573e-04 ... -4.006e-02 -7.522e-04 -4.113e-02 5.235e-04 -9.704e-04 -2.391e-02 -1.532e-04 9.419e-02 -1.224e-04 2.540e-02
5630 t1 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
t2 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
t3 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
r1 -9.236e-06 5.989e-05 -2.115e-04 3.352e-05 7.314e-06 2.656e-05 -6.836e-07 2.610e-04 3.961e-04 -3.628e-04 ... -1.009e-03 2.484e-02 -4.151e-05 -6.733e-04 4.820e-03 2.007e-04 6.944e-09 -2.006e-03 1.454e-04 -1.561e-03
r2 -1.465e-04 -1.370e-06 -5.205e-07 -1.550e-03 1.280e-05 -9.804e-04 7.567e-07 -1.124e-05 -2.168e-05 3.064e-03 ... -4.260e-03 2.232e-03 -1.665e-02 9.862e-04 7.816e-04 -1.174e-02 -1.524e-04 4.781e-02 -7.502e-04 1.181e-02
r3 8.294e-06 -3.527e-05 2.780e-04 1.163e-05 -7.742e-07 1.042e-05 5.294e-07 -1.103e-04 -1.976e-04 3.373e-04 ... 1.393e-02 2.556e-02 1.862e-02 -8.446e-04 7.201e-03 1.050e-02 -1.112e-06 -4.164e-02 1.661e-04 -1.112e-02
5631 t1 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
t2 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
t3 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
r1 -1.170e-06 -1.010e-04 6.944e-04 -1.343e-05 5.211e-05 -8.947e-06 2.129e-06 -2.893e-04 -5.853e-04 -8.865e-05 ... -2.248e-03 5.030e-02 2.303e-03 -1.153e-03 1.248e-02 -8.466e-05 -1.497e-04 6.619e-04 2.399e-04 2.644e-05
r2 -7.324e-06 1.965e-06 -5.376e-06 -5.817e-05 6.005e-09 3.957e-05 -2.939e-08 3.560e-05 -4.600e-06 -1.047e-04 ... 6.757e-03 2.301e-03 -1.309e-04 -1.111e-04 4.543e-04 -6.065e-04 2.829e-05 1.562e-03 4.085e-05 -8.502e-04
r3 -4.675e-05 -2.844e-06 -8.917e-07 -3.364e-04 4.251e-08 -2.102e-04 2.663e-07 2.020e-05 -2.852e-05 4.406e-05 ... -2.593e-02 1.120e-03 -3.532e-02 3.738e-04 -9.731e-04 -2.265e-02 -1.344e-04 9.203e-02 -7.585e-05 2.482e-02
5632 t1 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
t2 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
t3 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
r1 8.507e-06 6.140e-05 -2.039e-04 -4.113e-05 5.478e-06 -3.081e-05 -4.477e-07 1.620e-04 4.590e-04 5.116e-04 ... -9.596e-04 2.027e-02 2.238e-03 -4.459e-04 3.836e-03 -2.446e-04 -6.799e-05 2.748e-03 5.174e-05 1.719e-03
r2 -1.461e-04 1.415e-06 7.950e-06 -1.547e-03 -2.199e-05 -9.785e-04 3.209e-06 1.002e-05 2.172e-05 3.067e-03 ... -3.921e-03 4.023e-05 -1.671e-02 -6.969e-04 -1.544e-03 -1.169e-02 3.661e-05 4.747e-02 7.280e-04 1.162e-02
r3 8.601e-06 3.978e-05 -2.679e-04 1.585e-05 -4.958e-06 1.330e-05 -2.530e-07 1.031e-04 2.340e-04 4.165e-04 ... 1.633e-02 -2.633e-02 1.632e-02 4.668e-04 -6.273e-03 1.068e-02 1.079e-04 -4.284e-02 -7.702e-05 -1.140e-02
5633 t1 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
t2 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
t3 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
r1 -5.391e-07 -9.719e-05 7.383e-04 -9.419e-06 9.568e-06 -5.752e-06 -6.665e-08 -2.912e-04 -5.884e-04 -1.044e-04 ... -2.426e-03 5.882e-02 2.815e-03 -1.555e-03 1.707e-02 -1.970e-04 -6.888e-05 1.696e-03 2.038e-04 6.063e-04
r2 -4.001e-05 -1.215e-06 -3.020e-06 -4.822e-04 -5.949e-07 -2.615e-04 4.786e-07 -1.794e-05 1.429e-06 6.348e-04 ... 1.515e-03 1.627e-03 -1.129e-02 1.319e-04 -2.081e-04 -1.293e-02 -9.682e-05 5.764e-02 -8.163e-05 1.945e-02
r3 -3.599e-06 -3.174e-06 -4.421e-06 1.197e-04 1.556e-08 3.943e-05 -2.706e-07 2.433e-05 -3.509e-05 -8.412e-04 ... -4.033e-02 -1.184e-03 -3.966e-02 4.916e-04 -1.421e-03 -2.236e-02 -1.365e-04 8.701e-02 -9.924e-05 2.335e-02
10001 S -6.046e-03 2.173e-03 -1.196e-02 -6.238e-02 4.140e-04 -4.187e-02 4.991e-06 7.265e-03 1.305e-02 1.276e-01 ... -1.767e-01 -1.924e-01 -5.082e-01 7.830e-02 -4.204e-02 -2.491e-02 2.880e-01 1.334e+00 -1.396e-01 2.122e-01
10002 S -5.565e-03 -2.292e-03 1.160e-02 -6.046e-02 7.144e-04 -4.064e-02 4.942e-05 -8.080e-03 -1.509e-02 1.316e-01 ... -2.144e-01 2.776e-01 -4.068e-01 6.402e-02 1.275e-01 5.951e-02 2.877e-01 9.576e-01 -1.356e-01 7.489e-02
10003 S -6.044e-03 -2.256e-03 1.223e-02 -6.248e-02 -7.933e-04 -4.195e-02 1.607e-04 -6.251e-03 -1.424e-02 1.231e-01 ... -1.840e-01 2.654e-01 -4.871e-01 -6.867e-02 2.093e-02 -2.570e-02 -2.919e-01 1.339e+00 1.410e-01 2.102e-01
10004 S -5.553e-03 2.316e-03 -1.095e-02 -6.020e-02 -1.098e-03 -4.048e-02 1.170e-04 7.149e-03 1.569e-02 1.364e-01 ... -1.782e-01 -3.088e-01 -4.325e-01 -5.553e-02 -1.632e-01 6.361e-02 -2.893e-01 9.270e-01 1.387e-01 6.345e-02

32278 rows × 33 columns

mpc_forces
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
NodeID Item
5297 t1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
5300 t1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
5321 t1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
5324 t1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
5489 t1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
5492 t1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
5513 t1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
5516 t1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
t3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r1 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r2 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
r3 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0

48 rows × 33 columns

Well maybe be less amazed by this one. If you know pandas and can fix it, here’s the code :) It’s supposed to have the Eigenvalues, Freq, and Cycles, at the top.

import numpy as np
import pandas as pd

def build_dataframe_gpf(self):
    headers = self.get_headers()
    #name = self.name
    if self.is_unique:
        ntimes = self.data.shape[0]
        nnodes = self.data.shape[1]
        nvalues = ntimes * nnodes
        node_element = self.node_element.reshape((ntimes * nnodes, 2))
        if self.nonlinear_factor is not None:
            column_names, column_values = self._build_dataframe_transient_header()
            #column_names = [column_names[0]]
            #column_values = [column_values[0]]

            column_values2 = []
            for value in column_values:
                values2 = []
                #print(value)
                for valuei in value:
                    values = np.ones(nnodes) * valuei
                    values2.append(values)
                values3 = np.vstack(values2).ravel()
                column_values2.append(values3)
            df1 = pd.DataFrame(column_values2).T
            df1.columns = column_names
            return df1
            #df1.columns.names = column_names
            #self.data_frame.columns.names = column_names

            df2 = pd.DataFrame(node_element)
            df2.columns = ['NodeID', 'ElementID']
            df3 = pd.DataFrame(self.element_names.ravel())
            df3.columns = ['ElementType']

            dfs = [df2, df3]
            for i, header in enumerate(headers):
                df = pd.DataFrame(self.data[:, :, i].ravel())
                df.columns = [header]
                dfs.append(df)
            data_frame = df1.join(dfs)
            #print(data_frame)
        else:
            df1 = pd.DataFrame(node_element)
            df1.columns = ['NodeID', 'ElementID']
            df2 = pd.DataFrame(self.element_names[0, :])
            df2.columns = ['ElementType']
            df3 = pd.DataFrame(self.data[0])
            df3.columns = headers
            data_frame = df1.join([df2, df3])
            #print(data_frame)
    else:
        node_element = [self.node_element[:, 0], self.node_element[:, 1]]
        if self.nonlinear_factor is not None:
            column_names, column_values = self._build_dataframe_transient_header()
            data_frame = pd.Panel(self.data, items=column_values, major_axis=node_element, minor_axis=headers).to_frame()
            data_frame.columns.names = column_names
            data_frame.index.names = ['NodeID', 'ElementID', 'Item']
        else:
            data_frame = pd.Panel(self.data, major_axis=node_element, minor_axis=headers).to_frame()
            data_frame.columns.names = ['Static']
            data_frame.index.names = ['NodeID', 'ElementID', 'Item']
    return data_frame

# print(isat.grid_point_forces[1])
grid_point_forces2 = build_dataframe_gpf(isat.grid_point_forces[1])

# print(grid_point_forces2)
grid_point_forces
Mode EigenvalueReal Freq Radians NodeID ElementID ElementType f1 f2 f3 m1 m2 m3
0 1 0 0 0 5297 5346 BAR -0.060 -2.243e-02 -2.764e-02 8.066e-02 -2.382e-01 -8.417e-02
1 1 0 0 0 5297 5363 BAR -0.359 -3.031e-02 1.490e-02 -1.058e-01 6.810e-02 1.616e-01
2 1 0 0 0 5297 5367 BAR 0.613 8.965e-02 -1.151e-01 -7.916e-02 1.702e-01 -1.745e-01
3 1 0 0 0 5297 5328 QUAD4 -0.192 -3.259e-02 1.284e-01 1.043e-01 -1.460e-05 9.700e-02
4 1 0 0 0 5297 0 *TOTALS* 0.002 4.326e-03 5.683e-04 3.409e-11 2.536e-12 -5.236e-11
5 1 0 0 0 5300 5348 BAR 0.050 5.347e-03 1.100e-01 3.602e-02 -2.317e-01 5.467e-02
6 1 0 0 0 5300 5349 BAR -0.096 3.899e-03 -7.795e-03 -6.495e-02 -3.274e-02 -1.310e-01
7 1 0 0 0 5300 5365 BAR 0.008 -1.007e-02 -1.741e-01 -5.511e-02 2.644e-01 1.638e-01
8 1 0 0 0 5300 5330 QUAD4 0.040 5.826e-03 7.251e-02 8.404e-02 -2.549e-05 -8.742e-02
9 1 0 0 0 5300 0 *TOTALS* 0.002 4.998e-03 5.686e-04 -1.873e-12 1.465e-11 -2.301e-11
10 1 0 0 0 5321 5357 BAR -0.058 1.775e-02 -3.708e-02 -1.104e-01 -2.457e-01 -4.541e-02
11 1 0 0 0 5321 5358 BAR -0.040 6.789e-03 4.204e-04 4.374e-02 1.662e-03 1.106e-01
12 1 0 0 0 5321 5366 BAR 0.182 -4.202e-02 1.145e-01 1.923e-01 2.440e-01 -1.592e-01
13 1 0 0 0 5321 5343 QUAD4 -0.083 1.733e-02 -7.775e-02 -1.256e-01 -2.249e-05 9.405e-02
14 1 0 0 0 5321 0 *TOTALS* 0.002 -1.534e-04 1.224e-04 -9.992e-12 3.851e-11 -2.598e-12
15 1 0 0 0 5324 5354 BAR 0.418 -3.375e-02 -1.030e-02 8.007e-02 4.526e-02 -2.407e-01
16 1 0 0 0 5324 5355 BAR 0.064 -1.910e-02 -2.882e-02 -5.490e-02 -2.576e-01 4.488e-02
17 1 0 0 0 5324 5364 BAR -0.694 8.436e-02 1.931e-01 9.781e-02 2.123e-01 3.349e-01
18 1 0 0 0 5324 5345 QUAD4 0.214 -3.159e-02 -1.538e-01 -1.230e-01 -1.884e-05 -1.391e-01
19 1 0 0 0 5324 0 *TOTALS* 0.002 -8.632e-05 1.224e-04 -5.794e-12 1.560e-11 3.427e-11
20 1 0 0 0 5489 5538 BAR -0.050 -5.435e-03 1.105e-01 3.598e-02 -2.340e-01 -5.410e-02
21 1 0 0 0 5489 5555 BAR 0.093 -4.224e-03 -7.878e-03 -6.488e-02 -3.309e-02 1.341e-01
22 1 0 0 0 5489 5559 BAR -0.002 1.072e-02 -1.755e-01 -5.628e-02 2.671e-01 -1.691e-01
23 1 0 0 0 5489 5520 QUAD4 -0.042 -6.054e-03 7.352e-02 8.518e-02 -2.573e-05 8.907e-02
24 1 0 0 0 5489 0 *TOTALS* -0.002 -4.999e-03 5.680e-04 1.842e-11 1.563e-11 4.606e-12
25 1 0 0 0 5492 5540 BAR 0.061 2.256e-02 -2.865e-02 8.120e-02 -2.404e-01 8.401e-02
26 1 0 0 0 5492 5541 BAR 0.367 3.053e-02 1.501e-02 -1.059e-01 6.863e-02 -1.633e-01
27 1 0 0 0 5492 5557 BAR -0.625 -9.022e-02 -1.156e-01 -8.058e-02 1.717e-01 1.774e-01
28 1 0 0 0 5492 5522 QUAD4 0.195 3.280e-02 1.298e-01 1.053e-01 -1.472e-05 -9.806e-02
29 1 0 0 0 5492 0 *TOTALS* -0.002 -4.325e-03 5.677e-04 3.165e-12 5.751e-12 2.137e-11
... ... ... ... ... ... ... ... ... ... ... ... ... ...
1290 33 0 0 0 5321 5357 BAR -92.830 -3.867e+01 -4.004e+00 -8.363e+02 -3.982e+02 -1.335e+03
1291 33 0 0 0 5321 5358 BAR -474.310 -8.700e+02 -6.287e+00 1.539e+02 -2.862e+01 -5.414e+03
1292 33 0 0 0 5321 5366 BAR 819.168 1.379e+03 2.195e+02 -6.429e+02 4.268e+02 9.465e+03
1293 33 0 0 0 5321 5343 QUAD4 -268.240 -4.579e+02 -1.901e+02 1.325e+03 -4.288e-02 -2.717e+03
1294 33 0 0 0 5321 0 *TOTALS* -16.211 1.237e+01 1.915e+01 1.137e-12 8.556e-12 1.592e-11
1295 33 0 0 0 5324 5354 BAR -951.107 -8.312e+02 8.138e+00 -2.805e+02 -8.444e+01 -5.200e+03
1296 33 0 0 0 5324 5355 BAR 62.716 -7.837e+01 -2.113e+02 5.309e+02 -3.133e+02 -1.361e+03
1297 33 0 0 0 5324 5364 BAR 1058.673 1.383e+03 2.197e+02 1.247e+03 3.978e+02 9.268e+03
1298 33 0 0 0 5324 5345 QUAD4 -180.502 -4.726e+02 2.581e+00 -1.497e+03 -4.186e-02 -2.706e+03
1299 33 0 0 0 5324 0 *TOTALS* -10.220 1.157e+00 1.911e+01 3.865e-12 1.826e-12 2.365e-11
1300 33 0 0 0 5489 5538 BAR 3.247 1.674e+02 -2.370e+02 -4.606e+02 1.108e+02 2.695e+02
1301 33 0 0 0 5489 5555 BAR -1058.828 4.548e+02 2.440e+01 5.859e+02 1.248e+02 -7.428e+02
1302 33 0 0 0 5489 5559 BAR 1345.702 -1.013e+03 1.349e+02 1.087e+02 -2.357e+02 7.631e+02
1303 33 0 0 0 5489 5520 QUAD4 -282.304 3.662e+02 8.156e+01 -2.340e+02 2.748e-02 -2.898e+02
1304 33 0 0 0 5489 0 *TOTALS* 7.816 -2.443e+01 3.854e+00 -1.006e-11 6.082e-12 -7.276e-12
1305 33 0 0 0 5492 5540 BAR -102.959 1.626e+02 9.553e+01 4.068e+02 3.659e+02 3.714e+02
1306 33 0 0 0 5492 5541 BAR -711.615 4.815e+02 -3.180e+01 -7.200e+02 -1.152e+02 -8.347e+02
1307 33 0 0 0 5492 5557 BAR 1183.858 -1.044e+03 1.629e+02 1.073e+02 -2.506e+02 7.746e+02
1308 33 0 0 0 5492 5522 QUAD4 -354.190 3.738e+02 -2.227e+02 2.059e+02 2.097e-02 -3.114e+02
1309 33 0 0 0 5492 0 *TOTALS* 15.094 -2.639e+01 3.938e+00 3.126e-12 -4.391e-12 -3.774e-11
1310 33 0 0 0 5513 5549 BAR -62.814 7.758e+01 -2.112e+02 5.136e+02 -3.144e+02 1.330e+03
1311 33 0 0 0 5513 5550 BAR 944.898 8.126e+02 8.459e+00 -2.753e+02 -8.660e+01 5.083e+03
1312 33 0 0 0 5513 5558 BAR -1051.532 -1.354e+03 2.202e+02 1.229e+03 4.010e+02 -9.060e+03
1313 33 0 0 0 5513 5535 QUAD4 178.990 4.628e+02 2.070e+00 -1.467e+03 -4.224e-02 2.647e+03
1314 33 0 0 0 5513 0 *TOTALS* 9.542 -1.325e+00 1.955e+01 -8.868e-12 2.088e-12 -1.819e-12
1315 33 0 0 0 5516 5546 BAR 472.572 8.511e+02 -6.422e+00 1.504e+02 -2.873e+01 5.298e+03
1316 33 0 0 0 5516 5547 BAR 93.582 3.738e+01 -4.747e+00 -8.224e+02 -4.008e+02 1.306e+03
1317 33 0 0 0 5516 5556 BAR -818.566 -1.349e+03 2.214e+02 -6.220e+02 4.295e+02 -9.262e+03
1318 33 0 0 0 5516 5537 QUAD4 268.422 4.476e+02 -1.907e+02 1.294e+03 -4.314e-02 2.657e+03
1319 33 0 0 0 5516 0 *TOTALS* 16.010 -1.246e+01 1.959e+01 4.775e-12 9.522e-12 -1.819e-12

1320 rows × 13 columns

cbar_force
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID Item
3323 bending_moment_a1 -0.159 2.322e-01 -1.325 -2.320 1.883 -0.800 -1.344e-03 1.423 1.467 4.636 ... -43.493 63.353 -43.076 -3.346 11.101 -14.381 0.750 29.359 0.486 -4.565
bending_moment_a2 0.187 -5.024e-02 0.181 0.006 0.107 -0.424 -4.186e-03 -1.106 0.102 -1.573 ... -4.458 5.332 1.627 4.864 2.144 0.089 -1.271 -10.583 -0.670 3.476
bending_moment_b1 0.166 -2.080e-01 2.010 2.657 -1.879 0.729 2.291e-03 -1.376 -1.308 -3.973 ... 34.783 -74.016 35.138 3.543 -15.062 10.974 -0.674 -17.689 -0.626 6.393
bending_moment_b2 -0.187 5.022e-02 -0.181 -0.004 -0.107 0.425 4.183e-03 1.106 -0.102 1.571 ... 4.455 -5.342 -1.624 -4.862 -2.146 -0.083 1.271 10.560 0.669 -3.485
shear1 -0.130 1.760e-01 -1.334 -1.991 1.505 -0.611 -1.454e-03 1.120 1.110 3.443 ... -31.310 54.947 -31.285 -2.756 10.465 -10.142 0.570 18.819 0.445 -4.383
shear2 0.150 -4.018e-02 0.145 0.004 0.086 -0.340 -3.348e-03 -0.885 0.082 -1.258 ... -3.565 4.269 1.301 3.890 1.716 0.069 -1.017 -8.457 -0.536 2.784
axial 0.798 2.069e-01 -4.245 16.966 -0.791 8.127 -7.815e-03 1.476 0.926 -14.693 ... -5.960 -76.450 21.821 -10.654 -10.418 32.557 5.958 -103.311 -1.003 -46.390
torque -0.040 -5.512e-02 -0.784 -0.910 -0.750 -0.463 7.175e-04 -0.115 -0.606 -1.909 ... 29.550 9.498 31.150 0.148 10.121 25.318 -0.334 -121.477 0.198 -23.504
3324 bending_moment_a1 0.142 -2.855e-01 -0.185 1.575 -1.893 0.957 -7.459e-04 -1.527 -1.816 -6.099 ... 62.709 -39.827 60.589 2.909 -2.364 21.896 -0.919 -55.106 -0.177 0.531
bending_moment_a2 -0.188 5.027e-02 -0.179 -0.010 -0.107 0.422 4.192e-03 1.106 -0.102 1.577 ... 4.464 -5.310 -1.633 -4.867 -2.140 -0.101 1.270 10.635 0.673 -3.457
bending_moment_b1 -0.149 2.613e-01 -0.499 -1.913 1.889 -0.886 -2.012e-04 1.480 1.658 5.436 ... -53.999 50.490 -52.651 -3.107 6.324 -18.490 0.842 43.436 0.317 -2.359
bending_moment_b2 0.187 -5.026e-02 0.180 0.008 0.107 -0.423 -4.189e-03 -1.106 0.102 -1.575 ... -4.461 5.320 1.631 4.866 2.142 0.096 -1.270 -10.611 -0.672 3.466
shear1 0.116 -2.187e-01 0.126 1.395 -1.513 0.737 -2.179e-04 -1.203 -1.389 -4.614 ... 46.683 -36.127 45.296 2.406 -3.475 16.154 -0.704 -39.417 -0.198 1.156
shear2 -0.150 4.021e-02 -0.144 -0.007 -0.086 0.338 3.352e-03 0.885 -0.082 1.261 ... 3.570 -4.252 -1.306 -3.893 -1.712 -0.079 1.016 8.499 0.538 -2.769
axial -0.798 -2.069e-01 4.245 -16.966 0.791 -8.127 7.815e-03 -1.476 -0.926 14.693 ... 5.960 76.450 -21.821 10.654 10.418 -32.557 -5.958 103.311 1.003 46.390
torque 0.040 5.512e-02 0.784 0.910 0.750 0.463 -7.175e-04 0.115 0.606 1.909 ... -29.550 -9.498 -31.150 -0.148 -10.121 -25.318 0.334 121.477 -0.198 23.504
3325 bending_moment_a1 -0.106 3.317e-01 -5.500 -2.887 4.495 -0.720 -4.811e-03 2.206 2.610 7.261 ... 3.946 13.702 16.914 -5.397 19.343 27.801 2.392 -144.077 0.007 -54.887
bending_moment_a2 0.280 -1.117e-03 -0.172 1.093 0.556 0.258 2.500e-03 -1.270 0.418 -3.938 ... -29.645 -6.992 -27.543 10.568 3.315 -22.856 -2.201 92.207 -2.224 31.617
bending_moment_b1 0.132 -3.120e-01 6.719 3.662 -4.772 0.642 8.442e-03 -2.156 -2.377 -5.712 ... -7.081 -17.435 -15.147 5.427 -26.582 -24.443 -2.223 128.023 -0.137 47.225
bending_moment_b2 -0.280 1.078e-03 0.171 -1.092 -0.557 -0.257 -2.505e-03 1.270 -0.418 3.937 ... 29.642 6.985 27.544 -10.566 -3.317 22.859 2.201 -92.222 2.224 -31.622
shear1 -0.095 2.575e-01 -4.888 -2.620 3.707 -0.545 -5.301e-03 1.745 1.995 5.189 ... 4.411 12.455 12.824 -4.329 18.370 20.897 1.846 -108.840 0.058 -40.845
shear2 0.224 -8.781e-04 -0.137 0.874 0.445 0.206 2.002e-03 -1.016 0.335 -3.150 ... -23.714 -5.591 -22.035 8.454 2.653 -18.286 -1.761 73.772 -1.779 25.295
axial 1.169 3.563e-02 -9.525 25.825 -2.350 8.444 -4.220e-02 0.614 0.391 -16.175 ... -25.936 -79.791 28.274 12.846 -8.970 52.065 1.137 -206.909 -6.252 -74.468
torque 0.073 -1.759e-03 3.763 0.174 -0.440 -0.402 3.038e-03 -0.318 0.170 2.675 ... 17.865 6.429 37.804 -0.508 -14.531 35.882 0.357 -170.333 0.078 -46.281
3326 bending_moment_a1 0.048 -3.754e-01 2.810 1.177 -3.883 0.892 -3.199e-03 -2.315 -3.125 -10.679 ... 2.972 -5.465 -20.811 5.330 -3.372 -35.209 -2.765 179.496 0.281 71.791
bending_moment_a2 -0.280 1.205e-03 0.173 -1.097 -0.556 -0.259 -2.488e-03 1.270 -0.418 3.940 ... 29.651 7.005 27.541 -10.571 -3.311 22.849 2.201 -92.176 2.226 -31.606
bending_moment_b1 -0.074 3.556e-01 -4.029 -1.952 4.161 -0.814 -4.320e-04 2.265 2.891 9.130 ... 0.164 9.199 19.045 -5.360 10.611 31.851 2.596 -163.442 -0.150 -64.129
bending_moment_b2 0.280 -1.165e-03 -0.172 1.095 0.556 0.259 2.493e-03 -1.270 0.418 -3.939 ... -29.648 -6.999 -27.542 10.570 3.313 -22.852 -2.201 92.190 -2.225 31.611
shear1 0.049 -2.924e-01 2.735 1.252 -3.218 0.682 -1.107e-03 -1.832 -2.406 -7.924 ... 1.123 -5.866 -15.942 4.276 -5.593 -26.824 -2.144 137.175 0.172 54.368
shear2 -0.224 9.482e-04 0.138 -0.877 -0.445 -0.207 -1.993e-03 1.016 -0.334 3.152 ... 23.720 5.602 22.033 -8.456 -2.650 18.280 1.761 -73.746 1.781 -25.286
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5670 bending_moment_b1 -3.339 5.380e-01 -15.324 -26.822 -0.834 -21.393 2.495e-02 1.866 2.052 47.998 ... 105.627 -502.927 -14.761 -4.548 -35.620 -29.337 3.047 160.708 0.560 57.898
bending_moment_b2 -3.621 -2.502e+00 20.944 -49.275 0.927 -34.695 9.727e-02 -12.715 -14.466 130.109 ... -64.354 -953.659 137.681 16.176 -234.157 206.144 -2.940 -994.719 12.171 -367.928
shear1 2.622 -5.500e-01 10.844 27.844 0.718 19.658 -3.016e-02 -0.525 -3.371 -60.352 ... -60.392 420.128 29.043 5.720 56.698 24.313 -5.620 -121.411 4.401 -41.888
shear2 3.266 2.809e+00 -21.138 47.373 -2.217 32.624 -1.229e-01 12.595 15.021 -125.358 ... -90.177 993.535 -154.049 -18.174 288.808 -152.619 -3.696 649.406 8.894 177.785
axial 3.641 5.476e-01 0.831 56.792 -0.057 36.453 -9.411e-02 6.094 -0.775 -156.813 ... -368.710 548.856 -319.507 2.729 121.381 -217.780 -6.697 887.148 6.721 274.097
torque -0.258 -1.324e-01 -1.876 2.434 0.254 0.520 7.498e-03 0.743 -1.394 -14.401 ... 47.318 99.730 24.445 -1.667 43.624 -3.545 0.408 34.847 0.689 18.950
5671 bending_moment_a1 -5.659 -1.121e-01 0.462 -60.422 -0.300 -43.413 8.199e-02 -2.289 -1.846 130.339 ... 87.918 -1274.001 257.847 37.582 -202.402 315.975 3.916 -1440.540 -10.429 -445.418
bending_moment_a2 13.068 -3.904e+00 22.973 150.782 2.061 102.018 -1.118e-01 -9.722 -28.964 -352.315 ... -543.115 1400.578 88.711 -54.877 388.654 71.517 -15.218 -347.654 57.939 -145.095
bending_moment_b1 5.620 -3.280e-01 -4.895 76.419 -1.168 49.203 -1.073e-01 6.311 -2.011 -187.096 ... 395.862 3012.305 -144.729 -79.467 823.969 -373.349 -16.024 1676.430 42.875 463.680
bending_moment_b2 -10.646 4.252e+00 -29.301 -116.967 -3.268 -80.632 6.113e-02 13.298 30.756 269.784 ... 1044.519 -1975.002 131.106 94.070 -527.551 -38.476 13.150 471.400 -82.329 284.392
shear1 -4.433 8.488e-02 2.105 -53.783 0.341 -36.401 7.441e-02 -3.380 0.065 124.761 ... -121.031 -1684.646 158.224 46.004 -403.394 270.925 7.837 -1225.062 -20.950 -357.303
shear2 9.320 -3.205e+00 20.546 105.233 2.095 71.787 -6.798e-02 -9.048 -23.472 -244.504 ... -623.988 1326.704 -16.662 -58.540 360.096 43.230 -11.149 -321.912 55.130 -168.801
axial -1.774 -5.488e-01 4.150 -30.823 0.380 -20.689 5.315e-02 -3.814 -1.196 97.810 ... 539.625 786.469 643.566 -36.202 392.031 474.122 -3.562 -2104.999 37.386 -812.896
torque 0.581 2.120e-01 -0.724 6.864 0.068 4.787 -1.673e-02 1.138 1.523 -16.465 ... 88.429 -158.572 16.796 5.639 -55.123 -13.846 0.928 129.659 -6.680 62.655
5672 bending_moment_a1 1.179 -5.181e-01 3.781 24.786 0.310 14.652 -7.649e-03 -5.836 -19.213 -85.594 ... -568.087 -4959.613 -75.481 110.251 -788.183 331.030 17.773 -1643.599 -48.609 -194.918
bending_moment_a2 -16.173 6.802e-01 0.867 -206.958 0.557 -142.710 2.963e-01 -10.285 2.622 524.047 ... -3962.894 10312.055 -1357.529 -336.873 3180.764 28.351 -52.440 -3065.015 316.144 -2117.626
bending_moment_b1 -0.983 2.502e-01 -2.850 -13.705 -0.846 -8.170 5.725e-03 3.120 10.754 34.945 ... -177.240 1636.400 -379.023 -13.094 -87.906 -458.433 -5.134 2158.938 -11.777 632.254
bending_moment_b2 10.580 -3.701e-01 -3.505 136.870 -0.825 92.853 -2.029e-01 8.873 0.200 -342.117 ... 2735.206 -5677.467 883.585 191.532 -1785.922 -86.016 30.428 2283.334 -195.530 1454.442
shear1 0.674 -2.396e-01 2.068 12.001 0.360 7.116 -4.170e-03 -2.792 -9.344 -37.584 ... -121.866 -2056.625 94.644 38.459 -218.345 246.153 7.143 -1185.625 -11.484 -257.911
shear2 -8.341 3.275e-01 1.363 -107.205 0.431 -73.448 1.557e-01 -5.973 0.755 270.068 ... -2088.456 4985.505 -698.776 -164.756 1548.604 35.659 -25.838 -1667.606 159.539 -1113.765
axial -1.195 -4.812e-01 8.502 -1.983 0.866 0.808 2.142e-02 -7.725 -14.430 -50.811 ... 1490.182 -7709.150 48.365 220.657 -1772.561 -214.154 26.928 1953.687 -131.674 930.862
torque -0.248 -1.712e-02 -0.338 -1.718 -0.108 -1.640 1.188e-03 0.342 -0.009 3.011 ... 10.192 486.360 14.983 -14.350 151.037 6.579 -2.652 -76.869 12.281 -66.087
5673 bending_moment_a1 3.874 -1.704e-01 -2.119 20.828 -0.324 13.227 -2.564e-02 3.424 6.203 29.127 ... -1080.442 1796.585 -1178.649 -15.311 121.344 -797.271 2.236 3093.695 -74.858 1463.576
bending_moment_a2 7.571 -1.505e-01 4.920 98.786 0.107 68.431 -1.098e-01 -1.673 -14.352 -259.623 ... -1314.865 4576.052 448.433 -171.223 1841.507 824.729 -38.126 -4667.893 244.248 -2400.134
bending_moment_b1 -3.751 1.467e-01 -3.097 -19.496 -0.143 -11.909 3.264e-02 -4.427 -8.789 -33.298 ... 579.107 -3532.167 825.902 71.978 -609.247 650.375 4.871 -2487.016 29.208 -1066.517
bending_moment_b2 -4.887 7.709e-01 -5.511 -64.277 -0.708 -45.138 4.117e-02 4.519 15.583 177.852 ... 1220.512 -2166.852 -139.431 90.474 -996.507 -521.445 20.893 3043.982 -150.282 1542.757
shear1 1.530 -6.362e-02 0.196 8.092 -0.036 5.044 -1.169e-02 1.575 3.008 12.527 ... -333.013 1069.293 -402.243 -17.516 146.604 -290.492 -0.529 1119.853 -20.882 507.701
shear2 2.500 -1.849e-01 2.093 32.721 0.164 22.789 -3.028e-02 -1.243 -6.007 -87.786 ... -508.761 1353.064 117.964 -52.513 569.490 270.130 -11.843 -1547.502 79.168 -791.200
axial 1.087 -5.310e-01 6.834 -0.771 0.603 -0.734 3.275e-02 -8.155 -14.764 40.010 ... -1066.870 919.347 -107.465 -59.717 778.357 357.510 -1.987 -2290.304 58.945 -969.822
torque 0.051 -3.749e-02 -0.309 2.623 -0.036 1.727 7.360e-04 -0.236 -1.174 -12.071 ... -40.913 -357.196 -5.310 9.919 -82.996 11.710 1.341 -37.390 -3.730 -0.301

6616 rows × 33 columns

cbush_force
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID Item
3736 fx -2.840 -0.740 1.768 -46.229 1.189 -26.766 -0.046 -8.746 -4.972 81.300 ... 393.928 -1072.844 286.057 -514.816 -193.791 -42.189 88.025 490.182 93.169 262.898
fy 3.374 0.809 0.580 46.109 -0.300 28.257 0.032 7.206 5.679 -82.508 ... -315.874 1119.018 -206.185 438.919 199.036 68.433 -66.234 -527.738 -91.114 -277.767
fz -0.617 -8.572 43.047 -10.336 -7.485 -17.494 0.185 -31.983 -51.687 67.785 ... -285.425 -751.421 11.519 67.315 -188.785 78.174 -54.882 -631.519 -35.506 -183.888
mx -0.000 0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 0.000 ... 0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 0.000
my 0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 -0.000 -0.000 ... -0.000 0.000 -0.000 0.000 0.000 0.000 0.000 -0.000 0.000 -0.000
mz -0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 -0.000 ... 0.000 0.000 0.000 0.000 0.000 0.000 -0.000 -0.000 0.000 -0.000
4575 fx -4.615 3.233 -40.728 -51.247 1.933 -29.247 -0.015 10.464 17.410 90.049 ... -65.030 -1095.469 -88.056 146.891 -58.260 -16.733 -58.451 -140.014 -15.888 -15.923
fy 4.700 -4.325 45.481 50.621 0.536 31.404 0.064 -12.966 -24.141 -91.806 ... 129.430 1193.951 125.585 -108.001 93.591 31.062 41.832 56.625 20.402 -19.499
fz -2.075 -8.342 38.919 -29.978 -4.384 -27.389 0.167 -32.009 -51.189 100.340 ... -206.343 -1215.355 9.171 -5.366 -254.791 19.716 -75.929 -479.696 -38.375 -139.608
mx -0.000 0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 -0.000 ... 0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 0.000
my 0.000 0.000 0.000 0.000 -0.000 0.000 0.000 0.000 0.000 -0.000 ... 0.000 0.000 0.000 -0.000 0.000 0.000 0.000 -0.000 0.000 -0.000
mz -0.000 0.000 -0.000 0.000 -0.000 0.000 0.000 0.000 0.000 -0.000 ... -0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 0.000
4576 fx -2.247 1.848 -26.540 -17.940 0.093 -13.830 -0.006 6.068 9.472 35.136 ... -49.047 -533.915 -79.183 169.223 34.724 -23.188 -45.043 5.981 -27.096 -5.814
fy 2.057 -1.814 26.044 24.129 -2.022 16.564 0.030 -4.605 -10.738 -49.552 ... 165.480 381.053 47.227 -113.319 -24.250 -53.492 35.471 423.088 14.753 106.628
fz -2.549 -9.968 45.415 -36.374 -4.519 -34.071 0.204 -38.398 -61.179 125.581 ... -373.693 -1540.113 -16.216 73.278 -325.309 79.769 -81.809 -779.614 -34.205 -212.688
mx -0.000 0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 0.000 ... 0.000 -0.000 -0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 0.000
my -0.000 0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 0.000 ... 0.000 0.000 0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 0.000
mz -0.000 0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 0.000 -0.000 ... 0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 0.000
4577 fx -1.240 1.269 -13.710 -7.363 0.241 -7.121 -0.026 3.880 6.272 14.665 ... -18.743 -239.325 -39.057 70.519 38.673 -30.699 -19.362 124.481 -11.337 42.888
fy 1.229 -1.329 14.292 10.720 -0.881 8.623 0.020 -4.856 -8.030 -26.645 ... 82.012 -64.282 -42.989 -70.577 -65.170 -77.781 23.042 436.958 11.037 114.356
fz -2.808 -10.629 45.602 -39.093 -6.064 -38.777 0.214 -41.904 -65.485 142.667 ... -491.891 -1834.910 -1.304 74.157 -369.530 145.997 -57.207 -989.443 -9.558 -243.333
mx -0.000 0.000 -0.000 0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 ... 0.000 0.000 -0.000 0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000
my 0.000 0.000 -0.000 0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 ... 0.000 0.000 -0.000 0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000
mz -0.000 0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 ... 0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000 0.000 0.000 0.000
4578 fx -0.755 0.248 -3.209 -7.681 2.184 -5.202 -0.019 0.035 -0.236 12.252 ... 31.103 -456.721 -47.699 34.076 -26.907 -71.597 -5.929 396.100 1.227 137.669
fy 0.763 -0.516 4.834 9.350 -1.765 6.775 0.017 -2.286 -3.628 -24.866 ... -7.259 -265.697 -254.456 -22.488 -69.220 -221.294 6.878 969.605 -4.282 243.613
fz -3.211 -10.575 43.289 -43.712 -7.176 -43.507 0.209 -42.639 -65.640 161.256 ... -609.264 -2189.442 9.400 59.749 -430.964 206.684 -32.809 -1185.212 15.707 -272.111
mx -0.000 0.000 -0.000 -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 ... 0.000 -0.000 -0.000 0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000
my -0.000 0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 -0.000 ... 0.000 0.000 0.000 0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000
mz -0.000 0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 ... -0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000 0.000 0.000 0.000
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5637 fx 49.162 51.177 -248.014 425.160 -12.913 268.884 -1.781 133.765 343.959 -572.803 ... -410.472 -463.618 5454.213 128.519 -143.925 3830.929 8.627 -15633.250 -114.476 -3649.778
fy 54.530 111.966 -539.890 447.818 -36.786 280.238 -3.555 317.564 741.795 -461.717 ... -752.865 3026.821 7008.661 81.345 547.870 4861.486 16.281 -19884.789 -157.159 -4674.805
fz -73.578 -151.078 728.482 -604.248 49.636 -378.129 4.797 -428.494 -1000.915 623.002 ... 1015.853 -4084.136 -9456.893 -109.759 -739.250 -6559.677 -21.969 26830.850 212.057 6307.785
mx -0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 -0.000 -0.000 ... -0.000 0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 0.000
my -0.000 0.000 -0.000 -0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 ... -0.000 -0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 -0.000 0.000
mz -0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 ... -0.000 0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 -0.000 0.000
5638 fx -83.782 -49.658 344.856 -934.568 -9.082 -672.234 3.848 -157.479 -255.458 2072.417 ... -4721.764 25538.203 334.886 -730.157 5476.981 -224.659 -62.828 1499.378 556.397 594.434
fy -36.551 -41.543 280.189 -428.042 0.283 -306.261 1.748 -137.416 -222.547 915.213 ... -4287.155 21782.676 -1443.226 -1572.463 5194.899 -1291.968 247.753 4579.679 64.200 1903.822
fz -113.049 -67.004 465.320 -1261.026 -12.255 -907.055 5.192 -212.489 -344.693 2796.343 ... -6371.148 34459.086 451.867 -985.212 7390.175 -303.135 -84.775 2023.133 750.755 802.079
mx 0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 ... -0.000 -0.000 -0.000 -0.000 -0.000 -0.000 0.000 -0.000 0.000 -0.000
my -0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 ... -0.000 0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000
mz -0.000 -0.000 -0.000 -0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 ... 0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 -0.000 0.000 -0.000
5639 fx -81.377 51.930 -326.802 -793.303 -23.290 -578.855 2.817 186.245 311.800 1920.247 ... -2.596 -27421.629 1257.755 530.293 -8325.014 4120.024 77.170 -19116.590 368.111 -7227.045
fy 34.523 -44.128 286.236 308.910 11.699 227.512 -0.878 -152.454 -255.834 -786.886 ... 307.377 22879.516 664.951 509.497 6444.627 -2371.999 -365.816 12806.220 94.586 4692.204
fz -109.803 70.070 -440.959 -1070.416 -31.425 -781.058 3.800 251.304 420.717 2591.019 ... -3.503 -37000.422 1697.108 715.532 -11233.067 5559.211 104.126 -25794.305 496.698 -9751.562
mx -0.000 0.000 -0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 0.000 ... -0.000 -0.000 0.000 0.000 -0.000 0.000 -0.000 -0.000 -0.000 -0.000
my -0.000 0.000 -0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 0.000 ... -0.000 -0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000
mz 0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 -0.000 ... 0.000 -0.000 0.000 0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000
5640 fx 20.780 -39.010 206.631 286.640 2.707 176.553 -0.478 -95.203 -278.874 -875.002 ... -249.303 -7951.638 2744.969 322.568 -1054.838 3240.595 34.088 -14998.981 -126.954 -4217.740
fy -24.990 100.678 -547.581 -343.526 15.780 -211.440 1.334 299.794 708.537 1114.929 ... 1048.101 -4288.459 -3900.156 -0.429 -4419.413 -3765.691 -10.749 17141.201 127.006 4660.953
fz -33.720 135.846 -738.859 -463.525 21.292 -285.299 1.800 404.517 956.040 1504.391 ... 1414.219 -5786.483 -5262.540 -0.578 -5963.182 -5081.104 -14.503 23128.883 171.372 6289.095
mx -0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 -0.000 0.000 ... -0.000 0.000 -0.000 -0.000 0.000 -0.000 0.000 0.000 0.000 0.000
my -0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 ... 0.000 0.000 0.000 -0.000 0.000 0.000 -0.000 0.000 -0.000 0.000
mz -0.000 0.000 -0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 0.000 ... -0.000 -0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 -0.000 0.000
5641 fx 21.234 37.500 -214.067 293.422 0.372 181.048 -0.318 159.321 234.834 -796.708 ... -1121.195 9857.283 3603.727 -485.792 1773.707 3229.751 21.581 -14775.447 167.911 -4165.658
fy 24.829 98.887 -556.398 344.303 19.430 212.598 0.389 375.824 656.316 -867.362 ... -577.016 -2028.771 3628.043 -193.977 -3566.988 3906.759 55.263 -18164.920 175.573 -5279.969
fz 33.502 133.430 -750.757 464.574 26.218 286.862 0.525 507.105 885.577 -1170.344 ... -778.577 -2737.451 4895.374 -261.737 -4812.991 5271.450 74.567 -24510.203 236.903 -7124.343
mx 0.000 -0.000 0.000 0.000 0.000 0.000 0.000 -0.000 -0.000 -0.000 ... 0.000 0.000 0.000 -0.000 0.000 0.000 0.000 -0.000 0.000 -0.000
my -0.000 0.000 -0.000 -0.000 -0.000 -0.000 0.000 0.000 0.000 0.000 ... 0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 0.000 0.000 0.000
mz -0.000 -0.000 0.000 -0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 ... -0.000 0.000 -0.000 -0.000 0.000 -0.000 -0.000 0.000 0.000 0.000

624 rows × 33 columns

cquad4_force
Mode Item 1 2 3 4 5 6 7 8 9 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.14916992 3568.63232422 9689.30566406 16168.0996094 16278.2226562 16679.7089844 18248.4335938 18600.6972656 18632.5507812 ... 253140.875 295297.75 306885.90625 309040.65625 319227.71875 350984.5 351566.1875 364166.15625 384601.34375 386090.4375
Freq 8.358512705 9.50760289287 15.6663007643 20.2371625337 20.3059645617 20.5548525725 21.4997261107 21.7062471625 21.7248250823 ... 80.0757970351 86.4868740864 88.1675156512 88.4765012374 89.9229257687 94.2896666927 94.3677675985 96.0439300447 98.7019039573 98.8927956432
Radians 52.5180842179 59.738030803 98.4342707804 127.153842291 127.586138182 129.149947675 135.086763207 136.384373246 136.501101758 ... 503.131071392 543.413056523 553.97283891 555.914252606 565.002405968 592.439448383 592.930170846 603.461810101 620.162352735 621.361760571
ElementID NodeID
4670 CEN mx -16.088 4.299 6.971e-02 -29.002 -4.571e-01 -186.938 -603.215 47.768 -107.817 ... 3.552 -10.621 3.549 -0.028 0.374 1.788 -4.315e-01 -6.105 6.283e-01 -0.340
CEN my -88.183 73.038 1.312e+00 -50.877 -1.207e+00 -324.953 -149.852 87.416 12.643 ... 19.560 72.406 36.207 -1.032 52.990 23.808 -3.855e+00 -98.772 4.841e+00 -36.233
CEN mxy -35.416 -22.025 6.320e-02 -20.037 -2.038e-01 -127.819 3.770 58.400 -24.900 ... -9.564 5.375 -16.705 0.338 -0.174 -11.625 -4.458e-02 45.932 -1.926e-01 13.473
CEN bmx -2.664 -9.183 -1.221e+00 -29.954 -9.126e-01 -189.687 -7.586 53.520 56.479 ... 2.737 -14.828 2.042 0.111 -2.442 2.162 4.964e-02 -9.309 3.261e-02 -4.001
CEN bmy -3.037 -9.879 -1.313e+00 -30.303 -9.188e-01 -192.162 -20.070 80.239 42.297 ... 2.539 -15.439 1.955 0.126 -2.102 2.172 1.985e-02 -9.370 6.778e-02 -4.156
CEN bmxy -0.358 0.050 3.042e-03 -0.291 -1.361e-03 -1.874 -1.445 2.023 -3.839 ... 0.013 -0.050 -0.019 0.002 -0.013 -0.021 3.219e-04 0.096 -1.092e-03 0.028
CEN tx -1.359 -0.059 -5.548e-02 -15.393 -1.850e-01 -97.674 18.589 -2.787 28.395 ... 1.073 -0.216 1.152 0.034 -0.193 0.950 2.707e-02 -4.109 -3.429e-02 -1.962
CEN ty 0.078 -0.845 1.623e-01 -7.119 3.640e-02 -45.621 -7.405 21.384 -23.049 ... 0.015 -2.778 -0.444 0.124 -2.299 -0.534 6.097e-02 2.616 -1.224e-01 1.392
4670 mx -10.939 -8.192 8.685e-01 -45.225 -4.504e-01 -288.633 -1489.487 -16.358 -217.844 ... 6.022 -21.511 7.653 0.925 0.722 5.513 -1.434e+00 -22.443 1.513e+00 -6.056
4670 my -163.049 -89.888 -8.778e-01 -74.092 -2.083e+00 -475.452 -419.386 134.147 129.931 ... 35.554 73.426 56.108 -2.229 56.483 36.101 -3.109e+00 -146.387 4.478e+00 -49.037
4670 mxy -34.993 -20.796 6.713e-02 -19.673 -1.982e-01 -125.508 17.081 58.929 -24.235 ... -9.701 5.510 -16.889 0.334 -0.202 -11.754 -3.641e-02 46.457 -2.017e-01 13.631
4670 bmx -0.892 -9.041 -1.218e+00 -42.937 -1.004e+00 -273.216 -2.317 66.210 13.105 ... 4.885 -14.733 5.228 0.072 -1.925 4.002 6.460e-02 -16.026 3.136e-02 -5.867
4670 bmy -3.528 -6.936 -9.190e-01 -31.125 -9.018e-01 -197.643 -110.551 50.233 -87.744 ... 2.563 -18.962 1.795 0.139 -4.649 2.136 1.424e-01 -9.097 -5.217e-02 -4.058
4670 bmxy -0.378 0.029 4.135e-04 -0.117 -2.825e-04 -0.750 -0.921 2.054 -2.423 ... -0.015 -0.028 -0.059 0.003 -0.003 -0.044 -6.753e-04 0.182 -2.908e-04 0.051
4670 tx -1.359 -0.059 -5.548e-02 -15.393 -1.850e-01 -97.674 18.589 -2.787 28.395 ... 1.073 -0.216 1.152 0.034 -0.193 0.950 2.707e-02 -4.109 -3.429e-02 -1.962
4670 ty 0.078 -0.845 1.623e-01 -7.119 3.640e-02 -45.621 -7.405 21.384 -23.049 ... 0.015 -2.778 -0.444 0.124 -2.299 -0.534 6.097e-02 2.616 -1.224e-01 1.392
4671 mx -10.933 -8.178 8.687e-01 -45.223 -4.504e-01 -288.620 -1489.464 -16.362 -217.854 ... 6.021 -21.511 7.651 0.925 0.722 5.512 -1.434e+00 -22.439 1.513e+00 -6.055
4671 my -13.316 235.961 3.502e+00 -27.667 -3.309e-01 -174.488 119.380 40.663 -104.682 ... 3.566 71.383 16.307 0.166 49.498 11.517 -4.601e+00 -51.162 5.204e+00 -23.432
4671 mxy -35.974 -22.930 3.845e-02 -19.977 -2.097e-01 -127.479 13.553 59.542 -22.698 ... -9.491 5.523 -16.628 0.318 -0.156 -11.593 -2.663e-02 45.833 -2.065e-01 13.464
4671 bmx -0.892 -9.041 -1.218e+00 -42.937 -1.004e+00 -273.216 -2.310 66.212 13.116 ... 4.885 -14.732 5.228 0.072 -1.925 4.002 6.459e-02 -16.026 3.137e-02 -5.867
4671 bmy -2.546 -12.823 -1.706e+00 -29.485 -9.357e-01 -186.709 70.412 110.250 172.324 ... 2.516 -11.916 2.117 0.113 0.446 2.209 -1.027e-01 -9.645 1.877e-01 -4.255
4671 bmxy -0.384 0.068 5.569e-03 -0.128 -6.047e-05 -0.822 -2.106 1.661 -4.126 ... -0.015 -0.074 -0.061 0.003 -0.037 -0.045 9.297e-04 0.186 -1.862e-03 0.052
4671 tx -1.359 -0.059 -5.548e-02 -15.393 -1.850e-01 -97.674 18.589 -2.787 28.395 ... 1.073 -0.216 1.152 0.034 -0.193 0.950 2.707e-02 -4.109 -3.429e-02 -1.962
4671 ty 0.078 -0.845 1.623e-01 -7.119 3.640e-02 -45.621 -7.405 21.384 -23.049 ... 0.015 -2.778 -0.444 0.124 -2.299 -0.534 6.097e-02 2.616 -1.224e-01 1.392
4674 mx -21.143 16.562 -7.145e-01 -13.074 -4.636e-01 -87.099 266.893 110.724 0.203 ... 1.127 0.070 -0.481 -0.963 0.032 -1.869 5.523e-01 9.934 -2.407e-01 5.271
4674 my -17.340 227.210 3.384e+00 -28.909 -3.780e-01 -182.539 105.203 43.197 -98.342 ... 4.425 71.441 17.375 0.101 49.686 12.176 -4.560e+00 -53.715 5.184e+00 -24.118
4674 mxy -35.814 -23.195 5.985e-02 -20.388 -2.092e-01 -130.052 -9.236 57.870 -25.580 ... -9.433 5.242 -16.529 0.343 -0.148 -11.501 -5.277e-02 45.428 -1.835e-01 13.321
4674 bmx -4.403 -9.323 -1.225e+00 -17.207 -8.230e-01 -107.682 -12.759 41.062 99.062 ... 0.629 -14.921 -1.087 0.149 -2.950 0.356 3.497e-02 -2.714 3.382e-02 -2.170
4674 bmy -2.573 -12.665 -1.685e+00 -29.524 -9.348e-01 -186.974 65.548 108.633 165.351 ... 2.517 -12.106 2.107 0.114 0.309 2.206 -9.611e-02 -9.628 1.813e-01 -4.249
4674 bmxy -0.338 0.070 5.532e-03 -0.462 -2.425e-03 -2.977 -1.938 1.999 -5.200 ... 0.041 -0.071 0.021 0.002 -0.022 0.003 1.272e-03 0.012 -1.852e-03 0.004
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4757 4783 mxy -31.271 -19.668 -8.401e-02 5.348 1.492e-01 32.073 34.216 14.677 -12.580 ... 2.446 10.287 4.439 -0.554 6.576 2.705 -1.956e-01 -10.752 4.575e-01 -3.907
4783 bmx 0.500 -11.062 -1.872e-02 3.006 2.538e-02 19.305 5.262 1.870 -18.221 ... -1.223 2.035 -1.199 -0.053 1.379 -0.663 -7.218e-02 2.315 1.015e-01 0.436
4783 bmy -28.893 -38.137 -2.123e-01 3.596 2.564e-02 21.675 8.080 -4.258 1.639 ... -0.154 -1.273 1.059 -0.029 1.373 1.077 -2.056e-01 -4.743 2.934e-01 -1.741
4783 bmxy -0.247 0.824 4.673e-03 -0.003 -5.033e-04 -0.013 -0.230 0.269 -0.273 ... -0.080 0.030 -0.167 0.003 0.015 -0.110 -2.732e-03 0.425 1.975e-03 0.109
4783 tx -18.875 -20.105 -8.804e-02 1.690 -1.164e-03 10.319 -2.478 5.951 -7.828 ... -1.793 -1.240 -3.321 0.085 -0.974 -2.108 3.881e-02 8.108 -8.111e-02 2.232
4783 ty 11.037 28.188 9.798e-02 0.929 -8.697e-03 6.668 -3.198 -7.155 9.551 ... -2.192 1.785 -3.206 -0.004 1.057 -1.967 -5.582e-02 7.324 5.490e-02 1.845
4771 mx -41.074 172.091 1.064e+00 -4.664 -2.443e-01 -30.595 -10.668 155.950 -183.653 ... -0.829 6.260 -1.958 0.195 8.391 -1.345 -9.970e-01 4.431 1.107e+00 0.114
4771 my -76.876 -91.002 -4.028e-01 -4.428 2.270e-03 -32.129 4.183 36.880 -28.601 ... 5.933 1.610 8.367 -0.258 -0.306 4.306 2.155e-01 -14.746 -1.668e-01 -2.940
4771 mxy -27.436 -15.481 -6.264e-02 5.521 1.512e-01 33.342 34.735 16.124 -14.054 ... 2.310 10.489 4.220 -0.555 6.681 2.572 -2.012e-01 -10.271 4.636e-01 -3.794
4771 bmx 0.511 -11.049 -1.865e-02 3.005 2.536e-02 19.297 5.258 1.868 -18.219 ... -1.223 2.036 -1.200 -0.053 1.379 -0.664 -7.214e-02 2.318 1.015e-01 0.437
4771 bmy 19.867 21.334 8.537e-02 -2.585 -4.747e-02 -15.309 -11.650 -10.143 15.039 ... -2.231 4.127 -3.384 -0.043 1.919 -2.193 -6.266e-02 8.235 6.106e-02 2.047
4771 bmxy -0.967 -0.054 2.786e-04 0.088 5.759e-04 0.533 0.062 0.355 -0.471 ... -0.049 -0.050 -0.101 0.003 0.007 -0.062 -4.841e-03 0.234 5.404e-03 0.053
4771 tx -18.875 -20.105 -8.804e-02 1.690 -1.164e-03 10.319 -2.478 5.951 -7.828 ... -1.793 -1.240 -3.321 0.085 -0.974 -2.108 3.881e-02 8.108 -8.111e-02 2.232
4771 ty 11.037 28.188 9.798e-02 0.929 -8.697e-03 6.668 -3.198 -7.155 9.551 ... -2.192 1.785 -3.206 -0.004 1.057 -1.967 -5.582e-02 7.324 5.490e-02 1.845
4774 mx 135.392 -619.010 -2.796e+00 -1.564 1.704e-02 -5.020 6.183 87.942 -37.601 ... 4.385 -43.228 -2.125 1.280 -44.739 -2.924 3.587e+00 16.870 -4.872e+00 12.102
4774 my -79.810 -94.228 -4.193e-01 -4.561 7.972e-04 -33.100 3.785 35.769 -27.467 ... 6.038 1.454 8.535 -0.256 -0.388 4.407 2.199e-01 -15.114 -1.716e-01 -3.026
4774 mxy -28.242 -11.623 -4.381e-02 5.508 1.499e-01 33.233 34.660 16.468 -14.775 ... 2.283 10.730 4.218 -0.560 6.938 2.578 -2.233e-01 -10.325 4.924e-01 -3.851
4774 bmx -0.709 -19.203 -1.495e-01 1.474 -3.252e-03 9.604 -0.451 -11.302 15.894 ... -2.390 -1.962 -3.464 0.091 -1.102 -2.076 3.690e-02 7.910 -7.946e-02 2.301
4774 bmy 20.418 22.006 8.873e-02 -2.655 -4.829e-02 -15.727 -11.874 -10.210 15.191 ... -2.255 4.188 -3.435 -0.043 1.925 -2.230 -6.105e-02 8.382 5.843e-02 2.090
4774 bmxy -0.969 -0.025 8.591e-04 0.097 7.260e-04 0.585 0.092 0.420 -0.637 ... -0.043 -0.031 -0.089 0.002 0.018 -0.055 -5.391e-03 0.205 6.314e-03 0.043
4774 tx -18.875 -20.105 -8.804e-02 1.690 -1.164e-03 10.319 -2.478 5.951 -7.828 ... -1.793 -1.240 -3.321 0.085 -0.974 -2.108 3.881e-02 8.108 -8.111e-02 2.232
4774 ty 11.037 28.188 9.798e-02 0.929 -8.697e-03 6.668 -3.198 -7.155 9.551 ... -2.192 1.785 -3.206 -0.004 1.057 -1.967 -5.582e-02 7.324 5.490e-02 1.845
4779 mx 135.450 -618.946 -2.795e+00 -1.561 1.707e-02 -5.001 6.190 87.964 -37.623 ... 4.383 -43.225 -2.129 1.280 -44.737 -2.926 3.586e+00 16.877 -4.872e+00 12.104
4779 my 185.883 195.841 1.061e+00 7.450 1.345e-01 54.794 39.783 136.039 -129.622 ... -3.415 15.444 -6.673 -0.360 6.878 -4.774 -1.636e-01 18.232 2.517e-01 4.744
4779 mxy -32.164 -15.905 -6.566e-02 5.331 1.480e-01 31.936 34.129 14.988 -13.267 ... 2.423 10.523 4.443 -0.559 6.831 2.714 -2.177e-01 -10.818 4.862e-01 -3.966
4779 bmx -0.720 -19.216 -1.495e-01 1.475 -3.236e-03 9.613 -0.447 -11.301 15.891 ... -2.390 -1.963 -3.463 0.091 -1.102 -2.075 3.687e-02 7.907 -7.941e-02 2.300
4779 bmy -29.445 -38.809 -2.157e-01 3.666 2.647e-02 22.093 8.303 -4.192 1.488 ... -0.131 -1.334 1.109 -0.028 1.366 1.114 -2.072e-01 -4.890 2.960e-01 -1.784
4779 bmxy -0.233 0.873 5.352e-03 0.003 -3.776e-04 0.027 -0.205 0.331 -0.435 ... -0.075 0.050 -0.156 0.002 0.027 -0.104 -3.233e-03 0.401 2.808e-03 0.100
4779 tx -18.875 -20.105 -8.804e-02 1.690 -1.164e-03 10.319 -2.478 5.951 -7.828 ... -1.793 -1.240 -3.321 0.085 -0.974 -2.108 3.881e-02 8.108 -8.111e-02 2.232
4779 ty 11.037 28.188 9.798e-02 0.929 -8.697e-03 6.668 -3.198 -7.155 9.551 ... -2.192 1.785 -3.206 -0.004 1.057 -1.967 -5.582e-02 7.324 5.490e-02 1.845

3520 rows × 34 columns

cquad4_stress
Mode Item 1 2 3 4 5 6 7 8 9 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.14916992 3568.63232422 9689.30566406 16168.0996094 16278.2226562 16679.7089844 18248.4335938 18600.6972656 18632.5507812 ... 253140.875 295297.75 306885.90625 309040.65625 319227.71875 350984.5 351566.1875 364166.15625 384601.34375 386090.4375
Freq 8.358512705 9.50760289287 15.6663007643 20.2371625337 20.3059645617 20.5548525725 21.4997261107 21.7062471625 21.7248250823 ... 80.0757970351 86.4868740864 88.1675156512 88.4765012374 89.9229257687 94.2896666927 94.3677675985 96.0439300447 98.7019039573 98.8927956432
Radians 52.5180842179 59.738030803 98.4342707804 127.153842291 127.586138182 129.149947675 135.086763207 136.384373246 136.501101758 ... 503.131071392 543.413056523 553.97283891 555.914252606 565.002405968 592.439448383 592.930170846 603.461810101 620.162352735 621.361760571
ElementID NodeID Location
1 CEN Top fiber_distance 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400 ... 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400
Top oxx 63.246 72.309 2933.215 259.007 -84.326 133.789 1.853 128.294 785.568 ... -25690.250 45002.930 -18276.367 523.087 -12437.629 -9954.811 107.538 39103.918 -75.148 16.039
Top oyy 62.859 71.048 2875.602 253.686 -82.042 133.147 1.833 123.608 772.433 ... -25120.783 44058.816 -17823.686 540.734 -12238.873 -9691.581 103.338 38049.105 -81.509 -72.922
Top txy -1.035 -0.187 10.977 -5.745 2.516 -1.820 0.009 4.870 -1.962 ... 139.871 365.614 166.092 6.939 0.937 132.145 -0.527 -600.035 -2.169 -147.072
Top angle -39.698 -8.263 10.430 -32.575 57.207 -40.000 20.560 32.153 -8.315 ... 76.919 18.879 71.864 70.908 89.730 67.442 -7.038 -24.343 -17.147 -36.586
Top omax 64.105 72.336 2935.236 262.677 -80.421 135.316 1.856 131.356 785.854 ... -25088.283 45127.957 -17769.283 543.136 -12238.869 -9636.689 107.603 39375.387 -74.478 125.210
Top omin 62.000 71.021 2873.582 250.015 -85.946 131.620 1.830 120.547 772.147 ... -25722.750 43933.789 -18330.770 520.686 -12437.634 -10009.702 103.273 37777.641 -82.178 -182.093
Top von_mises 63.079 71.688 2904.899 256.581 83.321 133.506 1.843 126.299 779.091 ... 25411.457 44542.879 18056.574 532.266 12339.452 9828.506 105.505 38601.320 78.612 267.647
Bottom fiber_distance -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 ... -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400
Bottom oxx -11.387 -81.266 -2973.126 -64.880 455.379 -23.042 -1.281 -303.056 -765.731 ... 24883.457 -30238.398 19640.930 2770.839 14873.540 10550.590 -559.928 -42245.016 -439.057 -365.841
Bottom oyy -10.806 -79.652 -2920.277 -61.890 452.198 -22.588 -1.246 -298.652 -751.218 ... 24311.096 -29691.027 19145.287 2742.340 14604.558 10278.191 -551.124 -41174.793 -436.527 -280.720
Bottom txy -0.416 0.171 -13.570 3.687 -1.531 4.150 0.002 2.328 -0.877 ... -112.411 -285.534 -159.191 34.237 19.876 -119.782 -6.275 618.547 -4.636 103.383
Bottom angle -62.460 84.021 -76.409 56.038 -21.954 46.565 86.750 66.701 -86.556 ... -10.722 -66.893 -16.358 33.702 4.203 -20.665 -62.525 65.432 -52.630 56.188
Bottom omax -10.588 -79.634 -2916.996 -59.406 455.996 -18.659 -1.246 -297.649 -751.165 ... 24904.742 -29569.197 19687.654 2793.673 14875.000 10595.769 -547.860 -40892.012 -432.987 -211.480
Bottom omin -11.604 -81.284 -2976.407 -67.364 451.580 -26.972 -1.281 -304.059 -765.784 ... 24289.809 -30360.229 19098.562 2719.506 14603.097 10233.013 -563.191 -42527.793 -442.597 -435.081
Bottom von_mises 11.131 80.472 2947.151 63.758 453.805 23.924 1.264 300.905 758.580 ... 24603.041 29972.543 19399.816 2757.338 14740.930 10419.128 555.684 41733.953 437.871 376.840
1 Top fiber_distance 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400 ... 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400 0.400
Top oxx 61.601 69.627 2818.090 248.612 -80.401 130.484 1.796 121.136 756.985 ... -24618.369 43177.641 -17467.213 529.919 -11994.096 -9497.749 101.271 37288.125 -79.879 -71.464
Top oyy 55.320 71.706 2850.860 106.187 -95.016 78.280 1.918 123.303 772.659 ... -24838.457 43704.227 -18023.939 406.594 -12137.408 -10014.802 146.330 39310.965 -79.569 513.430
Top txy -1.035 -0.187 10.977 -5.745 2.516 -1.820 0.009 4.870 -1.962 ... 139.871 365.614 166.092 6.939 0.937 132.145 -0.527 -600.035 -2.169 -147.072
Top angle -9.119 -84.898 73.089 -2.306 9.498 -1.994 85.978 51.271 -82.974 ... 25.903 62.880 15.412 3.210 0.375 13.537 -89.331 -74.661 -47.044 -76.651
Top omax 61.768 71.723 2854.198 248.843 -79.980 130.547 1.919 127.208 772.900 ... -24550.441 43891.484 -17421.426 530.308 -11994.090 -9465.935 146.336 39475.562 -77.549 548.329
Top omin 55.154 69.610 2814.753 105.956 -95.437 78.217 1.796 117.230 756.743 ... -24906.383 42990.383 -18069.725 406.205 -12137.415 -10046.616 101.265 37123.531 -81.898 -106.363
Top von_mises 58.741 70.690 2834.681 216.294 88.724 113.796 1.860 122.524 764.950 ... 24730.334 43447.941 17754.455 480.433 12066.391 9769.228 129.808 38353.672 79.813 608.522
Bottom fiber_distance -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 ... -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400 -0.400
Bottom oxx -10.589 -78.059 -2861.871 -60.652 443.154 -22.136 -1.221 -292.679 -736.194 ... 23824.873 -29097.207 18762.381 2687.493 14312.467 10072.628 -540.101 -40351.297 -427.797 -275.106
Bottom oyy -16.035 -79.929 -2943.220 -169.181 451.588 -88.278 -1.092 -304.247 -747.370 ... 24354.615 -28959.348 19319.707 2577.774 14583.787 10418.475 -497.332 -42217.508 -425.862 -515.166
Bottom txy -0.416 0.171 -13.570 3.687 -1.531 4.150 0.002 2.328 -0.877 ... -112.411 -285.534 -159.191 34.237 19.876 -119.782 -6.275 618.547 -4.636 103.383
Bottom angle -4.346 5.179 -9.225 1.943 -80.022 3.577 89.131 10.963 -4.458 ... -78.502 -51.786 -75.131 15.984 85.832 -72.645 -81.823 16.770 -50.895 20.369
Bottom omax -10.558 -78.044 -2859.667 -60.527 451.857 -21.877 -1.092 -292.228 -736.125 ... 24377.482 -28734.541 19361.973 2697.300 14585.235 10455.908 -496.430 -40164.898 -422.094 -236.721
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5537 5516 Top oyy -7.772 -11.748 93.076 -47.487 10.544 -38.280 0.273 -18.371 -94.962 ... -18286.732 -7043.129 148017.688 150270.906 3727.389 -231121.391 233512.641 -62162.062 -187204.766 178422.000
Top txy 1.250 0.267 -9.693 -0.119 -2.361 0.283 -0.021 -2.087 10.175 ... 6761.086 2958.235 -648.277 20.357 425.973 -1495.034 747.074 3303.126 -916.570 2091.304
Top angle 45.326 2.803 -72.394 -1.983 -47.258 5.475 -72.665 -8.429 19.001 ... 11.230 61.717 -89.597 89.988 83.139 -0.630 89.683 7.299 -0.517 88.804
Top omax -6.536 -6.296 96.152 -44.043 12.726 -35.329 0.279 -4.286 -65.415 ... 15766.913 -5451.424 148022.250 150270.922 3778.643 -95173.180 233516.781 -36372.953 -85590.406 178465.656
Top omin -9.037 -11.761 62.532 -47.491 7.989 -38.307 0.206 -18.680 -98.466 ... -19629.094 -12541.104 55907.703 55013.773 187.114 -231137.844 98526.789 -62585.137 -187213.031 78222.711
Top von_mises 8.082 10.194 84.516 45.864 11.140 36.908 0.251 16.949 86.796 ... 30714.607 10891.760 129463.023 131684.828 3688.647 201207.625 203051.609 54437.898 162329.281 154947.453
Bottom fiber_distance -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 ... -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309
Bottom oxx 9.966 5.768 -87.297 -15.660 -18.265 -7.858 -0.135 -7.992 89.764 ... 75634.469 20782.520 -50846.699 -44737.809 1916.850 79104.234 -88461.680 62360.305 84935.234 -70096.383
Bottom oyy 9.180 8.187 -102.156 -98.385 -23.131 -68.761 0.004 -17.403 82.421 ... 244443.000 7137.102 -126662.555 -121167.359 -1224.295 198574.188 -210291.281 99878.688 184956.062 -166620.906
Bottom txy 0.769 0.509 -7.835 1.422 -1.355 1.176 -0.021 0.967 10.549 ... 2243.163 2866.086 760.509 1484.631 390.547 -1786.010 915.889 3906.458 747.305 523.086
Bottom angle 31.475 78.587 -23.261 0.984 -14.560 1.106 -81.398 5.804 35.405 ... 89.239 11.393 0.575 1.112 6.982 -89.144 0.431 84.118 89.572 0.310
Bottom omax 10.436 8.290 -83.929 -15.636 -17.913 -7.835 0.007 -7.894 97.262 ... 244472.797 21360.066 -50839.074 -44708.980 1964.679 198600.875 -88454.789 100281.117 184961.641 -70093.547
Bottom omin 8.709 5.666 -105.524 -98.409 -23.483 -68.783 -0.138 -17.501 74.923 ... 75604.664 6559.553 -126670.180 -121196.188 -1272.125 79077.547 -210298.172 61957.875 84929.656 -166623.734
Bottom von_mises 9.689 7.338 96.555 91.598 21.252 65.220 0.142 15.181 88.239 ... 216794.219 18951.721 110409.023 106154.844 2824.462 173178.219 182887.094 87646.305 160359.375 144904.547
5515 Top fiber_distance 0.309 0.309 0.309 0.309 0.309 0.309 0.309 0.309 0.309 ... 0.309 0.309 0.309 0.309 0.309 0.309 0.309 0.309 0.309 0.309
Top oxx -7.800 -6.309 65.608 -44.047 10.171 -35.356 0.213 -4.595 -68.919 ... 14424.552 -10949.398 55912.270 55013.781 238.368 -95189.617 98530.922 -36796.023 -85598.680 78266.359
Top oyy -2.961 -2.975 28.937 -15.170 4.925 -12.855 0.077 2.164 -22.122 ... 11840.911 1777.489 20906.279 22169.408 805.968 -52857.914 52999.559 -12889.904 -58870.668 57739.859
Top txy 1.250 0.267 -9.693 -0.119 -2.361 0.283 -0.021 -2.087 10.175 ... 6761.086 2958.235 -648.277 20.357 425.973 -1495.034 747.074 3303.126 -916.570 2091.304
Top angle 76.335 85.451 -13.931 -89.763 -20.998 89.280 -8.414 -74.151 78.249 ... 39.592 77.534 -1.061 0.036 61.837 -87.980 0.940 82.276 -88.038 5.759
Top omax -2.657 -2.954 68.012 -15.170 11.077 -12.851 0.216 2.757 -20.005 ... 20016.123 2431.493 55924.270 55013.793 1034.024 -52805.180 98543.180 -12441.904 -58839.273 78477.266
Top omin -8.104 -6.330 26.532 -44.048 4.019 -35.360 0.074 -5.188 -71.035 ... 6249.339 -11603.402 20894.279 22169.395 10.313 -95242.352 52987.305 -37244.023 -85630.070 57528.961
Top von_mises 7.156 5.486 59.373 38.757 9.713 31.001 0.190 6.987 63.444 ... 17737.303 12990.946 48944.840 47941.391 1028.906 82645.047 85421.750 32841.008 75869.352 70381.438
Bottom fiber_distance -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 ... -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309 -0.309
Bottom oxx 9.966 5.768 -87.297 -15.660 -18.265 -7.858 -0.135 -7.992 89.764 ... 75634.469 20782.520 -50846.699 -44737.809 1916.850 79104.234 -88461.680 62360.305 84935.234 -70096.383
Bottom oyy 4.512 3.799 -45.628 12.561 -7.796 11.127 -0.114 1.593 49.799 ... -1312.446 9070.467 -22057.523 -20766.449 608.554 48012.812 -51202.617 26673.715 58790.070 -53056.406
Bottom txy 0.769 0.509 -7.835 1.422 -1.355 1.176 -0.021 0.967 10.549 ... 2243.163 2866.086 760.509 1484.631 390.547 -1786.010 915.889 3906.458 747.305 523.086
Bottom angle 7.874 13.669 -79.695 87.123 -82.741 86.468 -58.090 84.299 13.915 ... 1.668 13.039 88.488 86.469 15.419 -3.277 88.593 6.175 1.636 88.243
Bottom omax 10.072 5.892 -44.204 12.633 -7.623 11.200 -0.101 1.689 92.377 ... 75699.805 21446.270 -22037.447 -20674.852 2024.566 79206.492 -51180.113 62782.922 84956.578 -53040.363
Bottom omin 4.405 3.675 -88.721 -15.732 -18.437 -7.930 -0.149 -8.089 47.185 ... -1377.783 8406.716 -50866.777 -44829.406 500.838 47910.555 -88484.180 26251.096 58768.730 -70112.422
Bottom von_mises 8.745 5.155 76.835 24.613 16.047 16.648 0.131 9.052 80.007 ... 76398.016 18716.908 44182.621 38862.371 1826.397 69096.039 76942.992 54614.055 75356.445 63326.484

306880 rows × 34 columns

chexa_stress
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID NodeID Item
3684 0 oxx 7.930e-12 1.137e-13 -9.095e-13 5.093e-11 1.137e-13 1.160e-11 -2.842e-14 -6.821e-13 -9.095e-13 7.822e-11 ... 3.365e-11 -3.638e-11 3.001e-11 7.105e-13 -9.095e-12 1.041e-10 0.000e+00 -7.531e-10 2.728e-12 6.821e-11
oyy -3.581e-12 -7.958e-13 9.095e-13 -1.205e-11 5.684e-14 5.912e-12 6.040e-14 -6.821e-13 -4.547e-12 -5.366e-11 ... 4.547e-12 -2.183e-11 3.683e-11 6.622e-12 -1.819e-12 4.547e-13 -6.821e-13 -2.037e-10 -1.137e-12 1.069e-10
ozz -3.411e-13 2.274e-13 -9.095e-13 1.364e-11 0.000e+00 -1.683e-11 3.553e-14 0.000e+00 2.728e-12 6.548e-11 ... 5.457e-12 -6.548e-11 -2.365e-11 2.757e-12 0.000e+00 -1.296e-11 0.000e+00 1.373e-10 -1.364e-12 -4.201e-11
txy -1.990e-13 0.000e+00 0.000e+00 -3.325e-12 -2.132e-14 -2.345e-12 3.553e-15 -3.638e-12 7.276e-12 0.000e+00 ... 1.455e-11 -2.910e-11 0.000e+00 5.002e-12 2.728e-12 -1.819e-12 -7.105e-14 -1.819e-11 0.000e+00 -7.276e-12
tyz 2.842e-14 5.684e-14 -9.095e-13 1.137e-13 -2.842e-14 3.411e-13 -7.105e-15 4.547e-13 9.095e-13 -4.547e-13 ... 1.364e-12 1.455e-11 6.821e-13 -9.948e-14 5.457e-12 1.137e-13 0.000e+00 2.274e-12 6.821e-13 1.251e-12
txz 5.116e-13 -2.274e-13 -1.819e-12 3.638e-12 7.958e-13 0.000e+00 -2.132e-14 -1.819e-12 -1.819e-12 5.457e-12 ... 7.276e-12 1.455e-11 9.095e-12 1.052e-12 0.000e+00 4.320e-12 4.547e-12 -2.910e-11 1.819e-12 1.819e-12
omax 7.965e-12 4.066e-13 1.602e-12 5.145e-11 8.562e-13 1.244e-11 6.329e-14 3.681e-12 5.123e-12 8.024e-11 ... 4.115e-11 1.002e-12 3.684e-11 9.505e-12 4.852e-12 1.043e-10 4.548e-12 1.383e-10 3.433e-12 1.082e-10
omid -3.721e-13 -6.218e-14 3.304e-13 1.330e-11 5.536e-14 5.074e-12 3.910e-14 -5.034e-13 2.633e-12 6.347e-11 ... 4.368e-12 -4.168e-11 3.151e-11 2.911e-12 -5.368e-12 4.255e-13 -6.820e-13 -2.032e-10 -8.214e-13 6.693e-11
omin -3.585e-12 -7.991e-13 -2.842e-12 -1.223e-11 -7.410e-13 -1.683e-11 -3.489e-14 -4.542e-12 -1.048e-11 -5.366e-11 ... -1.864e-12 -8.301e-11 -2.515e-11 -2.327e-12 -1.040e-11 -1.312e-11 -4.548e-12 -7.546e-10 -2.384e-12 -4.205e-11
von_mises 1.033e-11 1.053e-12 3.964e-12 5.551e-11 1.383e-12 2.637e-11 8.860e-14 7.122e-12 1.452e-11 1.264e-10 ... 4.026e-11 7.276e-11 5.951e-11 1.027e-11 1.346e-11 1.113e-10 7.907e-12 7.804e-10 5.215e-12 1.344e-10
55 oxx 2.331e-12 -2.103e-12 8.185e-12 -2.524e-11 1.990e-13 -2.638e-11 6.750e-14 -3.411e-12 -1.523e-11 7.458e-11 ... -1.046e-11 -1.273e-10 3.661e-11 4.263e-12 -1.910e-11 1.518e-11 -7.958e-13 -2.287e-10 -4.547e-13 1.064e-11
oyy 1.180e-12 -1.933e-12 3.865e-12 -5.798e-12 0.000e+00 -5.798e-12 -8.882e-15 -6.708e-12 -4.547e-12 -3.411e-11 ... 3.547e-11 -1.182e-10 2.478e-11 2.423e-12 -4.547e-12 -7.151e-11 -1.137e-13 -1.319e-11 -7.958e-13 -4.444e-11
ozz -9.450e-13 -1.052e-12 5.684e-12 -1.285e-11 -1.563e-13 -1.506e-11 4.352e-14 -7.049e-12 -4.093e-12 3.365e-11 ... -3.183e-12 -5.275e-11 3.911e-11 1.382e-12 5.457e-12 5.878e-11 -9.095e-13 2.296e-11 -3.411e-13 -7.942e-11
txy -3.979e-13 -9.095e-13 -3.638e-12 -6.651e-12 -1.421e-14 -6.509e-12 1.421e-14 -1.819e-12 -7.276e-12 1.455e-11 ... 1.455e-11 -1.164e-10 9.095e-12 2.728e-12 0.000e+00 9.095e-12 2.558e-13 -2.183e-11 2.274e-13 -1.819e-11
tyz -2.622e-14 -9.883e-14 1.750e-12 -2.222e-13 -3.770e-14 4.835e-13 -2.006e-15 -2.224e-12 -8.104e-13 -6.162e-13 ... -3.601e-12 5.856e-11 -2.200e-12 -2.530e-13 1.450e-11 -3.708e-12 -3.441e-13 1.356e-11 8.047e-13 6.033e-12
txz -4.756e-13 -6.529e-13 -4.843e-13 -6.709e-12 2.421e-13 -6.453e-12 3.004e-14 -2.999e-12 1.353e-12 2.229e-11 ... -1.371e-12 4.275e-12 -5.575e-12 -8.497e-13 2.769e-12 -5.762e-13 3.292e-12 2.627e-12 -5.075e-12 3.834e-12
omax 2.513e-12 -6.344e-13 1.061e-11 -3.337e-12 3.243e-13 -3.410e-12 8.903e-14 -1.660e-12 -3.793e-13 8.581e-11 ... 4.003e-11 1.803e-11 4.641e-11 6.364e-12 1.594e-11 5.890e-11 2.441e-12 2.757e-11 4.708e-12 1.615e-11
omid 1.068e-12 -1.368e-12 5.735e-12 -1.076e-11 -8.965e-17 -1.318e-11 2.571e-14 -4.769e-12 -4.529e-12 2.453e-11 ... -3.516e-12 -6.703e-11 3.428e-11 1.335e-12 -1.436e-11 1.610e-11 -7.079e-14 -1.554e-11 -7.161e-13 -4.838e-11
omin -1.016e-12 -3.085e-12 1.394e-12 -2.979e-11 -2.816e-13 -3.065e-11 -1.260e-14 -1.074e-11 -1.897e-11 -3.621e-11 ... -1.469e-11 -2.493e-10 1.982e-11 3.694e-13 -1.977e-11 -7.255e-11 -4.189e-12 -2.310e-10 -5.584e-12 -8.099e-11
von_mises 3.072e-12 2.178e-12 7.982e-12 2.363e-11 5.251e-13 2.390e-11 8.890e-14 7.990e-12 1.690e-11 1.057e-10 ... 5.008e-11 2.366e-10 2.305e-11 5.575e-12 3.333e-11 1.161e-10 5.798e-12 2.399e-10 8.918e-12 8.562e-11
51 oxx -8.669e-13 -3.979e-13 -4.547e-13 -5.252e-11 0.000e+00 1.467e-11 -3.553e-15 1.478e-12 2.274e-13 3.320e-11 ... 4.138e-11 -9.095e-12 -4.070e-11 1.982e-12 -5.457e-12 1.016e-10 7.958e-13 -6.821e-12 -1.137e-12 -7.205e-11
oyy 2.288e-12 9.663e-13 -5.457e-12 1.148e-11 2.842e-14 4.434e-12 -1.776e-15 2.842e-12 7.503e-12 -6.094e-11 ... -1.592e-11 -1.819e-12 -7.822e-11 -2.110e-12 7.276e-12 -1.393e-11 -2.274e-13 4.957e-11 -4.547e-13 4.323e-11
ozz -2.530e-12 7.105e-13 -2.387e-12 3.752e-12 1.421e-13 1.745e-11 -1.776e-15 -1.705e-12 -1.137e-12 -4.411e-11 ... 3.229e-11 -1.201e-10 -4.002e-11 1.744e-12 -1.000e-11 -1.052e-12 -4.547e-13 1.462e-10 -3.411e-13 1.714e-11
txy -3.147e-13 -1.976e-12 6.148e-12 7.636e-13 2.472e-15 2.116e-12 8.860e-15 -5.945e-12 -8.335e-12 -1.593e-12 ... 2.210e-12 -1.272e-10 4.515e-12 3.867e-12 1.422e-11 1.562e-11 9.429e-15 -4.802e-12 -7.019e-13 -1.218e-12
tyz 2.172e-14 -3.556e-13 5.266e-13 -1.716e-13 -4.815e-14 5.244e-13 -2.584e-15 -1.862e-12 -9.273e-14 -8.046e-13 ... -1.152e-12 3.877e-11 -1.061e-12 -5.042e-13 8.051e-12 -2.069e-12 -4.099e-13 7.016e-12 1.325e-12 4.326e-12
txz 1.953e-13 -1.578e-13 -2.495e-12 -3.175e-12 7.170e-13 -2.898e-12 3.136e-14 7.684e-13 5.255e-12 1.899e-11 ... -1.031e-12 -1.583e-12 -2.098e-12 6.473e-14 9.063e-12 1.029e-11 3.415e-12 2.846e-12 -3.375e-12 2.123e-13
omax 2.319e-12 2.398e-12 4.181e-12 1.150e-11 7.931e-13 1.931e-11 2.933e-14 8.499e-12 1.360e-11 3.764e-11 ... 4.159e-11 1.253e-10 -3.787e-11 4.328e-12 2.094e-11 1.046e-10 3.659e-12 1.467e-10 3.237e-12 4.394e-11
omid -8.746e-13 7.309e-13 -2.435e-12 3.924e-12 2.862e-14 1.332e-11 -4.387e-16 -1.843e-12 1.107e-12 -4.851e-11 ... 3.219e-11 -1.020e-10 -4.229e-11 1.763e-12 -1.154e-11 -1.208e-12 -2.110e-13 4.950e-11 -9.948e-13 1.644e-11
omin -2.553e-12 -1.850e-12 -1.004e-11 -5.271e-11 -6.512e-13 3.923e-12 -3.600e-14 -4.041e-12 -8.109e-12 -6.098e-11 ... -1.603e-11 -1.543e-10 -7.877e-11 -4.474e-12 -1.759e-11 -1.678e-11 -3.334e-12 -7.304e-12 -4.175e-12 -7.206e-11
von_mises 4.287e-12 3.707e-12 1.233e-11 6.078e-11 1.251e-12 1.343e-11 5.666e-14 1.160e-11 1.887e-11 9.302e-11 ... 5.354e-11 2.574e-10 3.888e-11 7.841e-12 3.589e-11 1.144e-10 6.068e-12 1.349e-10 6.440e-12 1.050e-10
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5568 5593 oxx -3.508e-12 -2.274e-13 1.455e-11 -4.491e-11 3.979e-13 -1.765e-11 1.101e-13 0.000e+00 1.819e-12 7.276e-11 ... -3.638e-10 1.543e-09 7.276e-12 -1.364e-11 1.201e-10 3.638e-12 -3.695e-13 -3.492e-10 5.002e-12 2.183e-11
oyy -1.910e-12 1.364e-11 -2.910e-11 -1.984e-11 -1.108e-12 -1.555e-11 1.066e-14 4.320e-11 8.095e-11 3.774e-11 ... -1.965e-10 4.875e-10 -8.004e-11 -3.098e-11 1.455e-10 -2.037e-10 -4.867e-12 5.093e-10 1.796e-11 1.419e-10
ozz -3.038e-12 2.956e-12 1.091e-11 -3.854e-11 7.390e-13 -3.982e-11 7.461e-14 4.547e-12 -1.819e-12 1.087e-10 ... -7.276e-10 1.484e-09 -1.892e-10 -5.997e-11 3.747e-10 -3.638e-11 -5.912e-12 -5.821e-11 1.955e-11 -2.547e-10
txy -3.954e-13 1.750e-12 -7.010e-12 2.309e-12 -4.538e-13 6.376e-12 -1.122e-14 3.328e-12 1.411e-11 -4.462e-11 ... 1.335e-11 -3.631e-10 4.497e-11 5.597e-12 -2.852e-11 -1.283e-11 -1.896e-13 5.992e-10 1.899e-13 8.628e-11
tyz 1.060e-12 4.652e-12 -1.532e-11 1.072e-11 -1.325e-12 9.790e-12 -8.149e-14 1.675e-11 2.616e-11 -1.288e-11 ... 3.620e-10 -3.138e-10 7.085e-11 8.793e-12 -4.765e-11 4.785e-12 2.247e-12 -1.583e-10 -8.333e-12 -9.756e-12
txz -1.819e-12 -1.840e-12 4.737e-12 -1.454e-11 3.482e-13 -1.455e-11 8.565e-14 -1.497e-12 -1.347e-11 7.267e-11 ... -1.800e-10 4.636e-10 -1.445e-10 1.085e-14 5.869e-11 -2.843e-11 -1.366e-12 -1.192e-10 7.320e-12 -5.916e-11
omax -5.772e-13 1.545e-11 2.232e-11 -1.432e-11 1.649e-12 -9.635e-12 2.006e-13 4.958e-11 8.965e-11 1.762e-10 ... 1.384e-12 2.119e-09 8.406e-11 -1.185e-11 3.986e-10 1.922e-11 6.388e-14 8.588e-10 2.840e-11 1.900e-10
omid -2.717e-12 2.911e-12 8.880e-12 -3.041e-11 2.070e-13 -1.254e-11 5.096e-14 1.761e-12 1.316e-11 4.838e-11 ... -3.311e-10 1.049e-09 -4.819e-11 -3.026e-11 1.429e-10 -5.112e-11 -3.391e-12 -9.786e-11 1.297e-11 -1.397e-11
omin -5.162e-12 -1.989e-12 -3.484e-11 -5.856e-11 -1.827e-12 -5.084e-11 -5.621e-14 -3.596e-12 -2.186e-11 -5.364e-12 ... -9.581e-10 3.460e-10 -2.978e-10 -6.248e-11 9.879e-11 -2.046e-10 -7.822e-12 -6.591e-10 1.149e-12 -2.669e-10
von_mises 3.974e-12 1.558e-11 5.176e-11 3.879e-11 3.025e-12 3.984e-11 2.235e-13 5.071e-11 9.877e-11 1.615e-10 ... 8.439e-10 1.546e-09 3.359e-10 4.438e-11 2.804e-10 1.982e-10 6.846e-12 1.329e-09 2.367e-11 3.964e-10
5594 oxx 3.617e-12 -1.819e-12 0.000e+00 4.547e-11 3.411e-13 3.763e-11 -7.105e-14 -3.638e-12 0.000e+00 -1.455e-10 ... 1.746e-10 -1.281e-09 -1.746e-10 2.024e-11 -3.420e-10 -2.328e-10 5.599e-12 0.000e+00 -2.274e-11 3.056e-10
oyy 5.379e-12 -9.550e-12 6.912e-11 8.504e-11 5.116e-13 4.698e-11 -5.329e-14 -3.001e-11 -8.549e-11 -2.374e-10 ... 2.910e-10 -2.765e-09 -1.965e-10 6.412e-11 -3.165e-10 -8.004e-11 3.226e-12 3.201e-10 -1.955e-11 3.565e-10
ozz 4.237e-12 -3.638e-12 2.638e-11 4.889e-11 -2.842e-13 4.025e-11 -3.553e-14 -1.273e-11 -2.183e-11 -1.828e-10 ... 4.366e-11 -1.688e-09 -3.274e-10 5.627e-12 -3.783e-10 -1.746e-10 2.260e-12 6.112e-10 -2.001e-11 3.783e-10
txy -2.931e-12 4.547e-13 -3.638e-12 -2.194e-11 1.137e-13 -2.450e-11 7.816e-14 -7.276e-12 0.000e+00 1.110e-10 ... -2.910e-11 5.239e-10 8.731e-11 -2.149e-11 2.328e-10 3.638e-11 -2.416e-12 2.910e-11 5.912e-12 -1.455e-10
tyz 1.130e-12 6.329e-12 -1.339e-11 9.531e-12 -1.439e-12 1.032e-11 -7.313e-14 1.234e-11 1.732e-11 -1.379e-11 ... 4.972e-10 -2.185e-10 1.057e-10 7.822e-12 -5.680e-11 1.915e-11 2.829e-12 -9.089e-11 -7.331e-12 -4.304e-12
txz -1.364e-12 4.267e-13 -2.508e-12 1.291e-14 -5.601e-13 -1.091e-11 2.887e-14 2.999e-13 -6.245e-12 5.810e-11 ... -5.065e-12 1.140e-10 3.032e-11 1.456e-11 8.788e-11 2.989e-11 4.526e-13 -1.197e-10 -3.586e-12 -5.932e-11
omax 8.293e-12 5.456e-13 7.308e-11 9.640e-11 1.742e-12 7.387e-11 4.148e-14 -7.111e-13 1.919e-12 -5.735e-11 ... 6.811e-10 -1.111e-09 -6.291e-11 7.294e-11 -9.465e-11 -6.575e-11 7.418e-12 6.602e-10 -9.086e-12 4.904e-10
omid 3.576e-12 -1.971e-12 2.303e-11 4.844e-11 2.865e-13 3.380e-11 -2.405e-14 -7.948e-12 -1.932e-11 -1.828e-10 ... 1.737e-10 -1.646e-09 -2.479e-10 2.522e-11 -3.336e-10 -1.720e-10 4.402e-12 2.942e-10 -2.513e-11 3.782e-10
omin 1.363e-12 -1.358e-11 -6.109e-13 3.456e-11 -1.460e-12 1.718e-11 -1.773e-13 -3.773e-11 -8.992e-11 -3.256e-10 ... -3.454e-10 -2.977e-09 -3.877e-10 -8.172e-12 -6.085e-10 -2.497e-10 -7.360e-13 -2.303e-11 -2.809e-11 1.719e-10
von_mises 6.131e-12 1.305e-11 6.517e-11 5.620e-11 2.778e-12 5.047e-11 1.945e-13 3.398e-11 8.328e-11 2.325e-10 ... 8.890e-10 1.664e-09 2.822e-10 7.061e-11 4.454e-10 1.600e-10 7.141e-12 5.922e-10 1.771e-11 2.799e-10
5595 oxx 7.276e-12 -1.819e-12 2.183e-11 1.028e-10 5.684e-13 9.538e-11 -1.137e-13 -7.276e-12 -3.638e-11 -3.693e-10 ... -3.492e-10 -3.842e-09 -7.276e-10 1.064e-10 -8.513e-10 -4.220e-10 9.408e-12 2.154e-09 -7.094e-11 1.339e-09
oyy 2.046e-12 3.638e-12 0.000e+00 2.456e-11 1.364e-12 1.501e-11 0.000e+00 0.000e+00 -2.910e-11 -5.093e-11 ... -4.657e-10 -4.657e-10 -5.821e-10 1.910e-11 -2.910e-10 -1.746e-10 3.297e-12 6.985e-10 -1.455e-11 1.164e-10
ozz 1.091e-11 9.095e-13 -3.638e-12 1.321e-10 -2.046e-12 9.550e-11 -2.061e-13 3.638e-12 -2.910e-11 -3.129e-10 ... -8.731e-11 -2.852e-09 -3.783e-10 1.066e-10 -7.858e-10 -3.201e-10 1.029e-11 1.630e-09 -6.639e-11 7.276e-10
txy -1.101e-12 0.000e+00 -3.638e-12 -2.262e-11 1.137e-13 -1.023e-11 3.553e-14 -3.638e-12 3.638e-12 5.821e-11 ... 2.910e-11 1.746e-10 2.910e-11 -2.274e-13 8.731e-11 -7.276e-12 -1.876e-12 -2.910e-11 1.410e-11 8.731e-11
tyz -2.593e-13 -1.364e-12 1.273e-11 -4.889e-12 9.095e-13 -3.524e-12 2.842e-14 -3.638e-12 -3.638e-12 5.457e-12 ... -8.731e-11 4.366e-10 -1.310e-10 -1.273e-11 1.091e-10 -7.276e-12 -1.734e-12 2.910e-11 8.640e-12 0.000e+00
txz -1.364e-12 -1.789e-12 8.146e-12 -1.455e-11 3.396e-13 -1.091e-11 7.097e-14 -3.156e-12 -1.677e-11 5.823e-11 ... -2.405e-10 3.497e-10 -8.753e-11 7.274e-12 2.900e-11 -2.924e-11 -4.544e-13 -1.158e-10 -3.647e-12 -5.801e-11
omax 1.137e-11 4.290e-12 2.421e-11 1.383e-10 1.627e-12 1.066e-10 2.107e-14 5.943e-12 -1.387e-11 -3.971e-11 ... 7.067e-11 -3.725e-10 -2.950e-10 1.147e-10 -2.540e-10 -1.741e-10 1.070e-11 2.179e-09 -1.020e-11 1.350e-09
omid 7.073e-12 1.204e-12 1.057e-11 1.033e-10 5.644e-13 8.584e-11 -9.599e-14 5.855e-13 -3.081e-11 -2.815e-10 ... -4.663e-10 -2.834e-09 -6.447e-10 1.001e-10 -8.070e-10 -3.125e-10 9.936e-12 1.606e-09 -6.438e-11 7.222e-10
omin 1.793e-12 -2.765e-12 -1.659e-11 1.784e-11 -2.306e-12 1.343e-11 -2.448e-13 -1.017e-11 -4.991e-11 -4.119e-10 ... -5.066e-10 -3.953e-09 -7.483e-10 1.728e-11 -8.671e-10 -4.301e-10 2.362e-12 6.971e-10 -7.732e-11 1.102e-10
von_mises 8.306e-12 6.125e-12 3.598e-11 1.073e-10 3.524e-12 8.472e-11 2.308e-13 1.421e-11 3.124e-11 3.271e-10 ... 5.582e-10 3.173e-09 4.115e-10 9.104e-11 5.853e-10 2.219e-10 7.981e-12 1.294e-09 6.168e-11 1.074e-09

2250 rows × 33 columns

cquad4_composite_stress
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID Layer Item
3463 1 o11 1.653e+00 -1.336e+01 9.831e+01 -3.457e+01 1.091e+01 -1.487e+01 2.531e-01 -5.527e+01 -7.705e+01 1.094e+02 ... 298.963 -478.466 540.027 -5.842e+02 -306.510 159.360 7.806e+01 -548.718 6.558e+01 -1.424e+02
o22 2.683e+01 -8.991e+00 1.208e+02 3.412e+02 9.045e+00 1.995e+02 3.961e-01 -4.688e-01 -4.120e+01 -5.672e+02 ... -3469.760 8798.746 -1987.453 3.775e+03 1088.025 574.552 -6.638e+02 -5165.128 -7.900e+02 -2.460e+03
t12 -1.071e+01 2.799e+01 -1.993e+02 -6.985e+01 -4.540e+00 -3.400e+01 -6.632e-01 9.785e+01 1.596e+02 -4.861e+00 ... 1207.068 -1911.973 72.094 -7.483e+02 129.985 -477.285 2.087e+02 3220.338 2.484e+02 1.257e+03
t1z -3.346e-02 2.238e-02 -2.830e-01 2.261e-03 -8.003e-02 -1.315e-01 -1.118e-03 1.174e-01 1.051e-01 -1.493e-01 ... -4.154 -8.090 -4.946 3.212e+00 -0.981 -2.215 -8.716e-01 6.843 -2.002e-01 2.757e+00
t2z 9.391e-02 -5.794e-02 6.987e-01 5.875e-02 2.222e-01 3.930e-01 2.321e-03 -3.266e-01 -2.814e-01 4.888e-02 ... 12.397 17.850 12.708 -8.759e+00 2.423 4.912 2.386e+00 -12.872 4.679e-01 -5.417e+00
angle -6.981e+01 4.723e+01 -4.661e+01 -7.980e+01 -3.921e+01 -8.120e+01 -4.808e+01 5.282e+01 4.820e+01 -4.116e-01 ... 16.321 -78.800 1.633 -8.053e+01 84.720 -56.753 1.468e+01 27.184 1.507e+01 2.366e+01
major 3.076e+01 1.689e+01 3.092e+02 3.538e+02 1.461e+01 2.048e+02 9.917e-01 7.374e+01 1.015e+02 1.094e+02 ... 652.421 9177.341 542.082 3.900e+03 1100.037 887.434 1.327e+02 1105.195 1.325e+02 4.083e+02
minor -2.284e+00 -3.925e+01 -9.011e+01 -4.714e+01 5.341e+00 -2.014e+01 -3.425e-01 -1.295e+02 -2.197e+02 -5.672e+02 ... -3823.217 -857.061 -1989.508 -7.091e+02 -318.523 -153.522 -7.185e+02 -6819.042 -8.569e+02 -3.010e+03
max_shear 1.652e+01 2.807e+01 1.997e+02 2.004e+02 4.635e+00 1.124e+02 6.671e-01 1.016e+02 1.606e+02 3.383e+02 ... 2237.819 5017.201 1265.795 2.305e+03 709.280 520.478 4.256e+02 3962.119 4.947e+02 1.709e+03
2 o11 -6.819e-05 -7.947e-05 4.139e-04 -1.110e-03 2.354e-05 -6.985e-04 1.405e-07 -4.194e-04 -4.931e-04 2.203e-03 ... 0.008 -0.030 0.006 -1.208e-02 -0.006 -0.001 1.748e-03 0.010 2.220e-03 5.961e-03
o22 2.610e-04 -9.335e-05 9.947e-04 3.668e-03 -6.263e-05 2.094e-03 5.855e-06 7.387e-05 -4.815e-04 -6.056e-03 ... -0.030 0.084 -0.018 3.737e-02 0.013 0.005 -6.589e-03 -0.046 -7.543e-03 -2.268e-02
t12 -2.075e-04 6.765e-04 -4.305e-03 -2.414e-03 3.463e-04 -7.801e-04 -1.621e-05 2.197e-03 3.982e-03 1.179e-03 ... 0.035 -0.029 0.010 -2.648e-02 0.003 -0.008 7.190e-03 0.064 6.901e-03 2.529e-02
t1z -3.346e-02 2.238e-02 -2.830e-01 2.261e-03 -8.003e-02 -1.315e-01 -1.118e-03 1.174e-01 1.051e-01 -1.493e-01 ... -4.154 -8.090 -4.946 3.212e+00 -0.981 -2.215 -8.716e-01 6.843 -2.002e-01 2.757e+00
t2z 9.391e-02 -5.794e-02 6.987e-01 5.875e-02 2.222e-01 3.930e-01 2.321e-03 -3.266e-01 -2.814e-01 4.888e-02 ... 12.397 17.850 12.708 -8.759e+00 2.423 4.912 2.386e+00 -12.872 4.679e-01 -5.417e+00
angle -6.421e+01 4.471e+01 -4.693e+01 -6.735e+01 4.145e+01 -7.540e+01 -5.000e+01 4.820e+01 4.504e+01 7.968e+00 ... 30.969 -76.591 19.141 -6.652e+01 80.821 -56.005 2.995e+01 33.244 2.736e+01 3.024e+01
major 3.612e-04 5.901e-04 5.019e-03 4.675e-03 3.294e-04 2.297e-03 1.946e-05 2.038e-03 3.495e-03 2.368e-03 ... 0.028 0.091 0.010 4.888e-02 0.013 0.010 5.890e-03 0.053 5.791e-03 2.070e-02
minor -1.685e-04 -7.629e-04 -3.610e-03 -2.117e-03 -3.685e-04 -9.017e-04 -1.347e-05 -2.384e-03 -4.469e-03 -6.222e-03 ... -0.050 -0.037 -0.021 -2.358e-02 -0.007 -0.006 -1.073e-02 -0.088 -1.111e-02 -3.742e-02
max_shear 2.649e-04 6.765e-04 4.315e-03 3.396e-03 3.489e-04 1.599e-03 1.646e-05 2.211e-03 3.982e-03 4.295e-03 ... 0.039 0.064 0.015 3.623e-02 0.010 0.008 8.311e-03 0.070 8.453e-03 2.906e-02
3 o11 -3.061e+00 -1.003e+01 5.135e+01 -2.009e+01 -8.917e+00 -3.125e+01 9.960e-02 -3.718e+01 -6.273e+01 6.592e+01 ... -178.340 -1736.328 -74.682 -1.488e+02 -406.984 -134.962 -3.641e+01 447.785 3.250e+01 2.724e+02
o22 2.948e+01 -1.683e+01 1.307e+02 4.420e+02 -2.217e+01 2.440e+02 9.586e-01 -5.487e+00 -9.655e+01 -7.056e+02 ... -2915.432 9012.891 -1795.942 4.162e+03 1455.565 537.531 -7.564e+02 -4742.028 -8.238e+02 -2.433e+03
t12 -5.834e+00 2.593e+01 -1.437e+02 -1.225e+02 3.214e+01 -2.817e+01 -6.290e-01 7.727e+01 1.578e+02 9.884e+01 ... 1566.515 -388.872 690.010 -1.362e+03 115.661 -134.280 3.644e+02 1902.531 3.016e+02 7.588e+02
t1z 0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 ... 0.000 0.000 0.000 -0.000e+00 0.000 0.000 0.000e+00 -0.000 0.000e+00 -0.000e+00
t2z -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 ... -0.000 -0.000 -0.000 0.000e+00 -0.000 -0.000 -0.000e+00 0.000 -0.000e+00 0.000e+00
angle -8.014e+01 4.126e+01 -5.272e+01 -7.603e+01 3.918e+01 -8.422e+01 -6.216e+01 5.080e+01 4.194e+01 7.185e+00 ... 24.429 -87.931 19.360 -7.385e+01 86.460 -79.115 2.267e+01 18.124 1.758e+01 1.465e+01
major 3.049e+01 1.272e+01 2.402e+02 4.724e+02 1.727e+01 2.469e+02 1.291e+00 5.754e+01 7.902e+01 7.838e+01 ... 533.232 9026.940 167.774 4.556e+03 1462.720 563.352 1.158e+02 1070.512 1.281e+02 4.708e+02
minor -4.076e+00 -3.958e+01 -5.809e+01 -5.057e+01 -4.835e+01 -3.410e+01 -2.326e-01 -1.002e+02 -2.383e+02 -7.181e+02 ... -3627.004 -1750.378 -2038.398 -5.433e+02 -414.139 -160.783 -9.086e+02 -5364.755 -9.194e+02 -2.631e+03
max_shear 1.728e+01 2.615e+01 1.491e+02 2.615e+02 3.281e+01 1.405e+02 7.617e-01 7.887e+01 1.587e+02 3.982e+02 ... 2080.118 5388.659 1103.086 2.550e+03 938.430 362.067 5.122e+02 3217.633 5.237e+02 1.551e+03
3604 1 o11 -2.729e+00 9.864e+00 -4.650e+01 -5.289e+01 2.258e+01 -1.050e+01 -3.169e-01 2.859e+01 5.915e+01 2.065e+01 ... 281.294 -293.702 -89.885 -2.844e+02 -8.555 -201.463 7.635e+01 1174.450 9.900e+01 3.894e+02
o22 2.430e+01 -5.286e+01 4.502e+02 2.613e+02 2.821e+01 1.188e+02 6.862e-01 -1.739e+02 -2.993e+02 -3.452e+02 ... -4581.175 5874.922 -2221.164 3.347e+03 -505.853 357.264 -7.946e+02 -5085.291 -7.311e+02 -2.168e+03
t12 -6.763e+00 1.181e+01 -1.478e+02 3.586e+01 -5.716e+01 -2.018e+01 -6.787e-02 5.475e+01 6.191e+01 -3.043e+01 ... -569.531 -1248.015 -601.501 7.869e+02 295.698 -110.241 -1.399e+02 142.815 -1.121e+02 1.002e+02
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4553 3 major 1.556e+01 -1.166e+00 4.272e+01 5.027e+01 9.330e+00 4.025e+01 2.189e-01 -6.226e+00 -8.880e+00 2.065e+02 ... 369.579 227.019 30.605 6.468e+02 -109.168 790.577 9.127e+01 1745.064 -3.686e+00 5.859e+02
minor 1.481e-01 -9.483e+00 -3.262e+01 4.540e+00 7.763e-02 4.110e+00 -3.344e-02 -5.953e+01 -9.733e+01 -3.937e+01 ... -6470.115 -22124.072 -4523.191 -1.092e+01 -3904.854 -360.915 -2.055e+00 -7143.062 -1.388e+02 -3.703e+03
max_shear 7.704e+00 4.158e+00 3.767e+01 2.287e+01 4.626e+00 1.807e+01 1.262e-01 2.665e+01 4.423e+01 1.229e+02 ... 3419.847 11175.545 2276.898 3.289e+02 1897.844 575.746 4.666e+01 4444.063 6.755e+01 2.145e+03
4554 1 o11 -3.799e-01 1.518e+00 -6.887e+00 -2.059e+00 -2.619e+00 -4.991e+00 6.262e-02 6.639e+00 6.563e+00 1.629e+01 ... -398.599 -366.898 -171.235 5.664e+00 71.562 115.893 1.127e+01 -759.561 5.186e+00 -3.339e+02
o22 -7.182e+00 6.814e+00 -3.162e+01 -9.531e+01 -1.798e+00 -7.645e+01 9.292e-02 2.102e+01 2.127e+01 3.569e+02 ... -2936.482 -6111.822 -1000.820 1.957e+02 -594.632 1211.643 -3.038e+01 -7660.046 9.291e+00 -2.967e+03
t12 8.521e-01 -1.602e+00 1.086e+01 2.662e+01 1.064e+00 2.297e+01 -9.517e-02 -3.413e+00 2.599e+00 -1.433e+02 ... 1857.692 4829.781 890.761 -1.278e+02 703.258 -575.852 -1.286e+01 3861.737 4.822e+00 1.601e+03
t1z -2.126e-02 2.102e-02 -1.776e-01 -1.936e-01 -1.741e-02 -1.522e-01 -1.739e-04 9.116e-02 1.383e-01 5.658e-01 ... 1.227 -4.370 3.861 -6.915e-02 -1.600 3.567 -1.099e-01 -17.087 2.559e-01 -4.558e+00
t2z 7.182e-02 -7.457e-02 5.032e-01 6.753e-01 2.741e-02 5.195e-01 3.520e-04 -3.048e-01 -4.732e-01 -1.845e+00 ... 0.981 -11.889 -7.704 2.743e-01 -3.955 -7.944 4.847e-01 40.091 -5.359e-01 1.185e+01
angle 7.033e+00 -7.441e+01 2.065e+01 1.486e+01 5.554e+01 1.637e+01 -4.952e+01 -7.731e+01 8.026e+01 -6.996e+01 ... 27.832 29.629 32.515 -6.332e+01 32.328 -66.787 -1.584e+01 24.111 5.653e+01 2.528e+01
major -2.748e-01 7.261e+00 -2.794e+00 5.006e+00 -1.068e+00 1.755e+00 1.741e-01 2.179e+01 2.171e+01 4.091e+02 ... 582.178 2380.055 396.575 2.599e+02 516.620 1458.610 1.492e+01 968.727 1.248e+01 4.223e+02
minor -7.287e+00 1.071e+00 -3.571e+01 -1.024e+02 -3.349e+00 -8.320e+01 -1.860e-02 5.870e+00 6.117e+00 -3.598e+01 ... -3917.259 -8858.774 -1568.630 -5.854e+01 -1039.690 -131.074 -3.403e+01 -9388.334 1.997e+00 -3.723e+03
max_shear 3.506e+00 3.095e+00 1.646e+01 5.369e+01 1.140e+00 4.248e+01 9.637e-02 7.960e+00 7.798e+00 2.226e+02 ... 2249.718 5619.415 982.603 1.592e+02 778.155 794.842 2.447e+01 5178.531 5.241e+00 2.073e+03
2 o11 -5.422e-07 1.670e-05 -1.582e-04 4.606e-05 -2.581e-05 1.859e-05 2.650e-07 8.222e-05 1.234e-04 -2.097e-04 ... 0.003 0.008 0.003 -3.610e-04 0.002 0.001 6.110e-05 -0.003 1.408e-04 -3.519e-04
o22 -2.586e-06 5.527e-06 -7.895e-05 -3.345e-04 1.352e-05 -2.692e-04 8.079e-07 -5.068e-05 -1.516e-04 2.017e-03 ... -0.026 -0.077 -0.015 2.215e-03 -0.012 0.006 7.663e-05 -0.045 -2.265e-04 -1.966e-02
t12 -1.297e-05 -3.429e-05 5.406e-04 4.940e-04 2.530e-06 4.123e-04 -2.199e-06 -2.483e-05 1.012e-04 -3.553e-03 ... 0.050 0.144 0.024 -3.905e-03 0.023 -0.016 -3.749e-04 0.103 1.928e-04 4.292e-02
t1z -2.126e-02 2.102e-02 -1.776e-01 -1.936e-01 -1.741e-02 -1.522e-01 -1.739e-04 9.116e-02 1.383e-01 5.658e-01 ... 1.227 -4.370 3.861 -6.915e-02 -1.600 3.567 -1.099e-01 -17.087 2.559e-01 -4.558e+00
t2z 7.182e-02 -7.457e-02 5.032e-01 6.753e-01 2.741e-02 5.195e-01 3.520e-04 -3.048e-01 -4.732e-01 -1.845e+00 ... 0.981 -11.889 -7.704 2.743e-01 -3.955 -7.944 4.847e-01 40.091 -5.359e-01 1.185e+01
angle -4.275e+01 -4.037e+01 4.710e+01 3.447e+01 8.633e+01 3.538e+01 -4.852e+01 -1.025e+01 1.818e+01 -5.370e+01 ... 36.834 36.815 35.039 -5.413e+01 36.629 -49.667 -4.559e+01 39.293 2.320e+01 3.866e+01
major 1.144e-05 4.586e-05 4.235e-04 3.852e-04 1.368e-05 3.113e-04 2.752e-06 8.671e-05 1.567e-04 4.628e-03 ... 0.040 0.116 0.020 5.039e-03 0.019 0.019 4.438e-04 0.082 2.234e-04 3.398e-02
minor -1.457e-05 -2.363e-05 -6.606e-04 -6.736e-04 -2.598e-05 -5.619e-04 -1.679e-06 -5.517e-05 -1.848e-04 -2.820e-03 ... -0.064 -0.185 -0.032 -3.185e-03 -0.029 -0.012 -3.061e-04 -0.130 -3.091e-04 -5.399e-02
max_shear 1.301e-05 3.475e-05 5.420e-04 5.294e-04 1.983e-05 4.366e-04 2.215e-06 7.094e-05 1.708e-04 3.724e-03 ... 0.052 0.150 0.026 4.112e-03 0.024 0.016 3.750e-04 0.106 2.663e-04 4.399e-02
3 o11 1.137e-01 2.626e+00 -3.382e+01 -5.651e+00 -2.580e+00 -5.461e+00 4.256e-02 9.504e+00 1.354e+01 4.585e+01 ... -425.599 -1993.954 47.327 3.247e+01 -323.378 448.541 6.979e+00 -2412.292 1.480e+01 -8.227e+02
o22 6.557e+00 -4.629e+00 4.801e+00 2.087e+01 3.496e+00 1.554e+01 1.074e-01 -2.818e+01 -4.939e+01 9.572e+01 ... -3005.632 -11119.231 -2199.244 2.941e+02 -2065.655 247.226 5.135e+01 -2837.432 -5.370e+01 -1.575e+03
t12 -1.886e+00 -1.131e+00 3.222e+01 1.275e+01 -8.624e-01 9.888e+00 -8.006e-02 1.433e+00 5.468e+00 -1.399e+02 ... 2111.848 6675.612 1038.234 -1.835e+02 1116.382 -660.964 -1.702e+01 4384.203 1.054e+01 1.819e+03
t1z 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 ... -0.000 0.000 -0.000 0.000e+00 0.000 -0.000 0.000e+00 0.000 -0.000e+00 0.000e+00
t2z -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... -0.000 0.000 0.000 -0.000e+00 0.000 0.000 -0.000e+00 -0.000 0.000e+00 -0.000e+00
angle -7.483e+01 -8.659e+00 6.047e+01 6.806e+01 -8.208e+01 6.836e+01 -5.603e+01 2.175e+00 4.929e+00 -5.005e+01 ... 29.291 27.824 21.373 -6.274e+01 26.017 -40.671 -7.125e+01 43.612 8.554e+00 3.916e+01
major 7.068e+00 2.798e+00 2.306e+01 2.601e+01 3.616e+00 1.946e+01 1.614e-01 9.558e+00 1.401e+01 2.129e+02 ... 759.065 1529.288 453.650 3.886e+02 221.531 1016.469 5.713e+01 1764.491 1.639e+01 6.591e+02
minor -3.976e-01 -4.801e+00 -5.207e+01 -1.079e+01 -2.700e+00 -9.384e+00 -1.139e-02 -2.824e+01 -4.986e+01 -7.134e+01 ... -4190.296 -14642.474 -2605.566 -6.205e+01 -2610.564 -320.701 1.200e+00 -7014.215 -5.529e+01 -3.056e+03
max_shear 3.733e+00 3.800e+00 3.756e+01 1.840e+01 3.158e+00 1.442e+01 8.639e-02 1.890e+01 3.194e+01 1.421e+02 ... 2474.681 8085.881 1529.608 2.253e+02 1416.047 668.585 2.796e+01 4389.354 3.584e+01 1.858e+03

20088 rows × 33 columns

ctria3_composite_stress
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID Layer Item
3730 1 o11 7.472e+00 -1.610e+01 1.216e+02 5.521e+01 -2.491e+01 1.036e+01 3.006e-01 -4.967e+01 -8.549e+01 9.623e+01 ... -2428.613 3445.647 94.165 -2.467e+02 2.212e+01 1032.241 3.127e+01 -6045.866 1.999e+01 -1780.650
o22 2.065e+00 3.429e+00 1.118e+01 7.541e+01 -1.917e+01 3.913e+01 4.003e-01 3.389e+01 2.287e+01 -2.450e+01 ... -809.614 1612.271 -612.437 4.699e+02 6.439e+01 -225.460 -5.340e+01 955.208 -3.297e+01 -113.679
t12 2.229e+00 -4.995e+00 4.908e+01 2.082e+01 1.760e+01 3.814e+01 2.057e-01 -1.904e+01 -3.857e+01 -1.401e+02 ... 2111.900 -1254.861 174.220 4.577e-02 2.268e+00 -777.952 -7.980e+00 4676.300 -3.000e+01 1139.945
t1z 2.330e-02 8.382e-02 -4.502e-01 2.978e-01 4.295e-02 3.173e-01 -2.942e-03 2.667e-01 5.215e-01 -1.673e+00 ... 13.159 -5.358 4.254 -1.977e+00 -1.060e+00 -1.035 7.896e-01 12.939 1.219e-01 4.886
t2z -6.477e-03 -4.634e-02 1.410e-01 -2.788e-01 9.807e-02 -9.623e-02 -4.129e-04 -2.479e-01 -3.383e-01 -1.465e-01 ... 8.970 -14.149 1.106 -1.944e+00 -2.206e-01 -2.741 3.766e-01 15.930 3.505e-02 5.875
angle 1.975e+01 -7.645e+01 2.082e+01 5.794e+01 4.963e+01 5.533e+01 5.181e+01 -7.775e+01 -7.228e+01 -3.335e+01 ... 55.486 -26.926 13.124 9.000e+01 8.694e+01 -25.525 -5.338e+00 63.409 -2.428e+01 63.086
major 8.272e+00 4.632e+00 1.402e+02 8.845e+01 -4.213e+00 6.550e+01 5.621e-01 3.803e+01 3.520e+01 1.884e+02 ... 642.614 4082.984 134.786 4.699e+02 6.451e+01 1403.721 3.202e+01 3296.036 3.352e+01 464.987
minor 1.265e+00 -1.731e+01 -7.488e+00 4.217e+01 -3.987e+01 -1.602e+01 1.388e-01 -5.381e+01 -9.781e+01 -1.167e+02 ... -3880.840 974.934 -653.058 -2.467e+02 2.200e+01 -596.941 -5.415e+01 -8386.694 -4.651e+01 -2359.316
max_shear 3.504e+00 1.097e+01 7.386e+01 2.314e+01 1.783e+01 4.076e+01 2.117e-01 4.592e+01 6.651e+01 1.526e+02 ... 2261.727 1554.025 393.922 3.583e+02 2.126e+01 1000.331 4.308e+01 5841.365 4.001e+01 1412.151
2 o11 7.033e-05 -1.017e-04 7.746e-04 5.159e-04 -2.031e-04 1.524e-04 1.747e-07 -3.528e-04 -5.120e-04 2.407e-05 ... -0.014 0.022 0.003 -4.381e-03 -9.001e-04 0.008 9.453e-04 -0.044 4.002e-04 -0.011
o22 1.753e-06 -9.580e-06 1.200e-04 3.199e-04 -1.704e-05 2.455e-04 2.747e-06 4.406e-05 -1.355e-04 -6.819e-04 ... 0.008 -0.010 -0.003 3.266e-03 1.971e-04 -0.006 -5.314e-04 0.034 -6.362e-04 0.007
t12 4.477e-05 -4.989e-05 8.313e-04 9.549e-04 1.880e-04 9.923e-04 4.721e-06 -1.229e-04 -4.954e-04 -3.623e-03 ... 0.042 -0.025 -0.001 2.545e-03 -1.918e-04 -0.020 -4.725e-04 0.116 -7.895e-04 0.028
t1z 2.330e-02 8.382e-02 -4.502e-01 2.978e-01 4.295e-02 3.173e-01 -2.942e-03 2.667e-01 5.215e-01 -1.673e+00 ... 13.159 -5.358 4.254 -1.977e+00 -1.060e+00 -1.035 7.896e-01 12.939 1.219e-01 4.886
t2z -6.477e-03 -4.634e-02 1.410e-01 -2.788e-01 9.807e-02 -9.623e-02 -4.129e-04 -2.479e-01 -3.383e-01 -1.465e-01 ... 8.970 -14.149 1.106 -1.944e+00 -2.206e-01 -2.741 3.766e-01 15.930 3.505e-02 5.875
angle 2.628e+01 -6.637e+01 3.425e+01 4.207e+01 5.817e+01 4.634e+01 5.262e+01 -7.411e+01 -5.540e+01 -4.222e+01 ... 52.217 -28.572 -10.209 7.318e+01 -8.037e+01 -35.071 -1.631e+01 54.276 -2.836e+01 54.414
major 9.243e-05 1.225e-05 1.341e-03 1.378e-03 9.965e-05 1.192e-03 6.354e-06 7.903e-05 2.062e-04 3.312e-03 ... 0.040 0.036 0.003 4.035e-03 2.297e-04 0.022 1.084e-03 0.118 8.264e-04 0.027
minor -2.035e-05 -1.236e-04 -4.461e-04 -5.420e-04 -3.198e-04 -7.945e-04 -3.432e-06 -3.878e-04 -8.538e-04 -3.969e-03 ... -0.046 -0.024 -0.004 -5.151e-03 -9.326e-04 -0.020 -6.696e-04 -0.128 -1.062e-03 -0.031
max_shear 5.639e-05 6.791e-05 8.934e-04 9.599e-04 2.097e-04 9.934e-04 4.893e-06 2.334e-04 5.300e-04 3.641e-03 ... 0.043 0.030 0.003 4.593e-03 5.812e-04 0.021 8.766e-04 0.123 9.444e-04 0.029
3 o11 8.802e+00 -7.829e+00 6.322e+01 8.098e+01 -2.276e+01 3.813e+01 -1.101e-01 -2.908e+01 -3.972e+01 -1.280e+02 ... -324.222 1146.779 376.124 -5.825e+02 -2.184e+02 475.126 1.571e+02 -2255.779 3.727e+01 -413.845
o22 2.186e+00 -1.120e+01 5.881e+01 2.642e+01 4.139e+00 2.568e+01 2.413e-01 -4.306e+01 -8.207e+01 -1.311e+02 ... 1823.941 -2741.139 -27.261 4.170e+01 -6.829e+01 -793.626 -1.712e+01 4439.032 -9.149e+01 1209.300
t12 1.340e+00 1.020e+00 1.717e+01 5.529e+01 -2.615e+00 4.095e+01 1.705e-01 9.250e+00 -9.189e-01 -1.487e+02 ... 1214.594 -758.496 -268.132 2.028e+02 -1.755e+01 -811.876 -2.968e+01 4598.884 -3.293e+01 1052.994
t1z -0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 ... -0.000 0.000 -0.000 0.000e+00 0.000e+00 0.000 -0.000e+00 -0.000 -0.000e+00 -0.000
t2z 0.000e+00 0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... -0.000 0.000 -0.000 0.000e+00 0.000e+00 0.000 -0.000e+00 -0.000 -0.000e+00 -0.000
angle 1.102e+01 1.559e+01 4.134e+01 3.187e+01 -8.450e+01 4.068e+01 6.793e+01 2.647e+01 -1.242e+00 -4.471e+01 ... 65.743 -10.657 -26.525 7.349e+01 -8.342e+01 -25.998 -9.406e+00 63.025 -1.354e+01 63.811
major 9.063e+00 -7.545e+00 7.833e+01 1.154e+02 4.391e+00 7.333e+01 3.104e-01 -2.448e+01 -3.970e+01 1.915e+01 ... 2371.244 1289.514 509.952 1.018e+02 -6.627e+01 871.078 1.620e+02 6779.760 4.520e+01 1727.180
minor 1.925e+00 -1.148e+01 4.370e+01 -7.950e+00 -2.301e+01 -9.512e+00 -1.792e-01 -4.766e+01 -8.209e+01 -2.782e+02 ... -871.525 -2883.874 -161.090 -6.426e+02 -2.204e+02 -1189.578 -2.204e+01 -4596.507 -9.942e+01 -931.725
max_shear 3.569e+00 1.970e+00 1.732e+01 6.165e+01 1.370e+01 4.142e+01 2.448e-01 1.159e+01 2.119e+01 1.487e+02 ... 1621.385 2086.694 335.521 3.722e+02 7.708e+01 1030.328 9.204e+01 5688.133 7.231e+01 1329.453
3731 1 o11 6.196e+00 -1.581e+01 5.625e+01 7.677e+01 -2.816e+01 1.863e+01 2.620e-01 -4.003e+01 -6.873e+01 -1.386e+01 ... 51.722 4993.935 1034.907 6.985e+01 1.014e+02 939.095 8.015e+00 -4427.462 1.983e+01 -1108.960
o22 1.258e+00 -7.183e+00 9.891e+01 -7.885e+01 4.024e+01 -1.265e+01 4.995e-01 -3.012e+01 -4.179e+01 2.791e+02 ... -1282.336 1020.841 -525.215 1.765e+01 3.270e+01 39.471 2.495e+01 -714.833 6.607e+01 -729.907
t12 -3.101e+00 4.600e-01 -1.210e+01 -5.428e+01 4.700e+00 -3.678e+01 -2.200e-01 7.542e+00 2.433e+01 1.069e+02 ... -63.243 3751.585 800.291 -2.454e+02 3.349e+01 711.863 1.767e+01 -3598.268 7.265e+01 -709.457
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4538 3 major 3.261e+00 6.140e+00 6.117e+01 5.213e+01 -1.178e+01 3.514e+01 2.577e-01 3.147e+01 4.842e+01 1.076e+02 ... 2775.815 5157.465 1590.138 2.951e+02 5.161e+02 1321.848 4.539e+01 2978.174 5.803e+00 1377.184
minor 1.945e+00 -9.949e+00 -8.764e+01 1.414e+01 -1.885e+01 -4.231e+00 -1.124e-02 -3.851e+01 -7.956e+01 -1.932e+02 ... -975.253 -10130.497 -326.651 -1.455e+02 -1.653e+03 -382.948 -5.196e+01 -7206.313 -1.096e+02 -2564.618
max_shear 6.580e-01 8.044e+00 7.440e+01 1.899e+01 3.535e+00 1.969e+01 1.345e-01 3.499e+01 6.399e+01 1.504e+02 ... 1875.534 7643.981 958.394 2.203e+02 1.085e+03 852.398 4.867e+01 5092.244 5.772e+01 1970.901
4539 1 o11 -1.092e+01 1.670e+01 -8.391e+01 -7.108e+01 -2.118e+01 -7.498e+01 2.821e-01 7.256e+01 8.984e+01 1.836e+02 ... -600.259 610.081 817.767 -5.488e+01 1.055e+03 1230.024 -6.172e+00 -6310.631 8.169e+01 -2023.389
o22 2.478e+00 -1.029e-01 2.695e+00 4.386e+01 -2.424e+00 3.185e+01 1.393e-02 3.562e+00 1.056e+01 -1.691e+02 ... 969.637 5536.964 127.509 -1.611e+02 1.052e+03 -810.844 1.638e+01 4552.521 -6.186e+00 1531.135
t12 -1.778e+00 2.173e+00 -3.287e+00 -3.515e+01 -1.380e+00 -3.123e+01 7.862e-02 1.692e+00 -3.691e+00 1.795e+02 ... -2277.144 -5420.437 -1301.691 1.683e+02 -6.464e+02 393.289 -1.620e+00 -3227.981 -2.230e+01 -1506.269
t1z -1.453e-01 1.053e-01 -1.052e-01 -1.149e+00 -6.031e-02 -9.531e-01 -1.400e-05 4.700e-01 6.529e-01 2.503e+00 ... 1.069 61.705 10.774 -1.041e+00 1.710e+01 7.562 -7.779e-01 -37.517 6.498e-01 -10.591
t2z -5.111e-02 4.426e-02 -2.532e-01 -4.412e-01 -3.177e-02 -3.711e-01 -2.781e-04 1.909e-01 2.893e-01 1.281e+00 ... 0.983 0.126 6.611 -2.028e-02 -6.387e-01 6.399 -2.602e-01 -31.119 5.268e-01 -8.506
angle -8.257e+01 7.253e+00 -8.783e+01 -7.428e+01 -8.582e+01 -7.484e+01 1.519e+01 1.404e+00 -2.660e+00 2.276e+01 ... -54.510 -57.220 -37.575 3.625e+01 -4.495e+01 10.539 -8.591e+01 -74.639 -1.346e+01 -69.859
major 2.710e+00 1.697e+01 2.819e+00 5.376e+01 -2.323e+00 4.031e+01 3.034e-01 7.261e+01 9.001e+01 2.590e+02 ... 2593.325 9027.485 1819.306 6.855e+01 1.700e+03 1303.191 1.650e+01 5439.320 8.702e+01 2083.574
minor -1.115e+01 -3.795e-01 -8.404e+01 -8.098e+01 -2.128e+01 -8.344e+01 -7.420e-03 3.521e+00 1.039e+01 -2.444e+02 ... -2223.947 -2880.441 -874.030 -2.845e+02 4.070e+02 -884.010 -6.288e+00 -7197.432 -1.152e+01 -2575.828
max_shear 6.931e+00 8.676e+00 4.343e+01 6.737e+01 9.478e+00 6.187e+01 1.554e-01 3.454e+01 3.981e+01 2.517e+02 ... 2408.636 5953.963 1346.668 1.765e+02 6.464e+02 1093.601 1.139e+01 6318.376 4.927e+01 2329.701
2 o11 -3.672e-05 9.724e-05 -6.725e-04 -1.638e-04 -1.670e-04 -2.885e-04 2.552e-06 4.220e-04 4.620e-04 7.791e-04 ... -0.007 -0.037 0.002 2.313e-04 -2.027e-03 0.009 3.497e-04 -0.046 5.453e-04 -0.015
o22 3.122e-06 1.117e-05 -1.270e-04 1.004e-04 6.427e-06 1.061e-04 -7.322e-07 5.735e-05 1.915e-04 -6.960e-04 ... 0.011 0.048 0.007 -1.229e-03 8.021e-03 -0.002 -1.323e-04 0.016 1.140e-04 0.007
t12 -4.517e-05 7.143e-05 -4.378e-04 -9.846e-04 -2.529e-05 -8.287e-04 1.682e-06 9.339e-05 1.763e-05 5.004e-03 ... -0.059 -0.150 -0.031 4.357e-03 -1.933e-02 0.013 -8.495e-05 -0.098 -3.530e-04 -0.043
t1z -1.453e-01 1.053e-01 -1.052e-01 -1.149e+00 -6.031e-02 -9.531e-01 -1.400e-05 4.700e-01 6.529e-01 2.503e+00 ... 1.069 61.705 10.774 -1.041e+00 1.710e+01 7.562 -7.779e-01 -37.517 6.498e-01 -10.591
t2z -5.111e-02 4.426e-02 -2.532e-01 -4.412e-01 -3.177e-02 -3.711e-01 -2.781e-04 1.909e-01 2.893e-01 1.281e+00 ... 0.983 0.126 6.611 -2.028e-02 -6.387e-01 6.399 -2.602e-01 -31.119 5.268e-01 -8.506
angle -5.690e+01 2.947e+01 -6.096e+01 -4.882e+01 -8.187e+01 -5.170e+01 2.284e+01 1.356e+01 3.712e+00 4.081e+01 ... -49.366 -52.901 -47.411 4.024e+01 -5.228e+01 33.998 -9.707e+00 -53.690 -2.929e+01 -52.241
major 3.256e-05 1.376e-04 1.160e-04 9.617e-04 1.004e-05 7.607e-04 3.260e-06 4.445e-04 4.631e-04 5.100e-03 ... 0.061 0.161 0.035 3.919e-03 2.297e-02 0.018 3.643e-04 0.088 7.434e-04 0.040
minor -6.616e-05 -2.919e-05 -9.155e-04 -1.025e-03 -1.706e-04 -9.431e-04 -1.441e-06 3.482e-05 1.903e-04 -5.016e-03 ... -0.058 -0.151 -0.027 -4.917e-03 -1.698e-02 -0.011 -1.468e-04 -0.118 -8.403e-05 -0.049
max_shear 4.936e-05 8.339e-05 5.158e-04 9.934e-04 9.033e-05 8.519e-04 2.350e-06 2.049e-04 1.364e-04 5.058e-03 ... 0.059 0.156 0.031 4.418e-03 1.997e-02 0.014 2.556e-04 0.103 4.137e-04 0.044
3 o11 2.643e+00 6.286e+00 -7.775e+01 3.889e+01 -1.689e+01 1.442e+01 2.649e-01 2.766e+01 2.692e+01 -4.249e+01 ... -516.939 -6597.678 -22.685 4.082e+01 -1.082e+03 662.532 7.939e+01 -3366.468 5.001e+01 -1120.458
o22 -3.769e+00 7.993e+00 -6.871e+01 -2.974e+01 -5.237e+00 -2.322e+01 -4.276e-02 3.272e+01 5.877e+01 5.160e+01 ... 1065.680 3361.061 1581.236 -1.091e+02 6.821e+02 834.425 -2.769e+01 -3476.855 6.225e+01 -777.069
t12 -1.822e+00 3.519e+00 -3.160e+01 -4.333e+01 -6.356e-01 -3.482e+01 5.543e-02 5.751e+00 5.096e+00 2.193e+02 ... -2387.820 -6533.914 -1160.150 1.789e+02 -8.944e+02 657.872 -5.150e+00 -4580.141 -5.833e+00 -1923.501
t1z 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 ... -0.000 -0.000 -0.000 0.000e+00 -0.000e+00 -0.000 0.000e+00 0.000 -0.000e+00 0.000
t2z 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 ... -0.000 -0.000 -0.000 0.000e+00 0.000e+00 -0.000 0.000e+00 0.000 -0.000e+00 0.000
angle -1.480e+01 5.182e+01 -4.907e+01 -2.581e+01 -8.689e+01 -3.081e+01 9.908e+00 5.688e+01 8.113e+01 5.105e+01 ... -54.167 -63.655 -62.327 3.364e+01 -6.730e+01 48.722 -2.747e+00 -44.655 -6.819e+01 -47.550
major 3.124e+00 1.076e+01 -4.131e+01 5.984e+01 -5.202e+00 3.518e+01 2.745e-01 3.648e+01 5.956e+01 2.288e+02 ... 2789.894 6596.687 2189.626 1.599e+02 1.056e+03 1411.941 7.964e+01 1158.812 6.459e+01 982.385
minor -4.251e+00 3.518e+00 -1.052e+02 -5.069e+01 -1.693e+01 -4.399e+01 -5.244e-02 2.391e+01 2.613e+01 -2.197e+02 ... -2241.153 -9833.304 -631.075 -2.281e+02 -1.456e+03 85.016 -2.793e+01 -8002.134 4.768e+01 -2879.912
max_shear 3.687e+00 3.621e+00 3.192e+01 5.527e+01 5.863e+00 3.958e+01 1.635e-01 6.284e+00 1.672e+01 2.243e+02 ... 2515.523 8214.995 1410.350 1.940e+02 1.256e+03 663.463 5.378e+01 4580.473 8.456e+00 1931.148

864 rows × 33 columns

cquad4_strain
Mode Item 1 2 3 4 5 6 7 8 9 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.14916992 3568.63232422 9689.30566406 16168.0996094 16278.2226562 16679.7089844 18248.4335938 18600.6972656 18632.5507812 ... 253140.875 295297.75 306885.90625 309040.65625 319227.71875 350984.5 351566.1875 364166.15625 384601.34375 386090.4375
Freq 8.358512705 9.50760289287 15.6663007643 20.2371625337 20.3059645617 20.5548525725 21.4997261107 21.7062471625 21.7248250823 ... 80.0757970351 86.4868740864 88.1675156512 88.4765012374 89.9229257687 94.2896666927 94.3677675985 96.0439300447 98.7019039573 98.8927956432
Radians 52.5180842179 59.738030803 98.4342707804 127.153842291 127.586138182 129.149947675 135.086763207 136.384373246 136.501101758 ... 503.131071392 543.413056523 553.97283891 555.914252606 565.002405968 592.439448383 592.930170846 603.461810101 620.162352735 621.361760571
ElementID NodeID Location
1 CEN Top fiber_distance 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 ... 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01
Top exx 9.675e-08 1.578e-07 6.772e-06 6.115e-07 -2.309e-07 1.944e-07 3.318e-09 4.211e-07 1.681e-06 ... -6.305e-05 1.074e-04 -4.760e-05 -4.019e-07 -2.609e-05 -2.689e-05 3.686e-07 1.068e-04 2.783e-07 5.147e-06
Top eyy 5.161e-08 1.089e-08 6.183e-08 -8.304e-09 3.513e-08 1.196e-07 1.018e-09 -1.247e-07 1.516e-07 ... 3.274e-06 -2.591e-06 5.127e-06 1.653e-06 -2.941e-06 3.773e-06 -1.205e-07 -1.604e-05 -4.626e-07 -5.214e-06
Top exy -3.044e-06 -5.503e-07 3.229e-05 -1.690e-05 7.399e-06 -5.353e-06 2.535e-08 1.432e-05 -5.769e-06 ... 4.114e-04 1.075e-03 4.885e-04 2.041e-05 2.756e-06 3.887e-04 -1.549e-06 -1.765e-03 -6.380e-06 -4.326e-04
Top angle -4.458e+01 -3.753e+01 3.913e+01 -4.395e+01 4.603e+01 -4.460e+01 4.241e+01 4.391e+01 -3.757e+01 ... 4.958e+01 4.208e+01 4.808e+01 4.788e+01 8.660e+01 4.726e+01 -3.624e+01 -4.301e+01 -4.169e+01 -4.431e+01
Top emax 1.596e-06 3.691e-07 1.991e-05 8.755e-06 3.604e-06 2.834e-06 1.490e-08 7.315e-06 3.901e-06 ... 1.785e-04 5.929e-04 2.244e-04 1.088e-05 -2.859e-06 1.834e-04 9.361e-07 9.299e-04 3.119e-06 2.163e-04
Top emin -1.448e-06 -2.005e-07 -1.307e-05 -8.152e-06 -3.800e-06 -2.520e-06 -1.056e-08 -7.019e-06 -2.068e-06 ... -2.382e-04 -4.881e-04 -2.669e-04 -9.631e-06 -2.617e-05 -2.065e-04 -6.880e-07 -8.392e-04 -3.303e-06 -2.164e-04
Top von_mises 1.758e-06 3.336e-07 1.917e-05 9.764e-06 4.275e-06 3.092e-06 1.477e-08 8.276e-06 3.500e-06 ... 2.414e-04 6.251e-04 2.840e-04 1.185e-05 1.658e-05 2.252e-04 9.413e-07 1.022e-03 3.709e-06 2.498e-04
Bottom fiber_distance -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 ... -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01
Bottom exx -4.690e-08 -1.886e-07 -6.544e-06 -2.487e-07 7.191e-07 -5.327e-08 -3.494e-09 -6.104e-07 -1.738e-06 ... 6.227e-05 -6.713e-05 5.168e-05 4.903e-06 3.300e-05 2.812e-05 -1.166e-06 -1.114e-04 -6.623e-07 -5.337e-06
Bottom eyy 2.079e-08 -6.933e-10 -3.890e-07 9.960e-08 3.486e-07 -4.111e-10 5.211e-10 -9.747e-08 -4.714e-08 ... -4.394e-06 -3.376e-06 -6.049e-06 1.583e-06 1.676e-06 -3.611e-06 -1.408e-07 1.325e-05 -3.678e-07 4.577e-06
Bottom exy -1.224e-06 5.025e-07 -3.991e-05 1.084e-05 -4.504e-06 1.221e-05 5.775e-09 6.848e-06 -2.579e-06 ... -3.306e-04 -8.398e-04 -4.682e-04 1.007e-04 5.846e-05 -3.523e-04 -1.846e-05 1.819e-03 -1.363e-05 3.041e-04
Bottom angle -4.658e+01 5.525e+01 -4.938e+01 4.592e+01 -4.265e+01 4.512e+01 6.240e+01 4.714e+01 -6.162e+01 ... -3.930e+01 -4.717e+01 -4.149e+01 4.406e+01 3.091e+01 -4.243e+01 -4.659e+01 4.696e+01 -4.562e+01 4.593e+01
Bottom emax 6.000e-07 1.736e-07 1.673e-05 5.350e-06 2.793e-06 6.077e-06 2.030e-09 3.080e-06 6.493e-07 ... 1.976e-04 3.859e-04 2.587e-04 5.362e-05 5.050e-05 1.891e-04 8.589e-06 8.627e-04 6.304e-06 1.517e-04
Bottom emin -6.261e-07 -3.629e-07 -2.366e-05 -5.499e-06 -1.726e-06 -6.130e-06 -5.003e-09 -3.788e-06 -2.434e-06 ... -1.397e-04 -4.564e-04 -2.131e-04 -4.713e-05 -1.582e-05 -1.646e-04 -9.896e-06 -9.608e-04 -7.334e-06 -1.525e-04
Bottom von_mises 7.080e-07 3.161e-07 2.343e-05 6.264e-06 2.633e-06 7.048e-06 4.180e-09 3.972e-06 1.877e-06 ... 1.957e-04 4.868e-04 2.728e-04 5.821e-05 4.000e-05 2.044e-04 1.068e-05 1.053e-03 7.881e-06 1.756e-04
1 Top fiber_distance 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 ... 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01 4.000e-01
Top exx 4.346e-07 -3.794e-08 1.426e-06 8.503e-06 7.479e-07 3.163e-06 -4.920e-09 1.761e-08 -1.299e-08 ... -1.628e-05 2.044e-05 1.154e-05 7.733e-06 -5.849e-06 1.863e-05 -2.478e-06 -7.274e-05 -1.118e-07 -3.380e-05
Top eyy -2.970e-07 2.042e-07 5.243e-06 -8.085e-06 -9.543e-07 -2.917e-06 9.290e-09 2.700e-07 1.813e-06 ... -4.191e-05 8.177e-05 -5.330e-05 -6.631e-06 -2.254e-05 -4.159e-05 2.770e-06 1.629e-04 -7.574e-08 3.432e-05
Top exy -3.044e-06 -5.503e-07 3.229e-05 -1.690e-05 7.399e-06 -5.353e-06 2.535e-08 1.432e-05 -5.769e-06 ... 4.114e-04 1.075e-03 4.885e-04 2.041e-05 2.756e-06 3.887e-04 -1.549e-06 -1.765e-03 -6.380e-06 -4.326e-04
Top angle -3.824e+01 -5.688e+01 4.837e+01 -2.276e+01 3.852e+01 -2.068e+01 5.963e+01 4.550e+01 -5.378e+01 ... 4.322e+01 4.663e+01 4.122e+01 2.743e+01 4.688e+00 4.060e+01 -8.178e+01 -4.880e+01 -4.516e+01 -4.947e+01
Top emax 1.634e-06 3.837e-07 1.959e-05 1.205e-05 3.693e-06 4.173e-06 1.672e-08 7.307e-06 3.925e-06 ... 1.770e-04 5.896e-04 2.255e-04 1.303e-05 -5.736e-06 1.852e-04 2.882e-06 9.353e-04 3.096e-06 2.192e-04
Top emin -1.496e-06 -2.175e-07 -1.292e-05 -1.163e-05 -3.899e-06 -3.928e-06 -1.235e-08 -7.019e-06 -2.126e-06 ... -2.352e-04 -4.874e-04 -2.673e-04 -1.193e-05 -2.265e-05 -2.081e-04 -2.590e-06 -8.452e-04 -3.284e-06 -2.187e-04
Top von_mises 1.808e-06 3.515e-07 1.890e-05 1.367e-05 4.384e-06 4.678e-06 1.684e-08 8.271e-06 3.545e-06 ... 2.388e-04 6.228e-04 2.849e-04 1.441e-05 1.360e-05 2.272e-04 3.161e-06 1.028e-03 3.684e-06 2.528e-04
Bottom fiber_distance -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 ... -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01 -4.000e-01
Bottom exx 3.015e-07 1.595e-08 1.323e-06 6.185e-06 3.516e-08 3.787e-06 -8.894e-09 3.226e-07 -2.218e-07 ... -2.509e-06 -4.218e-05 -1.005e-05 9.487e-06 1.197e-06 -8.087e-06 -3.101e-06 6.011e-05 -6.148e-07 1.352e-05
Bottom eyy -3.328e-07 -2.018e-07 -8.152e-06 -6.455e-06 1.017e-06 -3.917e-06 6.172e-09 -1.025e-06 -1.524e-06 ... 5.919e-05 -2.612e-05 5.486e-05 -3.292e-06 3.280e-05 3.219e-05 1.880e-06 -1.572e-04 -3.895e-07 -1.444e-05
Bottom exy -1.224e-06 5.025e-07 -3.991e-05 1.084e-05 -4.504e-06 1.221e-05 5.775e-09 6.848e-06 -2.579e-06 ... -3.306e-04 -8.398e-04 -4.682e-04 1.007e-04 5.846e-05 -3.523e-04 -1.846e-05 1.819e-03 -1.363e-05 3.041e-04
Bottom angle -3.131e+01 3.329e+01 -3.832e+01 2.031e+01 -5.115e+01 2.887e+01 7.951e+01 3.943e+01 -3.161e+01 ... -5.029e+01 -4.555e+01 -4.895e+01 4.138e+01 5.920e+01 -4.826e+01 -5.255e+01 4.159e+01 -4.547e+01 4.237e+01
Bottom emax 6.737e-07 1.809e-07 1.710e-05 8.192e-06 2.831e-06 7.152e-06 6.707e-09 3.139e-06 5.715e-07 ... 1.965e-04 3.858e-04 2.587e-04 5.385e-05 5.022e-05 1.894e-04 8.948e-06 8.675e-04 6.316e-06 1.522e-04
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5537 5516 Top eyy -7.650e-08 -4.020e-07 2.357e-06 -8.119e-07 1.178e-07 -6.523e-07 6.118e-09 -9.158e-07 -2.309e-06 ... -1.559e-03 1.430e-04 6.128e-03 6.322e-03 2.176e-04 -9.235e-03 9.199e-03 -1.858e-03 -7.079e-03 6.933e-03
Top exy 3.678e-06 7.852e-07 -2.851e-05 -3.508e-07 -6.945e-06 8.320e-07 -6.064e-08 -6.139e-06 2.993e-05 ... 1.989e-02 8.701e-03 -1.907e-03 5.987e-05 1.253e-03 -4.397e-03 2.197e-03 9.715e-03 -2.696e-03 6.151e-03
Top angle 4.436e+01 2.372e+01 -4.899e+01 -9.154e+00 -4.560e+01 2.205e+01 -4.959e+01 -3.713e+01 4.129e+01 ... 4.007e+01 4.611e+01 -8.530e+01 8.986e+01 5.421e+01 -7.195e+00 8.633e+01 3.545e+01 -5.879e+00 7.709e+01
Top emax 1.804e-06 4.915e-07 1.475e-05 2.766e-07 3.518e-06 3.749e-07 3.193e-08 3.138e-06 1.473e-05 ... 1.026e-02 4.328e-03 6.207e-03 6.322e-03 6.692e-04 8.179e-03 9.269e-03 4.966e-03 6.012e-03 7.638e-03
Top emin -1.875e-06 -5.745e-07 -1.404e-05 -8.402e-07 -3.429e-06 -8.208e-07 -2.949e-08 -3.240e-06 -1.545e-05 ... -9.922e-03 -4.380e-03 -5.463e-03 -5.561e-03 -6.513e-04 -9.513e-03 -7.924e-03 -5.316e-03 -7.218e-03 -6.482e-03
Top von_mises 2.124e-06 6.161e-07 1.662e-05 6.716e-07 4.011e-06 7.062e-07 3.547e-08 3.683e-06 1.743e-05 ... 1.165e-02 5.027e-03 6.742e-03 6.866e-03 7.624e-04 1.022e-02 9.937e-03 5.937e-03 7.649e-03 8.161e-03
Bottom fiber_distance -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 ... -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01
Bottom exx 3.795e-08 -1.402e-07 9.043e-07 4.864e-06 2.968e-07 3.579e-06 -8.105e-09 5.681e-07 3.885e-07 ... -9.943e-03 7.726e-04 4.427e-03 4.453e-03 1.794e-04 -6.929e-03 7.076e-03 -2.222e-03 -5.781e-03 5.564e-03
Bottom eyy 5.407e-08 2.063e-07 -1.806e-06 -5.233e-06 -4.888e-07 -3.814e-06 7.161e-09 -6.771e-07 4.500e-07 ... 1.105e-02 -6.414e-04 -5.059e-03 -5.036e-03 -1.721e-04 8.031e-03 -8.268e-03 2.901e-03 6.973e-03 -6.616e-03
Bottom exy 2.262e-06 1.497e-06 -2.304e-05 4.182e-06 -3.986e-06 3.460e-06 -6.318e-08 2.843e-06 3.103e-05 ... 6.598e-03 8.430e-03 2.237e-03 4.367e-03 1.149e-03 -5.253e-03 2.694e-03 1.149e-02 2.198e-03 1.538e-03
Bottom angle 4.520e+01 5.152e+01 -4.165e+01 1.125e+01 -3.943e+01 1.254e+01 -5.179e+01 3.317e+01 4.506e+01 ... 8.128e+01 4.024e+01 6.634e+00 1.236e+01 3.649e+01 -8.033e+01 4.979e+00 5.702e+01 8.511e+01 3.600e+00
Bottom emax 1.177e-06 8.013e-07 1.115e-05 5.280e-06 1.936e-06 3.964e-06 3.203e-08 1.497e-06 1.593e-05 ... 1.155e-02 4.339e-03 4.557e-03 4.931e-03 6.043e-04 8.479e-03 7.193e-03 6.629e-03 7.067e-03 5.612e-03
Bottom emin -1.085e-06 -7.353e-07 -1.205e-05 -5.649e-06 -2.128e-06 -4.199e-06 -3.297e-08 -1.606e-06 -1.509e-05 ... -1.045e-02 -4.208e-03 -5.189e-03 -5.514e-03 -5.970e-04 -7.377e-03 -8.385e-03 -5.951e-03 -5.875e-03 -6.664e-03
Bottom von_mises 1.306e-06 8.874e-07 1.340e-05 6.311e-06 2.347e-06 4.713e-06 3.753e-08 1.792e-06 1.792e-05 ... 1.271e-02 4.935e-03 5.631e-03 6.034e-03 6.935e-04 9.162e-03 9.003e-03 7.267e-03 7.483e-03 7.096e-03
5515 Top fiber_distance 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 ... 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01 3.090e-01
Top exx -2.885e-07 -2.184e-07 2.288e-06 -1.731e-06 3.160e-07 -1.351e-06 8.326e-09 -4.430e-07 -2.872e-06 ... 5.417e-05 -7.351e-04 2.401e-03 2.285e-03 -2.070e-05 -3.017e-03 3.203e-03 -1.510e-03 -1.987e-03 1.615e-03
Top eyy 2.242e-07 1.463e-07 -1.652e-06 1.208e-06 -2.333e-07 9.368e-07 -6.129e-09 3.676e-07 2.244e-06 ... 3.236e-04 6.943e-04 -1.816e-03 -1.684e-03 3.499e-05 1.906e-03 -2.083e-03 1.222e-03 9.419e-04 -6.098e-04
Top exy 3.678e-06 7.852e-07 -2.851e-05 -3.508e-07 -6.945e-06 8.320e-07 -6.064e-08 -6.139e-06 2.993e-05 ... 1.989e-02 8.701e-03 -1.907e-03 5.987e-05 1.253e-03 -4.397e-03 2.197e-03 9.715e-03 -2.696e-03 6.151e-03
Top angle 4.897e+01 5.746e+01 -4.107e+01 -8.660e+01 -4.274e+01 8.001e+01 -3.830e+01 -4.876e+01 4.985e+01 ... 4.539e+01 4.966e+01 -1.217e+01 4.321e-01 4.627e+01 -6.911e+01 1.129e+01 5.285e+01 -6.869e+01 3.506e+01
Top emax 1.825e-06 3.968e-07 1.471e-05 1.218e-06 3.525e-06 1.010e-06 3.227e-08 3.058e-06 1.487e-05 ... 1.013e-02 4.388e-03 2.606e-03 2.285e-03 6.342e-04 2.745e-03 3.422e-03 4.902e-03 1.468e-03 3.773e-03
Top emin -1.889e-06 -4.689e-07 -1.407e-05 -1.742e-06 -3.442e-06 -1.424e-06 -3.007e-08 -3.134e-06 -1.549e-05 ... -9.755e-03 -4.429e-03 -2.022e-03 -1.684e-03 -6.199e-04 -3.856e-03 -2.303e-03 -5.190e-03 -2.513e-03 -2.768e-03
Top von_mises 2.144e-06 5.004e-07 1.662e-05 1.718e-06 4.022e-06 1.412e-06 3.600e-08 3.575e-06 1.753e-05 ... 1.148e-02 5.091e-03 2.679e-03 2.301e-03 7.241e-04 3.829e-03 3.326e-03 5.827e-03 2.324e-03 3.791e-03
Bottom fiber_distance -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 ... -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01 -3.090e-01
Bottom exx 3.239e-07 1.285e-07 -2.558e-06 -1.931e-06 -6.425e-07 -1.314e-06 -8.998e-10 -5.954e-07 2.387e-06 ... 5.110e-03 6.542e-04 -1.980e-03 -1.696e-03 6.712e-05 2.293e-03 -2.668e-03 2.261e-03 1.947e-03 -1.392e-03
Bottom eyy -2.377e-07 -6.795e-08 1.727e-06 1.701e-06 4.696e-07 1.179e-06 -1.916e-10 5.101e-07 -1.589e-06 ... -4.314e-03 -5.205e-04 1.479e-03 1.239e-03 -5.755e-05 -1.379e-03 1.675e-03 -1.674e-03 -9.121e-04 4.821e-04
Bottom exy 2.262e-06 1.497e-06 -2.304e-05 4.182e-06 -3.986e-06 3.460e-06 -6.318e-08 2.843e-06 3.103e-05 ... 6.598e-03 8.430e-03 2.237e-03 4.367e-03 1.149e-03 -5.253e-03 2.694e-03 1.149e-02 2.198e-03 1.538e-03
Bottom angle 3.803e+01 4.126e+01 -5.027e+01 6.549e+01 -5.279e+01 6.289e+01 -4.532e+01 5.563e+01 4.135e+01 ... 1.750e+01 4.103e+01 7.356e+01 6.196e+01 4.190e+01 -2.752e+01 7.410e+01 3.555e+01 1.878e+01 7.031e+01
Bottom emax 1.208e-06 7.852e-07 1.130e-05 2.654e-06 1.983e-06 2.065e-06 3.105e-08 1.482e-06 1.604e-05 ... 6.150e-03 4.322e-03 1.809e-03 2.402e-03 5.825e-04 3.662e-03 2.059e-03 6.366e-03 2.321e-03 7.574e-04
Bottom emin -1.122e-06 -7.246e-07 -1.214e-05 -2.885e-06 -2.156e-06 -2.200e-06 -3.214e-08 -1.568e-06 -1.524e-05 ... -5.354e-03 -4.189e-03 -2.310e-03 -2.859e-03 -5.729e-04 -2.747e-03 -3.052e-03 -5.779e-03 -1.286e-03 -1.667e-03
Bottom von_mises 1.346e-06 8.720e-07 1.354e-05 3.199e-06 2.390e-06 2.463e-06 3.648e-08 1.761e-06 1.806e-05 ... 6.647e-03 4.914e-03 2.384e-03 3.042e-03 6.671e-04 3.713e-03 2.969e-03 7.015e-03 2.111e-03 1.432e-03

306880 rows × 34 columns

chexa_stress
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID NodeID Item
3684 0 oxx 7.930e-12 1.137e-13 -9.095e-13 5.093e-11 1.137e-13 1.160e-11 -2.842e-14 -6.821e-13 -9.095e-13 7.822e-11 ... 3.365e-11 -3.638e-11 3.001e-11 7.105e-13 -9.095e-12 1.041e-10 0.000e+00 -7.531e-10 2.728e-12 6.821e-11
oyy -3.581e-12 -7.958e-13 9.095e-13 -1.205e-11 5.684e-14 5.912e-12 6.040e-14 -6.821e-13 -4.547e-12 -5.366e-11 ... 4.547e-12 -2.183e-11 3.683e-11 6.622e-12 -1.819e-12 4.547e-13 -6.821e-13 -2.037e-10 -1.137e-12 1.069e-10
ozz -3.411e-13 2.274e-13 -9.095e-13 1.364e-11 0.000e+00 -1.683e-11 3.553e-14 0.000e+00 2.728e-12 6.548e-11 ... 5.457e-12 -6.548e-11 -2.365e-11 2.757e-12 0.000e+00 -1.296e-11 0.000e+00 1.373e-10 -1.364e-12 -4.201e-11
txy -1.990e-13 0.000e+00 0.000e+00 -3.325e-12 -2.132e-14 -2.345e-12 3.553e-15 -3.638e-12 7.276e-12 0.000e+00 ... 1.455e-11 -2.910e-11 0.000e+00 5.002e-12 2.728e-12 -1.819e-12 -7.105e-14 -1.819e-11 0.000e+00 -7.276e-12
tyz 2.842e-14 5.684e-14 -9.095e-13 1.137e-13 -2.842e-14 3.411e-13 -7.105e-15 4.547e-13 9.095e-13 -4.547e-13 ... 1.364e-12 1.455e-11 6.821e-13 -9.948e-14 5.457e-12 1.137e-13 0.000e+00 2.274e-12 6.821e-13 1.251e-12
txz 5.116e-13 -2.274e-13 -1.819e-12 3.638e-12 7.958e-13 0.000e+00 -2.132e-14 -1.819e-12 -1.819e-12 5.457e-12 ... 7.276e-12 1.455e-11 9.095e-12 1.052e-12 0.000e+00 4.320e-12 4.547e-12 -2.910e-11 1.819e-12 1.819e-12
omax 7.965e-12 4.066e-13 1.602e-12 5.145e-11 8.562e-13 1.244e-11 6.329e-14 3.681e-12 5.123e-12 8.024e-11 ... 4.115e-11 1.002e-12 3.684e-11 9.505e-12 4.852e-12 1.043e-10 4.548e-12 1.383e-10 3.433e-12 1.082e-10
omid -3.721e-13 -6.218e-14 3.304e-13 1.330e-11 5.536e-14 5.074e-12 3.910e-14 -5.034e-13 2.633e-12 6.347e-11 ... 4.368e-12 -4.168e-11 3.151e-11 2.911e-12 -5.368e-12 4.255e-13 -6.820e-13 -2.032e-10 -8.214e-13 6.693e-11
omin -3.585e-12 -7.991e-13 -2.842e-12 -1.223e-11 -7.410e-13 -1.683e-11 -3.489e-14 -4.542e-12 -1.048e-11 -5.366e-11 ... -1.864e-12 -8.301e-11 -2.515e-11 -2.327e-12 -1.040e-11 -1.312e-11 -4.548e-12 -7.546e-10 -2.384e-12 -4.205e-11
von_mises 1.033e-11 1.053e-12 3.964e-12 5.551e-11 1.383e-12 2.637e-11 8.860e-14 7.122e-12 1.452e-11 1.264e-10 ... 4.026e-11 7.276e-11 5.951e-11 1.027e-11 1.346e-11 1.113e-10 7.907e-12 7.804e-10 5.215e-12 1.344e-10
55 oxx 2.331e-12 -2.103e-12 8.185e-12 -2.524e-11 1.990e-13 -2.638e-11 6.750e-14 -3.411e-12 -1.523e-11 7.458e-11 ... -1.046e-11 -1.273e-10 3.661e-11 4.263e-12 -1.910e-11 1.518e-11 -7.958e-13 -2.287e-10 -4.547e-13 1.064e-11
oyy 1.180e-12 -1.933e-12 3.865e-12 -5.798e-12 0.000e+00 -5.798e-12 -8.882e-15 -6.708e-12 -4.547e-12 -3.411e-11 ... 3.547e-11 -1.182e-10 2.478e-11 2.423e-12 -4.547e-12 -7.151e-11 -1.137e-13 -1.319e-11 -7.958e-13 -4.444e-11
ozz -9.450e-13 -1.052e-12 5.684e-12 -1.285e-11 -1.563e-13 -1.506e-11 4.352e-14 -7.049e-12 -4.093e-12 3.365e-11 ... -3.183e-12 -5.275e-11 3.911e-11 1.382e-12 5.457e-12 5.878e-11 -9.095e-13 2.296e-11 -3.411e-13 -7.942e-11
txy -3.979e-13 -9.095e-13 -3.638e-12 -6.651e-12 -1.421e-14 -6.509e-12 1.421e-14 -1.819e-12 -7.276e-12 1.455e-11 ... 1.455e-11 -1.164e-10 9.095e-12 2.728e-12 0.000e+00 9.095e-12 2.558e-13 -2.183e-11 2.274e-13 -1.819e-11
tyz -2.622e-14 -9.883e-14 1.750e-12 -2.222e-13 -3.770e-14 4.835e-13 -2.006e-15 -2.224e-12 -8.104e-13 -6.162e-13 ... -3.601e-12 5.856e-11 -2.200e-12 -2.530e-13 1.450e-11 -3.708e-12 -3.441e-13 1.356e-11 8.047e-13 6.033e-12
txz -4.756e-13 -6.529e-13 -4.843e-13 -6.709e-12 2.421e-13 -6.453e-12 3.004e-14 -2.999e-12 1.353e-12 2.229e-11 ... -1.371e-12 4.275e-12 -5.575e-12 -8.497e-13 2.769e-12 -5.762e-13 3.292e-12 2.627e-12 -5.075e-12 3.834e-12
omax 2.513e-12 -6.344e-13 1.061e-11 -3.337e-12 3.243e-13 -3.410e-12 8.903e-14 -1.660e-12 -3.793e-13 8.581e-11 ... 4.003e-11 1.803e-11 4.641e-11 6.364e-12 1.594e-11 5.890e-11 2.441e-12 2.757e-11 4.708e-12 1.615e-11
omid 1.068e-12 -1.368e-12 5.735e-12 -1.076e-11 -8.965e-17 -1.318e-11 2.571e-14 -4.769e-12 -4.529e-12 2.453e-11 ... -3.516e-12 -6.703e-11 3.428e-11 1.335e-12 -1.436e-11 1.610e-11 -7.079e-14 -1.554e-11 -7.161e-13 -4.838e-11
omin -1.016e-12 -3.085e-12 1.394e-12 -2.979e-11 -2.816e-13 -3.065e-11 -1.260e-14 -1.074e-11 -1.897e-11 -3.621e-11 ... -1.469e-11 -2.493e-10 1.982e-11 3.694e-13 -1.977e-11 -7.255e-11 -4.189e-12 -2.310e-10 -5.584e-12 -8.099e-11
von_mises 3.072e-12 2.178e-12 7.982e-12 2.363e-11 5.251e-13 2.390e-11 8.890e-14 7.990e-12 1.690e-11 1.057e-10 ... 5.008e-11 2.366e-10 2.305e-11 5.575e-12 3.333e-11 1.161e-10 5.798e-12 2.399e-10 8.918e-12 8.562e-11
51 oxx -8.669e-13 -3.979e-13 -4.547e-13 -5.252e-11 0.000e+00 1.467e-11 -3.553e-15 1.478e-12 2.274e-13 3.320e-11 ... 4.138e-11 -9.095e-12 -4.070e-11 1.982e-12 -5.457e-12 1.016e-10 7.958e-13 -6.821e-12 -1.137e-12 -7.205e-11
oyy 2.288e-12 9.663e-13 -5.457e-12 1.148e-11 2.842e-14 4.434e-12 -1.776e-15 2.842e-12 7.503e-12 -6.094e-11 ... -1.592e-11 -1.819e-12 -7.822e-11 -2.110e-12 7.276e-12 -1.393e-11 -2.274e-13 4.957e-11 -4.547e-13 4.323e-11
ozz -2.530e-12 7.105e-13 -2.387e-12 3.752e-12 1.421e-13 1.745e-11 -1.776e-15 -1.705e-12 -1.137e-12 -4.411e-11 ... 3.229e-11 -1.201e-10 -4.002e-11 1.744e-12 -1.000e-11 -1.052e-12 -4.547e-13 1.462e-10 -3.411e-13 1.714e-11
txy -3.147e-13 -1.976e-12 6.148e-12 7.636e-13 2.472e-15 2.116e-12 8.860e-15 -5.945e-12 -8.335e-12 -1.593e-12 ... 2.210e-12 -1.272e-10 4.515e-12 3.867e-12 1.422e-11 1.562e-11 9.429e-15 -4.802e-12 -7.019e-13 -1.218e-12
tyz 2.172e-14 -3.556e-13 5.266e-13 -1.716e-13 -4.815e-14 5.244e-13 -2.584e-15 -1.862e-12 -9.273e-14 -8.046e-13 ... -1.152e-12 3.877e-11 -1.061e-12 -5.042e-13 8.051e-12 -2.069e-12 -4.099e-13 7.016e-12 1.325e-12 4.326e-12
txz 1.953e-13 -1.578e-13 -2.495e-12 -3.175e-12 7.170e-13 -2.898e-12 3.136e-14 7.684e-13 5.255e-12 1.899e-11 ... -1.031e-12 -1.583e-12 -2.098e-12 6.473e-14 9.063e-12 1.029e-11 3.415e-12 2.846e-12 -3.375e-12 2.123e-13
omax 2.319e-12 2.398e-12 4.181e-12 1.150e-11 7.931e-13 1.931e-11 2.933e-14 8.499e-12 1.360e-11 3.764e-11 ... 4.159e-11 1.253e-10 -3.787e-11 4.328e-12 2.094e-11 1.046e-10 3.659e-12 1.467e-10 3.237e-12 4.394e-11
omid -8.746e-13 7.309e-13 -2.435e-12 3.924e-12 2.862e-14 1.332e-11 -4.387e-16 -1.843e-12 1.107e-12 -4.851e-11 ... 3.219e-11 -1.020e-10 -4.229e-11 1.763e-12 -1.154e-11 -1.208e-12 -2.110e-13 4.950e-11 -9.948e-13 1.644e-11
omin -2.553e-12 -1.850e-12 -1.004e-11 -5.271e-11 -6.512e-13 3.923e-12 -3.600e-14 -4.041e-12 -8.109e-12 -6.098e-11 ... -1.603e-11 -1.543e-10 -7.877e-11 -4.474e-12 -1.759e-11 -1.678e-11 -3.334e-12 -7.304e-12 -4.175e-12 -7.206e-11
von_mises 4.287e-12 3.707e-12 1.233e-11 6.078e-11 1.251e-12 1.343e-11 5.666e-14 1.160e-11 1.887e-11 9.302e-11 ... 5.354e-11 2.574e-10 3.888e-11 7.841e-12 3.589e-11 1.144e-10 6.068e-12 1.349e-10 6.440e-12 1.050e-10
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5568 5593 oxx -3.508e-12 -2.274e-13 1.455e-11 -4.491e-11 3.979e-13 -1.765e-11 1.101e-13 0.000e+00 1.819e-12 7.276e-11 ... -3.638e-10 1.543e-09 7.276e-12 -1.364e-11 1.201e-10 3.638e-12 -3.695e-13 -3.492e-10 5.002e-12 2.183e-11
oyy -1.910e-12 1.364e-11 -2.910e-11 -1.984e-11 -1.108e-12 -1.555e-11 1.066e-14 4.320e-11 8.095e-11 3.774e-11 ... -1.965e-10 4.875e-10 -8.004e-11 -3.098e-11 1.455e-10 -2.037e-10 -4.867e-12 5.093e-10 1.796e-11 1.419e-10
ozz -3.038e-12 2.956e-12 1.091e-11 -3.854e-11 7.390e-13 -3.982e-11 7.461e-14 4.547e-12 -1.819e-12 1.087e-10 ... -7.276e-10 1.484e-09 -1.892e-10 -5.997e-11 3.747e-10 -3.638e-11 -5.912e-12 -5.821e-11 1.955e-11 -2.547e-10
txy -3.954e-13 1.750e-12 -7.010e-12 2.309e-12 -4.538e-13 6.376e-12 -1.122e-14 3.328e-12 1.411e-11 -4.462e-11 ... 1.335e-11 -3.631e-10 4.497e-11 5.597e-12 -2.852e-11 -1.283e-11 -1.896e-13 5.992e-10 1.899e-13 8.628e-11
tyz 1.060e-12 4.652e-12 -1.532e-11 1.072e-11 -1.325e-12 9.790e-12 -8.149e-14 1.675e-11 2.616e-11 -1.288e-11 ... 3.620e-10 -3.138e-10 7.085e-11 8.793e-12 -4.765e-11 4.785e-12 2.247e-12 -1.583e-10 -8.333e-12 -9.756e-12
txz -1.819e-12 -1.840e-12 4.737e-12 -1.454e-11 3.482e-13 -1.455e-11 8.565e-14 -1.497e-12 -1.347e-11 7.267e-11 ... -1.800e-10 4.636e-10 -1.445e-10 1.085e-14 5.869e-11 -2.843e-11 -1.366e-12 -1.192e-10 7.320e-12 -5.916e-11
omax -5.772e-13 1.545e-11 2.232e-11 -1.432e-11 1.649e-12 -9.635e-12 2.006e-13 4.958e-11 8.965e-11 1.762e-10 ... 1.384e-12 2.119e-09 8.406e-11 -1.185e-11 3.986e-10 1.922e-11 6.388e-14 8.588e-10 2.840e-11 1.900e-10
omid -2.717e-12 2.911e-12 8.880e-12 -3.041e-11 2.070e-13 -1.254e-11 5.096e-14 1.761e-12 1.316e-11 4.838e-11 ... -3.311e-10 1.049e-09 -4.819e-11 -3.026e-11 1.429e-10 -5.112e-11 -3.391e-12 -9.786e-11 1.297e-11 -1.397e-11
omin -5.162e-12 -1.989e-12 -3.484e-11 -5.856e-11 -1.827e-12 -5.084e-11 -5.621e-14 -3.596e-12 -2.186e-11 -5.364e-12 ... -9.581e-10 3.460e-10 -2.978e-10 -6.248e-11 9.879e-11 -2.046e-10 -7.822e-12 -6.591e-10 1.149e-12 -2.669e-10
von_mises 3.974e-12 1.558e-11 5.176e-11 3.879e-11 3.025e-12 3.984e-11 2.235e-13 5.071e-11 9.877e-11 1.615e-10 ... 8.439e-10 1.546e-09 3.359e-10 4.438e-11 2.804e-10 1.982e-10 6.846e-12 1.329e-09 2.367e-11 3.964e-10
5594 oxx 3.617e-12 -1.819e-12 0.000e+00 4.547e-11 3.411e-13 3.763e-11 -7.105e-14 -3.638e-12 0.000e+00 -1.455e-10 ... 1.746e-10 -1.281e-09 -1.746e-10 2.024e-11 -3.420e-10 -2.328e-10 5.599e-12 0.000e+00 -2.274e-11 3.056e-10
oyy 5.379e-12 -9.550e-12 6.912e-11 8.504e-11 5.116e-13 4.698e-11 -5.329e-14 -3.001e-11 -8.549e-11 -2.374e-10 ... 2.910e-10 -2.765e-09 -1.965e-10 6.412e-11 -3.165e-10 -8.004e-11 3.226e-12 3.201e-10 -1.955e-11 3.565e-10
ozz 4.237e-12 -3.638e-12 2.638e-11 4.889e-11 -2.842e-13 4.025e-11 -3.553e-14 -1.273e-11 -2.183e-11 -1.828e-10 ... 4.366e-11 -1.688e-09 -3.274e-10 5.627e-12 -3.783e-10 -1.746e-10 2.260e-12 6.112e-10 -2.001e-11 3.783e-10
txy -2.931e-12 4.547e-13 -3.638e-12 -2.194e-11 1.137e-13 -2.450e-11 7.816e-14 -7.276e-12 0.000e+00 1.110e-10 ... -2.910e-11 5.239e-10 8.731e-11 -2.149e-11 2.328e-10 3.638e-11 -2.416e-12 2.910e-11 5.912e-12 -1.455e-10
tyz 1.130e-12 6.329e-12 -1.339e-11 9.531e-12 -1.439e-12 1.032e-11 -7.313e-14 1.234e-11 1.732e-11 -1.379e-11 ... 4.972e-10 -2.185e-10 1.057e-10 7.822e-12 -5.680e-11 1.915e-11 2.829e-12 -9.089e-11 -7.331e-12 -4.304e-12
txz -1.364e-12 4.267e-13 -2.508e-12 1.291e-14 -5.601e-13 -1.091e-11 2.887e-14 2.999e-13 -6.245e-12 5.810e-11 ... -5.065e-12 1.140e-10 3.032e-11 1.456e-11 8.788e-11 2.989e-11 4.526e-13 -1.197e-10 -3.586e-12 -5.932e-11
omax 8.293e-12 5.456e-13 7.308e-11 9.640e-11 1.742e-12 7.387e-11 4.148e-14 -7.111e-13 1.919e-12 -5.735e-11 ... 6.811e-10 -1.111e-09 -6.291e-11 7.294e-11 -9.465e-11 -6.575e-11 7.418e-12 6.602e-10 -9.086e-12 4.904e-10
omid 3.576e-12 -1.971e-12 2.303e-11 4.844e-11 2.865e-13 3.380e-11 -2.405e-14 -7.948e-12 -1.932e-11 -1.828e-10 ... 1.737e-10 -1.646e-09 -2.479e-10 2.522e-11 -3.336e-10 -1.720e-10 4.402e-12 2.942e-10 -2.513e-11 3.782e-10
omin 1.363e-12 -1.358e-11 -6.109e-13 3.456e-11 -1.460e-12 1.718e-11 -1.773e-13 -3.773e-11 -8.992e-11 -3.256e-10 ... -3.454e-10 -2.977e-09 -3.877e-10 -8.172e-12 -6.085e-10 -2.497e-10 -7.360e-13 -2.303e-11 -2.809e-11 1.719e-10
von_mises 6.131e-12 1.305e-11 6.517e-11 5.620e-11 2.778e-12 5.047e-11 1.945e-13 3.398e-11 8.328e-11 2.325e-10 ... 8.890e-10 1.664e-09 2.822e-10 7.061e-11 4.454e-10 1.600e-10 7.141e-12 5.922e-10 1.771e-11 2.799e-10
5595 oxx 7.276e-12 -1.819e-12 2.183e-11 1.028e-10 5.684e-13 9.538e-11 -1.137e-13 -7.276e-12 -3.638e-11 -3.693e-10 ... -3.492e-10 -3.842e-09 -7.276e-10 1.064e-10 -8.513e-10 -4.220e-10 9.408e-12 2.154e-09 -7.094e-11 1.339e-09
oyy 2.046e-12 3.638e-12 0.000e+00 2.456e-11 1.364e-12 1.501e-11 0.000e+00 0.000e+00 -2.910e-11 -5.093e-11 ... -4.657e-10 -4.657e-10 -5.821e-10 1.910e-11 -2.910e-10 -1.746e-10 3.297e-12 6.985e-10 -1.455e-11 1.164e-10
ozz 1.091e-11 9.095e-13 -3.638e-12 1.321e-10 -2.046e-12 9.550e-11 -2.061e-13 3.638e-12 -2.910e-11 -3.129e-10 ... -8.731e-11 -2.852e-09 -3.783e-10 1.066e-10 -7.858e-10 -3.201e-10 1.029e-11 1.630e-09 -6.639e-11 7.276e-10
txy -1.101e-12 0.000e+00 -3.638e-12 -2.262e-11 1.137e-13 -1.023e-11 3.553e-14 -3.638e-12 3.638e-12 5.821e-11 ... 2.910e-11 1.746e-10 2.910e-11 -2.274e-13 8.731e-11 -7.276e-12 -1.876e-12 -2.910e-11 1.410e-11 8.731e-11
tyz -2.593e-13 -1.364e-12 1.273e-11 -4.889e-12 9.095e-13 -3.524e-12 2.842e-14 -3.638e-12 -3.638e-12 5.457e-12 ... -8.731e-11 4.366e-10 -1.310e-10 -1.273e-11 1.091e-10 -7.276e-12 -1.734e-12 2.910e-11 8.640e-12 0.000e+00
txz -1.364e-12 -1.789e-12 8.146e-12 -1.455e-11 3.396e-13 -1.091e-11 7.097e-14 -3.156e-12 -1.677e-11 5.823e-11 ... -2.405e-10 3.497e-10 -8.753e-11 7.274e-12 2.900e-11 -2.924e-11 -4.544e-13 -1.158e-10 -3.647e-12 -5.801e-11
omax 1.137e-11 4.290e-12 2.421e-11 1.383e-10 1.627e-12 1.066e-10 2.107e-14 5.943e-12 -1.387e-11 -3.971e-11 ... 7.067e-11 -3.725e-10 -2.950e-10 1.147e-10 -2.540e-10 -1.741e-10 1.070e-11 2.179e-09 -1.020e-11 1.350e-09
omid 7.073e-12 1.204e-12 1.057e-11 1.033e-10 5.644e-13 8.584e-11 -9.599e-14 5.855e-13 -3.081e-11 -2.815e-10 ... -4.663e-10 -2.834e-09 -6.447e-10 1.001e-10 -8.070e-10 -3.125e-10 9.936e-12 1.606e-09 -6.438e-11 7.222e-10
omin 1.793e-12 -2.765e-12 -1.659e-11 1.784e-11 -2.306e-12 1.343e-11 -2.448e-13 -1.017e-11 -4.991e-11 -4.119e-10 ... -5.066e-10 -3.953e-09 -7.483e-10 1.728e-11 -8.671e-10 -4.301e-10 2.362e-12 6.971e-10 -7.732e-11 1.102e-10
von_mises 8.306e-12 6.125e-12 3.598e-11 1.073e-10 3.524e-12 8.472e-11 2.308e-13 1.421e-11 3.124e-11 3.271e-10 ... 5.582e-10 3.173e-09 4.115e-10 9.104e-11 5.853e-10 2.219e-10 7.981e-12 1.294e-09 6.168e-11 1.074e-09

2250 rows × 33 columns

chexa_strain
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID NodeID Item
3684 0 exx -6.158e-22 -6.802e-21 -5.716e-21 -1.740e-18 9.710e-22 2.598e-18 3.480e-21 -6.111e-21 -4.039e-20 -1.726e-18 ... 5.009e-19 -3.835e-18 1.738e-18 1.145e-19 -5.366e-20 -6.928e-18 -4.858e-20 -2.086e-17 -5.981e-21 -1.024e-20
eyy -1.694e-21 -2.711e-20 1.084e-19 -1.355e-20 0.000e+00 -7.623e-21 -2.118e-22 -1.084e-19 -4.337e-19 0.000e+00 ... 4.337e-19 -1.735e-18 4.879e-19 8.132e-20 -1.030e-18 3.253e-19 4.235e-21 -2.602e-18 -1.355e-20 -6.505e-19
ezz 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 -1.084e-19 ... -1.084e-19 0.000e+00 0.000e+00 1.694e-21 0.000e+00 0.000e+00 0.000e+00 -2.711e-19 0.000e+00 3.388e-21
exy -3.727e-20 -3.253e-19 8.674e-19 1.355e-19 -1.694e-21 -4.066e-20 2.541e-21 -8.674e-19 -2.602e-18 -6.505e-19 ... 3.469e-18 -2.082e-17 -4.337e-19 7.589e-19 -4.987e-18 2.602e-18 6.776e-21 0.000e+00 6.776e-20 -2.168e-18
eyz -1.016e-20 1.626e-19 -8.674e-19 -1.626e-19 6.776e-21 -2.711e-20 8.470e-22 4.337e-19 1.193e-18 5.421e-19 ... 1.626e-18 -7.806e-18 5.963e-19 1.863e-19 -3.469e-18 1.762e-19 3.253e-19 -1.735e-18 -2.711e-19 -2.711e-19
exz -5.421e-20 0.000e+00 -4.337e-19 -8.674e-19 1.626e-19 -6.505e-19 -1.186e-20 0.000e+00 -4.337e-19 2.602e-18 ... 1.301e-18 -1.388e-17 1.084e-18 9.487e-20 5.204e-18 -1.355e-18 4.337e-19 -5.204e-18 2.168e-19 3.307e-18
emax 3.014e-20 1.659e-19 7.768e-19 1.555e-19 8.184e-20 2.638e-18 7.991e-21 4.310e-19 1.317e-18 6.256e-19 ... 2.598e-18 8.245e-18 1.905e-18 4.975e-19 4.272e-18 5.533e-19 2.594e-19 3.074e-19 1.531e-19 1.950e-18
emid 3.568e-21 -1.366e-21 -2.197e-19 -6.571e-20 7.214e-23 -1.220e-21 -1.167e-23 -1.225e-21 -1.743e-19 5.783e-20 ... -4.860e-19 3.036e-18 6.283e-19 -1.369e-20 -2.196e-18 6.282e-20 -1.786e-20 -2.856e-18 2.411e-20 -5.689e-19
emin -3.602e-20 -1.984e-19 -4.544e-19 -1.843e-18 -8.094e-20 -4.663e-20 -4.711e-21 -5.443e-19 -1.617e-18 -2.518e-18 ... -1.286e-18 -1.685e-17 -3.074e-19 -2.862e-19 -3.160e-18 -7.219e-18 -2.859e-19 -2.119e-17 -1.968e-19 -2.038e-18
von_mises 3.844e-20 2.106e-19 7.548e-19 1.265e-18 9.398e-20 1.775e-18 7.416e-21 5.643e-19 1.694e-18 1.935e-18 ... 2.368e-18 1.529e-17 1.283e-18 4.594e-19 4.667e-18 5.026e-18 3.148e-19 1.340e-17 2.043e-19 2.329e-18
55 exx 1.381e-19 0.000e+00 1.355e-19 1.287e-18 4.235e-21 9.588e-19 -8.629e-21 2.033e-20 2.304e-19 -2.765e-18 ... 1.355e-19 -3.903e-18 -2.711e-19 8.851e-20 -7.589e-19 2.827e-18 -1.355e-20 1.887e-17 1.355e-20 -1.108e-18
eyy 1.228e-20 -4.405e-20 1.016e-19 4.269e-19 -2.541e-21 -1.220e-19 -4.765e-22 -1.355e-19 -6.776e-19 2.439e-19 ... 2.168e-19 -6.722e-18 -3.585e-18 3.598e-19 -7.589e-19 6.099e-20 2.711e-20 2.182e-18 6.776e-21 3.013e-18
ezz -1.222e-19 -2.001e-20 1.024e-19 -1.453e-18 -1.905e-20 -5.956e-19 4.953e-22 -5.859e-20 -3.219e-20 6.374e-19 ... -2.779e-18 8.448e-19 1.517e-18 -3.091e-20 8.378e-19 2.004e-18 -3.357e-20 1.323e-18 -2.647e-20 -3.175e-18
exy -1.355e-20 0.000e+00 2.602e-18 7.318e-19 -6.776e-21 3.591e-19 1.694e-21 0.000e+00 0.000e+00 8.674e-19 ... -8.674e-18 -2.776e-17 -2.602e-18 4.337e-19 0.000e+00 -2.602e-18 -1.355e-20 1.388e-17 8.132e-20 2.168e-18
eyz -1.319e-20 9.391e-20 -2.534e-19 -1.908e-19 -5.292e-21 -1.495e-20 9.299e-22 6.539e-20 5.577e-19 4.240e-19 ... 1.942e-19 6.162e-19 -1.564e-21 5.494e-21 -9.711e-19 -4.614e-19 4.249e-20 -3.283e-21 -3.738e-20 7.732e-19
exz -3.349e-20 1.571e-20 -2.511e-19 -2.345e-19 -1.888e-20 -5.013e-19 1.985e-21 -1.253e-19 -2.512e-19 3.258e-19 ... -1.175e-18 -1.390e-18 3.734e-19 -5.848e-21 3.543e-18 1.927e-18 -1.164e-19 -4.200e-18 -5.367e-19 -1.881e-18
emax 1.395e-19 1.855e-20 1.443e-18 1.429e-18 8.103e-21 1.026e-18 8.453e-22 5.626e-20 2.944e-19 7.610e-19 ... 4.545e-18 8.703e-18 1.540e-18 4.799e-19 2.042e-18 3.862e-18 5.107e-20 2.157e-17 2.695e-19 3.284e-18
emid 1.233e-20 -1.814e-21 7.871e-20 2.937e-19 -2.417e-21 -1.489e-19 -6.441e-22 -7.913e-20 9.532e-21 1.866e-19 ... -2.726e-18 7.812e-19 1.558e-19 -2.736e-20 -7.589e-19 1.494e-18 1.286e-20 1.418e-18 5.852e-22 -9.271e-19
emin -1.236e-19 -8.079e-20 -1.183e-18 -1.461e-18 -2.305e-20 -6.359e-19 -8.812e-21 -1.509e-19 -7.833e-19 -2.831e-18 ... -4.245e-18 -1.926e-17 -4.035e-18 -3.517e-20 -1.963e-18 -4.637e-19 -8.394e-20 -6.152e-19 -2.762e-19 -3.627e-18
von_mises 1.519e-19 6.059e-20 1.517e-18 1.681e-18 1.830e-20 9.865e-19 6.003e-21 1.215e-19 6.449e-19 2.228e-18 ... 5.425e-18 1.665e-17 3.352e-18 3.408e-19 2.373e-18 2.501e-18 8.036e-20 1.416e-17 3.151e-19 4.022e-18
51 exx 1.533e-19 0.000e+00 1.626e-19 -1.162e-18 -1.694e-21 -1.271e-18 5.294e-22 1.559e-19 2.711e-20 7.454e-18 ... 3.429e-18 -4.662e-18 4.757e-18 -2.329e-21 -1.084e-19 9.075e-18 2.033e-20 -1.859e-17 2.711e-20 -1.219e-17
eyy -8.894e-21 1.525e-20 1.355e-20 5.421e-20 0.000e+00 3.591e-19 6.353e-22 1.355e-20 4.066e-20 -1.084e-18 ... 1.057e-18 -1.041e-17 1.565e-18 2.024e-19 9.758e-19 2.336e-18 3.388e-20 1.735e-18 1.355e-20 -1.399e-18
ezz -7.044e-20 2.744e-20 -2.488e-19 -9.286e-20 1.927e-20 3.567e-19 -8.031e-22 5.256e-20 -5.333e-21 -5.389e-19 ... 5.101e-20 -2.525e-18 5.950e-19 2.547e-20 -3.828e-19 1.005e-18 5.442e-20 -4.680e-18 3.247e-20 5.910e-19
exy 6.054e-21 1.720e-19 -1.103e-18 2.761e-19 7.504e-21 7.041e-19 1.332e-21 -5.737e-19 -3.026e-19 -1.478e-18 ... -2.839e-18 8.015e-17 6.302e-18 -3.672e-19 6.840e-18 3.749e-18 2.529e-21 -1.254e-18 -5.974e-21 -2.047e-18
eyz -1.352e-20 9.511e-20 -2.592e-19 -1.939e-19 -4.691e-21 -1.742e-20 9.692e-22 6.923e-20 5.656e-19 4.342e-19 ... 2.043e-19 5.500e-19 -6.374e-21 5.643e-21 -1.000e-18 -4.629e-19 4.615e-20 3.241e-21 -4.094e-20 7.737e-19
exz 3.713e-20 5.417e-20 -4.467e-22 -7.677e-19 3.565e-22 -1.014e-18 3.244e-21 -2.241e-21 8.515e-22 4.121e-18 ... -8.506e-19 -3.806e-20 -1.515e-18 -1.099e-21 8.714e-19 1.881e-18 -4.331e-19 2.947e-18 -6.509e-19 -1.302e-19
emax 1.549e-19 1.238e-19 6.529e-19 1.814e-19 1.956e-20 5.725e-19 2.084e-21 3.817e-19 3.427e-19 8.003e-18 ... 4.137e-18 3.264e-17 6.761e-18 3.103e-19 3.899e-18 9.646e-18 2.557e-19 1.754e-18 3.557e-19 6.687e-19
emid -8.166e-21 -7.490e-22 -2.189e-19 -8.880e-20 2.823e-21 3.501e-19 1.681e-22 5.371e-20 2.027e-20 -6.990e-19 ... 4.121e-19 -2.524e-18 6.739e-19 2.545e-20 -2.313e-19 2.037e-18 3.400e-20 -4.526e-18 1.398e-20 -1.381e-18
emin -7.274e-20 -8.033e-20 -5.066e-19 -1.293e-18 -4.802e-21 -1.477e-18 -1.891e-21 -2.135e-19 -3.005e-19 -1.473e-18 ... -1.262e-20 -4.771e-17 -5.181e-19 -1.102e-19 -3.183e-18 7.331e-19 -1.811e-19 -1.877e-17 -2.965e-19 -1.229e-17
von_mises 1.355e-19 1.188e-19 6.972e-19 9.067e-19 1.439e-20 1.299e-18 2.295e-21 3.443e-19 3.713e-19 6.076e-18 ... 2.637e-18 4.651e-17 4.509e-18 2.478e-19 4.107e-18 5.558e-18 2.522e-19 1.214e-17 3.767e-19 8.040e-18
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5568 5593 exx 3.011e-19 -4.066e-20 -8.132e-19 -2.595e-18 -4.405e-20 1.169e-18 4.235e-22 1.355e-19 -6.505e-19 -4.798e-18 ... 2.602e-18 1.388e-17 1.128e-17 3.002e-18 1.269e-17 4.987e-18 1.694e-20 2.862e-17 -1.464e-18 3.036e-18
eyy -1.838e-19 -4.469e-19 3.609e-18 -2.231e-18 1.945e-19 -1.391e-18 4.552e-21 -2.653e-18 1.837e-19 4.393e-18 ... 9.519e-18 -1.543e-16 8.175e-18 6.951e-19 1.131e-18 1.275e-17 8.737e-20 -5.153e-17 3.442e-19 -9.117e-18
ezz -3.400e-19 -3.524e-19 2.656e-18 -4.174e-18 1.304e-19 -1.374e-18 9.635e-21 -1.003e-18 -4.554e-18 1.046e-17 ... -3.556e-17 1.141e-16 -1.995e-17 -3.663e-18 2.700e-17 3.253e-18 -4.989e-19 -2.776e-17 2.629e-18 -1.995e-17
exy -5.279e-20 -3.989e-19 1.560e-18 4.410e-18 4.257e-20 -2.223e-19 8.556e-22 -1.174e-18 -3.259e-18 -2.160e-17 ... 2.088e-17 -1.468e-16 7.256e-18 1.164e-18 -2.044e-17 -8.198e-18 2.529e-19 7.578e-17 -6.772e-19 2.191e-17
eyz 1.440e-19 1.443e-18 -3.098e-18 2.252e-18 -2.507e-19 2.100e-18 -1.580e-20 2.356e-18 4.710e-18 -1.950e-18 ... 6.176e-17 4.366e-17 2.133e-17 2.957e-19 1.323e-17 1.129e-17 1.681e-19 -5.344e-17 1.718e-19 -8.941e-18
exz -5.422e-19 -1.444e-19 1.240e-18 -6.936e-18 -1.066e-19 -2.601e-18 1.026e-20 1.051e-18 -1.698e-18 1.385e-17 ... 4.757e-19 5.499e-17 7.200e-18 -1.732e-18 -6.817e-18 1.694e-19 -1.089e-19 -8.398e-17 8.785e-19 -1.412e-17
emax 4.045e-19 4.049e-19 4.766e-18 6.449e-19 2.991e-19 1.804e-18 1.638e-20 3.483e-19 2.294e-18 1.612e-17 ... 2.865e-17 1.211e-16 1.617e-17 3.236e-18 3.071e-17 1.656e-17 1.852e-19 6.866e-17 2.677e-18 1.169e-17
emid -1.751e-19 -1.133e-19 1.856e-18 -1.780e-18 4.188e-20 -7.597e-19 2.400e-21 -4.385e-19 -1.783e-18 7.083e-18 ... -4.496e-19 3.737e-17 7.013e-18 5.830e-19 1.545e-17 4.563e-18 -5.914e-20 -4.876e-17 4.055e-19 -1.556e-17
emin -4.522e-19 -1.132e-18 -1.170e-18 -7.866e-18 -6.007e-20 -2.640e-18 -4.174e-21 -3.430e-18 -5.531e-18 -1.315e-17 ... -5.164e-17 -1.849e-16 -2.369e-17 -3.784e-18 -5.351e-18 -1.417e-19 -5.206e-19 -7.056e-17 -1.573e-18 -2.216e-17
von_mises 5.048e-19 9.026e-19 3.427e-18 5.063e-18 2.137e-19 2.576e-18 1.212e-20 2.302e-18 4.519e-18 1.731e-17 ... 4.693e-17 1.826e-16 2.411e-17 4.093e-18 2.090e-17 9.947e-18 4.139e-19 8.647e-17 2.455e-18 2.072e-17
5594 exx -3.890e-19 2.168e-19 -6.505e-19 -4.879e-19 -2.711e-20 -4.676e-19 -1.271e-21 4.337e-19 1.301e-18 1.323e-17 ... -6.939e-18 6.245e-17 2.949e-17 -2.575e-18 2.342e-17 7.806e-18 -2.372e-19 -5.204e-17 1.030e-18 -1.735e-17
eyy 5.468e-20 -1.061e-18 3.134e-18 1.709e-18 1.899e-19 1.290e-18 3.328e-21 -4.622e-18 -9.874e-18 -1.019e-17 ... 3.979e-17 -2.171e-16 7.967e-18 5.179e-18 -2.196e-17 1.403e-17 2.753e-19 -3.499e-17 -1.405e-18 -1.164e-17
ezz 2.858e-19 -4.337e-19 1.626e-18 1.575e-18 1.474e-19 1.809e-18 6.353e-22 -2.982e-19 2.168e-19 -1.049e-17 ... -4.770e-18 -5.898e-17 -1.258e-17 2.799e-18 -1.995e-17 -1.344e-17 1.728e-19 5.464e-17 -1.531e-18 2.320e-17
exy -5.345e-19 -2.168e-19 1.735e-18 -3.957e-18 8.132e-20 -9.582e-18 1.694e-20 -2.168e-18 -2.602e-18 3.773e-17 ... 6.939e-18 1.457e-16 4.510e-17 -1.464e-18 5.725e-17 1.735e-17 -4.066e-19 -1.041e-16 4.337e-18 -4.163e-17
eyz 3.754e-19 1.193e-18 -5.203e-18 3.145e-18 -3.519e-19 2.590e-18 -2.025e-20 3.466e-18 7.809e-18 -5.053e-18 ... 1.109e-16 -5.444e-17 3.145e-17 3.216e-18 -1.527e-17 1.409e-17 3.756e-19 -4.959e-17 -1.707e-18 -3.876e-18
exz -5.422e-19 -1.462e-19 1.248e-18 -6.936e-18 -1.063e-19 -2.601e-18 1.028e-20 1.780e-19 -1.710e-18 1.385e-17 ... 5.549e-19 5.490e-17 7.243e-18 -1.732e-18 -6.796e-18 1.976e-19 -1.090e-19 -8.410e-17 8.803e-19 -1.416e-17
emax 5.386e-19 2.607e-19 5.107e-18 5.683e-18 3.572e-19 6.067e-18 1.307e-20 7.798e-19 2.692e-18 2.440e-17 ... 7.739e-17 8.323e-17 4.605e-17 6.115e-18 3.796e-17 2.113e-17 4.732e-19 6.973e-17 2.300e-18 2.450e-17
emid -3.497e-20 -1.156e-19 5.337e-19 2.905e-19 -3.967e-21 1.029e-18 4.547e-21 1.544e-19 2.333e-19 -8.631e-18 ... -6.965e-18 -5.590e-17 1.338e-18 2.029e-18 -1.895e-17 2.582e-18 4.606e-20 8.211e-18 -9.873e-19 5.960e-18
emin -5.522e-19 -1.423e-18 -1.531e-18 -3.177e-18 -4.298e-20 -4.464e-18 -1.493e-20 -5.420e-18 -1.128e-17 -2.323e-17 ... -4.235e-17 -2.410e-16 -2.251e-17 -2.741e-18 -3.750e-17 -1.532e-17 -3.083e-19 -1.103e-16 -3.219e-18 -3.624e-17
von_mises 6.301e-19 1.020e-18 3.923e-18 5.155e-18 2.547e-19 6.082e-18 1.657e-20 3.941e-18 8.614e-18 2.818e-17 ... 7.103e-17 1.878e-16 4.019e-17 5.118e-18 4.541e-17 2.105e-17 4.518e-19 1.057e-16 3.206e-18 3.594e-17
5595 exx 1.719e-19 -3.795e-19 2.385e-18 5.014e-19 1.220e-19 4.743e-19 5.082e-21 -1.518e-18 -3.469e-18 -1.334e-17 ... -3.469e-18 -1.214e-16 0.000e+00 4.323e-18 -8.674e-18 -6.939e-18 2.338e-19 -6.939e-18 -9.758e-19 -1.041e-17
eyy 9.826e-20 1.301e-18 -3.469e-18 8.674e-19 -2.711e-19 -8.132e-20 -3.388e-21 3.469e-18 6.939e-18 -8.674e-19 ... -4.163e-17 8.327e-17 -2.776e-17 -1.355e-18 0.000e+00 -6.939e-18 -1.491e-19 5.551e-17 0.000e+00 1.388e-17
ezz 1.171e-19 -5.421e-20 1.518e-18 2.277e-18 -2.711e-20 1.355e-18 -6.353e-21 2.168e-19 -4.337e-19 -6.722e-18 ... 1.388e-17 -8.674e-17 -1.214e-17 3.917e-18 -1.735e-17 -4.337e-18 1.186e-19 1.041e-17 -5.963e-19 3.469e-18
exy -5.311e-19 3.253e-19 -8.674e-19 -5.909e-18 0.000e+00 -4.472e-18 6.776e-21 -8.674e-19 1.735e-18 2.559e-17 ... -6.939e-18 1.804e-16 2.776e-17 -8.132e-19 4.857e-17 1.908e-17 -4.811e-19 -1.318e-16 4.337e-18 -1.041e-17
eyz -3.812e-20 -5.421e-19 3.469e-18 -5.963e-19 3.795e-19 -1.382e-18 3.388e-21 -4.337e-19 0.000e+00 1.735e-18 ... -6.939e-17 1.110e-16 -2.776e-17 -1.789e-18 2.429e-17 -6.939e-18 -2.236e-19 6.939e-18 1.735e-18 6.939e-18
exz -5.421e-19 -2.321e-20 3.154e-19 -6.939e-18 -1.088e-19 -2.602e-18 1.014e-20 1.091e-18 -1.611e-18 1.388e-17 ... -9.875e-20 5.562e-17 6.885e-18 -1.735e-18 -6.964e-18 -3.516e-20 -1.083e-19 -8.312e-17 8.651e-19 -1.383e-17
emax 5.122e-19 1.368e-18 2.419e-18 5.604e-18 1.530e-19 2.725e-18 8.231e-21 3.528e-18 7.011e-18 8.499e-18 ... 3.062e-17 1.346e-16 6.093e-18 5.021e-18 2.169e-17 3.418e-18 3.498e-19 1.045e-16 2.072e-18 1.685e-17
emid 1.266e-19 -1.051e-19 2.061e-18 1.721e-18 4.680e-20 1.574e-18 -4.575e-21 3.403e-19 -2.390e-19 -6.231e-18 ... -3.352e-18 -1.032e-16 -5.429e-18 3.418e-18 -1.232e-17 -4.669e-18 1.553e-19 1.876e-17 -9.123e-19 3.821e-18
emin -2.515e-19 -3.958e-19 -4.047e-18 -3.679e-18 -3.760e-19 -2.551e-18 -8.315e-21 -1.700e-18 -3.736e-18 -2.319e-17 ... -5.849e-17 -1.562e-16 -4.056e-17 -1.554e-18 -3.539e-17 -1.696e-17 -3.018e-19 -6.429e-17 -2.732e-18 -1.373e-17
von_mises 4.409e-19 1.092e-18 4.196e-18 5.383e-18 3.232e-19 3.203e-18 1.002e-20 3.043e-18 6.330e-18 1.831e-17 ... 5.193e-17 1.789e-16 2.806e-17 3.958e-18 3.316e-17 1.185e-17 3.862e-19 9.746e-17 2.801e-18 1.772e-17

2250 rows × 33 columns

cquad4_composite_strain
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID Layer Item
3463 1 e11 -6.793e-07 -9.809e-07 5.514e-06 -1.388e-05 7.473e-07 -7.614e-06 1.155e-08 -5.200e-06 -5.986e-06 2.798e-05 ... 1.362e-04 -3.191e-04 1.128e-04 -1.727e-04 -6.279e-05 -2.853e-06 2.803e-05 1.090e-04 3.078e-05 6.314e-05
e22 2.479e-06 -4.321e-07 8.334e-06 3.326e-05 5.138e-07 1.928e-05 2.949e-08 1.676e-06 -1.488e-06 -5.691e-05 ... -3.366e-04 8.450e-04 -2.043e-04 3.744e-04 1.122e-04 4.924e-05 -6.505e-05 -4.702e-04 -7.657e-05 -2.276e-04
e12 -2.687e-06 7.023e-06 -5.002e-05 -1.753e-05 -1.139e-06 -8.533e-06 -1.664e-07 2.455e-05 4.005e-05 -1.220e-06 ... 3.029e-04 -4.798e-04 1.809e-05 -1.878e-04 3.262e-05 -1.198e-04 5.236e-05 8.081e-04 6.233e-05 3.154e-04
e1z -8.396e-09 5.616e-09 -7.103e-08 5.674e-10 -2.008e-08 -3.301e-08 -2.806e-10 2.947e-08 2.636e-08 -3.746e-08 ... -1.042e-06 -2.030e-06 -1.241e-06 8.061e-07 -2.463e-07 -5.559e-07 -2.187e-07 1.717e-06 -5.025e-08 6.918e-07
e2z 2.357e-08 -1.454e-08 1.753e-07 1.474e-08 5.575e-08 9.862e-08 5.825e-10 -8.195e-08 -7.061e-08 1.227e-08 ... 3.111e-06 4.479e-06 3.189e-06 -2.198e-06 6.080e-07 1.233e-06 5.988e-07 -3.230e-06 1.174e-07 -1.359e-06
angle -6.981e+01 4.723e+01 -4.661e+01 -7.980e+01 -3.921e+01 -8.120e+01 -4.808e+01 5.282e+01 4.820e+01 -4.116e-01 ... 1.632e+01 -7.880e+01 1.633e+00 -8.053e+01 8.472e+01 -5.675e+01 1.468e+01 2.718e+01 1.507e+01 2.366e+01
major 2.973e-06 2.816e-06 3.198e-05 3.484e-05 1.212e-06 1.994e-05 1.042e-07 1.099e-05 1.641e-05 2.798e-05 ... 1.806e-04 8.925e-04 1.131e-04 3.900e-04 1.137e-04 8.850e-05 3.489e-05 3.166e-04 3.917e-05 1.322e-04
minor -1.173e-06 -4.229e-06 -1.813e-05 -1.546e-05 4.900e-08 -8.274e-06 -6.318e-08 -1.451e-05 -2.389e-05 -5.692e-05 ... -3.810e-04 -3.666e-04 -2.046e-04 -1.883e-04 -6.430e-05 -4.211e-05 -7.191e-05 -6.777e-04 -8.496e-05 -2.967e-04
max_shear 4.147e-06 7.045e-06 5.010e-05 5.030e-05 1.163e-06 2.822e-05 1.674e-07 2.550e-05 4.030e-05 8.490e-05 ... 5.616e-04 1.259e-03 3.176e-04 5.784e-04 1.780e-04 1.306e-04 1.068e-04 9.943e-04 1.241e-04 4.289e-04
2 e11 -9.429e-07 -7.014e-07 3.144e-06 -1.477e-05 2.981e-07 -9.079e-06 -4.451e-09 -4.268e-06 -4.449e-06 2.808e-05 ... 1.051e-04 -3.817e-04 8.084e-05 -1.581e-04 -7.325e-05 -1.616e-05 2.407e-05 1.495e-04 2.975e-05 8.229e-05
e22 2.678e-06 -8.541e-07 9.534e-06 3.779e-05 -6.499e-07 2.164e-05 5.841e-08 1.158e-06 -4.322e-06 -6.277e-05 ... -3.031e-04 8.746e-04 -1.857e-04 3.858e-04 1.311e-04 5.208e-05 -6.764e-05 -4.657e-04 -7.765e-05 -2.328e-04
e12 -2.075e-06 6.765e-06 -4.305e-05 -2.414e-05 3.463e-06 -7.801e-06 -1.621e-07 2.197e-05 3.982e-05 1.179e-05 ... 3.480e-04 -2.887e-04 9.562e-05 -2.648e-04 3.082e-05 -7.673e-05 7.190e-05 6.428e-04 6.901e-05 2.529e-04
e1z -7.435e-07 4.973e-07 -6.290e-06 5.024e-08 -1.778e-06 -2.923e-06 -2.485e-08 2.610e-06 2.335e-06 -3.317e-06 ... -9.231e-05 -1.798e-04 -1.099e-04 7.138e-05 -2.181e-05 -4.923e-05 -1.937e-05 1.521e-04 -4.450e-06 6.127e-05
e2z 4.269e-06 -2.633e-06 3.176e-05 2.671e-06 1.010e-05 1.786e-05 1.055e-07 -1.484e-05 -1.279e-05 2.222e-06 ... 5.635e-04 8.114e-04 5.776e-04 -3.981e-04 1.101e-04 2.233e-04 1.085e-04 -5.851e-04 2.127e-05 -2.462e-04
angle -7.509e+01 4.435e+01 -4.922e+01 -7.767e+01 3.734e+01 -8.288e+01 -5.560e+01 5.194e+01 4.509e+01 3.698e+00 ... 2.023e+01 -8.353e+01 9.868e+00 -7.702e+01 8.571e+01 -6.582e+01 1.905e+01 2.313e+01 1.636e+01 1.938e+01
major 2.954e-06 2.605e-06 2.810e-05 4.043e-05 1.619e-06 2.213e-05 1.139e-07 9.761e-06 1.552e-05 2.846e-05 ... 1.692e-04 8.910e-04 8.916e-05 4.163e-04 1.322e-04 6.930e-05 3.648e-05 2.867e-04 3.988e-05 1.268e-04
minor -1.219e-06 -4.161e-06 -1.542e-05 -1.741e-05 -1.971e-06 -9.567e-06 -5.997e-08 -1.287e-05 -2.430e-05 -6.315e-05 ... -3.672e-04 -3.981e-04 -1.940e-04 -1.886e-04 -7.440e-05 -3.338e-05 -8.005e-05 -6.030e-04 -8.778e-05 -2.773e-04
max_shear 4.173e-06 6.766e-06 4.352e-05 5.784e-05 3.590e-06 3.169e-05 1.739e-07 2.263e-05 3.982e-05 9.161e-05 ... 5.364e-04 1.289e-03 2.832e-04 6.050e-04 2.066e-04 1.027e-04 1.165e-04 8.897e-04 1.277e-04 4.040e-04
3 e11 -1.206e-06 -4.218e-07 7.749e-07 -1.565e-05 -1.511e-07 -1.054e-05 -2.045e-08 -3.337e-06 -2.912e-06 2.819e-05 ... 7.394e-05 -4.444e-04 4.887e-05 -1.436e-04 -8.371e-05 -2.947e-05 2.011e-05 1.899e-04 2.871e-05 1.014e-04
e22 2.876e-06 -1.276e-06 1.073e-05 4.232e-05 -1.814e-06 2.399e-05 8.733e-08 6.399e-07 -7.155e-06 -6.862e-05 ... -2.695e-04 9.043e-04 -1.671e-04 3.972e-04 1.500e-04 5.491e-05 -7.022e-05 -4.613e-04 -7.873e-05 -2.380e-04
e12 -1.464e-06 6.506e-06 -3.607e-05 -3.075e-05 8.065e-06 -7.069e-06 -1.578e-07 1.939e-05 3.959e-05 2.480e-05 ... 3.931e-04 -9.758e-05 1.732e-04 -3.419e-04 2.902e-05 -3.370e-05 9.143e-05 4.774e-04 7.569e-05 1.904e-04
e1z 0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 0.000e+00 -0.000e+00
e2z -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 ... -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 0.000e+00
angle -8.014e+01 4.126e+01 -5.272e+01 -7.603e+01 3.918e+01 -8.422e+01 -6.216e+01 5.080e+01 4.194e+01 7.185e+00 ... 2.443e+01 -8.793e+01 1.936e+01 -7.385e+01 8.646e+01 -7.912e+01 2.267e+01 1.812e+01 1.758e+01 1.465e+01
major 3.003e-06 2.432e-06 2.446e-05 4.614e-05 3.135e-06 2.435e-05 1.290e-07 8.548e-06 1.487e-05 2.975e-05 ... 1.632e-04 9.061e-04 7.929e-05 4.467e-04 1.509e-04 5.815e-05 3.921e-05 2.680e-04 4.070e-05 1.263e-04
minor -1.334e-06 -4.130e-06 -1.296e-05 -1.948e-05 -5.099e-06 -1.090e-05 -6.212e-08 -1.125e-05 -2.494e-05 -7.018e-05 ... -3.588e-04 -4.462e-04 -1.975e-04 -1.931e-04 -8.461e-05 -3.271e-05 -8.932e-05 -5.394e-04 -9.072e-05 -2.629e-04
max_shear 4.337e-06 6.562e-06 3.742e-05 6.562e-05 8.234e-06 3.525e-05 1.911e-07 1.979e-05 3.981e-05 9.993e-05 ... 5.220e-04 1.352e-03 2.768e-04 6.398e-04 2.355e-04 9.086e-05 1.285e-04 8.074e-04 1.314e-04 3.892e-04
3604 1 e11 -1.014e-06 2.576e-06 -1.840e-05 -1.312e-05 1.252e-06 -4.688e-06 -5.126e-08 8.111e-06 1.490e-05 1.270e-05 ... 1.692e-04 -2.106e-04 6.067e-05 -1.310e-04 1.494e-05 -3.013e-05 3.194e-05 2.691e-04 3.210e-05 1.042e-04
e22 2.378e-06 -5.294e-06 4.391e-05 2.630e-05 1.958e-06 1.153e-05 7.460e-08 -1.730e-05 -3.008e-05 -3.321e-05 ... -4.409e-04 5.634e-04 -2.067e-04 3.246e-04 -4.746e-05 3.998e-05 -7.734e-05 -5.163e-04 -7.205e-05 -2.167e-04
e12 -1.697e-06 2.965e-06 -3.709e-05 8.999e-06 -1.434e-05 -5.064e-06 -1.703e-08 1.374e-05 1.554e-05 -7.637e-06 ... -1.429e-04 -3.132e-04 -1.509e-04 1.975e-04 7.420e-05 -2.766e-05 -3.510e-05 3.584e-05 -2.814e-05 2.515e-05
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4553 3 major 1.463e-06 1.852e-07 5.046e-06 4.602e-06 8.778e-07 3.670e-06 2.169e-08 1.266e-06 2.192e-06 2.071e-05 ... 2.363e-04 7.102e-04 1.437e-04 6.136e-05 1.113e-04 8.582e-05 8.674e-06 3.870e-04 3.973e-06 1.706e-04
minor -4.703e-07 -8.583e-07 -4.407e-06 -1.137e-06 -2.831e-07 -8.655e-07 -9.969e-09 -5.422e-06 -8.906e-06 -1.014e-05 ... -6.219e-04 -2.094e-03 -4.277e-04 -2.117e-05 -3.650e-04 -5.866e-05 -3.035e-06 -7.282e-04 -1.298e-05 -3.676e-04
max_shear 1.933e-06 1.044e-06 9.453e-06 5.738e-06 1.161e-06 4.535e-06 3.166e-08 6.688e-06 1.110e-05 3.085e-05 ... 8.582e-04 2.804e-03 5.714e-04 8.252e-05 4.763e-04 1.445e-04 1.171e-05 1.115e-03 1.695e-05 5.382e-04
4554 1 e11 1.877e-07 -6.893e-08 3.346e-07 2.773e-06 -1.911e-07 1.909e-06 3.015e-09 -2.814e-08 -4.295e-08 -9.573e-06 ... 5.382e-05 1.557e-04 1.500e-05 -5.557e-06 2.526e-05 -2.679e-05 2.009e-06 1.668e-04 1.999e-07 6.087e-05
e22 -6.657e-07 5.956e-07 -2.769e-06 -8.927e-06 -8.811e-08 -7.057e-06 6.816e-09 1.777e-06 1.802e-06 3.316e-05 ... -2.646e-04 -5.652e-04 -8.909e-05 1.828e-05 -5.833e-05 1.107e-04 -3.217e-06 -6.990e-04 7.151e-07 -2.695e-04
e12 2.138e-07 -4.020e-07 2.726e-06 6.680e-06 2.670e-07 5.764e-06 -2.388e-08 -8.564e-07 6.523e-07 -3.596e-05 ... 4.662e-04 1.212e-03 2.235e-04 -3.206e-05 1.765e-04 -1.445e-04 -3.226e-06 9.691e-04 1.210e-06 4.017e-04
e1z -5.334e-09 5.274e-09 -4.456e-08 -4.859e-08 -4.368e-09 -3.819e-08 -4.365e-11 2.288e-08 3.471e-08 1.420e-07 ... 3.078e-07 -1.097e-06 9.689e-07 -1.735e-08 -4.014e-07 8.952e-07 -2.757e-08 -4.288e-06 6.422e-08 -1.144e-06
e2z 1.802e-08 -1.871e-08 1.263e-07 1.695e-07 6.878e-09 1.304e-07 8.833e-11 -7.649e-08 -1.187e-07 -4.630e-07 ... 2.461e-07 -2.984e-06 -1.933e-06 6.884e-08 -9.924e-07 -1.994e-06 1.216e-07 1.006e-05 -1.345e-07 2.974e-06
angle 7.033e+00 -7.441e+01 2.065e+01 1.486e+01 5.554e+01 1.637e+01 -4.952e+01 -7.731e+01 8.026e+01 -6.996e+01 ... 2.783e+01 2.963e+01 3.252e+01 -6.332e+01 3.233e+01 -6.679e+01 -1.584e+01 2.411e+01 5.653e+01 2.528e+01
major 2.009e-07 6.516e-07 8.483e-07 3.659e-06 3.498e-09 2.756e-06 1.701e-08 1.873e-06 1.858e-06 3.972e-05 ... 1.769e-04 5.003e-04 8.625e-05 2.634e-05 8.111e-05 1.417e-04 2.467e-06 3.837e-04 1.115e-06 1.558e-04
minor -6.789e-07 -1.250e-07 -3.282e-06 -9.814e-06 -2.827e-07 -7.904e-06 -7.176e-09 -1.246e-07 -9.891e-08 -1.613e-05 ... -3.877e-04 -9.098e-04 -1.603e-04 -1.361e-05 -1.142e-04 -5.777e-05 -3.675e-06 -9.159e-04 -2.001e-07 -3.644e-04
max_shear 8.798e-07 7.766e-07 4.130e-06 1.347e-05 2.862e-07 1.066e-05 2.418e-08 1.998e-06 1.957e-06 5.585e-05 ... 5.646e-04 1.410e-03 2.466e-04 3.995e-05 1.953e-04 1.995e-04 6.141e-06 1.300e-03 1.315e-06 5.202e-04
2 e11 -2.837e-09 1.615e-07 -1.503e-06 7.951e-07 -2.717e-07 4.551e-07 1.842e-09 8.729e-07 1.386e-06 -4.114e-06 ... 5.362e-05 1.569e-04 4.397e-05 -5.825e-06 2.953e-05 3.915e-06 5.344e-07 1.379e-05 1.634e-06 1.614e-05
e22 -2.531e-08 3.857e-08 -6.314e-07 -3.391e-06 1.610e-07 -2.711e-06 7.814e-09 -5.891e-07 -1.639e-06 2.038e-05 ... -2.675e-04 -7.760e-04 -1.490e-04 2.251e-05 -1.216e-04 6.003e-05 7.052e-07 -4.458e-04 -2.406e-06 -1.962e-04
e12 -1.297e-07 -3.429e-07 5.406e-06 4.940e-06 2.530e-08 4.123e-06 -2.199e-08 -2.483e-07 1.012e-06 -3.553e-05 ... 4.981e-04 1.444e-03 2.420e-04 -3.905e-05 2.283e-04 -1.552e-04 -3.749e-06 1.035e-03 1.928e-06 4.292e-04
e1z -4.723e-07 4.670e-07 -3.946e-06 -4.303e-06 -3.868e-07 -3.382e-06 -3.865e-09 2.026e-06 3.074e-06 1.257e-05 ... 2.726e-05 -9.710e-05 8.580e-05 -1.537e-06 -3.555e-05 7.927e-05 -2.442e-06 -3.797e-04 5.687e-06 -1.013e-04
e2z 3.264e-06 -3.390e-06 2.287e-05 3.070e-05 1.246e-06 2.361e-05 1.600e-08 -1.385e-05 -2.151e-05 -8.387e-05 ... 4.457e-05 -5.404e-04 -3.502e-04 1.247e-05 -1.798e-04 -3.611e-04 2.203e-05 1.822e-03 -2.436e-05 5.386e-04
angle -4.008e+01 -3.514e+01 4.958e+01 2.486e+01 8.833e+01 2.624e+01 -5.260e+01 -4.820e+00 9.250e+00 -6.229e+01 ... 2.860e+01 2.856e+01 2.572e+01 -6.298e+01 2.825e+01 -5.494e+01 -4.630e+01 3.302e+01 1.276e+01 3.184e+01
major 5.173e-08 2.822e-07 1.671e-06 1.940e-06 1.614e-07 1.471e-06 1.622e-08 8.834e-07 1.468e-06 2.971e-05 ... 1.894e-04 5.498e-04 1.023e-04 3.247e-05 9.088e-05 1.145e-04 2.496e-06 3.501e-04 1.852e-06 1.494e-04
minor -7.988e-08 -8.213e-08 -3.805e-06 -4.536e-06 -2.720e-07 -3.727e-06 -6.564e-09 -5.995e-07 -1.722e-06 -1.345e-05 ... -4.032e-04 -1.169e-03 -2.073e-04 -1.578e-05 -1.829e-04 -5.054e-05 -1.257e-06 -7.821e-04 -2.624e-06 -3.295e-04
max_shear 1.316e-07 3.643e-07 5.476e-06 6.475e-06 4.334e-07 5.198e-06 2.278e-08 1.483e-06 3.190e-06 4.316e-05 ... 5.926e-04 1.719e-03 3.096e-04 4.825e-05 2.738e-04 1.650e-04 3.753e-06 1.132e-03 4.477e-06 4.788e-04
3 e11 -1.934e-07 3.918e-07 -3.340e-06 -1.183e-06 -3.523e-07 -9.991e-07 6.699e-10 1.774e-06 2.815e-06 1.345e-06 ... 5.342e-05 1.581e-04 7.293e-05 -6.093e-06 3.380e-05 3.462e-05 -9.403e-07 -1.392e-04 3.068e-06 -2.859e-05
e22 6.150e-07 -5.184e-07 1.506e-06 2.145e-06 4.101e-07 1.636e-06 8.811e-09 -2.955e-06 -5.081e-06 7.603e-06 ... -2.703e-04 -9.869e-04 -2.089e-04 2.674e-05 -1.848e-04 9.359e-06 4.627e-06 -1.926e-04 -5.527e-06 -1.229e-04
e12 -4.732e-07 -2.838e-07 8.086e-06 3.200e-06 -2.164e-07 2.481e-06 -2.009e-08 3.597e-07 1.372e-06 -3.511e-05 ... 5.300e-04 1.675e-03 2.605e-04 -4.604e-05 2.801e-04 -1.659e-04 -4.272e-06 1.100e-03 2.646e-06 4.566e-04
e1z 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 ... -0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 0.000e+00
e2z -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 -0.000e+00
angle -7.483e+01 -8.659e+00 6.047e+01 6.806e+01 -8.208e+01 6.836e+01 -5.603e+01 2.175e+00 4.929e+00 -5.005e+01 ... 2.929e+01 2.782e+01 2.137e+01 -6.274e+01 2.602e+01 -4.067e+01 -7.125e+01 4.361e+01 8.554e+00 3.916e+01
major 6.792e-07 4.135e-07 3.796e-06 2.789e-06 4.252e-07 2.128e-06 1.558e-08 1.781e-06 2.874e-06 2.231e-05 ... 2.021e-04 6.001e-04 1.239e-04 3.860e-05 1.022e-04 1.059e-04 5.352e-06 3.848e-04 3.267e-06 1.573e-04
minor -2.576e-07 -5.400e-07 -5.630e-06 -1.827e-06 -3.673e-07 -1.491e-06 -6.099e-09 -2.961e-06 -5.140e-06 -1.336e-05 ... -4.189e-04 -1.429e-03 -2.599e-04 -1.795e-05 -2.532e-04 -6.190e-05 -1.665e-06 -7.167e-04 -5.726e-06 -3.089e-04
max_shear 9.368e-07 9.535e-07 9.426e-06 4.617e-06 7.925e-07 3.620e-06 2.168e-08 4.742e-06 8.014e-06 3.566e-05 ... 6.210e-04 2.029e-03 3.838e-04 5.655e-05 3.553e-04 1.678e-04 7.018e-06 1.101e-03 8.993e-06 4.662e-04

20088 rows × 33 columns

ctria3_composite_strain
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.149 3568.632 9689.306 16168.100 16278.223 16679.709 18248.434 18600.697 18632.551 32147.814 ... 253140.875 295297.750 306885.906 309040.656 319227.719 350984.500 351566.188 364166.156 384601.344 386090.438
Freq 8.359 9.508 15.666 20.237 20.306 20.555 21.500 21.706 21.725 28.536 ... 80.076 86.487 88.168 88.477 89.923 94.290 94.368 96.044 98.702 98.893
Radians 52.518 59.738 98.434 127.154 127.586 129.150 135.087 136.384 136.501 179.298 ... 503.131 543.413 553.973 555.914 565.002 592.439 592.930 603.462 620.162 621.362
ElementID Layer Item
3730 1 e11 6.406e-07 -1.626e-06 1.112e-05 2.861e-06 -1.753e-06 -2.409e-07 1.590e-08 -5.741e-06 -8.777e-06 9.841e-06 ... -2.039e-04 2.749e-04 2.795e-05 -3.791e-05 8.208e-08 1.044e-04 4.612e-06 -6.001e-04 2.912e-06 -1.644e-04
e22 -3.780e-08 8.248e-07 -2.730e-06 5.395e-06 -1.033e-06 3.369e-06 2.840e-08 4.743e-06 4.819e-06 -5.307e-06 ... -7.709e-07 4.483e-05 -6.071e-05 5.201e-05 5.386e-06 -5.341e-05 -6.011e-06 2.783e-04 -3.733e-06 4.471e-05
e12 5.593e-07 -1.254e-06 1.232e-05 5.224e-06 4.416e-06 9.570e-06 5.163e-08 -4.779e-06 -9.678e-06 -3.516e-05 ... 5.300e-04 -3.149e-04 4.372e-05 1.149e-08 5.692e-07 -1.952e-04 -2.003e-06 1.173e-03 -7.528e-06 2.861e-04
e1z 5.847e-09 2.103e-08 -1.130e-07 7.474e-08 1.078e-08 7.962e-08 -7.384e-10 6.694e-08 1.309e-07 -4.199e-07 ... 3.302e-06 -1.345e-06 1.067e-06 -4.962e-07 -2.659e-07 -2.598e-07 1.982e-07 3.247e-06 3.058e-08 1.226e-06
e2z -1.625e-09 -1.163e-08 3.538e-08 -6.998e-08 2.461e-08 -2.415e-08 -1.036e-10 -6.220e-08 -8.490e-08 -3.677e-08 ... 2.251e-06 -3.551e-06 2.776e-07 -4.879e-07 -5.536e-08 -6.877e-07 9.451e-08 3.997e-06 8.797e-09 1.474e-06
angle 1.975e+01 -7.645e+01 2.082e+01 5.794e+01 4.963e+01 5.533e+01 5.181e+01 -7.775e+01 -7.228e+01 -3.335e+01 ... 5.549e+01 -2.693e+01 1.312e+01 9.000e+01 8.694e+01 -2.552e+01 -5.338e+00 6.341e+01 -2.428e+01 6.309e+01
major 7.410e-07 9.758e-07 1.346e-05 7.031e-06 8.438e-07 6.678e-06 4.871e-08 5.262e-06 6.366e-06 2.141e-05 ... 1.814e-04 3.548e-04 3.305e-05 5.201e-05 5.401e-06 1.510e-04 4.706e-06 5.720e-04 4.610e-06 1.173e-04
minor -1.382e-07 -1.777e-06 -5.072e-06 1.225e-06 -3.630e-06 -3.550e-06 -4.408e-09 -6.260e-06 -1.032e-05 -1.687e-05 ... -3.861e-04 -3.514e-05 -6.581e-05 -3.791e-05 6.685e-08 -1.000e-04 -6.105e-06 -8.938e-04 -5.431e-06 -2.371e-04
max_shear 8.792e-07 2.753e-06 1.853e-05 5.806e-06 4.474e-06 1.023e-05 5.312e-08 1.152e-05 1.669e-05 3.828e-05 ... 5.676e-04 3.900e-04 9.885e-05 8.992e-05 5.334e-06 2.510e-04 1.081e-05 1.466e-03 1.004e-05 3.544e-04
2 e11 7.015e-07 -1.008e-06 7.626e-06 4.839e-06 -2.014e-06 1.279e-06 -1.001e-09 -3.572e-06 -4.985e-06 9.226e-07 ... -1.456e-04 2.342e-04 3.214e-05 -4.708e-05 -9.198e-06 8.697e-05 9.984e-06 -4.756e-04 4.639e-06 -1.206e-04
e22 -5.279e-08 5.945e-09 4.250e-07 2.683e-06 3.276e-08 2.302e-06 2.730e-08 7.934e-07 -8.433e-07 -6.843e-06 ... 9.070e-05 -1.247e-04 -3.749e-05 3.704e-05 2.871e-06 -7.153e-05 -6.259e-06 3.837e-04 -6.762e-06 8.584e-05
e12 4.477e-07 -4.989e-07 8.313e-06 9.549e-06 1.880e-06 9.923e-06 4.721e-08 -1.229e-06 -4.954e-06 -3.623e-05 ... 4.174e-04 -2.526e-04 -1.178e-05 2.545e-05 -1.918e-06 -1.995e-04 -4.725e-06 1.164e-03 -7.895e-06 2.752e-04
e1z 5.178e-07 1.863e-06 -1.000e-05 6.618e-06 9.545e-07 7.050e-06 -6.539e-08 5.928e-06 1.159e-05 -3.718e-05 ... 2.924e-04 -1.191e-04 9.453e-05 -4.394e-05 -2.355e-05 -2.301e-05 1.755e-05 2.875e-04 2.708e-06 1.086e-04
e2z -2.944e-07 -2.106e-06 6.409e-06 -1.267e-05 4.458e-06 -4.374e-06 -1.877e-08 -1.127e-05 -1.538e-05 -6.661e-06 ... 4.077e-04 -6.431e-04 5.028e-05 -8.837e-05 -1.003e-05 -1.246e-04 1.712e-05 7.241e-04 1.593e-06 2.670e-04
angle 1.535e+01 -7.690e+01 2.455e+01 3.864e+01 6.872e+01 4.794e+01 6.047e+01 -8.214e+01 -6.495e+01 -3.895e+01 ... 5.976e+01 -1.757e+01 -4.802e+00 8.158e+01 -8.549e+01 -2.577e+01 -8.110e+00 6.322e+01 -1.735e+01 6.344e+01
major 7.629e-07 6.399e-08 9.525e-06 8.656e-06 3.988e-07 6.778e-06 4.067e-08 8.782e-07 3.147e-07 1.557e-05 ... 2.124e-04 2.742e-04 3.264e-05 3.892e-05 2.947e-06 1.351e-04 1.032e-05 6.774e-04 5.872e-06 1.546e-04
minor -1.142e-07 -1.066e-06 -1.474e-06 -1.133e-06 -2.380e-06 -3.198e-06 -1.437e-08 -3.657e-06 -6.142e-06 -2.149e-05 ... -2.673e-04 -1.647e-04 -3.799e-05 -4.896e-05 -9.274e-06 -1.197e-04 -6.596e-06 -7.692e-04 -7.996e-06 -1.893e-04
max_shear 8.772e-07 1.130e-06 1.100e-05 9.789e-06 2.779e-06 9.976e-06 5.504e-08 4.535e-06 6.457e-06 3.706e-05 ... 4.796e-04 4.389e-04 7.063e-05 8.789e-05 1.222e-05 2.548e-04 1.692e-05 1.447e-03 1.387e-05 3.440e-04
3 e11 7.624e-07 -3.899e-07 4.133e-06 6.817e-06 -2.276e-06 2.798e-06 -1.790e-08 -1.403e-06 -1.192e-06 -7.996e-06 ... -8.737e-05 1.935e-04 3.633e-05 -5.625e-05 -1.848e-05 6.953e-05 1.536e-05 -3.510e-04 6.365e-06 -7.669e-05
e22 -6.778e-08 -8.129e-07 3.580e-06 -2.839e-08 1.099e-06 1.236e-06 2.619e-08 -3.157e-06 -6.506e-06 -8.379e-06 ... 1.822e-04 -2.943e-04 -1.428e-05 2.207e-05 3.565e-07 -8.966e-05 -6.507e-06 4.890e-04 -9.791e-06 1.270e-04
e12 3.362e-07 2.559e-07 4.310e-06 1.387e-05 -6.563e-07 1.028e-05 4.279e-08 2.321e-06 -2.306e-07 -3.731e-05 ... 3.048e-04 -1.903e-04 -6.729e-05 5.089e-05 -4.405e-06 -2.037e-04 -7.448e-06 1.154e-03 -8.263e-06 2.642e-04
e1z -0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 ... -0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00
e2z 0.000e+00 0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ... -0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00
angle 1.102e+01 1.559e+01 4.134e+01 3.187e+01 -8.450e+01 4.068e+01 6.793e+01 2.647e+01 -1.242e+00 -4.471e+01 ... 6.574e+01 -1.066e+01 -2.652e+01 7.349e+01 -8.342e+01 -2.600e+01 -9.406e+00 6.302e+01 -1.354e+01 6.381e+01
major 7.951e-07 -3.542e-07 6.029e-06 1.113e-05 1.131e-06 7.214e-06 3.487e-08 -8.253e-07 -1.189e-06 1.047e-05 ... 2.508e-04 2.114e-04 5.312e-05 2.961e-05 6.107e-07 1.192e-04 1.597e-05 7.827e-04 7.360e-06 1.919e-04
minor -1.005e-07 -8.486e-07 1.684e-06 -4.341e-06 -2.307e-06 -3.180e-06 -2.657e-08 -3.734e-06 -6.508e-06 -2.684e-05 ... -1.560e-04 -3.122e-04 -3.107e-05 -6.379e-05 -1.873e-05 -1.393e-04 -7.124e-06 -6.447e-04 -1.079e-05 -1.417e-04
max_shear 8.956e-07 4.943e-07 4.345e-06 1.547e-05 3.438e-06 1.039e-05 6.144e-08 2.909e-06 5.319e-06 3.731e-05 ... 4.069e-04 5.236e-04 8.420e-05 9.340e-05 1.934e-05 2.586e-04 2.310e-05 1.427e-03 1.815e-05 3.336e-04
3731 1 e11 5.454e-07 -1.268e-06 2.228e-06 9.697e-06 -3.909e-06 2.151e-06 9.166e-09 -2.838e-06 -5.183e-06 -9.997e-06 ... 4.480e-05 4.393e-04 1.140e-04 6.040e-06 8.548e-06 8.737e-05 -2.054e-08 -3.954e-04 -1.864e-07 -8.190e-05
e22 -7.426e-08 -1.854e-07 7.580e-06 -9.829e-06 4.673e-06 -1.773e-06 3.897e-08 -1.596e-06 -1.803e-06 2.676e-05 ... -1.226e-04 -5.917e-05 -8.177e-05 -5.099e-07 -7.221e-08 -2.551e-05 2.104e-06 7.040e-05 5.615e-06 -3.433e-05
e12 -7.782e-07 1.154e-07 -3.036e-06 -1.362e-05 1.179e-06 -9.231e-06 -5.520e-08 1.893e-06 6.107e-06 2.682e-05 ... -1.587e-05 9.414e-04 2.008e-04 -6.159e-05 8.405e-06 1.786e-04 4.434e-06 -9.030e-04 1.823e-05 -1.780e-04
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4538 3 major 2.471e-07 8.890e-07 8.499e-06 4.477e-06 -5.247e-07 3.447e-06 2.466e-08 4.167e-06 7.045e-06 1.616e-05 ... 2.922e-04 8.019e-04 1.602e-04 3.237e-05 1.002e-04 1.366e-04 5.899e-06 5.053e-04 3.961e-06 2.098e-04
minor 8.196e-08 -1.130e-06 -1.017e-05 -2.891e-07 -1.412e-06 -1.493e-06 -9.082e-09 -4.612e-06 -9.013e-06 -2.158e-05 ... -1.784e-04 -1.116e-03 -8.032e-05 -2.292e-05 -1.720e-04 -7.728e-05 -6.314e-06 -7.726e-04 -1.052e-05 -2.848e-04
max_shear 1.651e-07 2.019e-06 1.867e-05 4.767e-06 8.870e-07 4.940e-06 3.374e-08 8.780e-06 1.606e-05 3.774e-05 ... 4.707e-04 1.918e-03 2.405e-04 5.529e-05 2.722e-04 2.139e-04 1.221e-05 1.278e-03 1.448e-05 4.946e-04
4539 1 e11 -1.107e-06 1.578e-06 -8.000e-06 -8.072e-06 -1.923e-06 -8.065e-06 2.618e-08 6.735e-06 8.147e-06 2.259e-05 ... -8.682e-05 -1.148e-04 7.318e-05 -1.630e-07 6.673e-05 1.413e-04 -1.092e-06 -7.371e-04 7.899e-06 -2.386e-04
e22 5.738e-07 -5.295e-07 2.867e-06 6.351e-06 4.307e-07 5.339e-06 -7.467e-09 -1.923e-06 -1.801e-06 -2.167e-05 ... 1.102e-04 5.034e-04 -1.343e-05 -1.349e-05 6.644e-05 -1.148e-04 1.738e-06 6.259e-04 -3.127e-06 2.074e-04
e12 -4.461e-07 5.454e-07 -8.248e-07 -8.820e-06 -3.462e-07 -7.836e-06 1.973e-08 4.245e-07 -9.262e-07 4.505e-05 ... -5.714e-04 -1.360e-03 -3.267e-04 4.225e-05 -1.622e-04 9.869e-05 -4.066e-07 -8.100e-04 -5.597e-06 -3.780e-04
e1z -3.646e-08 2.642e-08 -2.641e-08 -2.883e-07 -1.513e-08 -2.392e-07 -3.512e-12 1.179e-07 1.638e-07 6.282e-07 ... 2.683e-07 1.548e-05 2.704e-06 -2.613e-07 4.292e-06 1.898e-06 -1.952e-07 -9.415e-06 1.631e-07 -2.658e-06
e2z -1.283e-08 1.111e-08 -6.353e-08 -1.107e-07 -7.972e-09 -9.313e-08 -6.980e-11 4.792e-08 7.260e-08 3.214e-07 ... 2.467e-07 3.156e-08 1.659e-06 -5.088e-09 -1.603e-07 1.606e-06 -6.530e-08 -7.809e-06 1.322e-07 -2.134e-06
angle -8.257e+01 7.253e+00 -8.783e+01 -7.428e+01 -8.582e+01 -7.484e+01 1.519e+01 1.404e+00 -2.660e+00 2.276e+01 ... -5.451e+01 -5.722e+01 -3.758e+01 3.625e+01 -4.495e+01 1.054e+01 -8.591e+01 -7.464e+01 -1.346e+01 -6.986e+01
major 6.028e-07 1.613e-06 2.882e-06 7.592e-06 4.433e-07 6.400e-06 2.886e-08 6.740e-06 8.168e-06 3.204e-05 ... 3.139e-04 9.413e-04 1.988e-04 1.532e-05 1.477e-04 1.505e-04 1.752e-06 7.372e-04 8.569e-06 2.768e-04
minor -1.136e-06 -5.642e-07 -8.016e-06 -9.313e-06 -1.935e-06 -9.126e-06 -1.015e-08 -1.928e-06 -1.822e-06 -3.112e-05 ... -2.905e-04 -5.528e-04 -1.391e-04 -2.897e-05 -1.452e-05 -1.240e-04 -1.107e-06 -8.483e-04 -3.796e-06 -3.079e-04
max_shear 1.739e-06 2.177e-06 1.090e-05 1.691e-05 2.379e-06 1.553e-05 3.900e-08 8.668e-06 9.990e-06 6.316e-05 ... 6.044e-04 1.494e-03 3.379e-04 4.430e-05 1.622e-04 2.744e-04 2.859e-06 1.586e-03 1.236e-05 5.846e-04
2 e11 -3.703e-07 9.612e-07 -6.598e-06 -1.739e-06 -1.677e-06 -2.991e-06 2.625e-08 4.163e-06 4.428e-06 8.487e-06 ... -8.438e-05 -4.209e-04 1.091e-05 3.542e-06 -2.829e-05 8.890e-05 3.630e-06 -4.732e-04 5.339e-06 -1.600e-04
e22 6.794e-08 1.444e-08 -5.976e-07 1.168e-06 2.313e-07 1.350e-06 -9.873e-09 1.515e-07 1.453e-06 -7.739e-06 ... 1.134e-04 5.129e-04 6.822e-05 -1.252e-05 8.224e-05 -2.835e-05 -1.673e-06 2.014e-04 5.947e-07 8.451e-05
e12 -4.517e-07 7.143e-07 -4.378e-06 -9.846e-06 -2.529e-07 -8.287e-06 1.682e-08 9.339e-07 1.763e-07 5.004e-05 ... -5.853e-04 -1.500e-03 -3.089e-04 4.357e-05 -1.933e-04 1.319e-04 -8.495e-07 -9.797e-04 -3.530e-06 -4.303e-04
e1z -3.229e-06 2.340e-06 -2.339e-06 -2.553e-05 -1.340e-06 -2.118e-05 -3.110e-10 1.044e-05 1.451e-05 5.563e-05 ... 2.376e-05 1.371e-03 2.394e-04 -2.314e-05 3.801e-04 1.680e-04 -1.729e-05 -8.337e-04 1.444e-05 -2.353e-04
e2z -2.323e-06 2.012e-06 -1.151e-05 -2.006e-05 -1.444e-06 -1.687e-05 -1.264e-08 8.679e-06 1.315e-05 5.822e-05 ... 4.468e-05 5.716e-06 3.005e-04 -9.216e-07 -2.903e-05 2.909e-04 -1.183e-05 -1.414e-03 2.395e-05 -3.866e-04
angle -6.707e+01 1.852e+01 -7.194e+01 -5.322e+01 -8.623e+01 -5.882e+01 1.248e+01 6.553e+00 1.695e+00 3.602e+01 ... -5.433e+01 -6.095e+01 -5.026e+01 3.488e+01 -5.988e+01 2.418e+01 -4.551e+00 -6.227e+01 -1.833e+01 -5.980e+01
major 1.635e-07 1.081e-06 1.159e-07 4.847e-06 2.396e-07 3.857e-06 2.811e-08 4.216e-06 4.431e-06 2.668e-05 ... 3.234e-04 9.294e-04 1.966e-04 1.873e-05 1.383e-04 1.185e-04 3.663e-06 4.588e-04 5.924e-06 2.097e-04
minor -4.659e-07 -1.052e-07 -7.312e-06 -5.419e-06 -1.685e-06 -5.498e-06 -1.174e-08 9.781e-08 1.450e-06 -2.593e-05 ... -2.944e-04 -8.375e-04 -1.175e-04 -2.771e-05 -8.437e-05 -5.796e-05 -1.707e-06 -7.307e-04 9.996e-09 -2.852e-04
max_shear 6.294e-07 1.186e-06 7.428e-06 1.027e-05 1.925e-06 9.355e-06 3.984e-08 4.119e-06 2.981e-06 5.260e-05 ... 6.178e-04 1.767e-03 3.142e-04 4.644e-05 2.227e-04 1.765e-04 5.370e-06 1.189e-03 5.914e-06 4.950e-04
3 e11 3.667e-07 3.442e-07 -5.196e-06 4.594e-06 -1.431e-06 2.083e-06 2.632e-08 1.591e-06 7.102e-07 -5.615e-06 ... -8.194e-05 -7.271e-04 -5.137e-05 7.246e-06 -1.233e-04 3.653e-05 8.352e-06 -2.093e-04 2.780e-06 -8.151e-05
e22 -4.379e-07 5.584e-07 -4.062e-06 -4.016e-06 3.189e-08 -2.640e-06 -1.228e-08 2.226e-06 4.706e-06 6.190e-06 ... 1.166e-04 5.225e-04 1.499e-04 -1.156e-05 9.803e-05 5.809e-05 -5.083e-06 -2.232e-04 4.316e-06 -3.843e-05
e12 -4.572e-07 8.832e-07 -7.930e-06 -1.087e-05 -1.595e-07 -8.739e-06 1.391e-08 1.443e-06 1.279e-06 5.502e-05 ... -5.992e-04 -1.640e-03 -2.911e-04 4.490e-05 -2.244e-04 1.651e-04 -1.292e-06 -1.149e-03 -1.464e-06 -4.827e-04
e1z 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 ... -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 0.000e+00
e2z 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 -0.000e+00 -0.000e+00 -0.000e+00 ... -0.000e+00 -0.000e+00 -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 0.000e+00 0.000e+00 -0.000e+00 0.000e+00
angle -1.480e+01 5.182e+01 -4.907e+01 -2.581e+01 -8.689e+01 -3.081e+01 9.908e+00 5.688e+01 8.113e+01 5.105e+01 ... -5.417e+01 -6.366e+01 -6.233e+01 3.364e+01 -6.730e+01 4.872e+01 -2.747e+00 -4.465e+01 -6.819e+01 -4.755e+01
major 4.271e-07 9.057e-07 -6.234e-07 7.224e-06 3.623e-08 4.688e-06 2.753e-08 2.697e-06 4.806e-06 2.843e-05 ... 3.330e-04 9.285e-04 2.262e-04 2.218e-05 1.450e-04 1.306e-04 8.383e-06 3.584e-04 4.609e-06 1.823e-04
minor -4.983e-07 -3.109e-09 -8.634e-06 -6.645e-06 -1.435e-06 -5.245e-06 -1.349e-08 1.120e-06 6.104e-07 -2.785e-05 ... -2.983e-04 -1.133e-03 -1.277e-04 -2.650e-05 -1.703e-04 -3.594e-05 -5.114e-06 -7.910e-04 2.487e-06 -3.023e-04
max_shear 9.253e-07 9.088e-07 8.011e-06 1.387e-05 1.471e-06 9.933e-06 4.103e-08 1.577e-06 4.195e-06 5.628e-05 ... 6.313e-04 2.061e-03 3.539e-04 4.868e-05 3.152e-04 1.665e-04 1.350e-05 1.149e-03 2.122e-06 4.846e-04

864 rows × 33 columns

Manipulating the Pandas DataFrame

The iPython notebook for this demo can be found in: - docs:raw-latex:quick_start:raw-latex:demo:raw-latex:`op`2_pandas_unstack.ipynb - https://github.com/SteveDoyle2/pyNastran/tree/master/docs/quick_start/demo/op2_pandas_unstack.ipynb

This example will use pandas unstack

The unstack method on a DataFrame moves on index level from rows to columns. First let’s read in some data:

import os
import pyNastran
pkg_path = pyNastran.__path__[0]
from pyNastran.op2.op2 import read_op2
import pandas as pd
pd.set_option('precision', 2)

op2_filename = os.path.join(pkg_path, '..', 'models', 'iSat', 'iSat_launch_100Hz.op2')
from pyNastran.op2.op2 import read_op2
isat = read_op2(op2_filename, build_dataframe=True, debug=False, skip_undefined_matrices=True)
INFO:      fname=op2_scalar.py             lineNo=1176   op2_filename = 'f:\work\pynastran\pynastran\master3\pyNastran\..\models\iSat\iSat_launch_100Hz.op2'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAPCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAQCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RASCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAFCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAECONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RANCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAGCONS'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAPEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAQEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RASEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAFEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAEEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RANEATC'
INFO:      fname=fortran_format.py         lineNo=321    skipping table_name = 'RAGEATC'
cbar = isat.cbar_force[1].data_frame
cbar.head()
Mode 1 2 3 4 5 6 7 8 9 10 ... 24 25 26 27 28 29 30 31 32 33
EigenvalueReal 2758.15 3568.63 9689.31 16168.10 16278.22 16679.71 18248.43 18600.70 18632.55 32147.81 ... 253140.88 295297.75 306885.91 309040.66 319227.72 350984.50 351566.19 364166.16 384601.34 386090.44
Freq 8.36 9.51 15.67 20.24 20.31 20.55 21.50 21.71 21.72 28.54 ... 80.08 86.49 88.17 88.48 89.92 94.29 94.37 96.04 98.70 98.89
Radians 52.52 59.74 98.43 127.15 127.59 129.15 135.09 136.38 136.50 179.30 ... 503.13 543.41 553.97 555.91 565.00 592.44 592.93 603.46 620.16 621.36
ElementID Item
3323 bending_moment_a1 -0.16 0.23 -1.33 -2.32e+00 1.88 -0.80 -1.34e-03 1.42 1.47 4.64 ... -43.49 63.35 -43.08 -3.35 11.10 -14.38 0.75 29.36 0.49 -4.56
bending_moment_a2 0.19 -0.05 0.18 5.61e-03 0.11 -0.42 -4.19e-03 -1.11 0.10 -1.57 ... -4.46 5.33 1.63 4.86 2.14 0.09 -1.27 -10.58 -0.67 3.48
bending_moment_b1 0.17 -0.21 2.01 2.66e+00 -1.88 0.73 2.29e-03 -1.38 -1.31 -3.97 ... 34.78 -74.02 35.14 3.54 -15.06 10.97 -0.67 -17.69 -0.63 6.39
bending_moment_b2 -0.19 0.05 -0.18 -3.57e-03 -0.11 0.43 4.18e-03 1.11 -0.10 1.57 ... 4.45 -5.34 -1.62 -4.86 -2.15 -0.08 1.27 10.56 0.67 -3.48
shear1 -0.13 0.18 -1.33 -1.99e+00 1.50 -0.61 -1.45e-03 1.12 1.11 3.44 ... -31.31 54.95 -31.29 -2.76 10.47 -10.14 0.57 18.82 0.44 -4.38

5 rows × 33 columns

First I’m going to pull out a small subset to work with

csub = cbar.loc[3323:3324,1:2]
csub
Mode 1 2
EigenvalueReal 2758.15 3568.63
Freq 8.36 9.51
Radians 52.52 59.74
ElementID Item
3323 bending_moment_a1 -0.16 0.23
bending_moment_a2 0.19 -0.05
bending_moment_b1 0.17 -0.21
bending_moment_b2 -0.19 0.05
shear1 -0.13 0.18
shear2 0.15 -0.04
axial 0.80 0.21
torque -0.04 -0.06
3324 bending_moment_a1 0.14 -0.29
bending_moment_a2 -0.19 0.05
bending_moment_b1 -0.15 0.26
bending_moment_b2 0.19 -0.05
shear1 0.12 -0.22
shear2 -0.15 0.04
axial -0.80 -0.21
torque 0.04 0.06

I happen to like the way that’s organized, but let’s say that I want the have the item descriptions in columns and the mode ID’s and element numbers in rows. To do that, I’ll first move the element ID’s up to the columns using a .unstack(level=0) and the transpose the result:

csub.unstack(level=0).T
Item bending_moment_a1 bending_moment_a2 bending_moment_b1 bending_moment_b2 shear1 shear2 axial torque
Mode EigenvalueReal Freq Radians ElementID
1 2758.15 8.36 52.52 3323 -0.16 0.19 0.17 -0.19 -0.13 0.15 0.80 -0.04
3324 0.14 -0.19 -0.15 0.19 0.12 -0.15 -0.80 0.04
2 3568.63 9.51 59.74 3323 0.23 -0.05 -0.21 0.05 0.18 -0.04 0.21 -0.06
3324 -0.29 0.05 0.26 -0.05 -0.22 0.04 -0.21 0.06

unstack requires unique row indices so I can’t work with CQUAD4 stresses as they’re currently output, but I’ll work with CHEXA stresses. Let’s pull out the first two elements and first two modes:

chs = isat.chexa_stress[1].data_frame.loc[3684:3685,1:2]
chs
Mode 1 2
EigenvalueReal 2758.15 3568.63
Freq 8.36 9.51
Radians 52.52 59.74
ElementID NodeID Item
3684 0 oxx 7.93e-12 1.14e-13
oyy -3.58e-12 -7.96e-13
ozz -3.41e-13 2.27e-13
txy -1.99e-13 0.00e+00
tyz 2.84e-14 5.68e-14
txz 5.12e-13 -2.27e-13
omax 7.96e-12 4.07e-13
omid -3.72e-13 -6.22e-14
omin -3.59e-12 -7.99e-13
von_mises 1.03e-11 1.05e-12
55 oxx 2.33e-12 -2.10e-12
oyy 1.18e-12 -1.93e-12
ozz -9.45e-13 -1.05e-12
txy -3.98e-13 -9.09e-13
tyz -2.62e-14 -9.88e-14
txz -4.76e-13 -6.53e-13
omax 2.51e-12 -6.34e-13
omid 1.07e-12 -1.37e-12
omin -1.02e-12 -3.08e-12
von_mises 3.07e-12 2.18e-12
51 oxx -8.67e-13 -3.98e-13
oyy 2.29e-12 9.66e-13
ozz -2.53e-12 7.11e-13
txy -3.15e-13 -1.98e-12
tyz 2.17e-14 -3.56e-13
txz 1.95e-13 -1.58e-13
omax 2.32e-12 2.40e-12
omid -8.75e-13 7.31e-13
omin -2.55e-12 -1.85e-12
von_mises 4.29e-12 3.71e-12
... ... ... ... ...
3685 46 oxx -2.38e-13 2.84e-13
oyy 6.68e-13 -3.41e-13
ozz 1.28e-13 1.14e-13
txy 1.05e-13 3.84e-16
tyz -2.84e-14 0.00e+00
txz 2.14e-13 -9.59e-14
omax 6.80e-13 3.27e-13
omid 2.26e-13 7.06e-14
omin -3.48e-13 -3.41e-13
von_mises 8.92e-13 5.84e-13
1031 oxx -2.74e-12 -3.41e-13
oyy -5.68e-13 3.41e-13
ozz -1.42e-12 -4.55e-13
txy 1.07e-13 0.00e+00
tyz 0.00e+00 -2.27e-13
txz -4.55e-13 4.55e-13
omax -5.63e-13 4.26e-13
omid -1.28e-12 -1.01e-28
omin -2.89e-12 -8.80e-13
von_mises 2.06e-12 1.15e-12
1037 oxx 2.42e-13 -1.14e-13
oyy -1.28e-13 -4.55e-13
ozz 1.14e-13 0.00e+00
txy -7.11e-15 2.84e-13
tyz -1.42e-14 -1.14e-13
txz -2.27e-13 4.55e-13
omax 4.14e-13 4.15e-13
omid -5.52e-14 -2.05e-13
omin -1.31e-13 -7.79e-13
von_mises 5.11e-13 1.03e-12

180 rows × 2 columns

Now I want to put ElementID and the Node ID in the rows along with the Load ID, and have the items in the columns:

cht = chs.unstack(level=[0,1]).T
cht
Item oxx oyy ozz txy tyz txz omax omid omin von_mises
Mode EigenvalueReal Freq Radians ElementID NodeID
1 2758.15 8.36 52.52 3684 0 7.93e-12 -3.58e-12 -3.41e-13 -1.99e-13 2.84e-14 5.12e-13 7.96e-12 -3.72e-13 -3.59e-12 1.03e-11
41 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
45 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
46 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
50 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
51 -8.67e-13 2.29e-12 -2.53e-12 -3.15e-13 2.17e-14 1.95e-13 2.32e-12 -8.75e-13 -2.55e-12 4.29e-12
55 2.33e-12 1.18e-12 -9.45e-13 -3.98e-13 -2.62e-14 -4.76e-13 2.51e-12 1.07e-12 -1.02e-12 3.07e-12
56 -5.37e-12 -2.76e-12 -2.43e-12 -4.92e-13 1.14e-13 -1.95e-13 -2.35e-12 -2.74e-12 -5.47e-12 2.95e-12
60 8.81e-13 -2.10e-12 -4.97e-13 5.68e-14 1.14e-13 -2.93e-13 9.41e-13 -5.47e-13 -2.11e-12 2.65e-12
758 2.22e-12 1.63e-12 2.43e-12 -1.99e-13 -2.49e-14 -3.41e-13 2.69e-12 2.04e-12 1.55e-12 9.89e-13
778 -3.24e-12 -1.88e-12 -4.99e-12 -1.15e-13 -5.52e-15 -3.41e-13 -1.87e-12 -3.19e-12 -5.05e-12 2.77e-12
880 1.76e-12 1.88e-12 1.82e-12 -5.26e-13 1.14e-13 0.00e+00 2.36e-12 1.82e-12 1.28e-12 9.37e-13
952 -5.29e-12 -7.11e-13 -1.93e-12 -1.71e-13 5.68e-14 2.27e-13 -7.02e-13 -1.92e-12 -5.31e-12 4.13e-12
1015 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1021 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1031 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1037 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3685 0 7.18e-13 1.85e-13 -2.13e-13 1.17e-13 -3.55e-14 3.41e-13 8.45e-13 1.79e-13 -3.34e-13 1.02e-12
41 -8.46e-13 -6.04e-13 -6.04e-14 2.20e-13 -3.50e-15 1.71e-13 -2.15e-14 -4.89e-13 -1.00e-12 8.48e-13
45 1.06e-12 -5.65e-13 5.68e-13 3.55e-14 -5.37e-15 -1.18e-13 1.09e-12 5.42e-13 -5.66e-13 1.46e-12
46 -2.38e-13 6.68e-13 1.28e-13 1.05e-13 -2.84e-14 2.14e-13 6.80e-13 2.26e-13 -3.48e-13 8.92e-13
50 -6.04e-14 1.14e-13 6.39e-14 -4.26e-14 -2.84e-14 -9.99e-14 1.27e-13 1.17e-13 -1.27e-13 2.49e-13
51 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
55 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
56 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
60 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
758 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
778 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
880 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
952 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2 3568.63 9.51 59.74 3684 50 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
51 -3.98e-13 9.66e-13 7.11e-13 -1.98e-12 -3.56e-13 -1.58e-13 2.40e-12 7.31e-13 -1.85e-12 3.71e-12
55 -2.10e-12 -1.93e-12 -1.05e-12 -9.09e-13 -9.88e-14 -6.53e-13 -6.34e-13 -1.37e-12 -3.08e-12 2.18e-12
56 2.84e-13 -4.55e-13 -8.53e-13 -9.09e-13 -2.27e-13 9.52e-14 9.20e-13 -8.07e-13 -1.14e-12 1.91e-12
60 5.12e-13 1.14e-12 5.12e-13 -9.09e-13 -2.27e-13 -3.68e-14 1.81e-12 5.30e-13 -1.76e-13 1.74e-12
758 3.41e-13 2.05e-12 1.08e-12 -9.09e-13 -3.40e-13 4.55e-13 2.60e-12 9.89e-13 -1.25e-13 2.38e-12
778 2.27e-13 2.27e-13 3.98e-13 -1.03e-12 2.30e-14 4.55e-13 1.36e-12 3.87e-13 -8.99e-13 1.97e-12
880 -1.71e-12 1.59e-12 9.09e-13 -9.09e-13 -2.27e-13 4.55e-13 1.94e-12 8.48e-13 -1.99e-12 3.51e-12
952 -1.02e-12 1.36e-12 -1.36e-12 -9.09e-13 0.00e+00 4.55e-13 1.68e-12 -9.20e-13 -1.78e-12 3.12e-12
1015 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1021 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1031 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1037 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3685 0 1.14e-13 -3.41e-13 2.27e-13 -2.84e-14 -5.68e-14 6.82e-13 8.58e-13 -3.42e-13 -5.16e-13 1.30e-12
41 -2.84e-13 2.27e-13 -2.84e-14 -9.02e-13 -3.56e-13 1.07e-12 1.53e-12 -2.31e-13 -1.38e-12 2.54e-12
45 -5.68e-13 0.00e+00 1.14e-13 2.27e-13 -3.26e-13 6.52e-13 5.63e-13 6.88e-14 -1.09e-12 1.47e-12
46 2.84e-13 -3.41e-13 1.14e-13 3.84e-16 0.00e+00 -9.59e-14 3.27e-13 7.06e-14 -3.41e-13 5.84e-13
50 5.12e-13 6.82e-13 3.98e-13 4.55e-13 0.00e+00 9.45e-13 1.54e-12 6.27e-13 -5.73e-13 1.83e-12
51 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
55 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
56 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
60 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
758 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
778 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
880 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
952 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1015 -1.14e-13 5.68e-14 1.71e-13 1.14e-13 -1.13e-13 4.55e-13 5.06e-13 1.01e-13 -4.94e-13 8.71e-13
1021 0.00e+00 5.68e-14 1.71e-13 9.15e-13 -9.06e-14 -4.55e-13 1.11e-12 7.50e-14 -9.53e-13 1.78e-12
1031 -3.41e-13 3.41e-13 -4.55e-13 0.00e+00 -2.27e-13 4.55e-13 4.26e-13 -1.01e-28 -8.80e-13 1.15e-12
1037 -1.14e-13 -4.55e-13 0.00e+00 2.84e-13 -1.14e-13 4.55e-13 4.15e-13 -2.05e-13 -7.79e-13 1.03e-12

68 rows × 10 columns

Maybe I’d like my rows organized with the modes on the inside. I can do that by swapping levels:

We actually need to get rid of the extra rows using dropna():

cht = cht.dropna()
cht
Item oxx oyy ozz txy tyz txz omax omid omin von_mises
Mode EigenvalueReal Freq Radians ElementID NodeID
1 2758.15 8.36 52.52 3684 0 7.93e-12 -3.58e-12 -3.41e-13 -1.99e-13 2.84e-14 5.12e-13 7.96e-12 -3.72e-13 -3.59e-12 1.03e-11
51 -8.67e-13 2.29e-12 -2.53e-12 -3.15e-13 2.17e-14 1.95e-13 2.32e-12 -8.75e-13 -2.55e-12 4.29e-12
55 2.33e-12 1.18e-12 -9.45e-13 -3.98e-13 -2.62e-14 -4.76e-13 2.51e-12 1.07e-12 -1.02e-12 3.07e-12
56 -5.37e-12 -2.76e-12 -2.43e-12 -4.92e-13 1.14e-13 -1.95e-13 -2.35e-12 -2.74e-12 -5.47e-12 2.95e-12
60 8.81e-13 -2.10e-12 -4.97e-13 5.68e-14 1.14e-13 -2.93e-13 9.41e-13 -5.47e-13 -2.11e-12 2.65e-12
758 2.22e-12 1.63e-12 2.43e-12 -1.99e-13 -2.49e-14 -3.41e-13 2.69e-12 2.04e-12 1.55e-12 9.89e-13
778 -3.24e-12 -1.88e-12 -4.99e-12 -1.15e-13 -5.52e-15 -3.41e-13 -1.87e-12 -3.19e-12 -5.05e-12 2.77e-12
880 1.76e-12 1.88e-12 1.82e-12 -5.26e-13 1.14e-13 0.00e+00 2.36e-12 1.82e-12 1.28e-12 9.37e-13
952 -5.29e-12 -7.11e-13 -1.93e-12 -1.71e-13 5.68e-14 2.27e-13 -7.02e-13 -1.92e-12 -5.31e-12 4.13e-12
3685 0 7.18e-13 1.85e-13 -2.13e-13 1.17e-13 -3.55e-14 3.41e-13 8.45e-13 1.79e-13 -3.34e-13 1.02e-12
41 -8.46e-13 -6.04e-13 -6.04e-14 2.20e-13 -3.50e-15 1.71e-13 -2.15e-14 -4.89e-13 -1.00e-12 8.48e-13
45 1.06e-12 -5.65e-13 5.68e-13 3.55e-14 -5.37e-15 -1.18e-13 1.09e-12 5.42e-13 -5.66e-13 1.46e-12
46 -2.38e-13 6.68e-13 1.28e-13 1.05e-13 -2.84e-14 2.14e-13 6.80e-13 2.26e-13 -3.48e-13 8.92e-13
50 -6.04e-14 1.14e-13 6.39e-14 -4.26e-14 -2.84e-14 -9.99e-14 1.27e-13 1.17e-13 -1.27e-13 2.49e-13
1015 -5.68e-14 -7.85e-13 -2.70e-13 3.55e-14 -1.18e-14 -3.41e-13 1.95e-13 -5.20e-13 -7.87e-13 8.80e-13
1021 9.66e-13 2.17e-13 8.60e-13 4.43e-13 -2.10e-15 -6.82e-13 1.67e-12 4.79e-13 -1.10e-13 1.57e-12
1031 -2.74e-12 -5.68e-13 -1.42e-12 1.07e-13 0.00e+00 -4.55e-13 -5.63e-13 -1.28e-12 -2.89e-12 2.06e-12
1037 2.42e-13 -1.28e-13 1.14e-13 -7.11e-15 -1.42e-14 -2.27e-13 4.14e-13 -5.52e-14 -1.31e-13 5.11e-13
2 3568.63 9.51 59.74 3684 0 1.14e-13 -7.96e-13 2.27e-13 0.00e+00 5.68e-14 -2.27e-13 4.07e-13 -6.22e-14 -7.99e-13 1.05e-12
51 -3.98e-13 9.66e-13 7.11e-13 -1.98e-12 -3.56e-13 -1.58e-13 2.40e-12 7.31e-13 -1.85e-12 3.71e-12
55 -2.10e-12 -1.93e-12 -1.05e-12 -9.09e-13 -9.88e-14 -6.53e-13 -6.34e-13 -1.37e-12 -3.08e-12 2.18e-12
56 2.84e-13 -4.55e-13 -8.53e-13 -9.09e-13 -2.27e-13 9.52e-14 9.20e-13 -8.07e-13 -1.14e-12 1.91e-12
60 5.12e-13 1.14e-12 5.12e-13 -9.09e-13 -2.27e-13 -3.68e-14 1.81e-12 5.30e-13 -1.76e-13 1.74e-12
758 3.41e-13 2.05e-12 1.08e-12 -9.09e-13 -3.40e-13 4.55e-13 2.60e-12 9.89e-13 -1.25e-13 2.38e-12
778 2.27e-13 2.27e-13 3.98e-13 -1.03e-12 2.30e-14 4.55e-13 1.36e-12 3.87e-13 -8.99e-13 1.97e-12
880 -1.71e-12 1.59e-12 9.09e-13 -9.09e-13 -2.27e-13 4.55e-13 1.94e-12 8.48e-13 -1.99e-12 3.51e-12
952 -1.02e-12 1.36e-12 -1.36e-12 -9.09e-13 0.00e+00 4.55e-13 1.68e-12 -9.20e-13 -1.78e-12 3.12e-12
3685 0 1.14e-13 -3.41e-13 2.27e-13 -2.84e-14 -5.68e-14 6.82e-13 8.58e-13 -3.42e-13 -5.16e-13 1.30e-12
41 -2.84e-13 2.27e-13 -2.84e-14 -9.02e-13 -3.56e-13 1.07e-12 1.53e-12 -2.31e-13 -1.38e-12 2.54e-12
45 -5.68e-13 0.00e+00 1.14e-13 2.27e-13 -3.26e-13 6.52e-13 5.63e-13 6.88e-14 -1.09e-12 1.47e-12
46 2.84e-13 -3.41e-13 1.14e-13 3.84e-16 0.00e+00 -9.59e-14 3.27e-13 7.06e-14 -3.41e-13 5.84e-13
50 5.12e-13 6.82e-13 3.98e-13 4.55e-13 0.00e+00 9.45e-13 1.54e-12 6.27e-13 -5.73e-13 1.83e-12
1015 -1.14e-13 5.68e-14 1.71e-13 1.14e-13 -1.13e-13 4.55e-13 5.06e-13 1.01e-13 -4.94e-13 8.71e-13
1021 0.00e+00 5.68e-14 1.71e-13 9.15e-13 -9.06e-14 -4.55e-13 1.11e-12 7.50e-14 -9.53e-13 1.78e-12
1031 -3.41e-13 3.41e-13 -4.55e-13 0.00e+00 -2.27e-13 4.55e-13 4.26e-13 -1.01e-28 -8.80e-13 1.15e-12
1037 -1.14e-13 -4.55e-13 0.00e+00 2.84e-13 -1.14e-13 4.55e-13 4.15e-13 -2.05e-13 -7.79e-13 1.03e-12
# mode, eigr, freq, rad, eids, nids # initial
# nids, eids, eigr, freq, rad, mode # final

cht.swaplevel(0,4).swaplevel(1,5).swaplevel(2,5).swaplevel(4, 5)
Item oxx oyy ozz txy tyz txz omax omid omin von_mises
ElementID NodeID EigenvalueReal Radians Freq Mode
3684 0 2758.15 52.52 8.36 1 7.93e-12 -3.58e-12 -3.41e-13 -1.99e-13 2.84e-14 5.12e-13 7.96e-12 -3.72e-13 -3.59e-12 1.03e-11
51 2758.15 52.52 8.36 1 -8.67e-13 2.29e-12 -2.53e-12 -3.15e-13 2.17e-14 1.95e-13 2.32e-12 -8.75e-13 -2.55e-12 4.29e-12
55 2758.15 52.52 8.36 1 2.33e-12 1.18e-12 -9.45e-13 -3.98e-13 -2.62e-14 -4.76e-13 2.51e-12 1.07e-12 -1.02e-12 3.07e-12
56 2758.15 52.52 8.36 1 -5.37e-12 -2.76e-12 -2.43e-12 -4.92e-13 1.14e-13 -1.95e-13 -2.35e-12 -2.74e-12 -5.47e-12 2.95e-12
60 2758.15 52.52 8.36 1 8.81e-13 -2.10e-12 -4.97e-13 5.68e-14 1.14e-13 -2.93e-13 9.41e-13 -5.47e-13 -2.11e-12 2.65e-12
758 2758.15 52.52 8.36 1 2.22e-12 1.63e-12 2.43e-12 -1.99e-13 -2.49e-14 -3.41e-13 2.69e-12 2.04e-12 1.55e-12 9.89e-13
778 2758.15 52.52 8.36 1 -3.24e-12 -1.88e-12 -4.99e-12 -1.15e-13 -5.52e-15 -3.41e-13 -1.87e-12 -3.19e-12 -5.05e-12 2.77e-12
880 2758.15 52.52 8.36 1 1.76e-12 1.88e-12 1.82e-12 -5.26e-13 1.14e-13 0.00e+00 2.36e-12 1.82e-12 1.28e-12 9.37e-13
952 2758.15 52.52 8.36 1 -5.29e-12 -7.11e-13 -1.93e-12 -1.71e-13 5.68e-14 2.27e-13 -7.02e-13 -1.92e-12 -5.31e-12 4.13e-12
3685 0 2758.15 52.52 8.36 1 7.18e-13 1.85e-13 -2.13e-13 1.17e-13 -3.55e-14 3.41e-13 8.45e-13 1.79e-13 -3.34e-13 1.02e-12
41 2758.15 52.52 8.36 1 -8.46e-13 -6.04e-13 -6.04e-14 2.20e-13 -3.50e-15 1.71e-13 -2.15e-14 -4.89e-13 -1.00e-12 8.48e-13
45 2758.15 52.52 8.36 1 1.06e-12 -5.65e-13 5.68e-13 3.55e-14 -5.37e-15 -1.18e-13 1.09e-12 5.42e-13 -5.66e-13 1.46e-12
46 2758.15 52.52 8.36 1 -2.38e-13 6.68e-13 1.28e-13 1.05e-13 -2.84e-14 2.14e-13 6.80e-13 2.26e-13 -3.48e-13 8.92e-13
50 2758.15 52.52 8.36 1 -6.04e-14 1.14e-13 6.39e-14 -4.26e-14 -2.84e-14 -9.99e-14 1.27e-13 1.17e-13 -1.27e-13 2.49e-13
1015 2758.15 52.52 8.36 1 -5.68e-14 -7.85e-13 -2.70e-13 3.55e-14 -1.18e-14 -3.41e-13 1.95e-13 -5.20e-13 -7.87e-13 8.80e-13
1021 2758.15 52.52 8.36 1 9.66e-13 2.17e-13 8.60e-13 4.43e-13 -2.10e-15 -6.82e-13 1.67e-12 4.79e-13 -1.10e-13 1.57e-12
1031 2758.15 52.52 8.36 1 -2.74e-12 -5.68e-13 -1.42e-12 1.07e-13 0.00e+00 -4.55e-13 -5.63e-13 -1.28e-12 -2.89e-12 2.06e-12
1037 2758.15 52.52 8.36 1 2.42e-13 -1.28e-13 1.14e-13 -7.11e-15 -1.42e-14 -2.27e-13 4.14e-13 -5.52e-14 -1.31e-13 5.11e-13
3684 0 3568.63 59.74 9.51 2 1.14e-13 -7.96e-13 2.27e-13 0.00e+00 5.68e-14 -2.27e-13 4.07e-13 -6.22e-14 -7.99e-13 1.05e-12
51 3568.63 59.74 9.51 2 -3.98e-13 9.66e-13 7.11e-13 -1.98e-12 -3.56e-13 -1.58e-13 2.40e-12 7.31e-13 -1.85e-12 3.71e-12
55 3568.63 59.74 9.51 2 -2.10e-12 -1.93e-12 -1.05e-12 -9.09e-13 -9.88e-14 -6.53e-13 -6.34e-13 -1.37e-12 -3.08e-12 2.18e-12
56 3568.63 59.74 9.51 2 2.84e-13 -4.55e-13 -8.53e-13 -9.09e-13 -2.27e-13 9.52e-14 9.20e-13 -8.07e-13 -1.14e-12 1.91e-12
60 3568.63 59.74 9.51 2 5.12e-13 1.14e-12 5.12e-13 -9.09e-13 -2.27e-13 -3.68e-14 1.81e-12 5.30e-13 -1.76e-13 1.74e-12
758 3568.63 59.74 9.51 2 3.41e-13 2.05e-12 1.08e-12 -9.09e-13 -3.40e-13 4.55e-13 2.60e-12 9.89e-13 -1.25e-13 2.38e-12
778 3568.63 59.74 9.51 2 2.27e-13 2.27e-13 3.98e-13 -1.03e-12 2.30e-14 4.55e-13 1.36e-12 3.87e-13 -8.99e-13 1.97e-12
880 3568.63 59.74 9.51 2 -1.71e-12 1.59e-12 9.09e-13 -9.09e-13 -2.27e-13 4.55e-13 1.94e-12 8.48e-13 -1.99e-12 3.51e-12
952 3568.63 59.74 9.51 2 -1.02e-12 1.36e-12 -1.36e-12 -9.09e-13 0.00e+00 4.55e-13 1.68e-12 -9.20e-13 -1.78e-12 3.12e-12
3685 0 3568.63 59.74 9.51 2 1.14e-13 -3.41e-13 2.27e-13 -2.84e-14 -5.68e-14 6.82e-13 8.58e-13 -3.42e-13 -5.16e-13 1.30e-12
41 3568.63 59.74 9.51 2 -2.84e-13 2.27e-13 -2.84e-14 -9.02e-13 -3.56e-13 1.07e-12 1.53e-12 -2.31e-13 -1.38e-12 2.54e-12
45 3568.63 59.74 9.51 2 -5.68e-13 0.00e+00 1.14e-13 2.27e-13 -3.26e-13 6.52e-13 5.63e-13 6.88e-14 -1.09e-12 1.47e-12
46 3568.63 59.74 9.51 2 2.84e-13 -3.41e-13 1.14e-13 3.84e-16 0.00e+00 -9.59e-14 3.27e-13 7.06e-14 -3.41e-13 5.84e-13
50 3568.63 59.74 9.51 2 5.12e-13 6.82e-13 3.98e-13 4.55e-13 0.00e+00 9.45e-13 1.54e-12 6.27e-13 -5.73e-13 1.83e-12
1015 3568.63 59.74 9.51 2 -1.14e-13 5.68e-14 1.71e-13 1.14e-13 -1.13e-13 4.55e-13 5.06e-13 1.01e-13 -4.94e-13 8.71e-13
1021 3568.63 59.74 9.51 2 0.00e+00 5.68e-14 1.71e-13 9.15e-13 -9.06e-14 -4.55e-13 1.11e-12 7.50e-14 -9.53e-13 1.78e-12
1031 3568.63 59.74 9.51 2 -3.41e-13 3.41e-13 -4.55e-13 0.00e+00 -2.27e-13 4.55e-13 4.26e-13 -1.01e-28 -8.80e-13 1.15e-12
1037 3568.63 59.74 9.51 2 -1.14e-13 -4.55e-13 0.00e+00 2.84e-13 -1.14e-13 4.55e-13 4.15e-13 -2.05e-13 -7.79e-13 1.03e-12

Alternatively I can do that by first using reset_index to move all the index columns into data, and then using set_index to define the order of columns I want as my index:

cht.reset_index().set_index(['ElementID','NodeID','Mode','Freq']).sort_index()
Item EigenvalueReal Radians oxx oyy ozz txy tyz txz omax omid omin von_mises
ElementID NodeID Mode Freq
3684 0 1 8.36 2758.15 52.52 7.93e-12 -3.58e-12 -3.41e-13 -1.99e-13 2.84e-14 5.12e-13 7.96e-12 -3.72e-13 -3.59e-12 1.03e-11
2 9.51 3568.63 59.74 1.14e-13 -7.96e-13 2.27e-13 0.00e+00 5.68e-14 -2.27e-13 4.07e-13 -6.22e-14 -7.99e-13 1.05e-12
51 1 8.36 2758.15 52.52 -8.67e-13 2.29e-12 -2.53e-12 -3.15e-13 2.17e-14 1.95e-13 2.32e-12 -8.75e-13 -2.55e-12 4.29e-12
2 9.51 3568.63 59.74 -3.98e-13 9.66e-13 7.11e-13 -1.98e-12 -3.56e-13 -1.58e-13 2.40e-12 7.31e-13 -1.85e-12 3.71e-12
55 1 8.36 2758.15 52.52 2.33e-12 1.18e-12 -9.45e-13 -3.98e-13 -2.62e-14 -4.76e-13 2.51e-12 1.07e-12 -1.02e-12 3.07e-12
2 9.51 3568.63 59.74 -2.10e-12 -1.93e-12 -1.05e-12 -9.09e-13 -9.88e-14 -6.53e-13 -6.34e-13 -1.37e-12 -3.08e-12 2.18e-12
56 1 8.36 2758.15 52.52 -5.37e-12 -2.76e-12 -2.43e-12 -4.92e-13 1.14e-13 -1.95e-13 -2.35e-12 -2.74e-12 -5.47e-12 2.95e-12
2 9.51 3568.63 59.74 2.84e-13 -4.55e-13 -8.53e-13 -9.09e-13 -2.27e-13 9.52e-14 9.20e-13 -8.07e-13 -1.14e-12 1.91e-12
60 1 8.36 2758.15 52.52 8.81e-13 -2.10e-12 -4.97e-13 5.68e-14 1.14e-13 -2.93e-13 9.41e-13 -5.47e-13 -2.11e-12 2.65e-12
2 9.51 3568.63 59.74 5.12e-13 1.14e-12 5.12e-13 -9.09e-13 -2.27e-13 -3.68e-14 1.81e-12 5.30e-13 -1.76e-13 1.74e-12
758 1 8.36 2758.15 52.52 2.22e-12 1.63e-12 2.43e-12 -1.99e-13 -2.49e-14 -3.41e-13 2.69e-12 2.04e-12 1.55e-12 9.89e-13
2 9.51 3568.63 59.74 3.41e-13 2.05e-12 1.08e-12 -9.09e-13 -3.40e-13 4.55e-13 2.60e-12 9.89e-13 -1.25e-13 2.38e-12
778 1 8.36 2758.15 52.52 -3.24e-12 -1.88e-12 -4.99e-12 -1.15e-13 -5.52e-15 -3.41e-13 -1.87e-12 -3.19e-12 -5.05e-12 2.77e-12
2 9.51 3568.63 59.74 2.27e-13 2.27e-13 3.98e-13 -1.03e-12 2.30e-14 4.55e-13 1.36e-12 3.87e-13 -8.99e-13 1.97e-12
880 1 8.36 2758.15 52.52 1.76e-12 1.88e-12 1.82e-12 -5.26e-13 1.14e-13 0.00e+00 2.36e-12 1.82e-12 1.28e-12 9.37e-13
2 9.51 3568.63 59.74 -1.71e-12 1.59e-12 9.09e-13 -9.09e-13 -2.27e-13 4.55e-13 1.94e-12 8.48e-13 -1.99e-12 3.51e-12
952 1 8.36 2758.15 52.52 -5.29e-12 -7.11e-13 -1.93e-12 -1.71e-13 5.68e-14 2.27e-13 -7.02e-13 -1.92e-12 -5.31e-12 4.13e-12
2 9.51 3568.63 59.74 -1.02e-12 1.36e-12 -1.36e-12 -9.09e-13 0.00e+00 4.55e-13 1.68e-12 -9.20e-13 -1.78e-12 3.12e-12
3685 0 1 8.36 2758.15 52.52 7.18e-13 1.85e-13 -2.13e-13 1.17e-13 -3.55e-14 3.41e-13 8.45e-13 1.79e-13 -3.34e-13 1.02e-12
2 9.51 3568.63 59.74 1.14e-13 -3.41e-13 2.27e-13 -2.84e-14 -5.68e-14 6.82e-13 8.58e-13 -3.42e-13 -5.16e-13 1.30e-12
41 1 8.36 2758.15 52.52 -8.46e-13 -6.04e-13 -6.04e-14 2.20e-13 -3.50e-15 1.71e-13 -2.15e-14 -4.89e-13 -1.00e-12 8.48e-13
2 9.51 3568.63 59.74 -2.84e-13 2.27e-13 -2.84e-14 -9.02e-13 -3.56e-13 1.07e-12 1.53e-12 -2.31e-13 -1.38e-12 2.54e-12
45 1 8.36 2758.15 52.52 1.06e-12 -5.65e-13 5.68e-13 3.55e-14 -5.37e-15 -1.18e-13 1.09e-12 5.42e-13 -5.66e-13 1.46e-12
2 9.51 3568.63 59.74 -5.68e-13 0.00e+00 1.14e-13 2.27e-13 -3.26e-13 6.52e-13 5.63e-13 6.88e-14 -1.09e-12 1.47e-12
46 1 8.36 2758.15 52.52 -2.38e-13 6.68e-13 1.28e-13 1.05e-13 -2.84e-14 2.14e-13 6.80e-13 2.26e-13 -3.48e-13 8.92e-13
2 9.51 3568.63 59.74 2.84e-13 -3.41e-13 1.14e-13 3.84e-16 0.00e+00 -9.59e-14 3.27e-13 7.06e-14 -3.41e-13 5.84e-13
50 1 8.36 2758.15 52.52 -6.04e-14 1.14e-13 6.39e-14 -4.26e-14 -2.84e-14 -9.99e-14 1.27e-13 1.17e-13 -1.27e-13 2.49e-13
2 9.51 3568.63 59.74 5.12e-13 6.82e-13 3.98e-13 4.55e-13 0.00e+00 9.45e-13 1.54e-12 6.27e-13 -5.73e-13 1.83e-12
1015 1 8.36 2758.15 52.52 -5.68e-14 -7.85e-13 -2.70e-13 3.55e-14 -1.18e-14 -3.41e-13 1.95e-13 -5.20e-13 -7.87e-13 8.80e-13
2 9.51 3568.63 59.74 -1.14e-13 5.68e-14 1.71e-13 1.14e-13 -1.13e-13 4.55e-13 5.06e-13 1.01e-13 -4.94e-13 8.71e-13
1021 1 8.36 2758.15 52.52 9.66e-13 2.17e-13 8.60e-13 4.43e-13 -2.10e-15 -6.82e-13 1.67e-12 4.79e-13 -1.10e-13 1.57e-12
2 9.51 3568.63 59.74 0.00e+00 5.68e-14 1.71e-13 9.15e-13 -9.06e-14 -4.55e-13 1.11e-12 7.50e-14 -9.53e-13 1.78e-12
1031 1 8.36 2758.15 52.52 -2.74e-12 -5.68e-13 -1.42e-12 1.07e-13 0.00e+00 -4.55e-13 -5.63e-13 -1.28e-12 -2.89e-12 2.06e-12
2 9.51 3568.63 59.74 -3.41e-13 3.41e-13 -4.55e-13 0.00e+00 -2.27e-13 4.55e-13 4.26e-13 -1.01e-28 -8.80e-13 1.15e-12
1037 1 8.36 2758.15 52.52 2.42e-13 -1.28e-13 1.14e-13 -7.11e-15 -1.42e-14 -2.27e-13 4.14e-13 -5.52e-14 -1.31e-13 5.11e-13
2 9.51 3568.63 59.74 -1.14e-13 -4.55e-13 0.00e+00 2.84e-13 -1.14e-13 4.55e-13 4.15e-13 -2.05e-13 -7.79e-13 1.03e-12

pyNastran Package

This is the pyNastran.rst file for v0.8.

pyNastran/bdf

This is the pyNastran.bdf.rst file.

bdf Module

Inheritance diagram of pyNastran.bdf.bdf

Main BDF class. Defines:
  • BDF
class pyNastran.bdf.bdf.BDF(debug=True, log=None)[source]

Bases: pyNastran.bdf.bdf_Methods.BDFMethods, pyNastran.bdf.bdfInterface.getCard.GetMethods, pyNastran.bdf.bdfInterface.addCard.AddMethods, pyNastran.bdf.bdfInterface.bdf_writeMesh.WriteMesh, pyNastran.bdf.bdfInterface.crossReference.XrefMesh, pyNastran.bdf.bdfInterface.attributes.BDFAttributes

NASTRAN BDF Reader/Writer/Editor class.

Attributes

Methods

Initializes the BDF object

Parameters:
  • self – the BDF object
  • debug – used to set the logger if no logger is passed in True: logs debug/info/error messages False: logs info/error messages None: logs error messages
  • log – a python logging module object; if log is set, debug is ignored and uses the settings the logging object has

Attributes

Methods

AEFact(aefact, msg=u'')
AEList(aelist, msg=u'')
AEParam(aid, msg=u'')
AEStat(aid, msg=u'')
Aero(acsid, msg=u'')
Aeros(acsid, msg=u'')
CAero(eid, msg=u'')
CMethod(sid, msg=u'')
Coord(cid, msg=u'')
DConstr(oid, msg=u'')
DDVal(oid, msg=u'')
DLoad(sid, msg=u'')
DMIG(dname, msg=u'')
Desvar(oid, msg=u'')
Element(eid, msg=u'')
Elements(eids, msg=u'')
FLFACT(sid, msg=u'')
Flfact(sid, msg)

Deprecated since version will: be removed in version 0.8

Flutter(fid, msg=u'')
Gust(sid, msg=u'')
HyperelasticMaterial(mid, msg=u'')
Load(sid, msg=u'')
Mass()

See also

mass

MassProperties()

See also

mass_properties

Material(mid, msg=u'')
Materials(mids, msg=u'')
Method(sid, msg=u'')
NLParm(nid, msg=u'')
Node(nid, allowEmptyNodes=False, msg=u'')
Nodes(nids, allowEmptyNodes=False, msg=u'')

Returns a series of node objects given a list of node IDs

PAero(pid, msg=u'')
Phbdy(pid, msg=u'')
Properties(pids, msg=u'')
Property(pid, msg=u'')
PropertyMass(pid, msg=u'')
RandomTable(tid, msg=u'')
RigidElement(eid, msg=u'')
SPC(conid, msg=u'')
Set(sid, msg=u'')
SetSuper(seid, msg=u'')
Spline(eid, msg=u'')
StructuralMaterial(mid, msg=u'')
Table(tid, msg=u'')
ThermalMaterial(mid, msg=u'')
add_AEFACT(aefact, allowOverwrites=False)
add_AELIST(aelist)
add_AEPARM(aeparam)
add_AERO(aero)
add_AEROS(aero)
add_AESTAT(aestat)
add_AESURF(aesurf)
add_ASET(set_obj)
add_BCRPARA(card, allowOverwrites=False)
add_BCTADD(card, allowOverwrites=False)
add_BCTPARA(card, allowOverwrites=False)
add_BCTSET(card, allowOverwrites=False)
add_BSET(set_obj)
add_BSURF(card, allowOverwrites=False)
add_BSURFS(card, allowOverwrites=False)
add_CAERO(caero)
add_CSET(set_obj)
add_DAREA(darea, allowOverwrites=False)
add_DCONSTR(dconstr)
add_DDVAL(ddval)
add_DEQATN(deqatn, allowOverwrites=False)
add_DESVAR(desvar)
add_DMI(dmi, allowOverwrites=False)
add_DMIG(dmig, allowOverwrites=False)
add_DMIJ(dmij, allowOverwrites=False)
add_DMIJI(dmiji, allowOverwrites=False)
add_DMIK(dmik, allowOverwrites=False)
add_DRESP(dresp)
add_DVMREL(dvmrel)
add_DVPREL(dvprel)
add_FLFACT(flfact)
add_FLUTTER(flutter)
add_FREQ(freq)
add_GUST(gust)
add_LSEQ(load)
add_MKAERO(mkaero)
add_NLPARM(nlparm)
add_NLPCI(nlpci)
add_PAERO(paero)
add_PARAM(param, allowOverwrites=False)
add_PBUSHT(prop, allowOverwrites=False)
add_PDAMPT(prop, allowOverwrites=False)
add_PELAST(prop, allowOverwrites=False)
add_PHBDY(prop)
add_QSET(set_obj)
add_SESET(set_obj)
add_SET(set_obj)
add_SPLINE(spline)
add_SPOINT(spoint)
add_TRIM(trim, allowOverwrites=False)
add_TSTEP(tstep, allowOverwrites=False)
add_TSTEPNL(tstepnl, allowOverwrites=False)
add_card(card_lines, card_name, comment=u'', is_list=True)[source]

Adds a card object to the BDF object.

Parameters:
  • self – the BDF object
  • card_lines – the list of the card fields
  • card_name – the card_name -> ‘GRID’
  • comment – an optional the comment for the card
  • is_list – changes card_lines from a list of lines to a list of fields
Returns card_object:
 

the card object representation of card

 >>> model = BDF()

 # is_list is a somewhat misleading name; is it a list of card_lines?
 # where a card_line is an unparsed string
 >>> card_lines =['GRID,1,2']
 >>> comment = 'this is a comment'
 >>> model.add_card(card_lines, 'GRID', comment, is_list=True)

 # here is_list=False because it's been parsed
>>> card = ['GRID', 1, 2,]
 >>> model.add_card(card_lines, 'GRID', comment, is_list=False)

Note

this is a very useful method for interfacing with the code

Note

the card_object is not a card-type object...so not a GRID card or CQUAD4 object. It’s a BDFCard Object. However, you know the type (assuming a GRID), so just call the mesh.Node(nid) to get the Node object that was just created.

add_cmethod(cMethod, allowOverwrites=False)
add_constraint(constraint)
add_constraint_MPC(constraint)
add_constraint_MPCADD(constraint)
add_constraint_SPC(constraint)
add_constraint_SPCADD(constraint)
add_convection_property(prop)
add_coord(coord, allowOverwrites=False)
add_creep_material(material, allowOverwrites=False)

Note

May be removed in the future. Are CREEP cards materials? They have an MID, but reference structural materials.

add_damper(elem, allowOverwrites=False)

Warning

can dampers have the same ID as a standard element?

add_dload(dload)
add_dload_entry(dload)
add_element(elem, allowOverwrites=False)
add_hyperelastic_material(material, allowOverwrites=False)
add_load(load)
add_mass(mass, allowOverwrites=False)
add_material_dependence(material, allowOverwrites=False)
add_method(method, allowOverwrites=False)
add_node(node, allowOverwrites=False)
add_property(prop, allowOverwrites=False)
add_property_mass(prop, allowOverwrites=False)
add_random_table(table)
add_rigid_element(elem, allowOverwrites=False)
add_structural_material(material, allowOverwrites=False)
add_suport(suport)
add_table(table)
add_thermal_BC(bc, key)
add_thermal_element(elem)

same as add_element at the moment...

add_thermal_load(load)
add_thermal_material(material, allowOverwrites=False)
auto_reject_bdf(infile_name)

This method parses supported cards, but does not group them into nodes, elements, properties, etc.

Todo

maybe add the write method

card_count = None

list of all read in cards - useful in determining if entire BDF was read & really useful in debugging

cards_to_read = None

the list of possible cards that will be parsed

case_control_lines = None

list of case control deck lines

coordIDs()

deprecated

coord_ids
create_card_object(card_lines, card_name, is_list=True)[source]
cross_reference(xref=True, xref_elements=True, xref_properties=True, xref_materials=True, xref_loads=True, xref_constraints=True, xref_aero=True)

Links up all the cards to the cards they reference

Parameters:
  • xref – cross references the model (default=True)
  • xref_element – set cross referencing of elements (default=True)
  • xref_properties – set cross referencing of properties (default=True)
  • xref_materials – set cross referencing of materials (default=True)
  • xref_loads – set cross referencing of loads (default=True)
  • xref_constraints – set cross referencing of constraints (default=True)
  • xref_aero – set cross referencing of CAERO/SPLINEs (default=True)

To only cross-reference nodes:

model = BDF()
model.read_bdf(bdf_filename, xref=False)
model.cross_reference(xref=True, xref_loads=False, xref_constraints=False,
                                 xref_materials=False, xref_properties=False,
                                 xref_aero=False, xref_masses=False)

Warning

be careful if you call this method

debug = None

useful in debugging errors in input

disable_cards(cards)[source]

Method for removing broken cards from the reader

Parameters:
  • self – the BDF object
  • cards – a list/set of cards that should not be read
echo_bdf(infile_name)

This method removes all comment lines from the bdf A write method is stil required.

Todo

maybe add the write method

model = BDF()
model.echo_bdf(bdf_filename)
elementIDs()

deprecated

element_ids
executive_control_lines = None

list of execive control deck lines

getElementIDsWithPID(pid)

Gets all the element IDs with a specific property ID

Parameters:pid – property ID
Returns elementIDs:
 as a list

Deprecated since version will: be removed in version 0.8

The same functionality may be used by calling
>>> self.getElementIDsWithPIDs([pid], mode='list')
getElementIDsWithPIDs(pids, mode='list')

deprecated

getMaterialIDToPropertyIDsMap()

deprecated

getNodeIDToElementIDsMap()

deprecated

getNodeIDsWithElement(eid)

deprecated

getNodeIDsWithElements(eids, msg='')

deprecated

getNodes()

deprecated

getPropertyIDToElementIDsMap()

deprecated

get_bdf_stats(return_type=u'string')[source]

Print statistics for the BDF

Parameters:self – the BDF object

Note

if a card is not supported and not added to the proper lists, this method will fail

get_coord_ids()
get_dload_entries(sid, msg=u'')
get_element_ids()

deprecated

get_element_ids_dict_with_pids(pids)

Gets all the element IDs with a specific property ID.

Parameters:
  • self – the BDF object
  • pids – list of property ID
Returns element_ids:
 

as a dictionary of lists by property

For example, we want all the elements with pids=[4, 5, 6], but we want them in separate groups

model = BDF()
model.read_bdf(bdf_filename)
pids = [4, 5, 6]
eids_dict = model.get_element_ids_with_pids(pids, mode='dict')
get_element_ids_list_with_pids(pids)

Gets all the element IDs with a specific property ID.

Parameters:
  • self – the BDF object
  • pids – list of property ID
Returns element_ids:
 

as a list

For example, we want to get all the element ids with pids=[1, 2, 3]

model = BDF()
model.read_bdf(bdf_filename)
pids = [1, 2, 3]
eids_list = model.get_element_ids_with_pids(pids, mode='list')
get_material_id_to_property_ids_map()

Returns a dictionary that maps a material ID to a list of properties

Returns mid_to_pids_map:
 the mapping
>>> mid_to_pid_map = get_material_id_to_property_ids_map()
>>> mid = 1
>>> pids = get_material_id_to_property_ids_map[mid]
>>> pids
[1, 2, 3]

Note

all properties require an mid to be counted (except for PCOMP, which has multiple mids)

get_material_ids()
get_ncaeros()
get_nelements()

deprecated

get_nnodes()

deprecated

get_node_id_to_element_ids_map()

Returns a dictionary that maps a node ID to a list of elemnents

Todo

support 0d or 1d elements

Todo

support elements with missing nodes (e.g. CQUAD8 with missing nodes)

get_node_ids()

deprecated

get_node_ids_with_element(eid, msg=u'')
get_node_ids_with_elements(eids, msg=u'')

Get the node IDs associated with a list of element IDs

Parameters:
  • self – the BDF object
  • eids – list of element ID
  • msg – a additional message to print out if an element is not found
Returns node_ids:
 

set of node IDs

For example

>>> eids = [1, 2, 3]  # list of elements with pid=1
>>> msg = ' which are required for pid=1'
>>> node_ids = bdf.get_node_ids_with_elements(eids, msg=msg)
get_property_id_to_element_ids_map()

Returns a dictionary that maps a property ID to a list of elemnents

get_property_ids()

deprecated

get_structural_material_ids()
get_thermal_material_ids()
get_x_associated_with_y(xdict, xkeys, ykeys, stop_on_failure=True)

Get the range of sub-properties of a card.

Note

Assumes you’re taking a single path through the cards. You could probably explicitly code these queries faster, but this method has a lot of flexibility with very little user code.

Parameters:
  • self – the BDF object
  • xdict – the BDF attribute that should be querried (e.g. self.elements)
  • xkeys – the list of object keys that should be stepped through associated with xdict (e.g. eids=[1, 2, 3])
  • ykeys – the list of response keys that should be stepped through (e.g. [‘pid’, ‘mid’, ‘mid’])
  • stop_on_failure – Should an error be raised if there is an invalid key? For example, get all material used by elements, but don’t crash on CONRODs.
Returns results:
 

The set of all values used

# Get nodes associated with eid=[1, 2, 3]
nodes = self.get_x_associated_with_y(
    self.elements, [1, 2, 3], ['nodes'])

# Get node IDs associated with eid=[1, 2, 3]
nodesIDs = self.get_x_associated_with_y(
    self.elements, [1, 2, 3], ['nodes', 'nid'])

# Get coord IDs associated with eid=[1, 2, 3]
coordIDs = self.get_x_associated_with_y(
    self.elements, [1, 2, 3], ['nodes', 'cp', 'cid'])

# Get properties associated with eid=[1, 2, 3]
properties = self.get_x_associated_with_y(
    self.elements, [1, 2, 3], ['pid'])

# Get materials associated with eid=[1, 2, 3]
materials = self.get_x_associated_with_y(
    self.elements, [1, 2, 3], ['pid', 'mid'])

# Get material IDs associated with eid=[1, 2, 3]
materialIDs = self.get_x_associated_with_y(
    self.elements, [1, 2, 3], ['pid', 'mid', 'mid'])

# Get the values for Young's Modulus
E = self.get_x_associated_with_y(
    self.elements, None, ['pid', 'mid', 'e'])
is_reject(card_name)[source]

Can the card be read.

If the card is rejected, it’s added to self.reject_count

Parameters:
  • self – the BDF object
  • card_name – the card_name -> ‘GRID’
mass(element_ids=None, sym_axis=None)

Calculates mass in the global coordinate system

mass_properties(element_ids=None, reference_point=None, sym_axis=None, num_cpus=1, scale=None)

Caclulates mass properties in the global system about the reference point.

Parameters:
  • self – the BDF object
  • element_ids – an array of element ids
  • reference_point – an array that defines the origin of the frame. default = <0,0,0>.
  • sym_axis – the axis to which the model is symmetric. If AERO cards are used, this can be left blank allowed_values = ‘x’, ‘y’, ‘z’, ‘xy’, ‘yz’, ‘xz’, ‘xyz’
  • scale – the WTMASS scaling value default=None -> PARAM, WTMASS is used float > 0.0
Returns mass:

the mass of the model

Returns cg:

the cg of the model as an array.

Returns I:

moment of inertia array([Ixx, Iyy, Izz, Ixy, Ixz, Iyz])

I = mass * centroid * centroid

\[I_{xx} = m (dy^2 + dz^2)\]
\[I_{yz} = -m * dy * dz\]

where:

\[dx = x_{element} - x_{ref}\]

Note

This doesn’t use the mass matrix formulation like Nastran. It assumes m*r^2 is the dominant term. If you’re trying to get the mass of a single element, it will be wrong, but for real models will be correct.

materialIDs()

deprecated

material_ids
modelType = u'nastran'

this is a nastran model

nCAeros()

deprecated

nElements()

deprecated

nNodes()

deprecated

ncaeros
ncoords
nelements
nmaterials
nnodes
nodeIDs()

deprecated

node_ids
nproperties
pop_parse_errors()[source]
pop_xref_errors()[source]
process_card(card_lines)[source]

Converts card_lines into a card. Considers dynamic syntax and removes empty fields

Parameters:
  • self – the BDF object
  • card_lines – list of strings that represent the card’s lines
Returns fields:

the parsed card’s fields

Returns card_name:
 

the card’s name


>>> card_lines = ['GRID,1,,1.0,2.0,3.0,,']
>>> model = BDF()
>>> fields, card_name = model.process_card(card_lines)
>>> fields
['GRID', '1', '', '1.0', '2.0', '3.0']
>>> card_name
'GRID'
propertyIDs()

deprecated

property_ids
read_bdf(bdf_filename=None, include_dir=None, xref=True, punch=False)[source]

Read method for the bdf files

Parameters:
  • self – the BDF object
  • bdf_filename – the input bdf (default=None; popup a dialog)
  • include_dir – the relative path to any include files (default=None if no include files)
  • xref – should the bdf be cross referenced (default=True)
  • punch – indicates whether the file is a punch file (default=False)
>>> bdf = BDF()
>>> bdf.read_bdf(bdf_filename, xref=True)
>>> g1 = bdf.Node(1)
>>> print(g1.Position())
[10.0, 12.0, 42.0]
>>> bdf.write_card(bdf_filename2)
>>> print(bdf.card_stats())

---BDF Statistics---
SOL 101
bdf.nodes = 20
bdf.elements = 10
etc.
reject_cards = None

cards that were created, but not processed

reject_count = None

stores the card_count of cards that have been rejected

rejects = None

lines that were rejected b/c they were for a card that isnt supported

resolveGrids(cid=0)

See also

resolve_grids

resolve_grids(cid=0)

Puts all nodes in a common coordinate system (mainly for cid testing)

Parameters:
  • self – the object pointer
  • cid – the cid to resolve the nodes to (default=0)

Note

loses association with previous coordinate systems so to go back requires another fem

set_dynamic_syntax(dict_of_vars)[source]

Uses the OpenMDAO syntax of %varName in an embedded BDF to update the values for an optimization study.

Parameters:
  • self – the BDF object
  • dict_of_vars – dictionary of 7 character variable names to map.
  GRID, 1, %xVar, %yVar, %zVar

>>> dict_of_vars = {'xVar': 1.0, 'yVar', 2.0, 'zVar':3.0}
>>> bdf = BDF()
>>> bdf.set_dynamic_syntax(dict_of_vars)
>>> bdf,read_bdf(bdf_filename, xref=True)
>>>

Note

Case sensitivity is supported.

Note

Variables should be 7 characters or less to fit in an 8-character field.

Warning

Type matters!

set_error_storage(nparse_errors=100, stop_on_parsing_error=True, nxref_errors=100, stop_on_xref_error=True)[source]

Catch parsing errors and store them up to print them out all at once (not all errors are caught).

Parameters:
  • self – the BDF object
  • nparse_errors – how many parse errors should be stored (default=0; all=None; no storage=0)
  • stop_on_parsing_error – should an error be raised if there are parsing errors (default=True)
  • nxref_errors – how many cross-reference errors should be stored (default=0; all=None; no storage=0)
  • stop_on_xref_error – should an error be raised if there are cross-reference errors (default=True)
specialCards = None

/ is the delete from restart card

structuralMaterialIDs()

deprecated

sum_forces_moments(p0, loadcase_id, include_grav=False)

Sums applied forces & moments about a reference point p0 for all load cases. Considers:

  • FORCE, FORCE1, FORCE2
  • MOMENT, MOMENT1, MOMENT2
  • PLOAD, PLOAD2, PLOAD4
  • LOAD
Parameters:
  • p0 (NUMPY.NDARRAY shape=(3,) or integer (node ID)) – the reference point
  • loadcase_id (integer) – the LOAD=ID to analyze
  • include_grav (bool) – includes gravity in the summation (not supported)
Returns Forces:

the forces

Returns Moments:
 

the moments

Warning

not full validated

Todo

It’s super slow for cid != 0. We can speed this up a lot if we calculate the normal, area, centroid based on precomputed node locations.

Pressure acts in the normal direction per model/real/loads.bdf and loads.f06

sum_forces_moments_elements(p0, loadcase_id, eids, nids, include_grav=False)

Sum the forces/moments based on a list of nodes and elements.

Parameters:
  • eids – the list of elements to include (e.g. the loads due to a PLOAD4)
  • nids – the list of nodes to include (e.g. the loads due to a FORCE card)
  • p0

    the point to sum moments about type = int

    sum moments about the specified grid point
    type = (3, ) ndarray/list (e.g. [10., 20., 30]):
    the x, y, z location in the global frame
Nodal Types : FORCE, FORCE1, FORCE2,
MOMENT, MOMENT1, MOMENT2, PLOAD

Element Types: PLOAD1, PLOAD2, PLOAD4, GRAV

If you have a CQUAD4 (eid=3) with a PLOAD4 (eid=3) and a FORCE card (nid=5) acting on it, you can incldue the PLOAD4, but not the FORCE card by using:

For just pressure:

eids = [3]
nids = []

For just force:

eids = []
nids = [5]

or both:

eids = [3]
nids = [5]

Note

If you split the model into sections and sum the loads on each section, you may not get the same result as if you summed the loads on the total model. This is due to the fact that nodal loads on the boundary are double/triple/etc. counted depending on how many breaks you have.

Todo

not done...

thermalMaterialIDs()

deprecated

unresolveGrids(femOld)

See also

unresolve_grids

unresolve_grids(model_old)

Puts all nodes back to original coordinate system.

Parameters:
  • self – the object pointer
  • model_old – the old model that hasnt lost it’s connection to the node cids

Warning

hasnt been tested well...

update_solution(sol, method, isol_line)[source]

Updates the overall solution type (e.g. 101,200,600)

Parameters:
  • self – the object pointer
  • sol – the solution type (101,103, etc)
  • method – the solution method (only for SOL=600)
  • isol_line – the line to put the SOL/method on
write_bdf(out_filename=None, size=8, is_double=False, interspersed=True, enddata=None)

Writes the BDF.

Parameters:
  • self – the BDF object
  • out_filename – the name to call the output bdf (default=None; pops a dialog)
  • size – the field size (8 is recommended)
  • is_double – small field (False) or large field (True); default=False
  • interspersed – Writes a bdf with properties & elements interspersed like how Patran writes the bdf. This takes slightly longer than if interspersed=False, but makes it much easier to compare to a Patran-formatted bdf and is more clear. (default=True)
  • enddata – Flag to enable/disable writing ENDDATA (default=None -> depends on input BDF)

bdf_methods Module

bdf_replacer Module

Inheritance diagram of pyNastran.bdf.bdf_replacer

class pyNastran.bdf.bdf_replacer.BDFReplacer(bdf_out_filename, debug=True, log=None)[source]

Bases: pyNastran.bdf.bdf.BDF

This class demonstates OpenMDAO find-replace streaming coupled with some Python black magic (see _read_bulk_data_deck).

TODO: this needs to be tested with include files...

Attributes

Methods

_finish_writing()[source]
_read_bulk_data_deck()[source]

Hacks the _read_bulk_data_deck method to do some pre/post processing, but still calls the orignal function.

..see:: BDF._read_bulk_data_deck()

_start_writing()[source]
add_card(card_lines, card_name, comment=u'', is_list=True)[source]

Adds a card object to the BDF object using a streaming approach.

Parameters:
  • self – the BDF object
  • card_lines – the list of the card fields >>> [‘GRID,1,2’,] # (is_list = False) >>> [‘GRID’,1,2,] # (is_list = True; default)
  • card_name – the card_name -> ‘GRID’
  • comment – an optional the comment for the card
  • is_list – changes card_lines from a list of lines to a list of fields
Returns card_object:
 

the card object representation of card

Note

this is a very useful method for interfacing with the code

Note

the cardObject is not a card-type object...so not a GRID card or CQUAD4 object. It’s a BDFCard Object. However, you know the type (assuming a GRID), so just call the mesh.Node(nid) to get the Node object that was just created.

Warning

cardObject is not returned

is_reject(card_name)[source]

case_control_deck Module

deprecated Module

Inheritance diagram of pyNastran.bdf.deprecated

class pyNastran.bdf.deprecated.AeroDeprecated[source]

Bases: object

defines deprecated methods for Aero

Methods

DisableGroundEffect()[source]
EnableGroundEffect()[source]
IsAntiSymmetricalXY()[source]
IsAntiSymmetricalXZ()[source]
IsSymmetricalXY()[source]
IsSymmetricalXZ()[source]
class pyNastran.bdf.deprecated.BDFMethodsDeprecated[source]

Bases: object

defines deprecated methods for BDFMethods

Methods

Mass()[source]

See also

mass

MassProperties()[source]

See also

mass_properties

mass(element_ids=None, sym_axis=None)[source]

Calculates mass in the global coordinate system

resolveGrids(cid=0)[source]

See also

resolve_grids

unresolveGrids(femOld)[source]

See also

unresolve_grids

class pyNastran.bdf.deprecated.BaseCardDeprecated[source]

Bases: object

Deprecated in:
  • version 0.7
Removed in:
  • version 0.8

Methods

printRawFields(size=8)[source]
rawFields()[source]
reprCard()[source]
reprFields()[source]
repr_card()[source]
class pyNastran.bdf.deprecated.CAERO1Deprecated[source]

Bases: object

defines deprecated methods for CAERO1

Methods

Points()[source]
SetPoints(points)[source]
class pyNastran.bdf.deprecated.CAERO2Deprecated[source]

Bases: object

defines deprecated methods for CAERO2

Methods

Points()[source]
SetPoints(points)[source]
class pyNastran.bdf.deprecated.CoordDeprecated[source]

Bases: object

defines deprecated methods for Coord

Methods

T()[source]

Gets the 6 x 6 transformation

\[[\lambda] = [B_{ij}]\]
\[\begin{split}[T] = \left[ \begin{array}{cc} \lambda & 0 \\ 0 & \lambda \\ \end{array} \right]\end{split}\]
transformNodeToGlobal(p)[source]
transformToGlobal(p, debug=False)[source]

Transforms a node from the local frame to the global frame

Parameters:
  • p – the xyz point in the local frame
  • debug – debug flag (default=False; unused)
Retval p2:

the xyz point in the global frame

Retval matrix:

the transformation matrix

transformToLocal(p, beta, debug=False)[source]
transformVectorToGlobal(p)[source]
transform_to_local(p, beta, debug=False)[source]
class pyNastran.bdf.deprecated.DeprecatedCompositeShellProperty[source]

Bases: object

To be deprecated in:
  • Version 0.7
To be removed in:
  • Version 0.8

Methods

MassPerArea(iply='all', method='nplies')[source]
Nsm()[source]
Rho(iply)[source]
Theta(iply)[source]
Thickness(iply='all')[source]
isSymmetrical()[source]
nPlies()[source]
sout(iply)[source]
class pyNastran.bdf.deprecated.ElementDeprecated[source]

Bases: object

defines deprecated methods for Element

Methods

nodePositions(nodes=None)[source]
class pyNastran.bdf.deprecated.GetMethodsDeprecated[source]

Bases: object

defines deprecated methods for GetMethods

Methods

Flfact(sid, msg)[source]

Deprecated since version will: be removed in version 0.8

coordIDs()[source]

deprecated

elementIDs()[source]

deprecated

getElementIDsWithPID(pid)[source]

Gets all the element IDs with a specific property ID

Parameters:pid – property ID
Returns elementIDs:
 as a list

Deprecated since version will: be removed in version 0.8

The same functionality may be used by calling
>>> self.getElementIDsWithPIDs([pid], mode='list')
getElementIDsWithPIDs(pids, mode='list')[source]

deprecated

getMaterialIDToPropertyIDsMap()[source]

deprecated

getNodeIDToElementIDsMap()[source]

deprecated

getNodeIDsWithElement(eid)[source]

deprecated

getNodeIDsWithElements(eids, msg='')[source]

deprecated

getNodes()[source]

deprecated

getPropertyIDToElementIDsMap()[source]

deprecated

get_coord_ids()[source]
get_element_ids()[source]

deprecated

get_ncaeros()[source]
get_nelements()[source]

deprecated

get_nnodes()[source]

deprecated

get_node_ids()[source]

deprecated

get_property_ids()[source]

deprecated

materialIDs()[source]

deprecated

nCAeros()[source]

deprecated

nElements()[source]

deprecated

nNodes()[source]

deprecated

nodeIDs()[source]

deprecated

propertyIDs()[source]

deprecated

structuralMaterialIDs()[source]

deprecated

thermalMaterialIDs()[source]

deprecated

class pyNastran.bdf.deprecated.GridDeprecated[source]

Bases: object

Methods

Position(debug=False)[source]
PositionWRT(model, cid, debug=False)[source]
UpdatePosition(model, xyz, cid=0)[source]
class pyNastran.bdf.deprecated.PointDeprecated[source]

Bases: object

Methods

Position(debug=False)[source]
PositionWRT(model, cid, debug=False)[source]
UpdatePosition(model, xyz, cid=0)[source]
class pyNastran.bdf.deprecated.SPOINTsDeprecated[source]

Bases: object

Methods

nDOF()[source]
class pyNastran.bdf.deprecated.ShellElementDeprecated[source]

Bases: object

Methods

Rho()[source]

Returns the density

subcase Module

Inheritance diagram of pyNastran.bdf.subcase

Subcase creation/extraction class

class pyNastran.bdf.subcase.Subcase(id=0)[source]

Bases: object

Subcase creation/extraction class

Methods

cross_reference(model)[source]

Method crossReference:

Parameters:
  • self – the Subcase object
  • model – the BDF object

Note

this is not integrated and probably never will be as it’s not really that necessary. it’s only really useful when running an analysis.

finish_subcase()[source]

Removes the subcase parameter from the subcase to avoid printing it in a funny spot

Parameters:self – the Subcase object
get_analysis_code(sol)[source]

Maps the solution number to the OP2 analysis code.

  • 8 - post-buckling (maybe 7 depending on NLPARM???)
# not important
  • 3/4 - differential stiffness (obsolete)
  • 11 - old geometric nonlinear statics
  • 12 - contran (???)

Todo

verify

get_device_code(options, value)[source]

Gets the device code of a given set of options and value

Parameters:
  • self – the Subcase object
  • options – the options for a parameter
  • value – the value of the parameter
get_format_code(options, value)[source]

Gets the format code that will be used by the op2 based on the options.

Parameters:
  • self – the Subcase object
  • options – the options for a parameter
  • value – the value of the parameter

Todo

not done...only supports REAL, IMAG, PHASE, not RANDOM

get_op2_data(sol, solmap_toValue)[source]
get_parameter(param_name)[source]

Gets the [value, options] for a subcase.

Parameters:
  • self – the Subcase object
  • param_name – the case control parameter to check for
model = BDF()
model.read_bdf(bdf_filename)
case_control = model.caseControlDeck
subcase1 = case_control.subcases[1]
value, options = subcase1['LOAD']
get_sort_code(options, value)[source]

Gets the sort code of a given set of options and value

Parameters:
  • self – the Subcase object
  • options – the options for a parameter
  • value – the value of the parameter
get_stress_code(key, options, value)[source]

Method get_stress_code:

Note

the individual element must take the stress_code and reduce

it to what the element can return. For example, for an isotropic CQUAD4 the fiber field doesnt mean anything.

BAR - no von mises/fiber ISOTROPIC - no fiber

Todo

how does the MATERIAL bit get turned on? I’m assuming it’s element dependent...

get_table_code(sol, table_name, options)[source]

Gets the table code of a given parameter. For example, the DISPLACMENT(PLOT,POST)=ALL makes an OUGV1 table and stores the displacement. This has an OP2 table code of 1, unless you’re running a modal solution, in which case it makes an OUGV1 table of eigenvectors and has a table code of 7.

Parameters:
  • self – the Subcase object
  • options – the options for a parameter
  • value – the value of the parameter
has_parameter(param_name)[source]

see __contains__

print_param(key, param)[source]

Prints a single entry of the a subcase from the global or local subcase list.

Parameters:self – the Subcase object
solCodeMap = {64: 106, 1: 101, 66: 106, 68: 106, 76: 101, 144: 101, 21: 101, 24: 101, 26: 101, 99: 129, 187: 101, 61: 101}
subcase_sorted(lst)[source]

Does a “smart” sort on the keys such that SET cards increment in numerical order. Also puts the sets first.

Parameters:
  • self – the Subcase object
  • lst – the list of subcase list objects
Returns listB:

the sorted version of listA

write_subcase(subcase0)[source]

Internal method to print a subcase

Parameters:
  • self – the Subcase object
  • subcase0 – the global Subcase object
pyNastran.bdf.subcase.update_param_name(param_name)[source]

Takes an abbreviated name and expands it so the user can type DISP or DISPLACEMENT and get the same answer

Parameters:param_name – the parameter name to be standardized (e.g. DISP vs. DIPLACEMENT)

Todo

not a complete list

bdf/utils Package

This is the pyNastran.bdf.rst file.

utils Module

Inheritance diagram of pyNastran.bdf.utils

Defines various utilities for BDF parsing including:
  • to_fields
  • parse_patran_syntax
  • parse_patran_syntax_dict
  • Position
  • PositionWRT
  • TransformLoadWRT
exception pyNastran.bdf.utils.CardParseSyntaxError[source]

Class that is used for testing. Users should just treat this as a SyntaxError.

pyNastran.bdf.utils.Position(xyz, cid, model, is_cid_int=True)[source]

Gets the point in the global XYZ coordinate system.

Parameters:
  • xyz (TYPE = NDARRAY. SIZE=(3,)) – the position of the GRID in an arbitrary coordinate system
  • cid (int) – the coordinate ID for xyz
  • model (BDF()) – the BDF model object
Returns xyz2:

the position of the GRID in an arbitrary coordinate system

pyNastran.bdf.utils.PositionWRT(xyz, cid, cid_new, model, is_cid_int=True)[source]

Gets the location of the GRID which started in some arbitrary system and returns it in the desired coordinate system

Parameters:
  • xyz (TYPE = NDARRAY. SIZE=(3,)) – the position of the GRID in an arbitrary coordinate system
  • cid (int) – the coordinate ID for xyz
  • cid_new (int) – the desired coordinate ID
  • model (BDF()) – the BDF model object
Returns xyz_local:
 

the position of the GRID in an arbitrary coordinate system

pyNastran.bdf.utils.TransformLoadWRT(F, M, cid, cid_new, model, is_cid_int=True)[source]

Transforms a force/moment from an arbitrary coordinate system to another coordinate system.

Parameters:
  • Fxyz (TYPE = NDARRAY. SIZE=(3,)) – the force in an arbitrary coordinate system
  • Mxyz (TYPE = NDARRAY. SIZE=(3,)) – the moment in an arbitrary coordinate system
  • cid (int) – the coordinate ID for xyz
  • cid_new (int) – the desired coordinate ID
  • model (BDF()) – the BDF model object
  • is_cid_int (bool) – is cid/cid_new an integer or a Coord object
Returns Fxyz_local:
 

the force in an arbitrary coordinate system

Returns Mxyz_local:
 

the force in an arbitrary coordinate system

pyNastran.bdf.utils._clean_comment(comment, end=-1)[source]

Removes specific pyNastran comment lines so duplicate lines aren’t created.

param comment:the comment to possibly remove
param end:lets you remove trailing characters (e.g. a ``

``; default=-1)

pyNastran.bdf.utils.clean_empty_lines(lines)[source]

Removes leading and trailing empty lines don’t remove internally blank lines

pyNastran.bdf.utils.get_include_filename(card_lines, include_dir='')[source]

Parses an INCLUDE file split into multiple lines (as a list).

Parameters:
  • card_lines – the list of lines in the include card (all the lines!)
  • include_dir – the include directory (default=’‘)
Returns filename:
 

the INCLUDE filename

pyNastran.bdf.utils.parse_executive_control_deck(executive_control_lines)[source]

Extracts the solution from the executive control deck

pyNastran.bdf.utils.parse_patran_syntax(node_sets)[source]

Parses Patran’s syntax for compressing nodes/elements

Parameters:node_sets – the node_set to parse
Returns nodes:list of integers

Patran has a short syntax of the form:

String Output
“1 2 3” [1, 2, 3]
“5:10” [5, 6, 7, 8, 9, 10]
“12:20:2” [12, 14, 16, 18, 20]
pyNastran.bdf.utils.parse_patran_syntax_dict(node_sets)[source]

Parses Patran’s syntax for compressing nodes/elements

Parameters:node_sets – the node_set to parse
Returns nodes:list of integers
node_sets = "e 1:3 n 2:6:2 Node 10:13"
data = parse_patran_syntax_dict(node_sets)
data = {
    'e'    : [1, 2, 3],
    'n'    : [2, 4, 6],
    'Node' : [10, 11, 12, 13],
}

Note

the identifier (e.g. “e”) must be used. Use parse_patran_syntax to skip the identifier.

Note

doesn’t support “1:#”

pyNastran.bdf.utils.print_filename(filename, relpath)[source]

Takes a path such as C:/work/fem.bdf and locates the file using relative paths. If it’s on another drive, the path is not modified.

Parameters:filename – a filename string
Returns filename_string:
 a shortened representation of the filename
pyNastran.bdf.utils.to_fields(card_lines, card_name)[source]

Converts a series of lines in a card into string versions of the field. Handles large, small, and CSV formatted cards.

Parameters:
  • lines – the lines of the BDF card object
  • card_name – the card_name -> ‘GRID’
Returns fields:

the string formatted fields of the card

Warning

this function is used by the reader and isn’t intended to be called by a separate process

>>> card_lines = []'GRID,1,,1.0,2.0,3.0']
>>> card_name = 'GRID'
>>> fields = to_fields(lines, card_name)
>>> fields
['GRID', '1', '', '1.0', '2.0', '3.0']
write_path Module
Defines following useful methods:
  • write_include
pyNastran.bdf.write_path._split_path(abspath)[source]

Takes a path and splits it into the various components.

This is a helper method for write_include

pyNastran.bdf.write_path.main()[source]
pyNastran.bdf.write_path.write_include(filename, is_windows=True)[source]

Writes a bdf INCLUDE file line given an imported filename.

Parameters:
  • filename – the filename to write
  • is_windows – Windows has a special format for writing INCLUDE files so the format for a BDF that will run on Linux and Windows is different. We could check the platform, but since you might need to change platforms, it’s an option (default=True)

For a model that will run on Linux:

..code-blocK:: python

fname = r’/opt/NASA/test1/test2/test3/test4/formats/pynastran_v0.6/pyNastran/bdf/model.inc’ write_include(fname, is_windows=False)

We want:

..code-blocK:: python

INCLUDE /opt/NASA/test1/test2/test3/test4/formats/pynastran_v0.6/
pyNastran/bdf/model.inc
bdf_interface Package
add_card Module
assign_type Module
bdf_card Module
write_mesh Module
cross_reference Module
get_card Module
cards Package
aero Module

Inheritance diagram of pyNastran.bdf.cards.aero

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

  • AEFACT
  • AELINK
  • AELIST
  • AEPARM
  • AESTAT
  • AESURF / AESURFS
  • AERO / AEROS
  • CSSCHD
  • CAERO1 / CAERO2 / CAERO3 / CAERO4 / CAERO5
  • FLFACT
  • FLUTTER
  • GUST
  • MKAERO1 / MKAERO2
  • PAERO1 / PAERO2 / PAERO3
  • SPLINE1 / SPLINE2 / SPLINE4 / SPLINE5

All cards are BaseCard objects.

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines real numbers for aeroelastic analysis.

AEFACT SID D1 D2 D3 D4 D5 D6 D7
  D8 D9 -etc.-          
AEFACT 97 .3 0.7 1.0

Methods

Di = None

Number (float)

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AEFACT object pointer
Returns fields:the fields that define the card
sid = None

Set identification number. (Unique Integer > 0)

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines relationships between or among AESTAT and AESURF entries, such that:

\[u^D + \Sigma_{i=1}^n C_i u_i^I = 0.0\]
AELINK ID LABLD LABL1 C1 LABL2 C2 LABL3 C3
  LABL4 C4 etc.          
AELINK 10 INBDA OTBDA -2.0

Methods

Cis = None

linking coefficient (real)

id = None

an ID=0 is applicable to the global subcase, ID=1 only subcase 1

independentLabels = None

defines the independent variable name (string)

label = None

defines the dependent variable name (string)

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AELINK object pointer
Returns fields:the fields that define the card
type = u'AELINK'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.AELIST(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines a list of aerodynamic elements to undergo the motion prescribed with the AESURF Bulk Data entry for static aeroelasticity.

AELIST SID E1 E2 E3 E4 E5 E6 E7
  E8 etc.            
AELIST 75 1001 THRU 1075 1101 THRU 1109 1201
  1202              

Methods

clean_ids()[source]
eids = None

List of aerodynamic boxes generated by CAERO1 entries to define a surface. (Integer > 0 or ‘THRU’)

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AELIST object pointer
Returns fields:the fields that define the card
sid = None

Set identification number. (Integer > 0)

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines a general aerodynamic trim variable degree-of-freedom (aerodynamic extra point). The forces associated with this controller will be derived from AEDW, AEFORCE and AEPRESS input data.

AEPARM ID LABEL UNITS
AEPARM 5 THRUST LBS

Methods

_field_map = {1: u'id', 2: u'label', 3: u'units'}
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AEPARM object pointer
Returns fields:the fields that define the card
type = u'AEPARM'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.AERO(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.aero.Aero

Gives basic aerodynamic parameters for unsteady aerodynamics.

1 2 3 4 5 6 7
AERO ACSID VELOCITY REFC RHOREF SYMXZ SYMXY
AERO 3 1.3+4
1.-5 1 -1

Methods

_field_map = {1: u'acsid', 2: u'velocity', 3: u'cRef', 4: u'rhoRef', 5: u'symXZ', 6: u'symXY'}
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AERO object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the AERO object pointer
Returns fields:the fields that define the card
type = u'AERO'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.AEROS(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.aero.Aero

Gives basic aerodynamic parameters for unsteady aerodynamics.

1 2 3 4 5 6 7 8
AEROS ACSID RCSID REFC REFB REFS SYMXZ SYMXY
AEROS 10 20
1  

Methods

_field_map = {1: u'acsid', 2: u'rcsid', 3: u'cRef', 4: u'bRef', 5: u'Sref', 6: u'symXZ', 7: u'symXY'}
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AEROS object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the AEROS object pointer
Returns fields:the fields that define the card
type = u'AEROS'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.AESTAT(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Specifies rigid body motions to be used as trim variables in static aeroelasticity.

AESTAT ID LABEL
AESTAT 5001 ANGLEA

Methods

_field_map = {1: u'id', 2: u'label'}
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AESTAT object pointer
Returns fields:the fields that define the card
type = u'AESTAT'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.AESURF(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Specifies an aerodynamic control surface as a member of the set of aerodynamic extra points. The forces associated with this controller will be derived from rigid rotation of the aerodynamic model about the hinge line(s) and from AEDW, AEFORCE and AEPRESS input data. The mass properties of the control surface can be specified using an AESURFS entry.

AESURF ID LABEL CID1 ALID1 CID2 ALID2 EFF LDW
  CREFC CREFS PLLIM PULIM HMLLIM HMULIM TQLLIM TQULIM

Methods

_field_map = {1: u'aesid', 2: u'label', 3: u'cid1', 4: u'alid1', 5: u'cid2', 6: u'alid2', 7: u'eff', 8: u'ldw', 9: u'crefc', 10: u'crefs', 11: u'pllim', 12: u'pulim', 13: u'hmllim', 14: u'hmulim', 15: u'tqllim', u'16': u'tqulim'}
aesid = None

Controller identification number

alid1 = None

Identification of an AELIST Bulk Data entry that identifies all aerodynamic elements that make up the control surface component. (Integer > 0)

cid1 = None

Identification number of a rectangular coordinate system with a y-axis that defines the hinge line of the control surface component.

crefc = None

Reference chord length for the control surface. (Real>0.0; Default=1.0)

crefs = None

Reference surface area for the control surface. (Real>0.0; Default=1.0)

eff = None

Control surface effectiveness. See Remark 4. (Real != 0.0; Default=1.0)

hmllim = None

Lower and upper hinge moment limits for the control surface in force-length units. (Real, Default = no limit) -> 1e8

label = None

Controller name.

ldw = None

Linear downwash flag. See Remark 2. (Character, one of LDW or NOLDW; Default=LDW).

pllim = None

Lower and upper deflection limits for the control surface in radians. (Real, Default = +/- pi/2)

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AESURF object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the AESURF object pointer
Returns fields:the fields that define the card
tqllim = None

Set identification numbers of TABLEDi entries that provide the lower and upper deflection limits for the control surface as a function of the dynamic pressure. (Integer>0, Default = no limit)

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Optional specification of the structural nodes associated with an aerodynamic control surface that has been defined on an AESURF entry. The mass associated with these structural nodes define the control surface moment(s) of inertia about the hinge line(s). Specifies rigid body motions to be used as trim variables in static aeroelasticity.

1 2 3 4 5 6 7
AESURFS ID LABEL   LIST1   LIST2
AESURFS 6001 ELEV   6002   6003

Methods

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the AESURFS object pointer
Returns fields:the fields that define the card
type = u'AESURFS'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.Aero(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard, pyNastran.bdf.deprecated.AeroDeprecated

Base class for AERO and AEROS cards.

Methods

is_anti_symmetric_xy()[source]
is_anti_symmetric_xz()[source]
is_symmetric_xy()[source]
is_symmetric_xz()[source]
set_ground_effect(enable)[source]
class pyNastran.bdf.cards.aero.CAERO1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard, pyNastran.bdf.deprecated.CAERO1Deprecated

Defines an aerodynamic macro element (panel) in terms of two leading edge locations and side chords. This is used for Doublet-Lattice theory for subsonic aerodynamics and the ZONA51 theory for supersonic aerodynamics.

1 2 3 4 5 6 7 8 9
CAERO1 EID PID CP NSPAN NCHORD LSPAN LCHORD IGID
  X1 Y1 Z1 X12 X4 Y4 Z4 X43

Methods

1
| \
|   \
|     \
|      4
|      |
|      |
2------3

Methods

Cp()[source]
Pid()[source]
_field_map = {16: u'x43', 1: u'sid', 2: u'pid', 3: u'cp', 4: u'nspan', 5: u'nchord', 6: u'lspan', 7: u'lchord', 8: u'igid', 12: u'x12'}
_get_field_helper(n)[source]

Gets complicated parameters on the CAERO1 card

Parameters:
  • self – the CAERO1 object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
_update_field_helper(n, value)[source]

Updates complicated parameters on the CAERO1 card

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

Coordinate system for locating point 1.

cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the CAERO1 object pointer
  • model (BDF()) – the BDF object
eid = None

Element identification number

get_LChord()[source]
get_LSpan()[source]
get_npanel_points_elements()[source]
get_points()[source]
panel_points_elements()[source]
pid = None

Property identification number of a PAERO2 entry.

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the CAERO1 object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the CAERO1 object pointer
Returns fields:the fields that define the card
set_points(points)[source]
type = u'CAERO1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.CAERO2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard, pyNastran.bdf.deprecated.CAERO2Deprecated

Aerodynamic Body Connection Defines aerodynamic slender body and interference elements for Doublet-Lattice aerodynamics.

Methods

1           |             |               |      3
|      |
|      |
2------4

Methods

Cp()[source]
Lsb()[source]
Pid()[source]
_field_map = {1: u'sid', 2: u'pid', 3: u'cp', 4: u'nsb', 5: u'lsb', 6: u'nint', 7: u'lint', 8: u'igid', 12: u'x12'}
_get_field_helper(n)[source]

Gets complicated parameters on the CAERO2 card

Parameters:
  • self – the CAERO2 object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
_update_field_helper(n, value)[source]

Updates complicated parameters on the CAERO2 card

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

Coordinate system for locating point 1.

cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the CAERO2 object pointer
  • model (BDF()) – the BDF object
eid = None

Element identification number

get_points()[source]
igid = None

Interference group identification. Aerodynamic elements with different IGIDs are uncoupled. (Integer >= 0)

lint = None

ID of an AEFACT data entry containing a list of division points for interference elements; used only if NINT is zero or blank. (Integer > 0)

lsb = None

ID of an AEFACT Bulk Data entry for slender body division points; used only if NSB is zero or blank. (Integer >= 0)

nint = None

Number of interference elements. If NINT > 0, then NINT equal divisions are assumed; if zero or blank, specify a list of divisions in LINT. (Integer >= 0)

nsb = None

Number of slender body elements. If NSB > 0, then NSB equal divisions are assumed; if zero or blank, specify a list of divisions in LSB. (Integer >= 0)

p1 = None

Location of point 1 in coordinate system CP

pid = None

Property identification number of a PAERO2 entry.

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the CAERO2 object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the CAERO2 object pointer
Returns fields:the fields that define the card
set_points(points)[source]
type = u'CAERO2'
write_card(size=8, is_double=False)[source]
x12 = None

Length of body in the x-direction of the aerodynamic coordinate system. (Real > 0)

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

Cp()[source]
Pid()[source]
cp = None

Coordinate system for locating point 1.

cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the CAERO3 object pointer
  • model (BDF()) – the BDF object
eid = None

Element identification number

pid = None

Property identification number of a PAERO3 entry.

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the CAERO3 object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the CAERO3 object pointer
Returns fields:the fields that define the card
type = u'CAERO3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.CAERO4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

Cp()[source]
Pid()[source]
cp = None

Coordinate system for locating point 1.

cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the CAERO4 object pointer
  • model (BDF()) – the BDF object
eid = None

Element identification number

get_points()[source]
pid = None

Property identification number of a PAERO4 entry.

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the CAERO4 object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the CAERO4 object pointer
Returns fields:the fields that define the card
type = u'CAERO4'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.CAERO5(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

Cp()[source]
Pid()[source]
c1_c2(mach)[source]
cp = None

Coordinate system for locating point 1.

cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the CAERO3 object pointer
  • model (BDF()) – the BDF object
eid = None

Element identification number

get_npanel_points_elements()[source]
get_points()[source]
panel_points_elements()[source]
pid = None

Property identification number of a PAERO5 entry.

repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the CAERO4 object pointer
Returns fields:the fields that define the card
type = u'CAERO5'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.CSSCHD(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines a scheduled control surface deflection as a function of Mach number and angle of attack.

1 2 3 4 5 6
CSSCHD SlD AESID LALPHA LMACH LSCHD

Methods

AESid()[source]
LAlpha()[source]
LMach()[source]
LSchd()[source]
_field_map = {1: u'sid', 2: u'aesid', 3: u'lAlpha', 4: u'lMach', 5: u'lSchd'}
cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the CSSCHD object pointer
  • model (BDF()) – the BDF object
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the CSSCHD object pointer
Returns fields:the fields that define the card
type = u'ASSCHD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.FLFACT(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

1 2 3 4 5 6 7 8 9
FLFACT SID F1 F2 F3 F4 F5 F6 F7
  F8 F9 etc.          
1 2 3 4 5
FLFACT 97 .3 .7 3.5

# delta quantity approach

1 2 3 4 5 6 7
FLFACT SID F1 THRU FNF NF FMID
FLFACT 201 0.200 THRU 0.100 11 0.1333

Methods

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the FLFACT object pointer
Returns fields:the fields that define the card
type = u'FLFACT'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.FLUTTER(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines data needed to perform flutter analysis.

1 2 3 4 5 6 7 8 9
FLUTTER SID METHOD DENS MACH RFREQ IMETH NVALUE/OMAX EPS
FLUTTER 19 K 119 219 319 S 5 1.-4

Methods

_field_map = {1: u'sid', 2: u'method', 3: u'density', 4: u'mach', 5: u'rfreq_vel', 6: u'imethod', 8: u'epsilon'}
_get_field_helper(n)[source]

Gets complicated parameters on the FLUTTER card

Parameters:
  • self – the FLUTTER object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
_get_raw_nvalue_omax()[source]
_repr_nvalue_omax()[source]
_update_field_helper(n, value)[source]

Updates complicated parameters on the FLUTTER card

Parameters:
  • self – the FLUTTER object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the FLUTTER object pointer
  • model (BDF()) – the BDF object
get_density()[source]
get_mach()[source]
get_rfreq_vel()[source]
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the FLUTTER object pointer
Returns fields:the fields that define the card
type = u'FLUTTER'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.GUST(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines a stationary vertical gust for use in aeroelastic response analysis.

1 2 3 4 5 6
GUST SID DLOAD WG X0 V
GUST 133 61 1.0
1.+4

Methods

_field_map = {1: u'sid', 2: u'dload', 3: u'wg', 4: u'x0', 5: u'V'}
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the GUST object pointer
Returns fields:the fields that define the card
type = u'GUST'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.MKAERO1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Provides a table of Mach numbers (m) and reduced frequencies (k) for aerodynamic matrix calculation.

1 2 3 4 5 6 7 8 9
MKAERO1 m1 m2 m3 m4 m5 m6 m7 m8
  k1 k2 k3 k4 k5 k6 k7 k8

Methods

addFreqs(mkaero)[source]
getMach_rFreqs()[source]
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the MKAERO1 object pointer
Returns fields:the fields that define the card
type = u'MKAERO1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.MKAERO2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Provides a table of Mach numbers (m) and reduced frequencies (k) for aerodynamic matrix calculation.

1 2 3 4 5 6 7 8 9
MKAERO2 m1 k1 m2 k2 m3 k3 m4 k4

Methods

addFreqs(mkaero)[source]
getMach_rFreqs()[source]
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the MKAERO2 object pointer
Returns fields:the fields that define the card
type = u'MKAERO2'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.PAERO1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines associated bodies for the panels in the Doublet-Lattice method.

PAERO1 PID B1 B2 B3 B4 B5 B6

Methods

Bodies()[source]
_field_map = {1: u'pid'}
_get_field_helper(n)[source]

Gets complicated parameters on the PAERO1 card

Parameters:
  • self – the PAERO1 object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
_update_field_helper(n, value)[source]

Updates complicated parameters on the PAERO1 card

Parameters:
  • self – the PAERO1 object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the PAERO1 object pointer
Returns fields:the fields that define the card
type = u'PAERO1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.PAERO2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines the cross-sectional properties of aerodynamic bodies.

PAERO2 PID ORIENT WIDTH AR LRSB LRIB LTH1 LTH2
THI1 THN1 THI2 THN2 THI3 THN3      

Methods

AR = None

Aspect ratio of the interference tube (height/width). float>0.

_field_map = {1: u'pid', 2: u'orient', 3: u'width', 4: u'AR', 5: u'lrsb', 6: u'lrib', 7: u'lth1', 8: u'lth2'}
_get_field_helper(n)[source]

Gets complicated parameters on the PAERO2 card

Parameters:
  • self – the PAERO2 object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
_update_field_helper(n, value)[source]

Updates complicated parameters on the PAERO2 card

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

Identification number of an AEFACT entry containing a list of slender body half-widths at the end points of the interference elements. If blank, the value of WIDTH will be used. (Integer > 0 or blank)

lrsb = None

Identification number of an AEFACT entry containing a list of slender body half-widths at the end points of the slender body elements. If blank, the value of WIDTH will be used. (Integer > 0 or blank)

lth1 = None

dentification number of AEFACT entries for defining ? arrays for interference calculations. (Integer >= 0)

orient = None

Orientation flag. Type of motion allowed for bodies. Refers to the aerodynamic coordinate system of ACSID. See AERO entry. (Character = ‘Z’, ‘Y’, or ‘ZY’)

pid = None

Property identification number. (Integer > 0)

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the PAERO2 object pointer
Returns fields:the fields that define the card
type = u'PAERO2'
width = None

Reference half-width of body and the width of the constant width interference tube. (Real > 0.0)

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines the number of Mach boxes in the flow direction and the location of cranks and control surfaces of a Mach box lifting surface.

Methods

_field_map = {1: u'pid', 2: u'orient', 3: u'width', 4: u'AR'}
_get_field_helper(n)[source]

Gets complicated parameters on the PAERO3 card

Parameters:
  • self – the PAERO3 object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
_update_field_helper(n, value)[source]

Updates complicated parameters on the PAERO3 card

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

Property identification number. (Integer > 0)

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the PAERO3 object pointer
Returns fields:the fields that define the card
type = u'PAERO3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.PAERO5(card=None, data=None)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

PAERO5 PID NALPHA LALPHA NXIS LXIS NTAUS LTAUS
  CAOC1 CAOC2 CAOC3 CAOC4 CAOC5    
PAERO5 7001 1 702 1 701 1 700
0.0 | 0.0 | 5.25 | 3.99375 | 0.0 | | |

Methods

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

Bases: pyNastran.bdf.cards.aero.Spline

Surface Spline Methods Defines a surface spline for interpolating motion and/or forces for aeroelastic problems on aerodynamic geometries defined by regular arrays of aerodynamic points.

SPLINE1 EID CAERO BOX1 BOX2 SETG DZ METH USAGE
NELEM MELEM              
SPLINE1 3 111 115 122 14
   

Methods

CAero()[source]
Set()[source]
_field_map = {1: u'eid', 2: u'caero', 3: u'box1', 4: u'box2', 5: u'setg', 6: u'dz', 7: u'method', 8: u'usage', 9: u'nelements', 10: u'melements'}
cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the SPLINE1 object pointer
  • model (BDF()) – the BDF object
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the SPLINE1 object pointer
Returns fields:the fields that define the card
repr_fields()[source]
type = u'SPLINE1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.SPLINE2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.aero.Spline

Linear Spline Defines a surface spline for interpolating motion and/or forces for aeroelastic problems on aerodynamic geometries defined by regular arrays of aerodynamic points.

SPLINE2 EID CAERO ID1 ID2 SETG DZ DTOR CID
  DTHX DTHY None USAGE        
SPLINE2 5 8 12 24 60
1.0 3
 
             

Methods

CAero()[source]
Cid()[source]
Set()[source]
_field_map = {1: u'eid', 2: u'caero', 3: u'id1', 4: u'id2', 5: u'setg', 6: u'dz', 7: u'dtor', 8: u'cid', 9: u'dthx', 10: u'dthy'}
cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the SPLINE2 object pointer
  • model (BDF()) – the BDF object
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the SPLINE2 object pointer
Returns fields:the fields that define the card
repr_fields()[source]
type = u'SPLINE2'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.SPLINE4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.aero.Spline

Surface Spline Methods Defines a curved surface spline for interpolating motion and/or forces for aeroelastic problems on general aerodynamic geometries using either the Infinite Plate, Thin Plate or Finite Plate splining method.

SPLINE4 EID CAERO AELIST SETG DZ METH USAGE
NELEM MELEM              
SPLINE4 3 111 115 14
IPS  

Methods

AEList()[source]
CAero()[source]
Set()[source]
_field_map = {1: u'eid', 2: u'caero', 3: u'aelist', 5: u'setg', 6: u'dz', 7: u'method', 8: u'usage', 9: u'nelements', 10: u'melements'}
cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the SPLINE4 object pointer
  • model (BDF()) – the BDF object
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the SPLINE4 object pointer
Returns fields:the fields that define the card
repr_fields()[source]
type = u'SPLINE4'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.SPLINE5(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.aero.Spline

Linear Spline Defines a 1D beam spline for interpolating motion and/or forces for aeroelastic problems on aerodynamic geometries defined by irregular arrays of aerodynamic points. The interpolating beam supports axial rotation and bending in the yz-plane.

SPLINE5 EID CAERO AELIST SETG DZ DTOR CID
  DTHX DTHY USAGE        

Methods

AEList()[source]
CAero()[source]
Cid()[source]
Set()[source]
_field_map = {1: u'eid', 2: u'caero', 3: u'aelist', 5: u'setg', 6: u'dz', 7: u'dtor', 8: u'cid', 9: u'thx', 10: u'thy', 12: u'usage'}
cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the SPLINE5 object pointer
  • model (BDF()) – the BDF object
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the SPLINE5 object pointer
Returns fields:the fields that define the card
repr_fields()[source]
type = u'SPLINE5'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.aero.Spline(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

_field_map = {8: u'aeqr', 1: u'sid', 2: u'mach', 3: u'q'}
_get_field_helper(n)[source]

Gets complicated parameters on the TRIM card

Parameters:
  • self – the TRIM object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
_update_field_helper(n, value)[source]

Updates complicated parameters on the TRIM card

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

Flag to request a rigid trim analysis (Real > 0.0 and < 1.0; Default = 1.0. A value of 0.0 provides a rigid trim analysis, not supported

labels = None

The label identifying aerodynamic trim variables defined on an AESTAT or AESURF entry.

mach = None

Mach number. (Real > 0.0 and != 1.0)

q = None

Dynamic pressure. (Real > 0.0)

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the TRIM object pointer
Returns fields:the fields that define the card
sid = None

Trim set identification number. (Integer > 0)

type = u'TRIM'
uxs = None

The magnitude of the aerodynamic extra point degree-of-freedom. (Real)

write_card(size=8, is_double=False)[source]
pyNastran.bdf.cards.aero.points_elements_from_quad_points(p1, p2, p3, p4, x, y)[source]
baseCard Module
bdf_sets Module

Inheritance diagram of pyNastran.bdf.cards.bdf_sets

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

Bases: pyNastran.bdf.cards.bdf_sets.Set

Generic Class ASET, BSET, CSET, QSET cards inherit from.

Defines degrees-of-freedom in the analysis set (A-set)

ASET ID1 C1 ID2 C2 ID3 C3 ID4 C4
ASET 16 2 23 3516 1 4    

Methods

IDs = None

Identifiers of grids points. (Integer > 0)

raw_fields()[source]

gets the “raw” card without any processing as a list for printing

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

Bases: pyNastran.bdf.cards.bdf_sets.Set

Generic Class ASET1, BSET1, QSET1 cards inherit from.

Defines degrees-of-freedom in the analysis set (a-set).

+–=—-+—–+—–+——+——+—–+—–+—–+—–+ | ASET1 | C | ID1 | ID2 | ID3 | ID4 | ID5 | ID6 | ID7 | +——-+—–+—–+——+——+—–+—–+—–+—–+ | | ID8 | ID9 | | | | | | | +——-+—–+—–+——+——+—–+—–+—–+—–+ | ASET1 | C | ID1 | THRU | ID2 | | | | | +——-+—–+—–+——+——+—–+—–+—–+—–+

Methods

IDs = None

Identifiers of grids points. (Integer > 0)

components = None

Component number. (Integer zero or blank for scalar points or any unique combination of the Integers 1 through 6 for grid points with no embedded blanks.)

raw_fields()[source]

gets the “raw” card without any processing as a list for printing

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

Bases: pyNastran.bdf.cards.bdf_sets.ABCQSet

Defines degrees-of-freedom in the analysis set (A-set).

ASET ID1 C1 ID2 C2 ID3 C3 ID4 C4
ASET 16 2 23 3516 1 4    

Methods

type = u'ASET'
class pyNastran.bdf.cards.bdf_sets.ASET1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.ABQSet1

Defines degrees-of-freedom in the analysis set (a-set)

ASET1 C ID1 ID2 ID3 ID4 ID5 ID6 ID7
  ID8 ID9            
ASET1 C ID1 THRU ID2        

Methods

type = u'ASET1'
class pyNastran.bdf.cards.bdf_sets.BSET(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.ABCQSet

Defines analysis set (a-set) degrees-of-freedom to be fixed (b-set) during generalized dynamic reduction or component mode synthesis calculations.

BSET ID1 C1 ID2 C2 ID3 C3 ID4 C4
BSET 16 2 23 3516 1 4    

Methods

type = u'BSET'
class pyNastran.bdf.cards.bdf_sets.BSET1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.ABQSet1

Methods

type = u'BSET1'
class pyNastran.bdf.cards.bdf_sets.CSET(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.ABCQSet

Defines analysis set (a-set) degrees-of-freedom to be fixed (b-set) during generalized dynamic reduction or component mode synthesis calculations.

CSET ID1 C1 ID2 C2 ID3 C3 ID4 C4
CSET 16 2 23 3516 1 4    

Methods

type = u'CSET'
class pyNastran.bdf.cards.bdf_sets.CSET1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.Set

Defines analysis set (a-set) degrees-of-freedom to be fixed (b-set) during generalized dynamic reduction or component mode synthesis calculations.

CSET1 C ID1 ID2 ID3 ID4 ID5 ID6 ID7
  ID8 ID9            
CSET1 C ID1 THRU ID2        
CSET1 ,, ALL            

Methods

IDs = None

Identifiers of grids points. (Integer > 0)

raw_fields()[source]

gets the “raw” card without any processing as a list for printing

type = u'CSET1'
class pyNastran.bdf.cards.bdf_sets.QSET(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.ABCQSet

Defines generalized degrees-of-freedom (q-set) to be used for dynamic reduction or component mode synthesis.

QSET ID1 C1 ID2 C2 ID3 C3 ID4 C4
QSET 16 2 23 3516 1 4    

Methods

type = u'QSET'
class pyNastran.bdf.cards.bdf_sets.QSET1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.ABQSet1

Defines generalized degrees-of-freedom (q-set) to be used for dynamic reduction or component mode synthesis.

Methods

type = u'QSET1'
class pyNastran.bdf.cards.bdf_sets.RADSET(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.Set

Specifies which radiation cavities are to be included for radiation enclosure analysis.

RADSET ICAVITY1 ICAVITY2 ICAVITY3 ICAVITY4 ICAVITY5 ICAVITY6 ICAVITY7
  ICAVITY8 ICAVITY9 -etc.-        

Methods

IDs = None

Grid or scalar point identification number. (0 < Integer < 1000000; G1 < G2)

addRadsetObject(radset)[source]
raw_fields()[source]

gets the “raw” card without any processing as a list for printing

type = u'RADSET'
class pyNastran.bdf.cards.bdf_sets.SEBSET(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.Set

Defines boundary degrees-of-freedom to be fixed (b-set) during generalized dynamic reduction or component mode calculations.

SEBSET SEID ID1 C1 ID2 C2 ID3 C3
SEBSET C ID1 THRU ID2      

Methods

components = None

Identifiers of grids points. (Integer > 0)

raw_fields()[source]

gets the “raw” card without any processing as a list for printing

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

Bases: pyNastran.bdf.cards.bdf_sets.Set

Defines boundary degrees-of-freedom to be fixed (b-set) during generalized dynamic reduction or component mode calculations.

SEBSET1 C ID1 ID2 ID3 ID4 ID5 ID6 ID7
  ID8 ID9            
SEBSET1 C ID1 ‘THRU’ ID2        

Methods

IDs = None

Identifiers of grids points. (Integer > 0)

raw_fields()[source]

gets the “raw” card without any processing as a list for printing

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

Bases: pyNastran.bdf.cards.bdf_sets.SetSuper

Used with the CSUPER entry to define the correspondence of the exterior grid points between an identical or mirror-image superelement and its primary superelement.

Methods

IDs = None

Exterior grid point identification numbers for the primary superelement. (Integer > 0)

psid = None

Identification number for the primary superelement. (Integer >= 0).

raw_fields()[source]

gets the “raw” card without any processing as a list for printing

ssid = None

Identification number for secondary superelement. (Integer >= 0).

type = u'SEQSEP'
class pyNastran.bdf.cards.bdf_sets.SEQSET1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.Set

Defines the generalized degrees-of-freedom of the superelement to be used in generalized dynamic reduction or component mode synthesis.

SEQSET1 C ID1 ID2 ID3 ID4 ID5 ID6 ID7
  ID8 ID9            
SEQSET1 C ID1 ‘THRU’ ID2        

Methods

IDs = None

Identifiers of grids points. (Integer > 0)

raw_fields()[source]

gets the “raw” card without any processing as a list for printing

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

Bases: pyNastran.bdf.cards.bdf_sets.SetSuper

Defines interior grid points for a superelement.

Methods

IDs = None

Grid or scalar point identification number. (0 < Integer < 1000000; G1 < G2)

add_SESET_Object(seset)[source]
raw_fields()[source]
type = u'SESET'
class pyNastran.bdf.cards.bdf_sets.SET1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.Set

Defines a list of structural grid points or element identification numbers.

SET1 SID ID1 ID2 ID3 ID4 ID5 ID6 ID7
  ID8 -etc.-            
SET1 3 31 62 93 124 16 17 18
  19              
SET1 6 29 32 THRU 50 61 THRU 70
  17 57            

Methods

IDs = None

List of structural grid point or element identification numbers. (Integer > 0 or ‘THRU’; for the ‘THRU’ option, ID1 < ID2 or ‘SKIN’; in field 3)

IsSkin()[source]
add_set(set1)[source]
raw_fields()[source]
sid = None

Unique identification number. (Integer > 0)

symmetric_difference(set1)[source]
type = u'SET1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.bdf_sets.SET3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_sets.Set

Defines a list of grids, elements or points.

SET3 SID DES ID1 ID2 ID3 ID4 ID5 ID6
  ID7 ID8 etc          

Example +——+—–+——-+—–+—-+ | SET3 | 1 | POINT | 11 | 12 | +——+—–+——-+—–+—-+

Methods

IDs = None

Identifiers of grids points, elements, points or properties. (Integer > 0)

IsElement()[source]
IsGrid()[source]
IsPoint()[source]
IsProperty()[source]
desc = None

Set description (Character). Valid options are ‘GRID’, ‘ELEM’, ‘POINT’ and ‘PROP’.

raw_fields()[source]

Gets the “raw” card without any processing as a list for printing

sid = None

Unique identification number. (Integer > 0)

symmetric_difference(set1)[source]
type = u'SET3'
class pyNastran.bdf.cards.bdf_sets.Set(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Generic Class all SETx cards inherit from

Methods

IDs = None

list of IDs in the SETx

SetIDs()[source]

gets the IDs of the SETx

cleanIDs()[source]

eliminates duplicate IDs from self.IDs and sorts self.IDs

repr_fields()[source]
sid = None

Unique identification number. (Integer > 0)

write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.bdf_sets.SetSuper(card, data)[source]

Bases: pyNastran.bdf.cards.bdf_sets.Set

Generic Class all Superelement SETx cards inherit from.

Methods

IDs = None

list of IDs in the SESETx

seid = None

Superelement identification number. Must be a primary superelement. (Integer >= 0)

bdf_tables Module

Inheritance diagram of pyNastran.bdf.cards.bdf_tables

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

  • Table
  • TABLED1 - Dynamic Table = f(Time, Frequency)
  • TABLED2
  • TABLED3
  • TABLEM1 - Material table = f(Temperature)
  • TABLEM2
  • TABLEM3
  • TABLEM4
  • TABLES1 - Material table = f(Stress)
  • TABLEST
  • RandomTable * TABRND1
  • TABRNDG
  • TIC

All tables have a self.table parameter that is a TableObj

class pyNastran.bdf.cards.bdf_tables.RandomTable(card, data)[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

type = u'TABLE??'
class pyNastran.bdf.cards.bdf_tables.TABDMP1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABDMP1'
class pyNastran.bdf.cards.bdf_tables.TABLED1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLED1'
class pyNastran.bdf.cards.bdf_tables.TABLED2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLED2'
class pyNastran.bdf.cards.bdf_tables.TABLED3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLED3'
class pyNastran.bdf.cards.bdf_tables.TABLED4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLED4'
class pyNastran.bdf.cards.bdf_tables.TABLEM1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
type = u'TABLEM1'
class pyNastran.bdf.cards.bdf_tables.TABLEM2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLEM2'
class pyNastran.bdf.cards.bdf_tables.TABLEM3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLEM3'
class pyNastran.bdf.cards.bdf_tables.TABLEM4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLEM4'
class pyNastran.bdf.cards.bdf_tables.TABLES1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLES1'
class pyNastran.bdf.cards.bdf_tables.TABLEST(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TABLEST'
class pyNastran.bdf.cards.bdf_tables.TABRND1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.RandomTable

Methods

map_axis(axis)[source]
parse_fields(xy, nrepeated, isData=False)[source]
raw_fields()[source]
repr_fields()[source]
type = u'TABRND1'
class pyNastran.bdf.cards.bdf_tables.TABRNDG(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.RandomTable

Gust Power Spectral Density

Defines the power spectral density (PSD) of a gust for aeroelastic response analysis.

Methods

LU = None

Scale of turbulence divided by velocity (units of time; Real)

Type = None

PSD Type: 1. von Karman; 2. Dryden

WG = None

Root-mean-square gust velocity. (Real)

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

Table identification number. (Integer >0)

type = u'TABRNDG'
class pyNastran.bdf.cards.bdf_tables.TIC(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.bdf_tables.Table

Transient Initial Condition

Methods

Defines values for the initial conditions of variables used in structural transient analysis. Both displacement and velocity values may be specified at independent degrees-of-freedom. This entry may not be used for heat transfer analysis.

Methods

raw_fields()[source]
repr_fields()[source]
type = u'TIC'
class pyNastran.bdf.cards.bdf_tables.Table(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

map_axis(axis)[source]
parse_fields(xy, nrepeated, isData=False)[source]
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.bdf_tables.TableObj(xy, nrepeated, isData=False)[source]

Bases: object

Parameters:
  • self – the Table Object
  • xy – the X/Y data with an ENDT appended
  • nrepeated

    ???

  • isData – did this come from the OP2/BDF (True -> OP2)

Methods

_cleanup_xy(xy, isData=False)[source]

Removes the ENDT field.

Parameters:
  • xy – the xy data as a table with alternating x, y entries
  • isData – did this come from the OP2/BDF (True -> OP2)
_crash_fields(xy, nrepeated, nxy)[source]

Creates the print message if there was an error

Parameters:
  • xy – the xy data as a table with alternating x, y entries
  • nrepeated

    ???

  • nxy

    ???

fields()[source]
constraints Module

Inheritance diagram of pyNastran.bdf.cards.constraints

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

  • Constraint
  • SUPORT
  • SUPORT1
  • SPC
  • SPC1
  • SPCAX
  • SPCD
  • MPC
  • ConstraintADD
  • SPCADD
  • MPCADD

The ConstraintObject contain multiple constraints.

class pyNastran.bdf.cards.constraints.Constraint(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

raw_fields()[source]
class pyNastran.bdf.cards.constraints.ConstraintADD(card, data)[source]

Bases: pyNastran.bdf.cards.constraints.Constraint

Methods

_reprSpcMpcAdd(fields)[source]
class pyNastran.bdf.cards.constraints.ConstraintObject[source]

Bases: object

Methods

Add(ADD_Constraint)[source]

Bad name, but adds an SPCADD or MPCADD

ConstraintID()[source]
_spc(spcID)[source]

could be an spcadd/mpcadd or spc/mpc,spc1,spcd,spcax,suport1

append(constraint)[source]
createConstraintsForID()[source]

This function returns all the constraints with an given constraint ID. For example an MPCADD that references 2 MPCADDs which reference 4 MPCs should return 4 MPCs (or rather the IDs of those MPCs).

Todo

This function should also find unassociated constraints. not really done yet, idea needs to be integrated/separated from cross-referencing. no point in doing it twice

cross_reference(model)[source]
getConstraintIDs()[source]
class pyNastran.bdf.cards.constraints.MPC(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.constraints.Constraint

Methods

conid = None

Set identification number. (Integer > 0)

constraints = None

Component number. (Any one of the Integers 1 through 6 for grid points; blank or zero for scalar points.)

enforced = None

Coefficient. (Real; Default = 0.0 except A1 must be nonzero.)

gids = None

Identification number of grid or scalar point. (Integer > 0)

nodeIDs()[source]
raw_fields()[source]
type = u'MPC'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.constraints.MPCADD(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.constraints.ConstraintADD

Defines a multipoint constraint equation of the form \(\Sigma_j A_j u_j =0\) where \(u_j\) represents degree-of-freedom \(C_j\) at grid or scalar point \(G_j\). mPCADD 2 1 3

Methods

cross_reference(i, node)[source]
raw_fields()[source]
type = u'MPCADD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.constraints.SPC(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.constraints.Constraint

Defines enforced displacement/temperature (static analysis) velocity/acceleration (dynamic analysis).

SPC SID G1 C1 D1 G2 C2 D2
SPC 2 32 3 -2.6 5    

Methods

cross_reference(i, node)[source]
getNodeDOFs(model)[source]
nodeIDs()[source]
raw_fields()[source]
type = u'SPC'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.constraints.SPC1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.constraints.Constraint

SPC1 SID C G1 G2 G3 G4 G5 G6
  G7 G8 G9 -etc.-        
SPC1 3 246 209075 209096 209512 209513 209516  
SPC1 3 2 1 3 10 9 6 5
  2 8            
SPC1 SID C G1 THRU G2
SPC1 313 12456 6 THRU 32

Methods

cross_reference(i, node)[source]
raw_fields()[source]
type = u'SPC1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.constraints.SPCADD(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.constraints.ConstraintADD

Defines a single-point constraint set as a union of single-point constraint sets defined on SPC or SPC1 entries.

SPCADD 2 1 3

Methods

cross_reference(i, node)[source]
organizeConstraints(model)[source]

Figures out magnitudes of the loads to be applied to the various nodes. This includes figuring out scale factors.

raw_fields()[source]
type = u'SPCADD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.constraints.SPCAX(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.constraints.Constraint

Defines a set of single-point constraints or enforced displacements for conical shell coordinates.

SPCAX SID RID HID C D
SPCAX 2 3 4 13 6.0

Methods

c = None

Component identification number. (Any unique combination of the Integers 1 through 6.)

conid = None

Identification number of a single-point constraint set.

cross_reference(i, node)[source]
d = None

Enforced displacement value

hid = None

Harmonic identification number. (Integer >= 0)

raw_fields()[source]
rid = None

Ring identification number. See RINGAX entry.

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

Bases: pyNastran.bdf.cards.constraints.SPC

Defines an enforced displacement value for static analysis and an enforced motion value (displacement, velocity or acceleration) in dynamic analysis.

SPCD SID G1 C1 D1 G2 C2 D2
SPCD 100 32 436 -2.6 5 2 .9

Methods

raw_fields()[source]
type = u'SPCD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.constraints.SUPORT(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.constraints.Constraint

SUPORT  ID1 C1 ID2 C2 ID3 C3 ID4 C4
SUPORT1 SID ID1 C1 ID2 C2 ID3 C3

Methods

raw_fields()[source]
type = u'SUPORT'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.constraints.SUPORT1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.constraints.Constraint

SUPORT1 SID ID1 C1 ID2 C2 ID3 C3
SUPORT1 1 2 23 4 15 5 0

Methods

raw_fields()[source]
type = u'SUPORT1'
write_card(size=8, is_double=False)[source]
contact Module

Inheritance diagram of pyNastran.bdf.cards.contact

  • BCRPARA
  • BCTADD
  • BCTSET
  • BSURF
  • BSURFS
class pyNastran.bdf.cards.contact.BCRPARA(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

1 2 3 4 5 6 7 8 9 10
BCRPARA CRID SURF OFFSET TYPE MGP        

Methods

Type = None

Indicates whether a contact region is a rigid surface if it is used as a target region. See Remarks 3 and 4. (Character = “RIGID” or “FLEX”, Default = “FLEX”). This is not supported for SOL 101.

crid = None

CRID Contact region ID. (Integer > 0)

mgp = None

Master grid point for a target contact region with TYPE=RIGID or when the rigid-target algorithm is used. The master grid point may be used to control the motion of a rigid surface. (Integer > 0,; Default = 0) This is not supported for SOL 101.

offset = None

Offset distance for the contact region. See Remark 2. (Real > 0.0, Default =OFFSET value in BCTPARA entry)

raw_fields()[source]
surf = None

SURF Indicates the contact side. See Remark 1. (Character = “TOP” or “BOT”; Default = “TOP”)

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

1 2 3 4 5 6 7 8 9
BCTADD CSID SI S2 S3 S4 S5 S6 S7
  S8 S9 -etc-          

Remarks: 1. To include several contact sets defined via BCTSET entries in a model,

BCTADD must be used to combine the contact sets. CSID in BCTADD is then selected with the Case Control command BCSET.
  1. Si must be unique and may not be the identification of this or any other BCTADD entry.

Methods

S = None

Identification numbers of contact sets defined via BCTSET entries. (Integer > 0)

csid = None

Contact set identification number. (Integer > 0)

raw_fields()[source]
type = u'BCTADD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.contact.BCTPARA(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

1 2 3 4 5 6 7 8 9
BCTPARA CSID Param1 Value1 Param2 Value2 Param3 Value3  
  Param4 Value4 Param5 Value5 -etc-      

Methods

csid = None

Contact set ID. Parameters defined in this command apply to contact set CSID defined by a BCTSET entry. (Integer > 0)

raw_fields()[source]
type = u'BCTPARA'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.contact.BCTSET(card=None, data=None, comment=u'', sol=101)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

3D Contact Set Definition (SOLs 101, 601 and 701 only) Defines contact pairs of a 3D contact set.

1 2 3 4 5 6 7 8 9
BCTSET CSID SID1 TID1 FRIC1 MIND1 MAXD1    
  SID2 TID2 FRIC2 MIND2 MAXD2      
  -etc-              

Methods

csid = None

CSID Contact set identification number. (Integer > 0)

frictions = None

FRICi Static coefficient of friction for contact pair i. (Real; Default = 0.0)

max_distances = None

MAXDi Maximum search distance for contact. (Real) (Sol 101 only)

min_distances = None

MINDi Minimum search distance for contact. (Real) (Sol 101 only)

raw_fields()[source]
sids = None

SIDi Source region (contactor) identification number for contact pair i. (Integer > 0)

tids = None

TIDi Target region identification number for contact pair i. (Integer > 0)

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

3D Contact Region Definition by Shell Elements (SOLs 101, 601 and 701)

Defines a 3D contact region by shell element IDs.

1 2 3 4 5 6 7 8 9 10 BSURF ID EID1 EID2 EID3 EID4 EID5 EID6 EID7

EID8 EID9 EID10 -etc-

BSURF ID EID1 THRU EID2 BY INC EID8 EID9 EID10 EID11 -etc.- EID8 THRU EID9 BY INC

BSURF 15 5 THRU 21 BY 4 27 30 32 33 35 THRU 44 67 68 70 85 92

Methods

eids = None

Element identification numbers of shell elements. (Integer > 0)

nfields = None

Number (float)

raw_fields()[source]
sid = None

Set identification number. (Unique Integer > 0)

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines a 3D contact region by the faces of the CHEXA, CPENTA or CTETRA elements.

Methods

eids = None

Element identification numbers of solid elements. (Integer > 0)

g1s = None

Identification numbers of 3 corner grid points on the face (triangular or quadrilateral) of the solid element. (Integer > 0)

id = None

Identification number of a contact region. See Remarks 2 and 3. (Integer > 0)

raw_fields()[source]
type = u'BSURFS'
write_card(size=8, is_double=False)[source]
coordinateSystems Module
dmig Module

Inheritance diagram of pyNastran.bdf.cards.dmig

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

evaluate(args)[source]
type = u'DEQATN'
class pyNastran.bdf.cards.dmig.DMI(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.dmig.NastranMatrix

Methods

_add_column(card=None, data=None)[source]
_read_real(card)[source]
form = None

Form of the matrix: 1=Square (not symmetric); 2=Rectangular; 3=Diagonal (m=nRows,n=1); 4=Lower Triangular; 5=Upper Triangular; 6=Symmetric; 8=Identity (m=nRows, n=m)

is_complex()[source]
is_real()[source]
raw_fields()[source]
rename(newName)[source]
tin = None

1-Real, Single Precision; 2=Real,Double Precision; 3=Complex, Single; 4=Complex, Double

tout = None

0-Set by cell precision

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

Bases: pyNastran.bdf.cards.dmig.NastranMatrix

Defines direct input matrices related to grid, extra, and/or scalar points. The matrix is defined by a single header entry and one or more column entries. A column entry is required for each column with nonzero elements.

Methods

type = u'DMIG'
class pyNastran.bdf.cards.dmig.DMIJ(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.dmig.NastranMatrix

Direct Matrix Input at js-Set of the Aerodynamic Mesh Defines direct input matrices related to collation degrees-of-freedom (js-set) of aerodynamic mesh points for CAERO1, CAERO3, CAERO4 and CAERO5 and for the slender body elements of CAERO2. These include W2GJ, FA2J and input pressures and downwashes associated with AEPRESS and AEDW entries. The matrix is described by a single header entry and one or more column entries. A column entry is required for each column with nonzero elements. For entering data for the interference elements of a CAERO2, use DMIJI or DMI.

Methods

type = u'DMIJ'
class pyNastran.bdf.cards.dmig.DMIJI(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.dmig.NastranMatrix

Direct Matrix Input at js-Set of the Interference Body Defines direct input matrices related to collation degrees-of-freedom (js-set) of aerodynamic mesh points for the interference elements of CAERO2. These include W2GJ, FA2J and input pressures and downwashes associated with AEPRESS and AEDW entries. The matrix is described by a single header entry and one or more column entries. A column entry is required for each column with nonzero elements. For entering data for the slender elements of a CAERO2, or a CAERO1, 3, 4 or 5 use DMIJ or DMI.

Methods

type = u'DMIJI'
class pyNastran.bdf.cards.dmig.DMIK(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.dmig.NastranMatrix

Direct Matrix Input at ks-Set of the Aerodynamic Mesh Defines direct input matrices related to physical (displacement) degrees-of-freedom (ks-set) of aerodynamic grid points. These include WKK, WTFACT and input forces associated with AEFORCE entries. The matrix is described by a single header entry and one or more column entries. A column entry is required for each column with nonzero elements.

Methods

type = u'DMIK'
class pyNastran.bdf.cards.dmig.NastranMatrix(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Base class for the DMIG, DMIJ, DMIJI, DMIK matrices

Methods

_add_column(card=None, data=None, comment=u'')[source]
getDType(type_flag)[source]
getMatrix(isSparse=False, applySymmetry=True)[source]
get_matrix(is_sparse=False, apply_symmetry=True)[source]

Builds the Matrix

Parameters:
  • self – the object pointer
  • is_sparse – should the matrix be returned as a sparse matrix (default=True). Slower for dense matrices.
  • apply_symmetry – If the matrix is symmetric (ifo=6), returns a symmetric matrix. Supported as there are symmetric matrix routines.
Returns M:

the matrix

Returns rows:

dictionary of keys=rowID, values=(Grid,Component) for the matrix

Returns cols:

dictionary of keys=columnID, values=(Grid,Component) for the matrix

Warning

isSparse WILL fail

ifo = None

4-Lower Triangular; 5=Upper Triangular; 6=Symmetric; 8=Identity (m=nRows, n=m)

isComplex()[source]
isPolar()[source]
isReal()[source]
is_complex()[source]
is_polar()[source]
Used by:
  • DMIG
  • DMIJ
  • DMIJI
  • DMIK
Not used by:
  • DMI
  • DMIAX
  • DMIG, UACCEL
  • DMIGOUT
  • DMIGROT
is_real()[source]
polar = None

Input format of Ai, Bi. (Integer=blank or 0 indicates real, imaginary format; Integer > 0 indicates amplitude, phase format.)

rename(new_name)[source]
tin = None

1-Real, Single Precision; 2=Real,Double Precision; 3=Complex, Single; 4=Complex, Double

tout = None

0-Set by cell precision

write_card(size=8, is_double=False)[source]

Todo

support double precision

write_code_aster()[source]

assume set 1 = MAAX1,MAAX2, etc. and 100/n % on each

pyNastran.bdf.cards.dmig.db(p, pref)[source]

sound pressure in decibels would capitalize it, but you wouldnt be able to call the function...

pyNastran.bdf.cards.dmig.dim(x, y)[source]

Note

used for DEQATN

pyNastran.bdf.cards.dmig.get_matrix(self, is_sparse=False, apply_symmetry=True)[source]

Builds the Matrix

Parameters:
  • self – the object pointer
  • is_sparse – should the matrix be returned as a sparse matrix (default=True). Slower for dense matrices.
  • apply_symmetry – If the matrix is symmetric (ifo=6), returns a symmetric matrix. Supported as there are symmetric matrix routines.
Returns M:

the matrix

Returns rows:

dictionary of keys=rowID, values=(Grid,Component) for the matrix

Returns cols:

dictionary of keys=columnID, values=(Grid,Component) for the matrix

Warning

isSparse WILL fail

pyNastran.bdf.cards.dmig.logx(x, y)[source]

log base x of y .. note:: used for DEQATN

pyNastran.bdf.cards.dmig.mod(x, y)[source]

x%y .. note:: used for DEQATN

pyNastran.bdf.cards.dmig.ssq(*listA)[source]

sum of squares .. note:: used for DEQATN

pyNastran.bdf.cards.dmig.sum2(*listA)[source]

sum of listA .. note:: used for DEQATN

dynamic Module

Inheritance diagram of pyNastran.bdf.cards.dynamic

All dynamic control cards are defined in this file. This includes:

  • FREQ
  • FREQ1
  • FREQ2 (not implemented)
  • FREQ3
  • FREQ4
  • FREQ5 (not implemented)
  • NLPCI
  • NLPARM
  • TSTEP
  • TSTEPNL

All cards are BaseCard objects.

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines a set of frequencies to be used in the solution of frequency response problems.

1 2 3 4 5 6 7 8 9
FREQ SID F1 F2 etc.        

Methods

add_frequencies(freqs)[source]

Combines the frequencies from 1 FREQx object with another. All FREQi entries with the same frequency set identification numbers will be used. Duplicate frequencies will be ignored.

Parameters:
  • self – the object pointer
  • freqs – the frequencies for a FREQx object
add_frequency_object(freq)[source]
Parameters:
  • self – the object pointer
  • freq – a FREQx object

See also

addFrequencies()

cleanFreqs()[source]
getFreqs()[source]
raw_fields()[source]
type = u'FREQ'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.dynamic.FREQ1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.dynamic.FREQ

Defines a set of frequencies to be used in the solution of frequency response problems by specification of a starting frequency, frequency increment, and the number of increments desired.

1 2 3 4 5 6 7 8 9
FREQ1 SID F1 DF NDF        

Note

this card rewrites as a FREQ card

Methods

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

Bases: pyNastran.bdf.cards.dynamic.FREQ

Defines a set of frequencies to be used in the solution of frequency response problems by specification of a starting frequency, final frequency, and the number of logarithmic increments desired.

1 2 3 4 5 6 7 8 9
FREQ2 SID F1 F2 NDF        

Note

this card rewrites as a FREQ card

Methods

type = u'FREQ2'
class pyNastran.bdf.cards.dynamic.FREQ3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.dynamic.FREQ

Methods

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

Bases: pyNastran.bdf.cards.dynamic.FREQ

Defines a set of frequencies used in the solution of modal frequency response problems by specifying the amount of ‘spread’ around each natural frequency and the number of equally spaced excitation frequencies within the spread.

1 2 3 4 5 6 7 8 9
FREQ4 SID F1 F2 FSPD NFM      

Note

this card rewrites as a FREQ card

Todo

not done...

Methods

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

Bases: pyNastran.bdf.cards.dynamic.FREQ

Methods

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines a set of parameters for nonlinear static analysis iteration strategy.

1 2 3 4 5 6 7 8 9
NLPARM ID NINC DT KMETHOD KSTEP MAXITER CONV INTOUT
  ESPU EPSP EPSW MAXDIV MAXQN MAXLS FSTRESS LSTOL
  MAXBIS       MAXR   RTOLB CONV

Methods

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Transient Time Step Defines time step intervals at which a solution will be generated and output in transient analysis.

1 2 3 4 5 6 7 8 9
TSTEP N1 DT1 NO1          
  N2 DT2 NO2          
  etc.              

Methods

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines parametric controls and data for nonlinear transient structural or heat transfer analysis. TSTEPNL is intended for SOLs 129, 159, and 600. Parameters for Nonlinear Transient Analysis.

1 2 3 4 5 6 7 8 9
TSTEPNL ID NDT DT NO METHOD KSTEP MAXITER CONV
  ESPU EPSP EPSW MAXDIV MAXQN MAXLS FSTRESS  
  MAXBIS ADJUST MSTEP RB MAXR UTOL RTOLB  

Methods

method = None

Note

not listed in all QRGs

raw_fields()[source]
repr_fields()[source]
type = u'TSTEPNL'
write_card(size=8, is_double=False)[source]
materials Module

Inheritance diagram of pyNastran.bdf.cards.materials

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

  • CREEP
  • MAT1 (isotropic solid/shell)
  • MAT2 (anisotropic)
  • MAT3 (linear orthotropic)
  • MAT4 (thermal)
  • MAT5 (thermal)
  • MAT8 (orthotropic shell)
  • MAT9 (anisotropic solid)
  • MAT10 (fluid element)
  • MATHP (hyperelastic)

All cards are Material objects.

class pyNastran.bdf.cards.materials.AnisotropicMaterial(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Material

Anisotropic Material Class

Methods

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

Bases: pyNastran.bdf.cards.baseCard.Material

Methods

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

Gets the fields in their simplified form

Parameters:self – the CREEP object pointer
Returns fields:the fields that define the card
type = u'CREEP'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.EQUIV(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.Material

Methods

mid = None

Identification number of a MAT1, MAT2, or MAT9 entry.

raw_fields()[source]
type = u'EQUIV'
class pyNastran.bdf.cards.materials.HyperelasticMaterial(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Material

Hyperelastic Material Class

Methods

class pyNastran.bdf.cards.materials.IsotropicMaterial(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Material

Isotropic Material Class

Methods

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

Bases: pyNastran.bdf.cards.materials.IsotropicMaterial

Defines the material properties for linear isotropic materials.

1 2 3 4 5 6 7 8 9
MAT1 MID E G NU RHO A TREF GE
  ST SC SS MCSID        

Methods

D()[source]
E()[source]
E_stress(stress)[source]
E_temperature(temperature)[source]
G()[source]
Nu()[source]
Rho()[source]
_field_map = {1: u'mid', 2: u'e', 3: u'g', 4: u'nu', 5: u'rho', 6: u'a', 7: u'TRef', 8: u'ge', 9: u'St', 10: u'Sc', 11: u'Ss', 12: u'Mcsid'}
_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the MAT1 object pointer
  • xref (bool) – has this model been cross referenced
_write_calculix(elementSet=u'ELSetDummyMat')[source]
cross_reference(model)[source]
getG_default()[source]
get_density()[source]
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the MAT1 object pointer
Returns fields:the fields that define the card
set_E_G_nu(card)[source]

f[ G = frac{E}{2 (1+nu)} f]

type = u'MAT1'
write_card(size=8, is_double=False)[source]
write_code_aster()[source]
class pyNastran.bdf.cards.materials.MAT10(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.Material

Defines material properties for fluid elements in coupled fluid-structural analysis.

1 2 3 4 5 6 7 8 9
MAT10 MID BULK RHO C GE      

Methods

_field_map = {1: u'mid', 2: u'bulk', 3: u'rho', 4: u'c', 5: u'ge'}
_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the MAT10 object pointer
  • xref (bool) – has this model been cross referenced
getBulkRhoC(card)[source]
\[bulk = c^2 \rho\]
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the MAT10 object pointer
Returns fields:the fields that define the card
type = u'MAT10'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.MAT11(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.Material

Defines the material properties for a 3D orthotropic material for isoparametric solid elements.

1 2 3 4 5 6 7 8 9
MAT11 MID E1 E2 E3 NU12 NU13 NU23 G12
  G13 G23 RHO A1 A2 A3 TREF GE

Methods

_field_map = {1: u'mid', 2: u'e1', 3: u'e2', 4: u'e3', 5: u'nu12', 6: u'nu13', 7: u'nu23', 8: u'g12', 9: u'g13', 10: u'g23', 11: u'rho', 12: u'a1', 13: u'a2', 14: u'a3', 15: u'TRef', 16: u'ge'}
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the MAT11 object pointer
Returns fields:the fields that define the card
type = u'MAT11'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.MAT2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.materials.AnisotropicMaterial

Defines the material properties for linear anisotropic materials for two-dimensional elements.

1 2 3 4 5 6 7 8 9
MAT2 MID G11 G12 G13 G22 G23 G33 RHO
  A1 A2 A3 TREF GE ST SC SS
  MCSID              

Methods

Dplate()[source]

Eq 9.1.6 in Finite Element Method using Matlab

Dsolid()[source]

Eq 9.4.7 in Finite Element Method using Matlab

_field_map = {1: u'mid', 2: u'G11', 3: u'G12', 4: u'G13', 5: u'G22', 6: u'G23', 7: u'G33', 8: u'rho', 9: u'a1', 10: u'a2', 11: u'a3', 12: u'TRef', 13: u'ge', 14: u'St', 15: u'Sc', 16: u'Ss', 17: u'Mcsid'}
_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the MAT2 object pointer
  • xref (bool) – has this model been cross referenced
cross_reference(model)[source]
get_density()[source]
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the MAT2 object pointer
Returns fields:the fields that define the card
type = u'MAT2'
write_calculix()[source]
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.MAT3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.materials.OrthotropicMaterial

Defines the material properties for linear orthotropic materials used by the CTRIAX6 element entry.

1 2 3 4 5 6 7 8 9
MAT3 MID EX ETH EZ NUXTH NUTHZ NUZX RHO
      GZX AX ATH AZ TREF GE

Methods

_field_map = {1: u'mid', 2: u'ex', 3: u'eth', 4: u'ez', 5: u'nuxth', 6: u'nuthz', 7: u'nuzx', 8: u'rho', 11: u'gzx', 12: u'ax', 13: u'ath', 14: u'az', 15: u'TRef', 16: u'ge'}
_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the MAT1 object pointer
  • xref (bool) – has this model been cross referenced
cross_reference(model)[source]
get_density()[source]
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the MAT3 object pointer
Returns fields:the fields that define the card
type = u'MAT3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.MAT4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.materials.ThermalMaterial

Defines the constant or temperature-dependent thermal material properties for conductivity, heat capacity, density, dynamic viscosity, heat generation, reference enthalpy, and latent heat associated with a single-phase change.

1 2 3 4 5 6 7 8 9
MAT4 MID K CP RHO MU H HGEN REFENTH
  TCH TDELTA QLAT          

Methods

_field_map = {1: u'mid', 2: u'k', 3: u'cp', 4: u'rho', 5: u'mu', 6: u'H', 7: u'hgen', 8: u'refEnthalpy', 9: u'tch', 10: u'tdelta', 11: u'qlat'}
cross_reference(model)[source]
get_density()[source]
raw_fields()[source]
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the MAT4 object pointer
Returns fields:the fields that define the card
type = u'MAT4'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.MAT5(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.materials.ThermalMaterial

Defines the thermal material properties for anisotropic materials.

1 2 3 4 5 6 7 8 9
MAT5 MID KXX KXY KXZ KYY KYZ KZZ CP
  RHO HGEN            

Methods

K()[source]

thermal conductivity matrix

_field_map = {1: u'mid', 2: u'kxx', 3: u'kxy', 4: u'kxz', 5: u'kyy', 6: u'kyz', 7: u'kzz'}
cross_reference(model)[source]
get_density()[source]
kxx = None

Thermal conductivity (assumed default=0.0)

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

Gets the fields in their simplified form

Parameters:self – the MAT5 object pointer
Returns fields:the fields that define the card
type = u'MAT5'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.MAT8(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.materials.OrthotropicMaterial

Defines the material property for an orthotropic material for isoparametric shell elements.

1 2 3 4 5 6 7 8 9
MAT8 MID E1 E2 NU12 G12 G1Z G2Z RHO
  A1 A2 TREF Xt Xc Yt Yc S
  GE1 F12 STRN          

Methods

D()[source]

Todo

what about G1z and G2z

E11()[source]
E22()[source]
G12()[source]
Nu12()[source]
_field_map = {1: u'mid', 2: u'e11', 3: u'e22', 4: u'nu12', 5: u'g12', 6: u'g1z', 7: u'g2z', 8: u'rho', 9: u'a1', 10: u'a2', 11: u'TRef', 12: u'Xt', 13: u'Xc', 14: u'Yt', 15: u'Yc', 16: u'S', 17: u'ge', 18: u'F12', 19: u'strn'}
_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the MAT8 object pointer
  • xref (bool) – has this model been cross referenced
cross_reference(model)[source]
e11 = None

Todo

is this the correct default

e22 = None

Todo

is this the correct default

get_density()[source]
nu12 = None

Todo

is this the correct default

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

Gets the fields in their simplified form

Parameters:self – the MAT8 object pointer
Returns fields:the fields that define the card
type = u'MAT8'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.MAT9(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.materials.AnisotropicMaterial

Defines the material properties for linear, temperature-independent, anisotropic materials for solid isoparametric elements (see PSOLID entry description).

1 2 3 4 5 6 7 8 9
MAT9 MID G11 G12 G13 G14 G15 G16 G22
  G23 G24 G25 G26 G33 G34 G35 G36
  G44 G45 G46 G55 G56 G66 RHO A1
  A2 A3 A4 A5 A6 TREF GE  

Methods

D()[source]
_field_map = {1: u'mid'}
_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the MAT9 object pointer
  • xref (bool) – has this model been cross referenced
mid = None

Material ID

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

Gets the fields in their simplified form

Parameters:self – the MAT9 object pointer
Returns fields:the fields that define the card
type = u'MAT9'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.MATHP(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.materials.HyperelasticMaterial

Methods

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

Gets the fields in their simplified form

Parameters:self – the MATHP object pointer
Returns fields:the fields that define the card
type = u'MATHP'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.materials.OrthotropicMaterial(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Material

Orthotropic Material Class

Methods

class pyNastran.bdf.cards.materials.ThermalMaterial(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.Material

Thermal Material Class

Methods

material_deps Module

Inheritance diagram of pyNastran.bdf.cards.material_deps

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

Bases: pyNastran.bdf.cards.material_deps.MaterialDependence

Specifies stress-dependent material properties for use in applications involving nonlinear materials. This entry is used if a MAT1, MAT2 or MAT9 entry is specified with the same MID in a nonlinear solution sequence (SOLs 106 and 129).

Methods

E(strain)[source]

Gets E (Young’s Modulus) for a given strain.

Parameters:
  • self – the object pointer
  • strain – the strain (None -> linear E value)
Returns E:

Young’s Modulus

Hf()[source]
Tid()[source]
Type = None

Type of material nonlinearity. (‘NLELAST’ for nonlinear elastic or ‘PLASTIC’ for elastoplastic.)

Yf()[source]
cross_reference(model)[source]
h = None

Work hardening slope (slope of stress versus plastic strain) in units of stress. For elastic-perfectly plastic cases, H=0.0. For more than a single slope in the plastic range, the stress-strain data must be supplied on a TABLES1 entry referenced by TID, and this field must be blank

hr = None

Hardening Rule, selected by one of the following values (Integer): (1) Isotropic (Default) (2) Kinematic (3) Combined isotropic and kinematic hardening

limit1 = None

Initial yield point

limit2 = None

Internal friction angle, measured in degrees, for the Mohr-Coulomb and Drucker-Prager yield criteria

mid = None

Identification number of a MAT1, MAT2, or MAT9 entry.

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

Identification number of a TABLES1 or TABLEST entry. If H is given, then this field must be blank.

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

Yield function criterion, selected by one of the following values (1) Von Mises (2) Tresca (3) Mohr-Coulomb (4) Drucker-Prager

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

Bases: pyNastran.bdf.cards.material_deps.MaterialDependence

Specifies temperature-dependent material properties on MAT1 entry fields via TABLEMi entries.

1 2 3 4 5 6 7 8 9
MATT1 MID T(E) T(G) T(NU) T(RHO) T(A)   T(GE)
  T(ST) T(SC) T(SS)          

Methods

A_table()[source]
E(temperature)[source]

Gets E (Young’s Modulus) for a given temperature.

Parameters:
  • self – the object pointer
  • temperature – the temperature (None -> linear E value)
Returns E:

Young’s Modulus

E_table()[source]
G_table()[source]
_xref_table(model, key, msg)[source]
cross_reference(model)[source]
ge_table()[source]
nu_table()[source]
raw_fields()[source]
repr_fields()[source]
rho_table()[source]
sc_table()[source]
ss_table()[source]
st_table()[source]
type = u'MATT1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.material_deps.MATT2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.material_deps.MaterialDependence

Specifies temperature-dependent material properties on MAT2 entry fields via TABLEMi entries.

1 2 3 4 5 6 7 8 9
MATT2 MID T(G12) T(G13) T(G13) T(G22) T(G23) T(G33) T(RHO)
  T(A1) T(A2) T(A3)   T(GE) T(ST) T(SC) T(SS)

Methods

A1_table()[source]
A2_table()[source]
A3_table()[source]
G11_table()[source]
G12_table()[source]
G13_table()[source]
G22_table()[source]
G23_table()[source]
G33_table()[source]
_xref_table(model, key, msg)[source]
cross_reference(model)[source]
ge_table()[source]
raw_fields()[source]
repr_fields()[source]
rho_table()[source]
sc_table()[source]
ss_table()[source]
st_table()[source]
type = u'MATT2'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.material_deps.MATT4(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.material_deps.MaterialDependence

Specifies temperature-dependent material properties on MAT2 entry fields via TABLEMi entries.

1 2 3 4 5 6 7 8 9
MATT4 MID T(K) T(CP)   T(H) T(mu) T(HGEN)  

Methods

Cp_table()[source]
H_table()[source]
Hgen_table()[source]
K_table()[source]
_xref_table(model, key, msg)[source]
cross_reference(model)[source]
mu_table()[source]
raw_fields()[source]
repr_fields()[source]
type = u'MATT4'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.material_deps.MATT5(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.material_deps.MaterialDependence

Specifies temperature-dependent material properties on MAT2 entry fields via TABLEMi entries.

1 2 3 4 5 6 7 8 9
MATT5 MID T(Kxx) T(Kxy) T(Kxz) T(Kyy) T(Kyz) T(Kzz) T(CP)
    T(HGEN)            

Methods

Cp_table()[source]
Hgen_table()[source]
Kxx_table()[source]
Kxy_table()[source]
Kxz_table()[source]
Kyy_table()[source]
Kyz_table()[source]
Kzz_table()[source]
_xref_table(model, key, msg)[source]
cross_reference(model)[source]
raw_fields()[source]
repr_fields()[source]
type = u'MATT5'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.material_deps.MATT8(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.material_deps.MaterialDependence

Specifies temperature-dependent material properties on MAT2 entry fields via TABLEMi entries.

1 2 3 4 5 6 7 8 9
MATT8 MID T(E1) T(E2) T(Nu12) T(G12) T(G1z) T(G2z) T(RHO)
  T(A1) T(A2)   T(Xt) T(Yc) T(Yt) T(Yc) T(S)
  T(GE) T(F12)            

Methods

type = u'MATT8'
class pyNastran.bdf.cards.material_deps.MaterialDependence(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

Mid()[source]
_get_table(key)[source]

internal method for accessing tables

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(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.methods.Method

Defines data needed to perform buckling analysis

Methods

L1 = None

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

cross_reference(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()[source]
repr_fields()[source]
sid = None

Set identification number. (Unique Integer > 0)

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

Bases: pyNastran.bdf.cards.methods.Method

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

Methods

C = None

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

E = None

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

G = None

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

cross_reference(model)[source]
loadCLAN(nRows, card)[source]
loadHESS_INV(nRows, card)[source]
method = None

Method of complex eigenvalue extraction

norm = None

Method for normalizing eigenvectors

rawMethod()[source]
raw_fields()[source]
reprMethod()[source]
repr_fields()[source]
sid = None

Set identification number. (Unique Integer > 0)

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

Bases: pyNastran.bdf.cards.methods.Method

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

Methods

alpha1 = None

Coordinates of point in complex plane. (Real)

alpha2 = None

Coordinates of point in complex plane. (Real)

cross_reference(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()[source]
repr_fields()[source]
sid = None

Set identification number. (Unique Integer > 0)

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

Bases: pyNastran.bdf.cards.methods.Method

Defines data needed to perform real eigenvalue analysis

Methods

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)

cross_reference(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.)

ne = None

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

norm = None

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

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

Set identification number. (Unique Integer > 0)

type = u'EIGR'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.methods.EIGRL(card=None, data=None, sol=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.methods.Method

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

Methods

cross_reference(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()[source]
repr_fields()[source]
shfscl = None

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

sid = None

Set identification number. (Unique Integer > 0)

type = u'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)

write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.methods.Method(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Generic class for all methods. Part of self.methods

Methods

nodes Module

Inheritance diagram of pyNastran.bdf.cards.nodes

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

Bases: pyNastran.bdf.cards.nodes.Node

Defines default options for fields 3, 7, 8, and 9 of all GRID entries.

1 2 3 4 5 6 7 8 9
GRDSET   CP       CD PS SEID

Methods

Creates the GRDSET card

Parameters:
  • self – the GRDSET object pointer
  • card (BDFCard) – a BDFCard object
  • data (LIST) – a list with the GRDSET fields defined in OP2 format
  • comment (string) – a comment for the card

Methods

Cd()[source]

Gets the output coordinate system

Parameters:self – the GRDSET object pointer
Returns cd:the output coordinate system
Cp()[source]

Gets the analysis coordinate system

Parameters:self – the GRDSET object pointer
Returns cp:the analysis coordinate system
Ps()[source]

Gets the GRID-based SPC

Parameters:self – the GRID object pointer
Returns ps:the GRID-based SPC
SEid()[source]

Gets the Superelement ID

Parameters:self – the GRDSET object pointer
Returns seid:the Superelement ID
_field_map = {8: u'seid', 1: u'nid', 2: u'cp', 6: u'cd', 7: u'ps'}

allows the get_field method and update_field methods to be used

_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the GRDSET object pointer
  • xref (bool) – has this model been cross referenced
cd = None

Analysis coordinate system

cp = None

Output Coordinate System

cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the SPOINT object pointer
  • model (BDF) – the BDF object
ps = None

Default SPC constraint on undefined nodes

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the GRDSET object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the GRDSET object pointer
Returns fields:the fields that define the card
seid = None

Superelement ID

type = u'GRDSET'
write_card(f, size, is_double)[source]

The writer method used by BDF.write_card

Parameters:
  • self – the SPOINT object pointer
  • size (int) – the size of the card (8/16)
class pyNastran.bdf.cards.nodes.GRID(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.nodes.Node, pyNastran.bdf.deprecated.GridDeprecated

1 2 3 4 5 6 7 8 9
GRID NID CP X1 X2 X3 CD PS SEID

Methods

Creates the GRID card

Parameters:
  • self – the GRID object pointer
  • card (BDFCard) – a BDFCard object
  • data (LIST) – a list with the GRID fields defined in OP2 format
  • comment (string) – a comment for the card

Methods

Cd()[source]

Gets the output coordinate system

Parameters:self – the GRID object pointer
Returns cd:the output coordinate system
Cp()[source]

Gets the analysis coordinate system

Parameters:self – the GRID object pointer
Returns cp:the analysis coordinate system
Nid()[source]

Gets the GRID ID

Parameters:self – the GRID object pointer
Returns nid:node ID
Ps()[source]

Gets the GRID-based SPC

Parameters:self – the GRID object pointer
Returns ps:the GRID-based SPC
SEid()[source]

Gets the Superelement ID

Parameters:self – the GRID object pointer
Returns seid:the Superelement ID
_field_map = {8: u'seid', 1: u'nid', 2: u'cp', 6: u'cd', 7: u'ps'}

allows the get_field method and update_field methods to be used

_get_field_helper(n)[source]

Gets 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
_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
_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the GRID object pointer
  • xref (bool) – has this model been cross referenced
cd = None

Analysis coordinate system

cp = None

Grid point coordinate system

cross_reference(model, grdset=None)[source]

Cross links the card

Parameters:
  • self – the GRID object pointer
  • model (BDF()) – the BDF object
  • grdset (GRDSET() or None) – a GRDSET if available (default=None)

Note

The gridset object will only update the fields that have not been set

get_ndof()[source]

Gets the number of degrees of freedom for the GRID

Parameters:self – the GRID object pointer
Returns six:the value 6
get_position(debug=False)[source]

Gets the point in the global XYZ coordinate system.

Parameters:
  • self – the GRID object pointer
  • debug (bool) – developer debug (default=False)
Returns xyz:

the position of the GRID in the globaly coordinate system

get_position_wrt(model, cid, debug=False)[source]

Gets the location of the GRID which started in some arbitrary system and returns it in the desired coordinate system

Parameters:
  • self – the object pointer
  • model (BDF()) – the BDF model object
  • cid (int) – the desired coordinate ID
  • debug (bool) – developer debug (default=False)
Returns xyz:

the position of the GRID in an arbitrary coordinate system

nid = None

Node ID

ps = None

SPC constraint

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the GRID object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the GRID object pointer
Returns fields:the fields that define the card
seid = None

Superelement ID

set_position(model, xyz, cid=0)[source]

Updates the GRID location

Parameters:
  • self – the GRID object pointer
  • xyz (TYPE = NDARRAY. SIZE=(3,)) – the location of the node.
  • cp (int) – the analysis coordinate system. (default=0; global)
type = u'GRID'
write_card(size=8, is_double=False)[source]

The writer method used by BDF.write_card

Parameters:
  • self – the GRID object pointer
  • size (int) – the size of the card (8/16)
  • isdouble – should this card be written with double precision (default=False)
xyz = None

node location in local frame

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

Bases: pyNastran.bdf.cards.nodes.Node

Creates the GRIDB card

Parameters:
  • self – the GRIDB object pointer
  • card (BDFCard) – a BDFCard object
  • data (LIST) – a list with the GRIDB fields defined in OP2 format
  • comment (string) – a comment for the card

Methods

Cd()[source]

Gets the output coordinate system

Parameters:self – the GRIDB object pointer
Returns cd:the output coordinate system
_field_map = {8: u'idf', 1: u'nid', 4: u'phi', 6: u'cd', 7: u'ps'}

allows the get_field method and update_field methods to be used

_verify(xref)[source]

Verifies all methods for this object work

Parameters:
  • self – the GRIDB object pointer
  • xref (bool) – has this model been cross referenced
nid = None

node ID

ps = None

local SPC constraint

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the GRIDB object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the GRIDB object pointer
Returns fields:the fields that define the card
type = u'GRIDB'
write_card(size=8, is_double=False)[source]

The writer method used by BDF.write_card

Parameters:
  • self – the GRIDB object pointer
  • size (int) – the size of the card (8/16)
class pyNastran.bdf.cards.nodes.Node(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Generic Node base class

Methods

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

Bases: pyNastran.bdf.cards.nodes.Node, pyNastran.bdf.deprecated.PointDeprecated

1 2 3 4 5 6 7 8 9
POINT NID CP X1 X2 X3      

Methods

Creates the POINT card

Parameters:
  • self – the POINT object pointer
  • card (BDFCard) – a BDFCard object
  • data (LIST) – a list with the POINT fields defined in OP2 format
  • comment (string) – a comment for the card

Methods

Cp()[source]

Gets the analysis coordinate system

Parameters:self – the POINT object pointer
Returns cp:the analysis coordinate system
_field_map = {1: u'nid', 2: u'cp'}
_get_field_helper(n)[source]

Gets complicated parameters on the POINT card

Parameters:
  • self – the POINT object pointer
  • n (int) – the field number to update
  • value – the value for the appropriate field
_update_field_helper(n, value)[source]

Updates complicated parameters on the POINT card

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

Analysis coordinate system

cp = None

Grid point coordinate system

cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the GRID object pointer
  • model (BDF()) – the BDF object
get_position(debug=False)[source]

Gets the point in the global XYZ coordinate system.

Parameters:
  • self – the POINT object pointer
  • debug – developer debug (default=False)
Returns position:
 

the position of the POINT in the globaly coordinate system

get_position_wrt(model, cid, debug=False)[source]

Gets the location of the POINT which started in some arbitrary system and returns it in the desired coordinate system

Parameters:
  • self – the POINT object pointer
  • model (BDF()) – the BDF model object
  • cid (int) – the desired coordinate ID
  • debug (bool) – debug (default=False)
Returns xyz:

the position of the POINT in an arbitrary coordinate system

nid = None

Node ID

ps = None

SPC constraint

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the GRID object pointer
Returns fields:the fields that define the card
repr_fields()[source]

Gets the fields in their simplified form

Parameters:self – the GRID object pointer
Returns fields:the fields that define the card
seid = None

Superelement ID

set_position(model, xyz, cid=0)[source]

Updates the POINT location

Parameters:
  • self – the POINT object pointer
  • xyz (TYPE = NDARRAY. SIZE=(3,)) – the location of the node.
  • cp (int) – the analysis coordinate system. (default=0; global)
type = u'POINT'
write_card(size=8, is_double=False)[source]

The writer method used by BDF.write_card

Parameters:
  • self – the GRID object pointer
  • size (int) – the size of the card (8/16)
xyz = None

node location in local frame

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

Bases: pyNastran.bdf.cards.nodes.Ring

Defines a ring for conical shell problems.

1 2 3 4 5 6 7 8 9
RINGAX MID   R Z     PS  

Methods

Creates the RINGAX card :param self:

the RINGAX object pointer
Parameters:
  • card (BDFCard) – a BDFCard object
  • data (LIST) – a list with the RINGAX fields defined in OP2 format
  • comment (string) – a comment for the card

Methods

R = None

Radius

_field_map = {1: u'mid', 3: u'R', 4: u'z', 7: u'ps'}

allows the get_field method and update_field methods to be used

nid = None

Node ID

ps = None

local SPC constraint

raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the RINGAX object pointer
Returns fields:the fields that define the card
type = u'RINGAX'
write_card(size=8, is_double=False)[source]

The writer method used by BDF.write_card

Parameters:
  • self – the RINGAX object pointer
  • size (int) – the size of the card (8/16)
class pyNastran.bdf.cards.nodes.Ring(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Generic Ring base class

Methods

class pyNastran.bdf.cards.nodes.SPOINT(nid, comment=u'')[source]

Bases: pyNastran.bdf.cards.nodes.Node

Creates the SPOINT card

Parameters:
  • self – the SPOINT object pointer
  • card (BDFCard) – a BDFCard object
  • data (LIST) – a list with the SPOINT fields defined in OP2 format
  • comment (string) – a comment for the card

Methods

cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the SPOINT object pointer
  • model (BDF) – the BDF object
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the SPOINT object pointer
Returns fields:the fields that define the card
type = u'SPOINT'
write_card(size=8, is_double=False)[source]

The writer method used by BDF.write_card

Parameters:
  • self – the SPOINT object pointer
  • size – unused
  • is_double – unused
class pyNastran.bdf.cards.nodes.SPOINTs(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.nodes.Node

1 2 3 4 5 6 7 8 9
SPOINT ID1 THRU ID2          
SPOINT ID1 ID1 ID3 ID4 ID5 ID6 ID7 ID8
  ID8 etc.            

Methods

Creates the SPOINTs card that contains many SPOINTs :param self:

the SPOINTs object pointer
Parameters:
  • card (BDFCard) – a BDFCard object
  • data (LIST) – a list with the SPOINT fields defined in OP2 format
  • comment (string) – a comment for the card

Methods

_get_compressed_spoints()[source]

Gets the spoints in sorted, short form.

uncompresed: SPOINT,1,3,5 compressed: SPOINT,1,3,5

uncompresed: SPOINT,1,2,3,4,5 compressed: SPOINT,1,THRU,5

uncompresed: SPOINT,1,2,3,4,5,7 compressed: SPOINT,7

SPOINT,1,THRU,5
addSPoints(sList)[source]

Adds more SPOINTs to this object

Parameters:self – the SPOINT object pointer
createSPOINTi()[source]

Creates individal SPOINT objects

Parameters:self – the SPOINT object pointer
cross_reference(model)[source]

Cross links the card

Parameters:
  • self – the SPOINT object pointer
  • model (BDF) – the BDF object
get_ndof()[source]

Returns the number of degrees of freedom for the SPOINTs class

Parameters:self – the SPOINT object pointer
Returns ndofs:the number of degrees of freedom
raw_fields()[source]

Gets the fields in their unmodified form

Parameters:self – the SPOINT object pointer
Returns fields:the fields that define the card
type = u'SPOINT'
write_card(size=8, is_double=False)[source]

The writer method used by BDF.write_card

Parameters:
  • self – the SPOINT object pointer
  • size – unused
  • is_double – unused
optimization Module

Inheritance diagram of pyNastran.bdf.cards.optimization

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

Bases: pyNastran.bdf.cards.optimization.OptConstraint

Methods

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

Bases: pyNastran.bdf.cards.optimization.OptConstraint

Methods

raw_fields()[source]
type = u'DDVAL'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.optimization.DESVAR(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.optimization.OptConstraint

Methods

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

Bases: pyNastran.bdf.cards.optimization.OptConstraint

Multiple Design Variable Linking Relates one design variable to one or more other design variables.:

DLINK ID DDVID C0 CMULT IDV1 C1 IDV2 C2
      IDV3 C3 -etc.-

Methods

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

Bases: pyNastran.bdf.cards.optimization.OptConstraint

Design Optimization Parameters Overrides default values of parameters used in design optimization

DOPTPRM PARAM1 VAL1 PARAM2 VAL2 PARAM3 VAL3 PARAM4 VAL4
        PARAM5 VAL5 -etc.-

Methods

defaults = {u'DPMAX': 0.5, u'ETA1': 0.01, u'ETA2': 0.25, u'ETA3': 0.7, u'P2RSET': None, u'DPMIN': 0.01, u'OPTCOD': 0, u'APRCOD': 2, u'DRATIO': 0.1, u'CTMIN': 0.003, u'DESMAX': 5, u'FSDALP': 0.9, u'TDMIN': None, u'DXMAX': 1.0, u'DLXESL': 0.5, u'CT': -0.03, u'METHOD': 0, u'IGMAX': 0, u'GMAX': 0.005, u'CONVPR': 0.001, u'OBJMOD': 0, u'GSCAL': 0.001, u'NASPRO': 0, u'UPDFAC1': 2.0, u'UPDFAC2': 0.5, u'TREGION': 0, u'FSDMAX': 0, u'P2CM': None, u'P2CC': None, u'STPSCL': 1.0, u'PLVIOL': 0, u'P1': 0, u'DISBEG': 0, u'CONVDV': 0.001, u'P2CR': None, u'P2CP': None, u'DISCOD': 1, u'AUTOSE': 0, u'DSMXESL': 20, u'TCHECK': -1, u'P2CBL': None, u'CONV2': 1e-20, u'CONV1': 0.001, u'ISCAL': 0, u'P2': 1, u'DELB': 0.0001, u'DXMIN': 0.05, u'DELP': 0.2, u'DELX': 0.5, u'PTOL': 1e+35, u'IPRINT': 0, u'PENAL': 0.0, u'P2CALL': None, u'P2CDDV': None}
raw_fields()[source]
type = u'DOPTPRM'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.optimization.DRESP1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.optimization.OptConstraint

DRESP1         1S1      CSTRAIN PCOMP                  1       1   10000

Methods

raw_fields()[source]
type = u'DRESP1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.optimization.DRESP2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.optimization.OptConstraint

Design Sensitivity Equation Response Quantities Defines equation responses that are used in the design, either as constraints or as an objective.

Methods

_pack_params()[source]
c3 = None

Todo

or blank?

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

Bases: pyNastran.bdf.cards.optimization.OptConstraint

Methods

nstr = None

Maximum number of constraints to be retained per region per load case. (Integer > 0; Default = 20)

rType = None

Response type for which the screening criteria apply. (Character)

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

Truncation threshold. (Real; Default = -0.5)

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

Bases: pyNastran.bdf.cards.optimization.OptConstraint

Design Variable to Material Relation Defines the relation between a material property and design variables.:

DVMREL1 ID TYPE MID MPNAME MPMIN MPMAX C0
        DVID1 COEF1 DVID2 COEF2 DVID3 COEF3 -etc.-

Methods

Mid()[source]
cross_reference(model)[source]
mpMin = None

Todo

bad default

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

Bases: pyNastran.bdf.cards.optimization.OptConstraint

DVPREL1   200000   PCOMP    2000      T2
          200000     1.0

Methods

Pid()[source]
cross_reference(model)[source]
pMin = None

Minimum value allowed for this property. .. todo:: bad default (see DVMREL1)

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

Bases: pyNastran.bdf.cards.optimization.OptConstraint

DVPREL2 ID TYPE PID PNAME/FID PMIN PMAX EQID  
  DESVAR DVID1 DVID2 DVID3 DVID4 DVID5 DVID6 DVID7
  DVID8 -etc.-            
  DTABLE LABL1 LABL2 LABL3 LABL4 LABL5 LABL6 LABL7
  LABL8 -etc.-            

Methods

OptValue()[source]
Pid()[source]
Type = None

Name of a property entry, such as PBAR, PBEAM, etc

cross_reference(model)[source]

Todo

add support for DEQATN cards to finish DVPREL2 xref

eqID = None

Todo

or blank?

oid = None

Unique identification number

pMax = None

Maximum value allowed for this property. (Real; Default = 1.0E20)

pMin = None

Minimum value allowed for this property. If FID references a stress recovery location field, then the default value for PMIN is -1.0+35. PMIN must be explicitly set to a negative number for properties that may be less than zero (for example, field ZO on the PCOMP entry). (Real; Default = 1.E-15) .. todo:: bad default (see DVMREL1)

pNameFid = None

Property name, such as ‘T’, ‘A’, or field position of the property entry, or word position in the element property table of the analysis model. Property names that begin with an integer such as 12I/T**3 may only be referred to by field position. (Character or Integer 0)

pid = None

Property entry identification number

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

Todo

finish repr_fields for DVPREL2

type = u'DVPREL2'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.optimization.OptConstraint[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

params Module

Inheritance diagram of pyNastran.bdf.cards.params

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

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Creates a PARAM card.

Parameters:
  • self – the object
  • card – BDFCard object
  • data – list of PARAM entries not including ‘PARAM’; intended to be used by OP2 Reader (default=None)
  • comment – optional string (default=’‘)

Methods

_field_map = {1: u'key'}
_update_field_helper(n, value)[source]
raw_fields()[source]
repr_fields()[source]
type = u'PARAM'
update_values(value1=None, value2=None)[source]

Updates value1 and value2. Performs type checking based on the PARAM type after setting any default value(s).

Parameters:
  • self – the PARAM object
  • value1 – the main value (default=None)
  • value2 – optional value (default=None)

If you want to access the data directly, use: >>> param = bdf.params[‘POST’] >>> param.values[0] = -1 # value1 >>> param.values[1] = 3 # value2 >>>

Note

Most PARAM cards only have one value. Some have two.

write_card(size=8, is_double=False)[source]
utils Module
pyNastran.bdf.cards.utils.build_table_lines(fields, nstart=1, nend=0)[source]

Builds a table of the form:

DESVAR DVID1 DVID2 DVID3 DVID4 DVID5 DVID6 DVID7
  DVID8 -etc.-          
  UM VAL1 VAL2 -etc.-      

and then pads the rest of the fields with None’s

Parameters:
  • fields (list of values) – the fields to enter, including DESVAR
  • nStart – the number of blank fields at the start of the line (default=1)
  • nStart – int
  • nEnd – the number of blank fields at the end of the line (default=0)
  • nEnd – int

Note

will be used for DVPREL2, RBE1, RBE3

Warning

only works for small field format???

pyNastran.bdf.cards.utils.wipe_empty_fields(card)[source]

Removes an trailing Nones from the card. Also converts empty strings to None.

Parameters:card – the fields on the card as a list
Returns short_card:
 the card with no trailing blank fields

Todo

run this in reverse to make it faster

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]
loads Package
dloads Module

Inheritance diagram of pyNastran.bdf.cards.loads.dloads

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

  • DLOAD
  • TLOAD1
  • TLOAD2
  • RLOAD1
  • RLOAD2
class pyNastran.bdf.cards.loads.dloads.DLOAD(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.loads.loads.LoadCombination

Attributes

Methods

cross_reference(model)[source]
raw_fields()[source]
repr_fields()[source]
type = u'DLOAD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.loads.dloads.RLOAD1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.loads.loads.TabularLoad

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\} }\]
RLOAD1 SID EXCITEID DELAY DPHASE TC TD TYPE
RLOAD1 5 3     1    

Methods

Tc()[source]
Td()[source]
cross_reference(model)[source]
getLoads()[source]
raw_fields()[source]
repr_fields()[source]
type = u'RLOAD1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.loads.dloads.RLOAD2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.loads.loads.TabularLoad

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\} }\]
RLOAD2 SID EXCITEID DELAY DPHASE TB TP TYPE
RLOAD2 5 3     1    

Methods

LoadID()[source]
Tb()[source]
Tp()[source]
cross_reference(model)[source]
getLoads()[source]
raw_fields()[source]
repr_fields()[source]
type = u'RLOAD2'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.loads.dloads.TLOAD1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.loads.loads.TabularLoad

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.

Methods

Tid()[source]
Type = None

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

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

exciteID = None

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

getLoads()[source]
raw_fields()[source]
repr_fields()[source]
sid = None

load ID

tid = None

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

type = u'TLOAD1'
us0 = None

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

vs0 = None

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

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

Bases: pyNastran.bdf.cards.loads.loads.TabularLoad

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.

Methods

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)

b = None

Growth coefficient. (Real; Default = 0.0)

c = None

Exponential coefficient. (Real; Default = 0.0)

cross_reference(model)[source]
frequency = None

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

getLoads()[source]
phase = None

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

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

load ID SID must be unique for all TLOAD1, TLOAD2, RLOAD1, RLOAD2, and ACSRCE entries.

type = u'TLOAD2'
us0 = None

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

vs0 = None

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

write_card(size=8, is_double=False)[source]
loads Module

Inheritance diagram of pyNastran.bdf.cards.loads.loads

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

  • LSEQ
  • DAREA
  • SLOAD
  • RFORCE
  • RANDPS
class pyNastran.bdf.cards.loads.loads.DAREA(card=None, nOffset=0, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines scale (area) factors for static and dynamic loads. In dynamic analysis, DAREA is used in conjunction with ACSRCE, RLOADi and TLOADi entries.

DAREA SID P1 C1 A1 P2 C2 A2
DAREA 3 6 2 8.2 15 1 10.1

Methods

raw_fields()[source]
type = u'DAREA'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.loads.loads.LSEQ(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Defines a sequence of static load sets

Todo

how does this work...

Methods

Lid()[source]
LoadID(lid)[source]
Tid()[source]
cross_reference(model)[source]
getLoads()[source]
raw_fields()[source]
repr_fields()[source]
type = u'LSEQ'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.loads.loads.Load(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

defines the DefaultLoad class

Attributes

Methods

Cid()[source]
nodeIDs(nodes=None)[source]

returns nodeIDs for repr functions

node_ids
type = u'DefLoad'
class pyNastran.bdf.cards.loads.loads.LoadCombination(card, data)[source]

Bases: pyNastran.bdf.cards.loads.loads.Load

Attributes

Methods

LoadID(lid)[source]
cross_reference(model)[source]
getLoads()[source]

Note

requires a cross referenced load

loadIDs = None

individual loadIDs (corresponds to scaleFactors)

scale = None

overall scale factor

scaleFactors = None

individual scale factors (corresponds to loadIDs)

sid = None

load ID

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

Bases: pyNastran.bdf.cards.loads.loads.RandomLoad

Power Spectral Density Specification

Defines load set power spectral density factors for use in random analysis having the frequency dependent form:

\[S_{jk}(F) = (X+iY)G(F)\]

Methods

Tid()[source]
cross_reference(model)[source]
getLoads()[source]
j = None

Subcase identification number of the excited load set. (Integer > 0)

k = None

Subcase identification number of the applied load set. (Integer >= 0; K >= J)

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

Random analysis set identification number. (Integer > 0) Defined by RANDOM in the Case Control Deck.

tid = None

Identification number of a TABRNDi entry that defines G(F).

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

Components of the complex number. (Real)

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

Bases: pyNastran.bdf.cards.loads.loads.Load

Attributes

Methods

Cid()[source]
Nid()[source]
cross_reference(model)[source]
getLoads()[source]
raw_fields()[source]
repr_fields()[source]
type = u'RFORCE'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.loads.loads.RandomLoad(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

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

Bases: pyNastran.bdf.cards.loads.loads.Load

Static Scalar Load

Defines concentrated static loads on scalar or grid points.

Note

Can be used in statics OR dynamics.

If Si refers to a grid point, the load is applied to component T1 of the displacement coordinate system (see the CD field on the GRID entry).

Attributes

Methods

Nid(node)[source]
cross_reference(model)[source]
getLoads()[source]

Todo

not done

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

load ID

type = u'SLOAD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.loads.loads.TabularLoad(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

static_loads Module
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

thermal Package
loads Module

Inheritance diagram of pyNastran.bdf.cards.thermal.loads

class pyNastran.bdf.cards.thermal.loads.QBDY1(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.thermal.loads.ThermalLoad

Defines a uniform heat flux into CHBDYj elements.

Methods

Eid(eid)[source]
Eids()[source]
cross_reference(model)[source]
eids = None

Todo

use expand_thru_by ???

getLoads()[source]
nQFluxTerms()[source]
qFlux = None

Heat flux into element (FLOAT)

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

Load set identification number. (Integer > 0)

type = u'QBDY1'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.loads.QBDY2(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.thermal.loads.ThermalLoad

Defines a uniform heat flux load for a boundary surface.

Methods

Eid()[source]
cross_reference(model)[source]
eid = None

Identification number of an CHBDYj element. (Integer > 0)

getLoads()[source]
nQFluxTerms()[source]
qFlux = None

Heat flux at the i-th grid point on the referenced CHBDYj element. (Real or blank)

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

Load set identification number. (Integer > 0)

type = u'QBDY2'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.loads.QBDY3(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.thermal.loads.ThermalLoad

Defines a uniform heat flux load for a boundary surface.

Methods

Eid(eid)[source]
Eids()[source]
Q0 = None

Heat flux into element

cntrlnd = None

Control point for thermal flux load. (Integer > 0; Default = 0)

cross_reference(model)[source]
eids = None

CHBDYj element identification numbers

getLoads()[source]

Todo

return loads

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

Load set identification number. (Integer > 0)

type = u'QBDY3'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.loads.QHBDY(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.thermal.loads.ThermalLoad

Defines a uniform heat flux into a set of grid points.

Methods

Q0 = None

Magnitude of thermal flux into face. Q0 is positive for heat into the surface. (Real)

af = None

Area factor depends on type. (Real > 0.0 or blank)

cross_reference(model)[source]
getLoads()[source]
grids = None

Grid point identification of connected grid points. (Integer > 0 or blank)

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

Load set identification number. (Integer > 0)

type = u'QHBDY'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.loads.TEMP(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.thermal.loads.ThermalLoad

Defines temperature at grid points for determination of thermal loading, temperature-dependent material properties, or stress recovery.

TEMP SID G1 T1 G2 T2 G3 T3
TEMP 3 94 316.2 49 219.8    

Methods

add(temp_obj)[source]
cross_reference(model)[source]
getLoads()[source]

Todo

return loads

raw_fields()[source]

Writes the TEMP card

repr_fields()[source]

Writes the TEMP card

sid = None

Load set identification number. (Integer > 0)

temperatures = None

dictionary of temperatures where the key is the grid ID (Gi) and the value is the temperature (Ti)

type = u'TEMP'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.loads.TEMPD(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.thermal.loads.ThermalLoadDefault

Defines a temperature value for all grid points of the structural model that have not been given a temperature on a TEMP entry

Methods

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

Writes the TEMPD card

temperatures = None

dictionary of temperatures where the key is the set ID (SIDi) and the value is the temperature (Ti)

type = u'TEMPD'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.loads.ThermalLoad(card, data)[source]

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalCard

Methods

class pyNastran.bdf.cards.thermal.loads.ThermalLoadDefault(card, data)[source]

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalCard

Methods

thermal Module

Inheritance diagram of pyNastran.bdf.cards.thermal.thermal

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

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalElement

Defines a boundary condition surface element with reference to a heat conduction element.

Methods

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

Surface element ID number for a side of an element. (0 < Integer < 100,000,000)

eid2 = None

A heat conduction element identification

hexMap = {1: [4, 3, 2, 1], 2: [1, 2, 6, 5], 3: [2, 3, 7, 6], 4: [3, 4, 8, 7], 5: [4, 1, 5, 8], 6: [5, 6, 7, 8]}
iViewBack = None

A VIEW entry identification number for the back face

iViewFront = None

A VIEW entry identification number for the front face

pentMap = {1: [3, 2, 1], 2: [1, 2, 5, 4], 3: [2, 3, 6, 5], 4: [3, 1, 4, 6], 5: [4, 5, 6]}
radMidBack = None

RADM identification number for back face of surface element (Integer > 0)

radMidFront = None

RADM identification number for front face of surface element (Integer > 0)

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

Todo

is this done

side = None

A consistent element side identification number (1 < Integer < 6)

sideMaps = {u'CQUAD4': [1, 2, 3, 4], u'CHEXA': {1: [4, 3, 2, 1], 2: [1, 2, 6, 5], 3: [2, 3, 7, 6], 4: [3, 4, 8, 7], 5: [4, 1, 5, 8], 6: [5, 6, 7, 8]}, u'CTETRA': {1: [1, 3, 2], 2: [1, 2, 4], 3: [2, 3, 4], 4: [3, 1, 4]}, u'CTRIA3': [1, 2, 3], u'CPENTA': {1: [3, 2, 1], 2: [1, 2, 5, 4], 3: [2, 3, 6, 5], 4: [3, 1, 4, 6], 5: [4, 5, 6]}}
tetMap = {1: [1, 3, 2], 2: [1, 2, 4], 3: [2, 3, 4], 4: [3, 1, 4]}
type = u'CHBDYE'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.thermal.CHBDYG(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalElement

Defines a boundary condition surface element without reference to a property entry.

Methods

Eid()[source]
Type = None

Surface type

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

Surface element ID

grids = None

Grid point IDs of grids bounding the surface (Integer > 0)

iViewBack = None

A VIEW entry identification number for the back face

iViewFront = None

A VIEW entry identification number for the front face

radMidBack = None

RADM identification number for back face of surface element (Integer > 0)

radMidFront = None

RADM identification number for front face of surface element (Integer > 0)

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

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalElement

Defines a boundary condition surface element with reference to a PHBDY entry

Methods

Eid()[source]
_verify(xref=False)[source]
ce = None

Coordinate system for defining orientation vector. (Integer > 0; Default = 0

cross_reference(model)[source]
e1 = None

Components of the orientation vector in coordinate system CE. The origin of the orientation vector is grid point G1. (Real or blank)

eid = None

Surface element ID

g0 = None

Orientation grid point. (Integer > 0; Default = 0)

g1 = None

Grid point identification numbers of grids bounding the surface. (Integer > 0)

gmid = None

Grid point identification number of a midside node if it is used with the line type surface element.

iViewBack = None

A VIEW entry identification number for the back face.

iViewFront = None

A VIEW entry identification number for the front face.

pid = None

PHBDY property entry identification numbers. (Integer > 0)

radMidBack = None

RADM identification number for back face of surface element. (Integer > 0)

radMidFront = None

RADM identification number for front face of surface element. (Integer > 0)

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

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalBC

Specifies a free convection boundary condition for heat transfer analysis through connection to a surface element (CHBDYi entry).

Methods

TA(i=None)[source]
TA2 = None

Ambient points used for convection 0’s are allowed for TA2 and higher. (Integer > 0 for TA1 and Integer > 0 for TA2 through TA8; Default for TA2 through TA8 is TA1.)

cntrlnd = None

Control point for free convection boundary condition.

cross_reference(model)[source]
eid = None

CHBDYG, CHBDYE, or CHBDYP surface element identification number. (Integer > 0)

flmnd = None

Point for film convection fluid property temperature

pconID = None

Convection property identification number of a PCONV entry

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

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalBC

Specifies a forced convection boundary condition for heat transfer analysis through connection to a surface element (CHBDYi entry).

Methods

cross_reference(model)[source]
film_node()[source]
raw_fields()[source]
repr_fields()[source]
type = u'CONV'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.thermal.PCONV(card=None, data=None, comment=u'')[source]

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalProperty

Specifies the free convection boundary condition properties of a boundary condition surface element used for heat transfer analysis.

Methods

ce = None

Coordinate system for defining orientation vector. (Integer > 0;Default = 0

chlen = None

Characteristic length

e1 = None

Components of the orientation vector in coordinate system CE. The origin of the orientation vector is grid point G1. (Real or blank)

expf = None

Free convection exponent as implemented within the context of the particular form that is chosen

form = None

Type of formula used for free convection. (Integer 0, 1, 10, 11, 20, or 21)

ftype = None

Formula type for various configurations of free convection

gidin = None

Grid ID of the referenced inlet point

mid = None

Material property identification number. (Integer > 0)

pconid = None

Convection property identification number. (Integer > 0)

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

Identification number of a TABLEHT entry that specifies the two variable tabular function of the free convection heat transfer coefficient

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

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalProperty

Specifies the free convection boundary condition properties of a boundary condition surface element used for heat transfer analysis.

Methods

coef = None

Constant coefficient used for forced convection

exppi = None

Prandtl number convection exponent for heat transfer into the workingfluid. (Real > 0.0; Default = 0.0)

exppo = None

Prandtl number convection exponent for heat transfer into the working fluid. (Real > 0.0; Default = 0.0)

expr = None

Reynolds number convection exponent. (Real > 0.0; Default = 0.0)

flag = None

Flag for mass flow convection. (Integer = 0 or 1; Default = 0)

form = None

Type of formula used for free convection. (Integer 0, 1, 10, 11, 20, or 21)

mid = None

Material property identification number. (Integer > 0)

pconid = None

Convection property identification number. (Integer > 0)

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

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalProperty

A property entry referenced by CHBDYP entries to give auxiliary geometric information for boundary condition surface elements

Methods

af = None

Area factor of the surface used only for CHBDYP element TYPE = ‘POINT’, TYPE = ‘LINE’, TYPE = ‘TUBE’, or TYPE = ‘ELCYL’. For TYPE = ‘TUBE’, AF is the constant thickness of the hollow tube. (Real > 0.0 or blank)

d1 = None

Diameters associated with the surface. Used with CHBDYP element TYPE=’ELCYL’,’TUBE’,’FTUBE’

pid = None

Property identification number. (Unique Integer among all PHBDY entries). (Integer > 0)

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

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalBC

Specifies an CHBDYi element face for application of radiation boundary conditions

Methods

Eid(eid)[source]
Eids()[source]
cntrlnd = None

Control point for thermal flux load. (Integer > 0; Default = 0)

cross_reference(model)[source]
eids = None

CHBDYi element identification number

famb = None

Radiation view factor between the face and the ambient point. (Real > 0.0)

nodamb = None

NODAMB Ambient point for radiation exchange. (Integer > 0)

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

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalBC

Defines the radiation properties of a boundary element for heat transfer analysis

Methods

radmid = None

Material identification number

repr_fields()[source]
type = u'RADM'
write_card(size=8, is_double=False)[source]
class pyNastran.bdf.cards.thermal.thermal.ThermalBC(card, data)[source]

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalCard

Methods

class pyNastran.bdf.cards.thermal.thermal.ThermalCard(card, data)[source]

Bases: pyNastran.bdf.cards.baseCard.BaseCard

Methods

_is_same_card(obj, debug=False)[source]
cross_reference(model)[source]
class pyNastran.bdf.cards.thermal.thermal.ThermalElement(card, data)[source]

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalCard

Methods

Pid()[source]
nodeIDs()[source]
pid = 0
class pyNastran.bdf.cards.thermal.thermal.ThermalProperty(card, data)[source]

Bases: pyNastran.bdf.cards.thermal.thermal.ThermalCard

Methods

cards Package
test_beams Module

Inheritance diagram of pyNastran.bdf.cards.test.test_beams

class pyNastran.bdf.cards.test.test_beams.TestBeams(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

_compare(fields, lines_expected)[source]
test_cbeam_05()[source]
test_pbeam_01()[source]
test_pbeam_02()[source]
test_pbeam_03()[source]
test_pbeam_04()[source]
test_pbeam_05()[source]
test_pbeam_06()[source]
test_pbeam_07()[source]
test_pbeam_08()[source]
test_pbeam_09()[source]
test_constraints Module

Inheritance diagram of pyNastran.bdf.cards.test.test_constraints

class pyNastran.bdf.cards.test.test_constraints.TestConstraints(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_mpc_01()[source]
test_suport1_02()[source]
test_suport_02()[source]
test_support1_01()[source]
test_support_01()[source]
test_coords Module

Inheritance diagram of pyNastran.bdf.cards.test.test_coords

class pyNastran.bdf.cards.test.test_coords.TestCoords(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

getNodes(grids, grids_expected, coords)[source]
test_A()[source]
test_B()[source]
test_cord1_01()[source]
test_cord1c_01()[source]
test_cord1r_01()[source]
test_cord1s_01()[source]
test_cord2_bad_01()[source]
test_cord2_rcs_01()[source]

all points are located at <30,40,50>

test_cord2_rcs_02()[source]

all points are located at <30,40,50>

test_cord2_rcs_03()[source]

all points are located at <30,40,50>

test_cord2c_01()[source]
test_cord2r_02()[source]
test_grid_01()[source]
test_rid_1()[source]
test_rotate()[source]
test_rotate2()[source]
test_rotate3()[source]
test_same()[source]
test_shift()[source]
test_materials Module

Inheritance diagram of pyNastran.bdf.cards.test.test_materials

class pyNastran.bdf.cards.test.test_materials.TestMaterials(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_mat11_01()[source]
test_mat1_01()[source]
test_mat5_01()[source]
test_mat8_01()[source]
test_rigid Module

Inheritance diagram of pyNastran.bdf.cards.test.test_rigid

class pyNastran.bdf.cards.test.test_rigid.TestRigid(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_rbe1_01()[source]
test_rbe1_02()[source]
test_rbe1_03()[source]
test_rbe2_01()[source]
test_rbe2_02()[source]
test_rbe3_01()[source]
test_shells Module

Inheritance diagram of pyNastran.bdf.cards.test.test_shells

class pyNastran.bdf.cards.test.test_shells.TestShells(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

_make_cquad4(model, rho, nu, G, E, t, nsm)[source]
_make_ctria3(model, rho, nu, G, E, t, nsm)[source]
test_CQUAD4_01()[source]
test_PCOMP_01()[source]

asymmetrical, nsm=0.0 and nsm=1.0

test_PCOMP_02()[source]

symmetrical, nsm=0.0 and nsm=1.0

test_PSHELL_01()[source]

tests a CQUAD4 and a PSHELL

mesh_utils Package
bdf_equivalence Module
bdf_merge Module
bdf_renumber Module
collapse_bad_quads Module
delete_bad_elements Module
get_card Module
test Package
all_tests Module
bdf_test Module
pyNastran.bdf.test.bdf_test.get_file_names_from_file_number(fds)[source]
pyNastran.bdf.test.bdf_test.get_open_fds()[source]
pyNastran.bdf.test.bdf_test.main()[source]
pyNastran.bdf.test.bdf_test.remove_marc_files(files)[source]
bdf_unit_tests Module

Inheritance diagram of pyNastran.bdf.test.bdf_unit_tests

class pyNastran.bdf.test.bdf_unit_tests.BaseCard_Test(methodName='runTest')[source]

Bases: pyNastran.bdf.test.bdf_unit_tests.Tester

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_base_card_01_collapse_thru()[source]

tests collapse_thru method used by SETx cards

class pyNastran.bdf.test.bdf_unit_tests.TestBDF(methodName='runTest')[source]

Bases: pyNastran.bdf.test.bdf_unit_tests.Tester

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

_compare_mass_cg_I(fem1, reference_point=None, sym_axis=None)[source]
test_bdf_01()[source]
test_bdf_02()[source]
test_bdf_03()[source]
test_bdf_04()[source]
test_bdf_05()[source]
test_bdf_06()[source]
class pyNastran.bdf.test.bdf_unit_tests.Tester(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

run_all_files_in_folder(folder, xref=False, cid=None, debug=False)[source]
run_bdf(folder, bdfFilename, xref=False, cid=None, meshForm=u'combined', debug=False, dynamic_vars={})[source]
compare_card_content Module
pyNastran.bdf.test.compare_card_content.assert_fields(card1, card2)[source]
pyNastran.bdf.test.compare_card_content.compare_aero_content(fem1, fem2)[source]
pyNastran.bdf.test.compare_card_content.compare_card_content(fem1, fem2)[source]
pyNastran.bdf.test.compare_card_content.compare_matrices(fem1, fem2)[source]
pyNastran.bdf.test.compare_card_content.compare_optimization_content(fem1, fem2)[source]
pyNastran.bdf.test.compare_card_content.compare_thermal_content(fem1, fem2)[source]
get_uniq_fields Module

Inheritance diagram of pyNastran.bdf.test.get_uniq_fields

class pyNastran.bdf.test.get_uniq_fields.BDFuniqCard(log, fingset)[source]

Bases: pyNastran.bdf.bdf.BDF

Attributes

Methods

add_card(card_lines, card_name, comment='')[source]
cross_reference(xref)[source]
is_reject(cardName)[source]

Can the card be read

write_bdf()[source]
run_nastran_double_precision Module

Inheritance diagram of pyNastran.bdf.test.run_nastran_double_precision

pyNastran.bdf.test.run_nastran_double_precision.cmd_line()[source]
pyNastran.bdf.test.run_nastran_double_precision.main(bdf_name, run_first_nastran=True, debug=True)[source]
class pyNastran.bdf.test.run_nastran_double_precision.remove_prints[source]

Bases: object

Methods

flush()[source]
write(msg)[source]
pyNastran.bdf.test.run_nastran_double_precision.update_bdf(model, post=-1)[source]
test_bdf Module
pyNastran.bdf.test.test_bdf.compare(fem1, fem2, xref=True, check=True, print_stats=True)[source]
pyNastran.bdf.test.test_bdf.compare_card_count(fem1, fem2, print_stats=False)[source]
pyNastran.bdf.test.test_bdf.compare_params(fem1, fem2)[source]
pyNastran.bdf.test.test_bdf.compute(cards1, cards2)[source]
pyNastran.bdf.test.test_bdf.compute_ints(cards1, cards2, fem1)[source]
pyNastran.bdf.test.test_bdf.divide(value1, value2)[source]
pyNastran.bdf.test.test_bdf.get_element_stats(fem1, fem2)[source]

verifies that the various element methods work

pyNastran.bdf.test.test_bdf.get_matrix_stats(fem1, fem2)[source]
pyNastran.bdf.test.test_bdf.main()[source]
pyNastran.bdf.test.test_bdf.memory_usage_psutil()[source]
pyNastran.bdf.test.test_bdf.print_points(fem1, fem2)[source]
pyNastran.bdf.test.test_bdf.run_all_files_in_folder(folder, debug=False, xref=True, check=True, punch=False, cid=None, nastran=u'')[source]
pyNastran.bdf.test.test_bdf.run_bdf(folder, bdfFilename, debug=False, xref=True, check=True, punch=False, cid=None, meshForm=u'combined', isFolder=False, print_stats=False, sum_load=False, size=8, is_double=False, reject=False, nastran=u'', dynamic_vars=None)[source]
pyNastran.bdf.test.test_bdf.run_fem1(fem1, bdfModel, meshForm, xref, punch, sum_load, size, is_double, cid)[source]
pyNastran.bdf.test.test_bdf.run_fem2(bdfModel, outModel, xref, punch, sum_load, size, is_double, reject, debug=False, log=None)[source]
pyNastran.bdf.test.test_bdf.run_lots_of_files(filenames, folder=u'', debug=False, xref=True, check=True, punch=False, cid=None, nastran=u'')[source]
test_case_control_deck Module

Inheritance diagram of pyNastran.bdf.test.test_case_control_deck

class pyNastran.bdf.test.test_case_control_deck.CaseControlTest(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_case_control_01()[source]
test_case_control_02()[source]
test_case_control_03()[source]
test_case_control_04()[source]
test_case_control_05()[source]
test_field_writer Module

Inheritance diagram of pyNastran.bdf.test.test_field_writer

class pyNastran.bdf.test.test_field_writer.Testfield_writer_8(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_2()[source]
test_card_double()[source]
test_field_defaults()[source]
test_field_vals_8()[source]
test_float_16()[source]
test_float_8()[source]
test_floats_negative_8()[source]
test_floats_positive_8()[source]
test_ints_16()[source]
test_ints_8()[source]
test_print_card_8()[source]
test_same()[source]
test_scientific_16()[source]
test_strings_16()[source]
test_strings_8()[source]
pyNastran.bdf.test.test_field_writer.compare(valueIn)[source]
test_openmdao Module

Inheritance diagram of pyNastran.bdf.test.test_openmdao

class pyNastran.bdf.test.test_openmdao.BDFUpdater[source]

Bases: pyNastran.bdf.bdf.BDF

Attributes

Methods

update_card(Type, iType, ifield, value)[source]
class pyNastran.bdf.test.test_openmdao.TestOpenMDAO(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_openmaod_bad_3()[source]
test_openmdao_bad_1()[source]
test_openmdao_bad_2()[source]
test_openmdao_good_1()[source]
unit Package
line_parsing Module
pyNastran.bdf.test.unit.line_parsing._parseEntry(lines)[source]
pyNastran.bdf.test.unit.line_parsing.parseSetSline(listA)[source]
pyNastran.bdf.test.unit.line_parsing.parseSetType(i, line, lines, key, value)[source]
test_assign_type Module

Inheritance diagram of pyNastran.bdf.test.unit.test_assign_type

class pyNastran.bdf.test.unit.test_assign_type.ExtendedTestCase(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

assertRaisesWithMessage(msg, func, *args, **kwargs)[source]
class pyNastran.bdf.test.unit.test_assign_type.Test(methodName='runTest')[source]

Bases: pyNastran.bdf.test.unit.test_assign_type.ExtendedTestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

check_double(method)[source]
check_integer(method)[source]
run_function(f, card, exact)[source]
run_function_default(f, card, exact, default)[source]
test_bad()[source]
test_blank(card, n, fieldname)[source]
test_components()[source]
test_components_or_blank_01()[source]
test_components_or_blank_02()[source]
test_double(card, n, fieldname)[source]
test_double_or_blank(card, n, fieldname, default=None)[source]
test_double_or_string()[source]
test_double_string_or_blank()[source]
test_integer(card, n, fieldname)[source]
test_integer_double_or_blank(card, n, fieldname, default=None)[source]
test_integer_double_or_string()[source]
test_integer_or_blank(card, n, fieldname)[source]
test_integer_or_double()[source]
test_integer_or_string()[source]
test_integer_string_or_blank()[source]
test_string(card, n, fieldname)[source]
test_mass Module

Inheritance diagram of pyNastran.bdf.test.unit.test_mass

class pyNastran.bdf.test.unit.test_mass.TestMass(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_mass_shell_1()[source]
test_mass_solid_1()[source]
verify_pcomp_element(element, mass, area, centroid, normal)[source]
verify_pshell_element(element, mass, area, centroid, normal, nsm)[source]
verify_psolid_element(element, mass, volume, centroid, rho, E=None, G=None, nu=None)[source]
test_read_write Module

Inheritance diagram of pyNastran.bdf.test.unit.test_read_write

class pyNastran.bdf.test.unit.test_read_write.TestReadWrite(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_enddata_1()[source]

There is an ENDDATA is in the baseline BDF, so None -> ENDDATA

test_enddata_2()[source]

There is no ENDDATA is in the baseline BDF, so None -> no ENDDATA

test_include_end()[source]

this test fails incorrectly

test_punch_1()[source]

Tests punch file reading

test_read_bad_01()[source]
test_read_include_dir_1()[source]

Tests various read methods using various include files

test_write_1()[source]

Tests 1 read method and various write methods

test_read_write Module

Inheritance diagram of pyNastran.bdf.test.unit.test_read_write

class pyNastran.bdf.test.unit.test_read_write.TestReadWrite(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_enddata_1()[source]

There is an ENDDATA is in the baseline BDF, so None -> ENDDATA

test_enddata_2()[source]

There is no ENDDATA is in the baseline BDF, so None -> no ENDDATA

test_include_end()[source]

this test fails incorrectly

test_punch_1()[source]

Tests punch file reading

test_read_bad_01()[source]
test_read_include_dir_1()[source]

Tests various read methods using various include files

test_write_1()[source]

Tests 1 read method and various write methods

pyNastran/f06

This is the pyNastran.f06.rst file.

f06_writer Module

f06_formatting Module

pyNastran.f06.f06_formatting.get_key0(adict)[source]

Gets the “first” key in a dictionary

The entry is kind of irrelevant.

pyNastran.f06.f06_formatting.get_key0_compare(adict)[source]

Gets the “first” key in a dictionary

The entry is kind of irrelevant.

pyNastran.f06.f06_formatting.writeFloats10E(vals)[source]
pyNastran.f06.f06_formatting.writeFloats12E(vals)[source]
pyNastran.f06.f06_formatting.writeFloats13E(vals)[source]
pyNastran.f06.f06_formatting.writeFloats8p4F(vals)[source]
pyNastran.f06.f06_formatting.writeImagFloats13E(vals, isMagPhase)[source]

errors Module

Inheritance diagram of pyNastran.f06.errors

exception pyNastran.f06.errors.FatalError[source]

Bases: exceptions.RuntimeError

test Package
test_f06_formatting Module

pyNastran/op2

This is the pyNastran.op2.rst file.

op2 Module

Inheritance diagram of pyNastran.op2.op2

Main OP2 class

class pyNastran.op2.op2.OP2(debug=True, log=None, debug_file=None)[source]

Bases: pyNastran.op2.op2_scalar.OP2_Scalar

Initializes the OP2 object

Parameters:
  • debug – enables the debug log and sets the debug in the logger (default=False)
  • log – a logging object to write debug messages to (.. seealso:: import logging)
  • debug_file – sets the filename that will be written to (default=None -> no debug)

Methods

combine_results(combine=True)[source]

we want the data to be in the same format and grouped by subcase, so we take

stress = {
    (1, 'SUPERELEMENT 0') : result1,
    (1, 'SUPERELEMENT 10') : result2,
    (1, 'SUPERELEMENT 20') : result3,
    (2, 'SUPERELEMENT 0') : result4,
}

and convert it to:

stress = {
    1 : result1 + result2 + results3,
    2 : result4,
}
read_op2(op2_filename=None, vectorized=True, combine=True)[source]

Starts the OP2 file reading :param op2_filename: the op2_filename (default=None -> popup) :param vectorized: should the vectorized objects be used (default=True) :param combine: should objects be isubcase based (True) or

(isubcase, subtitle) based (False) The second will be used for superelements regardless of the option (default=True)
set_as_vectorized(ask=False)[source]

Enables vectorization

The code will degenerate to dictionary based results when a result does not support vectorization.

Vectorization is always True here. :param ask: Do you want to see a GUI of result types.

Case # Vectorization Ask Read Modes
1 True True 1, 2
2 True False 1, 2
3 False True 1, 2
4 False False 0

op2_scalar Module

Inheritance diagram of pyNastran.op2.op2_scalar

Defines the OP2 class.

class pyNastran.op2.op2_scalar.OP2_Scalar(debug=False, log=None, debug_file=None)[source]

Bases: pyNastran.op2.tables.lama_eigenvalues.lama.LAMA, pyNastran.op2.tables.oee_energy.onr.ONR, pyNastran.op2.tables.opg_appliedLoads.ogpf.OGPF, pyNastran.op2.tables.oef_forces.oef.OEF, pyNastran.op2.tables.oes_stressStrain.oes.OES, pyNastran.op2.tables.ogs.OGS, pyNastran.op2.tables.opg_appliedLoads.opg.OPG, pyNastran.op2.tables.oqg_constraintForces.oqg.OQG, pyNastran.op2.tables.oug.oug.OUG, pyNastran.op2.tables.ogpwg.OGPWG, pyNastran.op2.fortran_format.FortranFormat

Defines an interface for the Nastran OP2 file.

Methods

Initializes the OP2_Scalar object

Parameters:
  • debug – enables the debug log and sets the debug in the logger (default=False)
  • log – a logging object to write debug messages to (.. seealso:: import logging)
  • debug_file – sets the filename that will be written to (default=None -> no debug)

Methods

finish()[source]

Clears out the data members contained within the self.words variable. This prevents mixups when working on the next table, but otherwise has no effect.

get_marker_n(n)[source]
read_op2(op2_filename=None)[source]

Starts the OP2 file reading

Parameters:op2_filename – the op2 file
op2_filename Description
None a dialog is popped up
string the path is used
read_table_name(rewind=False, stop_on_failure=True)[source]

Reads the next OP2 table name (e.g. OUG1, OES1X1)

remove_unpickable_data()[source]
set_as_vectorized(vectorized=False, ask=False)[source]
set_subcases(subcases=None)[source]

Allows you to read only the subcases in the list of iSubcases

Parameters:subcases – list of [subcase1_ID,subcase2_ID] (default=None; all subcases)
set_transient_times(times)[source]

Takes a dictionary of list of times in a transient case and gets the output closest to those times.

class pyNastran.op2.op2_scalar.TrashWriter(*args, **kwargs)[source]

Bases: object

A dummy file that just trashes all data

Methods

close(*args, **kwargs)[source]
open(*args, **kwargs)[source]
write(*args, **kwargs)[source]

fortran_format Module

Inheritance diagram of pyNastran.op2.fortran_format

class pyNastran.op2.fortran_format.FortranFormat[source]

Bases: object

Parameters:self – the OP2 object pointer

Methods

get_nmarkers(n, rewind=True)[source]

Gets n markers, so if n=2, it will get 2 markers.

Parameters:
  • self – the OP2 object pointer
  • n – number of markers to get
  • rewind – should the file be returned to the starting point
Retval markers:

list of [1, 2, 3, ...] markers

goto(n)[source]

Jumps to position n in the file

Parameters:
  • self – the OP2 object pointer
  • n – the position to goto
isAllSubcases = None

stores if the user entered [] for iSubcases

is_valid_subcase()[source]

Lets the code check whether or not to read a subcase

Parameters:self – the OP2 object pointer
Retval is_valid:
 should this subcase defined by self.isubcase be read?
passer(data)[source]

dummy function used for unsupported tables :param self: the OP2 object pointer

read_block()[source]
Reads a block following a pattern of:
[nbytes, data, nbytes]
Retval data:the data in binary
read_markers(markers)[source]

Gets specified markers, where a marker has the form of [4, value, 4]. The “marker” corresponds to the value, so 3 markers takes up 9 integers. These are used to indicate position in the file as well as the number of bytes to read.

Parameters:
  • self – the OP2 object pointer
  • markers – markers to get; markers = [-10, 1]
show(n, types='ifs')[source]
Parameters:self – the OP2 object pointer
show_data(data, types='ifs')[source]
show_ndata(n, types='ifs')[source]
skip_block()[source]
Skips a block following a pattern of:
[nbytes, data, nbytes]
Parameters:self – the OP2 object pointer
Retval data:since data can never be None, a None value indicates something bad happened.
write_data(f, data, types='ifs')[source]

Useful function for seeing what’s going on locally when debugging.

Parameters:self – the OP2 object pointer
write_ndata(f, n, types='ifs')[source]

Useful function for seeing what’s going on locally when debugging.

Parameters:self – the OP2 object pointer

op2_codes Module

op2_helper Module

pyNastran.op2.op2_helper.polar_to_real_imag(mag, phase)[source]

Converts magnitude-phase to real-imaginary so all complex results are consistent

Parameters:
  • mag – magnitude c^2
  • phase – phase angle phi (degrees; theta)
Returns realValue:
 

the real component a of a+bi

Returns imagValue:
 

the imaginary component b of a+bi

pyNastran.op2.op2_helper.realImagToMagPhase(realImag)[source]

returns the magnitude and phase (degrees) of a complex number

op2_common Module

Inheritance diagram of pyNastran.op2.op2_common

class pyNastran.op2.op2_common.OP2Common[source]

Bases: pyNastran.op2.op2Codes.Op2Codes, pyNastran.f06.f06Writer.F06Writer

Methods

ID = None

the corresponding piece to isubcase used only for SORT2 (not supported)

add_data_parameter(data, var_name, Type, field_num, applyNonlinearFactor=True, fixDeviceCode=False, add_to_dict=True)[source]
apply_data_code_value(name, value)[source]
binary_debug = None

op2 debug file or None (for self.debug=False)

create_transient_object(storageObj, classObj, is_cid=False, debug=False)[source]

Creates a transient object (or None if the subcase should be skippied).

Parameters:
  • storageName – the name of the dictionary to store the object in (e.g. ‘displacements’)
  • classObj – the class object to instantiate
  • debug – developer debug

Note

dt can also be load_step depending on the class

data_code = None

the storage dictionary that is passed to OP2 objects (e.g. DisplacementObject) the key-value pairs are extracted and used to generate dynamic self variables for the OP2 objects

debug = None

should the op2 debugging file be written

debug3()[source]
debug4()[source]
expected_times = None

the list/set/tuple of times/modes/frequencies that should be read currently unused

isStress()[source]
is_complex()[source]
is_mag_phase()[source]
is_magnitude_phase()[source]
is_random()[source]
is_real()[source]
is_sort1()[source]
is_sort2()[source]
is_vectorized = None

bool

isubcase = None

current subcase ID non-transient (SOL101) cases have isubcase set to None transient (or frequency/modal) cases have isubcase set to a int/float value

parse_approach_code(data)[source]
read_mode = None

flag for vectorization 0 - no vectorization 1 - first pass 2 - second pass

result_names = None

the results

setNullNonlinearFactor()[source]
subcases = None

set of all the subcases that have been found

table_name = None

The current table_name (e.g. OES1) None indicates no table_name has been read

words = None

the list of “words” on a subtable 3

exception pyNastran.op2.op2_common.SortCodeError[source]

Bases: exceptions.RuntimeError

op2_f06_common Module

Inheritance diagram of pyNastran.op2.op2_f06_common

class pyNastran.op2.op2_f06_common.OP2_F06_Common[source]

Bases: object

Methods

Title = None

BDF Title

get_f06_stats()[source]
get_op2_stats()[source]

Gets info about the contents of the different attributes of the OP2 class.

get_table_types()[source]

Gets the names of the results.

iSubcaseNameMap = None

a dictionary that maps an integer of the subcaseName to the subcaseID

data_in_material_coord Module

vector_utils Module

pyNastran.op2.vector_utils.abs_max_min(values, global_abs_max=True)[source]
pyNastran.op2.vector_utils.abs_max_min_global(values)[source]

This is useful for figuring out absolute max or min principal stresses across single/multiple elements and finding a global max/min value.

Parameters:values (common NDARRAY/list/tuple shapes: 1. [nprincipal_stresses] 2. [nelements, nprincipal_stresses]) – an ND-array of values
Returns abs_max_mins:
 an array of the max or min principal stress
nvalues >= 1
>>> element1 = [0.0, -1.0, 2.0]  # 2.0
>>> element2 = [0.0, -3.0, 2.0]  # -3.0
>>> values = abs_max_min_global([element1, element2])
>>> values
-3.0
>>> element1 = [0.0, -1.0, 2.0]  # 2.0
>>> values = abs_max_min_global([element1])
>>> values
2.0

Note

[3.0, 2.0, -3.0] will return 3.0, and [-3.0, 2.0, 3.0] will return 3.0

pyNastran.op2.vector_utils.abs_max_min_vector(values)[source]

This is useful for figuring out principal stresses across multiple elements.

Parameters:values (NDARRAY shape=[nelements, nprincipal_stresses]) – an array of values, where the rows are interated over and the columns are going to be compressed
Returns abs_max_mins:
 an array of the max or min principal stress
::
>>> element1 = [0.0,  1.0, 2.0]  # 2.0
>>> element2 = [0.0, -1.0, 2.0]  # 2.0
>>> element3 = [0.0, -3.0, 2.0]  # -3.0
>>> values = [element1 element2, element3]
>>> values0 = abs_max_min_vectorized(values)
>>> values0
[2.0, 2.0, -3.0]

Note

[3.0, 2.0, -3.0] will return 3.0, and [-3.0, 2.0, 3.0] will return 3.0

pyNastran.op2.vector_utils.iformat(Format, precision=2)[source]
pyNastran.op2.vector_utils.test_abs_max_min_global()[source]
pyNastran.op2.vector_utils.test_abs_max_min_vector()[source]
resultObjects Package
grid_point_weight Module
op2_objects Module
element_table_object Module
table_object Module
tables Package
grid_point_weight Module
ogs Module

Inheritance diagram of pyNastran.op2.tables.ogs

class pyNastran.op2.tables.ogs.OGS[source]

Bases: pyNastran.op2.op2_common.OP2Common

Methods

ogpwg Module

Inheritance diagram of pyNastran.op2.tables.ogpwg

class pyNastran.op2.tables.ogpwg.OGPWG[source]

Bases: pyNastran.op2.op2_common.OP2Common

Methods

geom Package
dit Module

Inheritance diagram of pyNastran.op2.tables.geom.dit

class pyNastran.op2.tables.geom.dit.DIT[source]

Bases: object

Methods

readGust(data, n)[source]

GUST(1005,10,174) - the marker for Record 1

readTable1(func, data, n)[source]
readTable2(func, data)[source]
readTable3(func, data)[source]
readTableD1(data, n)[source]

TABLED1(1105,11,133) - the marker for Record 4

readTableD2(data, n)[source]

TABLED2(1205,12,134) - the marker for Record 5

readTableD3(data, n)[source]

TABLED3(1305,13,140) - the marker for Record 6

readTableM1(data, n)[source]

TABLEM1(105,1,93) - the marker for Record 9

readTableM2(data, n)[source]

TABLEM2(205,2,94) - the marker for Record 10

readTableM3(data, n)[source]

TABLEM3(305,3,95) - the marker for Record 11

readTableM4(data, n)[source]

TABLEM4(405,4,96) - the marker for Record 12

dynamics Module

Inheritance diagram of pyNastran.op2.tables.geom.dynamics

class pyNastran.op2.tables.geom.dynamics.DYNAMICS[source]

Bases: object

Methods

readDArea(data, n)[source]

DAREA(27,17,182) - the marker for Record 2

readDLoad(data, n)[source]

DLOAD(57,5,123) - Record 4

readDPhase(data, n)[source]

DPHASE(77,19,184) - Record 5

readDelay(data, n)[source]

DELAY(37,18,183) - Record 3

readEPoint(data, n)[source]

EPOINT(707,7,124) - Record 12

readEigb(data, n)[source]

EIGB(107,1,86) - Record 7

readEigc(data, n)[source]

EIGC(207,2,87) - Record 8

readEigp(data, n)[source]

EIGP(257,4,158) - Record 9

readEigr(data, n)[source]

EIGR(307,3,85) - Record 10

readEigrl(data, n)[source]

EIGRL(308,8,348) - Record 11

readFreq(data, n)[source]

FREQ(1307,13,126) - Record 13

readFreq1(data, n)[source]

FREQ1(1007,10,125) - Record 14

readFreq2(data, n)[source]

FREQ2(1107,11,166) - Record 15

readFreq3(data, n)[source]

FREQ3(1407,14,39) - Record 16

readFreq4(data, n)[source]

FREQ4(1507,15,40) - Record 17

readFreq5(data, n)[source]

FREQ5(1607,16,41) - Record 18

readRLoad1(data, n)[source]

RLOAD1(5107,51,131) - Record 26

readRLoad2(data, n)[source]

RLOAD2(5107,51,131) - Record 27

readTLoad1(data, n)[source]

TLOAD1(7107,71,138) - Record 37

readTLoad2(data, n)[source]

TLOAD2(7207,72,139) - Record 37

readTStep(data, n)[source]

TSTEP(8307,83,142) - Record 38

geom1 Module

Inheritance diagram of pyNastran.op2.tables.geom.geom1

class pyNastran.op2.tables.geom.geom1.GEOM1[source]

Bases: object

Methods

add_coord(coord, allowOverwrites=True)[source]
add_node(node, allowOverwrites=True)[source]
geom2 Module

Inheritance diagram of pyNastran.op2.tables.geom.geom2

class pyNastran.op2.tables.geom.geom2.GEOM2[source]

Bases: object

Methods

addOp2Element(elem)[source]
add_SPOINT(spooint)[source]
add_element(elem, allowOverwrites=True)[source]
runCQUAD(data, n, Element)[source]

common method for CQUAD, CQUADX

runCQUAD4(data, n, Element)[source]

common method for CQUAD4, CQUADR

geom3 Module

Inheritance diagram of pyNastran.op2.tables.geom.geom3

class pyNastran.op2.tables.geom.geom3.GEOM3[source]

Bases: object

Methods

add_load(load)[source]
add_thermal_load(load)[source]
geom4 Module

Inheritance diagram of pyNastran.op2.tables.geom.geom4

class pyNastran.op2.tables.geom.geom4.GEOM4[source]

Bases: object

Methods

add_constraint_SPC(constraint)[source]
add_rigid_element(constraint)[source]
add_suport(constraint)[source]
ept Module

Inheritance diagram of pyNastran.op2.tables.geom.ept

class pyNastran.op2.tables.geom.ept.EPT[source]

Bases: object

Methods

addOp2Property(prop)[source]
add_property(card, allowOverwrites=True)[source]
mpt Module

Inheritance diagram of pyNastran.op2.tables.geom.mpt

class pyNastran.op2.tables.geom.mpt.MPT[source]

Bases: object

Methods

addOp2Material(mat)[source]
add_NLPARM(card, allowOverwrites=True)[source]
add_TSTEPNL(card, allowOverwrites=True)[source]
add_creep_material(material, allowOverwrites=True)[source]
add_material_dependence(material, allowOverwrites=True)[source]
add_structural_material(material, allowOverwrites=True)[source]
add_thermal_material(material, allowOverwrites=True)[source]
lama_eigenvalues Package
lama Module

Inheritance diagram of pyNastran.op2.tables.lama_eigenvalues.lama

class pyNastran.op2.tables.lama_eigenvalues.lama.LAMA[source]

Bases: pyNastran.op2.op2_common.OP2Common

Methods

lama_objects Module

Inheritance diagram of pyNastran.op2.tables.lama_eigenvalues.lama_objects

class pyNastran.op2.tables.lama_eigenvalues.lama_objects.BucklingEigenvalues(title)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.BaseScalarObject

Methods

addF06Line(data)[source]
get_stats()[source]
isBuckling()[source]
isComplex()[source]
isReal()[source]
write_f06(f, header, page_stamp, page_num=1)[source]
class pyNastran.op2.tables.lama_eigenvalues.lama_objects.ComplexEigenvalues(title)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.BaseScalarObject

Methods

addF06Line(data)[source]
add_f06_data(data)[source]
get_stats()[source]
isComplex()[source]
isReal()[source]
write_f06(f, header, page_stamp, page_num=1)[source]
class pyNastran.op2.tables.lama_eigenvalues.lama_objects.RealEigenvalues(title)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.BaseScalarObject

Methods

addF06Line(data)[source]
add_f06_data(data)[source]
get_stats()[source]
isComplex()[source]
isReal()[source]
write_f06(f, header, page_stamp, page_num=1)[source]
oee_energy Package
onr Module

Inheritance diagram of pyNastran.op2.tables.oee_energy.onr

class pyNastran.op2.tables.oee_energy.onr.ONR[source]

Bases: pyNastran.op2.op2_common.OP2Common

Methods

oee_objects Module

Inheritance diagram of pyNastran.op2.tables.oee_energy.oee_objects

class pyNastran.op2.tables.oee_energy.oee_objects.RealStrainEnergy(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

                           E L E M E N T   S T R A I N   E N E R G I E S

ELEMENT-TYPE = QUAD4      * TOTAL ENERGY OF ALL ELEMENTS IN PROBLEM     =   9.817708E+08
SUBCASE               1   * TOTAL ENERGY OF ALL ELEMENTS IN SET       1 =   4.192036E+08

   ELEMENT-ID   STRAIN-ENERGY  PERCENT OF TOTAL  STRAIN-ENERGY-DENSITY
           12   2.291087E+07        2.3336            2.291087E+02
           13   1.582968E+07        1.6124            1.055312E+02
           14   6.576075E+07        6.6982            3.288037E+02

Methods

add(dt, out)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, out)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
update_dt(data_code, dt)[source]

this method is called if the object already exits and a new time step is found

oef_forces Package
oef Module

Inheritance diagram of pyNastran.op2.tables.oef_forces.oef

class pyNastran.op2.tables.oef_forces.oef.OEF[source]

Bases: pyNastran.op2.op2_common.OP2Common

Methods

OEF_ForceCode()[source]

Gets the numwide codes for the element to determine if the real or complex result should be found. The format and sort codes do not always give the right answer...

print_obj_name_on_crash(func)[source]

Debugging function to print the object name and an needed parameters

oef_complexForceObjects Module

Inheritance diagram of pyNastran.op2.tables.oef_forces.oef_complexForceObjects

class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexBendForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexCBarForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexCBeamForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addNewElementSort1(dt, data)[source]
addNewElementSort2(eid, data)[source]
addSort2(eid, data)[source]
add_new_element(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexCBushForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexCShearForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexDamperForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexForce_VU(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nNodes, dt, data)[source]
addSort2(nNodes, eid, data)[source]
add_new_transient(dt)[source]
add_sort1(nNodes, dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexForce_VU_2D(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nNodes, dt, data)[source]
addSort2(nNodes, eid, data)[source]
add_new_transient(dt)[source]
add_sort1(nNodes, dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexPentaPressureForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexPlate2Force(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(eid, dt, data)[source]
addNewElementSort1(eid, dt, data)[source]
addNewElementSort2(dt, eid, data)[source]
addSort2(dt, eid, data)[source]
add_new_element(eid, dt, data)[source]
add_new_transient(dt)[source]
add_sort1(eid, dt, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexPlateForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, eid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_new_transient(dt)[source]
add_sort1(dt, eid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_sort2(eid, dt, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexRodForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexSpringForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_complexForceObjects.ComplexViscForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
oef_forceObjects Module

Inheritance diagram of pyNastran.op2.tables.oef_forces.oef_forceObjects

class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealBendForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealCBar100Force(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealCBarForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealCBeamForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addNewElementSort1(dt, data)[source]
addNewElementSort2(eid, data)[source]
add_f06_data(data, dt=None)[source]
add_new_element(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealCBushForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealCGapForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealCShearForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_f06_data(data, dt=None)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealConeAxForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealConrodForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oef_forces.oef_forceObjects.RealRodForce

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealCtubeForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oef_forces.oef_forceObjects.RealRodForce

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealDamperForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealForce_VU(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nNodes, dt, data)[source]
add_new_transient(dt)[source]
add_sort1(nNodes, dt, data)[source]
add_sort2(nNodes, eid, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealForce_VU_2D(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nNodes, dt, data)[source]
add_new_transient(dt)[source]
add_sort1(nNodes, dt, data)[source]
add_sort2(nNodes, eid, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealPentaPressureForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealPlateBilinearForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(eid, dt, nid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
addNewElementSort1(eid, dt, term, nid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
addNewElementSort2(dt, eid, term, nid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_f06_data(dt, data, element_name, ngrids)[source]
add_new_element(eid, dt, term, nid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_new_transient(dt)[source]
add_sort1(eid, dt, nid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_sort2(dt, eid, nid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealPlateForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, eid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_f06_data(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, eid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_sort2(eid, dt, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealPlateForceArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, eid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_sort1(dt, eid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
add_sort2(eid, mx, my, mxy, bmx, bmy, bmxy, tx, ty)[source]
build()[source]
eid_to_element_node_index(eids)[source]
get_element_index(eids)[source]
get_f06_header(is_mag_phase=True)[source]
get_headers()[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealRodForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, eid, axialForce, torque)[source]
add_f06_data(data, transient)[source]
add_new_transient(dt)[source]
add_sort1(dt, eid, axialForce, torque)[source]
add_sort2(eid, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealRodForceArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, eid, axial, torque)[source]
add_sort1(dt, eid, axial, torque)[source]
build()[source]
eid_to_element_node_index(eids)[source]
get_element_index(eids)[source]
get_f06_header(is_mag_phase=True)[source]
get_headers()[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealSpringForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_f06_data(data, dt)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oef_forces.oef_forceObjects.RealViscForce(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
add_sort2(eid, data)[source]
get_stats()[source]
oef_Objects Module

Inheritance diagram of pyNastran.op2.tables.oef_forces.oef_Objects

class pyNastran.op2.tables.oef_forces.oef_Objects.NonlinearFlux(data_code, isubcase, load_step)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nodeID, eType, v1, v2, v3, v4=None, v5=None, v6=None)[source]
add_new_transient()[source]

initializes the transient variables .. note:: make sure you set self.dt first

update_dt(data_code, load_step)[source]
oef_thermalObjects Module

Inheritance diagram of pyNastran.op2.tables.oef_forces.oef_thermalObjects

class pyNastran.op2.tables.oef_forces.oef_thermalObjects.HeatFlux_1D(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_thermalObjects.HeatFlux_2D_3D(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_thermalObjects.HeatFlux_CHBDYx(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_thermalObjects.HeatFlux_CONV(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, data)[source]
addSort2(eid, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_thermalObjects.HeatFlux_VU(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nNodes, dt, data)[source]
addSort2(nNodes, eid, data)[source]
add_new_transient(dt)[source]
add_sort1(nNodes, dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_thermalObjects.HeatFlux_VUBEAM(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nNodes, dt, data)[source]
addSort2(nNodes, eid, data)[source]
add_new_transient(dt)[source]
add_sort1(nNodes, dt, data)[source]
get_stats()[source]
class pyNastran.op2.tables.oef_forces.oef_thermalObjects.HeatFlux_VU_3D(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nNodes, dt, data)[source]
addSort2(nNodes, eid, data)[source]
add_new_transient(dt)[source]
add_sort1(nNodes, dt, data)[source]
get_stats()[source]
oes_stressStrain Package
oes Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.oes

Contains the OES class that is used to read stress/strain data

class pyNastran.op2.tables.oes_stressStrain.oes.OES[source]

Bases: pyNastran.op2.op2_common.OP2Common

Defines the OES class that is used to read stress/strain data

Methods

OESRT_CQUAD4_95(data)[source]
print_obj_name_on_crash(func)[source]

Debugging function to print the object name and an needed parameters

oes_nonlinear Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.oes_nonlinear

class pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.HyperelasticQuad(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

add_new_eid_sort1(dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, eid, data)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearQuad(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

add_new_eid_sort1(eType, dt, data)[source]
add_new_transient(dt)[source]
add_sort1(dt, data)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=None)[source]
class pyNastran.op2.tables.oes_stressStrain.oes_nonlinear.NonlinearRod(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

add_new_transient(dt)[source]
add_sort1(eType, dt, data)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
ELEMENT-ID =     102
                         N O N L I N E A R   S T R E S S E S   I N   R O D   E L E M E N T S      ( C R O D )
  TIME          AXIAL STRESS         EQUIVALENT         TOTAL STRAIN       EFF. STRAIN          EFF. CREEP        LIN. TORSIONAL
                                       STRESS                             PLASTIC/NLELAST          STRAIN              STRESS
2.000E-02        1.941367E+01        1.941367E+01        1.941367E-04        0.0                 0.0                 0.0
3.000E-02        1.941367E+01        1.941367E+01        1.941367E-04        0.0                 0.0                 0.0
complex Package
oes_bars Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.complex.oes_bars

class pyNastran.op2.tables.oes_stressStrain.complex.oes_bars.ComplexBarStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

# s_code=10
S T R A I N S I N B A R E L E M E N T S ( C B A R )
ELEMENT SA1 SA2 SA3 SA4 AXIAL SA-MAX SA-MIN M.S.-T
ID. SB1 SB2 SB3 SB4 STRAIN SB-MAX SB-MIN M.S.-C

Methods

add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, e1a, e2a, e3a, e4a, axial, e1b, e2b, e3b, e4b)[source]
add_new_eid_sort1(eType, dt, eid, e1a, e2a, e3a, e4a, axial, e1b, e2b, e3b, e4b)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_bars.ComplexBarStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# s_code=0
C O M P L E X S T R E S S E S I N B A R E L E M E N T S ( C B A R )
(MAGNITUDE/PHASE)
ELEMENT LOCATION LOCATION LOCATION LOCATION AVERAGE

ID. 1 2 3 4 AXIAL STRESS

1 ENDA 9.331276E+04 9.331276E+04 9.331276E+04 9.331276E+04 0.0
180.0000 0.0 0.0 180.0000 0.0

Methods

addNewEid100(dt, out)[source]
add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, s1a, s2a, s3a, s4a, axial, s1b, s2b, s3b, s4b)[source]
add_new_eid_sort1(eType, dt, eid, s1a, s2a, s3a, s4a, axial, s1b, s2b, s3b, s4b)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oes_bush Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.complex.oes_bush

class pyNastran.op2.tables.oes_stressStrain.complex.oes_bush.ComplexBushStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

# s_code=10
S T R A I N S I N B A R E L E M E N T S ( C B A R )
ELEMENT SA1 SA2 SA3 SA4 AXIAL SA-MAX SA-MIN M.S.-T
ID. SB1 SB2 SB3 SB4 STRAIN SB-MAX SB-MIN M.S.-C

Methods

add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, tx, ty, tz, rx, ry, rz)[source]
add_new_eid_sort1(eType, dt, eid, tx, ty, tz, rx, ry, rz)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_bush.ComplexBushStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# s_code=0
C O M P L E X S T R E S S E S I N B A R E L E M E N T S ( C B A R )
(MAGNITUDE/PHASE)
ELEMENT LOCATION LOCATION LOCATION LOCATION AVERAGE

ID. 1 2 3 4 AXIAL STRESS

1 ENDA 9.331276E+04 9.331276E+04 9.331276E+04 9.331276E+04 0.0
180.0000 0.0 0.0 180.0000 0.0

Methods

add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, tx, ty, tz, rx, ry, rz)[source]
add_new_eid_sort1(eType, dt, eid, tx, ty, tz, rx, ry, rz)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
oes_bush1d Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.complex.oes_bush1d

class pyNastran.op2.tables.oes_stressStrain.complex.oes_bush1d.ComplexBush1DStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# s_code=0
C O M P L E X S T R E S S E S I N B A R E L E M E N T S ( C B A R )
(MAGNITUDE/PHASE)
ELEMENT LOCATION LOCATION LOCATION LOCATION AVERAGE

ID. 1 2 3 4 AXIAL STRESS

1 ENDA 9.331276E+04 9.331276E+04 9.331276E+04 9.331276E+04 0.0
180.0000 0.0 0.0 180.0000 0.0

Methods

add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, fe, ue, ao, ae)[source]
add_new_eid_sort1(eType, dt, eid, fe, ue, ao, ae)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oes_plates Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.complex.oes_plates

class pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add(dt, eid, gridC, fdr, oxx, oyy, txy)[source]
addNewNode(dt, eid, gridc, fdr, oxx, oyy, txy)[source]
add_eid_sort1(eType, dt, eid, node_id, fdr, oxx, oyy, txy)[source]
add_new_eid(eType, dt, eid, node_id, fdr, oxx, oyy, txy)[source]
build()[source]
get_nnodes()[source]
get_stats()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

# ??? - is this just 11
ELEMENT      STRAIN               STRAINS IN ELEMENT COORD SYSTEM             PRINCIPAL  STRAINS (ZERO SHEAR)
  ID.       CURVATURE          NORMAL-X       NORMAL-Y      SHEAR-XY       ANGLE         MAJOR           MINOR        VON MISES

# s_code=11
                       S T R A I N S   I N   Q U A D R I L A T E R A L   E L E M E N T S   ( Q U A D 4 )        OPTION = BILIN
ELEMENT              STRAIN            STRAINS IN ELEMENT COORD SYSTEM         PRINCIPAL  STRAINS (ZERO SHEAR)
  ID      GRID-ID   CURVATURE       NORMAL-X      NORMAL-Y      SHEAR-XY      ANGLE        MAJOR         MINOR       VON MISES

# s_code=15
                       S T R A I N S   I N   Q U A D R I L A T E R A L   E L E M E N T S   ( Q U A D 4 )
ELEMENT      FIBER                STRAINS IN ELEMENT COORD SYSTEM             PRINCIPAL  STRAINS (ZERO SHEAR)
  ID.       DISTANCE           NORMAL-X       NORMAL-Y      SHEAR-XY       ANGLE         MAJOR           MINOR        VON MISES

# s_code=10
                       S T R A I N S   I N   Q U A D R I L A T E R A L   E L E M E N T S   ( Q U A D 4 )        OPTION = BILIN
ELEMENT              STRAIN            STRAINS IN ELEMENT COORD SYSTEM         PRINCIPAL  STRAINS (ZERO SHEAR)          MAX
  ID      GRID-ID   CURVATURE       NORMAL-X      NORMAL-Y      SHEAR-XY      ANGLE        MAJOR         MINOR         SHEAR

Methods

add_f06_data(data, transient)[source]
add_new_eid_sort1(eType, dt, eid, node_id, curvature, exx, eyy, exy)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, node_id, curvature, exx, eyy, exy)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

class pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

            C O M P L E X   S T R E S S E S   I N   Q U A D R I L A T E R A L   E L E M E N T S   ( Q U A D 8 )
                                                      (REAL/IMAGINARY)

ELEMENT              FIBRE                                  - STRESSES IN ELEMENT  COORDINATE SYSTEM -
  ID      GRID-ID   DISTANCE                 NORMAL-X                        NORMAL-Y                       SHEAR-XY
0 100 CEN/8 -2.500000E-02 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0
2.500000E-02 0.0 / 0.0 0.0 / 0.0 0.0 / 0.0

Methods

addNewNodeSort1(dt, eid, node_id, fdr, oxx, oyy, txy)[source]
add_f06_data(data, transient)[source]
add_new_eid_sort1(eType, dt, eid, node_id, fdr, oxx, oyy, txy)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, node_id, fdr, oxx, oyy, txy)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.ComplexPlateArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

pyNastran.op2.tables.oes_stressStrain.complex.oes_plates.get_nnodes(self)[source]
oes_rods Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.complex.oes_rods

class pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodDamper(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

class pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

add_f06_data(data, transient)[source]
add_new_eid(dt, eid, axial, torsion)[source]
add_new_eid_sort1(dt, eid, axial, torsion)[source]
add_new_eid_sort2(eid, dt, out)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_transients()[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_rods.ComplexRodStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

add_f06_data(data, transient)[source]
add_new_eid(dt, eid, axial, torsion)[source]
add_new_eid_sort1(dt, eid, axial, torsion)[source]
add_new_eid_sort2(eid, dt, axial, torsion)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
getLength()[source]
get_transients()[source]
oes_shear Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.complex.oes_shear

class pyNastran.op2.tables.oes_stressStrain.complex.oes_shear.ComplexShearStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

add_f06_data(data, dt)[source]
add_new_eid_sort1(dt, eid, out)[source]
add_new_eid_sort2(eid, dt, out)[source]
add_new_transient(dt)[source]

initializes the transient variables .. note:: make sure you set self.dt first

delete_transient(dt)[source]
getLength()[source]
get_stats()[source]
get_transients()[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_shear.ComplexShearStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# format_code=1 sort_code=0 stressCode=0
                               S T R E S S E S   I N   S H E A R   P A N E L S      ( C S H E A R )
ELEMENT            MAX            AVG        SAFETY         ELEMENT            MAX            AVG        SAFETY
  ID.             SHEAR          SHEAR       MARGIN           ID.             SHEAR          SHEAR       MARGIN
    328        1.721350E+03   1.570314E+03   7.2E+01

Methods

add_f06_data(data, dt)[source]
add_new_eid_sort1(dt, eid, out)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
oes_solids Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.complex.oes_solids

class pyNastran.op2.tables.oes_stressStrain.complex.oes_solids.ComplexSolidArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add_eid_sort1(element_num, element_type, dt, eid, cid, ctype, nodef)[source]
add_node_sort1(dt, eid, grid, inode, ex, ey, ez, etxy, etyz, etzx)[source]
build()[source]
combine(results)[source]
get_nnodes()[source]
get_stats()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_solids.ComplexSolidStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

add_eid_sort1(element_num, eType, dt, eid, cid, ctype, nodef)[source]
add_f06_data(data, transient)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_node_sort1(dt, eid, node_id, inode, ex, ey, ez, etxy, etyz, etzx)[source]
delete_transient(dt)[source]
directional_vectors(exx, eyy, ezz, exy, eyz, exz)[source]
get_headers()[source]
get_stats()[source]
get_transients()[source]
processF06Data()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_solids.ComplexSolidStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.complex.oes_solids.ComplexSolidArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_solids.ComplexSolidStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

add_eid_sort1(element_num, eType, dt, eid, cid, ctype, nodef)[source]
add_f06_data(data, transient)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_node_sort1(dt, eid, node_id, inode, oxx, oyy, ozz, txy, tyz, tzx)[source]
delete_transient(dt)[source]
directional_vectors(oxx, oyy, ozz, txy, tyz, txz)[source]
get_headers()[source]
get_stats()[source]
get_transients()[source]
processF06Data()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_solids.ComplexSolidStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.complex.oes_solids.ComplexSolidArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
pyNastran.op2.tables.oes_stressStrain.complex.oes_solids.get_f06_header(self, is_mag_phase=True)[source]
oes_springs Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.complex.oes_springs

class pyNastran.op2.tables.oes_stressStrain.complex.oes_springs.ComplexCelasStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

add_new_eid(dt, eid, strain)[source]
add_new_eid_sort1(dt, eid, strain)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_transients()[source]
class pyNastran.op2.tables.oes_stressStrain.complex.oes_springs.ComplexCelasStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

                          S T R E S S E S   I N   S C A L A R   S P R I N G S        ( C E L A S 2 )
    TIME         STRESS              TIME         STRESS              TIME         STRESS              TIME         STRESS
0.0            0.0               5.000000E-02   0.0               1.000000E-01   0.0               1.500000E-01   0.0
2.000000E-01   0.0               2.500000E-01   0.0               3.000000E-01   0.0               3.500000E-01   0.0

Methods

add_new_eid(dt, eid, stress)[source]
add_new_eid_sort1(dt, eid, stress)[source]
add_new_eid_sort2(eid, dt, stress)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]

Todo

doesnt write...

random Package
real Package
oes_bars Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_bars

class pyNastran.op2.tables.oes_stressStrain.real.oes_bars.RealBarArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add_new_eid(eType, dt, eid, s1a, s2a, s3a, s4a, axial, smaxa, smina, MSt, s1b, s2b, s3b, s4b, smaxb, sminb, MSc)[source]
add_new_eid_sort1(eType, dt, eid, s1a, s2a, s3a, s4a, axial, smaxa, smina, MSt, s1b, s2b, s3b, s4b, smaxb, sminb, MSc)[source]
build()[source]
eid_to_element_node_index(eids)[source]
get_element_index(eids)[source]
get_headers()[source]
get_stats()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_bars.RealBarStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

# s_code=10
                                 S T R A I N S   I N   B A R   E L E M E N T S          ( C B A R )
ELEMENT        SA1            SA2            SA3            SA4           AXIAL          SA-MAX         SA-MIN     M.S.-T
  ID.          SB1            SB2            SB3            SB4           STRAIN         SB-MAX         SB-MIN     M.S.-C

Methods

add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, e1a, e2a, e3a, e4a, axial, emaxa, emina, MSt, e1b, e2b, e3b, e4b, emaxb, eminb, MSc)[source]
add_new_eid_sort1(eType, dt, eid, e1a, e2a, e3a, e4a, axial, emaxa, emina, MSt, e1b, e2b, e3b, e4b, emaxb, eminb, MSc)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_bars.RealBarStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_bars.RealBarArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_bars.RealBarStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# s_code=0
                           S T R E S S E S   I N   B A R   E L E M E N T S          ( C B A R )
ELEMENT        SA1            SA2            SA3            SA4           AXIAL          SA-MAX         SA-MIN     M.S.-T
  ID.          SB1            SB2            SB3            SB4           STRESS         SB-MAX         SB-MIN     M.S.-C

Methods

addNewEid100(dt, out)[source]
add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, s1a, s2a, s3a, s4a, axial, smaxa, smina, MSt, s1b, s2b, s3b, s4b, smaxb, sminb, MSc)[source]
add_new_eid_sort1(eType, dt, eid, s1a, s2a, s3a, s4a, axial, smaxa, smina, MSt, s1b, s2b, s3b, s4b, smaxb, sminb, MSc)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
getLength()[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_bars.RealBarStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_bars.RealBarArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
oes_beams Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_beams

class pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealBeamArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add(dt, eid, out)[source]
add_new_eid(dt, eid, out)[source]
add_new_eid_sort1(dt, eid, out)[source]
add_sort1(dt, eid, out)[source]
build()[source]
get_headers()[source]
get_stats()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealBeamStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

add(dt, eid, out)[source]
add_f06_data(data, dt)[source]
add_new_eid(dt, eid, out)[source]
add_new_eid_sort1(dt, eid, out)[source]
add_new_transient(dt)[source]

initializes the transient variables .. note:: make sure you set self.dt first

add_sort1(dt, eid, out)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealBeamStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealBeamArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealBeamStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

[1,0,0]
             S T R E S S E S   I N   B E A M   E L E M E N T S        ( C B E A M )
                  STAT DIST/
 ELEMENT-ID  GRID   LENGTH    SXC           SXD           SXE           SXF           S-MAX         S-MIN         M.S.-T   M.S.-C
        1       1   0.000   -3.125000E+04 -3.125000E+04 -3.125000E+04 -3.125000E+04 -3.125000E+04 -3.125000E+04
                2   1.000   -3.125000E+04 -3.125000E+04 -3.125000E+04 -3.125000E+04 -3.125000E+04 -3.125000E+04

Methods

add(dt, eid, out)[source]
add_f06_data(data, dt)[source]
add_new_eid(dt, eid, out)[source]
add_new_eid_sort1(dt, eid, out)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, out)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealBeamStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealBeamArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealNonlinearBeamArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add_new_eid_sort1(dt, eid, out)[source]
build()[source]
get_headers()[source]
get_stats()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealNonlinearBeamStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_beams.RealNonlinearBeamArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
oes_bush Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_bush

class pyNastran.op2.tables.oes_stressStrain.real.oes_bush.RealBushStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, tx, ty, tz, rx, ry, rz)[source]
add_new_eid_sort1(eType, dt, eid, tx, ty, tz, rx, ry, rz)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_bush.RealBushStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, tx, ty, tz, rx, ry, rz)[source]
add_new_eid_sort1(eType, dt, eid, tx, ty, tz, rx, ry, rz)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oes_bush1d Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_bush1d

class pyNastran.op2.tables.oes_stressStrain.real.oes_bush1d.RealBush1DStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# s_code=0
C O M P L E X S T R E S S E S I N B A R E L E M E N T S ( C B A R )
(MAGNITUDE/PHASE)
ELEMENT LOCATION LOCATION LOCATION LOCATION AVERAGE

ID. 1 2 3 4 AXIAL STRESS

1 ENDA 9.331276E+04 9.331276E+04 9.331276E+04 9.331276E+04 0.0
180.0000 0.0 0.0 180.0000 0.0

Methods

add_f06_data(data, transient)[source]
add_new_eid(eType, dt, eid, fe, ue, ve, ao, ae, ep, fail)[source]
add_new_eid_sort1(eType, dt, eid, fe, ue, ve, ao, ae, ep, fail)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
oes_compositePlates Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates

class pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.RealCompositePlateArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add(dt, eid, layer, o11, o22, t12, t1z, t2z, angle, major, minor, ovm)[source]
add_new_eid(eType, dt, eid, layer, o11, o22, t12, t1z, t2z, angle, major, minor, ovm)[source]
add_new_eid_sort1(eType, dt, eid, layer, o11, o22, t12, t1z, t2z, angle, major, minor, ovm)[source]
add_sort1(dt, eid, layer, o11, o22, t12, t1z, t2z, angle, major, minor, ovm)[source]
build()[source]
eid_to_element_node_index(eids)[source]
get_element_index(eids)[source]
get_f06_header(is_mag_phase=True)[source]
get_headers()[source]
get_stats()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.RealCompositePlateStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

???
ELEMENT  PLY  STRESSES IN FIBER AND MATRIX DIRECTIONS    INTER-LAMINAR  STRESSES  PRINCIPAL STRESSES (ZERO SHEAR)      MAX
  ID      ID    NORMAL-1     NORMAL-2     SHEAR-12     SHEAR XZ-MAT  SHEAR YZ-MAT  ANGLE    MAJOR        MINOR        SHEAR

Methods

add(dt, eid, layer, e11, e22, e12, e1z, e2z, angle, majorP, minorP, evm)[source]
add_f06_data(data, transient, eType)[source]
               S T R E S S E S   I N   L A Y E R E D   C O M P O S I T E   E L E M E N T S   ( Q U A D 4 )
ELEMENT  PLY  STRESSES IN FIBER AND MATRIX DIRECTIONS    INTER-LAMINAR  STRESSES  PRINCIPAL STRESSES (ZERO SHEAR)      MAX
  ID      ID    NORMAL-1     NORMAL-2     SHEAR-12     SHEAR XZ-MAT  SHEAR YZ-MAT  ANGLE    MAJOR        MINOR        SHEAR
    151    1  -1.02406E+04  4.18348E+05  4.14359E+02   -8.62021E+00  1.86352E+04   89.94  4.18348E+05 -1.02410E+04  2.14295E+05
add_new_eid(eType, dt, eid, layer, e11, e22, e12, e1z, e2z, angle, majorP, minorP, evm)[source]

all points are located at the centroid

add_new_eid_sort1(eType, dt, eid, layer, e11, e22, e12, e1z, e2z, angle, majorP, minorP, evm)[source]

all points are located at the centroid

add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, layer, e11, e22, e12, e1z, e2z, angle, majorP, minorP, evm)[source]
delete_transient(dt)[source]
getHeaders()[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.RealCompositePlateStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.RealCompositePlateArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

get_headers()[source]
isStrain()[source]
isStress()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.RealCompositePlateStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# s_code = 0
                S T R E S S E S   I N   L A Y E R E D   C O M P O S I T E   E L E M E N T S   ( Q U A D 4 )
ELEMENT  PLY  STRESSES IN FIBER AND MATRIX DIRECTIONS    INTER-LAMINAR  STRESSES  PRINCIPAL STRESSES (ZERO SHEAR)      MAX
  ID      ID    NORMAL-1     NORMAL-2     SHEAR-12     SHEAR XZ-MAT  SHEAR YZ-MAT  ANGLE    MAJOR        MINOR        SHEAR

Methods

add(dt, eid, layer, o11, o22, t12, t1z, t2z, angle, majorP, minorP, ovm)[source]
add_f06_data(data, transient, eType)[source]
               S T R E S S E S   I N   L A Y E R E D   C O M P O S I T E   E L E M E N T S   ( Q U A D 4 )
ELEMENT  PLY  STRESSES IN FIBER AND MATRIX DIRECTIONS    INTER-LAMINAR  STRESSES  PRINCIPAL STRESSES (ZERO SHEAR)      MAX
  ID      ID    NORMAL-1     NORMAL-2     SHEAR-12     SHEAR XZ-MAT  SHEAR YZ-MAT  ANGLE    MAJOR        MINOR        SHEAR
    151    1  -1.02406E+04  4.18348E+05  4.14359E+02   -8.62021E+00  1.86352E+04   89.94  4.18348E+05 -1.02410E+04  2.14295E+05
add_new_eid(eType, dt, eid, layer, o11, o22, t12, t1z, t2z, angle, majorP, minorP, ovm)[source]

all points are located at the centroid

add_new_eid_sort1(eType, dt, eid, layer, o11, o22, t12, t1z, t2z, angle, majorP, minorP, ovm)[source]

all points are located at the centroid

add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, layer, o11, o22, t12, t1z, t2z, angle, majorP, minorP, ovm)[source]
delete_transient(dt)[source]
getHeaders()[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.RealCompositePlateStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_compositePlates.RealCompositePlateArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
isStrain()[source]
isStress()[source]
oes_gap Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_gap

class pyNastran.op2.tables.oes_stressStrain.real.oes_gap.NonlinearGapStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

add_new_eid(dt, eid, cpx, shy, shz, au, shv, shw, slv, slp, form1, form2)[source]
add_new_eid_sort1(dt, eid, cpx, shy, shz, au, shv, shw, slv, slp, form1, form2)[source]
add_new_eid_sort2(eid, dt, cpx, shy, shz, au, shv, shw, slv, slp, form1, form2)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
getLength()[source]
get_stats()[source]
get_transients()[source]
is_complex()[source]
is_real()[source]
oes_objects Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_objects

class pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object(data_code, isubcase, apply_data_code=True)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object_Deprecated, pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

getOrderedETypes(valid_types)[source]

Groups element IDs by element type

Parameters:valid_types – list of valid element types e.g. [‘CTRIA3’, ‘CTRIA6’, ‘CQUAD4’, ‘CQUAD8’]
Returns types_out:
 the ordered list of types
Returns ordered_etypes:
 dictionary of Type-IDs to write
is_curvature()[source]
is_fiber_distance()[source]
is_max_shear()[source]
is_von_mises()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object_Deprecated[source]

Bases: object

Methods

isCurvature()[source]
isFiberDistance()[source]
isMaxShear()[source]
isVonMises()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject(data_code, isubcase)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject_Deprecated, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

is_strain()[source]
is_stress()[source]
update_dt(data_code, dt)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject_Deprecated[source]

Bases: object

Methods

isStrain()[source]
isStress()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject(data_code, isubcase)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject_Deprecated, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

is_strain()[source]
is_stress()[source]
update_dt(data_code, dt)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject_Deprecated[source]

Bases: object

Methods

isStrain()[source]
isStress()[source]
oes_plates Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_plates

class pyNastran.op2.tables.oes_stressStrain.real.oes_plates.RealPlateArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add(dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
addNewNode(dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
addNewNodeSort1(dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
add_new_eid(etype, dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
add_new_eid_sort1(etype, dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
add_sort1(dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
build()[source]
eid_to_element_node_index(eids)[source]
get_element_index(eids)[source]
get_headers()[source]
get_stats()[source]
is_bilinear()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_plates.RealPlateStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

# ??? - is this just 11
ELEMENT      STRAIN               STRAINS IN ELEMENT COORD SYSTEM             PRINCIPAL  STRAINS (ZERO SHEAR)
  ID.       CURVATURE          NORMAL-X       NORMAL-Y      SHEAR-XY       ANGLE         MAJOR           MINOR        VON MISES

# s_code=11
                       S T R A I N S   I N   Q U A D R I L A T E R A L   E L E M E N T S   ( Q U A D 4 )        OPTION = BILIN
ELEMENT              STRAIN            STRAINS IN ELEMENT COORD SYSTEM         PRINCIPAL  STRAINS (ZERO SHEAR)
  ID      GRID-ID   CURVATURE       NORMAL-X      NORMAL-Y      SHEAR-XY      ANGLE        MAJOR         MINOR       VON MISES

# s_code=15
                       S T R A I N S   I N   Q U A D R I L A T E R A L   E L E M E N T S   ( Q U A D 4 )
ELEMENT      FIBER                STRAINS IN ELEMENT COORD SYSTEM             PRINCIPAL  STRAINS (ZERO SHEAR)
  ID.       DISTANCE           NORMAL-X       NORMAL-Y      SHEAR-XY       ANGLE         MAJOR           MINOR        VON MISES

# s_code=10
                       S T R A I N S   I N   Q U A D R I L A T E R A L   E L E M E N T S   ( Q U A D 4 )        OPTION = BILIN
ELEMENT              STRAIN            STRAINS IN ELEMENT COORD SYSTEM         PRINCIPAL  STRAINS (ZERO SHEAR)          MAX
  ID      GRID-ID   CURVATURE       NORMAL-X      NORMAL-Y      SHEAR-XY      ANGLE        MAJOR         MINOR         SHEAR

Methods

add(dt, eid, node_id, curvature, exx, eyy, exy, angle, majorP, minorP, evm)[source]
addNewNode(dt, eid, node_id, curvature, exx, eyy, exy, angle, majorP, minorP, evm)[source]
addNewNodeSort1(dt, eid, node_id, curvature, exx, eyy, exy, angle, majorP, minorP, evm)[source]
add_f06_data(data, transient, data_code=None)[source]
add_new_eid(etype, dt, eid, node_id, curvature, exx, eyy, exy, angle, majorP, minorP, evm)[source]
add_new_eid_sort1(etype, dt, eid, node_id, curvature, exx, eyy, exy, angle, majorP, minorP, evm)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, node_id, curvature, exx, eyy, exy, angle, majorP, minorP, evm)[source]
delete_transient(dt)[source]
getHeaders()[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_plates.RealPlateStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_plates.RealPlateArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_plates.RealPlateStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

ELEMENT      FIBER               STRESSES IN ELEMENT COORD SYSTEM             PRINCIPAL STRESSES (ZERO SHEAR)
  ID.       DISTANCE           NORMAL-X       NORMAL-Y      SHEAR-XY       ANGLE         MAJOR           MINOR        VON MISES
      6    CEN/4  -1.250000E-01  -4.278394E+02  8.021165E+03 -1.550089E+02   -88.9493   8.024007E+03 -4.306823E+02  4.227345E+03
                   1.250000E-01   5.406062E+02  1.201854E+04 -4.174177E+01   -89.7916   1.201869E+04  5.404544E+02  5.739119E+03

                     S T R E S S E S   I N   Q U A D R I L A T E R A L   E L E M E N T S   ( Q U A D 4 )        OPTION = BILIN
ELEMENT              FIBER            STRESSES IN ELEMENT COORD SYSTEM         PRINCIPAL STRESSES (ZERO SHEAR)          MAX
  ID      GRID-ID   DISTANCE        NORMAL-X      NORMAL-Y      SHEAR-XY      ANGLE        MAJOR         MINOR         SHEAR
      6    CEN/4  -1.250000E-01  -4.278394E+02  8.021165E+03 -1.550089E+02   -88.9493   8.024007E+03 -4.306823E+02  4.227345E+03
                   1.250000E-01   5.406062E+02  1.201854E+04 -4.174177E+01   -89.7916   1.201869E+04  5.404544E+02  5.739119E+03

Methods

add(dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
addNewNode(dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
addNewNodeSort1(dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
add_f06_data(data, transient)[source]
add_new_eid(etype, dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
add_new_eid_sort1(etype, dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, node_id, fiber_dist, oxx, oyy, txy, angle, majorP, minorP, ovm)[source]
delete_transient(dt)[source]
getHeaders()[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_plates.RealPlateStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_plates.RealPlateArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
oes_rods Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_rods

class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.ConrodStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodStrain

Methods

eType = u'CONROD'
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.ConrodStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodStress

Methods

eType = u'CONROD'
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.CtubeStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodStrain

Methods

eType = u'CTUBE'
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.CtubeStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodStress

Methods

eType = u'CTUBE'
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealBushStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add_new_eid_sort1(dt, eid, axial, SMa, torsion, SMt)[source]
build()[source]
eid_to_element_node_index(eids)[source]
get_element_index(eids)[source]
get_f06_header(is_mag_phase=True)[source]
get_headers()[source]
get_stats()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

# s_code=1
                                 S T R A I N S   I N   R O D   E L E M E N T S      ( C R O D )
ELEMENT       AXIAL       SAFETY      TORSIONAL     SAFETY
  ID.        STRAIN       MARGIN        STRAIN      MARGIN

# s_code=10
                                   S T R A I N S   I N   R O D   E L E M E N T S      ( C O N R O D )
ELEMENT       AXIAL       SAFETY      TORSIONAL     SAFETY       ELEMENT       AXIAL       SAFETY      TORSIONAL     SAFETY
  ID.        STRAIN       MARGIN        STRAIN      MARGIN         ID.        STRAIN       MARGIN        STRAIN      MARGIN
   1001    1.000000E+00   1.0E+00    1.250000E+00   3.0E+00         1007    1.000000E+00   1.0E+00    1.250000E+00   3.0E+00

Methods

add_f06_data(data, transient)[source]
add_new_eid(dt, eid, axial, SMa, torsion, SMt)[source]
add_new_eid_sort1(dt, eid, axial, SMa, torsion, SMt)[source]
add_new_eid_sort2(eid, dt, axial, SMa, torsion, SMt)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
getLength()[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# format_code=1 stressCode=0
                                 S T R E S S E S   I N   R O D   E L E M E N T S      ( C R O D )
   ELEMENT       AXIAL       SAFETY      TORSIONAL     SAFETY       ELEMENT       AXIAL       SAFETY      TORSIONAL     SAFETY
     ID.        STRESS       MARGIN        STRESS      MARGIN         ID.        STRESS       MARGIN        STRESS      MARGIN
         1    5.000000E+03              0.0                               2    0.0                       0.0

# format_code=1 stressCode=0
                                 S T R E S S E S   I N   R O D   E L E M E N T S      ( C R O D )
  ELEMENT       AXIAL       SAFETY      TORSIONAL     SAFETY       ELEMENT       AXIAL       SAFETY      TORSIONAL     SAFETY
    ID.        STRESS       MARGIN        STRESS      MARGIN         ID.        STRESS       MARGIN        STRESS      MARGIN

Methods

add_f06_data(data, transient)[source]
add_new_eid(dt, eid, axial, SMa, torsion, SMt)[source]
add_new_eid_sort1(dt, eid, axial, SMa, torsion, SMt)[source]
add_new_eid_sort2(eid, dt, axial, SMa, torsion, SMt)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
getLength()[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RealRodArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_rods.RodDamper(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_stats()[source]
oes_shear Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_shear

class pyNastran.op2.tables.oes_stressStrain.real.oes_shear.RealShearArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add_new_eid_sort1(dt, eid, max_shear, avg_shear, margin)[source]
ELEMENT MAX AVG SAFETY ELEMENT MAX AVG SAFETY
ID. SHEAR SHEAR MARGIN ID. SHEAR SHEAR MARGIN
328 1.721350E+03 1.570314E+03 7.2E+01
build()[source]
eid_to_element_node_index(eids)[source]
get_element_index(eids)[source]
get_f06_header()[source]
get_headers()[source]
get_stats()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_shear.RealShearStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

add_f06_data(data, dt)[source]
add_new_eid(dt, eid, axial, SMa, torsion, SMt)[source]
add_new_eid_sort1(dt, eid, maxShear, avgShear, margin)[source]
add_new_eid_sort2(eid, dt, maxShear, avgShear, margin)[source]
add_new_transient(dt)[source]

initializes the transient variables .. note:: make sure you set self.dt first

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_shear.RealShearStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_shear.RealShearArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

get_f06_header()[source]
get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_shear.RealShearStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# format_code=1 sort_code=0 stressCode=0
                               S T R E S S E S   I N   S H E A R   P A N E L S      ( C S H E A R )
ELEMENT            MAX            AVG        SAFETY         ELEMENT            MAX            AVG        SAFETY
  ID.             SHEAR          SHEAR       MARGIN           ID.             SHEAR          SHEAR       MARGIN
    328        1.721350E+03   1.570314E+03   7.2E+01

Methods

add_f06_data(data, dt)[source]
add_new_eid(dt, eid, maxShear, avgShear, margin)[source]
add_new_eid_sort1(dt, eid, maxShear, avgShear, margin)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
getLength()[source]
get_stats()[source]
get_transients()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_shear.RealShearStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_shear.RealShearArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_f06_header()[source]
get_headers()[source]
oes_solids Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_solids

class pyNastran.op2.tables.oes_stressStrain.real.oes_solids.RealSolidArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.OES_Object

Methods

add_eid_sort1(eType, cid, dt, eid, node_id, oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, aCos, bCos, cCos, pressure, ovm)[source]
add_node_sort1(dt, eid, inode, node_id, oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, aCos, bCos, cCos, pressure, ovm)[source]
build()[source]
eid_to_element_node_index(eids)[source]
get_element_index(eids)[source]
get_headers()[source]
get_stats()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_solids.RealSolidStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

# code=[1,0,11]
                      S T R A I N S   I N   H E X A H E D R O N   S O L I D   E L E M E N T S   ( H E X A )
               CORNER        ------CENTER AND CORNER POINT STRESSES---------       DIR.  COSINES       MEAN
ELEMENT-ID    GRID-ID        NORMAL              SHEAR             PRINCIPAL       -A-  -B-  -C-     PRESSURE       VON MISES
        1           0GRID CS  8 GP
               CENTER  X   4.499200E+02  XY  -5.544791E+02   A   1.000000E+04  LX 0.00 0.69-0.72  -3.619779E+03    9.618462E+03
                       Y   4.094179E+02  YZ   5.456968E-12   B  -1.251798E+02  LY 0.00 0.72 0.69
                       Z   1.000000E+04  ZX  -4.547474E-13   C   9.845177E+02  LZ 1.00 0.00 0.00

# code=[1,0,10]
                   S T R A I N S   I N    T E T R A H E D R O N   S O L I D   E L E M E N T S   ( C T E T R A )
               CORNER        ------CENTER AND CORNER POINT  STRAINS---------       DIR.  COSINES       MEAN         OCTAHEDRAL
ELEMENT-ID    GRID-ID        NORMAL              SHEAR             PRINCIPAL       -A-  -B-  -C-     PRESSURE         SHEAR
        4           0GRID CS  4 GP
               CENTER  X  -2.288232E-04  XY   1.240506E-04   A   9.631978E-04  LX-0.10-0.71-0.70  -1.601805E-04    5.692614E-04
                       Y  -2.289814E-04  YZ  -2.369997E-04   B  -2.909276E-04  LY-0.10 0.71-0.70
                       Z   9.383460E-04  ZX  -2.369997E-04   C  -1.917288E-04  LZ 0.99 0.00-0.15

Methods

add_eid(eType, cid, dt, eid, node_id, exx, eyy, ezz, exy, eyz, exz, e1, e2, e3, aCos, bCos, cCos, pressure, evm)[source]
add_eid_sort1(eType, cid, dt, eid, node_id, exx, eyy, ezz, exy, eyz, exz, e1, e2, e3, aCos, bCos, cCos, pressure, evm)[source]
add_f06_data(data, transient)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_node(dt, eid, inode, node_id, exx, eyy, ezz, exy, eyz, exz, e1, e2, e3, aCos, bCos, cCos, pressure, evm)[source]
add_node_sort1(dt, eid, inode, node_id, exx, eyy, ezz, exy, eyz, exz, e1, e2, e3, aCos, bCos, cCos, pressure, evm)[source]
delete_transient(dt)[source]
directionalVectors(exx, eyy, ezz, exy, eyz, exz)[source]
get_headers()[source]
get_stats()[source]
get_transients()[source]
octahedral(o11, o22, o33, o12, o13, o23)[source]

http://en.wikipedia.org/wiki/Von_Mises_yield_criterion

ovm(o11, o22, o33, o12, o13, o23)[source]

http://en.wikipedia.org/wiki/Von_Mises_yield_criterion

pressure(e1, e2, e3)[source]

returns the hydrostatic pressure (e1+e2+e3)/-3. http://en.wikipedia.org/wiki/Stress_%28mechanics%29

processF06Data()[source]
                  S T R E S S E S   I N   P E N T A H E D R O N   S O L I D   E L E M E N T S   ( P E N T A )
               CORNER        ------CENTER AND CORNER POINT STRESSES---------       DIR.  COSINES       MEAN
ELEMENT-ID    GRID-ID        NORMAL              SHEAR             PRINCIPAL       -A-  -B-  -C-     PRESSURE       VON MISES
        2           0GRID CS  6 GP
               CENTER  X  -1.829319E+03  XY   7.883865E+01   A   1.033182E+04  LX-0.12 0.71 0.70  -2.115135E+03    1.232595E+04
                       Y  -1.825509E+03  YZ  -1.415218E+03   B  -2.080181E+03  LY-0.12 0.69-0.71
                       Z   1.000023E+04  ZX  -1.415218E+03   C  -1.906232E+03  LZ 0.99 0.16 0.00
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_solids.RealSolidStrainArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_solids.RealSolidArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

get_headers()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_solids.RealSolidStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# s_code=0
        N O N L I N E A R   S T R E S S E S   I N   T E T R A H E D R O N   S O L I D   E L E M E N T S   ( T E T R A )
ELEMENT GRID/   POINT                         STRESSES/ TOTAL STRAINS                          EQUIVALENT EFF. STRAIN  EFF. CREEP
   ID   GAUSS     ID       X           Y           Z           XY          YZ          ZX        STRESS   PLAS/NLELAS   STRAIN
    3    GRID   CENTER  6.6667E+02  2.6667E+03  2.6667E+03 -1.3333E+03  2.6667E+03 -1.3333E+03  6.0000E+03  1.5000E-04   0.0
                        1.6667E-05  6.6667E-05  6.6667E-05 -6.6667E-05  1.3333E-04 -6.6667E-05
# s_code=1
                      S T R E S S E S   I N   H E X A H E D R O N   S O L I D   E L E M E N T S   ( H E X A )
               CORNER        ------CENTER AND CORNER POINT STRESSES---------       DIR.  COSINES       MEAN
ELEMENT-ID    GRID-ID        NORMAL              SHEAR             PRINCIPAL       -A-  -B-  -C-     PRESSURE       VON MISES
    1               0GRID CS  8 GP
               CENTER  X   4.499200E+02  XY  -5.544791E+02   A   1.000000E+04  LX 0.00 0.69-0.72  -3.619779E+03    9.618462E+03
                       Y   4.094179E+02  YZ   5.456968E-12   B  -1.251798E+02  LY 0.00 0.72 0.69
                       Z   1.000000E+04  ZX  -4.547474E-13   C   9.845177E+02  LZ 1.00 0.00 0.00

Methods

add_eid(eType, cid, dt, eid, node_id, oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, aCos, bCos, cCos, pressure, ovm)[source]
add_eid_sort1(eType, cid, dt, eid, node_id, oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, aCos, bCos, cCos, pressure, ovm)[source]
add_f06_data(_f06_data, transient)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_node(dt, eid, inode, node_id, oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, aCos, bCos, cCos, pressure, ovm)[source]
add_node_sort1(dt, eid, inode, node_id, oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, aCos, bCos, cCos, pressure, ovm)[source]
delete_transient(dt)[source]
directional_vectors(oxx, oyy, ozz, txy, tyz, txz)[source]
get_headers()[source]
get_stats()[source]
get_transients()[source]
pressure(o1, o2, o3)[source]

returns the hydrostatic pressure (o1+o2+o3)/-3. http://en.wikipedia.org/wiki/Stress_%28mechanics%29

processF06Data()[source]
                  S T R E S S E S   I N   P E N T A H E D R O N   S O L I D   E L E M E N T S   ( P E N T A )
               CORNER        ------CENTER AND CORNER POINT STRESSES---------       DIR.  COSINES       MEAN
ELEMENT-ID    GRID-ID        NORMAL              SHEAR             PRINCIPAL       -A-  -B-  -C-     PRESSURE       VON MISES
        2           0GRID CS  6 GP
               CENTER  X  -1.829319E+03  XY   7.883865E+01   A   1.033182E+04  LX-0.12 0.71 0.70  -2.115135E+03    1.232595E+04
                       Y  -1.825509E+03  YZ  -1.415218E+03   B  -2.080181E+03  LY-0.12 0.69-0.71
                       Z   1.000023E+04  ZX  -1.415218E+03   C  -1.906232E+03  LZ 0.99 0.16 0.00
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_solids.RealSolidStressArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_solids.RealSolidArray, pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

get_headers()[source]
oes_springs Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_springs

class pyNastran.op2.tables.oes_stressStrain.real.oes_springs.NonlinearSpringStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

Methods

add_new_eid(eType, dt, eid, force, stress)[source]
add_new_eid_sort1(eType, dt, eid, force, stress)[source]
add_new_eid_sort2(eType, eid, dt, force, stress)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_springs.RealCelasStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

Methods

add_f06_data(data, transient)[source]
add_new_eid(dt, eid, out)[source]
add_new_eid_sort1(dt, eid, out)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
getLength()[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_springs.RealCelasStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

                          S T R E S S E S   I N   S C A L A R   S P R I N G S        ( C E L A S 2 )
    TIME         STRESS              TIME         STRESS              TIME         STRESS              TIME         STRESS
0.0            0.0               5.000000E-02   0.0               1.000000E-01   0.0               1.500000E-01   0.0
2.000000E-01   0.0               2.500000E-01   0.0               3.000000E-01   0.0               3.500000E-01   0.0

Methods

add_f06_data(data, transient)[source]
add_new_eid(dt, eid, out)[source]
add_new_eid_sort1(dt, eid, out)[source]
add_new_eid_sort2(eid, dt, out)[source]
add_new_transient(dt)[source]

initializes the transient variables

delete_transient(dt)[source]
getLength()[source]
get_stats()[source]
get_transients()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oes_triax Module

Inheritance diagram of pyNastran.op2.tables.oes_stressStrain.real.oes_triax

class pyNastran.op2.tables.oes_stressStrain.real.oes_triax.RealTriaxStrain(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StrainObject

# format_code=1 sort_code=0 stressCode=0
                                  S T R A I N S   I N   T R I A X 6   E L E M E N T S
ELEMENT  GRID ID       STRAINS  IN  MATERIAL  COORD  SYSTEM                 MAX  MAG        MAX        VON MISES
   ID               RADIAL        AZIMUTHAL     AXIAL         SHEAR         PRINCIPAL       SHEAR
   5351        0 -9.726205E+02 -1.678908E+03 -1.452340E+03 -1.325111E+02  -1.678908E+03  3.702285E+02  6.654553E+02
            4389 -9.867789E+02 -1.624276E+03 -1.388424E+03 -9.212539E+01  -1.624276E+03  3.288099E+02  5.806334E+02

Methods

add(dt, eid, nid, rs, azs, As, ss, maxp, emax, ects)[source]
add_f06_data(data, transient)[source]
add_new_eid(dt, eid, nid, rs, azs, As, ss, maxp, tmax, octs)[source]
add_new_eid_sort1(dt, eid, nid, rs, azs, As, ss, maxp, emax, ects)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, nid, rs, azs, As, ss, maxp, emax, ects)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oes_stressStrain.real.oes_triax.RealTriaxStress(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.oes_stressStrain.real.oes_objects.StressObject

# format_code=1 sort_code=0 stressCode=0
                                  S T R E S S E S   I N   T R I A X 6   E L E M E N T S
ELEMENT  GRID ID       STRESSES  IN  MATERIAL  COORD  SYSTEM                 MAX  MAG        MAX        VON MISES
   ID               RADIAL        AZIMUTHAL     AXIAL         SHEAR         PRINCIPAL       SHEAR
   5351        0 -9.726205E+02 -1.678908E+03 -1.452340E+03 -1.325111E+02  -1.678908E+03  3.702285E+02  6.654553E+02
            4389 -9.867789E+02 -1.624276E+03 -1.388424E+03 -9.212539E+01  -1.624276E+03  3.288099E+02  5.806334E+02

Methods

add(dt, eid, nid, rs, azs, As, ss, maxp, tmax, octs)[source]
add_f06_data(data, transient)[source]
add_new_eid(dt, eid, nid, rs, azs, As, ss, maxp, tmax, octs)[source]
add_new_eid_sort1(dt, eid, nid, rs, azs, As, ss, maxp, tmax, octs)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eid, nid, rs, azs, As, ss, maxp, tmax, octs)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
is_complex()[source]
is_real()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
ogf_gridPointForces Package
ogf_Objects Module

Inheritance diagram of pyNastran.op2.tables.ogf_gridPointForces.ogf_Objects

class pyNastran.op2.tables.ogf_gridPointForces.ogf_Objects.ComplexGridPointForces(data_code, is_sort1, isubcase, freq=None)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

get_stats()[source]
class pyNastran.op2.tables.ogf_gridPointForces.ogf_Objects.RealGridPointForces(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

_write_f06_transient(header, page_stamp, page_num=1, f=None)[source]
add(dt, eKey, eid, elemName, f1, f2, f3, m1, m2, m3)[source]
add_f06_data(dt, data)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, ekey, eid, elemName, f1, f2, f3, m1, m2, m3)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
update_dt(data_code, freq)[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
ogs_surfaceStresses Module

Inheritance diagram of pyNastran.op2.tables.ogf_gridPointForces.ogs_surfaceStresses

class pyNastran.op2.tables.ogf_gridPointForces.ogs_surfaceStresses.GridPointStresses(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

_write_f06_transient(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
add(dt, eKey, eid, elemName, nx, ny, txy, angle, majorP, minorP, tmax, ovm)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eKey, eid, elemName, nx, ny, txy, angle, majorP, minorP, tmax, ovm)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.ogf_gridPointForces.ogs_surfaceStresses.GridPointStressesArray(data_code, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

msg = header + [‘ S T R E S S E S A T G R I D P O I N T S - - S U R F A C E 5
‘,
‘0 SURFACE X-AXIS X NORMAL(Z-AXIS) Z REFERENCE COORDINATE SYSTEM FOR SURFACE DEFINITION CID 0
‘,
‘ GRID ELEMENT STRESSES IN SURFACE SYSTEM PRINCIPAL STRESSES MAX
‘,
‘ ID ID FIBRE NORMAL-X NORMAL-Y SHEAR-XY ANGLE MAJOR MINOR SHEAR VON MISES
‘]
#‘0 13683 3736 TRIAX6 4.996584E+00 0.0 1.203093E+02 0.0 0.0 0.0’ #’ 13683 3737 TRIAX6 -4.996584E+00 0.0 -1.203093E+02 0.0 0.0 0.0’ #’ 13683 TOTALS 6.366463E-12 0.0 -1.364242E-12 0.0 0.0 0.0’

Methods

add_sort1(dt, eKey, eid, elemName, nx, ny, txy, angle, majorP, minorP, tmax, ovm)[source]
build()[source]
get_stats()[source]
class pyNastran.op2.tables.ogf_gridPointForces.ogs_surfaceStresses.GridPointStressesVolume(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

_write_f06_transient(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
add(dt, eKey, nx, ny, nz, txy, tyz, txz, pressure, ovm)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, eKey, nx, ny, nz, txy, tyz, txz, pressure, ovm)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
opg_appliedLoads Package
opg Module

Inheritance diagram of pyNastran.op2.tables.opg_appliedLoads.opg

class pyNastran.op2.tables.opg_appliedLoads.opg.OPG[source]

Bases: pyNastran.op2.op2_common.OP2Common

Methods

opg_loadVector Module

Inheritance diagram of pyNastran.op2.tables.opg_appliedLoads.opg_loadVector

class pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.ComplexLoadVector(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.ComplexLoadVectorArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.RealLoadVector(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.RealLoadVectorArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.RealThermalLoadVector(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.RealThermalVector

Methods

class pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.RealThermalVector(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.RealThermalVelocityVector(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.opg_appliedLoads.opg_loadVector.RealThermalVector

Methods

opg_Objects Module

Inheritance diagram of pyNastran.op2.tables.opg_appliedLoads.opg_Objects

class pyNastran.op2.tables.opg_appliedLoads.opg_Objects.AppliedLoadsVectorArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(node_id, eid, source, v1, v2, v3, v4, v5, v6)[source]
add_sort1(node_id, eid, source, v1, v2, v3, v4, v5, v6)[source]
build()[source]
data_type()[source]
get_stats()[source]
class pyNastran.op2.tables.opg_appliedLoads.opg_Objects.ComplexAppliedLoadsVectorArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.opg_appliedLoads.opg_Objects.AppliedLoadsVectorArray

Methods

data_type()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opg_Objects.RealAppliedLoads(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nodeID, eid, source, v1, v2, v3, v4, v5, v6)[source]
addTransient(nodeID, eid, source, v1, v2, v3, v4, v5, v6)[source]
add_node(nodeID, eid, source, v1, v2, v3, v4, v5, v6)[source]
class pyNastran.op2.tables.opg_appliedLoads.opg_Objects.RealAppliedLoadsVectorArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.tables.opg_appliedLoads.opg_Objects.AppliedLoadsVectorArray

Methods

data_type()[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
opnl_forceVector Module

Inheritance diagram of pyNastran.op2.tables.opg_appliedLoads.opnl_forceVector

class pyNastran.op2.tables.opg_appliedLoads.opnl_forceVector.ComplexForceVector(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opnl_forceVector.ComplexForceVectorArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opnl_forceVector.RealForceVector(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.opg_appliedLoads.opnl_forceVector.RealForceVectorArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oqg_constraintForces Package
oqg Module

Inheritance diagram of pyNastran.op2.tables.oqg_constraintForces.oqg

class pyNastran.op2.tables.oqg_constraintForces.oqg.OQG[source]

Bases: pyNastran.op2.op2_common.OP2Common

Methods

oqg_mpcForces Module

Inheritance diagram of pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces

class pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces.ComplexMPCForces(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces.ComplexMPCForcesArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces.RealMPCForces(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oqg_constraintForces.oqg_mpcForces.RealMPCForcesArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oqg_spcForces Module

Inheritance diagram of pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces

class pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.ComplexSPCForces(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.ComplexSPCForcesArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.RealSPCForces(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oqg_constraintForces.oqg_spcForces.RealSPCForcesArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oqg_thermalGradientAndFlux Module

Inheritance diagram of pyNastran.op2.tables.oqg_constraintForces.oqg_thermalGradientAndFlux

class pyNastran.op2.tables.oqg_constraintForces.oqg_thermalGradientAndFlux.ComplexTemperatureGradientAndFlux(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oqg_constraintForces.oqg_thermalGradientAndFlux.RealTemperatureGradientAndFlux(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oqg_constraintForces.oqg_thermalGradientAndFlux.RealTemperatureGradientAndFluxArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oug Package
oug Module

Inheritance diagram of pyNastran.op2.tables.oug.oug

This file defines the OUG Table, which contains:
  • Real/Complex Displacement
  • Real/Complex Acceleration
  • Real/Complex Velocity
  • Real/Complex Eigenvectors
  • Real Temperature
class pyNastran.op2.tables.oug.oug.OUG[source]

Bases: pyNastran.op2.op2_common.OP2Common

Methods

oug_accelerations Module

Inheritance diagram of pyNastran.op2.tables.oug.oug_accelerations

class pyNastran.op2.tables.oug.oug_accelerations.ComplexAcceleration(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_accelerations.ComplexAccelerationArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_accelerations.RealAcceleration(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_accelerations.RealAccelerationArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oug_displacements Module

Inheritance diagram of pyNastran.op2.tables.oug.oug_displacements

class pyNastran.op2.tables.oug.oug_displacements.ComplexDisplacement(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_displacements.ComplexDisplacementArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_displacements.RealDisplacement(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
write_op2(f, fascii, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_displacements.RealDisplacementArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_displacements.Struct(fascii, fmt)[source]

Bases: object

Methods

pack(msg, data)[source]
pyNastran.op2.tables.oug.oug_displacements.make_pack_form(data)[source]
pyNastran.op2.tables.oug.oug_displacements.pack(fascii, msg, fmt, data)[source]
pyNastran.op2.tables.oug.oug_displacements.write_markers(f, fascii, msg, markers)[source]
pyNastran.op2.tables.oug.oug_displacements.write_table_header(f, fascii, table_name)[source]
oug_eigenvectors Module

Inheritance diagram of pyNastran.op2.tables.oug.oug_eigenvectors

class pyNastran.op2.tables.oug.oug_eigenvectors.ComplexEigenvector(data_code, is_sort1, isubcase, iMode)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

add_new_mode(iMode)[source]
eigenvalues()[source]
update_mode(data_code, iMode)[source]

this method is called if the object already exits and a new time step is found

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_eigenvectors.ComplexEigenvectorArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_eigenvectors.Eigenvector(data_code, is_sort1, isubcase, imode)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

EIGENVALUE =  6.158494E+07
    CYCLES =  1.248985E+03         R E A L   E I G E N V E C T O R   N O .          1

POINT ID.   TYPE          T1             T2             T3             R1             R2             R3
       1      G      2.547245E-17  -6.388945E-16   2.292728E+00  -1.076928E-15   2.579163E-17   0.0
    2002      G     -6.382321E-17  -1.556607E-15   3.242408E+00  -6.530917E-16   1.747180E-17   0.0
    2003      G      0.0            0.0            0.0            0.0            0.0            0.0

Methods

add_new_mode(imode)[source]
eigenvalues()[source]
read_f06_data(data_code, data)[source]

it is now assumed that all data coming in is correct, so...

so...

[node_id, grid_type, t1, t2, t3, r1, r2, r3] [100, ‘G’, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0] # valid

[101, ‘S’, 1.0, 2.0] # invalid [101, ‘S’, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0] # valid [102, ‘S’, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0] # valid

is no longer valid

update_mode(data_code, imode)[source]

this method is called if the object already exits and a new time step is found

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
EIGENVALUE =  6.158494E+07
    CYCLES =  1.248985E+03         R E A L   E I G E N V E C T O R   N O .          1

POINT ID.   TYPE          T1             T2             T3             R1             R2             R3
       1      G      2.547245E-17  -6.388945E-16   2.292728E+00  -1.076928E-15   2.579163E-17   0.0
    2002      G     -6.382321E-17  -1.556607E-15   3.242408E+00  -6.530917E-16   1.747180E-17   0.0
    2003      G      0.0            0.0            0.0            0.0            0.0            0.0
class pyNastran.op2.tables.oug.oug_eigenvectors.RealEigenvector(data_code, isubcase, iMode)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

                                   R E A L   E I G E N V E C T O R   N O .          1
POINT ID.   TYPE          T1             T2             T3             R1             R2             R3
       1      G      0.0            0.0            0.0            0.0            1.260264E-01   0.0
       7      G      9.999849E-01   0.0            6.728968E-03   0.0            8.021386E-03   0.0

Methods

add(nodeID, gridType, v1, v2, v3, v4, v5, v6)[source]
add_new_mode(iMode)[source]
delete_transient(dt)[source]
eigenvalues()[source]
get_transients()[source]
modes()[source]
update_dt(data_code, dt)[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
EIGENVALUE =  6.158494E+07
                                   R E A L   E I G E N V E C T O R   N O .          1

POINT ID.   TYPE          T1             T2             T3             R1             R2             R3
       1      G      2.547245E-17  -6.388945E-16   2.292728E+00  -1.076928E-15   2.579163E-17   0.0
    2002      G     -6.382321E-17  -1.556607E-15   3.242408E+00  -6.530917E-16   1.747180E-17   0.0
    2003      G      0.0            0.0            0.0            0.0            0.0            0.0
class pyNastran.op2.tables.oug.oug_eigenvectors.RealEigenvectorArray(data_code, is_sort1, isubcase, dt, f06_flag=False)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

add_new_f06_mode(imode)[source]
build_f06_vectorization()[source]
read_f06_data(data_code, lines)[source]

it is assumed that all data coming in is correct, so...

[node_id, grid_type, t1, t2, t3, r1, r2, r3] [100, ‘G’, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0] # valid

[101, ‘S’, 1.0, 2.0] # invalid [101, ‘S’, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0] # valid [102, ‘S’, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0] # valid

update_f06_mode(data_code, imode)[source]

this method is called if the object already exits and a new time step is found

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oug_Objects Module

Inheritance diagram of pyNastran.op2.tables.oug.oug_Objects

class pyNastran.op2.tables.oug.oug_Objects.Flux(data_code, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(nodeID, gridType, v1, v2, v3, v4=None, v5=None, v6=None)[source]
delete_transient(dt)[source]
get_transients()[source]
write_op2(block3, device_code=1)[source]

Creates the binary data for writing the table .. warning:: hasnt been tested...

oug_temperatures Module

Inheritance diagram of pyNastran.op2.tables.oug.oug_temperatures

class pyNastran.op2.tables.oug.oug_temperatures.RealTemperature(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.op2_Objects.ScalarObject

Methods

add(dt, nodeID, grid_type, v1, v2, v3, v4, v5, v6)[source]
add_f06_data(data, transient)[source]
add_new_transient(dt)[source]

initializes the transient variables

add_sort1(dt, nodeID, grid_type, v1, v2, v3, v4, v5, v6)[source]
delete_transient(dt)[source]
get_stats()[source]
get_transients()[source]
print_pack(ipack)[source]
print_temp_lines(temperatures)[source]
update_dt(data_code, dt)[source]
write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_temperatures.RealTemperatureArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
oug_velocities Module

Inheritance diagram of pyNastran.op2.tables.oug.oug_velocities

class pyNastran.op2.tables.oug.oug_velocities.ComplexVelocity(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_velocities.ComplexVelocityArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.ComplexTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_velocities.RealVelocity(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableObject

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
class pyNastran.op2.tables.oug.oug_velocities.RealVelocityArray(data_code, is_sort1, isubcase, dt)[source]

Bases: pyNastran.op2.resultObjects.tableObject.RealTableArray

Methods

write_f06(header, page_stamp, page_num=1, f=None, is_mag_phase=False)[source]
test Package
all_tests Module
op2_test Module
pyNastran.op2.test.op2_test.get_all_files(folders_file, file_type)[source]
pyNastran.op2.test.op2_test.main()[source]
pyNastran.op2.test.op2_test.parse_skipped_cards(fname)[source]
op2_unit_tests Module

Inheritance diagram of pyNastran.op2.test.op2_unit_tests

class pyNastran.op2.test.op2_unit_tests.TestOP2(methodName='runTest')[source]

Bases: pyNastran.bdf.test.bdf_unit_tests.Tester

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_op2_01()[source]
test_op2_02()[source]
test_set_results()[source]
test_op2 Module
pyNastran.op2.test.test_op2.get_failed_files(filename)[source]
pyNastran.op2.test.test_op2.main()[source]
pyNastran.op2.test.test_op2.parse_table_names_from_F06(f06Name)[source]

gets the op2 names from the f06

pyNastran.op2.test.test_op2.run_lots_of_files(files, make_geom=True, write_bdf=False, write_f06=True, delete_f06=True, write_op2=False, is_vector=False, vector_stop=True, debug=True, saveCases=True, skipFiles=[], stopOnFailure=False, nStart=0, nStop=1000000000, binary_debug=False)[source]
pyNastran.op2.test.test_op2.run_op2(op2_filename, make_geom=False, write_bdf=False, write_f06=True, write_op2=False, is_mag_phase=False, is_vector=False, delete_f06=False, iSubcases=[], exclude=[], debug=False, binary_debug=False, stopOnFailure=True)[source]
__init__ Module
__init__ Module

pyNastran/op4

op4 Module

Inheritance diagram of pyNastran.op4.op4

class pyNastran.op4.op4.OP4(log=None)[source]

Bases: object

todo:: add endian checking todo:: test on big matrices todo:: finish write_op4

Methods

get_markers_dense(f)[source]
get_markers_sparse(f, isBigMat)[source]
read_op4(op4_filename=None, matrix_names=None, precision='default')[source]

Reads a NASTRAN OUTPUT4 file, regular or sparse, and stores the matrices as the output arguments of the function. The number of matrices read is defined by the list matrix_names. By default, all matrices will be read. The resulting output is a dictionary of matrices that are accessed by their name.

>>> from pyNastran.op4.op4 import OP4
>>> op4 = OP4()

# get all the matrices
>>> matrices = op4.read_op4(op4_filename)
>>> (formA,A) = matrices['A']
>>> (formB,B) = matrices['B']
>>> (formC,C) = matrices['C']

# or to reduce memory usage
>>> matrices = op4.read_op4(op4_filename, matrix_names=['A','B'])
>>> (formA,A) = matrices['A']
>>> (formB,B) = matrices['B']

# or because you only want A
>>> matrices = op4.read_op4(op4_filename, matrix_names='A')
>>> (formA,A) = matrices['A']

# get all the matrices, but select the file using a file dialog
>>> matrices = op4.read_op4()
>>>
Parameters:
  • op4_filename – an OP4 filename. Type=STRING.
  • matrix_names – matrix name(s) (or None); Type=LIST OF STRINGS / STRING / NONE.
  • precision – specifies if the matrices are in single or double precsion (values=’default’, ‘single’, ‘double’) which means the format will be whatever the file is in
Returns:

dictionary of matrices where the key is the name and the

value is [form, matrix]

Form Definition
Square
Rectangular
Diagonal
Symmetric
Id entity
Pseudoidentity
Matrix:

Dense Type: NUMPY.NDARRAY Sparse Type: SCIPY.SPARSE.COO_MATRIX

Note

based off the MATLAB code SAVEOP4 developed by ATA-E and later UCSD.

Note

it’s strongly recommended that you convert sparse matrices to another format before doing math on them. This is standard with sparse matrices.

Warning

sparse binary is buggy right now

read_op4_ascii(op4_filename, matrix_names=None, precision='default')[source]

matrix_names must be a list or None, but basically the same

read_op4_binary(op4_filename, matrix_names=None, precision='default')[source]

matrix_names must be a list or None, but basically the same

read_start_marker(f)[source]
show(f, n)[source]
write_op4(op4_filename, matrices, name_order=None, precision='default', is_binary=True)[source]

Writes the OP4

Parameters:op4_filename (String -> opens a file (closed at the end) file -> no file is opened and it's not closed) – The filename to write
pyNastran.op4.op4.compress_column(col)[source]
pyNastran.op4.op4.get_dtype(Type, precision='default')[source]

reset the type if ‘default’ not selected

pyNastran.op4.op4.main()[source]
pyNastran.op4.op4.matrices()[source]
test Package
op4_test Module

Inheritance diagram of pyNastran.op4.test.op4_test

class pyNastran.op4.test.op4_test.TestOP4(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_EYE10()[source]
test_EYE5CD()[source]
test_NULL()[source]
test_bad_inputs_1()[source]
test_file_obj_ascii()[source]
test_file_obj_binary()[source]
test_op4_ascii()[source]
test_op4_binary()[source]
test_square_matrices_1()[source]

pyNastran/utils

This is the pyNastran.utils.rst file.

gui_choices Module

gui_io Module

pyNastran.utils.gui_io.load_file_dialog(Title, wx_wildcard, qt_wildcard, dirname='')[source]

creates a load file dialog in wx or PyQt4/PySide

pyNastran.utils.gui_io.radio_pullown_dialog(Title, button_dict, nwide=3)[source]
buttons = [
[header, ‘checkbox’, A’, ‘B’, ‘C’], [header2, ‘pulldown’, ‘A’, ‘B’],

]

pyNastran.utils.gui_io.save_file_dialog(Title, wx_wildcard, qt_wildcard, dirname='')[source]

creates a save file dialog in wx or PyQt4/PySide

log Module

Inheritance diagram of pyNastran.utils.log

class pyNastran.utils.log.SimpleLogger(level='debug', log_func=<function stderr_logging>)[source]

Bases: object

Simple logger object. In future might be changed to use Python logging module. Two levels are supported: ‘debug’ and ‘info’. Info level discards debug messages, ‘debug’ level displays all messages.

Note

Logging module is currently not supported because I don’t know how to repoint the log file if the program is called a second time. Poor logging can result in:

  1. double logging to a single file
  2. all longging going to one file

This is really only an issue when calling logging multiple times, such as in an optimization loop or testing.

Methods

Parameters:
  • level – level of logging: ‘info’ or ‘debug’
  • log_func – funtion that will be used to print log. It should take one argument: string that is produces by a logger. Default: print messages to stderr using @see stderr_logging function.

Methods

critical(msg)[source]

Log CRITICAL message :param msg: message to be logged

debug(msg)[source]

Log DEBUG message :param msg: message to be logged

error(msg)[source]

Log ERROR message :param msg: message to be logged

exception(msg)[source]

Log EXCEPTION message :param msg: message to be logged

info(msg)[source]

Log INFO message :param msg: message to be logged

msg_typ(typ, msg)[source]

Log message of a given type :param typ: type of a message (e.g. INFO) :param msg: message to be logged

properties()[source]

Return tuple: line number and filename

simple_msg(msg, typ=None)[source]

Log message directly without any altering. :param msg: message to be looged without any alteration.

warning(msg)[source]

Log WARNING message :param msg: message to be logged

pyNastran.utils.log.get_logger(log=None, level='debug')[source]

This function is useful as it will instantiate a simpleLogger object if log=None. :param log: a logger object or None :param level: level of logging: ‘info’ or ‘debug’

pyNastran.utils.log.get_logger2(log=None, debug=True)[source]

This function is useful as it will instantiate a SimpleLogger object if log=None. :param log: a python logging module object;

if log is set, debug is ignored and uses the settings the logging object has
Parameters:debug – used to set the logger if no logger is passed in True: logs debug/info/error messages False: logs info/error messages None: logs error messages
Returns log:log or a SimpleLogger
pyNastran.utils.log.make_log(display=False)[source]

Creates ‘pyNastran.log’ file with information about working environment, such as Python version, platform, architecture, etc. Useful for debugging.

Parameters:display – do not only create file but also print log information
pyNastran.utils.log.stderr_logging(typ, msg)[source]

Default logging function. Takes a text and outputs to stderr. :param typ: messeage type :param msg: message to be displayed

Message will have format ‘typ: msg’

mathematics Module

pyNastran.utils.mathematics.Area(a, b)
pyNastran.utils.mathematics.augmented_identity(A)[source]

Creates an Identity Matrix augmented with zeros. The location of the extra zeros depends on A.

[ 1, 0, 0, 0 ]
[ 0, 1, 0, 0 ]
[ 0, 0, 1, 0 ]
pyNastran.utils.mathematics.build_spline(x, y)[source]

Builds a cubic spline or 1st order spline if there are less than 3 terms :param x: the independent variable :param y: the dependent variable

Returns splrep:a splrep object (linear or cubic spline depending on the length of x)

Note

a 1st order spline is the same as linear interpolation

pyNastran.utils.mathematics.centroid_triangle(n1, n2, n3)[source]

Calculates the centroid of a triangle

Parameters:
  • n1 – NDARRAY of node 1
  • n2 – NDARRAY of node 2
  • n3 – NDARRAY of node 3
pyNastran.utils.mathematics.gauss(n)[source]

A quadrature rule: an approximation of the definite integral of a function. Currently implementation supports up to 5 quadrature points.

Function returns following values depending on n (number of points):

  • n = 1:
  • f$ 0 f$ –> f$ 2 f$
  • n = 2:
  • f$ pm 1/sqrt{3} f$ –> f$ 1 f$
  • n = 3
  • f$ 0 f$ –> f$ 8/9 f$
  • f$ pmsqrt{3/5} f$ –> f$ 5/9 f$
  • n = 4:
  • f$ pmsqrt{left( 3 - 2sqrt{6/5} right)/7} f$ –> f$ (18+sqrt{30})/36 f$
  • f$ pmsqrt{left( 3 + 2sqrt{6/5} right)/7} f$ –> f$ (18-sqrt{30})/36 f$
  • n = 5:
  • f$ 0 f$ –> f$ 128/225 f$
  • f$ pmfrac{1}{3}sqrt{5-2sqrt{10/7}} f$ –> f$ (322+13sqrt{70})/900 f$
  • f$ pmfrac{1}{3}sqrt{5+2sqrt{10/7}} f$ –> f$ (322-13sqrt{70})/900 f$
Parameters:n – Number of quadrature points
Returns lists:points and corresponding weights, sorted by points value
pyNastran.utils.mathematics.integrate_line(x, y)[source]

Integrates a line of length 1.0

Parameters:
  • x – the independent variable
  • y – the dependent variable
Returns integrated_value:
 

the area under the curve

pyNastran.utils.mathematics.integrate_positive_line(x, y, minValue=0.0)[source]

Integrates a line of length 1.0

Parameters:
  • x – the independent variable
  • y – the dependent variable
Returns integrated_value:
 

the area under the curve

pyNastran.utils.mathematics.is_float_ranged(a, x, b)[source]

Returns true if a<= x <= b or a-x < 0 < b-x.

Parameters:
  • a – the lower bound value (inclusive)
  • x – the search value
  • b – the upper bound value (inclusive)
Returns is_ranged:
 

True/False

pyNastran.utils.mathematics.is_list_ranged(a, List, b)[source]

Returns true if a<= x <= b or a-x < 0 < b-x

Parameters:
  • a – the lower bound value (inclusive)
  • x – the search values
  • b – the upper bound value (inclusive)
Returns is_ranged:
 

True/False

pyNastran.utils.mathematics.list_print(listA, tol=1e-08, float_fmt='%-3.2g', zero_fmt=' 0')[source]
pyNastran.utils.mathematics.print_annotated_matrix(A, row_names=None, col_names=None, tol=1e-08)[source]

Takes a list/dictionary and annotates the row number with that value indicies go from 0 to N

pyNastran.utils.mathematics.print_matrix(A, tol=1e-08)[source]
pyNastran.utils.mathematics.reduce_matrix(matA, nids)[source]

takes a list of ids and removes those rows and cols

pyNastran.utils.mathematics.solve_tridag(A, D)[source]

Solves a tridagonal matrix [A]{x}={b} for {x}

Parameters:
  • A – main diagonal (length=N)
  • D – off diagonal (length=N-1)
Returns:

x

dev Module

pyNastran.utils.dev.get_files_of_type(dirname, extension='.txt', maxSize=100.0)[source]

Gets the list of all the files with a given extension in the specified directory

Parameters:
  • dirname – the directory name
  • extension – list of filetypes to get (default=’.txt’)
  • maxSize – size in MB for max file size
Returns:

list of all the files with a given extension in the specified directory

pyNastran.utils.dev.list_print(lst, float_fmt='%-4.2f')[source]

Prints a list, numpy array, or numpy matrix in an abbreviated format. Supported element types: None, string, numbers. Useful for debugging.

Parameters:lst – list, numpy array or numpy matrix
Returns:the clean string representation of the object
pyNastran.utils.dev.write_array(a, nspaces=0)[source]
pyNastran.utils.dev.write_class(name, obj, nspaces=0, nbase=0)[source]
pyNastran.utils.dev.write_dict(obj, nspaces, nbase, isClass)[source]
pyNastran.utils.dev.write_list(obj, nspaces, nbase, isClass)[source]
pyNastran.utils.dev.write_object_attributes(attr, obj, nspaces, nbase=0, isClass=False)[source]
pyNastran.utils.dev.write_tuple(obj, nspaces, nbase, isClass)[source]

__init__ Module

pyNastran.utils.__init__.is_binary_file(filename)[source]

Return true if the given filename is binary.

Raises:IOError if the file cannot be opened.
Returns:True if filename is a binary file (contains null byte) and False otherwise.

Based on the idea (.. seealso:: http://bytes.com/topic/python/answers/21222-determine-file-type-binary-text) that file is binary if it contains null.

Warning

this may not work for unicode.

pyNastran.utils.__init__.object_attributes(obj, mode='public')[source]

List the names of attributes of a class as strings. Returns public attributes as default.

Parameters:
  • obj – the object for checking
  • mode – defines what kind of attributes will be listed * “public” - names that do not begin with underscore * “private” - names that begin with single underscore * “both” - private and public * “all” - all attributes that are defined for the object
Returns:

sorted list of the names of attributes of a given type or None if the mode is wrong

pyNastran.utils.__init__.object_methods(obj, mode='public')[source]

List the names of methods of a class as strings. Returns public methods as default.

Parameters:
  • obj – the object for checking
  • mode – defines what kind of methods will be listed * “public” - names that do not begin with underscore * “private” - names that begin with single underscore * “both” - private and public * “all” - all methods that are defined for the object
Returns:

sorted list of the names of methods of a given type or None if the mode is wrong

pyNastran.utils.__init__.print_bad_path(path)[source]

Prints information about the existence (access possibility) of the parts of the given path. Useful for debugging when the path to a given file is wrong.

Parameters:path – path to check
Returns:string with informations whether access to parts of the path is possible
pyNastran.utils.__init__.write_object_attributes(name, obj, nspaces=0, nbase=0, isClass=True, debug=False)[source]

Writes a series of nested objects

test Package
test_utils Module

Inheritance diagram of pyNastran.utils.test.test_utils

class pyNastran.utils.test.test_utils.A[source]

Bases: object

Methods

getA()[source]
class pyNastran.utils.test.test_utils.B(b)[source]

Bases: pyNastran.utils.test.test_utils.A

Methods

c = 7
getB()[source]
class pyNastran.utils.test.test_utils.TestUtils(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

setUp()[source]
test_is_binary()[source]
test_list_print()[source]
test_object_attributes_introspection()[source]
test_object_attributes_introspection_2()[source]
test_object_attributes_introspection_3(*args, **kwargs)[source]
test_object_methods_introspection()[source]

pyNastran/converters

cart3d Module

LaWGS Module

nastran Module

panair Module

shabp Module

stl Module

tecplot Module

cart3d Package
cart3dIO Module
cart3d_reader Module

Inheritance diagram of pyNastran.converters.cart3d.cart3d_reader

class pyNastran.converters.cart3d.cart3d_reader.Cart3DReader(log=None, debug=False)[source]

Bases: object

Methods

get_max(points, i)[source]
get_min(points, i)[source]
get_normals(nodes, elements, shift_nodes=True)[source]

Gets the centroidal normals

Parameters:
  • self – The reader object
  • nodes – the ndarray of nodes
  • elements – the ndarray of triangles
  • shift_nodes – boolean to shift element IDs such that the node IDs start at 0 instead of 1 True : nodes start at 1 False : nodes start at 0
Retval cnormals:
 

the ndarray of normalized centroidal normal vectors

get_normals_at_nodes(nodes, elements, cnormals, shift_nodes=True)[source]

Gets the nodal normals

Parameters:
  • self – The reader object
  • nodes – the ndarray of nodes
  • elements – the ndarray of triangles
  • cnormals – the ndarray of normalized centroidal normal vectors
  • shift_nodes – boolean to shift element IDs such that the node IDs start at 0 instead of 1 True : nodes start at 1 False : nodes start at 0
Retval nnormals:
 

the ndarray of normalized nodal normal vectors

isOutwardNormals = True
isStructured = False
make_half_model(nodes, elements, regions, loads=None, axis='y', remap_nodes=True)[source]

Makes a half model from a full model

... note:: Cp is really loads[‘Cp’] and was meant for loads analysis only

make_mirror_model(nodes, elements, regions, loads, axis='y', tol=1e-06)[source]

Makes a full cart3d model about the given axis.

Parameters:
  • nodes – the nodes; (nnodes, 3) ndarray
  • elements – the elmements; (nelements, 3) ndarray
  • regions – the regions; (nelements) ndarray
  • loads – not supported; dictionary of (nnodes) ndarray
  • axis – a string of “x”, “y”, “z”, “-x”, “-y”, “-z”
  • tol – the tolerance for the centerline points (default=0.000001)
modelType = 'cart3d'
read_cart3d(infilename, result_names=None)[source]

extracts the points, elements, and Cp

read_elements_ascii(bypass=False)[source]

An element is defined by n1,n2,n3 and the ID is the location in elements.

read_elements_binary(nelements)[source]
read_header_ascii()[source]
read_header_binary()[source]
read_points_ascii()[source]

A point is defined by x,y,z and the ID is the location in points.

read_points_binary(npoints)[source]
read_regions_ascii(bypass=True)[source]
read_regions_binary(nelements)[source]
read_results_ascii(i, infile, result_names=None)[source]

Reads the Cp results. Results are read on a nodal basis from the following table:

Cp rho,rhoU,rhoV,rhoW,rhoE
With the following definitions:
Cp = (p - 1/gamma) / (0.5*M_inf*M_inf) rhoVel^2 = rhoU^2+rhoV^2+rhoW^2 M^2 = rhoVel^2/rho^2
Thus:
p = (gamma-1)*(e- (rhoU**2+rhoV**2+rhoW**2)/(2.*rho)) p_dimensional = qInf * Cp + pInf

# ??? rho,rhoU,rhoV,rhoW,rhoE

Parameters:result_names

the results to read; default=None -> All result_names = [‘Cp’, ‘rho’, ‘rhoU’, ‘rhoV’, ‘rhoW’, ‘rhoE’,

‘Mach’, ‘U’, ‘V’, ‘W’, ‘E’]
read_results_binary(i, infile, result_names=None)[source]
write_cart3d(outfilename, points, elements, regions, loads=None, is_binary=False, float_fmt='%6.7f')[source]
write_elements(f, elements, is_binary, int_fmt='%6i')[source]
write_header(f, points, elements, is_loads, is_binary=False)[source]
write_loads(f, loads, is_binary, float_fmt='%6.6f')[source]
write_points(f, points, is_binary, float_fmt='%6.6f')[source]
write_regions(f, regions, is_binary)[source]
pyNastran.converters.cart3d.cart3d_reader.comp2tri(self, in_filenames, out_filename, is_binary=False, float_fmt='%6.7f')[source]

Combines multiple Cart3d files (binary or ascii) into a single file.

Parameters:
  • in_filenames – list of filenames
  • out_filename – output filename
  • is_binary – is the output filename binary (default=False)
  • float_fmt – the format string to use for ascii writing (default=’%6.7f’)

Note

assumes loads is None

pyNastran.converters.cart3d.cart3d_reader.convert_to_float(svalues)[source]
pyNastran.converters.cart3d.cart3d_reader.main()[source]
cart3d_to_stl Module
pyNastran.converters.cart3d.cart3d_to_stl.cart3d_to_stl(cart3d, log=None, debug=False)[source]

Converts a Cart3DReader object to STL format.

Parameters:
  • cart3d – a Cart3DReader object
  • log – a logger object (or None)
  • debug – True/False (used if log is not defined)
Returns stl:

an STLReader object

pyNastran.converters.cart3d.cart3d_to_stl.cart3d_to_stl_filename(cart3d_filename, stl_filename, log=None, debug=False)[source]

Converts a Cart3D file to STL format.

Parameters:
  • cart3d_filename – path to the input Cart3D file
  • stl_filename – path to the output STL file
  • log – a logger object (or None)
  • debug – True/False (used if log is not defined)
cart3d_to_nastran Module
pyNastran.converters.cart3d.cart3d_to_nastran.cart3d_to_nastran_filename(cart3d_filename, bdf_filename, log=None, debug=False)[source]

Converts a Cart3D file to STL format.

Parameters:
  • cart3d_filename – path to the input Cart3D file
  • bdf_filename – path to the output BDF file
  • log – a logger object (or None)
  • debug – True/False (used if log is not defined)
pyNastran.converters.cart3d.cart3d_to_nastran.main()[source]
test_cart3d Module

Inheritance diagram of pyNastran.converters.cart3d.test_cart3d

class pyNastran.converters.cart3d.test_cart3d.TestCart3d(methodName='runTest')[source]

Bases: unittest.case.TestCase

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Methods

test_1()[source]
test_2()[source]
test_3()[source]
pyNastran.converters.cart3d.test_cart3d.check_array(points, points2)[source]
lawgs Package
wgsIO Module
wgsReader Module

Inheritance diagram of pyNastran.converters.LaWGS.wgsReader

class pyNastran.converters.LaWGS.wgsReader.LaWGS(filename='tmx1242.wgs')[source]

Bases: object

Methods

getPointsElements()[source]
modelType = 'LaWGS'
readLaWGS()[source]
write_as_plot3d(p3dname)[source]
class pyNastran.converters.LaWGS.wgsReader.LaWGS_Panel(key, header, group)[source]

Bases: object

Parameters:
  • rotate – rotates the patch
  • translate – translates the patch
  • scale – scales the patch

Methods

buildRotationMatrix(r)[source]

Form the rotation matrix used for geometrical transformations Taken from NASA TM 85767 defining LaWGS.

getElement(pointI, j, i)[source]
get_elements(pointI)[source]
get_points()[source]
updatePoints()[source]
write_as_plot3d(f)[source]
nastran Package
bdf_to_p3d Module
nastranIOv Module
nastran_to_cart3d Module
pyNastran.converters.nastran.nastran_to_cart3d.nastran_to_cart3d(bdf, log=None, debug=False)[source]

Converts a Nastran BDF object to Cart3D format.

Parameters:
  • bdf – a BDF object
  • log – a logger object (or None)
  • debug – True/False (used if log is not defined)
Returns cart3d:

a Cart3D object

pyNastran.converters.nastran.nastran_to_cart3d.nastran_to_cart3d_filename(bdf_filename, cart3d_filename, log=None, debug=False)[source]

Converts a Nastran file to Cart3D format.

Parameters:
  • bdf_filename – the path to the BDF
  • cart3d_filename – the path to the Cart3D output file
  • log – a logger object (or None)
  • debug – True/False (used if log is not defined)
nastran_to_stl Module
pyNastran.converters.nastran.nastran_to_stl.nastran_to_stl_filename(bdf_filename, stl_filename, log=None)[source]
panair Package
agps Module

Inheritance diagram of pyNastran.converters.panair.agps

class pyNastran.converters.panair.agps.AGPS(log=None, debug=False)[source]

Bases: object

Methods

read_agps(infilename)[source]
panairGrid Module

Inheritance diagram of pyNastran.converters.panair.panairGrid

class pyNastran.converters.panair.panairGrid.PanairGrid(log=None, debug=True)[source]

Bases: object

Methods

add_patch(netName, kt, cpNorm, x, y, z)[source]
add_wake_patch(netName, options, x, y, z)[source]
find_patch_by_name(netName)[source]
getPointsElementsRegions(get_wakes=False)[source]
get_panel_point_IDs(iPanel)[source]
get_panel_points(iPanel)[source]
get_patch(ID)[source]
group_sections(sections, sectionNames)[source]
modelType = 'panair'
nPanels()[source]
nPatches()[source]
print_file()[source]
read_panair(infileName)[source]
remove_comments(lines)[source]
set_alphas(alphas, alphaC)[source]
set_betas(betas, betaC)[source]
set_mach(mach)[source]
split_into_sections(lines)[source]
split_points(lines, nActual, nRemainder)[source]

reads the points

update_cases()[source]

reduces confusion by only printing cases that will run

write_alphas()[source]
write_betas()[source]
write_cases()[source]
write_data_check()[source]
write_end()[source]
write_liberalized_abutments()[source]
write_mach()[source]
write_panair(outfileName)[source]
write_plot3d(p3dname, is_binary=False, is_iblank=False)[source]
write_printout()[source]
write_reference_quantities()[source]
write_title()[source]
pyNastran.converters.panair.panairGrid.fortran_value(value)[source]
panairGridPatch Module

Inheritance diagram of pyNastran.converters.panair.panairGridPatch

class pyNastran.converters.panair.panairGridPatch.PanairPatch(iNetwork, netName, kt, cpNorm, x, y, z, log)[source]

Bases: object

Methods

fix_point(pointIn)[source]
get_edge(edgeNumber)[source]

gets all the points associated with a given edge

        edge1
      0  1  2   -> i (row)
edge4 3  4  5
      6  7  8  edge2
      9  10 11
    |   edge3
    j
get_edges()[source]
get_elements(pointI)[source]
get_ipoint(iPoint)[source]
get_panel_area(iPanel)[source]
get_panel_area_normal(iPanel)[source]
get_panel_point_IDs(iPanel)[source]
get_panel_points(iPanel)[source]
get_panel_properties(iPanel)[source]
get_point(row, col)[source]
get_point_ID(row, col)[source]
get_points()[source]
get_subpanel_properties(iPanel)[source]
is_wake()[source]
nPanels()[source]
nPoints()[source]
process()[source]
quick_summary(cumPts, cumPn)[source]
rotate()[source]

not complete...

write_as_plot3d()[source]
write_plot3d(f, dim)[source]

..todo: is the normal defined correctly? ..todo: will this load into tecplot

write_point(point1)[source]
write_points(point1, point2)[source]
class pyNastran.converters.panair.panairGridPatch.PanairWakePatch(iNetwork, netName, options, x, y, z, log)[source]

Bases: pyNastran.converters.panair.panairGridPatch.PanairPatch

Methods

is_wake()[source]
pyNastran.converters.panair.panairGridPatch.sInt(value)[source]

int represented as a short float

panairIO Module
panairWrite Module

Inheritance diagram of pyNastran.converters.panair.panairWrite

class pyNastran.converters.panair.panairWrite.PanairWrite[source]

Bases: object

Methods

print_abutments()[source]
print_grid_summary()[source]
print_options()[source]
print_out_header()[source]
write_data_check()[source]
write_printout()[source]
s/habp Package
shabp Module

Inheritance diagram of pyNastran.converters.shabp.shabp

class pyNastran.converters.shabp.shabp.SHABP(log=None, debug=False)[source]

Bases: pyNastran.converters.shabp.shabp_results.ShabpOut

Methods

build_patches(patches)[source]
getPointsElementsRegions()[source]
get_area_by_component(components=None)[source]
get_area_by_patch(ipatches=None)[source]
get_area_xlength_by_component(components=None)[source]
parse_trailer()[source]
read_shabp(infilename)[source]
write_shabp(out_filename)[source]
shabp_io Module
shabp_results Module

Inheritance diagram of pyNastran.converters.shabp.shabp_results

class pyNastran.converters.shabp.shabp_results.ShabpOut(log=None, debug=False)[source]

Bases: object

Methods

read_shabp_out(out_filename)[source]
read_viscous2(f, i)[source]
readline(f, i)[source]
readline_n(f, i, n)[source]
stl Package
stl_io Module
stl_reader Module
stl_reshape Module
pyNastran.converters.stl.stl_reshape.main()[source]
pyNastran.converters.stl.stl_reshape.stl_reshape(data)[source]
stl_to_nastran Module
pyNastran.converters.stl.stl_to_nastran.stl_to_nastran_filename(stl_filename, bdf_filename, nnodes_offset=0, nelements_offset=0, log=None)[source]
tecplot Package
tecplot_io Module
tecplot Module
tecplot_to_nastran Module
utils Module

Indices and tables