This makes the following changes to summary.7.txt:
1. Preserve the sign of J_φ_peak J_φ_max, i.e. if the J_φ is negative,
those will be negative. Previously they would always be unsigned.
2. If the sign of J_φ is alternating significantly, specifically if
(∫|J_φ|dA - |∫J_φ⋅dA|) / ∫|J_φ|dA > 10%
then sign of ρ_avg_J, Δρ_avg_J, ρ_max_J, Δρ_max_J will be negative.
Previously they were always positive.
3. If there is no current J_φ=0 (power dPdV=0), then
ρ_avg_J=1, rho_max_J=1 (ρ_avg_P=1, rho_max_P=1).
Previosuly they would be set to zero.
This helps producing continuous results as a beam is gradually
focused into the plasma.
Store the polarisation ellipse angles χ, ψ only for the central ray.
Otherwise they'll be zeroed out since `plasma_in` does not compute the
polarisation of the other rays.
This changes the ψ, χ polarisation ellipse angles shown in the summary
table to be those of the current plasma wave mode, not the polarisation
of the beam upon re-entering the plasma boundary after reflecting.
Note that the former has always been the intended value, but was likely
changed inadvertently when reflections have been implemented.
The following test cases:
- 04-JT60SA
- 05-JT60SA-startup
- 06-ITER-startup.Mixed
were affected by the bug fixed in f82f91bc, so their reference outputs
had to be updated.
1. Introduces enumerations (and some booleans) intended to replace all
the magic numbers used throughout the code to represent multiple
choices.
2. Replace the gray_params.sh script a new one that automatically
generates code for all the GRAY parameters by parsing
gray_params.f90.
3. Also generate extra code to accept the enum identifiers as valid
values in the configuration files and command line arguments.
4. Set sensible default values for parameters that are rarely changes.