Skip to content

Oct tree#6

Merged
TobiBu merged 29 commits intomainfrom
oct-tree
Mar 16, 2026
Merged

Oct tree#6
TobiBu merged 29 commits intomainfrom
oct-tree

Conversation

@TobiBu
Copy link
Copy Markdown
Owner

@TobiBu TobiBu commented Mar 16, 2026

oct-tree based implementation of FMM next to kd-tree and radix-tree based versions.

@TobiBu TobiBu requested a review from Copilot March 16, 2026 10:23
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds an explicit octree execution backend path to jaccpot (currently scoped to basis="solidfmm"), wiring octree-native prepared-state artifacts into evaluation while keeping the existing radix-oriented default behavior.

Changes:

  • Add execution_backend runtime policy (auto|radix|octree) and thread it through solver/runtime state, including prepared-state evaluation controls (jit_traversal override).
  • Introduce octree-native scaffolding modules/adapters and extend nearfield plumbing to support explicit leaf/carrier particle-group ownership.
  • Add extensive unit/integration test coverage and documentation updates for the octree backend workflow.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
jaccpot/config.py Adds FMMExecutionBackend and exposes execution_backend in RuntimePolicyConfig.
jaccpot/solver.py Threads execution backend into runtime and adds jit_traversal override for prepared-state eval.
jaccpot/runtime/_fmm_impl.py Major wiring: stores execution backend in prepared state, builds octree artifacts, and passes nearfield interop / farfield overrides into evaluation.
jaccpot/runtime/_octree_adapter.py Adds adapter to extract an explicit octree execution view from yggdrax trees.
jaccpot/runtime/_octree_fmm.py New octree-native upward/downward scaffolding (M2L/L2L plans + helpers).
jaccpot/nearfield/near_field.py Adds group-based scatter schedule prep + group-driven nearfield execution path.
jaccpot/upward/solidfmm_complex_tree_expansions.py Adjusts level batching to avoid host/device introspection for JIT-safety.
tests/unit/test_solver_api.py Adds solver-level tests validating backend selection, prepared-state eval, targets, JIT/eager parity, and cache behavior for octree backend.
tests/unit/test_octree_fmm_scaffolding.py New unit tests for octree-native scaffolding (plans, multipoles, M2L/L2L consistency checks).
tests/integration/test_fmm.py Relaxes a couple tolerances and adjusts x64 enabling + a nearfield policy test.
README.md Documents octree backend usage + limitations.
docs/octree_fmm_task_list.md Adds a task/status summary for octree backend.
examples/compare_yggdrax_jaccpot_prepare.py Extends comparison example to include octree tree + radix vs octree execution backends.
OCTREE_JACCPOT_STATUS_2026-03-15.md Adds a detailed status handoff document for ongoing octree work.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
TobiBu and others added 2 commits March 16, 2026 11:39
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@TobiBu TobiBu merged commit bc26442 into main Mar 16, 2026
1 of 5 checks passed
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