ContinuationProblem

MCBB.ContinuationProblemType
ContinuationProblem <: myMCProblem

Introduces a Problem type for Bifurcation analysis. It sets up a DEProblem, solves it, then changes a parameter and sets the endpoint of the previous to be IC of a new problem. Repeats for a specified amount of times

Constructor

ContinuationProblem(p::DiffEqBase.DEProblem, par_range::ParameterVar, N::Int64, eval_func::Function, ic_bounds::AbstractArray=[-Inf,Inf],par_bounds::AbstractArray=[-Inf,Inf], hard_bounds::Bool=false)
  • p: Base DifferentialEquations Problem
  • par_range: Description of how the parameter should be changed, ParameterVar OR a tuple of (First: name of the parameter as a symbol, Second: AbstractArray or Function that contains all parameters for the experiment or a function that generates parameter values. The function has to be format (oldvalue) -> (newvalue), Third: OPTIONAL: a function that maps (old_parameter_instance; (par_range[1],new_parameter_value)) -> new_parameter_instance. Default is 'reconstruct' from @with_kw/Parameters.jl is used)
  • N: OPTIONAL, Only needed if parameter variation is given a function to generate new parameter values. If so, N is the total number of parameters and thus DEProblems to be solved
  • eval_ode_run: function, same as for EnsembleProblems
  • ic_bounds: Bounds for the IC that should not be exceeded
  • par_bounds: Bounds for the parameter that should not be exceeded
  • hard_bounds: If a bound is reached: if true, stops the iteration, false continous with (upper/lower bound as IC)

Fields of the struct are the same as the arguments of the constructor.

source
MCBB.ContinuationSolutionType
ContinuationSolution <: myMCSol

Solution object that is returned by solve(prob::ContinuationProblem,...).

Fields are:

  • sol: Array of Arrays, analogously to EnsembleSolution
  • par: Array, parameters of all runs
  • N_mc: Number of runs / DEProblems solved
  • N_meas: number of measures used, $N_{meas} = N_{meas_{dim}} + N_{meas_{global}}$
  • N_meas_dim: number of measures that are evalauted for every dimension seperatly
  • N_meas_global: number of measures that are evalauted globally
  • N_meas_matrix: number of measures that return matrices.
source
MCBB.compute_parametersFunction
compute_parameters(p::DiffEqBase.DEProblem , par_range::OneDimParameterVar, N::Integer)

Computes the parameters that are used for the calculation and returns them as an array.

source
DiffEqBase.solveFunction
 solve(prob::ContinuationProblem, N_t=400::Int, rel_transient_time::Float64=0.9; return_probs::Bool=false, reltol::Float64=1e-9, cyclic_ic::Bool=false, kwargs...)

Custom solve for the ContinuationProblem. Saves and evaluates only after transient at a constant step size.

  • N_t - Int, Number of timesteps of each solution of a DEProblem
  • rel_transient_time - Percentage of time after which the solutions are evaluated
  • return_probs - if 'true' returns a array of DEProblems that were solved
  • reltol - relative tolerance of the solver.Eespacially for systems with constantly growing variables such as certain phase oscilattors the tolerence has to be very small
  • cyclic_ic - if true the initial conditions are always within $[-\pi,\pi]$
source