VisualDOC General Purpose Optimization Software
VisualDOC is a general-purpose design optimization and integration software system that allows the user to quickly add design optimization capabilities to almost any analysis program. It uses a powerful, intuitive graphical user interface along with state-of-the-art optimization algorithms to setup, solve, and post process your design.

Design Modules in VisualDOC
VisualDOC can perform linear, non-linear, constrained and unconstrained as well as integer, discrete and mixed optimization. The design modules in VisualDOC include: Gradient-Based, Non-gradient Based, and Response Surface Optimization along with Design of Experiments and Probabilistic Design Optimization. Multi-objective optimization is also available in VisualDOC. The details about each design module is as follows.
-
Direct Gradient-based Optimization (DGO)
VisualDOC calls DOT and BIGDOT to perform the gradient-based optimization. The optimizers include:
-
Modified Method of Feasible Direction (MMFD)
Sequential Linear Programming (SLP)
Sequential Quadratic Programming (SQP)
Sequential Unconstrained Optimization (BIGDOT)
Broydon-Fletcher_Goldfarb_Shanno (BFGS)
Fletcher-Reeves
Design of Experiments (DOE)
With Design of Experiments module, the user can create an experimental design, construct the response surface model for this design and analyze the characteristics of the design and approximate model. The user can also export the approximate model and use it for optimization tasks later on. The available DOE design methods is listed as follows. The 2D Scatter Matrix Plot shows a Latin Hypercube Sampling Design from different view of the design space.

-
Factorial Design
Central Composite Design
Box-Behnken Design
Koshal Design
Standard Latin Hypercube and Optimal Latin Hypercube Design
Taguchi Design
Simplex Design
Random Design
User Defined
D-Optimal Design
The approximation models consist of:
-
Linear
Mixed: Linear + Interaction
Mixed: Linear + Quadratic
Full Quadratic
Forward Stepwise Regression
Response Surface Approximate Optimization (RSA)
Response surface approximate optimization is to create explicit approximation functions (see figure on right) to the objective and constraints, and then use these when performing the optimization. The approximation is used for replacing the underlying computationally expensive analyses and is incrementally refined during optimization. The following approximation models are available:

-
Linear
Mixed: Linear + Interaction
Mixed: Linear + Quadratic
Full Quadratic
Forward Stepwise Regression
Non-gradient based optimization (NGO)
VisualDOC includes state-of-the-art non-gradient based optimization methods. These methods attempt to emulate the natural phenomenon by modeling the optimization process such that it can be mapped to the entities of the natural process in an abstract sense. VisualDOC contains the following widely used non-gradient methods:
-
Particle swarm optimization (PSO)
Basic Genetic Algorithm
Non-dominated Sorting Genetic Algorithm II (NSGAII)
Probabilistic Analysis and Optimization

The probabilistic design optimization capability is available through all the design modules and is not considered a design module by itself. A deterministic design can be easily converted to probabilistic analysis and optimization by introducing uncertainties to inputs and responses. The user has the option to perform reliability analysis, reliability-based optimization or n-sigma level robust design (see figure on right). To estimate the uncertainties in responeses, the following probabilistic methods are available:
-
Direct Monte Carlo Sampling
Latin Hypercube Sampling
Mean Value Approximation Method
Approximate Direct Monte Carlo Sampling
Approximate Latin Hypercube Sampling
Multi-Objective Optimization

In VisualDOC, the user can easily generate a Pareto front with any optimization method such as gradient-based method, RSA, etc. VisualDOC performs a systematic scalarization using methods such as weighted-sum, ε-constraint, or compromise programming to convert the multiobjective problem into a single-objective problem. In Addition, NSGA-II is one of the most widely used genetic algorithms for multi-objective optimization. With NSGA-II, the user does not need to convert the multi-objective optimization problem to a single objective problem. NSGAII gives the Pareto-optimal set in a single simulation of the algorithm. The figure on right shows the Pareto front of a multi-objective optimization using NSGAII.
Interfaces to Third Party Analysis Program
VisualDOC provides a set of interfaces for coupling your analysis program or third party software with VisualDOC. These interfaces include:
-
Stand Alone Program Interface
Stand Alone Program Interface communicates data between the analysis program and VisualDOC using simple text files.
VisualScript
VisualScript is a graphical user interface that allows the user to couple virtually any analysis program with VisualDOC. To define the coupling between VisualDOC and existing analysis programs, the user needs to have template input and output files for the analysis program. All modifications to the input files and extractions from the output files are recorded in the VisualScript project. With VisuaScript, the user can define a flow of analyses with conditions and loops. VisualScript also allows the user to transfer variables from one analysis input/output file to another.

VisualDOC-Excel Interface
The VisualDOC-Excel Interface allows users to make use of a Microsoft Excel spreadsheet for evaluating responses, as required during the optimization process.
VisualDOC-Matlab Interface
The VisualDOC-Matlab Interface allows users to make use of MATLAB computational engine to evaluate responses. Using the VisualDOC-MATLAB Interface, VisualDOC opens the MATLAB computational engine, transfers the design variable data to the MATLAB engine, evaluates the responses using a user-supplied MATLAB function M-file, and transfers the response values back to VisualDOC.
Visualization Tool
VisualDOC provides a series of visualization tools for the user to monitor the design optimization progress, analyze the results, and visually explore the design space. These tools include:
-
History Plot
The user can plot the objective, design variables or responses history once the optimization is done. The user can also choose to plot when optimization is running to monitor the optimization progress.

2D and 3D Scatter Plot
VisualDOC includes scatter plot capability in two and three dimensions for an optimization task. For example, the user can plot the Pareto front for a multi-objective optimization task as shown below.

2D Scatter Chart Matrix
A scatter plot matrix is an ordered pairwise combination of 2D scatter plots. The matrix contains plots of all possible pairwise combinations of a set of variables arranged in a matrix style. It is used for viewing the pairwise correlation of the data. The plots on the diagonal of the matrix show the univariate histogram of the frequency of data lying in a certain value range. This scatter matrix plot can be used as a post-processing tool for tasks such as design of experiments (DOE), response surface approximation, and optimization.

Parallel Coordinates Plot
For higher dimensional data analysis and visualization, the user has the option to plot a parallel coordinates chart. The user can annotate the chart as desired. This chart allows the user to select/highlight the desired solution(s) using single click or click-and-drag to select a region. The user can also perform Boolean (union/intersection/difference) operations on the selected data sets to identify/study the solution(s) with desired properties. The figure below shows a boolean operation on two data sets.

3D Approximation Viewer for Response Surface Approximation
The new 3D Approximation Viewer is a powerful tool that allows the user to visualize the response surface approximation from DOE and RSA optimization. It is very flexible and provides many features for intuitive and comprehensive exploration of the design space. Any number of responses can be visualized simultaneously. The user can also modify the plots interactively using different slider bars which adjust the value of the design variables in real time. The approximation can also be directly compared with the actual simulation data for error analysis and visualization.

2D Approximation Viewer for Response Surface Approximation
In addition to 3D Approximation Viewer, VisualDOC now also includes a 2D Approximation Viewer. Similar to the 3D viewer, the 2D viewer can be used to comprehensively explore the design space. The user can simultaneously select multiple inputs and multiple outputs (along with their approximation) and display them in a pairwise matrix format. The user can interactively change the value of inputs (either by using slider bars or directly providing the values) and visualize the change in approximation in real time.

DOE Plots
For design of experiments tasks the user can plotting a series of graphs to view the result and study the characteristics of the DOE design and approximation. The available graphs include: Response Surface Coefficients Plot, Actual vs. Predicted Response Plot, Main Effect and Interactions Plot, Residual Plot, etc.
Embed Design Optimization Capabilities in your Own System
The VisualDOC API is a set of function calls that allow the user to embed all of the VisualDOC capabilities into his/her own code. These capabilities include Direct Gradient-based Optimization (DGO), Response Surface Approximate Optimization (RSA), Design Of Experiments (DOE), Non-gradient-based Optimization (NGO), Single Analysis, and Probabilistic Optimization. The VisualDOC C/C++ APIs is available as part of VisualDOC and can be installed from the VisualDOC CD-ROM.
Parallel or Distributed Computing
VisualDOC allows the user to perform parallel computations whenever multiple analyses are required at the same time. For example, when doing finite difference gradient calculations, evaluating DOE points or when using non-gradient based optimization algorithms. In general, any VisualDOC task can be run in parallel. VisualDOC will exploit parallelism where available by distributing the analysis program to multiple processors. VisualDOC currently provides three modules for performing parallel computations, as follows:
-
The Multiprocessor Module
The multiprocessor module is available on all platforms and is intended for use on multiprocessor or multicore computers. This is the easiest way to perform parallel computing in VisualDOC. The user only has to specify the number of processors to use and VisualDOC takes care of the rest.
The Message Passing Interface Module
The Message Passing Interface (MPI) module makes use of the MPI programming standard to perform parallel computations on parallel or distributed computer resources. This approach can be used on multiprocessor, multicore or a set of networked computers. The module is only available for non-Windows platforms and require the user to install and setup a MPI environment. VisualDOC is setup to work with OpenMPI, but can be recompiled to work with any MPI distribution, for example, MPICH. This is a very flexible module where the user can specify and control the resources being used, but requires some initial setup before use.
The Generic Parallel Module
The generic parallel module simply provides all design points available for parallel processing. It is up to the user to process the list of design points and to distribute the points for parallel computing. For example, the user can use a product like LSF to distribute the analyses on the available resources. This is the most flexible of the three interfaces, but also requires the most input from the user.
Run Analysis on Remote Computer
VisualDOC allows the user to run VisualDOC GUI on the local host computer, while running the expensive analysis on another remote computer. Running the analysis on a remote computer is accomplished via either rsh or ssh shells. The local computer where the VisualDOC GUI runs must run either a rsh or ssh client, while the remote computer where the analysis runs, must run the corresponding server. If the secure shell (ssh) is employed, the user has to set up ssh on the remote computer (where the analysis runs) to allow access to the remote computer without having to enter the password every time a call to the remote computer is made. Remote Run capability is available in both VisualDOC and VisualScirpt.
Simultaneous Analysis
Through Parallel Container in VisualScript, users can run multiple independent simulation codes simultaneously on the same or different machines to reduce overall optimization time. In VisualScript, the Parallel Container element is a container to hold parallel analysis tasks. All tasks within Parallel Container will execute at the same time and wait for each other for completion. The Parallel Container allows the user to place elements into it, such as Analysis Element, Parallel Container, and third party interface element.
Example of Applications
VisualDOC/LS-DYNA Optimization with Crash Analysis (130.3 KB)
VisualDOC/MOLDFLOW Polymer Injector Location Optimization (369.63 KB)
VisualDOC/FLUENT Geometric Fluid Hole Location Optimization (276.31 KB)
VisualDOC/FLUX2D Magnetic Flux Gap Density Optimization (323.35 KB)
VisualDOC/CFDRC Geometry Optimization of a Chemical Vapor Deposition Reactor (302.83 KB)
Probabilistic Design of a Spring (489.79 KB)
Downloads
Download VisualDOC Fact Sheet
New Features in VisualDOC Version 6.2.1 (Feb 2010)
New Features in VisualDOC Version 6.2 (Sep 2009)
New Features in VisualDOC Version 6.1.1 (Dec 2008)
New Features in VisualDOC Version 6.1
New Features in VisualDOC Version 6.0
New Features in VisualDOC Version 5.1
New Features in VisualDOC Version 5.0
New Features in VisualDOC Version 4.0
