Mondaic

salvus.mesh.algorithms.optimize_dt

salvus.mesh.algorithms.optimize_dt salvus mesh algorithms optimize_dt

A mesh smoother optimizing the miller estimate of the time step.

Functions

dgamma()

def dgamma(
    m: UnstructuredMesh, ij: npt.NDArray, rho: float = 1.0
) -> npt.NDArray: ...

Compute the derivative of gamma.

Parameters
  • m UnstructuredMesh — The unstructured mesh object.
  • ij npt.NDArray — ij
  • rho float — rho
Returns npt.NDArray

dgamma_h()

def dgamma_h(
    m: UnstructuredMesh,
    h_ek_ref: float | npt.NDArray,
    g_exponent: int = 3,
    rho: float = 35.0,
) -> npt.NDArray: ...

Compute d gamma h.

Parameters
  • m UnstructuredMesh — The mesh.
  • h_ek_ref float | npt.NDArray — h_ek_ref
  • g_exponent int — g_exponent
  • rho float — rho
Returns npt.NDArray

gamma()

def gamma(
    m: UnstructuredMesh,
    ij: npt.NDArray,
    rho: float = 1.0,
    return_gamma_max: bool = False,
    return_gamma_array: bool = False,
) -> npt.NDArray | float: ...

Compute gamma.

Parameters
  • m UnstructuredMesh — The mesh.
  • ij npt.NDArray — ij
  • rho float — rho
  • return_gamma_max bool — Return the max gamma value.
  • return_gamma_array bool — Return the gamme array.
Returns npt.NDArray | float

gamma_h()

def gamma_h(
    m: UnstructuredMesh,
    h_ek_ref: float | npt.NDArray,
    g_exponent: int = 3,
    rho: float = 35.0,
    return_gamma_h_max: bool = False,
) -> float | npt.NDArray: ...

Compute gamma h.

Parameters
  • m UnstructuredMesh — The mesh.
  • h_ek_ref float | npt.NDArray — h_ek_ref
  • g_exponent int — g_exponent
  • rho float — rho
  • return_gamma_h_max bool — Return the max value of gamma_h.
Returns float | npt.NDArray

optimize_dt()

def optimize_dt(
    m: UnstructuredMesh,
    fixed_side_sets: list[list[set[tuple[int, int]]]] | None = None,
    maxiter: int = 50,
    rho: float = 35.0,
    rho_h: float = 35.0,
    weight_h: float = 0.0,
    h_ek_ref: npt.NDArray | float = 0.0,
    g_exponent: int = 3,
    scale_mesh: bool = True,
    scale_factor: float = 10000.0,
    verbose: bool = False,
) -> UnstructuredMesh: ...

Optimize the time step for a mesh and return a better mesh.

Parameters
  • m UnstructuredMesh — The mesh to optimize.
  • fixed_side_sets list[list[set[tuple[int, int]]]] | None — Element and side ids of the fixed side sets.
  • maxiter int — Maximum number of iterations.
  • rho float — rho
  • rho_h float — rho_h
  • weight_h float — weight_h
  • h_ek_ref npt.NDArray | float — h_ek_ref
  • g_exponent int — g_exponent
  • scale_mesh bool — Scale the mesh.
  • scale_factor float — Scaling factor.
  • verbose bool — Verbosity.
Returns UnstructuredMesh

optimize_dt_locally()

def optimize_dt_locally(
    m: UnstructuredMesh,
    fixed_side_set_names: list[str],
    maxiter: int = 50,
    rho: float = 35.0,
    rho_h: float = 35.0,
    weight_h: float = 0.0,
    h_ek_ref: npt.NDArray[np.floating] | float = 0.0,
    g_exponent: int = 3,
    element_count_opt: int = 100,
    halo_width: int = 3,
    scale_factor: float = 10000.0,
    verbose: bool = False,
) -> UnstructuredMesh: ...

Locally optimize the time step of a mesh by finding the worst elements and only optimizing those.

Parameters
  • m UnstructuredMesh — The mesh to optimize.
  • fixed_side_set_names list[str] — Names of the fixed side sets.
  • maxiter int — Maximum number of iterations.
  • rho float — rho
  • rho_h float — rho_h
  • weight_h float — weight_h
  • h_ek_ref npt.NDArray[np.floating] | float — h_ek_ref
  • g_exponent int — g_exponent
  • element_count_opt int — Number of elements to optimize.
  • halo_width int — Halo width around the problematic elements.
  • scale_factor float — Scaling factor.
  • verbose bool — Verbosity.
Returns UnstructuredMesh