Components

All components are registered via decorators and can be extended by adding new implementations. Each component has its own page with governing equations and file location.

Solvers

The correct 1D/2D implementation is selected automatically based on your domain.

  • upwind — First-order upwind advection

Time Integrators

  • euler — Forward Euler
  • rk4 — 4th-order Runge-Kutta

Interface Sharpening

The correct 1D/2D implementation is selected automatically based on your domain.

  • pm — Parameswaran-Mandal
  • cl — Chiu-Lin

Boundary Conditions

The same boundary type applies to 1D (two ends) or 2D (four edges); the code applies it per edge based on domain dimension.

Output Monitors

Extending Components

New components are registered via decorators:

from intsharp.registry import register_solver

@register_solver("my_scheme")
def my_advect(field_values, velocity, dx, dt, bc):
    # Your implementation
    return updated_values

Available decorators:

  • @register_solver("name")
  • @register_timestepper("name")
  • @register_sharpening("name")
  • @register_monitor("name")
intsharp/registry.py