Skip to content

Commit fb1ba14

Browse files
authored
Add all-dimensional fundamental solution theorem (#1172)
1 parent 59d11a0 commit fb1ba14

3 files changed

Lines changed: 71 additions & 4 deletions

File tree

Physlib/SpaceAndTime/Space/Derivatives/Grad.lean

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ of the input function with respect to each spatial coordinate.
4848
- B.3. The gradient as a sum over basis vectors
4949
- B.4. The underlying function of the gradient distribution
5050
- B.5. The gradient applied to a Schwartz function
51-
- B.6. The gradident of a Schwartz map
51+
- B.6. Gradient of constant distributions
52+
- B.7. The gradient of a Schwartz map
5253
5354
## iv. References
5455
@@ -609,7 +610,20 @@ lemma distGrad_apply {d} (f : (Space d) →d[ℝ] ℝ) (ε : 𝓢(Space d, ℝ))
609610

610611
/-!
611612
612-
### B.6. The gradident of a Schwartz map
613+
### B.6. Gradient of constant distributions
614+
615+
-/
616+
617+
@[simp]
618+
lemma distGrad_const {d} (c : ℝ) :
619+
∇ᵈ (Distribution.const ℝ (Space d) c) = 0 := by
620+
ext ε i
621+
simp only [distGrad_apply, distDeriv_apply]
622+
simp [Distribution.fderivD_const]
623+
624+
/-!
625+
626+
### B.7. The gradient of a Schwartz map
613627
614628
-/
615629

Physlib/SpaceAndTime/Space/Derivatives/Laplacian.lean

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,15 @@ functions defined on `Space d`.
1919
2020
- `laplacian` : The Laplacian operator on scalar functions on `Space d`.
2121
- `laplacianVec` : The Laplacian operator on vector-valued functions on `Space d`.
22+
- `distLaplacian` : The Laplacian operator on distributions on `Space d`.
2223
2324
## iii. Table of contents
2425
2526
- A. Laplacian on functions to ℝ
2627
- A.1. Relation between laplacian and divergence of gradient
2728
- B. Laplacian on vector valued functions
29+
- C. Laplacian of distributions
30+
- C.1. Laplacian of constant distributions
2831
2932
## iv. References
3033
@@ -75,6 +78,12 @@ scoped[Space] notation "Δᵥ" => laplacianVec
7578

7679
open Physlib Distribution
7780

81+
/-!
82+
83+
## C. Laplacian of distributions
84+
85+
-/
86+
7887
/-- The distributional `distLaplacian` operator. -/
7988
noncomputable def distLaplacian {d} :
8089
((Space d) →d[ℝ] ℝ) →ₗ[ℝ] (Space d) →d[ℝ] ℝ :=
@@ -83,4 +92,15 @@ noncomputable def distLaplacian {d} :
8392
@[inherit_doc distLaplacian]
8493
scoped[Space] notation "Δᵈ" => distLaplacian
8594

95+
/-!
96+
97+
### C.1. Laplacian of constant distributions
98+
99+
-/
100+
101+
@[simp]
102+
lemma distLaplacian_const {d : ℕ} (c : ℝ) :
103+
Δᵈ (Distribution.const ℝ (Space d) c) = 0 := by
104+
simp [distLaplacian, distGrad_const]
105+
86106
end Space

Physlib/SpaceAndTime/Space/Norm.lean

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ We use properties of this power series to prove various results about distributi
3535
of the norm.
3636
- `distDiv_inv_pow_eq_dim` : The divergence of the distribution defined by the
3737
inverse power of the norm proportional to the Dirac delta distribution.
38-
- `distLaplacian_fundamentalSolution_norm_zpow` : The Laplacian of the fundamental solution
39-
power of the norm.
38+
- `distLaplacian_fundamentalSolution_norm_zpow_eq` : The Laplacian of the fundamental
39+
solution power of the norm.
4040
4141
## iii. Table of contents
4242
@@ -1464,4 +1464,37 @@ lemma distLaplacian_fundamentalSolution_norm_zpow {d : ℕ} :
14641464
rw [smul_smul]
14651465
ring_nf
14661466

1467+
/-- Version of `distLaplacian_fundamentalSolution_norm_zpow` stated using the dimension of
1468+
the ambient space. -/
1469+
lemma distLaplacian_fundamentalSolution_norm_zpow_of_three_le {d : ℕ} (hd : 3 ≤ d) :
1470+
Δᵈ (distOfFunction (fun x : Space d => ‖x‖ ^ ((2 : ℤ) - (d : ℤ)))
1471+
(IsDistBounded.pow ((2 : ℤ) - (d : ℤ)) (by omega))) =
1472+
(((2 : ℝ) - (d : ℝ)) * (d : ℝ) *
1473+
(volume (α := Space d)).real (Metric.ball 0 1)) • diracDelta ℝ 0 := by
1474+
rcases d with _ | _ | _ | d
1475+
· omega
1476+
· omega
1477+
· omega
1478+
· convert distLaplacian_fundamentalSolution_norm_zpow (d := d) using 1
1479+
ext x
1480+
simp only [ContinuousLinearMap.coe_smul', Pi.smul_apply, smul_eq_mul]
1481+
simp only [Nat.succ_eq_add_one, Nat.cast_add, Nat.cast_one]
1482+
ring_nf
1483+
1484+
/-- Version of `distLaplacian_fundamentalSolution_norm_zpow` stated for every dimension.
1485+
In dimensions less than three, the exponent is zero and both sides are zero. -/
1486+
lemma distLaplacian_fundamentalSolution_norm_zpow_eq {d : ℕ} :
1487+
Δᵈ (distOfFunction (fun x : Space d => ‖x‖ ^ (- ((d - 2 : ℕ) : ℤ)))
1488+
(IsDistBounded.pow _ (by grind))) =
1489+
(- ((d - 2 : ℕ) : ℝ) * (d : ℝ) *
1490+
(volume (α := Space d)).real (Metric.ball 0 1)) • diracDelta ℝ 0 := by
1491+
by_cases hd : d < 3
1492+
· have hdim : d - 2 = 0 := by omega
1493+
simp [hdim]
1494+
exact distLaplacian_const 1
1495+
· convert distLaplacian_fundamentalSolution_norm_zpow_of_three_le
1496+
(d := d) (by grind) using 4 <;>
1497+
rw [Nat.cast_sub (by omega : 2 ≤ d)] <;>
1498+
ring_nf
1499+
14671500
end Space

0 commit comments

Comments
 (0)