This page contains the user-manual for OASIS 2022. We assume that you are already familiar with the optimization process and already have a copy of OASIS 2022 installed. If you are not familiar with Optimization, we suggest starting by reading our blog post on the subject. If you do not yet have a copy of OASIS installed, contact us to get started.
Getting Started
OASIS is a third wave general purpose optimization tool. To run your first optimization you only need to supply an overview of your model. This video demonstrates how OASIS will operate generally using only user supplied mathematic expressions.
Basic functions
Our manual detailing the basic functions of OASIS, including input variables, output variables, variable mapping, and simulation integration are available in our basic manual
Simulation Integration
OASIS has powerful general-purpose simulation integration tools. This video demonstrates how OASIS can be integrated with any tool, including windows powershell scripts and simulation softwares.
The setup for OASIS execution strategy “Execute Once and Monitor Files for Changes” demonstrated at below video.
BABEL MatH Expressions
Babel is a math expression language created for OASIS by Empower Operations. It expresses most common mathematic operations with a keyboard friendly syntax.
// assume variables x1, dist_var, x3, angle_2
x1 * dist_var^2 + 7.3*x3 + cos(angle_2)
Babel is used to define constraints, transformations on simulation outputs and objectives more generally.
// constraint example
x1*x2 > x3
It also has more novel concepts to allow for more elaborate math expressions
sum(1, 19, i ->
var temp = var[i]^2 - e^var[i-1]
temp + 23.4
)
A complete reference for Babel can be found here:
OPYL Config DOcuments
OPYL is a configuration document type for OASIS. It is a specialization of YAML document documents, which are text-based human-readable configuration files.
OPYL files can be used to quickly share configuration between collegues, or at the command line as a directive for OASIS in a kind of batch mode. They are much smaller than OASIS project files but do not contain any optimization result information.
Below is a would-be complete definition for an imaginary simulation tool CAN_SIM
on an imaginary compression model involving two beams.
#describes the input variables to the problem
inputs:
l1_height: { lower: 0.01, upper: 5.0 }
l2_height: { lower: 0.01, upper: 5.0 }
l1_width: { lower: 0.01, upper: 7.025E6, step: 1000 }
l2_width: { lower: 0.0, upper: 2.0E-3, step: 5.0E-4 }
threadSize: { lower: -5.0, upper: 5.0, step: 0.5 }
# more details have been elided here
...
simulations:
cansim:
exe: C:\Program Files (x86)\cansim\bin\cansim300.exe
timeout: 30 min
input file: C:\Users\localUsr\cansim\mainModel.m
output file: C:\Users\localUsr\cansim\report.ini
options:
-b:
-extra : "C:/Users"
inputs:
CAN_L1_HEIGHT:
- { line: 25, character: 41, length: 3 }
CAN_L2_HEIGHT:
- { line: 26, character: 41, length: 3 }
outputs:
CAN_TOLERANCE:
- anchor: "CANSIM SIMULATION SYSTEM 20"
occurance: 2
- anchor: "TABLE OF OUTPUTS"
- line: 4
- character: 27
#some misc details about how the optimization
#is to be performed
settings:
runs: 10
target: 20.0
A complete reference for OPYL, and YAML more generally can be found here
Command Line
OASIS can be run from the command line to avoid the overhead of using a GUI.
A few sample executions are as follows:
This will cause OASIS to act as if it was told to import the "Getting Started.opyl" configuration file and run it. OASIS will run until the convergence criteria ("settings" section in the OPYL file) is satisfied or until the user presses ctrl-C
To continue an optimization from the command line and to run from a project rather than from an OPYL file, use this syntax:
> oasis.cli.exe
--execute "C:\run-sample-results\output-project.oasis"
--output "C:\run-sample-results\project-continued.oasis"
--continue 5
You can run oasis.cli.exe itself with --help
for more details
Environment Variables
For debugging and customization, you can specify the particular behavior of some OASIS components through environment variables. A full list of environment variables is placed at oasis install location\documentation.
Specifying Environment Variables
The default values for the environment variables can be overridden by editing the vmoptions files, for the Command Line mode and Graphical modes. These files expect their contents to be in the form:
#Comments are specified with Hash signs
-Dcom.empowerops.option=123
-Dcom.empowerops.another.option=true
-Dcom.empowerops.decimal_options=1.234
For example, to have graphical-mode OASIS not render the Parallel Coordinates Plot, the oasis.vmoptions file should contain:
-Dcom.empowerops.visualizer.SplitGraphsController.DrawParallelCoordinates=false
OASIS Variables
-Dcom.empowerops.algorithms.ExternalToolBackupService.RestoreWorkingDirectory=value
Directs OASIS to restore the working directory to its pre-optimization state after an optimization is finished. Value is true or false, default is false.
-Dcom.empowerops.algorithms.ExternalToolFileWatchingJob.DeleteOutputFileOnNewInputFileGeneration=value
Causes the output file of any file-watching jobs to be deleted after the input values are written but before any change detection starts. Value is true or false, default is false.
-Dcom.empowerops.algorithms.ExternalToolFileWatchingJob.FileWatcherCooldown=value
An amount of time to stall the optimization before and after any file IO for the file watching jobs, such that any and all processes associated with the file can release any locks they have on the file. Value is a duration, such as "1500ms" or "2 sec", defaults to “400 ms”.
-Dcom.empowerops.algorithms.OptimizationSavingService.AutoSavePeriod=value
The period between automatic saving attempts of the OASIS project file and results. Value is a duration such as “3 min” or “30 sec”, defaults to “2 min”.
-Dcom.empowerops.algorithms.SimulationFileRewriter.DefaultDecimalFormat=value
The format which values written to input values will follow, as per https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html . Value is a decimal format pattern string, such as “0.0###E00” .
-Dcom.empowerops.common.LoggingBootstrapper.DefaultLevel=value
The default level of all logs, including the file and console loggers. Value is a logging level, one of SEVERE, WARNING, INFO, FINEST, defaults to WARNING.
-Dcom.empowerops.common.persistence.FileSystem.DefaultAssumedUserCharset=value
The default encoding scheme (aka character set) assumed of all files. Value is a character set name, such as US_ASCII or UTF-8 or UTF-16, defaults to UTF-8.
-Dcom.empowerops.front_end.ui.external_tool.variable_detection.VariableDetectionPreviewController.MaxDocumentLength=value
The number of characters to display on the file preview window for input and output files. Value is a counting number, defaults to 100000.
-Dcom.empowerops.front_end.ui.SplitGraphsController.DrawVisualizations=value
Specifies whether to draw and update any of the visualizations. This value overrides any other specified Split-Graphs visualization values. Value is “true” or “false”, defaults to “true”.
-Dcom.empowerops.visualizer.SplitGraphsController.DrawParallelCoordinates=value
Specifies whether to draw and update the Parallel Coordinates Plot (the top-center line graph). Value is “true” or “false”, defaults to “true”.
-Dcom.empowerops.front_end.ui.SplitGraphsController.DrawSurfaceScatter=value
Specifies whether to draw and update the Surface Scatter Plot (the bottom-left 3D cube plot). Value is “true” or “false”, defaults to “true”.
-Dcom.empowerops.front_end.ui.SplitGraphsController.DrawConvergenceLine=value
Specifies whether to draw and update the Convergence Line Plot (the bottom-center downward-line plot). Value is “true” or “false”, defaults to “true”.
-Dcom.empowerops.visualizer.optimizationResults.OptimizationResultSheetController.DrawResultsSheet=value
Specifies whether or not to draw and update the Results Sheet. Value is “true” or “false”, defaults to “true”
-Dcom.empowerops.front_end.ui.ExceptionHandlingService.MinBalloonLevel=value
The minimum level that a warning or error must be to raise an error balloon and entry in the error log.value is a logging level, one of FINE, INFO, WARNING, or SEVERE, defaults to WARNING
If you have more questions about OASIS functionality, please contact us.