Skip to content

Commit

Permalink
make inner so there's no overriding
Browse files Browse the repository at this point in the history
  • Loading branch information
jClugstor committed Dec 12, 2024
1 parent 02c6300 commit a698ec1
Show file tree
Hide file tree
Showing 15 changed files with 276 additions and 243 deletions.
36 changes: 20 additions & 16 deletions src/problems/analytical_problems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,6 @@ end

export AnalyticalProblem, AbstractAnalyticalProblem

struct AnalyticalAliasSpecifier <: AbstractAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
alias_du0::Union{Bool, Nothing}
alias_tstops::Union{Bool, Nothing}
end

@doc doc"""
Expand All @@ -54,13 +47,24 @@ When a keyword argument is `nothing`, the default behaviour of the solver is use
* `alias::Union{Bool, Nothing}`: sets all fields of the `AnalyticalAliasSpecifier` to `alias`
"""
function AnalyticalAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
if alias == true
AnalyticalAliasSpecifier(true, true, true, true, true)
elseif alias == false
AnalyticalAliasSpecifier(false, false, false, false, false)
elseif isnothing(alias)
AnalyticalAliasSpecifier(alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
struct AnalyticalAliasSpecifier <: AbstractAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
alias_du0::Union{Bool, Nothing}
alias_tstops::Union{Bool, Nothing}

function AnalyticalAliasSpecifier(;
alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
if alias == true
new(true, true, true, true, true)
elseif alias == false
new(false, false, false, false, false)
elseif isnothing(alias)
new(alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
end
end
end
end


39 changes: 20 additions & 19 deletions src/problems/bvp_problems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -439,16 +439,6 @@ function TwoPointSecondOrderBVProblem(
return TwoPointSecondOrderBVProblem(f, bc, u0, (tspan[1], tspan[end]), p; kwargs...)
end


struct BVPAliasSpecifier <: AbstractAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
alias_du0::Union{Bool, Nothing}
alias_tstops::Union{Bool, Nothing}
end


@doc doc"""
Holds information on what variables to alias
Expand All @@ -466,13 +456,24 @@ When a keyword argument is `nothing`, the default behaviour of the solver is use
* `alias::Union{Bool, Nothing}`: sets all fields of the `BVPAliasSpecifier` to `alias`
"""
function BVPAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
if alias == true
BVPAliasSpecifier(true, true, true, true, true)
elseif alias == false
BVPAliasSpecifier(false, false, false, false, false)
elseif isnothing(alias)
BVPAliasSpecifier(alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
struct BVPAliasSpecifier <: AbstractAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
alias_du0::Union{Bool, Nothing}
alias_tstops::Union{Bool, Nothing}

function BVPAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
if alias == true
new(true, true, true, true, true)
elseif alias == false
new(false, false, false, false, false)
elseif isnothing(alias)
new(alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
end
end
end
end



39 changes: 20 additions & 19 deletions src/problems/dae_problems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -120,16 +120,6 @@ function ConstructionBase.constructorof(::Type{P}) where {P <: DAEProblem}
end
end


struct DAEAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
alias_du0::Union{Bool, Nothing}
alias_tstops::Union{Bool, Nothing}
end


@doc doc"""
Holds information on what variables to alias
Expand All @@ -147,13 +137,24 @@ When a keyword argument is `nothing`, the default behaviour of the solver is use
* `alias::Union{Bool, Nothing}`: sets all fields of the `DAEAliasSpecifier` to `alias`
"""
function DAEAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
if alias == true
DAEAliasSpecifier(true, true, true, true, true)
elseif alias == false
DAEAliasSpecifier(false, false, false, false, false)
elseif isnothing(alias)
DAEAliasSpecifier(alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
struct DAEAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
alias_du0::Union{Bool, Nothing}
alias_tstops::Union{Bool, Nothing}

function DAEAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
if alias == true
new(true, true, true, true, true)
elseif alias == false
new(false, false, false, false, false)
elseif isnothing(alias)
new(alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
end
end
end
end



34 changes: 18 additions & 16 deletions src/problems/dde_problems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -397,13 +397,6 @@ function SecondOrderDDEProblem(f::DynamicalDDEFunction, args...; kwargs...)
end
end

struct DDEAliasSpecifier
alias_p
alias_f
alias_u0
alias_tstops
end


@doc doc"""
Expand All @@ -422,13 +415,22 @@ When a keyword argument is `nothing`, the default behaviour of the solver is use
* `alias::Union{Bool, Nothing}`: sets all fields of the `DDEAliasSpecifier` to `alias`
"""
function DDEAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
if alias == true
DDEAliasSpecifier(true, true, true, true, true)
elseif alias == false
DDEAliasSpecifier(false, false, false, false, false)
elseif isnothing(alias)
DDEAliasSpecifier(alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
struct DDEAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
alias_tstops::Union{Bool, Nothing}

function DDEAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias_tstops = nothing, alias = nothing)
if alias == true
new(true, true, true, true, true)
elseif alias == false
new(false, false, false, false, false)
elseif isnothing(alias)
new(alias_p, alias_f, alias_u0, alias_du0, alias_tstops)
end
end
end
end


35 changes: 19 additions & 16 deletions src/problems/discrete_problems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,6 @@ function DiscreteProblem(u0::Union{AbstractArray, Number}, tspan::Tuple,
DiscreteProblem(f, u0, tspan, p; kwargs...)
end

struct DiscreteAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
end


@doc doc"""
Holds information on what variables to alias
Expand All @@ -176,13 +169,23 @@ When a keyword argument is `nothing`, the default behaviour of the solver is use
* `alias::Union{Bool, Nothing}`: sets all fields of the `DiscreteAliasSpecifier` to `alias`
"""
function DiscreteAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias = nothing)
if alias == true
DiscreteAliasSpecifier(true, true, true, true, true)
elseif alias == false
DiscreteAliasAliasSpecifier(false, false, false, false, false)
elseif isnothing(alias)
DiscreteAliasSpecifier(alias_p, alias_f, alias_u0)
struct DiscreteAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}

function DiscreteAliasSpecifier(;
alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias = nothing)
if alias == true
new(true, true, true, true, true)
elseif alias == false
new(false, false, false, false, false)
elseif isnothing(alias)
new(alias_p, alias_f, alias_u0)
end
end
end
end



34 changes: 18 additions & 16 deletions src/problems/implicit_discrete_problems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,6 @@ function ImplicitDiscreteProblem(f, u0, tspan, p = NullParameters();
ImplicitDiscreteProblem(ImplicitDiscreteFunction{iip}(f), u0, tspan, p; kwargs...)
end


struct ImplicitDiscreteAliasSpecifier
alias_p::Union{Bool,Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}
end

@doc doc"""
Holds information on what variables to alias
Expand All @@ -142,13 +135,22 @@ When a keyword argument is `nothing`, the default behaviour of the solver is use
* `alias::Union{Bool, Nothing}`: sets all fields of the `ImplicitDiscreteAliasSpecifier` to `alias`
"""
function ImplicitDiscreteAliasSpecifier(; alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias = nothing)
if alias == true
ImplicitDiscreteAliasSpecifier(true, true, true, true, true)
elseif alias == false
ImplicitDiscreteAliasAliasSpecifier(false, false, false, false, false)
elseif isnothing(alias)
ImplicitDiscreteAliasSpecifier(alias_p, alias_f, alias_u0)
struct ImplicitDiscreteAliasSpecifier
alias_p::Union{Bool,Nothing}
alias_f::Union{Bool, Nothing}
alias_u0::Union{Bool, Nothing}

function ImplicitDiscreteAliasSpecifier(;
alias_p = nothing, alias_f = nothing, alias_u0 = nothing,
alias_du0 = nothing, alias = nothing)
if alias == true
new(true, true, true, true, true)
elseif alias == false
new(false, false, false, false, false)
elseif isnothing(alias)
new(alias_p, alias_f, alias_u0)
end
end
end
end


28 changes: 15 additions & 13 deletions src/problems/integral_problems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,6 @@ struct SampledIntegralProblem{Y, X, K} <: AbstractIntegralProblem{false}
end
end

struct IntegralAliasSpecifier <: AbstractAliasSpecifier
alias_p
alias_f
end

@doc doc"""
Holds information on what variables to alias
Expand All @@ -187,12 +182,19 @@ When a keyword argument is `nothing`, the default behaviour of the solver is use
* `alias::Union{Bool, Nothing}`: sets all fields of the `IntegralAliasSpecifier` to `alias`
"""
function IntegralAliasSpecifier(alias_p = nothing, alias_f = nothing, alias = nothing)
if alias == true
IntegralAliasSpecifier(true, true)
elseif alias == false
IntegralAliasSpecifier(false, false)
elseif isnothing(alias)
IntegralAliasSpecifier(alias_p, alias_f)
struct IntegralAliasSpecifier <: AbstractAliasSpecifier
alias_p::Union{Bool, Nothing}
alias_f::Union{Bool, Nothing}

function IntegralAliasSpecifier(alias_p = nothing, alias_f = nothing, alias = nothing)
if alias == true
new(true, true)
elseif alias == false
new(false, false)
elseif isnothing(alias)
new(alias_p, alias_f)
end
end
end
end


29 changes: 16 additions & 13 deletions src/problems/linear_problems.jl
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,6 @@ function LinearProblem(A, b, args...; kwargs...)
end
end

struct LinearAliasSpecifier <: AbstractAliasSpecifier
alias_A::Union{Bool,Nothing}
alias_b::Union{Bool,Nothing}
end

@doc doc"""
Holds information on what variables to alias
when solving a LinearProblem. Conforms to the AbstractAliasSpecifier interface.
Expand All @@ -100,12 +95,20 @@ When a keyword argument is `nothing`, the default behaviour of the solver is use
Creates a `LinearAliasSpecifier` where `alias_A` and `alias_b` default to `nothing`.
When `alias_A` or `alias_b` is nothing, the default value of the solver is used.
"""
function LinearAliasSpecifier(;alias_A = nothing, alias_b = nothing, alias_p = nothing, alias_f = nothing, alias = nothing)
if alias == true
LinearAliasSpecifier(true,true,true,true)
elseif alias == false
LinearAliasSpecifier(false,false,false,false)
elseif isnothing(alias)
LinearAliasSpecifier(alias_p, alias_f, alias_A, alias_b)
struct LinearAliasSpecifier <: AbstractAliasSpecifier
alias_A::Union{Bool,Nothing}
alias_b::Union{Bool,Nothing}

function LinearAliasSpecifier(; alias_A = nothing, alias_b = nothing,
alias_p = nothing, alias_f = nothing, alias = nothing)
if alias == true
new(true, true, true, true)
elseif alias == false
new(false, false, false, false)
elseif isnothing(alias)
new(alias_p, alias_f, alias_A, alias_b)
end
end
end
end


Loading

0 comments on commit a698ec1

Please sign in to comment.