Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
83713f2
Add automatic centroid-merge structural SubDomainer
Mining-Geologist Jul 18, 2026
73a27bd
Export automatic SubDomainer API
Mining-Geologist Jul 18, 2026
335c2fe
Test standalone automatic SubDomainer
Mining-Geologist Jul 18, 2026
ee90102
Run automatic SubDomainer tests in CI
Mining-Geologist Jul 18, 2026
ac8e7ca
Add standalone automatic LVA notebook
Mining-Geologist Jul 18, 2026
0ddf70d
Document standalone automatic SubDomainer
Mining-Geologist Jul 18, 2026
790adee
Run parity CI on automatic SubDomainer pull requests
Mining-Geologist Jul 18, 2026
85c8bef
Validate standalone notebook in CI
Mining-Geologist Jul 18, 2026
fa45cfb
Add memory-safe chunked PyQt LVA launcher
Mining-Geologist Jul 18, 2026
5a4700d
Stream structural field evaluation by lattice batch
Mining-Geologist Jul 18, 2026
4b8e275
Fix low-dimension LVA field display crash
Mining-Geologist Jul 18, 2026
ce7dcef
Stream LVA field planes to prevent dense-grid crashes
Mining-Geologist Jul 18, 2026
7a8b828
Add numerical SDF input mode to LVA app
Mining-Geologist Jul 18, 2026
d74857f
Add four-role contact constrained LVA launcher
Mining-Geologist Jul 18, 2026
772654a
Add category-only contact role launcher
Mining-Geologist Jul 18, 2026
895c41f
Fix repeated LVA runs and default result visibility
Mining-Geologist Jul 18, 2026
4770a57
Add isolated native LVA worker process
Mining-Geologist Jul 19, 2026
71d378b
Run each Polatory fit in a fresh isolated process
Mining-Geologist Jul 19, 2026
f88004b
Fix isolated worker entry point
Mining-Geologist Jul 19, 2026
834ae02
Preserve LVA plane metadata and enforce Contact constraints across bl…
Mining-Geologist Jul 19, 2026
db32a75
Restore streamed LVA metadata after isolated runs
Mining-Geologist Jul 19, 2026
fa4625f
Make user extent authoritative for structural RBF coverage
Mining-Geologist Jul 19, 2026
4f5e7af
Build automatic LVA domains on the user-defined extent
Mining-Geologist Jul 19, 2026
6038b36
Avoid full-extent empty-cell clustering in isolated LVA worker
Mining-Geologist Jul 19, 2026
50d47d5
Route v10 worker to fast populated-envelope clustering
Mining-Geologist Jul 19, 2026
a8c9769
Propagate automatic domains with the sampled LVA metric
Mining-Geologist Jul 19, 2026
20439a3
Use generic LVA-geodesic extent propagation
Mining-Geologist Jul 19, 2026
7d12c1b
Add Leapfrog-style defaults launcher
Mining-Geologist Jul 19, 2026
311b9f2
Apply recovered defaults to the correct GUI controls
Mining-Geologist Jul 19, 2026
465442e
Add synthetic Leapfrog blending trend mesh
Mining-Geologist Jul 19, 2026
5a82ef2
Add two-domain Leapfrog blending benchmark points
Mining-Geologist Jul 19, 2026
b15722f
Add Leapfrog background-decay benchmark points
Mining-Geologist Jul 19, 2026
c1a6f19
Add exact Leapfrog benchmark instructions
Mining-Geologist Jul 19, 2026
c3bb33c
Add binary-only Leapfrog blending benchmark points
Mining-Geologist Jul 19, 2026
90b190f
Add binary-only Leapfrog far-field benchmark points
Mining-Geologist Jul 19, 2026
dff313d
Bound LVA geodesic domain extension by local support radius
Mining-Geologist Jul 19, 2026
4981e8c
Describe finite Leapfrog-style LVA coverage
Mining-Geologist Jul 19, 2026
a16c24f
Remove internal chunk-face artifacts from LVA meshes
Mining-Geologist Jul 19, 2026
9a34140
Install overlap-and-trim meshing in isolated LVA worker
Mining-Geologist Jul 19, 2026
1a691d3
Blend finite structural domains smoothly into outside field
Mining-Geologist Jul 19, 2026
227c51d
Expose structural background blending option
Mining-Geologist Jul 19, 2026
47cfc32
Enable smooth outside-field blending in isolated LVA worker
Mining-Geologist Jul 19, 2026
c4251e7
Use partition-of-unity blend default for Leapfrog-style launcher
Mining-Geologist Jul 19, 2026
5282ede
Assign overlapping mesh triangles by cell centre without clipping
Mining-Geologist Jul 19, 2026
6b86761
Create polatory-benchmark.yml
Mining-Geologist Jul 19, 2026
92ecd1f
Update polatory-benchmark.yml
Mining-Geologist Jul 19, 2026
969e3f6
Update polatory-benchmark.yml
Mining-Geologist Jul 19, 2026
f37ad9f
Add headless structural LVA benchmark suite
Mining-Geologist Jul 19, 2026
87d97b7
Run headless structural LVA benchmark suite in CI
Mining-Geologist Jul 19, 2026
fadb024
Add real Leapfrog gold benchmark runner
Mining-Geologist Jul 19, 2026
d29bc47
Run real Leapfrog gold suite in CI
Mining-Geologist Jul 19, 2026
0d9cb91
Add headless CI shim for legacy LVA launcher imports
Mining-Geologist Jul 20, 2026
19a792c
Use headless compatibility shim in benchmark CI
Mining-Geologist Jul 20, 2026
c592187
Fix keyword-only background blending in gold benchmark CI
Mining-Geologist Jul 20, 2026
9f1fa89
Run gold benchmark through constructor compatibility entry point
Mining-Geologist Jul 20, 2026
26dd1b8
Apply gold benchmark constructor shim after worker imports
Mining-Geologist Jul 20, 2026
c7a8ea0
Preserve full structural interpolant constructor in isolated worker
Mining-Geologist Jul 20, 2026
da38f27
Add globally aligned slab-streamed LVA mesher
Mining-Geologist Jul 20, 2026
e527461
Use globally aligned scalar-grid meshing in isolated worker
Mining-Geologist Jul 20, 2026
a606507
Install scikit-image for global-grid benchmark meshing
Mining-Geologist Jul 20, 2026
fcfd0af
Add full-extent domain diagnostic for box artifact isolation
Mining-Geologist Jul 20, 2026
6629246
Add no-background-blending artifact diagnostic
Mining-Geologist Jul 20, 2026
6f489cd
Add selected-case no-background benchmark runner
Mining-Geologist Jul 21, 2026
fbbf289
Add exact-zero plateau suppression diagnostic
Mining-Geologist Jul 21, 2026
ee5e0cf
Fix zero-plateau diagnostic entry point
Mining-Geologist Jul 21, 2026
e2de8e5
Add padded-bottom diagnostic for clipped structural surfaces
Mining-Geologist Jul 21, 2026
d5ea9bf
Add basal artifact connectivity and support diagnostic
Mining-Geologist Jul 21, 2026
ab174ae
Avoid VTK component extraction crash in basal artifact analyzer
Mining-Geologist Jul 21, 2026
1d96ab4
Add smooth data-support decay diagnostic
Mining-Geologist Jul 21, 2026
e2a4e1f
Add all-case smooth support decay benchmark runner
Mining-Geologist Jul 21, 2026
9e80a9f
Add low-range adaptive support decay diagnostic
Mining-Geologist Jul 21, 2026
3630608
Add data-driven automatic support decay calibration
Mining-Geologist Jul 21, 2026
2c287ed
Remove hard-coded low-range support heuristic
Mining-Geologist Jul 21, 2026
289ac1b
Localize automatic support decay to unsupported surface branches
Mining-Geologist Jul 21, 2026
1e4e1e4
Add basal range diagnostic for short-range LVA cutoff
Mining-Geologist Jul 21, 2026
08fbdf4
Add exact Leapfrog LVA forced-path benchmark
Mining-Geologist Jul 22, 2026
2c57710
Fix exact Leapfrog LVA diagnostic runner wiring
Mining-Geologist Jul 22, 2026
65a666d
Fix exact LVA diagnostic execution
Mining-Geologist Jul 22, 2026
21c1566
Export domain and LVA field CSVs with exact benchmark
Mining-Geologist Jul 22, 2026
5b68e78
Add full-depth domain diagnostic for basal closure
Mining-Geologist Jul 22, 2026
91a7539
Add full-depth LVA strength-range benchmark sweep
Mining-Geologist Jul 22, 2026
8285a80
Allow full LVA sweep without Leapfrog reference meshes
Mining-Geologist Jul 22, 2026
dddecf2
Add full-depth LVA sweep for categorical fold datasets
Mining-Geologist Jul 22, 2026
37d3795
Expand fold sweep model extent fivefold by default
Mining-Geologist Jul 22, 2026
64feac4
Remove unsupported outer shells from fold sweep
Mining-Geologist Jul 22, 2026
3440a85
Keep only cleaned fold meshes by default
Mining-Geologist Jul 22, 2026
ecc8578
Add faster inside-only fold sweep
Mining-Geologist Jul 23, 2026
2e794c5
Allow fold sweep mesh safety limits to be disabled
Mining-Geologist Jul 23, 2026
dd0ad35
Add LVA workbench layer controls
Mining-Geologist Jul 23, 2026
eb0ae6e
Add LVA workbench field and mesh tools
Mining-Geologist Jul 23, 2026
6bd8378
Add LVA workbench result filtering
Mining-Geologist Jul 23, 2026
526e302
Add interactive structural LVA workbench
Mining-Geologist Jul 23, 2026
2b1ee2e
Add exact full-depth workbench worker
Mining-Geologist Jul 23, 2026
80a19b9
Preserve raw exact-parity workbench surfaces by default
Mining-Geologist Jul 23, 2026
7259b16
Use exact full-depth benchmark pipeline in workbench
Mining-Geologist Jul 23, 2026
107d20e
Add black and white PyVista background toggle
Mining-Geologist Jul 23, 2026
af14e8f
Add selectable finite and full-depth domain modes to LVA workbench
Mining-Geologist Jul 27, 2026
d6cbcf7
Make workbench worker select finite or full-depth domain extension
Mining-Geologist Jul 27, 2026
2adfdb4
Add nested automatic partition explorer launcher
Mining-Geologist Jul 28, 2026
8a94de8
Add Leapfrog-style grid-seeded domaining reference
Mining-Geologist Jul 29, 2026
1035538
Test Leapfrog-style domaining reference
Mining-Geologist Jul 29, 2026
7be1aa0
Implement recovered Leapfrog grid-seeded region growing
Mining-Geologist Jul 29, 2026
38f57be
Use recovered Leapfrog automatic domainer by default
Mining-Geologist Jul 29, 2026
5d1e3ba
Add fast automatic-domainer consistency sweep
Mining-Geologist Jul 30, 2026
c91420b
Add exact in-process SubDomainer consistency sweep
Mining-Geologist Jul 30, 2026
4f31d78
Add exact automatic-domain oracle label comparator
Mining-Geologist Jul 30, 2026
3609427
Add robust CSV schema wrapper for oracle comparison
Mining-Geologist Jul 30, 2026
8808835
Add oracle threshold and domain-size diagnostic sweep
Mining-Geologist Jul 30, 2026
6945ec0
Add oracle sweep for grid bbox and node geometry
Mining-Geologist Jul 30, 2026
b145866
Add oracle diagnostic for heap invalidation bug
Mining-Geologist Jul 30, 2026
b86ec4e
Preserve unaffected heap edges in automatic domaining
Mining-Geologist Jul 30, 2026
8012e6a
Export heap-corrected automatic domain builder
Mining-Geologist Jul 30, 2026
b2f1ccf
Test preservation of unaffected heap pairs
Mining-Geologist Jul 30, 2026
aaa5d2b
Analyse predicted and oracle domain overlap
Mining-Geologist Jul 30, 2026
a1c024d
Add Leapfrog runtime import and API probe
Mining-Geologist Jul 30, 2026
cd0eb3f
Add parallel read-only Leapfrog merge locals capture
Mining-Geologist Jul 30, 2026
9781bf6
Capture only actual Leapfrog merge_domains frames
Mining-Geologist Jul 30, 2026
2a47518
Reduce py-spy interference during merge locals capture
Mining-Geologist Jul 30, 2026
dbb0a73
Target coarse or real-location domaining stage in runtime capture
Mining-Geologist Jul 30, 2026
c2e24b7
Make real-stage capture follow coarse pass with one sampler
Mining-Geologist Jul 30, 2026
ad074ee
Capture real SubDomainer parent locals when merge frame is too brief
Mining-Geologist Jul 30, 2026
12beb02
Capture real SubDomainer region-growing locals
Mining-Geologist Jul 30, 2026
b588438
Add high-frequency real SubDomainer profiler
Mining-Geologist Jul 30, 2026
55a19da
Add native-frame profiling for real SubDomainer
Mining-Geologist Jul 30, 2026
fe6c13b
Add real SubDomainer adjacency sweep
Mining-Geologist Jul 30, 2026
2a33e12
Add real SubDomainer recombination sweep
Mining-Geologist Jul 30, 2026
a887ace
Add fine real SubDomainer recombination sweep
Mining-Geologist Jul 30, 2026
e62eaa5
Add real-point matrix reassignment diagnostic
Mining-Geologist Jul 30, 2026
df33f54
Add reassignment pair-merge diagnostic
Mining-Geologist Jul 30, 2026
03f6991
Add boundary-level merge score diagnostic
Mining-Geologist Jul 31, 2026
34dd23d
Add boundary merge feature diagnostic
Mining-Geologist Jul 31, 2026
c75e0b4
Add coarse-grid interface merge diagnostic
Mining-Geologist Jul 31, 2026
54d01a1
Add real-stage oracle connectivity diagnostic
Mining-Geologist Jul 31, 2026
a283df3
Add real-stage edge consistency diagnostic
Mining-Geologist Jul 31, 2026
eb3ce63
Add real-stage matrix similarity metric diagnostic
Mining-Geologist Jul 31, 2026
da21f16
Add real-stage proximity graph diagnostic
Mining-Geologist Jul 31, 2026
420e616
Add structural edge ranking diagnostic
Mining-Geologist Jul 31, 2026
b945b86
Add dynamic real-stage cluster consistency diagnostic
Mining-Geologist Jul 31, 2026
6a39c3e
Add real-stage weighted graph partitioning diagnostic
Mining-Geologist Jul 31, 2026
50af91c
Add decoded SubDomainer payload inventory diagnostic
Mining-Geologist Jul 31, 2026
b4ad4ca
Add embedded Leapfrog runtime and binary inspection probe
Mining-Geologist Jul 31, 2026
ea81d88
Add safe Leapfrog runtime probe bootstrap
Mining-Geologist Jul 31, 2026
e922c44
Document Leapfrog embedded runtime probe workflow
Mining-Geologist Jul 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/workflows/leapfrog-parity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ name: Leapfrog parity

on:
push:
branches:
- feature/leapfrog-parity
- feature/automatic-subdomainer
pull_request:
branches:
- feature/leapfrog-parity
workflow_dispatch:
Expand All @@ -19,6 +23,20 @@ jobs:
with:
python-version: "3.12"

- name: Validate standalone notebook
run: |
python - <<'PY'
import json
from pathlib import Path

path = Path("examples/standalone_automatic_lva.ipynb")
notebook = json.loads(path.read_text(encoding="utf-8"))
for index, cell in enumerate(notebook.get("cells", [])):
if cell.get("cell_type") == "code":
compile("".join(cell.get("source", [])), f"{path}:cell-{index}", "exec")
print(f"Validated {path}")
PY

- name: Install native build tools
run: |
sudo apt-get update
Expand All @@ -36,5 +54,6 @@ jobs:
run: |
python -m pip install pytest scipy
python -m pytest -q \
python/tests/test_automatic_domain_builder.py \
python/tests/test_labeled_domain_builder.py \
python/tests/test_leapfrog_values.py
91 changes: 91 additions & 0 deletions .github/workflows/polatory-benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Polatory benchmark lab

on:
workflow_dispatch:
inputs:
surface_resolution:
description: "Polatory surface resolution in metres"
required: false
default: "10"
push:
branches:
- feature/automatic-subdomainer

jobs:
build-polatory:
runs-on: windows-latest
timeout-minutes: 300
env:
POLATORY_BENCHMARK_RESOLUTION: ${{ github.event.inputs.surface_resolution || '10' }}
PYTHONPATH: ${{ github.workspace }}\benchmarks\headless_shims

steps:
- name: Check out repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install Python build tools
run: |
python -m pip install --upgrade pip
python -m pip install setuptools wheel cmake ninja build

- name: Bootstrap vcpkg
shell: powershell
run: |
.\vcpkg\bootstrap-vcpkg.bat -disableMetrics

- name: Build and install Polatory
shell: powershell
env:
VCPKG_ROOT: ${{ github.workspace }}\vcpkg
run: |
python -m pip install . --no-build-isolation --force-reinstall

- name: Install benchmark dependencies
run: |
python -m pip install scipy scikit-image pandas pyvista PyQt6 matplotlib

- name: Test Polatory import
run: |
python -c "import polatory; print('Polatory imported successfully')"

- name: Download Leapfrog gold benchmark release
shell: powershell
run: |
$archive = "benchmark-data\leapfrog-benchmark-data-v1.zip"
$folder = "benchmark-data\leapfrog-benchmark-data-v1"
New-Item -ItemType Directory -Force -Path "benchmark-data" | Out-Null
Invoke-WebRequest `
-Uri "https://github.com/Mining-Geologist/RBF/releases/download/leapfrog-benchmark-data-v1/leapfrog-benchmark-data-v1.zip" `
-OutFile $archive
New-Item -ItemType Directory -Force -Path $folder | Out-Null
Expand-Archive -Path $archive -DestinationPath $folder -Force
Get-ChildItem $folder

- name: Run synthetic structural-LVA suite
env:
QT_QPA_PLATFORM: offscreen
run: |
python benchmarks/leapfrog_blending/run_headless_suite.py

- name: Run real Leapfrog gold suite
env:
QT_QPA_PLATFORM: offscreen
LEAPFROG_GOLD_DIR: ${{ github.workspace }}\benchmark-data\leapfrog-benchmark-data-v1
run: |
python benchmarks/leapfrog_gold/run_real_gold_suite_ci.py

- name: Upload benchmark meshes, overlays, and metrics
if: always()
uses: actions/upload-artifact@v4
with:
name: polatory-leapfrog-benchmark-results
path: benchmark-results/
if-no-files-found: warn
retention-days: 30
108 changes: 108 additions & 0 deletions benchmarks/headless_shims/polatory_lva_pyqt_app_v2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
"""Minimal non-interactive compatibility surface for CI benchmark imports.

The production launcher chain historically imports the original PyQt v2 application
at module import time, even when a benchmark only needs the automatic domain builder
and chunk-safe mesher. The full v2 GUI is intentionally not duplicated in the
repository. GitHub Actions prepends this directory to ``PYTHONPATH`` so the launcher
patch modules can be imported headlessly without creating widgets.

No benchmark calls these UI methods. They exist only so v3-v8 can capture and patch
the same attributes they patch in the interactive application.
"""

from __future__ import annotations

from typing import Any

import numpy as np
import pandas as pd
import pyvista as pv
from PyQt6 import QtCore, QtWidgets


APP_TITLE = "Polatory Automatic Structural LVA"
ROLE_INSIDE = "Inside"
ROLE_OUTSIDE = "Outside"
ROLE_IGNORE = "Ignore"
ROLE_OPTIONS = (ROLE_INSIDE, ROLE_OUTSIDE, ROLE_IGNORE)


def category_keys(series: pd.Series) -> pd.Series:
return series.astype("string").fillna("<NA>").astype(str)


def default_role_for_category(value: str) -> str:
text = str(value).strip().lower()
try:
number = float(text)
except ValueError:
number = np.nan
if np.isfinite(number):
if number > 0.0:
return ROLE_OUTSIDE
if number < 0.0:
return ROLE_INSIDE
return ROLE_IGNORE
if any(token in text for token in ("inside", "ore", "deposit", "target")):
return ROLE_INSIDE
if any(token in text for token in ("outside", "waste", "background")):
return ROLE_OUTSIDE
return ROLE_IGNORE


def structured_points(
minimum: np.ndarray,
maximum: np.ndarray,
dimensions: tuple[int, int, int],
) -> np.ndarray:
"""Return the same regular Fortran-ordered point grid used by the GUI worker."""
minimum = np.asarray(minimum, dtype=float)
maximum = np.asarray(maximum, dtype=float)
dimensions = tuple(int(value) for value in dimensions)
axes = [
np.linspace(minimum[index], maximum[index], dimensions[index])
for index in range(3)
]
x, y, z = np.meshgrid(*axes, indexing="ij")
return np.column_stack(
[x.ravel(order="F"), y.ravel(order="F"), z.ravel(order="F")]
)


class ModelWorker:
def run(self) -> None:
raise RuntimeError("The CI compatibility worker must be patched before use.")


class MainWindow:
"""Attribute shell required only while the launcher patch modules are imported."""

def __init__(self, *args: Any, **kwargs: Any) -> None:
del args, kwargs

def model_parameters(self) -> dict[str, Any]:
return {}

def model_finished(self, result: dict[str, Any]) -> None:
del result

def load_csv(self) -> None:
return None

def run_model(self) -> None:
return None

def populate_category_roles(self, column: str) -> None:
del column

def _mapped_arrays(self):
raise RuntimeError("The headless compatibility shell has no mapped UI data.")

def apply_data_mapping(self) -> None:
return None


def main() -> int:
raise RuntimeError(
"This module is a CI import shim, not an interactive application launcher."
)
25 changes: 25 additions & 0 deletions benchmarks/leapfrog_blending/01_two_domain_blend_binary.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
X,Y,Z,Category,Indicator,DomainHint,ExpectedBoundaryZ
-160,-60,60,Inside,-1,Left,80
-160,-60,100,Outside,1,Left,80
-160,0,60,Inside,-1,Left,80
-160,0,100,Outside,1,Left,80
-160,60,60,Inside,-1,Left,80
-160,60,100,Outside,1,Left,80
-80,-60,20,Inside,-1,Left,40
-80,-60,60,Outside,1,Left,40
-80,0,20,Inside,-1,Left,40
-80,0,60,Outside,1,Left,40
-80,60,20,Inside,-1,Left,40
-80,60,60,Outside,1,Left,40
80,-60,120,Inside,-1,Right,140
80,-60,160,Outside,1,Right,140
80,0,120,Inside,-1,Right,140
80,0,160,Outside,1,Right,140
80,60,120,Inside,-1,Right,140
80,60,160,Outside,1,Right,140
160,-60,160,Inside,-1,Right,180
160,-60,200,Outside,1,Right,180
160,0,160,Inside,-1,Right,180
160,0,200,Outside,1,Right,180
160,60,160,Inside,-1,Right,180
160,60,200,Outside,1,Right,180
37 changes: 37 additions & 0 deletions benchmarks/leapfrog_blending/01_two_domain_blend_points.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
X,Y,Z,Role,Indicator,DomainHint,ContactSurfaceZ
-160,-60,60,Inside,-1,Left,80
-160,-60,80,Contact,0,Left,80
-160,-60,100,Outside,1,Left,80
-160,0,60,Inside,-1,Left,80
-160,0,80,Contact,0,Left,80
-160,0,100,Outside,1,Left,80
-160,60,60,Inside,-1,Left,80
-160,60,80,Contact,0,Left,80
-160,60,100,Outside,1,Left,80
-80,-60,20,Inside,-1,Left,40
-80,-60,40,Contact,0,Left,40
-80,-60,60,Outside,1,Left,40
-80,0,20,Inside,-1,Left,40
-80,0,40,Contact,0,Left,40
-80,0,60,Outside,1,Left,40
-80,60,20,Inside,-1,Left,40
-80,60,40,Contact,0,Left,40
-80,60,60,Outside,1,Left,40
80,-60,120,Inside,-1,Right,140
80,-60,140,Contact,0,Right,140
80,-60,160,Outside,1,Right,140
80,0,120,Inside,-1,Right,140
80,0,140,Contact,0,Right,140
80,0,160,Outside,1,Right,140
80,60,120,Inside,-1,Right,140
80,60,140,Contact,0,Right,140
80,60,160,Outside,1,Right,140
160,-60,160,Inside,-1,Right,180
160,-60,180,Contact,0,Right,180
160,-60,200,Outside,1,Right,180
160,0,160,Inside,-1,Right,180
160,0,180,Contact,0,Right,180
160,0,200,Outside,1,Right,180
160,60,160,Inside,-1,Right,180
160,60,180,Contact,0,Right,180
160,60,200,Outside,1,Right,180
31 changes: 31 additions & 0 deletions benchmarks/leapfrog_blending/02_background_decay_binary.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
X,Y,Z,Category,Indicator,ExpectedBoundaryZ
-160,-60,60,Inside,-1,80
-160,-60,100,Outside,1,80
-160,0,60,Inside,-1,80
-160,0,100,Outside,1,80
-160,60,60,Inside,-1,80
-160,60,100,Outside,1,80
-80,-60,20,Inside,-1,40
-80,-60,60,Outside,1,40
-80,0,20,Inside,-1,40
-80,0,60,Outside,1,40
-80,60,20,Inside,-1,40
-80,60,60,Outside,1,40
0,-60,-20,Inside,-1,0
0,-60,20,Outside,1,0
0,0,-20,Inside,-1,0
0,0,20,Outside,1,0
0,60,-20,Inside,-1,0
0,60,20,Outside,1,0
80,-60,20,Inside,-1,40
80,-60,60,Outside,1,40
80,0,20,Inside,-1,40
80,0,60,Outside,1,40
80,60,20,Inside,-1,40
80,60,60,Outside,1,40
160,-60,60,Inside,-1,80
160,-60,100,Outside,1,80
160,0,60,Inside,-1,80
160,0,100,Outside,1,80
160,60,60,Inside,-1,80
160,60,100,Outside,1,80
46 changes: 46 additions & 0 deletions benchmarks/leapfrog_blending/02_background_decay_points.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
X,Y,Z,Role,Indicator,ContactSurfaceZ
-160,-60,60,Inside,-1,80
-160,-60,80,Contact,0,80
-160,-60,100,Outside,1,80
-160,0,60,Inside,-1,80
-160,0,80,Contact,0,80
-160,0,100,Outside,1,80
-160,60,60,Inside,-1,80
-160,60,80,Contact,0,80
-160,60,100,Outside,1,80
-80,-60,20,Inside,-1,40
-80,-60,40,Contact,0,40
-80,-60,60,Outside,1,40
-80,0,20,Inside,-1,40
-80,0,40,Contact,0,40
-80,0,60,Outside,1,40
-80,60,20,Inside,-1,40
-80,60,40,Contact,0,40
-80,60,60,Outside,1,40
0,-60,-20,Inside,-1,0
0,-60,0,Contact,0,0
0,-60,20,Outside,1,0
0,0,-20,Inside,-1,0
0,0,0,Contact,0,0
0,0,20,Outside,1,0
0,60,-20,Inside,-1,0
0,60,0,Contact,0,0
0,60,20,Outside,1,0
80,-60,20,Inside,-1,40
80,-60,40,Contact,0,40
80,-60,60,Outside,1,40
80,0,20,Inside,-1,40
80,0,40,Contact,0,40
80,0,60,Outside,1,40
80,60,20,Inside,-1,40
80,60,40,Contact,0,40
80,60,60,Outside,1,40
160,-60,60,Inside,-1,80
160,-60,80,Contact,0,80
160,-60,100,Outside,1,80
160,0,60,Inside,-1,80
160,0,80,Contact,0,80
160,0,100,Outside,1,80
160,60,60,Inside,-1,80
160,60,80,Contact,0,80
160,60,100,Outside,1,80
Loading
Loading