zoomy_core.fvm.riemann_solvers module

zoomy_core.fvm.riemann_solvers module#

Symbolic Riemann solvers: Rusanov, positive, nonconservative variants.

class zoomy_core.fvm.riemann_solvers.Numerics(model, **params)#

Bases: Parameterized, SymbolicRegistrar

Numerics. (class).

name = 'NumericsV2'#
model = None#
field_map = None#
scaled_q_indices = None#
local_max_eigenvalue_definition()#

Returns the opaque max_wavespeed function. The actual implementation is provided by the backend at runtime.

local_max_abs_eigenvalue(Q=None, Qaux=None, p=None, n=None)#

Called during symbolic Rusanov construction. Returns opaque max_wavespeed with the given state.

to_runtime(backend='numpy')#

To runtime.

to_runtime_numpy()#

To runtime numpy.

numerical_flux()#

Numerical flux.

numerical_fluctuations()#

Numerical fluctuations.

class zoomy_core.fvm.riemann_solvers.Rusanov(model, **params)#

Bases: Numerics

Rusanov. (class).

name = 'RusanovV2'#
get_viscosity_identity_flux()#

Get viscosity identity flux.

get_viscosity_identity_fluctuations()#

Get viscosity identity fluctuations.

numerical_flux()#

Numerical flux.

class zoomy_core.fvm.riemann_solvers.PositiveRusanov(model, **params)#

Bases: Rusanov

PositiveRusanov. (class).

name = 'PositiveRusanovV2'#
hydrostatic_reconstruction(qL, qR, auxL, auxR)#

Hydrostatic reconstruction.

numerical_flux()#

Numerical flux.

numerical_fluctuations()#

Numerical fluctuations.

class zoomy_core.fvm.riemann_solvers.NonconservativeRusanov(model, **params)#

Bases: Rusanov

NonconservativeRusanov. (class).

name = 'NonconservativeRusanovV2'#
integration_order = 3#
get_path_integral_states()#

Get path integral states.

get_viscosity_identity_flux()#

Get viscosity identity flux.

get_viscosity_identity_fluctuations()#

Get viscosity identity fluctuations.

numerical_fluctuations()#

Numerical fluctuations.

class zoomy_core.fvm.riemann_solvers.PositiveNonconservativeRusanov(model, **params)#

Bases: PositiveRusanov, NonconservativeRusanov

PositiveNonconservativeRusanov. (class).

name = 'PositiveNonconservativeRusanovV2'#
get_path_integral_states()#

Get path integral states.

class zoomy_core.fvm.riemann_solvers.QuasilinearRusanov(model, **params)#

Bases: NonconservativeRusanov

QuasilinearRusanov. (class).

name = 'QuasilinearRusanovV2'#
numerical_flux()#

Numerical flux.

class zoomy_core.fvm.riemann_solvers.PositiveQuasilinearRusanov(model, **params)#

Bases: PositiveRusanov, QuasilinearRusanov

PositiveQuasilinearRusanov. (class).

name = 'PositiveQuasilinearRusanovV2'#
numerical_flux()#

Numerical flux.

get_path_integral_states()#

Get path integral states.