Theory
KitBase.conserve_prim — Function
conserve_prim(u)
Transform conservative -> primitive variables
scalar: pseudo primitive vector for scalar conservation laws
conserve_prim(u, a)
conserve_prim(W, γ)
vector: primitive vector for Euler, Navier-Stokes and extended equations
conserve_prim(ρ, M, E, γ)
conserve_prim(ρ, MX, MY, E, γ)
conserve_prim(ρ, MX, MY, MZ, E, γ)
conserve_prim(w, K, Kr)
Rykov model
KitBase.mixture_prim_conserve — Function
mixture_prim_conserve(prim, γ)
Transform multi-component primitive -> conservative variables
mixture_prim_conserve(prim, γ, Kr)
Transform multi-component primitive -> conservative variables
KitBase.mixture_conserve_prim — Function
mixture_conserve_prim(W, γ)
Transform multi-component conservative -> primitive variables
mixture_conserve_prim(W, K, Kr)
Transform multi-component polyatomic conservative -> primitive variables
KitBase.em_coefficients — Function
em_coefficients(prim, E, B, mr, lD, rL, dt)
Calculate electromagnetic coeffcients in hyperbolic Maxwell's equations
KitBase.advection_flux — Function
advection_flux(u, a)
Theoretical flux of linear advection equation
KitBase.burgers_flux — Function
burgers_flux(u)
Theoretical flux of Burgers' equation
KitBase.euler_flux — Function
euler_flux(w, γ; frame)
Theoretical fluxes of Euler Equations
KitBase.euler_jacobi — Function
euler_jacobi(w, γ)
Flux Jacobian of Euler Equations
KitBase.gauss_moments — Function
gauss_moments(prim)
Calculate moments of Gaussian distribution G = (λ / π)^(D / 2) * exp[-λ(c^2 + ξ^2)]
gauss_moments(prim, inK)
Calculate moments of Gaussian distribution with internal energy
KitBase.mixture_gauss_moments — Function
mixture_gauss_moments(prim, inK)
Calculate moments of Gaussian distribution in multi-component gas
KitBase.moments_conserve — Function
moments_conserve(Mu, alpha)
Calculate conservative moments of particle distribution
moments_conserve(Mu, Mxi, alpha, delta)
moments_conserve(Mu, Mv, Mw, alpha, beta, delta)
moments_conserve(f, u, ω, _)
Discrete moments of conservative variables
1F1V
moments_conserve(f, u, v, ω, _)
1F2V
moments_conserve(h, b, u, ω, _)
2F1V
moments_conserve(h, b, u, v, ω, _)
2F2V
moments_conserve(h0, h1, h2, u, v, ω, _)
3F2V
moments_conserve(f, u, v, w, ω, _)
1F3V
moments_conserve(h0, h1, h2, h3, u, ω, _)
4F1V
moments_conserve(f, u, ω)
Shortcut methods
1F1V
moments_conserve(a1, a2, a3, a4)
2F1V & 1F2V
moments_conserve(a1, a2, a3, a4, a5)
2F2V & 1F3V
moments_conserve(a1, a2, a3, a4, a5, a6)
4F1V & 3F2V
KitBase.mixture_moments_conserve — Function
mixture_moments_conserve(Mu, Mxi, alpha, delta)
Calculate conservative moments of particle distribution in multi-component gas
mixture_moments_conserve(Mu, Mv, Mw, alpha, beta, delta)
mixture_moments_conserve(f, u, ω)
Discrete moments of conservative variables
1F1V
mixture_moments_conserve(h, b, u, ω)
2F1V
mixture_moments_conserve(h0, h1, h2, h3, u, ω)
4F1V
mixture_moments_conserve(f, u, v, ω)
1F2V
mixture_moments_conserve(h, b, u, v, ω)
2F2V
mixture_moments_conserve(h0, h1, h2, u, v, ω)
3F2V
mixture_moments_conserve(f, u, v, w, ω)
1F3V
KitBase.pdf_slope — Function
pdf_slope(u, Δ)
Calculate slope of particle distribution function a = a1 + u * a2 + 0.5 * u^2 * a3
pdf_slope(prim, sw, inK)
KitBase.mixture_pdf_slope — Function
mixture_pdf_slope(prim, sw, inK)
Calculate slope of multi-component particle distribution function a = a1 + u * a2 + 0.5 * u^2 * a3
KitBase.moments_conserve_slope — Function
moments_conserve_slope(a, Mu, alpha)
Calculate slope-related conservative moments a = a1 + u * a2 + 0.5 * u^2 * a3
moments_conserve_slope(a, Mu, Mxi, alpha)
moments_conserve_slope(a, Mu, Mv, Mw, alpha, beta)
moments_conserve_slope(a, Mu, Mv, Mw, alpha, beta, delta)
KitBase.mixture_moments_conserve_slope — Function
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
mixture_moments_conserve_slope(a, Mu, Mv, Mxi, alpha, beta)
mixture_moments_conserve_slope(
a,
Mu,
Mv,
Mw,
alpha,
beta,
delta
)
KitBase.discrete_moments — Function
discrete_moments(f, ω)
Discrete moments of particle distribution
discrete_moments(f, u, ω, n)
KitBase.stress — Function
stress(f, prim, u, ω)
Calculate stress tensor from particle distribution function
stress(f, prim, u, v, ω)
stress(f, prim, u, v, w, ω)
KitBase.heat_flux — Function
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
heat_flux(h, b, prim, u, ω)
2F1V
heat_flux(h, b, r, prim, u, ω)
3F1V Rykov model
heat_flux(h, prim, u, v, ω)
1F2V
heat_flux(h, b, prim, u, v, ω)
2F2V
heat_flux(h, b, r, prim, u, v, ω)
3F2V Rykov model
heat_flux(f, prim, u, v, w, ω)
1F3V
KitBase.mixture_maxwellian — Function
mixture_maxwellian(u, prim)
Multi-component Maxwellian in discrete form
1V
mixture_maxwellian(u, v, prim)
2V
mixture_maxwellian(u, v, w, prim)
3V
KitBase.reduce_distribution — Function
reduce_distribution(f, weights)
reduce_distribution(f, weights, dim)
Reduced distribution function
Arguments
f: particle distribution function with full velocity spaceweights: quadrature weights with reduced velocity settingdim: dimension of the reduced distribution function (1 by default)
For 3D -> 1D, the quadrature weights can be obtained from VSpace2D.
reduce_distribution(f, weights)
reduce_distribution(f, weights, dim)
reduce_distribution(f, v, w, weights)
reduce_distribution(f, v, w, weights, dim)
KitBase.full_distribution — Function
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 spaceu: quadrature nodes in 1D velocity spaceweights: quadrature weights in 1D velocity spacev, w: quadrature nodes in the rest velocity space (with 3D setting)
Outputs
f: particle distribution function with 3D velocity space
full_distribution(h, b, u, weights, v, w, prim)
full_distribution(h, b, u, weights, v, w, prim, γ)
KitBase.ref_vhs_vis — Function
ref_vhs_vis(Kn, alpha, omega)
Calculate reference viscosity with variable hard sphere (VHS) model
KitBase.vhs_collision_time — Function
vhs_collision_time(ρ, λ, μᵣ, ω)
Calculate collision time with variable hard sphere (VHS) model
vhs_collision_time(prim, muRef, omega)
For Rykov model prim[end] should be λₜ
KitBase.aap_hs_collision_time — Function
aap_hs_collision_time(prim, mi, ni, me, ne, kn)
Calculate mixture collision time from AAP model
KitBase.aap_hs_prim — Function
aap_hs_prim(prim, tau, mi, ni, me, ne, kn)
Calculate mixture primitive variables from AAP model
KitBase.aap_hs_diffeq! — Function
aap_hs_diffeq!(du, u, p, t)
Source term of AAP model in DifferentialEquations.jl
KitBase.shift_pdf! — Function
shift_pdf!(f, a, du, dt)
Shift distribution function by external force
shift_pdf!(f, a, du, dt)
Multi-component gas
KitBase.hs_boltz_kn — Function
hs_boltz_kn(mu_ref, alpha)
Calculate effective Knudsen number for fast spectral method with hard sphere (HS) model
KitBase.kernel_mode — Function
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...
kernel_mode(
M::Integer,
umax,
vmax,
wmax,
unum::Integer,
vnum::Integer,
wnum::Integer,
alpha;
quad_num
) -> Tuple{Any, Any, Array{Float64, 3}}
kernel_mode(
M::Integer,
umax,
vmax,
du,
dv,
unum::Integer,
vnum::Integer;
quad_num
) -> Tuple{Array{Float64, 3}, Array{Float64, 3}, Matrix{Float64}}
KitBase.boltzmann_fft — Function
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...
boltzmann_fft(f, p)
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...
boltzmann_fft!(Q, f, p)
KitBase.heat_capacity_ratio — Function
heat_capacity_ratio(K, D)
Calculate heat capacity ratio (monatomic gas)
heat_capacity_ratio(K, Nr, D)
Calculate heat capacity ratio (diatomic gas)
KitBase.sound_speed — Function
sound_speed(λ, γ)
Calculate speed of sound
sound_speed(prim, γ)
sound_speed(prim, γ)
Calculate sound speed in mixture