Skip to content

MYSTRAN 18.0.0

Choose a tag to compare

@Bruno02468 Bruno02468 released this 21 Apr 03:15
· 123 commits to main since this release
7f87b36

This major update brings massive performance improvements, a couple new features (and removal of some obsolete ones), and many bug fixes.

General performance improvements

The most noticeable change users will be able to notice is are massive performance improvements. We've seen speedups from 2x to 4x all the way to 10x.

This was achieved through optimisation of several loops and removing unused cruft. Props to @Copper280z and @victorkemp for their huge effort!

Multithreaded SuperLU support

Support has been added for the multithreaded variant of SuperLU. Some larger decks can run over twice as fast!

However, due to the fiddly nature of SuperLU's run-time memory scaling parameters, this has not been made into a default feature.

When building MYSTRAN, one can enable this feature with the -DUSE_SUPERLU_MT=yes. This requires OpenMP in your system, but most Linux and Windows (MSYS2) will already have it. If you do decide to use it, keep an eye on the SPIENV 6/7/8 PARAMs, especially SPIENV7. See PR #182 by @Bruno02468 for details.

F04 and ANS removed

The subroutine timing and log file (F04) is obsolete when debuggers and profilers exist -- and it required every source file to have a header and a footer.

The ANS file contained data similar to F06 but more machine-friendly. In the presence of OP2 and F06 tools (like pyNastran and nastools respectively), it can also be considered obsolete.

Both these formats required a ton of repetitive code for no tangible benefit, and @victorkemp undertook the grueling effort to rid us of them both.

The state of Lanczos...

This update brings several changes to the Lanczos eigenvalue extraction method. Two pieces of good news and one breaking change (warranting the major-version increase).

SuperLU for Lanczos

Thanks to @victorkemp, Lanczos solutions can now use SuperLU for the factorization step, and do so by default. It's a massive performance increase and memory usage decrease: decks that used to take hours and gigabytes now take minutes and megabytes.

Adaptive Lanczos driver for frequency-band mode

Frequency-band Lanczos mode (where you don't specify a fixed number of eigenvalues, just a frequency band) was essentially broken. The inertia-based calculation required a band matrix, which we no longer have due to the removal of BANDIT. It's not viable to run it for non-band matrices, hence the EIGESTL parameter, only allowing the estimator to run for decks with 5000 or less L-set DoF. Increasing this value just allowed the estimator to run for hours.

Instead, an adaptive Lanczos driver was implemented by @Bruno02468. Put very simply, it starts with 10 modes and doubles the amount until the number of in-band modes found becomes stable (or reaches the absurd limit of 10240). There's a bit more to it than that, but that's the gist.

What matters is, frequency-band mode now works for >5k L-set DoF.

Removed EIGRL continuation card

The EIGRL continuation card has been removed. It represented an incompatibility with major Nastran-compatible solvers, its fields were poorly-explained, and none of them should be set by the user.

Other fixes

There's also been many other bug fixes: K6ROT, MPCs, progress counters, timestamps...

Feel free to check the commits since 17.0.0 or the PRs below for details: