Coder Social home page Coder Social logo

stevedoyle2 / pynastran Goto Github PK

View Code? Open in Web Editor NEW
382.0 52.0 147.0 136.42 MB

A Python-based interface tool for Nastran's file formats

License: Other

Python 87.96% Shell 0.01% C++ 0.02% MATLAB 0.01% Batchfile 0.01% Assembly 1.11% TeX 0.16% Perl 0.01% Gnuplot 6.33% Jupyter Notebook 1.75% GLSL 0.04% POV-Ray SDL 0.17% HTML 2.43% NASL 0.01%
fea nastran python

pynastran's Introduction

Main/dev: Documentation Status Linux Status Coverage Status

See the Installation Instructions for instructions on installing pyNastran.

v1.4.1

Download GUI (latest is from 2024/3/25)

Also, check out the:

for more detailed information.

Blogs

Code of Conduct

Everyone interacting in the setuptools project’s codebase, issue trackers, chat room/Discord, and mailing lists is expected to follow the Code of Conduct.

Overview

pyNastran 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:

Using 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.

GUI

News

v1.4.1 has been released (2024/3/25)

This is a mainly a bug fix release. There's also a couple of new acoustic cards and MSC's STRESSA table that were added to fix some errors.

The force/bending moment diagrams have also been improved:

  • Loads popup
  • Visuals to indicate the location of the cutting planes
  • Element ids may also be explicitly limited now
  • You can pick the plot x-axis (global x/y/z vs. distance)

See pyNastran release notes for details on the other changes.

v1.4.0 has been released (2024/2/29)

It's been a while since the update, but I've had a more time lately. MSC also provided a copy of MSC Nastran free of charge to help support the project, so modern MSC Nastran support is much better.

Finally, the GUI has received a lot of work recently including:

  • Better results selector. Individual displacment and SPC/MPC/Load Vector components are selectable. For solid, plate, and composite stress/strain, nodal or centroidal stress may be shown and various blending methods including nodal averaging is now supported.
  • Grid Point Forces are supported in the GUI. They take some getting used to but you can march along a vector and output the section loads in any arbitrary coordinate system.
  • Preferences are also now exposed in a json file (vs the registry) and if you find a bug in the new results, you can flip a flag to use the old objects.
  • A recent files history to speed up model loading and a whole bunch of other bug fixes.

Programmatics:

  • Supports Python 3.9 - 3.12 (later versions of Python requires downloading from github)
  • GUI is compatible with VTK 9 and PyQt5/PySide2
  • improved testing of old versions of packages
  • much improve NX 64-bit and OptiStruct support

BDF:

  • fixed CAERO1 paneling bug
  • 427 cards supported (up from 405)

OP2:

  • 20 new results
  • vectorized op2 writing
  • model.cquad4_stress is now found in model.op2_results.stress.cquad4_stress. Same goes for other stress, strain, force, and strain_energy components. This will hopefully make things a bit easier find.

GUI:

  • grid point forces / section cuts / shear-moment torque plotter
  • more dynamic stress/strain results allow for simpler menus
  • transient/complex fringe only animations now supported
  • recent files support
  • greatly expanded preferences menu; many more preferences are saved
  • new icons

See pyNastran release notes for details on the other changes.

v1.3.4 has been released (2022/5/30)

This is a bug fix release mainly to address dependency changes:

Programmatics:

  • supports Python 3.7-3.10
  • support for nptyping 1.1.1-2.0 (removed as a required dependency)
  • support for h5py >3.0
  • GUI is compatible with PyQt5/6 and PySide2/6 and VTK 7-9

There 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 pyNastran release notes for details on the other changes.

v1.3.3 (2020/6/28)

This is a bug fix only release outside of: python >>> subcase.add_set_from_values(set_id, values)

which was overly complicated to do before.

Programmatics:

  • Supports Python 3.7 and 3.8
  • GUI is compatible with PyQt5 and PySide2 and VTK 7-9
  • improved testing of old versions of packages
  • updated nptyping requirements
  • support for NX 2019.0, 2019.1

See pyNastran release notes for details on the 54 bug fixes. Not too bad for 2.5 months!

pyNastran v1.3.2 has been released (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.8
  • Dropping Python 2.7 and 3.6 support
  • GUI is compatible with PyQt5 and PySide2
  • improved testing of old versions of packages

BDF:

  • enhancements
    • 405 cards supported (up from 373)
    • improved mesh utilities
      • bdf mirror, bdf convert, bdf export_caero_mesh
      • additional bdf scale, which takes arbitrary mass, length, time, pressure, or velocity scale factors (3 of 5) to apply a scaling law
    • added deck guessing with punch=None

OP2:

  • enhancements:
    • OP2 write support
    • fixed most pandas deprecation warnings/added support for pandas 0.25
    • much improved NX 2019.2 support
  • minor enhancements:
    • more hdf5 results
    • a few more cards supported in the OP2 geometry reader
    • preliminary NX 64-bit support
    • more MSC versions supported
    • sped up R1TABRG (optimization) reading
    • various geometry cards added
    • supports more PARAM reading
  • new results:
    • composite failure indices (OEFIT)
    • sensitivity support (DSCMCOL)
    • Cambpell diagrams (CDDATA)
    • eigenvectors (BOPHIGF)
    • grid point forces SORT2 (OGPFB2)
    • stress/strain/force
      • random stress/strain (OESVM1/2, OESVM1C, OSTRVM1/2, OSTRVM2, OESXRM1C, OESXNO1, OESXNO1C)
      • real/complex stress/strain/force output for centroidal CQUADR/CTRIAR
      • complex CBEAR forces
      • real CFAST, CWELD forces
      • nonlinear cbush stress/strain/force
    • other
      • PSDs
      • optimization
        • convergence table
        • design variables
        • weight, displacement, stress, strain, force, composite stress, composite strain, fractional mass response
    • SOL 401/402 results:
      • eigenvalue_fluid (LAMAF, LAMAS)
      • eigenvectors (BOPHIGF, BOPHIGS)
      • temperature (OTEMP1)
      • solution set
        • results: displacement, velocity, acceleration, eigenvectors:
        • tables: OUXY1, OUXY2, OPHSA

GUI:

  • enhancements:
    • partial custom results many now be loaded
    • animation now supports complex fringe
    • result case description now shows the mode/time/frequency
    • result case description now shows the min/max value as well as the location
    • map centroidal to nodal option
    • adding node/element highlight menu
    • adding node/element mark/label menu
    • result case description now shows the min/max value as well as the location
    • result case description now shows the mode/time/frequency
  • minor enhancements:
    • added export result option to right-click menu
    • more keyboard shortcuts
  • nastran:
    • geometry:
      • added preferences for geometry/results to speed up model loading
      • element & material coordinate systems
    • results
      • added acoustic displacements (OUG1F)
      • real/complex stress/strain/force results
        • plate by upper/lower, composite plates by ply, bars, rods, springs, cbush, cdamp
      • fractional mass response

F06:

  • KE support for plot_145

Many bug fixes, and a few more details on features, can be found in the Release 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 support
  • Supports Python 2.7, 3.6-3.7
  • GUI is compatible with PyQt4/PyQt5 as well as PySide/PySide2
  • improved testing of old versions of packages

BDF:

  • 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].ifile
  • HDF5 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].nodes

OP2:

  • reorganization of random op2 results into op2.results.psd (or ato, no, crm, rms) to aid in finding data

  • reorganization of op2 class to reduce number of functions in the object. This affects any custom table reading.

  • improved optimization response reading

  • limited SORT2 support

  • fixed CD transformation bug for BOUGV1 and BOPHIG1 tables

  • Improved 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 support
  • reading EQEXIN/S, GPT, GPDT, CSTM/S tables (recovery of nodes & coordinate with OP2Geom)
  • fixed theta/mcid reading for CTRIA3/CQUAD4
  • fixed CQUAD8 bug

GUI:

  • sped up HTML logging
  • much improved groups menu
  • options for Nastran in preferences menu to speed up loading/limit memory usage
  • pyNastran BDF pickle reading
  • pyNastran OP2 HDF5 reading (not MSC's format)
  • visualization when picking nodes/elements
  • min/max labels
  • highlight menu
  • Patran-style colors
  • custom force vectors
  • AVL support

Known issues:

  • Transient Pandas Dataframes will fail for newer versions of numpy/pandas.

v1.2.0 (2019/5/21)

This result has been superseded by 1.2.1. See release notes for details.

v1.1.0 (2018/6/26)

See v1.1.0 for information regarding enhancements.

v1.0.0 (2017/5/25)

See v1.0.0 for information regarding enhancements.

v0.8.0 (2016/8/21)

See v0.8.0 for information regarding enhancements.

v0.7.2 (2015/4/25)

See v0.7.2 for information regarding enhancements.

Version 0.6.1 has been released (2013/6)

Version 0.6 improves BDF reading. The reader is more robust and also requires proper BDF field formatting (e.g. an integer field can't be a float). Additionally, cards also have a comment() method.

Marcin Gąsiorek participated in the latest pyNastran under the European Space Agency's (ESA) "Summer of Code In Space" SOCIS program. The program provides a stipend to students to work on open-source projects. He did a great job of simplifying code and creating nicer documentation.

pynastran's People

Contributors

arne182 avatar benvb-97 avatar buran1988 avatar dependabot[bot] avatar fmamitrotta avatar gypaets avatar hurlei avatar josiahlund avatar jpdeslich avatar jtran10 avatar luzpaz avatar mjredmond avatar mredaero avatar msegade avatar nilswagner avatar romagnolifer avatar saravananm21 avatar saullocastro avatar stevedoyle2 avatar timryanb avatar vsdsantos avatar watkinrt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pynastran's Issues

add method to split/combine properties and materials

for a first ply failure code, one property/material is "spilt" into a new one 
for each element for each new degredation.  This creates excessive 
properties/materials.  Come up with a better method to degrade 
properties/materials

Original issue reported on code.google.com by mesheb82 on 6 Dec 2011 at 7:41

add CQUAD8 to OP2

OES table

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:05

multiline cards are processed improperly

FLFACT       751    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75

becomes

FLFACT       751     .75     .75     .75     .75     .75     .75     .75
             .75     .75     .75     .75     .75     .75    0.75     .75
             .75     .75     .75     .75    0.75     .75     .75     .75
             .75     .75    0.75     .75     .75     .75     .75     .75
            0.75     .75     .75     .75     .75     .75     .75     .75
             .75

it goes from 50 entries to 40 entries

when it gets saved, it also leaves behind (which would error the BDF):
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75    0.75    0.75    0.75    0.75    0.75+
+           0.75    0.75    0.75
+           0.75    0.75    0.75

Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 9:01

refactor main BDF reading

the FEM_Mesh.py file is a reasonable name if bdf.py didnt exist. bdf.py 
performs mainly card field writing and a better name is probably 
fieldWriter.py. This would then allow FEM_Mesh.py to be replaced with bdf.py 
(rename it).

Futhermore, FEM_Mesh_helper.py is a bad name, and should be split into multiple 
files. Maybe (with the existing approach (FEM_Mesh_addMethods, 
FEM_Mesh_cardBuilder, etc.). This could also be changed to bdf_addMethods, etc.)

Summary:
bdf.py -> fieldWriter.py
FEM_Mesh.py -> bdf.py
FEM_Mesh_helper.py -> bdf_helper.py
bdf_helper.py -> bdf_addMethods.py, bdf_deleteMethods.py, bdf_writeMethods.py, 
cardObject.py

-----------------------------
done:
bdf.py -> fieldWriter.py
FEM_Mesh_helper.py -> bdf_helper.py
bdf_helper.py -> BDF_Card.py

more to come!

Original issue reported on code.google.com by mesheb82 on 17 Oct 2011 at 5:18

op2 reading

What is the new feature/capability that you'd like?
Op2 reading

desired features (tables with desired data is indicated:
 - pshell stress - OES1X1
 - pshell strain - OSTR1X
 - pcomp stress - OES1C
 - pcomp strain - OSTR1C
 - displacement / temperature - OGPFB1, OQG1 (why are there 2 ???)
 - spc forces - OUGV1
 - heat flux / temperature gradient - OEF1X

Any other requirements on the functionality?
it *REQUIRES* little endian < format

Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 7:27

add CONROD to Op2

it goes in the OES table

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:04

Support Executive Control INCLUDE files

Include files can contain include files.  Also BOTH bulk data and case control 
decks (dunno about executive control, but probably), can contain include files.

Although not the same as Nastran, support both the Windows or Linux standard of 
line endings.

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 2:22

add testing BDFs

the code needs testing

Original issue reported on code.google.com by mesheb82 on 17 Oct 2011 at 5:20

case control editing & accessing methods

What is the new feature/capability that you'd like?
(1) case control editing & (2) accessing methods

Why is it useful?
1.  so you can create a new case control deck (e.g. split/combine a solution 
200)
2.  so you can find out what the Global options are for use in Subcase 1, or 2, 
etc...

List a sample API for the new functionality:
mesh.AddParameterToGlobalSubcase('ECHO = OFF')
mesh.AddParameterToGlobalSubcase('STRESS(PLOT) = ALL')

# same result
mesh.AddParameterToLocalSubcase(subcase=1,'SET 1 = 1,2,3,4,4,5,6,\n20,30')
mesh.AddParameterToLocalSubcase(subcase=1,'SET 1 = 1,2,3,4,4,5,6,20,30')


set1    = mesh.GetSubcaseParameter(subcase=0,'SET',id=1)
stress1 = mesh.GetSubcaseParameter(subcase=1,'STRESS')

NOTE:
set1    = '1,2,3,4,4,5,6,20,30'
stress1 = (  ALL,[PLOT]  )

ALSO:
helps maintainability by not requiring someone to hack the case control to get 
it to handle a special case

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 8:45

document theory for solver

The documentation should be put on the wiki site. This will aide users when 
trying to learn about solving a FEM and the eventual person who implements the 
code for the mass & stiffness matricies. The first priority is to solve 
{F}=k{x} so only the stiffness matrix is currently required.

This can be put on the wiki pages under Theory_CARDNAME

Original issue reported on code.google.com by mesheb82 on 17 Oct 2011 at 5:23

refactor BDF Card parsing

it is NOT as robust as it SHOULD be...
there are too many while try-except blocks...

also support include files while you're at it...

Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 9:14

CBEAM default on field 8

CBEAM field 8 lists 2 defaults
early in the QRG says bit=0.0 is the default, later it says offt='GGG' is...

Original issue reported on code.google.com by mesheb82 on 3 Nov 2011 at 7:00

CONM2 cid=0 support

The CONM2 is a very common card when making a beam/shell model.

The card already exists, but is not fully supported.  Add all the fields of the 
card.

Note that it *CAN* reference a coordinate ID and node ID.

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 7:02

verify little endian-ness for Linux/Mac machines

I thought the endian for Intel/AMD processors are only little endian < format 
and by default read little endian format.  The other assumption which may not 
be true is a file created on Linux may be read on Windows (e.g. the system has 
more memory), but does Nastran (or other solver) change the endian-ness 
depending on the OS?

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:03

parse the THRU-EXCLUDE syntax

this is on many cards including SET, SPOINT, etc.

1,THRU,10,EXCLUDE,5,6,11 = 1,2,3,4,7,8,9,10,11
so EXCLUDE works on all the nodes until one that's out of range of the THRU 
field

reading is definitely required, writing is less important, and *DOESNT* require 
THRU, and definitely not the EXCLUDE

Original issue reported on code.google.com by mesheb82 on 21 Oct 2011 at 7:46

stress/strain is different depending on the sortCode

sortCode comes from the tableCode and can have 8 different values.

Assuming a CQUAD4, there are 8 different output variables that the element can 
have.  For example, von mises stress may be replaced with max shear.  The 
outputs could go into different objects, but that would get confusing and it'd 
be difficult to manage.  Come up with a better idea....

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:11

Subversion can commit due to "Could not read response body: Secure connection truncated"

This is one of those project ending bugs...not being able to commit

Short Version:
You have too much shit in a sub-directory of the project (probably stuff that 
isn't/shouldn't be committed, so it takes too long and flips out.

Long Version:
http://subversion.apache.org/faq.html#secure-connection-truncated

Why am I getting an error saying "Could not read response body: Secure 
connection truncated" when doing a checkout from Apache?

In short, this error is representative of a class of problems which can occur 
when Apache erroneously believes that your Subversion client is no longer 
tending to the network connection it has made with Apache. Other error messages 
have been reported in similar circumstances, depending on whether or not SSL 
was in use for the connection, or when exactly Apache decided that the 
connection should be terminated.

The Subversion client tries to keep working copies in a sane state at all 
times. One way it does this during checkouts is by squirreling away the 
pristine versions of checked-out files until all the files and subdirectories 
for a given directory have been fetched. Once all the data for a directory has 
been downloaded, the client "finalizes" that directory, copying the pristine 
versions of files out into the working area, diddling administrative data, and 
so on. While this directory finalization is happening, the client is focused on 
that task and is not tending to the checkout network stream. Sometimes — 
typically in situations where a versioned directory contains an abnormally 
large number of files, or a bunch of abnormally large files — the client can 
spend so much time finalizing a directory (and ignoring the network stream) 
that Apache thinks the client has gone away for good, so Apache terminates the 
connection. When the client finally turns its attention back to the network 
stream, it finds that the server has given up on the connection, and it reports 
this as an error.

One workaround for this situation is to increase the amount of time Apache is 
willing to wait for a client to prove it is still listening to the network 
stream. You do this by adjusting upward the Apache Timeout configuration value. 
You are encouraged, however, to evaluate your data set. If having a huge number 
of files in a single directory is causing problems for you during checkouts, 
there is some chance that it will cause additional problems elsewhere, too. If 
it is possible for you to split your collection of files up into a few 
subdirectories with smaller file counts, this could prove universally 
beneficial.

Original issue reported on code.google.com by mesheb82 on 3 Nov 2011 at 6:29

add CTRIA6 to OP2

OES table

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:05

add spc/mpc object

What is the new feature/capability that you'd like?
spc/mpc (constraint) object similar to the case control object

Why is it useful?
spcs are required from a variety of sources

List a sample API for the new functionality:
spcs = mesh.getSPCs(spcID)  # gets all the SPCs referenced by the case control 
deck
mpcs = mesh.getMPCs(mpcID)  # gets all the MPCs referenced by the case control 
deck


Any other requirements on the functionality?
make an object that has all the constraints that are unreferenced

Original issue reported on code.google.com by mesheb82 on 24 Oct 2011 at 10:29

handle skipping GEOM1-type tables

skipping tables that are formatted like a GEOM1 table with buffers are 
problematic.  examples include GEOM1, GEOM2, DYNAMIC

Original issue reported on code.google.com by mesheb82 on 27 Nov 2011 at 11:15

write an op2

a user requested this

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 6:23

improve makeDocumentation.py script

improve makeDocumentation.py script to:

1.  find out where python is installed and update the Doxygen file
2.  verify that doxygen is installed

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 7:07

Add methods to echo BDF

What is the new feature/capability that you'd like?
(1) ability to echo deck 
(2) ability to "parse" all cards in the bdf without setting any defaults

Why is it useful?
developer testing

List a sample API for the new functionality:
feature 1 - removes comment lines, *WILL* work with include files
{{{
mesh = BDF(infileName)
mesh.echoDeck(outfileName)  # just set cardsToInclude to []
}}}

feature 2 - leaves the format of the card exactly the same as it came in 
(preferably)
{{{
# assume cardsToInclude = [GRID, CQUAD4] and all 3 cards are interspersed
#input
GRID,1
CQUAD4,2
NEWCARDX,3
GRID,4
CQUAD4,5
NEWCARDX,6
GRID,7
CQUAD4,8
NEWCARDX,9
}}}
mesh = BDF(infileName) # has GRIDs, CQUAD4s, NEWCARDX
mesh.writeSortedDeck(outfileName)  
{{{
# output
GRID,1
GRID,4
GRID,7
CQUAD4,2
CQUAD4,5
CQUAD4,8
$REJECTS
NEWCARDX,3
NEWCARDX,6
NEWCARDX,9
}}}

Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 4:31

skip the executive control or case control deck if they dont exist

What is the new feature/capability that you'd like?
read BDFs that dont have executive or case control decks without any special 
user input


Any other requirements on the functionality?
some cards are in the case control deck and the bulk data deck, so just using 
the name of the card isnt necessarily good enough
examples

SUPO/SUPORT/SUPORT1
SPC
LOAD
PARAM
MPC
SET
TSTEP
TSTEPNL
GUST
FREQ but not FREQUENCY

Original issue reported on code.google.com by mesheb82 on 21 Oct 2011 at 6:37

PBEAM3 reading/writing

add card

Original issue reported on code.google.com by mesheb82 on 26 Oct 2011 at 6:06

Case Control Deck reading/​writing

it's in work, but case control decks are not the same going in as coming out...

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 6:54

support writing THRU syntax

the THRU syntax is used in nastran and patran.  the function should have inputs:
1.  list of node IDs (or other generic IDs)
2.  the maximum allowable dNode (node2-node1).  default=None (unbounded)

The default would be 1, but then it's a pain to use it with patran-style syntax.

Original issue reported on code.google.com by mesheb82 on 30 Oct 2011 at 2:06

mesh.read() method should return data

What is the new feature/capability that you'd like?
the "knowledge" of what deck the reader just finished reading and it it found 
it's ending card

Why is it useful?
supporting include files

List a sample API for the new functionality:
mesh = BDF()
('ExecutiveDeck',isDone) = mesh.read(fileName1)
('CaseControlDeck',isDone) = mesh.read(fileName2)
('BulkDataDeck',isDone) = mesh.read(fileName3)


Any other requirements on the functionality?


Original issue reported on code.google.com by mesheb82 on 20 Oct 2011 at 4:35

CORD2R & CORD2S reading/writing

note that as the coord cards are required to support GRID cards, the ability to 
write a point (arbitrary) or GRID card in an alternate coordinate system *(any) 
must be supported.

Original issue reported on code.google.com by mesheb82 on 17 Oct 2011 at 5:28

add CBEAM to Op2

OES table

Original issue reported on code.google.com by mesheb82 on 21 Nov 2011 at 1:06

parse executive control deck into object

What is the new feature/capability that you'd like?
see summary

Why is it useful?
it tells you what solution you're running

List a sample API for the new functionality:
executiveDeck = mesh.getExecutiveDeck()

# assume solution 200 made up of sol 101 and sol 103
(200) = executiveDeck.getSolution()
(101,103) = executiveDeck.getSubcaseSolutions()

executiveDeck.setSolution(200)
executiveDeck.setSubcaseSolution(144,145)

executiveDeck.addLine('ALTER,1,2,3')

Original issue reported on code.google.com by mesheb82 on 19 Oct 2011 at 8:51

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.