simpleoctree
An adaptive 2:1 balanced tree for point distributions in 2D and 3D. Written in Python with minimal dependencies.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.5%) to scientific vocabulary
Repository
An adaptive 2:1 balanced tree for point distributions in 2D and 3D. Written in Python with minimal dependencies.
Basic Info
- Host: GitHub
- Owner: annayesy
- License: mit
- Language: Python
- Default Branch: main
- Size: 121 KB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
simpleoctree
An adaptive 2:1 balanced tree for point distributions in 2D and 3D, written in Python with minimal dependencies.
Overview
simpleoctree is a Python package that adaptively partitions point distributions in 2D and 3D into a 2:1 balanced tree structure. The package ensures that any two neighboring leaf nodes are either on the same level or differ by one level, resulting in a neighbor list of bounded size.
Figure 1: A leaf box that violates the level restriction constraint (highlighted in red) and a refined leaf box added in its place to satisfy the level restriction (highlighted in green).
Figure 2: A balanced quad-tree for an adaptive point distribution. A box is highlighted in black and its neighbors in green. Notice that the box has coarse neighbors on a level above.
Installation
To install the package, clone the repository and run the following command:
pip install -e .
Features
- Adaptive Partitioning: Efficiently partitions point distributions in both 2D and 3D spaces.
- Level-Restricted Tree: Ensures a 2:1 balance, where neighboring leaves are either on the same level or differ by one level.
- Utility Functions: Includes several utility functions to find neighbors, parents, and other tree properties, all documented in
simpletree/abstract_tree.py.
Usage
The tree structure includes many useful utilities for accessing neighbors, parents, and other related nodes. Comprehensive documentation for these functions is available in the simpletree/abstract_tree.py file.
This package is particularly useful for the development of fast solvers for adaptive geometries, e.g. the Fast Multipole Method (FMM) and the compression and [invertible] factorization of $\mathcal H$-matrices. For more detailed examples and usage instructions, please refer to the repository's documentation and example scripts.
Owner
- Name: Anna Yesypenko
- Login: annayesy
- Kind: user
- Location: United States
- Repositories: 1
- Profile: https://github.com/annayesy
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it using the following metadata."
title: "SimpleOctree in Python"
authors:
- family-names: "Yesypenko"
given-names: "Anna"
orcid: "https://orcid.org/0009-0008-1409-4075"
date-released: 2025-01-07
version: "v1.0.1"
doi: "10.5281/zenodo.14613403"
url: "https://github.com/annayesy/simpleoctree/"
GitHub Events
Total
- Release event: 3
- Watch event: 3
- Delete event: 1
- Push event: 7
- Pull request event: 2
- Create event: 3
Last Year
- Release event: 3
- Watch event: 3
- Delete event: 1
- Push event: 7
- Pull request event: 2
- Create event: 3
Dependencies
- numpy *