coordinate-system 7.0.0__cp313-cp313-win_amd64.whl → 7.0.2__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- coordinate_system/__init__.py +102 -61
- coordinate_system/complex_geometric_physics.py +177 -178
- coordinate_system/coordinate_system.cp313-win_amd64.pyd +0 -0
- coordinate_system/curve_interpolation.py +4 -3
- coordinate_system/differential_geometry.py +81 -1
- coordinate_system/spectral_geometry.py +1169 -1185
- coordinate_system/u3_frame.py +25 -3
- coordinate_system/visualization.py +4 -3
- {coordinate_system-7.0.0.dist-info → coordinate_system-7.0.2.dist-info}/METADATA +36 -67
- coordinate_system-7.0.2.dist-info/RECORD +13 -0
- coordinate_system-7.0.0.dist-info/RECORD +0 -13
- {coordinate_system-7.0.0.dist-info → coordinate_system-7.0.2.dist-info}/LICENSE +0 -0
- {coordinate_system-7.0.0.dist-info → coordinate_system-7.0.2.dist-info}/WHEEL +0 -0
- {coordinate_system-7.0.0.dist-info → coordinate_system-7.0.2.dist-info}/top_level.txt +0 -0
|
@@ -1,41 +1,56 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Complex Geometric Physics - Unified Framework
|
|
3
|
-
================================================================================
|
|
4
|
-
|
|
5
|
-
Implementation of the "Christmas Equation" and Complex Frame Unified Theory (CFUT)
|
|
6
|
-
|
|
7
|
-
The Christmas Equation (
|
|
8
|
-
M_P
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
- T̂_
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
- Real
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
"""
|
|
2
|
+
Complex Geometric Physics - Unified Framework
|
|
3
|
+
================================================================================
|
|
4
|
+
|
|
5
|
+
Implementation of the "Christmas Equation" and Complex Frame Unified Theory (CFUT).
|
|
6
|
+
|
|
7
|
+
The Christmas Equation (complete complex form):
|
|
8
|
+
(M_P^2 / 2) Ĝ_{μν}[U] + (λ / (32π^2)) ∇̂_{(μ} K̄_{ν)}[U]
|
|
9
|
+
= T̂_{μν}^{(top)}[U] + T̂_{μν}^{(mat)}
|
|
10
|
+
|
|
11
|
+
Where:
|
|
12
|
+
- Ĝ_{μν}: Einstein tensor from complex frame U(x)
|
|
13
|
+
- K̄_μ: Chern-Simons current (topological)
|
|
14
|
+
- T̂_{μν}^{(top)}: Topological energy-momentum tensor
|
|
15
|
+
- T̂_{μν}^{(mat)}: Matter energy-momentum tensor
|
|
16
|
+
|
|
17
|
+
Core Theory:
|
|
18
|
+
- Universe as U(3) complex frame field: U(x) ∈ U(3)
|
|
19
|
+
- Real-imaginary decomposition: U = U^(R) + i U^(I)
|
|
20
|
+
- Real part: geometric properties (metric, curvature, spacetime)
|
|
21
|
+
- Imaginary part: topological properties (phase winding, gauge symmetry)
|
|
22
|
+
|
|
23
|
+
Physical Interpretation:
|
|
24
|
+
- Geometry + Topology = Complex Matter + Topological Force
|
|
25
|
+
- Unifies gravity, gauge fields, dark matter, and topology
|
|
26
|
+
|
|
27
|
+
**Authors:** Pan Guojun
|
|
28
|
+
Date: 2025-01-14
|
|
29
|
+
Version: 7.0.1
|
|
30
|
+
**DOI:** https://doi.org/10.5281/zenodo.14435613
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
__version__ = '7.0.1'
|
|
32
34
|
|
|
33
35
|
import numpy as np
|
|
34
36
|
from typing import Tuple, Optional, Callable, Dict, Any
|
|
35
37
|
from dataclasses import dataclass
|
|
36
38
|
import warnings
|
|
37
39
|
|
|
38
|
-
# Physical constants (
|
|
40
|
+
# Physical constants (SI units for precision calculations)
|
|
41
|
+
HBAR_SI = 1.054571817e-34 # Reduced Planck constant [J·s]
|
|
42
|
+
H_PLANCK_SI = 6.62607015e-34 # Planck constant [J·s]
|
|
43
|
+
C_LIGHT_SI = 2.99792458e8 # Speed of light [m/s]
|
|
44
|
+
E_CHARGE_SI = 1.602176634e-19 # Elementary charge [C]
|
|
45
|
+
EPSILON_0_SI = 8.8541878128e-12 # Vacuum permittivity [F/m]
|
|
46
|
+
M_ELECTRON_SI = 9.1093837015e-31 # Electron mass [kg]
|
|
47
|
+
|
|
48
|
+
# Derived constants
|
|
49
|
+
ALPHA_FS = E_CHARGE_SI**2 / (4 * np.pi * EPSILON_0_SI * HBAR_SI * C_LIGHT_SI) # Fine structure constant ≈ 1/137
|
|
50
|
+
LAMBDA_C = H_PLANCK_SI / (M_ELECTRON_SI * C_LIGHT_SI) # Compton wavelength [m]
|
|
51
|
+
ALPHA_PROJECTION = ALPHA_FS * LAMBDA_C # Projection factor α ≈ 1.77×10⁻¹⁴ m
|
|
52
|
+
|
|
53
|
+
# Physical constants (natural units: ℏ = c = 1)
|
|
39
54
|
M_PLANCK = 2.435e18 # Planck mass [GeV]
|
|
40
55
|
LAMBDA_TOPO = 0.1008 # Topological coupling constant (from theory)
|
|
41
56
|
HBAR = 1.0 # Reduced Planck constant (natural units)
|
|
@@ -53,77 +68,33 @@ except ImportError:
|
|
|
53
68
|
FieldStrength = None
|
|
54
69
|
warnings.warn("U3Frame not available. Some features will be limited.")
|
|
55
70
|
|
|
71
|
+
# Compatibility alias for older APIs.
|
|
72
|
+
ComplexFrame = U3Frame
|
|
73
|
+
|
|
56
74
|
|
|
57
75
|
# ============================================================
|
|
58
76
|
# Core Data Structures
|
|
59
77
|
# ============================================================
|
|
60
78
|
|
|
61
79
|
@dataclass
|
|
62
|
-
class
|
|
63
|
-
"""
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"""
|
|
71
|
-
real_part: np.ndarray #
|
|
72
|
-
imag_part: np.ndarray #
|
|
73
|
-
position: Optional[np.ndarray] = None # (x, y, z, t)
|
|
80
|
+
class EnergyMomentumTensor:
|
|
81
|
+
"""
|
|
82
|
+
Energy-momentum tensor T_{μν}
|
|
83
|
+
|
|
84
|
+
Decomposition:
|
|
85
|
+
T_{μν} = T_{μν}^{(R)} + i T_{μν}^{(I)}
|
|
86
|
+
- Real part: mass-energy density
|
|
87
|
+
- Imaginary part: charge current
|
|
88
|
+
"""
|
|
89
|
+
real_part: np.ndarray # 4×4 real symmetric tensor
|
|
90
|
+
imag_part: np.ndarray # 4×4 real tensor
|
|
74
91
|
|
|
75
92
|
def __post_init__(self):
|
|
76
|
-
"""Validate
|
|
77
|
-
if self.real_part.shape != (
|
|
78
|
-
raise ValueError(f"Real part must be
|
|
79
|
-
if self.imag_part.shape != (
|
|
80
|
-
raise ValueError(f"Imaginary part must be
|
|
81
|
-
|
|
82
|
-
@property
|
|
83
|
-
def complex_matrix(self) -> np.ndarray:
|
|
84
|
-
"""Full complex matrix U = U^(R) + iU^(I)"""
|
|
85
|
-
return self.real_part + 1j * self.imag_part
|
|
86
|
-
|
|
87
|
-
@property
|
|
88
|
-
def metric_tensor(self) -> np.ndarray:
|
|
89
|
-
"""
|
|
90
|
-
Metric tensor from real part: g_μν = U^(R)ᵀ U^(R)
|
|
91
|
-
|
|
92
|
-
Returns:
|
|
93
|
-
3×3 metric tensor
|
|
94
|
-
"""
|
|
95
|
-
return self.real_part.T @ self.real_part
|
|
96
|
-
|
|
97
|
-
@property
|
|
98
|
-
def gauge_potential(self) -> np.ndarray:
|
|
99
|
-
"""
|
|
100
|
-
Gauge potential from imaginary part: A_μ ∝ U^(I)
|
|
101
|
-
|
|
102
|
-
Returns:
|
|
103
|
-
3×3 anti-Hermitian matrix
|
|
104
|
-
"""
|
|
105
|
-
return 1j * self.imag_part
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
@dataclass
|
|
109
|
-
class EnergyMomentumTensor:
|
|
110
|
-
"""
|
|
111
|
-
Energy-momentum tensor T_μν
|
|
112
|
-
|
|
113
|
-
Decomposition:
|
|
114
|
-
T_μν = T_μν^(R) + iT_μν^(I)
|
|
115
|
-
- Real part: mass-energy density
|
|
116
|
-
- Imaginary part: charge current
|
|
117
|
-
"""
|
|
118
|
-
real_part: np.ndarray # 4×4 real symmetric tensor
|
|
119
|
-
imag_part: np.ndarray # 4×4 real tensor
|
|
120
|
-
|
|
121
|
-
def __post_init__(self):
|
|
122
|
-
"""Validate tensor structure"""
|
|
123
|
-
if self.real_part.shape != (4, 4):
|
|
124
|
-
raise ValueError(f"Real part must be 4×4, got {self.real_part.shape}")
|
|
125
|
-
if self.imag_part.shape != (4, 4):
|
|
126
|
-
raise ValueError(f"Imaginary part must be 4×4, got {self.imag_part.shape}")
|
|
93
|
+
"""Validate tensor structure"""
|
|
94
|
+
if self.real_part.shape != (4, 4):
|
|
95
|
+
raise ValueError(f"Real part must be 4×4, got {self.real_part.shape}")
|
|
96
|
+
if self.imag_part.shape != (4, 4):
|
|
97
|
+
raise ValueError(f"Imaginary part must be 4×4, got {self.imag_part.shape}")
|
|
127
98
|
|
|
128
99
|
@property
|
|
129
100
|
def complex_tensor(self) -> np.ndarray:
|
|
@@ -143,43 +114,47 @@ class EnergyMomentumTensor:
|
|
|
143
114
|
# Christmas Equation Implementation
|
|
144
115
|
# ============================================================
|
|
145
116
|
|
|
146
|
-
class ChristmasEquation:
|
|
147
|
-
"""
|
|
148
|
-
The Christmas Equation -
|
|
149
|
-
|
|
150
|
-
Complete form:
|
|
151
|
-
M_P
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
117
|
+
class ChristmasEquation:
|
|
118
|
+
"""
|
|
119
|
+
The Christmas Equation - unified field equation
|
|
120
|
+
|
|
121
|
+
Complete form:
|
|
122
|
+
(M_P^2 / 2) Ĝ_{μν}[U] + (λ / (32π^2)) ∇̂_{(μ} K̄_{ν)}[U]
|
|
123
|
+
= T̂_{μν}^{(top)}[U] + T̂_{μν}^{(mat)}
|
|
124
|
+
|
|
125
|
+
Components:
|
|
126
|
+
- Left side: Geometry + Topology
|
|
127
|
+
- Right side: Topological source + Matter source
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
def __init__(self,
|
|
131
|
+
planck_mass: float = M_PLANCK,
|
|
132
|
+
topo_coupling: float = LAMBDA_TOPO,
|
|
133
|
+
projection_factor: float = ALPHA_PROJECTION):
|
|
134
|
+
"""
|
|
135
|
+
Initialize Christmas Equation solver.
|
|
136
|
+
|
|
137
|
+
Args:
|
|
138
|
+
planck_mass: Planck mass M_P [GeV]
|
|
139
|
+
topo_coupling: Topological coupling constant λ
|
|
140
|
+
projection_factor: Projection factor α = α_fs × λ_c [m]
|
|
141
|
+
"""
|
|
168
142
|
self.M_P = planck_mass
|
|
169
143
|
self.lambda_topo = topo_coupling
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
144
|
+
self.alpha_proj = projection_factor
|
|
145
|
+
|
|
146
|
+
def einstein_tensor(self, frame: U3Frame) -> np.ndarray:
|
|
147
|
+
"""
|
|
148
|
+
Compute Einstein tensor Ĝ_{μν} from complex frame.
|
|
149
|
+
|
|
150
|
+
Ĝ_{μν} = R_{μν} - (1/2) g_{μν} R
|
|
151
|
+
|
|
152
|
+
Args:
|
|
153
|
+
frame: Complex frame field U(x)
|
|
154
|
+
|
|
155
|
+
Returns:
|
|
156
|
+
3×3 Einstein tensor (spatial part)
|
|
157
|
+
"""
|
|
183
158
|
# Extract metric from real part
|
|
184
159
|
g = frame.metric_tensor
|
|
185
160
|
|
|
@@ -196,14 +171,14 @@ class ChristmasEquation:
|
|
|
196
171
|
|
|
197
172
|
return G_tensor
|
|
198
173
|
|
|
199
|
-
def chern_simons_current(self, frame:
|
|
200
|
-
"""
|
|
201
|
-
Compute Chern-Simons current K̄_μ from imaginary part
|
|
202
|
-
|
|
203
|
-
K̄_μ = ε_μνρσ Tr(A^ν F
|
|
204
|
-
|
|
205
|
-
Args:
|
|
206
|
-
frame: Complex frame field U(x)
|
|
174
|
+
def chern_simons_current(self, frame: U3Frame) -> np.ndarray:
|
|
175
|
+
"""
|
|
176
|
+
Compute Chern-Simons current K̄_μ from imaginary part.
|
|
177
|
+
|
|
178
|
+
K̄_μ = ε_{μνρσ} Tr(A^ν F^{ρσ} - (2/3) A^ν A^ρ A^σ)
|
|
179
|
+
|
|
180
|
+
Args:
|
|
181
|
+
frame: Complex frame field U(x)
|
|
207
182
|
|
|
208
183
|
Returns:
|
|
209
184
|
4-vector Chern-Simons current
|
|
@@ -223,9 +198,9 @@ class ChristmasEquation:
|
|
|
223
198
|
|
|
224
199
|
return K_current
|
|
225
200
|
|
|
226
|
-
def topological_energy_momentum(self, frame:
|
|
227
|
-
"""
|
|
228
|
-
Compute topological energy-momentum tensor T̂_
|
|
201
|
+
def topological_energy_momentum(self, frame: U3Frame) -> EnergyMomentumTensor:
|
|
202
|
+
"""
|
|
203
|
+
Compute topological energy-momentum tensor T̂_{μν}^{(top)}.
|
|
229
204
|
|
|
230
205
|
From topological defects (instantons, vortices)
|
|
231
206
|
|
|
@@ -252,13 +227,14 @@ class ChristmasEquation:
|
|
|
252
227
|
|
|
253
228
|
return EnergyMomentumTensor(T_real, T_imag)
|
|
254
229
|
|
|
255
|
-
def solve_christmas_equation(self,
|
|
256
|
-
frame:
|
|
257
|
-
matter_tensor: EnergyMomentumTensor) -> Dict[str, Any]:
|
|
258
|
-
"""
|
|
259
|
-
Solve the Christmas Equation
|
|
260
|
-
|
|
261
|
-
M_P
|
|
230
|
+
def solve_christmas_equation(self,
|
|
231
|
+
frame: U3Frame,
|
|
232
|
+
matter_tensor: EnergyMomentumTensor) -> Dict[str, Any]:
|
|
233
|
+
"""
|
|
234
|
+
Solve the Christmas Equation.
|
|
235
|
+
|
|
236
|
+
(M_P^2 / 2) Ĝ_{μν} + (λ / (32π^2)) ∇̂_{(μ} K̄_{ν)}
|
|
237
|
+
= T̂_{μν}^{(top)} + T̂_{μν}^{(mat)}
|
|
262
238
|
|
|
263
239
|
Args:
|
|
264
240
|
frame: Complex frame field U(x)
|
|
@@ -301,12 +277,12 @@ class ChristmasEquation:
|
|
|
301
277
|
|
|
302
278
|
# -------------------- Internal Helper Methods --------------------
|
|
303
279
|
|
|
304
|
-
def _compute_ricci_tensor(self, frame:
|
|
280
|
+
def _compute_ricci_tensor(self, frame: U3Frame) -> np.ndarray:
|
|
305
281
|
"""
|
|
306
282
|
Compute Ricci tensor from frame (simplified)
|
|
307
283
|
|
|
308
|
-
In full implementation, use intrinsic gradient method:
|
|
309
|
-
R_μν = [G_μ, G_ν] where G_μ = ∂_μ log U
|
|
284
|
+
In full implementation, use intrinsic gradient method:
|
|
285
|
+
R_{μν} = [G_μ, G_ν] where G_μ = ∂_μ log U
|
|
310
286
|
|
|
311
287
|
Args:
|
|
312
288
|
frame: Complex frame field
|
|
@@ -323,9 +299,9 @@ class ChristmasEquation:
|
|
|
323
299
|
|
|
324
300
|
return R
|
|
325
301
|
|
|
326
|
-
def _compute_field_strength(self, frame:
|
|
302
|
+
def _compute_field_strength(self, frame: U3Frame) -> np.ndarray:
|
|
327
303
|
"""
|
|
328
|
-
Compute field strength tensor F_μν = ∂_μ A_ν - ∂_ν A_μ + [A_μ, A_ν]
|
|
304
|
+
Compute field strength tensor F_{μν} = ∂_μ A_ν - ∂_ν A_μ + [A_μ, A_ν]
|
|
329
305
|
|
|
330
306
|
Args:
|
|
331
307
|
frame: Complex frame field
|
|
@@ -335,14 +311,14 @@ class ChristmasEquation:
|
|
|
335
311
|
"""
|
|
336
312
|
A = frame.gauge_potential
|
|
337
313
|
|
|
338
|
-
# Simplified: F
|
|
314
|
+
# Simplified: F ~= [A, A]
|
|
339
315
|
F = A @ A - A.T @ A.T
|
|
340
316
|
|
|
341
317
|
return F
|
|
342
318
|
|
|
343
|
-
def _compute_topological_charge(self, frame:
|
|
319
|
+
def _compute_topological_charge(self, frame: U3Frame) -> float:
|
|
344
320
|
"""
|
|
345
|
-
Compute topological charge Q = (1/32
|
|
321
|
+
Compute topological charge Q = (1/(32π^2)) ∫ Tr(F ∧ F)
|
|
346
322
|
|
|
347
323
|
Args:
|
|
348
324
|
frame: Complex frame field
|
|
@@ -362,52 +338,64 @@ class ChristmasEquation:
|
|
|
362
338
|
# Utility Functions
|
|
363
339
|
# ============================================================
|
|
364
340
|
|
|
365
|
-
def create_flat_spacetime_frame(position: Optional[np.ndarray] = None) ->
|
|
341
|
+
def create_flat_spacetime_frame(position: Optional[np.ndarray] = None) -> U3Frame:
|
|
366
342
|
"""
|
|
367
|
-
Create a flat spacetime
|
|
343
|
+
Create a flat spacetime U(3) frame (Minkowski space)
|
|
368
344
|
|
|
369
345
|
Args:
|
|
370
|
-
position: Spacetime position (x, y, z, t)
|
|
346
|
+
position: Spacetime position (x, y, z, t) [currently ignored]
|
|
371
347
|
|
|
372
348
|
Returns:
|
|
373
|
-
|
|
349
|
+
U3Frame with flat metric
|
|
374
350
|
"""
|
|
375
351
|
real_part = np.eye(3) # Flat spatial metric
|
|
376
352
|
imag_part = np.zeros((3, 3)) # No gauge field
|
|
377
353
|
|
|
378
|
-
|
|
354
|
+
# Convert to U3Frame: extract column vectors
|
|
355
|
+
complex_matrix = real_part + 1j * imag_part
|
|
356
|
+
e1 = complex_matrix[:, 0]
|
|
357
|
+
e2 = complex_matrix[:, 1]
|
|
358
|
+
e3 = complex_matrix[:, 2]
|
|
359
|
+
|
|
360
|
+
return U3Frame(e1, e2, e3, ensure_unitary=True)
|
|
379
361
|
|
|
380
362
|
|
|
381
363
|
def create_curved_spacetime_frame(curvature: float = 0.1,
|
|
382
|
-
position: Optional[np.ndarray] = None) ->
|
|
364
|
+
position: Optional[np.ndarray] = None) -> U3Frame:
|
|
383
365
|
"""
|
|
384
|
-
Create a curved spacetime
|
|
366
|
+
Create a curved spacetime U(3) frame
|
|
385
367
|
|
|
386
368
|
Args:
|
|
387
369
|
curvature: Curvature parameter
|
|
388
|
-
position: Spacetime position (x, y, z, t)
|
|
370
|
+
position: Spacetime position (x, y, z, t) [currently ignored]
|
|
389
371
|
|
|
390
372
|
Returns:
|
|
391
|
-
|
|
373
|
+
U3Frame with curved metric
|
|
392
374
|
"""
|
|
393
375
|
# Simple curved metric (spherical-like)
|
|
394
376
|
real_part = np.diag([1.0 + curvature, 1.0 + curvature, 1.0])
|
|
395
377
|
imag_part = np.zeros((3, 3))
|
|
396
378
|
|
|
397
|
-
|
|
379
|
+
# Convert to U3Frame: extract column vectors
|
|
380
|
+
complex_matrix = real_part + 1j * imag_part
|
|
381
|
+
e1 = complex_matrix[:, 0]
|
|
382
|
+
e2 = complex_matrix[:, 1]
|
|
383
|
+
e3 = complex_matrix[:, 2]
|
|
384
|
+
|
|
385
|
+
return U3Frame(e1, e2, e3, ensure_unitary=True)
|
|
398
386
|
|
|
399
387
|
|
|
400
388
|
def create_gauge_field_frame(field_strength: float = 0.1,
|
|
401
|
-
position: Optional[np.ndarray] = None) ->
|
|
389
|
+
position: Optional[np.ndarray] = None) -> U3Frame:
|
|
402
390
|
"""
|
|
403
|
-
Create a
|
|
391
|
+
Create a U(3) frame with gauge field
|
|
404
392
|
|
|
405
393
|
Args:
|
|
406
394
|
field_strength: Gauge field strength
|
|
407
|
-
position: Spacetime position (x, y, z, t)
|
|
395
|
+
position: Spacetime position (x, y, z, t) [currently ignored]
|
|
408
396
|
|
|
409
397
|
Returns:
|
|
410
|
-
|
|
398
|
+
U3Frame with gauge field
|
|
411
399
|
"""
|
|
412
400
|
real_part = np.eye(3) # Flat spatial metric
|
|
413
401
|
imag_part = np.array([
|
|
@@ -416,7 +404,13 @@ def create_gauge_field_frame(field_strength: float = 0.1,
|
|
|
416
404
|
[0, 0, 0]
|
|
417
405
|
]) # Non-trivial gauge field
|
|
418
406
|
|
|
419
|
-
|
|
407
|
+
# Convert to U3Frame: extract column vectors
|
|
408
|
+
complex_matrix = real_part + 1j * imag_part
|
|
409
|
+
e1 = complex_matrix[:, 0]
|
|
410
|
+
e2 = complex_matrix[:, 1]
|
|
411
|
+
e3 = complex_matrix[:, 2]
|
|
412
|
+
|
|
413
|
+
return U3Frame(e1, e2, e3, ensure_unitary=True)
|
|
420
414
|
|
|
421
415
|
|
|
422
416
|
# ============================================================
|
|
@@ -425,6 +419,7 @@ def create_gauge_field_frame(field_strength: float = 0.1,
|
|
|
425
419
|
|
|
426
420
|
__all__ = [
|
|
427
421
|
'ComplexFrame',
|
|
422
|
+
'U3Frame',
|
|
428
423
|
'EnergyMomentumTensor',
|
|
429
424
|
'ChristmasEquation',
|
|
430
425
|
'create_flat_spacetime_frame',
|
|
@@ -432,6 +427,9 @@ __all__ = [
|
|
|
432
427
|
'create_gauge_field_frame',
|
|
433
428
|
'M_PLANCK',
|
|
434
429
|
'LAMBDA_TOPO',
|
|
430
|
+
'ALPHA_FS',
|
|
431
|
+
'LAMBDA_C',
|
|
432
|
+
'ALPHA_PROJECTION',
|
|
435
433
|
]
|
|
436
434
|
|
|
437
435
|
|
|
@@ -467,7 +465,7 @@ def demonstrate():
|
|
|
467
465
|
|
|
468
466
|
solver = ChristmasEquation()
|
|
469
467
|
print(f" Planck mass M_P: {solver.M_P:.3e} GeV")
|
|
470
|
-
print(f" Topological coupling λ: {solver.lambda_topo:.4f}")
|
|
468
|
+
print(f" Topological coupling λ: {solver.lambda_topo:.4f}")
|
|
471
469
|
|
|
472
470
|
# 3. Compute geometric quantities
|
|
473
471
|
print("\n3. Geometric Quantities")
|
|
@@ -506,12 +504,13 @@ def demonstrate():
|
|
|
506
504
|
|
|
507
505
|
# 6. Theory summary
|
|
508
506
|
print("\n" + "=" * 80)
|
|
509
|
-
print("Core Theory Summary:")
|
|
510
|
-
print("
|
|
511
|
-
|
|
512
|
-
print("
|
|
513
|
-
print("
|
|
514
|
-
print("
|
|
507
|
+
print("Core Theory Summary:")
|
|
508
|
+
print(" - Christmas Equation: (M_P^2 / 2) Ĝ_{μν} + (λ / (32π^2)) ∇̂_{(μ} K̄_{ν)}"
|
|
509
|
+
" = T̂_{μν}^{(top)} + T̂_{μν}^{(mat)}")
|
|
510
|
+
print(" - U(x) = U^(R)(x) + iU^(I)(x) [Complex frame decomposition]")
|
|
511
|
+
print(" - Real part: Geometry (metric, curvature, spacetime)")
|
|
512
|
+
print(" - Imaginary part: Topology (phase, gauge field, winding)")
|
|
513
|
+
print(" - Unifies: Gravity + Gauge fields + Dark matter + Topology")
|
|
515
514
|
print("=" * 80)
|
|
516
515
|
|
|
517
516
|
|
|
Binary file
|
|
@@ -12,9 +12,10 @@ Main Features:
|
|
|
12
12
|
- B-spline and frame field hybrid interpolation
|
|
13
13
|
- Curvature distribution analysis
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
Date: 2025-12-01
|
|
17
|
-
|
|
15
|
+
**Authors:** Pan Guojun
|
|
16
|
+
Date: 2025-12-01
|
|
17
|
+
**DOI:** https://doi.org/10.5281/zenodo.14435613
|
|
18
|
+
"""
|
|
18
19
|
|
|
19
20
|
import math
|
|
20
21
|
import numpy as np
|
|
@@ -12,8 +12,9 @@ Key Features:
|
|
|
12
12
|
- Classical curvature methods with high-order finite differences
|
|
13
13
|
- Gaussian, mean, principal, and Riemann curvatures
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**Authors:** Pan Guojun
|
|
16
16
|
Date: 2025-12-03
|
|
17
|
+
**DOI:** https://doi.org/10.5281/zenodo.14435613
|
|
17
18
|
"""
|
|
18
19
|
|
|
19
20
|
import math
|
|
@@ -910,6 +911,74 @@ def all_curvatures(
|
|
|
910
911
|
return compute_all_curvatures(surface, u, v, step_size)
|
|
911
912
|
|
|
912
913
|
|
|
914
|
+
# ============================================================
|
|
915
|
+
# Legacy / Compatibility Aliases
|
|
916
|
+
# ============================================================
|
|
917
|
+
|
|
918
|
+
class LieGroupCurvatureCalculator(IntrinsicGradientCurvatureCalculator):
|
|
919
|
+
"""Legacy alias for intrinsic gradient curvature calculator."""
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
def compute_curvature_tensor(
|
|
923
|
+
surface: Surface,
|
|
924
|
+
u: float,
|
|
925
|
+
v: float,
|
|
926
|
+
step_size: float = 1e-3
|
|
927
|
+
) -> float:
|
|
928
|
+
"""Legacy alias for compute_riemann_curvature."""
|
|
929
|
+
return compute_riemann_curvature(surface, u, v, step_size)
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
def gaussian_curvature_lie(
|
|
933
|
+
surface: Surface,
|
|
934
|
+
u: float,
|
|
935
|
+
v: float,
|
|
936
|
+
step_size: float = 1e-3
|
|
937
|
+
) -> float:
|
|
938
|
+
"""Legacy alias for intrinsic gradient Gaussian curvature."""
|
|
939
|
+
return compute_gaussian_curvature(surface, u, v, step_size)
|
|
940
|
+
|
|
941
|
+
|
|
942
|
+
def intrinsic_gradient_gaussian_curvature(
|
|
943
|
+
surface: Surface,
|
|
944
|
+
u: float,
|
|
945
|
+
v: float,
|
|
946
|
+
step_size: float = 1e-3
|
|
947
|
+
) -> float:
|
|
948
|
+
"""Legacy alias for intrinsic gradient Gaussian curvature."""
|
|
949
|
+
return compute_gaussian_curvature(surface, u, v, step_size)
|
|
950
|
+
|
|
951
|
+
|
|
952
|
+
def intrinsic_gradient_mean_curvature(
|
|
953
|
+
surface: Surface,
|
|
954
|
+
u: float,
|
|
955
|
+
v: float,
|
|
956
|
+
step_size: float = 1e-3
|
|
957
|
+
) -> float:
|
|
958
|
+
"""Legacy alias for intrinsic gradient mean curvature."""
|
|
959
|
+
return compute_mean_curvature(surface, u, v, step_size)
|
|
960
|
+
|
|
961
|
+
|
|
962
|
+
def intrinsic_gradient_principal_curvatures(
|
|
963
|
+
surface: Surface,
|
|
964
|
+
u: float,
|
|
965
|
+
v: float,
|
|
966
|
+
step_size: float = 1e-3
|
|
967
|
+
) -> Tuple[float, float]:
|
|
968
|
+
"""Legacy alias for intrinsic gradient principal curvatures."""
|
|
969
|
+
return principal_curvatures(surface, u, v, step_size)
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
def intrinsic_gradient_all_curvatures(
|
|
973
|
+
surface: Surface,
|
|
974
|
+
u: float,
|
|
975
|
+
v: float,
|
|
976
|
+
step_size: float = 1e-3
|
|
977
|
+
) -> Dict[str, Union[float, Tuple[float, float]]]:
|
|
978
|
+
"""Legacy alias for intrinsic gradient curvature set."""
|
|
979
|
+
return compute_all_curvatures(surface, u, v, step_size)
|
|
980
|
+
|
|
981
|
+
|
|
913
982
|
# ============================================================
|
|
914
983
|
# Method Comparison
|
|
915
984
|
# ============================================================
|
|
@@ -955,15 +1024,23 @@ __all__ = [
|
|
|
955
1024
|
'GradientResult',
|
|
956
1025
|
'IntrinsicGradientOperator',
|
|
957
1026
|
'IntrinsicGradientCurvatureCalculator',
|
|
1027
|
+
'LieGroupCurvatureCalculator',
|
|
958
1028
|
'CurvatureCalculator',
|
|
959
1029
|
|
|
960
1030
|
# Intrinsic gradient method functions (default)
|
|
961
1031
|
'compute_gaussian_curvature',
|
|
962
1032
|
'compute_mean_curvature',
|
|
963
1033
|
'compute_riemann_curvature',
|
|
1034
|
+
'compute_curvature_tensor',
|
|
964
1035
|
'compute_all_curvatures',
|
|
965
1036
|
'compute_intrinsic_gradient',
|
|
966
1037
|
|
|
1038
|
+
# Intrinsic gradient legacy aliases
|
|
1039
|
+
'intrinsic_gradient_gaussian_curvature',
|
|
1040
|
+
'intrinsic_gradient_mean_curvature',
|
|
1041
|
+
'intrinsic_gradient_principal_curvatures',
|
|
1042
|
+
'intrinsic_gradient_all_curvatures',
|
|
1043
|
+
|
|
967
1044
|
# Classical method functions
|
|
968
1045
|
'gaussian_curvature_classical',
|
|
969
1046
|
'mean_curvature_classical',
|
|
@@ -976,6 +1053,9 @@ __all__ = [
|
|
|
976
1053
|
'principal_curvatures',
|
|
977
1054
|
'all_curvatures',
|
|
978
1055
|
|
|
1056
|
+
# Legacy Lie group naming
|
|
1057
|
+
'gaussian_curvature_lie',
|
|
1058
|
+
|
|
979
1059
|
# Method comparison
|
|
980
1060
|
'compare_methods',
|
|
981
1061
|
|