Skip to content

Commit

Permalink
kencarp, kvaerno and sdirk
Browse files Browse the repository at this point in the history
  • Loading branch information
kanav99 committed Jul 15, 2019
1 parent 9527c04 commit 5c2c02e
Show file tree
Hide file tree
Showing 4 changed files with 129 additions and 295 deletions.
127 changes: 30 additions & 97 deletions src/caches/kencarp_kvaerno_caches.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
@cache mutable struct KenCarp3ConstantCache{F,N,Tab} <: OrdinaryDiffEqConstantCache
uf::F
@cache mutable struct KenCarp3ConstantCache{N,Tab} <: OrdinaryDiffEqConstantCache
nlsolver::N
tab::Tab
end
Expand All @@ -10,17 +9,14 @@ function alg_cache(alg::KenCarp3,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = oop_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = oopnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getoopnlsolvefields

KenCarp3ConstantCache(uf,nlsolver,tab)
KenCarp3ConstantCache(nlsolver,tab)
end

@cache mutable struct KenCarp3Cache{uType,rateType,uNoUnitsType,JType,WType,UF,JC,N,Tab,F,kType} <: SDIRKMutableCache
@cache mutable struct KenCarp3Cache{uType,rateType,uNoUnitsType,N,Tab,kType} <: SDIRKMutableCache
u::uType
uprev::uType
du1::rateType
fsalfirst::rateType
k::rateType
z₁::uType
z₂::uType
z₃::uType
Expand All @@ -29,15 +25,7 @@ end
k2::kType
k3::kType
k4::kType
dz::uType
b::uType
tmp::uType
atmp::uNoUnitsType
J::JType
W::WType
uf::UF
jac_config::JC
linsolve::F
nlsolver::N
tab::Tab
end
Expand All @@ -48,7 +36,7 @@ function alg_cache(alg::KenCarp3,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = iip_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = iipnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getiipnlsolvefields
fsalfirst = zero(rate_prototype)

if typeof(f) <: SplitFunction
k1 = similar(u); k2 = similar(u)
Expand All @@ -59,15 +47,13 @@ function alg_cache(alg::KenCarp3,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
uf = DiffEqDiffTools.UJacobianWrapper(f,t,p)
end

z₁ = zero(u); z₂ = zero(u); z₃ = zero(u); z₄ = z
z₁ = zero(u); z₂ = zero(u); z₃ = zero(u); z₄ = nlsolver.z
atmp = similar(u,uEltypeNoUnits)

KenCarp3Cache(u,uprev,du1,fsalfirst,k,z₁,z₂,z₃,z₄,k1,k2,k3,k4,dz,b,tmp,atmp,J,
W,uf,jac_config,linsolve,nlsolver,tab)
KenCarp3Cache(u,uprev,fsalfirst,z₁,z₂,z₃,z₄,k1,k2,k3,k4,atmp,nlsolver,tab)
end

@cache mutable struct Kvaerno4ConstantCache{F,N,Tab} <: OrdinaryDiffEqConstantCache
uf::F
@cache mutable struct Kvaerno4ConstantCache{N,Tab} <: OrdinaryDiffEqConstantCache
nlsolver::N
tab::Tab
end
Expand All @@ -78,30 +64,19 @@ function alg_cache(alg::Kvaerno4,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = oop_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = oopnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getoopnlsolvefields
Kvaerno4ConstantCache(uf,nlsolver,tab)
end

@cache mutable struct Kvaerno4Cache{uType,rateType,uNoUnitsType,JType,WType,UF,JC,N,Tab,F} <: SDIRKMutableCache
@cache mutable struct Kvaerno4Cache{uType,rateType,uNoUnitsType,N,Tab} <: SDIRKMutableCache
u::uType
uprev::uType
du1::rateType
fsalfirst::rateType
k::rateType
z₁::uType
z₂::uType
z₃::uType
z₄::uType
z₅::uType
dz::uType
b::uType
tmp::uType
atmp::uNoUnitsType
J::JType
W::WType
uf::UF
jac_config::JC
linsolve::F
nlsolver::N
tab::Tab
end
Expand All @@ -112,17 +87,15 @@ function alg_cache(alg::Kvaerno4,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = iip_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = iipnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getiipnlsolvefields
fsalfirst = zero(rate_prototype)

z₁ = zero(u); z₂ = zero(u); z₃ = zero(u); z₄ = zero(u); z₅ = z
z₁ = zero(u); z₂ = zero(u); z₃ = zero(u); z₄ = zero(u); z₅ = nlsolver.z
atmp = similar(u,uEltypeNoUnits)

Kvaerno4Cache(u,uprev,du1,fsalfirst,k,z₁,z₂,z₃,z₄,z₅,dz,b,tmp,atmp,J,
W,uf,jac_config,linsolve,nlsolver,tab)
Kvaerno4Cache(u,uprev,fsalfirst,z₁,z₂,z₃,z₄,z₅,atmp,nlsolver,tab)
end

@cache mutable struct KenCarp4ConstantCache{F,N,Tab} <: OrdinaryDiffEqConstantCache
uf::F
@cache mutable struct KenCarp4ConstantCache{N,Tab} <: OrdinaryDiffEqConstantCache
nlsolver::N
tab::Tab
end
Expand All @@ -133,16 +106,13 @@ function alg_cache(alg::KenCarp4,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = oop_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = oopnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getoopnlsolvefields
KenCarp4ConstantCache(uf,nlsolver,tab)
KenCarp4ConstantCache(nlsolver,tab)
end

@cache mutable struct KenCarp4Cache{uType,rateType,uNoUnitsType,JType,WType,UF,JC,N,Tab,F,kType} <: SDIRKMutableCache
@cache mutable struct KenCarp4Cache{uType,rateType,uNoUnitsType,N,Tab,kType} <: SDIRKMutableCache
u::uType
uprev::uType
du1::rateType
fsalfirst::rateType
k::rateType
z₁::uType
z₂::uType
z₃::uType
Expand All @@ -155,15 +125,7 @@ end
k4::kType
k5::kType
k6::kType
dz::uType
b::uType
tmp::uType
atmp::uNoUnitsType
J::JType
W::WType
uf::UF
jac_config::JC
linsolve::F
nlsolver::N
tab::Tab
end
Expand All @@ -174,7 +136,7 @@ function alg_cache(alg::KenCarp4,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = iip_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = iipnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getiipnlsolvefields
fsalfirst = zero(rate_prototype)

if typeof(f) <: SplitFunction
k1 = similar(u); k2 = similar(u)
Expand All @@ -188,16 +150,13 @@ function alg_cache(alg::KenCarp4,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
end

z₁ = zero(u); z₂ = zero(u); z₃ = zero(u); z₄ = zero(u); z₅ = zero(u)
z₆ = z
z₆ = nlsolver.z
atmp = similar(u,uEltypeNoUnits)

KenCarp4Cache(u,uprev,du1,fsalfirst,k,z₁,z₂,z₃,z₄,z₅,z₆,k1,k2,k3,k4,k5,k6,
dz,b,tmp,atmp,J,
W,uf,jac_config,linsolve,nlsolver,tab)
KenCarp4Cache(u,uprev,fsalfirst,z₁,z₂,z₃,z₄,z₅,z₆,k1,k2,k3,k4,k5,k6,atmp,nlsolver,tab)
end

@cache mutable struct Kvaerno5ConstantCache{F,N,Tab} <: OrdinaryDiffEqConstantCache
uf::F
@cache mutable struct Kvaerno5ConstantCache{N,Tab} <: OrdinaryDiffEqConstantCache
nlsolver::N
tab::Tab
end
Expand All @@ -208,15 +167,13 @@ function alg_cache(alg::Kvaerno5,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = oop_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = oopnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getoopnlsolvefields

Kvaerno5ConstantCache(uf,nlsolver,tab)
Kvaerno5ConstantCache(nlsolver,tab)
end

@cache mutable struct Kvaerno5Cache{uType,rateType,uNoUnitsType,JType,WType,UF,JC,N,Tab,F} <: SDIRKMutableCache
@cache mutable struct Kvaerno5Cache{uType,rateType,uNoUnitsType,N,Tab} <: SDIRKMutableCache
u::uType
uprev::uType
du1::rateType
fsalfirst::rateType
k::rateType
z₁::uType
Expand All @@ -226,15 +183,7 @@ end
z₅::uType
z₆::uType
z₇::uType
dz::uType
b::uType
tmp::uType
atmp::uNoUnitsType
J::JType
W::WType
uf::UF
jac_config::JC
linsolve::F
nlsolver::N
tab::Tab
end
Expand All @@ -245,18 +194,16 @@ function alg_cache(alg::Kvaerno5,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = iip_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = iipnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getiipnlsolvefields
fsalfirst = zero(rate_prototype)

z₁ = zero(u); z₂ = zero(u); z₃ = zero(u); z₄ = zero(u); z₅ = zero(u)
z₆ = zero(u); z₇ = z
z₆ = zero(u); z₇ = nlsolver.z
atmp = similar(u,uEltypeNoUnits)

Kvaerno5Cache(u,uprev,du1,fsalfirst,k,z₁,z₂,z₃,z₄,z₅,z₆,z₇,dz,b,tmp,atmp,J,
W,uf,jac_config,linsolve,nlsolver,tab)
Kvaerno5Cache(u,uprev,fsalfirst,z₁,z₂,z₃,z₄,z₅,z₆,z₇,atmp,nlsolver,tab)
end

@cache mutable struct KenCarp5ConstantCache{F,N,Tab} <: OrdinaryDiffEqConstantCache
uf::F
@cache mutable struct KenCarp5ConstantCache{N,Tab} <: OrdinaryDiffEqConstantCache
nlsolver::N
tab::Tab
end
Expand All @@ -267,17 +214,14 @@ function alg_cache(alg::KenCarp5,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = oop_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = oopnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getoopnlsolvefields

KenCarp5ConstantCache(uf,nlsolver,tab)
KenCarp5ConstantCache(nlsolver,tab)
end

@cache mutable struct KenCarp5Cache{uType,rateType,uNoUnitsType,JType,WType,UF,JC,N,Tab,F,kType} <: SDIRKMutableCache
@cache mutable struct KenCarp5Cache{uType,rateType,uNoUnitsType,N,Tab,kType} <: SDIRKMutableCache
u::uType
uprev::uType
du1::rateType
fsalfirst::rateType
k::rateType
z₁::uType
z₂::uType
z₃::uType
Expand All @@ -294,15 +238,7 @@ end
k6::kType
k7::kType
k8::kType
dz::uType
b::uType
tmp::uType
atmp::uNoUnitsType
J::JType
W::WType
uf::UF
jac_config::JC
linsolve::F
nlsolver::N
tab::Tab
end
Expand All @@ -313,7 +249,7 @@ function alg_cache(alg::KenCarp5,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
γ, c = tab.γ, tab.c3
J, W = iip_generate_W(alg,u,uprev,p,t,dt,f,uEltypeNoUnits)
nlsolver = iipnlsolve(alg,u,uprev,p,t,dt,f,W,J,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,γ,c)
@getiipnlsolvefields
fsalfirst = zero(rate_prototype)

if typeof(f) <: SplitFunction
k1 = similar(u); k2 = similar(u)
Expand All @@ -325,15 +261,12 @@ function alg_cache(alg::KenCarp5,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNo
k3 = nothing; k4 = nothing
k5 = nothing; k6 = nothing
k7 = nothing; k8 = nothing
uf = DiffEqDiffTools.UJacobianWrapper(f,t,p)
end

z₁ = zero(u); z₂ = zero(u); z₃ = zero(u); z₄ = zero(u)
z₅ = zero(u); z₆ = zero(u); z₇ = zero(u); z₈ = z
z₅ = zero(u); z₆ = zero(u); z₇ = zero(u); z₈ = nlsolver.z
atmp = similar(u,uEltypeNoUnits)

KenCarp5Cache(u,uprev,du1,fsalfirst,k,z₁,z₂,z₃,z₄,z₅,z₆,z₇,z₈,
k1,k2,k3,k4,k5,k6,k7,k8,
dz,b,tmp,atmp,J,
W,uf,jac_config,linsolve,nlsolver,tab)
KenCarp5Cache(u,uprev,fsalfirst,z₁,z₂,z₃,z₄,z₅,z₆,z₇,z₈,
k1,k2,k3,k4,k5,k6,k7,k8,atmp,nlsolver,tab)
end

0 comments on commit 5c2c02e

Please sign in to comment.