Open flux comparison (calculations)#

Comparing total unsigned flux to analytic solutions.

This script calculates both analytic and numerical values of the total unsigned open flux within PFSS solutions of single spherical harmonics, and saves them to a .json file. This can be read in by plot_open_flux_harmonics.py to visualize the result.

import json
from collections import defaultdict

from examples.testing.helpers import open_flux_analytic, open_flux_numeric, result_dir

Set the source surface height, and the (l, m) values to investigate:

zss = 2
nrho = 40

results = {'numeric': defaultdict(dict),
           'analytic': defaultdict(dict)}

for l in range(1, 6):
    for m in range(-l, l + 1):
        print(f"l={l}, m={m}")
        if -m in results['analytic'][l]:
            # Analytic flux for m = -m is the same
            flux_analytic = results['analytic'][l][-m]
        else:
            flux_analytic = open_flux_analytic(l, m, zss)

        results['analytic'][l][m] = float(flux_analytic)
        flux_numeric = open_flux_numeric(l, m, zss, nrho)
        results['numeric'][l][m] = float(flux_numeric)

with open(result_dir / "open_flux_harmonics.json", "w") as f:
    f.write(json.dumps(results))

Gallery generated by Sphinx-Gallery