Documentation

VlasovPoissonTwoSpecies.CoefType
mutable struct Coef

Use this type to set the coefficients for the equation

\[\Big(\frac{d}{dx} y\Big)^2 := \alpha y^4 + \gamma y^2 + \epsilon,\]

Three sets of coefficients are availabe:

  • :JacobiDN
  • :JacobiND
  • :JacobiCN
source
VlasovPoissonTwoSpecies.EquilibriumManagerType
struct EquilibriumManager
  • mesh_x::Mesh

  • mesh_v::Mesh

  • coef::Coef

  • fe::Matrix{Float64}

  • fi::Matrix{Float64}

  • dx_fe::Matrix{Float64}

  • dv_fe::Matrix{Float64}

  • dx_fi::Matrix{Float64}

  • dv_fi::Matrix{Float64}

Stationary solutions to Vlasov-Poisson under the following form

\[ \begin{cases} f^+(x,v) = \sqrt{\frac{a}{\pi}}\Big(r_1 e^{2 a (\frac{v^2}{2}+\phi(x))} + \frac{r_2}{\sqrt{2}} e^{a(\frac{v^2}{2}+\phi(x))}\Big),\ f^-(x,v) = \sqrt{\frac{a}{\mu \pi}}\Big(s_1 e^{2 a (\frac{v^2}{2 \mu}-\phi(x))} + \frac{s_2}{\sqrt{2}} e^{a(\frac{v^2}{2 \mu}-\phi(x))}\Big), \end{cases}\]

source
VlasovPoissonTwoSpecies.OutputManagerType
struct OutputManager
  • data::Data

  • mesh_x::Mesh

  • mesh_v::Mesh

  • nb_outputs::Int64

  • t::Vector{Float64}

  • compute_energy_eq::Bool

  • energy_fe_init::Float64

  • energy_fi_init::Float64

  • energy_fe::Vector{Float64}

  • energy_fi::Vector{Float64}

Data structure to manage outputs.

source
VlasovPoissonTwoSpecies.SchemeType
struct Scheme
  • mesh_x::Mesh

  • mesh_v::Mesh

  • advection_x::VlasovPoissonTwoSpecies.Advection

  • advection_v::VlasovPoissonTwoSpecies.Advection

  • fe::Matrix{Float64}

  • fi::Matrix{Float64}

  • ge::Matrix{Float64}

  • gi::Matrix{Float64}

  • ρ_eq::Vector{Float64}

  • e_eq::Vector{Float64}

  • fe_eq::Matrix{Float64}

  • fi_eq::Matrix{Float64}

  • dx_fe_eq::Matrix{Float64}

  • dx_fi_eq::Matrix{Float64}

  • dv_fe_eq::Matrix{Float64}

  • dv_fi_eq::Matrix{Float64}

  • wb_scheme::Bool

  • e_projection::Vector{Float64}

source
VlasovPoissonTwoSpecies.WellBalancedType
struct WellBalanced <: VlasovPoissonTwoSpecies.AbstractScheme
  • mesh_x::Mesh

  • mesh_v::Mesh

  • advection_x::VlasovPoissonTwoSpecies.Advection

  • advection_v::VlasovPoissonTwoSpecies.Advection

  • fe::Matrix{Float64}

  • fi::Matrix{Float64}

  • ge::Matrix{Float64}

  • gi::Matrix{Float64}

  • geᵗ::Matrix{Float64}

  • giᵗ::Matrix{Float64}

  • ρ_eq::Vector{Float64}

  • e_eq::Vector{Float64}

  • fe_eq::Matrix{Float64}

  • fi_eq::Matrix{Float64}

  • dx_fe_eq::Matrix{Float64}

  • dx_fi_eq::Matrix{Float64}

  • dv_fe_eq::Matrix{Float64}

  • dv_fi_eq::Matrix{Float64}

  • t_f::Matrix{Float64}

source
VlasovPoissonTwoSpecies.T_fFunction
T_f(mesh_x, mesh_v, f, e, dx_f, dv_f)
T_f(mesh_x, mesh_v, f, e, dx_f, dv_f, order)

\[T_{\phi} = v \partial_x - \partial_x \phi \partial_v\]

source
VlasovPoissonTwoSpecies.advect_vlasovFunction
advect_vlasov(advection_x, advection_v, fe, fi, dt)
advect_vlasov(advection_x, advection_v, fe, fi, dt, e_eq)
advect_vlasov(
    advection_x,
    advection_v,
    fe,
    fi,
    dt,
    e_eq,
    order
)
source
VlasovPoissonTwoSpecies.bsplineMethod
bspline(p, j, x)

Return the value at x in [0,1] of the B-spline with integer nodes of degree p with support starting at j. Implemented recursively using the De Boor's Algorithm

\[B_{i,0}(x) := \left\{ \begin{matrix} 1 & \mathrm{if} \quad t_i ≤ x < t_{i+1} \\ 0 & \mathrm{otherwise} \end{matrix} \right.\]

\[B_{i,p}(x) := \frac{x - t_i}{t_{i+p} - t_i} B_{i,p-1}(x) + \frac{t_{i+p+1} - x}{t_{i+p+1} - t_{i+1}} B_{i+1,p-1}(x).\]

source