The Compile Command
The compile
command takes input files and creates OPS object databases
from them. To a large extent, this plays the same role as a traditional input
file for a simulation program: you set the values for certain keywords in a
human-readable file, and the program can create a simulation based on that.
However there are a few significant differences that make the compile
command more flexible and more powerful than a traditional input file:
The nested input structure is a better representation of the simulation. This helps provide better context for which keywords are relevant, as well as making it more flexible in practical use. Additionally, this makes it easier to transition from working with input files to writing Python scripts with the library.
The input file format allows re-use of named objects within a single file. This not only saves time by avoiding repeated inputs, but because the …
Compiled object databases can be re-used. This is a major difference with transition input files. Instead of an input file being specific to a single simulation run, the OPS input file creates an object database, and that object database can be used for multiple simulation of different types. This is also essential for ensuring reproducibility and tracking provenance of simulation generated data.