genopt is a python package, trying to serve as a solution of general
multi-dimensional optimization. The core optimization algorithms employed
inside are mainly provided by
DAKOTA, which is the brief for
Design Analysis Kit for Optimization and Terascale Applications,
another tool written in C++.
The following image illustrates the general optimization framework
by properly utilizing
To apply this optimization framework, specific
analysis drivers should
be created first, e.g.
flamedriver2… indicate the
dedicated executable drivers built from C++, for the application in
accelerator commissioning, e.g. FRIB.
flame is an particle envolope tracking code developed by C++,
with the capbility of multi-charge particle states momentum space
tracking, it is developed by FRIB;
user-customized executables by linking the flame core library
libflame_core.so) to accomplish various different requirements.
The intention of
genopt is to provide a uniform interface to do the
multi-dimensional optimization tasks. It provides interfaces to let the
users to customize the optimization drivers, optimization methods,
variables, etc. The optimized results are returned by clean interface.
Dedicated analysis drivers should be created and tell the package to use.
DakotaOC is a dedicated class designed for orbit correction for
accelerator, which uses
flame as the modeling tool.