Skip to content

Differences between Simplified ROSS and ROSS Legacy

Elsa Gonsiorowski edited this page Jan 22, 2015 · 1 revision

There are many small differences between SR and ROSS. For the most part, model developers will have to make very few modifications in order to work with SR.

Small Changes

The Directory Hierarchy

In SR, there are two top level directories: core and models. The core directory holds all of the ROSS code. The model directory holds all the models, each in its own directory. By default, the model directories searched by CMake, but ignored by git.

CMake Changes

Currently, SR uses a config.h file, instead of command line -D flags. To find this file when compiling, you must use the command INCLUDE_DIRECTORIES(${ROSS_BINARY_DIR}) before you ADD_EXECUTABLE. This allows two things:

  • the model directory is now placed outside of the core directory
  • multiple build configurations can exist at once (that is, builds happen outside of the source tree).

Sub-Modules

The SR repository makes use of git-submodules. This page has a great description of what submodules are and how to use them. There are currently three submodules linked from the SR repo:

  • GetGitRevision is used to print the current Git revision during the start of a simulation.
  • gonsie/SR-model is a template model for developers to start with.
  • gonsie/RIO is a work-in-progess I/O and checkpointing system for ROSS.

Using Submodules

To make use of the included submodules, you must run the git submodule init command followed by the git submodule update.

Major Changes

Setting LP Type

Currently, ROSS requires each LP to define its type by a call to the tw_lp_settype function. SR has added some functionality to better handle LP types. A summary of these changes can be seen in this commit, and it can be used by models with one LP type via this functionality. See this wiki page for how to add this to a model.

Unsupported "Features"

ROSS has become crufty. To shrink the repository, many of the old files have been removed. This may have removed some functionality.