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.

More details