:Title: AnyonSQCModule
:Context: AnyonSQCModule`
:Author: Bittner Research Group
:Date: [2025-04-14]
:Version: 1.0
:Mathematica Version: 13.2 or later
:Copyright: (c) 2025 University of Houston
:License: For academic use only; contact author for other uses
:Context: AnyonSQCModule`
:Author: Bittner Research Group
:Date: [2025-04-14]
:Version: 1.0
:Mathematica Version: 13.2 or later
:Copyright: (c) 2025 University of Houston
:License: For academic use only; contact author for other uses
(* :Discussion:This package implements linear and nonlinear response calculationsfor systems of anyonic excitations coupled to dissipative environments.Key capabilities include: - Construction of the effective non-Hermitian evolution matrix W_eff - Green's functions and propagators for Heisenberg-picture dynamics - Third-order SQC signals (both rephasing and non-rephasing) - Linear response susceptibility calculations - Eigenvalue analysis of the dissipative spectrum - Full support for fractional statistical angle θ, environmental correlation ξ, and thermal occupation encoded via n_θ(ω)Intended for use in modeling and interpreting anyon spectroscopy experiments,especially those seeking to resolve topological effects in nonlinear optical signals.This should be saved in you Wolfram $Path, eg (MacOS) in ~/Library/Wolfram/Applications *)Print[ Style[ "\nAnyonSQCModule\n" <> "---------------------------------------------\n" <> "Simulating linear and nonlinear response of\n" <> "anyon systems under dissipation and fractional statistics.\n\n" <> "Available tools:\n" <> " - WeffMatrix[params]: Effective evolution matrix\n" <> " - GreensFunction[ω, Weff], Propagator[T, Weff]\n" <> " - SQCNonRephasingSignal[...] and SQCRephasingSignal[...]\n" <> " - LinearResponse[params, ω]: Frequency-domain susceptibility\n" <> " - WeffEigenvalues[params]: Eigenmode analysis\n\n" <> "Use Options[function] to view optional arguments.\n" <> "For support: see arxiv: \n", FontFamily -> "Courier", FontSize -> 12 ]];BeginPackage["AnyonSQCModule`"];WeffMatrix::usage = "WeffMatrix[params] returns the effective evolution matrix for given parameters.";nTheta::usage = "nTheta[omega, beta, theta] returns the fractional occupation number for anyons.";muVec::usage = "muVec[theta] returns the excitation dipole operator vector.";muVecDagger::usage = "muVecDagger[theta] returns the conjugate dipole operator vector.";GreensFunction::usage = "GreensFunction[ω, Weff] returns the frequency-domain Green's function.";Propagator::usage = "Propagator[T, Weff] returns the time-domain propagator.";x0::usage = "x0[params] returns the initial state vector (e.g., dipole-induced coherence).";SQCNonRephasingSignal::usage = "SQCNonRephasingSignal[params, ωτ, T, ωt] computes the SQC non-rephasing signal.";SQCRephasingSignal::usage = "SQCRephasingSignal[params, ωτ, T, ωt] computes the SQC rephasing signal.";SQCNonRephasing2DSpectrum::usage = "SQCNonRephasing2DSpectrum[params, T, {ωτmin, ωτmax}, {ωtmin, ωtmax}, npts] computes the 2D non-rephasing spectrum.";SQCRephasing2DSpectrum::usage = "SQCRephasing2DSpectrum[params, T, {ωτmin, ωτmax}, {ωtmin, ωtmax}, npts] computes the 2D rephasing spectrum.";LinearResponse::usage = "LinearResponse[params_Association, omega_, debug_: False]"
LinearResponse[params_Association, omega_, debug_: False] := Module[ {Weff, mu, muDagger, G, χ}, Weff = WeffMatrix[params]; mu = muVec[params["theta"]]; muDagger = muVecDagger[params["theta"]]; G = GreensFunction[omega, Weff]; χ = muDagger . G . mu; If[debug, Print["mu: ", mu]; Print["muDagger: ", muDagger]; Print["GreensFunction: ", G]; Print["Linear Response χ(ω): ", χ]; ]; χ[[1, 1]]];(*Example usage*)(***params=<|"gamma"->1,"theta"->Pi/3,"xi"->0.1,"omega"->1,"J"->0.2,"beta"->1|>;{wtau,wt,spectrum}=DQC2DSpectrum[params,0.5,{-2,2},{-2,2},100];ListDensityPlot[spectrum,DataRange->{{-2,2},{-2,2}},FrameLabel->{"ωτ","ωt"}]***)
End[];EndPackage[];