jaxfluids.iles package

Submodules

jaxfluids.iles.ALDM module

class jaxfluids.iles.ALDM.ALDM(domain_information: DomainInformation, material_manager: MaterialManager)[source]

Bases: object

Adaptive Local Deconvolution Method - ALDM - Hickel et al. 2014

ALDM is a numerical scheme for computation of convective fluxes. It consits of a combined reconstruction and flux-function. ALDM is optimized to model subgrid-scale terms in underresolved LES.

ALDM consists of a 1) cell face reconstruction based on a convex sum of adapted WENO1, WENO3, and WENO5

2) flux-function with adjusted dissipation of SGS modeling and low Mach number consistency.

compute_fluxes_xi(prime: Array, cons: Array, axis: int, **kwargs) Array[source]

Computes the numerical flux in the axis direction.

Parameters:
  • prime (jnp.ndarray) – Buffer of primitive variables.

  • cons (jnp.ndarray) – Buffer of conservative variables.

  • axis (int) – Spatial direction in which the flux is computed.

Returns:

Numerical flux in specified direction.

Return type:

jnp.ndarray

compute_phi(primes: Array, cons: Array) Array[source]

Computes the phi vector which is the quantity that is reconstructed in the ALDM scheme.

phi vector notation different from paper,

ar{phi} = {ar{rho}, ar{u1}, ar{u2}, ar{u3}, ar{p}, ar{rho_e}}

Parameters:
  • primes (jnp.ndarray) – Buffer of primitive variables.

  • cons (jnp.ndarray) – Buffer of conservative variables.

Returns:

Buffer of the phi vector.

Return type:

jnp.ndarray

reconstruct_xi(phi: Array, alpha_1: Array, alpha_2: Array, alpha_3: Array, fs: Array, axis: int, j: int, dx: float | None = None) Tuple[Array, Array][source]

Reconstructs the phi vector along the axis direction. Reconstruction is done via a convex combination of modified WENO1, WENO3 and WENO5.

Parameters:
  • phi (jnp.ndarray) – Buffer of phi vector.

  • alpha_1 (jnp.ndarray) – First-order reconstruction weight.

  • alpha_2 (jnp.ndarray) – Second-order reconstruction weight.

  • alpha_3 (jnp.ndarray) – Third-order reconstruction weight.

  • fs (jnp.ndarray) – Shock sensor.

  • axis (int) – Spatial direction along which reconstruction is done.

  • j (int) – Bit indicating whether reconstruction is left (j=0) or right (j=1) of the cell face.

  • dx (float, optional) – Vector of cell sizes in axis direction, defaults to None

Returns:

Reconstructed phi vector and reconstructed third-oder pressure value.

Return type:

Tuple[jnp.ndarray, jnp.ndarray]

solve_riemann_problem_xi(phi_L: Array, phi_R: Array, p3_L: Array, p3_R: Array, alpha_3: Array, fs: Array, axis: int) Array[source]

Solves the Riemann problem, i.e., calculates the numerical flux, in the direction specified by axis.

phi = [rho, u1, u2, u3, p, rho_e] p3_K is third-order pressure reconstruction

Parameters:
  • phi_L (jnp.ndarray) – Phi vector of left neighboring state

  • phi_R (jnp.ndarray) – Phi vector of right neighboring state

  • p3_L (jnp.ndarray) – Third-order pressure reconstruction of left neighboring state

  • p3_R (jnp.ndarray) – Third-order pressure reconstruction of right neighboring state

  • alpha_3 (jnp.ndarray) – Third-order reconstruction weight

  • fs (jnp.ndarray) – Shock sensor.

  • axis (int) – Spatial direction along which flux is calculated.

Returns:

Numerical flux in axis drection.

Return type:

jnp.ndarray

jaxfluids.iles.ALDM_WENO1 module

class jaxfluids.iles.ALDM_WENO1.ALDM_WENO1(nh: int, inactive_axis: List)[source]

Bases: SpatialReconstruction

Implementation details provided in parent class.

reconstruct_xi(primes: Array, axis: int, j: int, dx: float | None = None, fs=0) Array[source]

Reconstruction of buffer quantity along axis specified by axis.

Parameters:
  • buffer (jnp.ndarray) – Buffer that will be reconstructed

  • axis (int) – Spatial axis along which values are reconstructed

  • j (int) – integer which specifies whether to calculate reconstruction left (j=0) or right (j=1) of an interface

  • dx (float, optional) – cell size, defaults to None

Returns:

Buffer with cell face reconstructed values

Return type:

jnp.ndarray

jaxfluids.iles.ALDM_WENO3 module

class jaxfluids.iles.ALDM_WENO3.ALDM_WENO3(nh: int, inactive_axis: List)[source]

Bases: SpatialReconstruction

Implementation details provided in parent class.

reconstruct_xi(primes: Array, axis: int, j: int, dx: float | None = None, fs=0) Array[source]

Reconstruction of buffer quantity along axis specified by axis.

Parameters:
  • buffer (jnp.ndarray) – Buffer that will be reconstructed

  • axis (int) – Spatial axis along which values are reconstructed

  • j (int) – integer which specifies whether to calculate reconstruction left (j=0) or right (j=1) of an interface

  • dx (float, optional) – cell size, defaults to None

Returns:

Buffer with cell face reconstructed values

Return type:

jnp.ndarray

jaxfluids.iles.ALDM_WENO5 module

class jaxfluids.iles.ALDM_WENO5.ALDM_WENO5(nh: int, inactive_axis: List)[source]

Bases: SpatialReconstruction

Implementation details provided in parent class.

get_adaptive_ideal_weights(j: int, fs: Array) Tuple[Array, Array, Array][source]
reconstruct_xi(primes: Array, axis: int, j: int, dx: float | None = None, fs: Array = 0) Array[source]

Reconstruction of buffer quantity along axis specified by axis.

Parameters:
  • buffer (jnp.ndarray) – Buffer that will be reconstructed

  • axis (int) – Spatial axis along which values are reconstructed

  • j (int) – integer which specifies whether to calculate reconstruction left (j=0) or right (j=1) of an interface

  • dx (float, optional) – cell size, defaults to None

Returns:

Buffer with cell face reconstructed values

Return type:

jnp.ndarray

Module contents