Skip to content

Rewrite of Chmy.jl#103

Draft
utkinis wants to merge 183 commits intomainfrom
iu/v0.2
Draft

Rewrite of Chmy.jl#103
utkinis wants to merge 183 commits intomainfrom
iu/v0.2

Conversation

@utkinis
Copy link
Copy Markdown
Member

@utkinis utkinis commented Mar 17, 2026

Description

This PR implements a complete overhaul of Chmy.jl for version v0.2. The new implementation introduces a symbolic layer for representing finite-difference expressions on regular grids, as well as modules for tensor algebra and tensor calculus.

Remaining tasks

The following features still need to be implemented before merging this PR:

  • Combined operators encapsulating expressions for both the grid interior and boundaries.
  • Grouping expressions for parallel computation based on the memory throughput heuristic.
  • Generating KernelAbstractions (KA) kernels for computing expression groups.
  • Interpolation operators.
  • Coordinates in reference coordinate system.
  • Grid recipes: Arakawa staggered grids, MAC grid, FSG.
  • Lowering expressions to grid stencils based on a recipe.
  • Allocating bindings from lowered expressions.
  • First-class support of periodic grids.
  • Examples: symbolic layer, diffusion, wave propagation, Stokes, curvilinear grids, hyperbolic equations.
  • Docstrings.
  • Documentation.
  • Fix CI (Chmy.jl v0.2 only works on Julia 1.12+).
  • Uniform STensor, which ignores indexing and grid locations during lowering.
  • Immediate lowering on indexing.
  • Broadcasting over Tensor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants