mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
400 lines
16 KiB
Python
400 lines
16 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Braided Field Simulation with Hamiltonian Component Primitives
|
|
|
|
This script applies the 4 Hamiltonian components (photon, electron, phonon, interaction)
|
|
to the braided field system, exploring how each term affects the polaron-polariton state.
|
|
"""
|
|
|
|
import numpy as np
|
|
import cmath
|
|
import hashlib
|
|
import json
|
|
from dataclasses import dataclass
|
|
from datetime import datetime, timezone
|
|
from pathlib import Path
|
|
from typing import List, Tuple
|
|
import matplotlib.pyplot as plt
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
RECEIPT_PATH = ROOT / "4-Infrastructure" / "hardware" / "hamiltonian_primitives_sim_receipt.json"
|
|
PLOT_PATH = ROOT / "4-Infrastructure" / "hardware" / "hamiltonian_phase_energy.png"
|
|
|
|
@dataclass
|
|
class HamiltonianComponent:
|
|
"""One of the 4 Hamiltonian components."""
|
|
name: str # 'photon', 'electron', 'phonon', 'interaction'
|
|
energy_coeff: float
|
|
phase_coupling: float
|
|
mass_renormalization: float
|
|
|
|
class HamiltonianPrimitives:
|
|
"""The 4 Hamiltonian components from the multi-body system."""
|
|
|
|
def __init__(self):
|
|
# Based on the Hamiltonian: H_total = H_photon + H_electron + H_phonon + H_interactions
|
|
self.components = {
|
|
'photon': HamiltonianComponent('photon', 1.0, 0.0, 0.0),
|
|
'electron': HamiltonianComponent('electron', 0.5, np.pi/4, 0.1),
|
|
'phonon': HamiltonianComponent('phonon', 0.3, np.pi/2, 0.5),
|
|
'interaction': HamiltonianComponent('interaction', 0.2, np.pi, 1.0),
|
|
}
|
|
|
|
def get_component(self, name: str) -> HamiltonianComponent:
|
|
return self.components[name]
|
|
|
|
def all_components(self) -> List[HamiltonianComponent]:
|
|
return list(self.components.values())
|
|
|
|
class BraidedFieldWithHamiltonian:
|
|
"""Braided field that accepts Hamiltonian component perturbations."""
|
|
|
|
def __init__(self, num_particles: int = 4):
|
|
self.particles = []
|
|
self.braiding_history = []
|
|
self.hamiltonian_perturbations = []
|
|
self.magnetic_field = 0.0
|
|
|
|
# Initialize polaron-polaritons
|
|
for i in range(num_particles):
|
|
angle = 2 * np.pi * i / num_particles
|
|
self.particles.append({
|
|
'photon_component': 1.0 + 0j,
|
|
'electron_component': 1.0 + 0j,
|
|
'phonon_component': 0.5 + 0j,
|
|
'position': (np.cos(angle), np.sin(angle)),
|
|
'statistics_parameter': np.pi/4,
|
|
'effective_mass': 1.0
|
|
})
|
|
|
|
def apply_hamiltonian_component(self, component: HamiltonianComponent):
|
|
"""Apply a Hamiltonian component perturbation to the field."""
|
|
self.hamiltonian_perturbations.append(component)
|
|
|
|
# Apply component-specific effects
|
|
for p in self.particles:
|
|
# Phase coupling based on component
|
|
p['statistics_parameter'] += component.phase_coupling * 0.1
|
|
|
|
# Mass renormalization (especially for phonon)
|
|
p['effective_mass'] += component.mass_renormalization * 0.1
|
|
|
|
# Component-specific energy effects
|
|
if component.name == 'photon':
|
|
p['photon_component'] *= cmath.exp(1j * component.phase_coupling)
|
|
elif component.name == 'electron':
|
|
p['electron_component'] *= cmath.exp(1j * component.phase_coupling)
|
|
elif component.name == 'phonon':
|
|
p['phonon_component'] *= cmath.exp(1j * component.phase_coupling)
|
|
elif component.name == 'interaction':
|
|
# Interaction affects all components
|
|
phase = component.phase_coupling
|
|
p['photon_component'] *= cmath.exp(1j * phase)
|
|
p['electron_component'] *= cmath.exp(1j * phase)
|
|
p['phonon_component'] *= cmath.exp(1j * phase)
|
|
|
|
# Record perturbation
|
|
self.braiding_history.append({
|
|
'type': 'hamiltonian',
|
|
'component': component.name,
|
|
'phase_shift': component.phase_coupling,
|
|
'energy': component.energy_coeff
|
|
})
|
|
|
|
def apply_braiding(self, i: int, j: int, phase_shift: float):
|
|
"""Apply a standard braiding operation."""
|
|
if i >= len(self.particles) or j >= len(self.particles):
|
|
raise IndexError("Particle index out of range")
|
|
|
|
# Swap particles
|
|
self.particles[i], self.particles[j] = self.particles[j], self.particles[i]
|
|
|
|
# Apply phase shift
|
|
for p in [self.particles[i], self.particles[j]]:
|
|
p['statistics_parameter'] += phase_shift
|
|
p['photon_component'] *= cmath.exp(1j * phase_shift)
|
|
p['electron_component'] *= cmath.exp(1j * phase_shift)
|
|
p['phonon_component'] *= cmath.exp(1j * phase_shift)
|
|
|
|
# Record braiding
|
|
self.braiding_history.append({
|
|
'type': 'braid',
|
|
'i': i,
|
|
'j': j,
|
|
'phase_shift': phase_shift
|
|
})
|
|
|
|
def total_wavefunction(self) -> complex:
|
|
"""Compute total wavefunction from all particles."""
|
|
psi = 0j
|
|
for p in self.particles:
|
|
psi += (p['photon_component'] +
|
|
p['electron_component'] +
|
|
p['phonon_component'])
|
|
return psi
|
|
|
|
def total_energy(self) -> float:
|
|
"""Compute total energy from Hamiltonian components."""
|
|
total = 0.0
|
|
for pert in self.hamiltonian_perturbations:
|
|
total += pert.energy_coeff
|
|
return total
|
|
|
|
def effective_mass(self) -> float:
|
|
"""Compute average effective mass."""
|
|
return np.mean([p['effective_mass'] for p in self.particles])
|
|
|
|
def topological_invariant(self) -> float:
|
|
"""Compute topological invariant from braiding history."""
|
|
total = 0.0
|
|
for op in self.braiding_history:
|
|
if op['type'] == 'braid':
|
|
total += op['phase_shift']
|
|
elif op['type'] == 'hamiltonian':
|
|
total += op['phase_shift'] * 0.5 # Hamiltonian perturbations contribute half
|
|
return total
|
|
|
|
def is_protection_candidate(self) -> bool:
|
|
"""Local candidate gate; not a proof of topological protection."""
|
|
return self.topological_invariant() != 0 and self.magnetic_field > 0
|
|
|
|
def simulate_hamiltonian_components():
|
|
"""Simulate applying each Hamiltonian component individually."""
|
|
print("=== Braided Field with Hamiltonian Component Primitives ===\n")
|
|
|
|
primitives = HamiltonianPrimitives()
|
|
field = BraidedFieldWithHamiltonian(num_particles=4)
|
|
|
|
print(f"Initial state:")
|
|
print(f" Particles: {len(field.particles)}")
|
|
print(f" Wavefunction: {field.total_wavefunction():.4f}")
|
|
print(f" Energy: {field.total_energy():.4f}")
|
|
print(f" Effective mass: {field.effective_mass():.4f}")
|
|
print(f" Topological invariant: {field.topological_invariant():.4f}\n")
|
|
|
|
# Apply each Hamiltonian component
|
|
print("Applying Hamiltonian components individually:")
|
|
component_rows = []
|
|
|
|
for component in primitives.all_components():
|
|
field.apply_hamiltonian_component(component)
|
|
row = {
|
|
"component": component.name,
|
|
"energy_coeff": component.energy_coeff,
|
|
"phase_coupling": component.phase_coupling,
|
|
"mass_renormalization": component.mass_renormalization,
|
|
"wavefunction": f"{field.total_wavefunction():.4f}",
|
|
"total_energy": field.total_energy(),
|
|
"effective_mass": field.effective_mass(),
|
|
"invariant": field.topological_invariant(),
|
|
}
|
|
component_rows.append(row)
|
|
print(f" {component.name.capitalize()} component:")
|
|
print(f" Energy coeff: {component.energy_coeff:.4f}")
|
|
print(f" Phase coupling: {component.phase_coupling:.4f} rad")
|
|
print(f" Mass renorm: {component.mass_renormalization:.4f}")
|
|
print(f" Wavefunction: {field.total_wavefunction():.4f}")
|
|
print(f" Total energy: {field.total_energy():.4f}")
|
|
print(f" Effective mass: {field.effective_mass():.4f}")
|
|
print(f" Invariant: {field.topological_invariant():.4f}\n")
|
|
|
|
# Apply magnetic field
|
|
field.magnetic_field = 1.0
|
|
print(f"Applied magnetic field: {field.magnetic_field}")
|
|
print(f"Protection candidate: {field.is_protection_candidate()}\n")
|
|
|
|
print(f"Final topological invariant: {field.topological_invariant():.4f}")
|
|
print(f"Total operations: {len(field.braiding_history)}")
|
|
return {
|
|
"components": component_rows,
|
|
"magnetic_field": field.magnetic_field,
|
|
"protection_candidate": field.is_protection_candidate(),
|
|
"final_topological_invariant": field.topological_invariant(),
|
|
"total_operations": len(field.braiding_history),
|
|
}
|
|
|
|
def simulate_hamiltonian_braiding_sequence():
|
|
"""Simulate alternating Hamiltonian components and braiding operations."""
|
|
print("\n=== Hamiltonian-Braiding Sequence Simulation ===\n")
|
|
|
|
primitives = HamiltonianPrimitives()
|
|
field = BraidedFieldWithHamiltonian(num_particles=4)
|
|
|
|
sequence = [
|
|
('hamiltonian', 'photon'),
|
|
('braid', (0, 1, np.pi/4)),
|
|
('hamiltonian', 'electron'),
|
|
('braid', (1, 2, np.pi/3)),
|
|
('hamiltonian', 'phonon'),
|
|
('braid', (2, 3, np.pi/5)),
|
|
('hamiltonian', 'interaction'),
|
|
('braid', (0, 3, np.pi/2)),
|
|
]
|
|
|
|
print(f"Initial wavefunction: {field.total_wavefunction():.4f}")
|
|
print(f"Initial invariant: {field.topological_invariant():.4f}\n")
|
|
rows = []
|
|
|
|
for op_type, data in sequence:
|
|
if op_type == 'hamiltonian':
|
|
component = primitives.get_component(data)
|
|
field.apply_hamiltonian_component(component)
|
|
rows.append({
|
|
"type": "hamiltonian",
|
|
"component": data,
|
|
"wavefunction": f"{field.total_wavefunction():.4f}",
|
|
"energy": field.total_energy(),
|
|
"invariant": field.topological_invariant(),
|
|
})
|
|
print(f"Hamiltonian component {data}:")
|
|
print(f" Wavefunction: {field.total_wavefunction():.4f}")
|
|
print(f" Energy: {field.total_energy():.4f}")
|
|
print(f" Invariant: {field.topological_invariant():.4f}")
|
|
elif op_type == 'braid':
|
|
i, j, phase = data
|
|
field.apply_braiding(i, j, phase)
|
|
rows.append({
|
|
"type": "braid",
|
|
"i": i,
|
|
"j": j,
|
|
"phase": phase,
|
|
"wavefunction": f"{field.total_wavefunction():.4f}",
|
|
"invariant": field.topological_invariant(),
|
|
})
|
|
print(f"Braid ({i},{j}) with phase {phase:.4f}:")
|
|
print(f" Wavefunction: {field.total_wavefunction():.4f}")
|
|
print(f" Invariant: {field.topological_invariant():.4f}")
|
|
print()
|
|
|
|
field.magnetic_field = 1.0
|
|
print(f"Applied magnetic field: {field.magnetic_field}")
|
|
print(f"Protection candidate: {field.is_protection_candidate()}")
|
|
print(f"Final invariant: {field.topological_invariant():.4f}")
|
|
return {
|
|
"sequence": rows,
|
|
"magnetic_field": field.magnetic_field,
|
|
"protection_candidate": field.is_protection_candidate(),
|
|
"final_topological_invariant": field.topological_invariant(),
|
|
}
|
|
|
|
def plot_hamiltonian_phase_space():
|
|
"""Visualize Hamiltonian components in phase-energy space."""
|
|
print("\n=== Hamiltonian Component Phase-Energy Space ===\n")
|
|
|
|
primitives = HamiltonianPrimitives()
|
|
components = primitives.all_components()
|
|
|
|
# Extract data
|
|
names = [c.name for c in components]
|
|
phases = [c.phase_coupling for c in components]
|
|
energies = [c.energy_coeff for c in components]
|
|
masses = [c.mass_renormalization for c in components]
|
|
|
|
# Create scatter plot
|
|
fig, ax = plt.subplots(figsize=(10, 8))
|
|
|
|
# Plot each component
|
|
for name, phase, energy, mass in zip(names, phases, energies, masses):
|
|
ax.scatter(phase, energy, s=mass*200, alpha=0.6, label=f'{name} (mass={mass})')
|
|
ax.annotate(name, (phase, energy), xytext=(10, 10),
|
|
textcoords='offset points', fontsize=10)
|
|
|
|
ax.set_xlabel('Phase Coupling (radians)')
|
|
ax.set_ylabel('Energy Coefficient')
|
|
ax.set_title('Hamiltonian Components in Phase-Energy Space')
|
|
ax.grid(True, alpha=0.3)
|
|
ax.legend()
|
|
|
|
plt.tight_layout()
|
|
plt.savefig(PLOT_PATH, dpi=150)
|
|
print(f"Hamiltonian phase-energy plot saved to {PLOT_PATH}")
|
|
return {
|
|
"plot_path": str(PLOT_PATH),
|
|
"component_count": len(components),
|
|
}
|
|
|
|
def simulate_hamiltonian_encoding():
|
|
"""Simulate encoding information using Hamiltonian components."""
|
|
print("\n=== Information Encoding with Hamiltonian Components ===\n")
|
|
|
|
primitives = HamiltonianPrimitives()
|
|
field = BraidedFieldWithHamiltonian(num_particles=4)
|
|
|
|
# Encode information using component sequence
|
|
sequence = ['photon', 'electron', 'phonon', 'interaction']
|
|
|
|
print(f"Encoding sequence: {' -> '.join(sequence)}")
|
|
print(f"Initial wavefunction: {field.total_wavefunction():.4f}")
|
|
print(f"Initial invariant: {field.topological_invariant():.4f}\n")
|
|
rows = []
|
|
|
|
for component_name in sequence:
|
|
component = primitives.get_component(component_name)
|
|
field.apply_hamiltonian_component(component)
|
|
rows.append({
|
|
"component": component_name,
|
|
"wavefunction": f"{field.total_wavefunction():.4f}",
|
|
"energy": field.total_energy(),
|
|
"invariant": field.topological_invariant(),
|
|
})
|
|
print(f"Encoded {component_name}:")
|
|
print(f" Wavefunction: {field.total_wavefunction():.4f}")
|
|
print(f" Energy: {field.total_energy():.4f}")
|
|
print(f" Invariant: {field.topological_invariant():.4f}")
|
|
|
|
# Apply magnetic field to lock topology
|
|
field.magnetic_field = 1.0
|
|
print(f"\nApplied magnetic field: {field.magnetic_field}")
|
|
print(f"Protection candidate: {field.is_protection_candidate()}")
|
|
|
|
# The invariant encodes the sequence information
|
|
final_invariant = field.topological_invariant()
|
|
expected_invariant = sum(c.phase_coupling * 0.5 for c in primitives.all_components())
|
|
print(f"\nFinal topological invariant: {final_invariant:.4f}")
|
|
print(f"Expected invariant (sum of phase contributions): {expected_invariant:.4f}")
|
|
|
|
print("\nThe Hamiltonian component sequence is represented in the accumulated invariant.")
|
|
print("This demonstrates a candidate reduced-equation control surface for")
|
|
print("virtual polaron-polariton braid-field simulations.")
|
|
return {
|
|
"sequence": sequence,
|
|
"rows": rows,
|
|
"magnetic_field": field.magnetic_field,
|
|
"protection_candidate": field.is_protection_candidate(),
|
|
"final_topological_invariant": final_invariant,
|
|
"expected_invariant": expected_invariant,
|
|
"invariant_matches_expected": abs(final_invariant - expected_invariant) < 1e-9,
|
|
}
|
|
|
|
if __name__ == "__main__":
|
|
component_summary = simulate_hamiltonian_components()
|
|
sequence_summary = simulate_hamiltonian_braiding_sequence()
|
|
plot_summary = plot_hamiltonian_phase_space()
|
|
encoding_summary = simulate_hamiltonian_encoding()
|
|
|
|
receipt = {
|
|
"generated_utc": datetime.now(timezone.utc).isoformat(),
|
|
"lawful": True,
|
|
"mode": "virtual_only",
|
|
"source_note": "No hardware programming, RF emission, JTAG, serial flashing, board access, or material claim. Python reduced-equation toy simulation only.",
|
|
"reduced_equation_set": [
|
|
"H_photon",
|
|
"H_electron",
|
|
"H_phonon",
|
|
"H_interactions",
|
|
],
|
|
"component_summary": component_summary,
|
|
"sequence_summary": sequence_summary,
|
|
"plot_summary": plot_summary,
|
|
"encoding_summary": encoding_summary,
|
|
"claim_boundary": "This simulation records a candidate reduced-Hamiltonian braid-field control model. It does not prove topological protection, local-noise immunity, device feasibility, material existence, or compression advantage.",
|
|
}
|
|
encoded = json.dumps(receipt, indent=2, sort_keys=True).encode("utf-8")
|
|
receipt["receipt_hash_preimage_sha256"] = hashlib.sha256(encoded).hexdigest()
|
|
RECEIPT_PATH.write_text(json.dumps(receipt, indent=2, sort_keys=True) + "\n", encoding="utf-8")
|
|
|
|
print("\n=== Simulation Complete ===")
|
|
print("The 4 Hamiltonian components (photon, electron, phonon, interaction)")
|
|
print("were applied as a virtual reduced-equation control surface.")
|
|
print("No topological protection, local-noise immunity, or device feasibility is proven.")
|
|
print(f"Receipt written to {RECEIPT_PATH}")
|