Je suis en train de travailler dur la documentation, malheureusement je n'arrive pas à faire fonctionner les exemples...
J'ai le code suivant pour essayer de faire un amortissement Landau en 1d1v.
J'obtiens n'importe quoi sur l'énergie. Je ne comprends pas non plus à quoi sert le tableau tabst
. Je n'ai pas trouvé la documentation sur cet argument.
J'espère que tu vas bien et que tu pourras m'aider...
function run_simulation(nbdt, sz, dt, interp, tab_coef)
epsilon = 0.001
xmin, xmax, nx = 0., 4π, sz[1]
vmin, vmax, nv = -6., 6., sz[2]
mesh_x = UniformMesh(xmin, xmax, nx)
mesh_v = UniformMesh(vmin, vmax, nv)
tabst = [([1, 2], 1, 1, true), ([2, 1], 1, 2, true)]
adv = Advection((mesh_x, mesh_v), [interp, interp], dt, tabst;
tab_coef = tab_coef, timeopt = NoTimeOpt)
kx = 0.5
fct_x(x) = epsilon * cos(kx * x) + 1
fct_v(v) = exp(-v^2 / 2) / sqrt(2π)
lgn_x = fct_x.(mesh_x.points)
lgn_v = fct_v.(mesh_v.points)
data = dotprod((lgn_x, lgn_v))
pvar = getpoissonvar(adv)
advd = AdvectionData(adv, data, pvar)
println("# dt=$(dt) eps=$(epsilon) size_x=$nx size_v=$nv")
println("# x : from $(start(mesh_x)) to $(stop(mesh_x))")
println("# v : from $(start(mesh_v)) to $(stop(mesh_v))")
println("# interpolation : $interp order=$(get_order(interp))")
println("# tab_coef : $tab_coef")
println("# timeopt=$timeopt")
println("# size(data)=$(size(data))")
el = Float64[]
@showprogress 1 for i = 1:nbdt
while advection!(advd) end
push!(el, compute_ee(advd))
end
return el
end