Surrogate generation API
The JuliaSim software is available for preview only. Please contact us for access, by emailing info@juliacomputing.com, if you are interested in evaluating JuliaSim.
In this section, we provide a high-level overview of the API to present the core functionalities of JuliaSim.jl. To avoid inundating the reader with too many details, we refrain from describing the keyword arguments in certain cases. The functions and arguments below will hopefully help the reader to better understand the application examples. Of course, the complete JuliaSim.jl documentation contains all the necessary details.
surrogatize
function
The generic
surrogate contains only one function, surrogatize
, which takes the following positional arguments:
setup
: it has to be a type ofSimulationSetup
.surralg
: the surrogate algorithm to be used.n_sample_pts
: the number of sets to be sampled from the parameter space.
simulate
function
The simulate
function takes the following positional arguments:
setup
: it has to be a type ofSimulationSetup
.p
: simulation parameters.u0
: the initial condition.
simulate_ensemble
function
The simulate_ensemble
function takes the following positional arguments:
setup
: it has to be a type ofSimulationSetup
.param_space
: the parameter space.n_sample_pts
: the number of sets to be sampled from the parameter space.
Simulators
Currently, four simulators are available:
deproblem
cellml
FMUSimSetup
SurrogatizeNgSpice
deproblem
simulator
As the name suggests, the deproblem
simulator is used for solving differential equations. The constructor DEProblemSimulation
takes the following arguments:
prob
: a differential equation problem; has to be specified by the user.alg
: solver algorithm. Default:Rosenbrock23()
.ensemblearg
: ensemble solver algorithm. Default:EnsembleDistributed()
.solver_kwargs
: solver-specific keyword arguments.
cellml
simulator
The cellml
simulator can be used to create biomedical models.
Surrogates
LPCTESN
surrogate
The abbreviation LPCTESN
stands for 'Linear Projection Continuous-Time Echo State Network'.
reservoir_options
The reservoir_options
are specified via the LPCTESN
constructor. The only positional argument is reservoir_size
.
The list of available options for the customization of the reservoir is given below:
reservoir_size
: size (type:Int
) of the reservoir ODE system.weight_initializer
: Default:erdos_renyi
.activation_function
: Default:tanh
.radial_function
: Default:linearRadial
.output_function
: an output function that takes in (state, time) and returns
desired output from the system. Default: (u, t) -> identity(u)
.
reservoir_sim_solver
: Default:Tsit5()
.hybridp
: Parameters of a single solution. Default:nothing
.reservoir_sim_kwargs
NPCTESN
surrogate
The abbreviation NPCTESN
stands for 'Nonlinear Projection Continuous-Time Echo State Network'. The constructor is virtually the same as that for its linear counterpart (the only difference lies in some default values).