Multiple feature improvements and bugfixes:
- Added ability to reduce to surfaces when loading superelement data from exodus files
- Added ability to output transformation shapes from System objects
- Added better error messages when indexing with invalid coordinates
- Added ability to specify which modes to create local coordinate systems for when constructing geometry from exodus files
- Added significantly more rattlesnake functionality
- Read spectral data from random vibration and system identification
- Read aligned transient data from transient testing
- Read modal data from modal testing
- Read multi-stream output files
- Added ability to output rattlesnake specification files from NDDataArray objects
- Added a SDynPy Logo
- Added a method to get the coordinate directions as a string from a CoordinateArray
- Changed coordinate transforms to allow N-dimensional data transforms
- Added a method to join data objects in the abscissa dimension
- Fixed tolerances on matrix symmetry checks
- Added ability to reconstruct FRFs from complex modes.
- Fixed a bug in conversion between complex and real modes and specify the angle to collapse to
- Fixed a bug in ASD selections where if a sign was negative it would be missed
- Improved the modeshape fitter in PolyPy to be a true multireference fitter.
- Known issue: still need to implement some kind of weighting to the modeshape fitter
- Added documentation to discuss degree of freedom selection in a test
- Greatly simplified the coordinate transformation functions for shapes and data
- Added functionality for reducing shapes to common sets of degrees of freedom
- Added functionality to select nodes by global positions in a geometry
- Updated time integrate functions to not create full state-space matrices if the degrees of freedom are not needed for output or input
- Added ability to select node ids to compute global positions for
- Added ability to ignore missing degrees of freedom in coordinate transformations
- Added functions for looking at FRF and CPSD conditioning and singular values
- Updated GUIPlot so that it can compare an arbitrary number of signals instead of just two.
- Significantly improved MIMO forward and inverse calculations
- Added FRF inverse package for more flexibility
- Added plotting functions to visualize conditioning of FRF matrices
- Added a class to represent an impulse response function
- Added causality enforcement
- Added constant overlap and add functionality to split time histories into measurement frames and recombine them
- Added a T-shaker reader and new dependency (npTDMS)
- Added time alignment functions
- Added sine wave excitation to simulate_test
- Added zero-padding functions for NDDataArrays
- Added interpolation functions for NDDataArrays
- Added functions to get abscissa spacing more easily
- Moved sensor optimization into ShapeArray objects for easier access
- Fixed issue with Exodus file reader where models without elements resulted in errors
- Fixed issues with GUIPlot and duplicate coordinates
- Added ability to compress id numbers in geometry objects
- Changed connectivity arrays into uints and fixed a bug in traceline connectivity
- Added additional signal generation types
- Added Shock Response Spectra (SRS) functions in signal processing
- Added ability to do time integration using TimeHistoryArrays
- Added SRS capabilities into SDynPy data objects and ability to create SRSs from time histories
- Added ability to recover internal state information over time when time integrating
- Changed how plot_asd and compare_asd work to make them easier to use
- Added ability to compute time histories using sums of decayed sines to satisfy a specified SRS
- Updated documentation on inverses
- Updated Rattlesnake imports to allow an incomplete test to be loaded