Skip to content

OGRe v1.2

Compare
Choose a tag to compare
@bshoshany bshoshany released this 28 Apr 16:38
· 7 commits to master since this release
76cc52e
  • v1.2 (2021-04-28)
    • New modules:
      • TDocs: Opens the Mathematica notebook OGRe_Documentation.nb directly from the GitHub repository. This allows users to instantly access the latest documentation from any Mathematica session, whether the package itself was loaded locally or from GitHub.
      • TParallelize:
        • Enables or disable the parallelization of tensor simplifications (see below). It is disabled by default.
        • As a rule of thumb, if simplifications are taking less than a few seconds, then you should leave parallelization off, as it has a small overhead and may actually impede performance in that case. However, if simplifications are taking more than a few seconds, then it is highly recommended to enable parallelization for a significant performance boost.
        • This setting will be exported when using TExportAll, so it will be imported automatically with TImportAll in future sessions.
        • Aspects of the package other than simplification are not parallelized, since they are typically short calculations with few elements, and would not benefit from parallelization.
    • Changes to existing modules:
      • TCalc now displays a progress bar (see below).
      • TCheckForUpdates:
        • Fixed a bug where this module falsely reported that a new version is available.
        • Fixed a bug where this module issued an error when giving the option to download OGRe.m to the current notebook directory if the notebook is an Untitled notebook, meaning it is not an actual file in the file system and thus does not have a notebook directory.
        • This module now gives the user the option to reload the new version directly from GitHub without saving it locally.
      • TList and TShow:
        • The output of these modules is now uneditable. I made this change after I noticed that some users were editing the output, thinking that they are editing the tensor itself. (An option to actually edit the elements of a tensor in MatrixForm may be added in a future version.)
        • These modules now take a fourth optional argument: a function to map to each of the tensor's elements before they are displayed. Typically this would be ReplaceAll[rules] to apply the rules to the elements, but any function can be used. Note that applying ReplaceAll to the output of TShow or TList directly won't work, since the output is formatted.
      • TNewMetric now verifies that the metric components are an invertible, symmetric, and square matrix.
    • Other changes:
      • The performance of simplifications has been improved considerably!
        • Simplifications are now performed automatically less often, to prevent simplifying the same expression multiple times.
        • In addition, simplifications can now be parallelized. This is enabled using the new module TParallelize (see above). The parallelization is implemented using a thread pool model (with ParallelSubmit and WaitAll), which in my benchmarks was found to provide better performance than the simpler Parallelize or ParallelMap.
        • Parallelization can potentially provide a speedup proportional to the number of parallel kernels. Note that this number is determined by your Mathematica license, and it may be less than the number of cores in your CPU.
      • Calculations with TCalc and simplifications now both display progress bars, so you can keep track of long calculations. This was a popular feature request, especially for simplifications, since they are usually the most time-consuming operations.
      • Improved the appearance of the welcome message.
      • Messages from OGRe are now displayed with a special cell label.
      • Information on how to load the package is now displayed in the README.md file.