Skip to content

Commit 6ceec54

Browse files
authored
feat: Laplace-Runge-Lenz vector (#947)
* refactor: positionOperator * feat: (regularized) radius operator * feat: (regularized) LRL vector * feat: radius op commutators * feat: commute * minor changes * feat: LRL vector, commutators and square * golf + removing "simp only"s * minor clean-up * improved comments * [H,A] sorry free * rpow name change * linter fixes * linter fixes v2 * naming improvements * todo: normRegularizedPow
1 parent 9b240de commit 6ceec54

File tree

7 files changed

+1214
-231
lines changed

7 files changed

+1214
-231
lines changed

PhysLean.lean

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ import PhysLean.QFT.QED.AnomalyCancellation.Odd.Parameterization
226226
import PhysLean.QFT.QED.AnomalyCancellation.Permutations
227227
import PhysLean.QFT.QED.AnomalyCancellation.Sorts
228228
import PhysLean.QFT.QED.AnomalyCancellation.VectorLike
229+
import PhysLean.QuantumMechanics.DDimensions.Hydrogen.Basic
230+
import PhysLean.QuantumMechanics.DDimensions.Hydrogen.LaplaceRungeLenzVector
229231
import PhysLean.QuantumMechanics.DDimensions.Operators.AngularMomentum
230232
import PhysLean.QuantumMechanics.DDimensions.Operators.Commutation
231233
import PhysLean.QuantumMechanics.DDimensions.Operators.Momentum

PhysLean/Mathematics/KroneckerDelta.lean

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,25 @@ import PhysLean.Meta.TODO.Basic
99
1010
# Kronecker delta
1111
12-
This file defines compact notation for the Kronecker delta, `δ[i,j] ≔ if (i = j) then 1 else 0`.
12+
This file defines the Kronecker delta, `δ[i,j] ≔ if (i = j) then 1 else 0`.
1313
1414
-/
1515
TODO "YVABB" "Build functionality for working with sums involving Kronecker deltas."
1616

17-
1817
namespace KroneckerDelta
1918

2019
/-- The Kronecker delta function, `ite (i = j) 1 0`. -/
21-
def kronecker_delta [Ring R] (i j : Fin d) : R := if (i = j) then 1 else 0
20+
def kroneckerDelta [Ring R] (i j : Fin d) : R := if (i = j) then 1 else 0
21+
22+
@[inherit_doc kroneckerDelta]
23+
macro "δ[" i:term "," j:term "]" : term => `(kroneckerDelta $i $j)
24+
25+
lemma kroneckerDelta_symm [Ring R] (i j : Fin d) :
26+
kroneckerDelta (R := R) i j = kroneckerDelta j i :=
27+
ite_cond_congr (Eq.propIntro Eq.symm Eq.symm)
2228

23-
@[inherit_doc kronecker_delta]
24-
macro "δ[" i:term "," j:term "]" : term => `(kronecker_delta $i $j)
29+
lemma kroneckerDelta_self [Ring R] : ∀ i : Fin d, kroneckerDelta (R := R) i i = 1 := by
30+
intro i
31+
exact if_pos rfl
2532

2633
end KroneckerDelta
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/-
2+
Copyright (c) 2026 Gregory J. Loges. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Gregory J. Loges
5+
-/
6+
import PhysLean.QuantumMechanics.DDimensions.Operators.Momentum
7+
import PhysLean.QuantumMechanics.DDimensions.Operators.Position
8+
/-!
9+
10+
# Hydrogen atom
11+
12+
This module introduces the `d`-dimensional hydrogen atom with `1/r` potential.
13+
14+
In addition to the dimension `d`, the quantum mechanical system is characterized by
15+
a mass `m > 0` and constant `k` appearing in the potential `V = -k/r`.
16+
The standard hydrogen atom has `d=3`, `m = mₑmₚ/(mₑ + mₚ) ≈ mₑ` and `k = e²/4πε₀`.
17+
18+
The potential `V = -k/r` is singular at the origin. To address this we define a regularized
19+
Hamiltonian in which the potential is replaced by `-k(r(ε)⁻¹ + ½ε²r(ε)⁻³)`, where
20+
`r(ε)² = ‖x‖² + ε²`. The `ε²/r³` term limits to the zero distribution for `ε → 0`
21+
but is convenient to include for two reasons:
22+
- It improves the convergence: `r(ε)⁻¹ + ½ε²r(ε)⁻³ = r⁻¹(1 + O(ε⁴/r⁴))` with no `O(ε²/r²)` term.
23+
- It is what appears in the commutators of the (regularized) LRL vector components.
24+
25+
-/
26+
27+
namespace QuantumMechanics
28+
open SchwartzMap
29+
30+
/-- A hydrogen atom is characterized by the number of spatial dimensions `d`,
31+
the mass `m` and the coefficient `k` for the `1/r` potential. -/
32+
structure HydrogenAtom where
33+
/-- Number of spatial dimensions -/
34+
d : ℕ
35+
36+
/-- Mass (positive) -/
37+
m : ℝ
38+
hm : 0 < m
39+
40+
/-- Coefficient in potential (positive for attractive) -/
41+
k : ℝ
42+
43+
namespace HydrogenAtom
44+
noncomputable section
45+
46+
variable (H : HydrogenAtom)
47+
48+
@[simp]
49+
lemma m_ne_zero : H.m ≠ 0 := by linarith [H.hm]
50+
51+
/-- The hydrogen atom Hamiltonian regularized by `ε > 0` is defined to be
52+
`𝐇(ε) ≔ (2m)⁻¹𝐩² - k(𝐫(ε)⁻¹ + ½ε²𝐫(ε)⁻³)`. -/
53+
def hamiltonianReg (ε : ℝ) : 𝓢(Space H.d, ℂ) →L[ℂ] 𝓢(Space H.d, ℂ) :=
54+
(2 * H.m)⁻¹ • 𝐩² - H.k • (𝐫[ε,-1] + (2⁻¹ * ε ^ 2) • 𝐫[ε,-3])
55+
56+
end
57+
end HydrogenAtom
58+
end QuantumMechanics

0 commit comments

Comments
 (0)