Skip to content

Releases: AnyarInc/ascent-beta

Release 0.6.0

07 Nov 14:40
Compare
Choose a tag to compare

Changes since 0.5.1

New Features

  • Added the ability to script events in ChaiScript using module.event = fun[](){}
    • ChaiScript events are not ordered with respect to each other and they run before the check() phase
  • Added access to time "t" in scripts (const qualified).

Improvements

  • Moved Module.h macros into a ModuleMacros.h file, which cleans up Module.h.
  • Added folder structure to generated project files via CMakeLists.txt

Fixes

  • Added a 32bit vs 64bit check for Eigen alignment issues on 32bit. Code now builds correctly in 32bit.

Breaking Changes

  • Renamed derivativeEqual to forwardDifference, which is more explicit to what the algorithm is being used for and allows for future algorithms to be added.

Release 0.5.1

27 Sep 20:18
Compare
Choose a tag to compare

Changes since 0.5.0

New Features

  • Added a simStopped() method to Module that returns true if the Simulator the Module belongs to was successfully stopped.

Improvements

  • Added more comments to core code.
  • Changed some std::cerr printing to throw std::runtime_error, most significantly within the Simulator loop.

Fixes

  • Updated ascent-examples repository for new requirement of Link.h header for ascModule macro.

Release 0.5.0

27 Sep 12:54
Compare
Choose a tag to compare

Changes since 0.4.1

New Features

  • Added ChaiScript access to "module" for generic asc::Link instances that are instantiated in ChaiScript.

Improvements

  • Moved base_class ChaiScript definition for ascLink to ascModule, which simplifies code and works for all classes and not just types that are links within a given module. However, this change requires inclusion of Link.h in order to use the ascModule macro.

Fixes

  • Added handling for the case where outputTrack() is called on a module that isn't tracking anything. An empty output file is now generated instead of crashing the program.
  • ChaiEngine is now built with a null_deleter to avoid destruction conflicts with ChaiScript deleting itself.

Release 0.4.1

05 Aug 15:25
Compare
Choose a tag to compare

Changes since 0.4.0

New Features

  • Added another track method to asc::Module that accepts a module's name. Example: module.track("another_module", "x");
  • Added track and outputTrack methods to ChaiScript for asc::Module.
  • New asc::generateInputFile() global function that generates an input file based on named modules and associated variables.

Improvements

  • Removed deprecated async pointer.
  • Moved Module specific ChaiScript registration functions into Simulator class so that they are only registered once per Simulator and not for every child of Module.
  • Improved handling of GlobalChaiScript.

Fixes

  • Minor fixes for accessing variable names by reference in Vars on Ubuntu.

Release 0.4.0

01 Aug 13:25
Compare
Choose a tag to compare

Changes since 0.3.1

New Features

  • A single instance of ChaiScript can now be used for all simulators if desired. Simply add the following line to the start of main: asc::GlobalChaiScript::on = true;
    Typically this isn't necessary or desired, but for cases where simulators are constantly being created and destroyed it can become expensive to create a ChaiScript instance for each simulator.
  • Errors are now thrown via std::runtime_error and can be caught with std::exception.
  • Added boolean comparisons for Link with nullptr. Example: if (link_instance == nullptr)
  • Added clear() methods to History and HistoryVars.

Improvements

  • Updated JsonAPI to use JSONCONS_NO_DEPRECATED. Updated functions to non-deprecated jsoncons functions.
  • Errors are NOT printed to the console by default anymore. This option can be turned on with: printErrors(true);
  • A run-time error is now thrown for null Link access.

Fixes

  • Updated jsoncons dependency with a fix and new std::vector< bool> handling, which allows Ascent to build properly on Apple Xcode. Thanks to Daniel Parker for these fixes/improvements.

Release 0.3.1

22 Jul 13:09
Compare
Choose a tag to compare

Changes since 0.3.0

New Features

  • streamCSV method in asc::Module, which provides a stringstream of csv formatted tracked data. It enables faster run time plotting by appending to the stringstream rather than recreating a string of the data every time step.

Improvements

  • Significantly improved ToString.h, which also removed the need for ToString.cpp. Types can now easily be externally registered and scripting can be used on unregistered types without compile errors. Attempting to track an unregistered type will produce error descriptions in the output file, but will not produce an error in the simulation.

Fixes

  • Simulator run calls now use and set dt_base for running the simulation rather than dt. There was an issue in rare cases where the last time step of dt was less than dt_base and a secondary run call would cause the simulation to run at too small a time step.

Release 0.3.0

05 Jul 16:00
Compare
Choose a tag to compare

Changes since 0.2.2

New Features

  • New JsonAPI, a class that provides variable assignment and access along with chaiscript commands via JSON script.
  • Added jsoncons library, which powers the new JsonAPI.
  • Added csvTrack and jsonTrack methods that produce strings of tracked data in csv or JSON formats. This data can easily be parsed, passed to other programs, or written out to a file.

Improvements

  • asc::Interpolation: closestNeighbor algorithm now handles more types of containers (i.e. std::deque as well as std::vector)
  • Added more documentation to newly exposed data and functions from 0.2.2 release.

Release 0.2.2

30 Jun 13:43
Compare
Choose a tag to compare

Changes since 0.2.1

Deprecated

  • async pointer in Link.h has been deprecated; use module pointer instead for asynchronous ordering. It is not recommended to mess with the module pointer unless you know precisely what you are doing, as it bypasses automatic ordering and increments the reference count if you make a copy of the shared_ptr.

Fixes

  • Fixed an issue with dt in History not being a reference.
  • Fixed an issue with overwriting variable registration for ChaiEngine.

New Features

  • Added access to dt_base and improved handling for changing the time step.
  • Added access to the Phase enumeration.
  • Added access to t_end.
  • Added an endTime method to change the end time of the simulation.
  • Added manipulatorReport, for calling report on manipulators.
  • Added a virtual type() method for RTII.
  • Added generic assignment, name, and module id functions for use in chaiscript.

Release 0.2.1

07 Jun 16:53
Compare
Choose a tag to compare

Changes since 0.2.0

  • Fixed an issue with HistoryVector, where dt wasn't a reference.
  • Added basic multiplication, assignment, and vector operations for Eigen matrices and vectors in Ascent's ChaiScript interface. Currently only supports matrices and vectors of doubles.

Release 0.2.0

27 May 14:23
Compare
Choose a tag to compare

First production ready release!

All major concerns from pre-releases have been considered, tested, and fixed if necessary.

Changes since 0.1.1

  • Added phase initialization code for modules that are instantiated during run time. The simulator's phase maps could be invalidated by insertions if the simulator was running.
  • Added an async pointer in Link, to allow asynchronous manipulation. Useful for advanced simulations and multi-threading, but dangerous if used without reason.