Skip to content

About

Schema-neutral eigenmode analysis: path and grid tracking, candidate grouping, polarization and diagnostics.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Eigenmode Analysis

English · 简体中文 · Synthetic gallery · Public API

Track eigenmode candidates without losing their identity or hiding missing samples. Array-based path and directed-graph tracking exposes assignment costs, coverage, rejected candidates and graph diagnostics.

The same observations before and after tracking

Computed synthetic demonstration. Both panels contain the same 265 observations; eight missing slots remain missing. Colors denote numerical tracks, not unique physical mode identities. Source · Provenance.

Capabilities

Capability Public interface Application
Ordered scans CandidateSet, TrackingConfig, track_path Reordered candidates, crossing branches and missing observations
Parameter graphs TraversalEdge, rectilinear_traversal, track_graph Explicit traversal, incoming-edge diagnostics and empty sites
Field and mode analysis symmetry, polarization, topology, propagation Reusable numerical operations on arrays
Sampling and characterization grid_sampling, lineshapes, peak_tracking, field_regimes Analysis independent of readers and rendering

Runtime dependencies are NumPy and SciPy. The numerical package does not import plotting backends, DataFrames, simulator APIs or consumers. Callers own readers, physical selection, output paths and interpretation.

flowchart LR
    A[Arrays and candidate IDs] --> B[Explicit path or graph]
    B --> C[Configured assignment]
    C --> D[Tracked IDs and arrays]
    C --> E[Missing slots, costs, diagnostics]
    D --> F[Caller analysis or plotting]
Loading

Release lines and installation

Public branch Version Compatibility
Default: public-release 0.2.10 Stable path/graph API; compatible with Plot Workflows 0.1.7
feature/band-tracking-v2 0.3.1 Adds opt-in band_grouping; outside Workflows 0.1.7's <0.3 requirement

This is the default stable-release documentation. The gallery runs against the 0.2.10 wheel, and does not validate the separate grouping algorithm. Python 3.10+ and Git are required for this pinned public-source install; no package-index release or version tag is assumed.

python -m venv .venv
# Activate .venv for your shell, then:
python -m pip install "eigenmode-analysis @ git+https://github.com/Patr1ck2005/eigenmode-analysis.git@e172495aa0c561cf0edf251ae9828dd5e54d2d64"
python -m pip check

A verified local eigenmode_analysis-0.2.10-py3-none-any.whl is also suitable. Stable consumers should install wheels rather than inject sibling-source paths.

Complete small example

import numpy as np
from eigenmode_analysis.tracking import CandidateSet, TrackingConfig, track_path

t = np.linspace(-1, 1, 21)
points = []
for i, value in enumerate(t):
    order = [1, 0] if i % 2 else [0, 1]
    values = np.array([1 + 0.2 * value, 1 - 0.2 * value])
    points.append(CandidateSet(order, values[order, None]))
result = track_path(points, coordinates=t,
                    config=TrackingConfig(n_tracks=2, derivative_weights=2))
assert result.coverage == 1.0
print(result.features.shape)  # (21, 2, 1)

Candidate IDs are opaque and local to each site. Feature scaling and continuity assumptions affect assignment; cost is not probability. Missing or rejected assignments remain None/NaN rather than silently becoming another mode.

Computed examples

Crossing and missing samples Directed-graph diagnostics
Tracked branches with a gap Graph coverage and costs

Path-cost diagnostic · Offline PNG/SVG gallery.

From this repository, install the example's rendering dependency and run:

python -m pip install "plot-foundation @ git+https://github.com/Patr1ck2005/plot-foundation.git@c3d3cc23b2bb4da7ade7e5edf553d4a36d19db7f"
python examples/synthetic_tracking.py --out docs/assets/showcase

The fixed-seed example uses public APIs and independently defined mathematics. Assertions check observation preservation, the expected crossing, eight missing slots, an empty graph site and input-order invariance. PNG/SVG exports, the HTML gallery and manifest record source hashes, versions, dimensions and checks.

Separate advanced grouping line

Version 0.3.1 is available on the separate public feature branch. Read its grouping contract before adopting it; do not implicitly upgrade a workflow environment requiring a version below 0.3.

Documentation and development

Public API · Architecture · Changelog · Agent rules · Four-library example.

For package development, use an isolated environment, install .[dev], and run python -m pytest -q. Example assertions cover less than the complete package suite.

MIT licensed; these examples make no experimental, full-wave or unpublished-research claim.

About

Schema-neutral eigenmode analysis: path and grid tracking, candidate grouping, polarization and diagnostics.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages