Theory

KitBase.prim_conserveFunction
prim_conserve(prim, γ)

Transform primitive -> conservative variables

source
prim_conserve(ρ, U, λ, γ)
source
prim_conserve(ρ, U, V, λ, γ)
source
prim_conserve(ρ, U, V, W, λ, γ)
source
prim_conserve(prim, γ, Kr)

Polyatomic gas

source
KitBase.conserve_primFunction
conserve_prim(u)

Transform conservative -> primitive variables

scalar: pseudo primitive vector for scalar conservation laws

source
conserve_prim(u, a)
source
conserve_prim(W, γ)

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

source
conserve_prim(ρ, M, E, γ)
source
conserve_prim(ρ, MX, MY, E, γ)
source
conserve_prim(ρ, MX, MY, MZ, E, γ)
source
conserve_prim(w, K, Kr)

Rykov model

source
KitBase.mixture_prim_conserveFunction
mixture_prim_conserve(prim, γ)

Transform multi-component primitive -> conservative variables

source
mixture_prim_conserve(prim, γ, Kr)

Transform multi-component primitive -> conservative variables

source
KitBase.mixture_conserve_primFunction
mixture_conserve_prim(W, γ)

Transform multi-component conservative -> primitive variables

source
mixture_conserve_prim(W, K, Kr)

Transform multi-component polyatomic conservative -> primitive variables

source
KitBase.em_coefficientsFunction
em_coefficients(prim, E, B, mr, lD, rL, dt)

Calculate electromagnetic coeffcients in hyperbolic Maxwell's equations

source
KitBase.gauss_momentsFunction
gauss_moments(prim)

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

source
gauss_moments(prim, inK)

Calculate moments of Gaussian distribution with internal energy

source
KitBase.moments_conserveFunction
moments_conserve(Mu, alpha)

Calculate conservative moments of particle distribution

source
moments_conserve(Mu, Mxi, alpha, delta)
source
moments_conserve(Mu, Mv, Mw, alpha, beta, delta)
source
moments_conserve(f, u, ω, _)

Discrete moments of conservative variables

1F1V

source
moments_conserve(f, u, v, ω, _)

1F2V

source
moments_conserve(h, b, u, ω, _)

2F1V

source
moments_conserve(h, b, u, v, ω, _)

2F2V

source
moments_conserve(h0, h1, h2, u, v, ω, _)

3F2V

source
moments_conserve(f, u, v, w, ω, _)

1F3V

source
moments_conserve(h0, h1, h2, h3, u, ω, _)

4F1V

source
moments_conserve(f, u, ω)

Shortcut methods

1F1V

source
moments_conserve(a1, a2, a3, a4)

2F1V & 1F2V

source
moments_conserve(a1, a2, a3, a4, a5)

2F2V & 1F3V

source
moments_conserve(a1, a2, a3, a4, a5, a6)

4F1V & 3F2V

source
KitBase.mixture_moments_conserveFunction
mixture_moments_conserve(Mu, Mxi, alpha, delta)

Calculate conservative moments of particle distribution in multi-component gas

source
mixture_moments_conserve(Mu, Mv, Mw, alpha, beta, delta)
source
mixture_moments_conserve(f, u, ω)

Discrete moments of conservative variables

1F1V

source
mixture_moments_conserve(h, b, u, ω)

2F1V

source
mixture_moments_conserve(h0, h1, h2, h3, u, ω)

4F1V

source
mixture_moments_conserve(f, u, v, ω)

1F2V

source
mixture_moments_conserve(h, b, u, v, ω)

2F2V

source
mixture_moments_conserve(h0, h1, h2, u, v, ω)

3F2V

source
mixture_moments_conserve(f, u, v, w, ω)

1F3V

source
KitBase.pdf_slopeFunction
pdf_slope(u, Δ)

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

source
pdf_slope(prim, sw, inK)
source
KitBase.mixture_pdf_slopeFunction
mixture_pdf_slope(prim, sw, inK)

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

source
KitBase.moments_conserve_slopeFunction
moments_conserve_slope(a, Mu, alpha)

Calculate slope-related conservative moments a = a1 + u * a2 + 0.5 * u^2 * a3

source
moments_conserve_slope(a, Mu, Mxi, alpha)
source
moments_conserve_slope(a, Mu, Mv, Mw, alpha, beta)
moments_conserve_slope(a, Mu, Mv, Mw, alpha, beta, delta)
source
KitBase.mixture_moments_conserve_slopeFunction
mixture_moments_conserve_slope(a, Mu, Mxi, alpha)

Calculate slope-related conservative moments under the assumption a = a1 + u * a2 + 0.5 * u^2 * a3

source
mixture_moments_conserve_slope(a, Mu, Mv, Mxi, alpha, beta)
source
mixture_moments_conserve_slope(
    a,
    Mu,
    Mv,
    Mw,
    alpha,
    beta,
    delta
)
source
KitBase.stressFunction
stress(f, prim, u, ω)

Calculate stress tensor from particle distribution function

source
stress(f, prim, u, v, ω)
source
stress(f, prim, u, v, w, ω)
source
KitBase.heat_fluxFunction
heat_flux(f, prim, u, ω)

Calculate heat flux from particle distribution function

Multiple dispatch doesn't consider unstructured multi-dimensional velocity space. In that case a new method needs to be defined.

1F1V

source
heat_flux(h, b, prim, u, ω)

2F1V

source
heat_flux(h, b, r, prim, u, ω)

3F1V Rykov model

source
heat_flux(h, prim, u, v, ω)

1F2V

source
heat_flux(h, b, prim, u, v, ω)

2F2V

source
heat_flux(h, b, r, prim, u, v, ω)

3F2V Rykov model

source
heat_flux(f, prim, u, v, w, ω)

1F3V

source
KitBase.shakhovFunction
shakhov(u, M, q, prim, Pr)

Shakhov non-equilibrium part

1F1V

source
shakhov(u, H, B, q, prim, Pr, K)

2F1V

source
shakhov(u, v, M, q, prim, Pr)

1F2V

source
shakhov(u, v, H, B, q, prim, Pr, K)

2F2V

source
shakhov(u, v, w, M, q, prim, Pr)

1F3V

source
KitBase.reduce_distributionFunction
reduce_distribution(f, weights)
reduce_distribution(f, weights, dim)

Reduced distribution function

Arguments

  • f: particle distribution function with full velocity space
  • weights: quadrature weights with reduced velocity setting
  • dim: dimension of the reduced distribution function (1 by default)

For 3D -> 1D, the quadrature weights can be obtained from VSpace2D.

source
reduce_distribution(f, weights)
reduce_distribution(f, weights, dim)
source
reduce_distribution(f, v, w, weights)
reduce_distribution(f, v, w, weights, dim)
source
KitBase.full_distributionFunction
full_distribution(h, b, u, weights, v, w, ρ)
full_distribution(h, b, u, weights, v, w, ρ, γ)

Recover full distribution function from reduced ones

Arguments

  • h, b: reduced particle distribution function with 1D velocity space
  • u: quadrature nodes in 1D velocity space
  • weights: quadrature weights in 1D velocity space
  • v, w: quadrature nodes in the rest velocity space (with 3D setting)

Outputs

  • f: particle distribution function with 3D velocity space
source
full_distribution(h, b, u, weights, v, w, prim)
full_distribution(h, b, u, weights, v, w, prim, γ)
source
KitBase.ref_vhs_visFunction
ref_vhs_vis(Kn, alpha, omega)

Calculate reference viscosity with variable hard sphere (VHS) model

source
KitBase.vhs_collision_timeFunction
vhs_collision_time(ρ, λ, μᵣ, ω)

Calculate collision time with variable hard sphere (VHS) model

source
vhs_collision_time(prim, muRef, omega)

For Rykov model prim[end] should be λₜ

source
KitBase.aap_hs_primFunction
aap_hs_prim(prim, tau, mi, ni, me, ne, kn)

Calculate mixture primitive variables from AAP model

source
KitBase.shift_pdf!Function
shift_pdf!(f, a, du, dt)

Shift distribution function by external force

source
shift_pdf!(f, a, du, dt)

Multi-component gas

source
KitBase.hs_boltz_knFunction
hs_boltz_kn(mu_ref, alpha)

Calculate effective Knudsen number for fast spectral method with hard sphere (HS) model

source
KitBase.kernel_modeFunction
kernel_mode(
    M::Integer,
    umax,
    vmax,
    wmax,
    du,
    dv,
    dw,
    unum::Integer,
    vnum::Integer,
    wnum::Integer,
    alpha;
    quad_num
) -> Tuple{Any, Any, Array{Float64, 3}}

Calculate collision kernel for fast spectral method...

source
kernel_mode(
    M::Integer,
    umax,
    vmax,
    wmax,
    unum::Integer,
    vnum::Integer,
    wnum::Integer,
    alpha;
    quad_num
) -> Tuple{Any, Any, Array{Float64, 3}}
source
kernel_mode(
    M::Integer,
    umax,
    vmax,
    du,
    dv,
    unum::Integer,
    vnum::Integer;
    quad_num
) -> Tuple{Array{Float64, 3}, Array{Float64, 3}, Matrix{Float64}}
source
KitBase.boltzmann_fftFunction
boltzmann_fft(
    f0::AbstractArray{<:Real, 3},
    Kn,
    M::Integer,
    ϕ::AbstractArray{<:Real, 4},
    ψ::AbstractArray{<:Real, 4},
    phipsi::AbstractArray{<:Real, 3}
) -> Any

Calculate collision operator with FFT-based fast spectral method...

source
boltzmann_fft(f, p)
source
KitBase.boltzmann_fft!Function
boltzmann_fft!(
    Q::AbstractArray{<:Real, 3},
    f0::AbstractArray{<:Real, 3},
    Kn::Real,
    M::Integer,
    ϕ::AbstractArray{<:Real, 4},
    ψ::AbstractArray{<:Real, 4},
    phipsi::AbstractArray{<:Real, 3}
) -> Any

Calculate collision operator with FFT-based fast spectral method...

source
boltzmann_fft!(Q, f, p)
source
KitBase.heat_capacity_ratioFunction
heat_capacity_ratio(K, D)

Calculate heat capacity ratio (monatomic gas)

source
heat_capacity_ratio(K, Nr, D)

Calculate heat capacity ratio (diatomic gas)

source