Theory

Kinetic.prim_conserveFunction

Transform primitive -> conservative variables

prim_conserve(prim::T, γ) where {T<:AbstractArray{<:Real,1}}

prim_conserve(ρ, U, λ, γ)

prim_conserve(ρ, U, V, λ, γ)

prim_conserve(ρ, U, V, W, λ, γ)
Kinetic.conserve_primFunction

Transform conservative -> primitive variables

  • scalar: pseudo primitive vector for scalar conservation laws

    conserve_prim(u)

    conserve_prim(u, a)

  • vector: primitive vector for Euler, Navier-Stokes and extended equations

    conserve_prim(W::T, γ) where {T<:AbstractArray{<:Real,1}}

    conserve_prim(ρ, M, E, γ)

    conserve_prim(ρ, MX, MY, E, γ)

Kinetic.mixture_prim_conserveFunction

Transform multi-component primitive -> conservative variables

mixture_prim_conserve(prim::T, γ) where {T<:AbstractArray{<:Real,2}}
Kinetic.mixture_conserve_primFunction

Transform multi-component conservative -> primitive variables

mixture_conserve_prim(W::T, γ) where {T<:AbstractArray{<:Real,2}}
Kinetic.em_coefficientsFunction

Calculate electromagnetic coeffcients in hyperbolic Maxwell's equations

em_coefficients(
    prim::X,
    E::Y,
    B::Z,
    mr,
    lD,
    rL,
    dt,
) where {X<:AbstractArray{<:Real,2},Y<:AbstractArray{<:Real,1},Z<:AbstractArray{<:Real,1}}
Kinetic.euler_fluxFunction

Theoretical fluxes of Euler Equations

euler_flux(w::A, γ; frame = :cartesian::Symbol) where {A<:AbstractArray{<:Real,1}}
  • @return: flux tuple
Kinetic.euler_jacobiFunction

Flux Jacobian of Euler Equations

euler_jacobi(w::T, γ) where {T<:AbstractArray{<:Real,1}}
  • @return: Jacobian matrix A
Kinetic.gauss_momentsFunction

Calculate moments of Gaussian distribution G = (λ / π)^(D / 2) * exp[-λ(c^2 + ξ^2)]

  • internality: gauss_moments(prim::T) where {T<:AbstractArray{<:Real,1}}
  • no internality: gauss_moments(prim::T, inK) where {T<:AbstractArray{<:Real,1}}
Kinetic.mixture_gauss_momentsFunction

Calculate moments of Gaussian distribution in multi-component gas

mixture_gauss_moments(prim::T, inK) where {T<:AbstractArray{<:Real,2}}
Kinetic.moments_conserveFunction

Calculate conservative moments of particle distribution

moments_conserve(Mu::OffsetArray{<:AbstractFloat,1}, alpha::Int)

moments_conserve(Mu::OffsetArray{<:Real,1}, Mxi::OffsetArray{<:Real,1}, alpha::Int, delta::Int)

moments_conserve(Mu::OffsetArray{<:Real,1}, Mv::OffsetArray{<:Real,1}, Mw::OffsetArray{<:Real,1}, alpha::Int, beta::Int, delta::Int)

Kinetic.mixture_moments_conserveFunction

Calculate conservative moments of particle distribution in multi-component gas

mixture_moments_conserve(
    Mu::T,
    Mxi::T,
    alpha::I,
    delta::I,
) where {T<:OffsetArray{<:AbstractFloat,2},I<:Int}

function mixture_moments_conserve(
    Mu::T,
    Mv::T,
    Mw::T,
    alpha::I,
    beta::I,
    delta::I,
) where {T<:OffsetArray{<:AbstractFloat,2},I<:Int}
Kinetic.pdf_slopeFunction

Calculate slope of particle distribution function, assuming a = a1 + u * a2 + 0.5 * u^2 * a3

pdf_slope(u, Δ)

pdf_slope(prim::A, sw::B, inK) where {A<:AbstractArray{<:Real,1},B<:AbstractArray{<:Real,1}}
Kinetic.mixture_pdf_slopeFunction

Calculate slope of multi-component particle distribution function, assuming a = a1 + u * a2 + 0.5 * u^2 * a3

mixture_pdf_slope(prim::X, sw::Y, inK) where {X<:AbstractArray{<:Real,2},Y<:AbstractArray{<:Real,2}}
Kinetic.discrete_momentsFunction

Discrete moments of particle distribution

  • discrete_moments(f, ω): direct quadrature
  • discrete_moments(f, u, ω, n): velocity moments
Kinetic.stressFunction

Calculate stress tensor from particle distribution function

Kinetic.heat_fluxFunction

Calculate heat flux from particle distribution function

Kinetic.maxwellianFunction

Maxwellian in discrete form

  • @args: particle velocity quadrature points
  • @args: density, velocity and inverse of temperature
  • @return: Maxwellian distribution function
Kinetic.mixture_maxwellianFunction

Multi-component Maxwellian in discrete form

mixture_maxwellian(u::X, prim::Y) where {X<:AbstractArray{<:AbstractFloat,2},Y<:AbstractArray{<:Real,2}}

mixture_maxwellian(
    u::X,
    v::X,
    prim::Y,
) where {X<:AbstractArray{<:AbstractFloat,3},Y<:AbstractArray{<:Real,2}}

mixture_maxwellian(
    u::X,
    v::X,
    w::X,
    prim::Y,
) where {X<:AbstractArray{<:AbstractFloat,4},Y<:AbstractArray{<:Real,2}}
Kinetic.shakhovFunction

Shakhov non-equilibrium part

  • @arg: particle velocity quadrature points
  • @arg: discrete Maxwellian
  • @arg: primitive variables, Prandtl number, heat flux, inner degree of freedom
Kinetic.reduce_distributionFunction

Reduced distribution function

  • @arg : particle distribution function with full velocity space
  • @arg : quadrature weights with reduced velocity setting (v & w by default)
Kinetic.full_distributionFunction

Recover full distribution function from reduced ones

  • @arg h & b : reduced particle distribution function with 1D velocity space
  • @arg u : quadrature nodes in 1D velocity space
  • @arg weights : quadrature weights in 1D velocity space
  • @arg v & w : quadrature nodes in the rest velocity space (with 3D setting)
  • @return f : particle distribution function with 3D velocity space
Kinetic.aap_hs_collision_timeFunction

Calculate mixture collision time from AAP model

aap_hs_collision_time( prim::AbstractArray{<:Real,2}, mi::Real, ni::Real, me::Real, ne::Real, kn::Real, )

Kinetic.aap_hs_primFunction

Calculate mixture primitive variables from AAP model

tested √

aap_hs_prim( prim::AbstractArray{<:Real,2}, tau::AbstractArray{<:Real,1}, mi::Real, ni::Real, me::Real, ne::Real, kn::Real, )

Kinetic.aap_hs_diffeq!Function

Source term of AAP model in DifferentialEquations.jl

aap_hs_diffeq!(du, u, p, t)

Kinetic.shift_pdf!Function

Shift distribution function by external force

shift_pdf!(
    f::T,
    a,
    du,
    dt,
) where {T<:AbstractArray{<:AbstractFloat,1}}

shift_pdf!(
    f::X,
    a::Y,
    du::Z,
    dt,
) where {X<:AbstractArray{<:AbstractFloat,2},Y<:AbstractArray{<:Real,1},Z<:AbstractArray{<:AbstractFloat,1}}
Kinetic.hs_boltz_knFunction

Calculate effective Knudsen number for fast spectral method

  • hard sphere (HS) model