Numerical Fluxes
Types
ClimateMachine.DGMethods.NumericalFluxes.NumericalFluxGradient — TypeNumericalFluxGradientAny P <: NumericalFluxGradient should define methods for:
numerical_flux_gradient!(
gnf::P,
balance_law::BalanceLaw,
diffF, n⁻,
Q⁻, Qstate_gradient_flux⁻, Qaux⁻,
Q⁺, Qstate_gradient_flux⁺, Qaux⁺,
t
)
numerical_boundary_flux_gradient!(
gnf::P,
balance_law::BalanceLaw,
local_state_gradient_flux,
n⁻,
local_transform⁻, local_state_prognostic⁻, local_state_auxiliary⁻,
local_transform⁺, local_state_prognostic⁺, local_state_auxiliary⁺,
bctype,
t
)ClimateMachine.DGMethods.NumericalFluxes.RusanovNumericalFlux — TypeRusanovNumericalFlux <: NumericalFluxFirstOrderThe RusanovNumericalFlux (aka local Lax-Friedrichs) numerical flux.
Usage
RusanovNumericalFlux()Requires a flux_first_order! and wavespeed method for the balance law.
ClimateMachine.DGMethods.NumericalFluxes.RoeNumericalFlux — TypeRoeNumericalFlux() <: NumericalFluxFirstOrderA numerical flux based on the approximate Riemann solver of Roe
Usage
RoeNumericalFlux()Requires a custom implementation for the balance law.
ClimateMachine.DGMethods.NumericalFluxes.HLLCNumericalFlux — TypeHLLCNumericalFlux() <: NumericalFluxFirstOrderA numerical flux based on the approximate Riemann solver of the HLLC method. The HLLC flux is a modification of the Harten, Lax, van-Leer (HLL) flux, where an additional contact property is introduced in order to restore missing rarefraction waves. The HLLC flux requires model-specific information, hence it requires a custom implementation based on the underlying balance law.
Usage
HLLCNumericalFlux()Requires a custom implementation for the balance law.
ClimateMachine.DGMethods.NumericalFluxes.RoeNumericalFluxMoist — TypeRoeNumericalFluxMoist <: NumericalFluxFirstOrderA moist implementation of the numerical flux based on the approximate Riemann solver of Roe
Requires a custom implementation for the balance law.
ClimateMachine.DGMethods.NumericalFluxes.NumericalFluxFirstOrder — TypeNumericalFluxFirstOrderAny N <: NumericalFluxFirstOrder should define the a method for
numerical_flux_first_order!(
numerical_flux::N,
balance_law::BalanceLaw,
flux,
normal_vector⁻,
Q⁻, Qaux⁻,
Q⁺, Qaux⁺,
t
)where
fluxis the numerical flux arraynormal_vector⁻is the unit normalQ⁻/Q⁺are the minus/positive state arraystis the time
An optional method can also be defined for
numerical_boundary_flux_first_order!(
numerical_flux::N,
balance_law::BalanceLaw,
flux,
normal_vector⁻,
Q⁻, Qaux⁻,
Q⁺, Qaux⁺,
bctype, t
)ClimateMachine.DGMethods.NumericalFluxes.NumericalFluxSecondOrder — TypeNumericalFluxSecondOrderAny N <: NumericalFluxSecondOrder should define the a method for
numerical_flux_second_order!(
numerical_flux::N,
balance_law::BalanceLaw,
flux,
normal_vector⁻,
Q⁻, Qstate_gradient_flux⁻, Qaux⁻,
Q⁺, Qstate_gradient_flux⁺, Qaux⁺,
t
)where
fluxis the numerical flux arraynormal_vector⁻is the unit normalQ⁻/Q⁺are the minus/positive state arraysQstate_gradient_flux⁻/Qstate_gradient_flux⁺are the minus/positive diffusive state arraysQstate_gradient_flux⁻/Qstate_gradient_flux⁺are the minus/positive auxiliary state arraystis the time
An optional method can also be defined for
numerical_boundary_flux_second_order!(
numerical_flux::N,
balance_law::BalanceLaw,
flux,
normal_vector⁻,
Q⁻, Qstate_gradient_flux⁻, Qaux⁻,
Q⁺, Qstate_gradient_flux⁺, Qaux⁺,
bctype,
t
)ClimateMachine.DGMethods.NumericalFluxes.CentralNumericalFluxSecondOrder — TypeCentralNumericalFluxSecondOrder <: NumericalFluxSecondOrderThe central numerical flux for diffusive terms
Usage
CentralNumericalFluxSecondOrder()Requires a flux_second_order! for the balance law.
ClimateMachine.DGMethods.NumericalFluxes.CentralNumericalFluxFirstOrder — TypeCentralNumericalFluxFirstOrder() <: NumericalFluxFirstOrderThe central numerical flux for nondiffusive terms
Usage
CentralNumericalFluxFirstOrder()Requires a flux_first_order! method for the balance law.
ClimateMachine.DGMethods.NumericalFluxes.CentralNumericalFluxGradient — TypeCentralNumericalFluxGradient <: NumericalFluxGradientClimateMachine.DGMethods.NumericalFluxes.LMARSNumericalFlux — TypeLMARSNumericalFlux <: NumericalFluxFirstOrderLow Mach Number Approximate Riemann Solver. Upwind biased first order flux function.