Skip to content
Marcelo Forets edited this page Jan 20, 2019 · 1 revision

(rough idea, not finished)

abstract type AbstractModel end

abstract type AbstractProblem end

struct IVPModel{IT, ST, MT} <: AbstractModel
    id::Dict{Any, Any}
    ivp::ST
    options::MT
end

struct ProblemInstance{MT<:AbstractModel, PT<:AbstractProperty} <: AbstractProblem
    model::MT
    property::PT
end

id(p::ProblemInstance) = p.model.id

function iss

end

ISS(model)  = iss(...) # instantiate iss with default options

function run(m::ProblemInstance)::AbstractSolution
    . . .
end

# define the iss model, independent of the concrete analysis
function iss(o::Options)::ISS
    . . . .
end

function default_options(m::ISS)::Options
     . . . .
end
Clone this wiki locally