Skip to content

Commit

Permalink
docs
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveDoyle2 committed May 22, 2019
1 parent d95666a commit 36f9016
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 138 deletions.
122 changes: 25 additions & 97 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,10 @@ Using the pyNastran GUI, you can read in Nastran models and quickly view results
<!--- ## pyNastran v0.8.0 has NOT been released (8/21/2016) --->
<!--- [Download pyNastran v0.8] (https://github.com/SteveDoyle2/pyNastran/releases) --->

<!---
### pyNastran v1.2.0 has not been released (x/xx/2019)

# News

### pyNastran v1.2.0 has been released (2019/5/21)

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
Expand All @@ -69,16 +71,15 @@ in certain cases. There's a new (still preliminary) superelement capability. I
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 also might have had issues with RAM usage in the past.
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 neat new features. Groups work a bit better, but
aren't quite perect. 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).
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
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!

Expand All @@ -95,6 +96,11 @@ BDF:
```python
>>> 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
```
Expand Down Expand Up @@ -129,7 +135,6 @@ OP2:
>>> op2_model.load_as_h5 = True
>>> op2_model.read_op2(op2_filename)
```
- TODO: CD transforms for cylindrical/spherical displacement, velocity, acceleration, forces. This shouldn't be terrible.

OP2Geom:
- HDF5 support
Expand All @@ -153,23 +158,18 @@ GUI:

Known issues:
- Transient Pandas Dataframes will fail for newer versions of numpy/pandas. If anyone knows how to use a MultiIndex,
- CD transforms
This should be hidden...
### pyNastran v1.3 has not been released (2019/4/15xx)
OP2:
- OP2 write support
- TODO: stress transforms. This is probably a bit of work.
--->
this is probably pretty easy to fix.

# News

### pyNastran v1.1.0 has been released (2018/6/26)

| Version | Docs | Status |
| :--- | :--- | :--- |
| [![PyPi Version](https://img.shields.io/pypi/v/pynastran.svg)](https://pypi.python.org/pypi/pyNastran) | [docs](http://pynastran.m4-engineering.com/1.1.0/) | [![Build Status](https://img.shields.io/travis/SteveDoyle2/pyNastran/v1.1.svg)](https://travis-ci.org/SteveDoyle2/pyNastran) [![Coverage Status](https://img.shields.io/coveralls/SteveDoyle2/pyNastran/v1.1.svg)](https://coveralls.io/github/SteveDoyle2/pyNastran?branch=v1.1) |
| Master | [![Documentation Status](https://readthedocs.org/projects/pynastran-git/badge/?version=latest)](http://pynastran-git.readthedocs.io/en/latest/?badge=latest) | [![Linux Status](https://img.shields.io/travis/SteveDoyle2/pyNastran/master.svg)](https://travis-ci.org/SteveDoyle2/pyNastran) ![Coverage Status](https://coveralls.io/repos/github/SteveDoyle2/pyNastran/badge.svg?branch=master) |

It's been roughly a year and ~100 tickets closed since the last version, so it's probably
time for another release! I want to thank everybody who helped with this release, especially
time for another release! I want to thank everybody who helped with this release, especially
Michael Redmond. He is working on h5Nastran, which which ties in with pyNastran. It's not quite
ready yet, but it offers the possibility of major speedups for large models.

Expand All @@ -188,7 +188,7 @@ changes (mainly in the BDF) though. The GUI now also supports PyQt4, PyQt5, and
with the same API, so it's a bit easier to install from source as simplifying licensing
issues as PyQt is GPL.

Programmatics
Programmatics:
- Dropping Python 3.4 support
- Supports Python 2.7, 3.5-3.6
- dropping VTK 5/6 suppoprt for the GUI
Expand Down Expand Up @@ -233,88 +233,15 @@ Known issues:
this is probably pretty easy to fix.

### pyNastran v1.0.0 has been released (2017/5/25)
This is a major release. The focus this time has been on robustness and testing.
Hopefully, it shows. The software has also been relicensed to be **BSD-3**, which
is a more permissive license and is the same one that numpy, scipy, and
matplotlib use.
Unfortunately, the GUI is more complicated.
- For open source projects : GPL 2/3
- For companies that pay a license to Riverbank : proprietary
- For companies that don't pay a license fee : GPL 2/3
However, you may distribute an unmodified binary.
- Programmatics:
- Dropping Python 3.3 support
- Adding Python 3.6 support
- Supports Python 2.7, 3.4-3.6
- [OP2](http://pynastran-git.readthedocs.io/en/latest/quick_start/op2_demo.html)
- preliminary random results (ATO/CRM/PSD/RMS/NO)
- improved geometry support
- MONPNT1/MONPNT3 reading
- MATPOOL matrices
- F06 scripts
- added a preliminary flutter (SOL 145) parser
- supports multiple subcases
- PK and PKNL methods supported
- `plot_Vg_Vf(...)`, `plot_Vg(...)`, `plot_root_locus(...)`
- input/output units
- mode switching not fixed yet
- [GUI](http://pynastran-git.readthedocs.io/en/latest/quick_start/gui.html):
- complex displacement support
- animation support
- vector results (real/complex)
- SPC Forces, MPC Forces, Load Vector, Applied Load
- minimal control presently
- No Grid Point Forces (e.g., freebody loads, interface loads)
- signficant speedups
- [BDF](http://pynastran-git.readthedocs.io/en/latest/quick_start/bdf_demo.html)
- 312 cards supported
- faster node transforms using:
```python
>>> icd_transform, icp_transform, xyz_cp, nid_cp_cd = get_displacement_index_xyz_cp_cd(dtype='float64, sort_ids=True)
>>> xyz_cid0 = transform_xyzcp_to_xyz_cid(xyz_cp, icp_transform, cid=0, in_place=False)
```
- simplified card adding
```python
>>> model.add_grid(nid, xyz=[4.,5.,6.], comment='nid, cp, x, y, z')
```
- comments can now be created without worrying about `$` signs
```python
>>> model.add_card(['GRID', 10, None, 4.0, 5.0, 6.0], comment='GRID comment\ngrid,nid,cp,x,y,z')
```
```
$GRID comment
$grid,nid,cp,x,y,z
GRID,10,,4.0,5.0,6.0
```
- unit conversion
- [GUI](http://pynastran-git.readthedocs.io/en/latest/quick_start/gui.html)
- buttons for picking, rotation center, distance
- PyQt5 support
- QScintilla & pygments support for scripting code editor
- [Matlab](http://pynastran-git.readthedocs.io/en/latest/quick_start/matlab.html) integration
- pyNastran works with Matlab 2014a+

See [v1.0.0](https://github.com/SteveDoyle2/pyNastran/releases/tag/v1.0.0) for information regarding enhancements.


### pyNastran v0.8.0 has been released (2016/8/21)

| Version | Docs |
| :--- | :--- |
| [v0.8.0](https://github.com/SteveDoyle2/pyNastran/releases) | [![Documentation Status](https://readthedocs.org/projects/pynastran-git/badge/?version=v0.8)](http://pynastran-git.readthedocs.io/en/v0.8.0/?badge=v0.8.0) |
| [v0.8.0](https://github.com/SteveDoyle2/pyNastran/releases/tag/v0.8.0) | [![Documentation Status](https://readthedocs.org/projects/pynastran-git/badge/?version=v0.8)](http://pynastran-git.readthedocs.io/en/v0.8.0/?badge=v0.8.0) |

<!---

Expand All @@ -328,6 +255,7 @@ See [v1.0.0](https://github.com/SteveDoyle2/pyNastran/releases/tag/v1.0.0) for i

See [v0.8.0](https://github.com/SteveDoyle2/pyNastran/releases/tag/v0.8.0) for information regarding enhancements.


### pyNastran v0.7.2 has been Released (2015/4/25)

| Version | Docs |
Expand Down
14 changes: 10 additions & 4 deletions dev/pyNastranGUI.spec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ try:
except ImportError:
pyInstaller_path = []

pyInstaller_path = [r'F:\work\pyNastran\pyNastran\pyinstaller']
pyInstaller_path = [r'C:\NASA\dev\pyinstaller']
IS_H5PY = False
DEBUG = False
IS_RELEASE = True
Expand Down Expand Up @@ -159,10 +159,16 @@ if sys.platform == 'win32':
binaries.append(
(mkl_dll_base, mkl_dll, 'BINARY')
)


ver = sys.version_info
python_version = '%i%i' % (ver.major, ver.minor)
print('python_version', python_version)
print('python_path', python_path)

if 'Anaconda' not in python_path:
binaries.append(
('python%s.dll' % python_version, 'C:\\Python%s\\python%s.dll' % (python_version, python_version), 'BINARY'),
)

pathex = pyInstaller_path + [
python_path,
os.path.join(python_path, 'Lib'),
Expand Down Expand Up @@ -423,7 +429,7 @@ excludes = [

# not required...strange...
'conda', 'conda-env', 'pywin32', 'python', 'vs2008_runtime',
'pyqt', 'anaconda',
#'pyqt', 'anaconda',

# things we're using
'libpng',
Expand Down
108 changes: 71 additions & 37 deletions releaseNotes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,49 +10,83 @@ Issues List: https://github.com/SteveDoyle2/pyNastran/issues

*** Not done....

--------------------------------Future--------------------------------
Overall Notes
-----------------------v1.2.0 released 2019/5/21-----------------------
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

Added BDF
- *** SET2,PEALST,DMI,CONM1
BDF:
- 373 cards supported (up from 343)
- added abiltity to write models to separate include files
```python
>>> 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
```python
>>> model = read_bdf(bdf_filename)
>>> model.export_hdf5_filename(hdf5_filename)
>>> model_new = OP2()
>>> model_new.load_hdf5_filename(hdf5_filename)
```

- preliminary superelement support
```python
>>> model.read_bdf(bdf_filename)
>>> model.superelement_models[1].nodes
```

Overall OP2
- ***added support for SORT2

BDF Bug Fixes
BDF API Additions
OP2:
- reorganization of random op2 results into op2.results.psd (or ato, no, crm, rms) to aide in finding data
- reorganization of op2 class to reduce number of functions in the object. This affects any custom table reading.
- improved optimzation 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
```python
>>> 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

Removed BDF
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 pickling nodes/elements
- min/max labels
- highlight menu
- Patran-style colors
- custom force vectors
- AVL support

Overall OP2
- added plotting support for "standard" results (***complex)
- ***complex results may plot in real/imag or mag/phase or PSD
(power spectral density)
- ***no temperature, stress, element forces, energy


Overall F06
F06 Reader
F06 Writer

Solver
- not released
- rewriting pyNastran solver (SOL 101)
- improved support for 3D
- uses case control deck to identify loads/BCs
- still uses dense matricies, but layout will be easier to add sparse
matricies later
- still need to build Kgg/Fg/SPC/MPC matrices, partition matrices,
solve, calculate responses
- added D matricies for PSHELL, PCOMP, PSOLID

-----------------------v1.1.1 released 2018/7/xx-----------------------
BDF:
- 'SUBCASE=5' supported in addition to 'SUBCASE 5' and 'SUBCASE = 5'

OP2:
- fixed type of a few random results (i.e., mpc_forces_NO was being slotted into mpc_forces_ATO)
- when result limiting, you can now use regular expressions
Known issues:
- Transient Pandas Dataframes will fail for newer versions of numpy/pandas. If anyone knows how to use a MultiIndex,
this is probably pretty easy to fix.

-----------------------v1.1.0 released 2018/6/26-----------------------
This is a major release. As in the v1.0 release, the focus has been on testing.
Expand Down

0 comments on commit 36f9016

Please sign in to comment.