The JuliaSim software is available for preview only. Please contact us for access, by emailing [email protected], 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`

functionThe `generic`

surrogate contains only one function, `surrogatize`

, which takes the following positional arguments:

`setup`

: it has to be a type of`SimulationSetup`

.`surralg`

: the surrogate algorithm to be used.`n_sample_pts`

: the number of sets to be sampled from the parameter space.

`simulate`

functionThe `simulate`

function takes the following positional arguments:

`setup`

: it has to be a type of`SimulationSetup`

.`p`

: simulation parameters.`u0`

: the initial condition.

`simulate_ensemble`

functionThe `simulate_ensemble`

function takes the following positional arguments:

`setup`

: it has to be a type of`SimulationSetup`

.`param_space`

: the parameter space.`n_sample_pts`

: the number of sets to be sampled from the parameter space.

Currently, four simulators are available:

`deproblem`

`cellml`

`FMUSimSetup`

`SurrogatizeNgSpice`

`deproblem`

simulatorAs 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`

simulatorThe `cellml`

simulator can be used to create biomedical models.

`LPCTESN`

surrogateThe 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`

surrogateThe 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).