Skip to content

Commit 12ec4f6

Browse files
committed
Some cleanup, refactoring, and updating for compatibility with the latest GeometricIntegrators.
1 parent 7ac2921 commit 12ec4f6

11 files changed

+38
-27
lines changed

scripts/lenard_bernstein.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ params = (ν = model.ν, idist = model.dist, fdist = model.ent.dist, model = mod
4646

4747

4848
f = projection(sol[:,1], dist, sdist)
49-
v = LB_rhs(collect(vgrid), params, f)
49+
v = VlasovMethods.LB_rhs(collect(vgrid), params, f)
5050
mom = [mapreduce(p -> p[1], +, sol[:,i]) for i in 1:step:length(sol)]
5151
enr = [mapreduce(p -> p[1].^2, +, sol[:,i]) for i in 1:step:length(sol)]
5252

@@ -56,8 +56,8 @@ anim = @animate for i in 1:step:length(sol)
5656
# compute quantities for plotting
5757
f = projection(sol[:,i], dist, sdist)
5858
df = Derivative(1) * f
59-
v = LB_rhs(collect(vgrid), params, f)
60-
# v = CLB_rhs(collect(vgrid), params, f)
59+
v = VlasovMethods.LB_rhs(collect(vgrid), params, f)
60+
# v = VlasovMethods.CLB_rhs(collect(vgrid), params, f)
6161

6262
plot(xlims = [-8, +8], ylims = [-0.5, +0.5], size=(1200,800))
6363

scripts/cons_lenard_bernstein.jl renamed to scripts/lenard_bernstein_conservative.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ using BSplineKit
33
using VlasovMethods
44

55
# output file
6-
h5file = "lenard_bernstein.hdf5"
6+
h5file = "lenard_bernstein_conservative.hdf5"
77

88
# params
99
# parameters
@@ -67,7 +67,7 @@ anim = @animate for n in 1:step:size(z,2)
6767
f = projection(z[:,n], dist, sdist)
6868
df = Derivative(1) * f
6969
# v = LB_rhs(collect(vgrid), params, f)
70-
v = CLB_rhs(collect(vgrid), params, f)
70+
v = VlasovMethods.CLB_rhs(collect(vgrid), params, f)
7171

7272
plot(xlims = [-8, +8], ylims = [-0.5, +0.5], size=(1200,800))
7373

@@ -79,4 +79,4 @@ anim = @animate for n in 1:step:size(z,2)
7979
end
8080

8181
# save animation to file
82-
gif(anim, "lenard_bernstein_anim.gif", fps=10)
82+
gif(anim, "lenard_bernstein_conservative_anim.gif", fps=10)

src/VlasovMethods.jl

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ using LinearAlgebra
1818

1919
import GeometricEquations
2020
import GeometricEquations: ntime
21-
import GeometricIntegrators.Integrators
21+
import GeometricIntegrators
2222
import DifferentialEquations
2323

2424

@@ -72,15 +72,16 @@ export GeometricIntegrator
7272

7373
# Vlasov models
7474

75-
include("models/vlasov_poisson.jl")
75+
include("models/collision_operator.jl")
7676
include("models/lenard_bernstein.jl")
77-
include("models/conservative_lb.jl")
77+
include("models/lenard_bernstein_conservative.jl")
78+
79+
include("models/vlasov_model.jl")
80+
include("models/vlasov_poisson.jl")
7881

7982
export VlasovPoisson
8083
export LenardBernstein
8184
export ConservativeLenardBernstein
82-
export LB_rhs
83-
export CLB_rhs
8485

8586
# Example Problems
8687

src/methods/geometric_integrator.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ function run!(method::GeometricIntegrator, h5file)
2424
h5z[:,1] = z₀
2525
h5t[1] = t₀
2626

27-
Integrators.initialize!(method.integrator)
27+
GeometricIntegrators.Integrators.initialize!(method.integrator)
2828

2929
# loop over time steps showing progress bar
3030
try
3131
@showprogress 5 for n in 1:ntime(method.equation)
32-
Integrators.integrate!(method.integrator)
32+
GeometricIntegrators.integrate!(method.integrator)
3333
h5z[:,n+1] = method.integrator.solstep.q
3434
h5t[n+1] = method.integrator.solstep.t
3535
end

src/methods/splitting.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ struct SplittingMethod{MT, ET, IT} <: ParticleMethod
44
equation::ET
55
integrator::IT
66

7-
function SplittingMethod(model::MT, equation::ET, integrator::IT) where {MT <: VlasovModel, ET <: GeometricEquations.GeometricProblem, IT}
7+
function SplittingMethod(model::MT, equation::ET, integrator::IT) where {MT <: AbstractVlasovModel, ET <: GeometricEquations.GeometricProblem, IT}
88
new{MT,ET,IT}(model, equation, integrator)
99
end
1010
end

src/models/collision_operator.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
abstract type CollisionOperator <: AbstractVlasovModel end

src/models/lenard_bernstein.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
struct LenardBernstein{XD, VD, DT <: DistributionFunction{XD,VD}, ET <: Entropy, T} <: VlasovModel
1+
struct LenardBernstein{XD, VD, DT <: DistributionFunction{XD,VD}, ET <: Entropy, T} <: CollisionOperator
22
dist::DT # distribution function
33
ent::ET # entropy
44
ν::T # collision frequency

src/models/conservative_lb.jl renamed to src/models/lenard_bernstein_conservative.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
struct ConservativeLenardBernstein{XD, VD, DT <: DistributionFunction{XD,VD}, ET <: Entropy, T} <: VlasovModel
1+
struct ConservativeLenardBernstein{XD, VD, DT <: DistributionFunction{XD,VD}, ET <: Entropy, T} <: CollisionOperator
22
dist::DT # distribution function
33
ent::ET # entropy
44
ν::T # collision frequency
@@ -96,8 +96,8 @@ function GeometricIntegrator(model::ConservativeLenardBernstein{1,1}, tspan::Tup
9696
parameters = params)
9797

9898
# create integrator
99-
int = Integrators.Integrator(equ, Integrators.RK438())
100-
# int = Integrators.Integrator(equ, Integrators.CrankNicolson())
99+
int = GeometricIntegrators.GeometricIntegrator(equ, GeometricIntegrators.RK438())
100+
# int = GeometricIntegrators.GeometricIntegrator(equ, GeometricIntegrators.CrankNicolson())
101101

102102
# put together splitting method
103103
GeometricIntegrator(model, equ, int)

src/models/model.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11

2-
abstract type VlasovModel end
2+
abstract type AbstractVlasovModel end

src/models/vlasov_model.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
abstract type VlasovModel <: AbstractVlasovModel end

0 commit comments

Comments
 (0)