Package: pyNastran
VersionDocsDocsv1.3.4Download GUI(latest is from 2022/5/30)Also, check out the:Discussion forum(questions about the latest release)Developer forum(questions about the main branch)Docsfor more detailed information.OverviewpyNastran is an interface library to the various Nastran file formats (BDF, OP2, OP4).
Using the BDF interface, you can read/edit/write Nastran geometry without worrying about
field formatting.  Many checks are also performed to verify that your model is correct.
Using the OP2 interface, you can read large result files quickly and efficiently.
Additionally, you can also extract a subset of the result data and write OP2/F06 result
files.  For a more detailed list of features, see:FeaturesUsing the pyNastran GUI, you can read in Nastran models and quickly view results for a model.
While it’s no FEMAP/Patran, it can replace many tasks that would otherwise require a
commercial program.NewsCheck out this blog post coveringFlutter Analysis in pyNastranRelease NotespyNastran v1.3.4 has been released (2022/5/30)This is a a bug fix release mainly to address dependency changes:Programmatics:supports Python 3.7-3.10support for nptyping 1.1.1-2.0 (removed as a required dependency)support for h5py >3.0GUI is compatible with PyQt5/6 and PySide2/6 and VTK 7-10There are also at least 33 bugs fixed and a few features added from the 1.4 release (e.g., pathlib support, subcase limiting in the flutter F06 parser).See pyNastranv1.3.4 release notesfor details on the other changes.v1.3.3 (2020/6/28)This is a bug fix only release outside of:>>>subcase.add_set_from_values(set_id,values)which was overly complicated to do before.Programmatics:Supports Python 3.7 and 3.8GUI is compatible with PyQt5 and PySide2 and VTK 7-9improved testing of old versions of packagesupdated nptyping requirementssupport for NX 2019.0, 2019.1See pyNastranv1.3.3 release notesfor details on the 54 bug fixes.  Not too bad for 2.5 months!v1.3.2 (2020/4/8)With Python 2 now officially dead, it’s time for a new killer feature to get the last few people to switch.There is now support for writing OP2 files!  They’re difficult to create from scratch,
but modifying an existing one isn’t difficult.  This includes geometry support.In addition, many new OP2 results have been added.  Modern NX Nastran should work much better.Programmatics:Supports Python 3.7 and 3.8Dropping Python 2.7 and 3.6 supportGUI is compatible with PyQt5 and PySide2improved testing of old versions of packagesBDF:enhancements405 cards supported (up from 373)improved mesh utilitiesbdf mirror, bdf convert, bdf export_caero_meshadditionalbdf scale, which takes arbitrary mass, length, time, pressure, or velocity scale factors (3 of 5) to apply a scaling lawadded deck guessing with punch=NoneOP2:enhancements:OP2 write supportfixed most pandas deprecation warnings/added support for pandas 0.25much improved NX 2019.2 supportminor enhancements:more hdf5 resultsa few more cards supported in the OP2 geometry readerpreliminary NX 64-bit supportmore MSC versions supportedsped up R1TABRG (optimization) readingvarious geometry cards addedsupports more PARAM readingnew results:composite failure indicies (OEFIT)sensitivity support (DSCMCOL)Cambpell diagrams (CDDATA)eigenvectors (BOPHIGF)grid point forces SORT2 (OGPFB2)stress/strain/forcerandom stress/strain (OESVM1/2, OESVM1C, OSTRVM1/2, OSTRVM2, OESXRM1C, OESXNO1, OESXNO1C)real/complex stress/strain/force output for centroidal CQUADR/CTRIARcomplex CBEAR forcesreal CFAST, CWELD forcesnonlinear cbush stress/strain/forceotherPSDsoptimizationconvergence tabledesign variablesweight, displacement, stress, strain, force, composite stress, composite strain, fractional mass responseSOL 401/402 results:eigenvalue_fluid (LAMAF, LAMAS)eigenvectors (BOPHIGF, BOPHIGS)temperature (OTEMP1)solution setresults: displacement, velocity, acceleration, eigenvectors:tables: OUXY1, OUXY2, OPHSAGUI:enhancements:partial custom results many now be loadedanimation now supports complex fringeresult case description now shows the mode/time/frequencyresult case description now shows the min/max value as well as the locationmap centroidal to nodal optionadding node/element highlight menuadding node/element mark/label menuresult case description now shows the min/max value as well as the locationresult case description now shows the mode/time/frequencyminor enhancements:added export result option to right-click menumore keyboard shortcutsnastran:geometry:added preferences for geometry/results to speed up model loadingelement & material coordinate systemsresultsadded acoustic displacements (OUG1F)real/complex stress/strain/force resultsplate by upper/lower, composite plates by ply, bars, rods, springs, cbush, cdampfractional mass responseF06:KE support for plot_145Many bug fixes and a few more details on features, can be found in theRelease Notes.v1.3.1/v1.3.0 (2020/4/8)This result has been superseded by 1.3.2.  The PyPi page was fixed.v1.2.1 (2019/5/24)I keep saying to myself there’s not much to add, but Nastran is huge.  Beyond HDF5
support in the BDF, I’m a huge fan of the new ability to keep track of which include file a
card came from and write it as a separate file.  It’s limited in usefulness, but very handy
in certain cases.  There’s a new (still preliminary) superelement capability.  I’m far
from a superelement expert, but it’s probably useful.The OP2 reader now supports SORT2 along with much improved random results reading.
If you’re using 60+ GB OP2s, you probably have had issues with RAM usage in the past.
With the new ability to dump the OP2 directly to HDF5, this should not be an as much of
an issue.  It’s not 100% implemented, so let me know if you need it for another result.Regarding the GUI, there are also some new features.  Groups work a bit better, but aren’t
quite perfect.  Logging has been dramatically sped up so the GUI loads faster and you can
load Nastran models even faster if you disable additional results (e.g., element quality).Finally, Python 2.7 is end of life.  Numpy, scipy, and matplotlib have all dropped
Python 2.7 support.  It’s time for pyNastran to as well.  The OP2 reader is 30% faster in
Python 3.6+ than Python 2.7, so it’s not all bad!Programmatics:This is the last Python 2.7 release.Dropping Python 3.5 supportSupports Python 2.7, 3.6-3.7GUI is compatible with PyQt4/PyQt5 as well as PySide/PySide2improved testing of old versions of packagesBDF:373 cards supported (up from 343)added abiltity to write models to separate include files>>>model=BDF()>>>model.read_bdf(bdf_filename,save_file_structure=True)out_filenames={bdf_filename:bdf_filename_new,include_filename:include_filename_new,}>>>model.write_bdfs(out_filenames,relative_dirname=None,is_windows=None)>>>ifile=model.grids[1].ifileHDF5 import/export>>>model=read_bdf(bdf_filename)>>>model.export_hdf5_filename(hdf5_filename)>>>model_new=OP2()>>>model_new.load_hdf5_filename(hdf5_filename)preliminary superelement support>>>model.read_bdf(bdf_filename)>>>model.superelement_models[1].nodesOP2:reorganization of random op2 results into op2.results.psd (or ato, no, crm, rms) to aid in finding datareorganization of op2 class to reduce number of functions in the object.  This affects any custom table reading.improved optimization response readinglimited SORT2 supportfixed CD transformation bug for BOUGV1 and BOPHIG1 tablesImproved HDF5 export/import support (e.g., matrices, random results)Can optionally save directly to HDF5 instead of numpy (limited).Loading OP2s to an HDF5 file to decrease memory usage>>>op2_model=OP2()>>>op2_model.load_as_h5=True>>>op2_model.read_op2(op2_filename)OP2Geom:HDF5 supportreading EQEXIN/S, GPT, GPDT, CSTM/S tables (recovery of nodes & coordinate with OP2Geom)fixed theta/mcid reading for CTRIA3/CQUAD4fixed CQUAD8 bugGUI:sped up HTML loggingmuch improved groups menuoptions for Nastran in preferences menu to speed up loading/limit memory usagepyNastran BDF pickle readingpyNastran OP2 HDF5 reading (not MSC’s format)visualization when pickling nodes/elementsmin/max labelshighlight menuPatran-style colorscustom force vectorsAVL supportKnown issues:Transient Pandas Dataframes will fail for newer versions of numpy/pandas.Older ReleasespyNastranv1.2.0 release notes(2019/5/21)pyNastranv1.1.0 release notes(2018/6/26)pyNastranv1.0.0 release notes(2017/5/25)pyNastranv0.8.0 release notes(2016/8/21)pyNastranv0.7.2 release notes(2015/4/25)