We’re Getting Very Close to the Original Ocean Question
Since my last EM solver update, most of my time has still gone into the ugly low frequency numerical problem. Ben has helped a lot, so very grateful for him and we’ve made a lot of progress. The reduced system I was trying to solve is still:
H_red = C⁻¹ + VA₀⁻¹U
My first two preconditioners didn’t work well enough, so I started testing how local this operator was. In other words, if I’m solving one spatial degree, how far away do I really need to look before the important coupling dies off? I tested several widths:
±12, ±18, ±24, ±30, ±36 degrees
And this was the big result:
Smallest qualifying width = ±24°
That means I finally have evidence that I don’t need the entire global operator interacting with everything else at once. A local window can reproduce the full operator and still meet the numerical criteria I set before running the test. The problem now is that “local” still isn’t cheap. The full reduced system has:
35,640 unknowns
Building the entire local matrix explicitly would still require:
35,640 physical operator columns
So I’m not doing that, and instead, I’ve narrowed the next experiment down to the part of the solver that has been hardest to approximate.. the very lowest spatial degrees. The pilot only uses:
degrees 1–6 = 144 basis columns
And I’ll keep the response through:
degree 36
That lets me test the preferred local width and the slightly wider comparison from the exact same calculations:
primary = ±24° | comparison = ±30°
Before I even run those columns, I’ve built a much smaller physical preflight. It will repeat eight selected columns and make sure the physical solver gives the same answer each time within:
relative difference ≤ 1 × 10⁻¹⁰
That preflight costs:
16 physical operator evaluations
If that passes, I can move into the small low degree pilot and determine if this local piece can be inverted cleanly enough to become a useful preconditioner. And this is where we are relative to my original ocean heating question. I still haven’t calculated the final electromagnetic heating in the abyssal ocean. But the path is getting much shorter. Right now it looks like:
low-degree inverse test
↓
qualified reduced solve
↓
electromagnetic field/current solution
↓
Joule heating
↓
4–6 km ocean layer
And the quantity I ultimately care about is still beautifully simple:
q_J = σ|E|²
Then I can integrate that heating through the abyssal layer and finally compare it with the warming signal that started this whole project. So no, I don’t have the answer yet. But we’re no longer stuck asking whether the solver can even get through the low frequency problem. Now we’re testing whether the last useful numerical shortcut can actually be inverted. And if it can, we get to start asking the ocean question directly.