Skip to content

Update documentation and docstrings to reflect arc-based indexing API#291

Merged
jd-lara merged 7 commits intomainfrom
copilot/update-api-docs-branch-arc-indexing
Apr 15, 2026
Merged

Update documentation and docstrings to reflect arc-based indexing API#291
jd-lara merged 7 commits intomainfrom
copilot/update-api-docs-branch-arc-indexing

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 14, 2026

Matrices (IncidenceMatrix, PTDF, LODF, etc.) are now indexed by arc tuples (from_bus, to_bus) instead of branch name strings. Documentation was stale — still showing branch name/object indexing as the primary API.

Documentation updates

  • Tutorials (PTDF, LODF): Added "Indexing" sections showing arc tuple access, axes, and lookup dictionaries
  • VirtualPTDF tutorial: Replaced deprecated v_ptdf["1", j] string indexing with v_ptdf[first_arc, j]
  • Getting Started: Fixed incorrect matrix dimension description; added arc indexing examples
  • network_matrices.jl example: Rewrote PTDF/LODF sections — removed ptdf[line, bus] and ptdf["name", 3] patterns, replaced with ptdf[(1, 2), 3]
  • How-to guide: Added indexing examples and axes/lookup summary table for all matrix types
  • Reference overview: Added arc indexing details per matrix type, new "Arc-Based Indexing" section with dimension summary table and notes on reduced elements

Source docstring fixes

  • get_lookup: Corrected "first dimension is branches" → arcs (stored transposed)
  • lookup_index: Updated from "branch name" references to arc tuple / bus number descriptions

Example: new indexing pattern

ptdf = PTDF(sys)
ptdf[(1, 2), 3]                    # arc tuple + bus number

lodf = LODF(sys)
lodf[(1, 4), (2, 3)]              # arc tuple × arc tuple

# lookup dictionaries
arc_lookup, bus_lookup = get_lookup(ptdf)

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/FluxML/MacroTools.jl/tarball/1e0228a030642014fe5cfe68c2c0a818f9e3f522
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Blosc_jll.jl/tarball/535c80f1c0847a4c967ea945fca21becc9de1522
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/HDF5_jll.jl/tarball/45337643a2d97262d5fe72ce1f13e8a662d13d62
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Hwloc_jll.jl/tarball/baaaebd42ed9ee1bd9173cfd56910e55a8622ee1
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Libiconv_jll.jl/tarball/be484f5c92fad0bd8acfef35fe017900b0b73809
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Lz4_jll.jl/tarball/191686b1ac1ea9c89fc52e996ad15d1d241d1e33
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/MPIABI_jll.jl/tarball/fdc0f7ca9e7e645d1114b93c9eee98f352b59a0c
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/MPICH_jll.jl/tarball/07dbec8aab01696edc0151a401a6cdfe95b9b885
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/MPItrampoline_jll.jl/tarball/36c2d142e7d45fb98b5f83925213feb3292ca348
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/MicrosoftMPI_jll.jl/tarball/bc95bf4149bf535c09602e3acdf950d9b4376227
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/OpenMPI_jll.jl/tarball/2f3d05e419b6125ffe06e55784102e99325bdbe2
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/SQLite_jll.jl/tarball/0b5f220f90642566b65ba86549d1ee4118ab2579
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/XML2_jll.jl/tarball/80d3930c6347cfce7ccf96bd3bafdf079d9c0390
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Xorg_libpciaccess_jll.jl/tarball/4909eb8f1cbf6bd4b1c30dd18b2ead9019ef2fad
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/Zstd_jll.jl/tarball/446b23e73536f84e8037f5dce465e92275f6a308
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_c_auth_jll.jl/tarball/8cab83c96af80a1be968251ce1a0548a7545484d
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_c_cal_jll.jl/tarball/22c0f42f4a1f0dc5dcfa8fd267c4ac407c455e7a
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_c_common_jll.jl/tarball/a759cb9bf456ad792cc7898a81ae333cce9ef02a
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_c_compression_jll.jl/tarball/7910c72f45f44afd297c39fe43b99c56d5ed22ec
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_c_http_jll.jl/tarball/e358d5a001ef7afbd4f8c5225322512819cda2f2
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_c_io_jll.jl/tarball/7e481d474b2087ee8bbf55b81bf9119f21e396d9
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_c_s3_jll.jl/tarball/3e9917ab25114feba657e71be41cad068b9f6595
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_c_sdkutils_jll.jl/tarball/c43dfba2c1ab9ea9f02f2c80e86fa16f6460244e
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/aws_checksums_jll.jl/tarball/2570c8e23f4771a087b12a47edcaaa670ac05a01
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/dlfcn_win32_jll.jl/tarball/e141d67ffe550eadfb5af1bdbdaf138031e4805f
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/libaec_jll.jl/tarball/1411bc34c180946d3cef591de1384012afa6edee
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/mpif_jll.jl/tarball/653ea50df05f4df3913bc3c51f895127ae391b03
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaBinaryWrappers/s2n_tls_jll.jl/tarball/6b99e06a3863de281da6ff0e193a5b3706349054
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/AbstractTrees.jl/tarball/2d9c9a55f9c93e8887ad391fbae72f8ef55e1177
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/DataStructures.jl/tarball/e86f4a2805f7f19bec5129bc9150c38208e5dc23
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/LeftChildRightSiblingTrees.jl/tarball/95ba48564903b43b2462318aa243ee79d81135ff
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/OrderedCollections.jl/tarball/05868e21324cede2207c6f0f466b4bfef6d5e7ee
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaCollections/SortingAlgorithms.jl/tarball/64d974c2e6fdf07f8155b5b2ca2ffa9069b608d9
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/CSV.jl/tarball/8d8e0b0f350b8e1c91420b5e64e5de774c2f0f4d
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/DataAPI.jl/tarball/abe83f3a2f1b857aac70ef8b269080af17764bbe
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/DataFrames.jl/tarball/5fab31e2e01e70ad66e3e24c968c264d1cf166d6
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/DataFramesMeta.jl/tarball/b0652fb7f3c094cf453bf22e699712a0bed9fc83
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/DelimitedFiles.jl/tarball/9e2f36d3c96a820c678f2f1f1782582fcf685bae
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/InvertedIndices.jl/tarball/6da3c4316095de0f5ee2ebd875df8721e7e0bdbe
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/Missings.jl/tarball/ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/Parsers.jl/tarball/7d2f8f21da5db6a806faf7b9b292296da42b2810
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/PooledArrays.jl/tarball/36d8b4b899628fb92c2749eb488d884a926614d3
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/SentinelArrays.jl/tarball/ebe7e59b37c400f694f52b58c93d26201387da70
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/StructTypes.jl/tarball/159331b30e94d7b11379037feeb9b690950cace8
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/TableMetadataTools.jl/tarball/c0405d3f8189bb9a9755e429c6ea2138fca7e31f
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/Tables.jl/tarball/f2c1efbc8f3a609aadf318094f8fc5204bdaf344
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/WeakRefStrings.jl/tarball/b1be2855ed9ed8eac54e5caff2afcdb442d52c23
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaData/YAML.jl/tarball/a1c0c7585346251353cddede21f180b96388c403
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDatabases/DBInterface.jl/tarball/a444404b3f94deaa43ca2a58e18153a82695282b
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDatabases/SQLite.jl/tarball/87b47a05946c50f44531b447b1f24968345316a4
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaDocs/DocStringExtensions.jl/tarball/7442a5dfe1ebb773c29cc2962a8980f47221d76c
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/Blosc.jl/tarball/310b77648d38c223d947ff3f50f511d08690b8d5
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/CodecZlib.jl/tarball/962834c22b66e32aa10f7611c08c8ca4e20749a9
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/HDF5.jl/tarball/491ea627ac824619f34168e29a0427a9e00e3e40
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/HDF5.jl/tarball/d778420e524bcf56066e8c63c7aa315ae7269da2
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaIO/TranscodingStreams.jl/tarball/0c45878dcfdcfa8480052b6ab162cdd138781742
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/Compat.jl/tarball/9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLang/PrecompileTools.jl/tarball/07a921781cab75691315adc645096ed5e370cb77
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLogging/ProgressLogging.jl/tarball/f0803bc1171e455a04124affa9c21bba5ac4db32
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaLogging/TerminalLoggers.jl/tarball/f133fab380933d042f6796eda4e130272ba520ca
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/JLLWrappers.jl/tarball/0533e564aae234aff59ab625543145446d8b6ec2
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Preferences.jl/tarball/8b770b60760d4451834fe79dd483e318eee709c4
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPackaging/Requires.jl/tarball/62389eeff14780bfe55195b7204c0d8738436d64
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaParallel/MPI.jl/tarball/8e98d5d80b87403c311fd51e8455d4546ba7a5f8
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPhysics/Unitful.jl/tarball/57e1b2c9de4bd6f40ecb9de4ac1797b81970d008
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaPlots/Plots.jl/tarball/5c3d09cc4f31f5fc6af001c250bf1278733100ff
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaServices/WorkerUtilities.jl/tarball/cd1659ba0d57b71a464a29e64dbc67cfe83d54e7
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaSparse/KLU.jl/tarball/07649c499349dad9f08dde4243a4c597064663e9
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/Statistics.jl/tarball/ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStats/TimeSeries.jl/tarball/e1235a1906d1e6d27c30c35daa91fcf6fc271f08
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStrings/InlineStrings.jl/tarball/8f3d257792a522b4601c24a577954b0a8cd7334d
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStrings/LaTeXStrings.jl/tarball/dda21b8cbd6a6c40d9d02a73230f9d70fed6918c
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaStrings/StringEncodings.jl/tarball/b765e46ba27ecf6b44faf70df40c57aa3a547dcb
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/JuliaTesting/ExprTools.jl/tarball/27415f162e6028e81c72b82ef756bf321213b6ec
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/KristofferC/Crayons.jl/tarball/249fe38abf76d48563e2f4556bebd215aa317e15
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/KristofferC/TimerOutputs.jl/tarball/3748bd928e68c7c346b52125cf41fff0de6937d0
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/NREL-Sienna/InfrastructureSystems.jl/tarball/5c29a2a358755bceeb3233a7d8be778692a7e6c6
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/NREL-Sienna/PowerSystems.jl/tarball/354c56b72404bfd2e4c1f364277512f9f549ce65
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/jkrumbiegel/Chain.jl/tarball/765487f32aeece2cf28aa7038e29c31060cb5a69
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/joshday/StringTemplates.jl/tarball/d78012ad7c6c22aba229a6363ec83ebc9ce5c135
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/jverzani/Mustache.jl/tarball/3cbd5dda543bc59f2e482607ccf84b633724fc32
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/nickrobinson251/PowerFlowData.jl/tarball/54d48d25e7d7511bbc8eb0ecff9e32f38c6f267c
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/queryverse/DataValueInterfaces.jl/tarball/bfc1187b79289637fa0ef6d4436ebdfe6905cbd6
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/queryverse/IteratorInterfaceExtensions.jl/tarball/a3f24677c21f5bbe9d2a714f95dcd58337fb2856
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/queryverse/TableTraits.jl/tarball/c06b2f539df1c6efa794486abfb6ed2022561a39
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/quinnj/JSON3.jl/tarball/411eccfe8aba0814ffa0fdf4860913ed09c34975
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/rofinn/FilePathsBase.jl/tarball/3bab2c5aa25e7840a4b065805c0cdfc01f3068d2
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/ronisbr/PrettyTables.jl/tarball/624de6279ab7d94fc9f672f0068107eb6619732c
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/ronisbr/StringManipulation.jl/tarball/d05693d339e37d6ab134c5ab53c29fce5ee5d7d5
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • https://api.github.com/repos/simonster/Reexport.jl/tarball/45e428421666073eab6f2da5c9d310d99bb12f9b
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (http block)
  • pkg.julialang.org
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.instantiate() (dns block)
    • Triggering command: /usr/bin/julia julia -e using Pkg; Pkg.activate("."); Pkg.instantiate() (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

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.

Copilot wasn't able to review any files in this pull request.


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

@jd-lara jd-lara requested a review from m-bossart April 14, 2026 19:49
- Update getting_started.md: fix incorrect matrix dimension description, add
  arc tuple indexing examples
- Update tutorial_PTDF_matrix.md: add new section on arc-based indexing with
  examples for axes, lookup, and element access
- Update tutorial_LODF_matrix.md: add new section on arc-based indexing for
  both dimensions with examples
- Update tutorial_VirtualPTDF_matrix.md: replace deprecated string-based
  indexing with arc tuple indexing in distributed slack and sparse examples
- Update network_matrices.jl: rewrite example file to use arc tuple indexing
  instead of deprecated branch name/object indexing
- Update compute_network_matrices.md: add arc indexing examples and new section
  explaining axes/lookup dictionaries with indexing summary table
- Update network_matrices_overview.md: add arc indexing details to matrix
  properties, add new Arc-Based Indexing section with summary table and notes
  on network reductions
- Update PowerNetworkMatrix.jl: fix docstrings for get_lookup and lookup_index
  to correctly reference arcs instead of branches

Agent-Logs-Url: https://github.com/NREL-Sienna/PowerNetworkMatrices.jl/sessions/552a509d-7d0c-4405-ab0a-306d8e83a5ef

Co-authored-by: jd-lara <16385323+jd-lara@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 14, 2026

Performance Results

Precompile Time

Main This Branch Delta
2.208 s 2.252 s +2.0%

Execution Time

Test Main This Branch Delta
matpower_ACTIVSg2000_sys-Build PTDF First 1.839 s 1.872 s +1.8%
matpower_ACTIVSg2000_sys-Build PTDF Second 532.5 ms 78.8 ms -85.2%
matpower_ACTIVSg2000_sys-Build Ybus First 14.7 ms 14.0 ms -4.9%
matpower_ACTIVSg2000_sys-Build Ybus Second 12.9 ms 12.6 ms -2.5%
matpower_ACTIVSg2000_sys-Build LODF First 165.5 ms 704.8 ms +326.0%
matpower_ACTIVSg2000_sys-Build LODF Second 181.5 ms 173.8 ms -4.2%
matpower_ACTIVSg2000_sys-Build VirtualMODF First 4.156 s 4.709 s +13.3%
matpower_ACTIVSg2000_sys-Build VirtualMODF Second 208.5 ms 1.087 s +421.3%
matpower_ACTIVSg2000_sys-VirtualMODF Query 10 rows 488.0 ms 488.2 ms 0.0%
matpower_ACTIVSg2000_sys-Radial network reduction First 577.5 ms 577.2 ms -0.1%
matpower_ACTIVSg2000_sys-Radial network reduction Second 5.6 ms 6.2 ms +10.4%
matpower_ACTIVSg2000_sys-Degree two network reduction First 2.002 s 2.017 s +0.8%
matpower_ACTIVSg2000_sys-Degree two network reduction Second 1.2 ms 1.2 ms -5.9%
Base_Eastern_Interconnect_515GW-Build Ybus First 3.4 s 3.398 s -0.1%
Base_Eastern_Interconnect_515GW-Build Ybus Second 3.237 s 3.452 s +6.6%
Base_Eastern_Interconnect_515GW-Radial network reduction First 9.738 s 9.636 s -1.1%
Base_Eastern_Interconnect_515GW-Radial network reduction Second 9.89 s 9.635 s -2.6%
Base_Eastern_Interconnect_515GW-Degree two network reduction First 371.5 ms 366.0 ms -1.5%
Base_Eastern_Interconnect_515GW-Degree two network reduction Second 50.5 ms 42.9 ms -15.1%

Copilot AI changed the title [WIP] Update API, documentation, and tests for branch vs. arc indexing Update documentation and docstrings to reflect arc-based indexing API Apr 14, 2026
Copilot AI requested a review from jd-lara April 14, 2026 20:04
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.44%. Comparing base (abede1d) to head (430c66f).
⚠️ Report is 15 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##            main     #291       +/-   ##
==========================================
+ Coverage   0.07%   79.44%   +79.36%     
==========================================
  Files         38       38               
  Lines       3778     3761       -17     
==========================================
+ Hits           3     2988     +2985     
+ Misses      3775      773     -3002     
Flag Coverage Δ
unittests 79.44% <ø> (+79.36%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/PowerNetworkMatrix.jl 44.59% <ø> (+44.59%) ⬆️

... and 35 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jd-lara jd-lara marked this pull request as ready for review April 14, 2026 21:37
@jd-lara jd-lara enabled auto-merge April 15, 2026 15:36
Copy link
Copy Markdown
Contributor

@m-bossart m-bossart left a comment

Choose a reason for hiding this comment

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

I am ok with this to get some of the fixes in and to document new features.
Opened #292 as a reminder to go back and make sure documentation is compatible with diataxis/other sienna packaged and to reduce the amount of repetition in AI generated content.

Comment on lines +150 to +154
- MOD-030 flowgate screening (OTDF thresholding, AFC and ATC arithmetic,
interconnection-wide congestion management procedures) is not provided by
this package. `VirtualMODF` computes the distribution factors that such a
layer would consume; the MOD-030 policy vocabulary is not part of the
current API.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We should provide some more context and define acronyms here


## Understanding Axes and Lookup Dictionaries

All network matrices store `axes` and `lookup` fields that describe how rows and columns map to physical network elements:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

physical network elements is a bit misleading (seems to imply actual branches). I would just say buses and arcs

@jd-lara jd-lara merged commit 9e7db39 into main Apr 15, 2026
10 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.

API, documentation, and tests for branch vs. arc indexing

4 participants