Reference

Contents

Index

PHysicalTDA.AXConstant

Collapse (reduce) a 4D array over one or more axes with specified operation (default operation is :sum). Axes may be symbols (:h,:k,:ℓ,:ω) [Julia Syntax] or integer indices [Python Syntax]. Reduces highest axes first to keep indices stable. Returns collapsed (reduced) array.

Note, the indexing convention in Julia is such that (JuliaArr[1] ~ PythonArr[0]).

source
PHysicalTDA.LSWTMethod

Computes LSWT S(q,ω) on a coarse 3D Q-grid and along several q-space paths. Build Gaussian-broadened 2D intensity and multiple 1D path scans in parallel. Returns ([results2D, Qs], [resultalongpaths, paths], energies)

Assumes input is a Sunny.System corresponding to the provided Sunny.Crystal type.

source
PHysicalTDA.La2CuO4Method

Constructs a tetragonal La₂CuO₄-like crystal and Sunny spin system. Applies J, J′, J″, Jc exchanges, randomizes spins, and minimizes energy.

Space Group: 139 ~ Single Cu Ion @ [0,0,0] | (s=1/2, g=2) Supercell: (6×6×3)

Returns (cryst::Sunny.Crystal, sys::Sunny.System).

source
PHysicalTDA.MADMethod

Median Absolute Deviation (MAD) Applies elementwise relative to the median of t. Suitable for thresholding outliers in intensity arrays. Returns an array of MAD values with the same shape as t.

source
PHysicalTDA.TMMCMethod

Constructs low-temperature monoclinic (CH₃)₄[NMnCl₃] crystal via Sunny. Applies exchange coupling J and anisotropic exchange Δ (along z-axis).

This crystal is commonly referred to as TMMC. It is a 1D high-spin Heisenberg chain.

Space group: 14 (P2₁/b) ~ Single Mn Ion @ [1/5, 1/4, 1/5] | (s=5/2, g=2) Supercell: (1×4×150)

Returns (cryst::Sunny.Crystal, sys::Sunny.System)

source
PHysicalTDA.betti_curvatureMethod
betti_curvature(pd, τ; dims = 0:1, scheme = :forward)

Compute βp(τ) and κp(τ) = dβ_p/dτ on a grid τ.

  • scheme = :forward (default) uses forward differences and sets κ[end]=κ[end-1]. Use :central for central differences on interior points.

Returns (β::Dict{Int,Vector{Int}}, κ::Dict{Int,Vector{Float64}}).

source
PHysicalTDA.betti_curveMethod
betti_curve(PDs, τ; dims = 0:1)

Compute per-dimension Betti curves βp(τj) on a user-provided grid τ.

  • PDs is a vector of Ripserer PD (grouped by degree).
  • τ is a sorted vector of thresholds (monotone increasing).

Returns Dict{Int,Vector{Int}} mapping p ↦ β_p(τ).

source
PHysicalTDA.convert4DMethod

Reshape Sunny intensities from (ω, q) or (q, ω) into a 4D cube (h,k,ℓ,ω). Validates sizes given Q-grid shape, then reshapes/permutedims accordingly. Error thrown if flattened data size does not match nω × nQ. Returns a 4D Array with axis order (h,k,ℓ,ω).

source
PHysicalTDA.pd_array_intensityMethod

Computes persistance diagrams of an intensity array via cubical complexes. Returns PDs with birth–death scatter per dimension, grouped by homology degree up to maxdim.

Optional superlevel filtration (invert intensities) and normalization to [0,1]. Used to analyze the topology of I(Q,ω) = |S(Q,ω)|².

source
PHysicalTDA.pd_sunny_intensitiesMethod

Wrapper: Sunny.Intensities -> dense Array -> pdarrayintensity

Converts I.data to a dense array and calls pd_array_intensity. Respects maxdim and superlevel. Returns (PD, Figures).

Convenient for topology on LSWT or phonon intensity objects.

source
PHysicalTDA.persistence_entropyMethod
persistence_entropy(PDs; dims = 0:1, tol = 0.0)

Compute per-dimension persistence entropy Sₚ and total persistence Eₚ.

  • PDs is a vector of Ripserer persistence diagrams, grouped by homology degree as returned by pd_array_intensities() or pd_sunny_intensities().
  • dims selects homology degrees (default 0:1).
  • tol discards lifetimes ≤ tol (guards numerical noise).

Returns (S::Dict{Int,Float64}, E::Dict{Int,Float64}) keyed by p.

source