Stability
stability
Stability analysis using Hessian computation via JAX autodiff.
Implements:
- Tachyonic mode detection
- Linear response theory
- Fluctuation spectrum
- Phase transition indicators
- Tunneling rate estimates
All second derivatives computed automatically via JAX.
compute_mass_matrix(phi, m, lambda_)
Compute effective mass matrix \(\partial^2 V/\partial\phi\,\partial\phi^*\) (Hessian of potential).
Convention: \(m_\text{eff}^2 = \text{sign}(m)\,m^2 + \lambda|\phi|^2\).
- \(m > 0\): quartic potential \(V = m^2/2\,|\phi|^2 + \lambda/4\,|\phi|^4\). Curvature at origin is \(+m^2\) (stable vacuum at \(\phi=0\)).
- \(m < 0\): double-well potential with tachyonic mass. Curvature at origin is \(-m^2\) (unstable vacuum, SSB).
This tells us if the field configuration is stable (all positive) or has tachyonic modes (negative values).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi
|
Array
|
Scalar field (N, N, N) complex |
required |
m
|
float
|
Signed mass parameter. Positive → stable; negative → tachyonic at origin. |
required |
lambda_
|
float
|
Self-coupling |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Effective mass squared at each point (N, N, N) real |
Source code in jaxlatt/observables/stability.py
detect_tachyonic_modes(phi, m, lambda_)
Detect tachyonic (unstable) modes where m_eff² < 0.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi
|
Array
|
Scalar field configuration. |
required |
m
|
float
|
Mass parameter. |
required |
lambda_
|
float
|
Self-coupling. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, float]
|
Dictionary with counts and fractions of unstable sites, extrema of |
dict[str, float]
|
effective mass-squared, and a boolean instability flag. |
Source code in jaxlatt/observables/stability.py
make_energy_hessian_function(m, lambda_, dx)
Create function to compute full Hessian \(\partial^2 H/\partial\phi\,\partial\phi\) via autodiff.
This includes both potential and gradient terms:
The Hessian operator is: \(-\nabla^2 + \partial^2 V/\partial\phi^2\)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m
|
float
|
Mass |
required |
lambda_
|
float
|
Self-coupling |
required |
dx
|
float
|
Lattice spacing |
required |
Returns:
| Type | Description |
|---|---|
|
Function \(\phi \to\) Hessian operator applied to \(\phi\) |
Source code in jaxlatt/observables/stability.py
compute_fluctuation_spectrum_1d(phi, m, lambda_, dx)
Compute power spectrum of fluctuations \(\delta\phi\) around background.
\(P(k) = \langle |\delta\phi_k|^2 \rangle\) gives the spectrum of quantum/thermal fluctuations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi
|
Array
|
Field configuration |
required |
m
|
float
|
Mass |
required |
lambda_
|
float
|
Coupling |
required |
dx
|
float
|
Lattice spacing |
required |
Returns:
| Type | Description |
|---|---|
tuple[Array, Array]
|
(k_values, power_spectrum) |
Source code in jaxlatt/observables/stability.py
estimate_effective_mass_from_spectrum(k_values, power_spectrum, dx)
Estimate effective mass from fluctuation spectrum.
For free theory: \(P(k) \approx 1/(k^2 + m_\mathrm{eff}^2)\)
Fit low-\(k\) behavior to extract \(m_\mathrm{eff}\).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
k_values
|
Array
|
Momentum values |
required |
power_spectrum
|
Array
|
\(P(k)\) |
required |
dx
|
float
|
Lattice spacing |
required |
Returns:
| Type | Description |
|---|---|
float
|
Effective mass estimate |
Source code in jaxlatt/observables/stability.py
compute_linear_response(phi_background, delta_phi, m, lambda_, dx)
Compute linear response: how system responds to perturbation.
This is the linearized equation of motion.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi_background
|
Array
|
Background field |
required |
delta_phi
|
Array
|
Perturbation \(\delta\phi\) |
required |
m
|
float
|
Mass |
required |
lambda_
|
float
|
Coupling |
required |
dx
|
float
|
Lattice spacing |
required |
Returns:
| Type | Description |
|---|---|
Array
|
Linear response \(\delta\phi\) |
Source code in jaxlatt/observables/stability.py
compute_curvature_at_origin(m, lambda_)
Compute \(\partial^2 V/\partial\phi^2|_{\phi=0} = m^2\).
- If \(m^2 < 0\): symmetry broken (\(\phi = 0\) unstable)
- If \(m^2 > 0\): symmetric phase (\(\phi = 0\) stable)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m
|
float
|
Mass parameter |
required |
lambda_
|
float
|
Coupling |
required |
Returns:
| Type | Description |
|---|---|
float
|
Curvature at origin (\(= m^2\)) |
Source code in jaxlatt/observables/stability.py
compute_vev_estimate(m, lambda_)
Estimate vacuum expectation value for symmetry breaking.
- If \(m^2 < 0\): VEV \(\approx \sqrt{-m^2/\lambda}\)
- If \(m^2 > 0\): VEV \(= 0\)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m
|
float
|
Mass (can be negative for SSB) |
required |
lambda_
|
float
|
Self-coupling |
required |
Returns:
| Type | Description |
|---|---|
float
|
Estimated \(|\langle\phi\rangle|\) |
Source code in jaxlatt/observables/stability.py
check_symmetry_breaking(phi, m, lambda_)
Check if field has non-zero VEV (symmetry breaking).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi
|
Array
|
Scalar field configuration. |
required |
m
|
float
|
Mass parameter. |
required |
lambda_
|
float
|
Self-coupling. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, float]
|
Dictionary with measured field statistics, expected VEV, curvature at the |
dict[str, float]
|
origin, and a symmetry-breaking indicator. |
Source code in jaxlatt/observables/stability.py
estimate_bounce_action(phi_false, phi_true, m, lambda_)
Estimate bounce action for tunneling \(\phi_\mathrm{false} \to \phi_\mathrm{true}\).
Tunneling rate: \(\Gamma \sim \exp(-S_\mathrm{bounce})\)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi_false
|
float
|
False vacuum field value |
required |
phi_true
|
float
|
True vacuum field value |
required |
m
|
float
|
Mass |
required |
lambda_
|
float
|
Coupling |
required |
Returns:
| Type | Description |
|---|---|
float
|
Bounce action estimate |
Source code in jaxlatt/observables/stability.py
generate_stability_report(phi, m, lambda_, dx)
Generate comprehensive stability analysis report.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi
|
Array
|
Scalar field configuration. |
required |
m
|
float
|
Mass parameter. |
required |
lambda_
|
float
|
Self-coupling. |
required |
dx
|
float
|
Lattice spacing. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, float]
|
Dictionary combining mass-matrix statistics, tachyonic-mode diagnostics, |
dict[str, float]
|
and symmetry-breaking indicators. |