Repository navigation
Expand file tree
/
Copy pathmain.ps1
More file actions
121 lines (99 loc) · 3.57 KB
/
Copy pathmain.ps1
File metadata and controls
121 lines (99 loc) · 3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
$root = Split-Path -Parent $MyInvocation.MyCommand.Path
# --------------------------------------------
# CARGA DE MODULOS
# --------------------------------------------
. "$root/core/node.ps1" # <--- REGISTRO OBLIGATORIO DE LA CLASE
. "$root/core/clock.ps1"
. "$root/core/evolve.ps1"
. "$root/core/inject.ps1"
. "$root/bus/phase_bus.ps1"
. "$root/memory/phase_memory.ps1"
. "$root/router/phase_router.ps1"
. "$root/runtime/clock_scheduler.ps1" # <--- AGREGADO: Planificador fenomenológico
. "$root/visual/torus_view.ps1"
. "$root/visual/field_map.ps1"
# --------------------------------------------
# INICIALIZACION
# --------------------------------------------
# Inicializa la matriz Z60 (6x10) adaptada a la topología toroidal
$nodos = Inicializar-TorusRing `
-DimensionX 6 `
-DimensionY 10
$pasos = 2000 # <--- CAMBIO: Extensión de la simulación para análisis de largo plazo
# --------------------------------------------
# LOOP PRINCIPAL
# --------------------------------------------
for ($t = 0; $t -lt $pasos; $t++) {
# Inyección rítmica externa (Perturbación controlada de fase)
if (($t % 35) -eq 0) {
Inject-Pulse `
-Nodos $nodos `
-Nodo 12 `
-Amplitud 1.5 `
-Ancho 3
}
# 3B — Avance del oscilador maestro global antes de la evolución de fase
Update-Clock
# Evolución topológica local acoplada al Reloj Central Φ
Update-Phase `
-Nodos $nodos `
-K 0.15
# --------------------------------------------
# PASO 5 — RUNTIME FENOMENOLÓGICO (SWITCH DE VENTANA)
# --------------------------------------------
$window = Get-ClockWindow -ClockPhase $Global:ClockPhase
switch ($window) {
"TRANSFER" {
Invoke-PhaseBus -Nodos $nodos
}
"ROUTING" {
Invoke-PhaseRouter -Nodos $nodos
}
"MEMORY" {
Update-PhaseMemory -Nodos $nodos
}
"DISSIPATION" {
foreach ($node in $nodos) {
$node.Energy *= 0.992
}
}
"SYNC" {
foreach ($node in $nodos) {
$node.Theta += ([math]::Sin($Global:ClockPhase - $node.Theta) * 0.015)
}
}
}
# Cálculo de coherencia global (Métrica R de Kuramoto)
$R = Get-Coherencia `
-Nodos $nodos
# --------------------------------------------
# INSTRUMENTACION Y TELEMETRIA TEXTUAL
# --------------------------------------------
Clear-Host
Write-Host ""
Write-Host "====================================="
Write-Host " PHASEKERNEL-Z60 [BUS-ACTIVE]"
Write-Host "====================================="
Write-Host ""
Write-Host ("Tiempo Interno (t): {0,-5} | Fase Reloj (Φ): {1:F4} rad" -f $t, $Global:ClockPhase)
Write-Host ""
# Proyección visual de la "respiración" del anillo y su nivel de locking
Show-TorusRing `
-Nodos $nodos `
-Coherencia $R
Show-FieldMap `
-Nodos $nodos `
-DimensionX 10 `
-DimensionY 10
# --------------------------------------------
# MONITOREO TEMPORAL DE DEBUG (Debajo de R actual)
# --------------------------------------------
Write-Host ("Ventana activa : {0}" -f $window)
$energiaMedia = (($nodos | Measure-Object -Property Energy -Average).Average)
Write-Host ("Energía promedio: {0:N6}" -f $energiaMedia)
# El control temporal ahora es geométrico e interno.
# El locking y la sincronización emerge de la física del core.
}
Write-Host ""
Write-Host "Simulación finalizada."
Write-Host ""