Commit Graph

2 Commits

Author SHA1 Message Date
Michele Guerini Rocco
fadf1ac7c7
src/gray_project.f90: preserve sign of J_φ in statistics
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.
2025-03-20 11:31:28 +01:00
Michele Guerini Rocco
6f66317541
replace pec module with an object
This was the final module with global variables to be rewritten.
The functionaly of pec: `pec_init`, `spec`, `postproc_profiles` has been
replaced by the `ray_projector` object in `gray_project.f90` with the
following methods: `projector%init`, `projector%project` and
`projector%statistics`.

The new code is functionally identically with only breaking change being
in Δρ_J, the full-width at max/e of the current density.
Before this change Δρ_J could be negative to signal the J_φ profile had
at least one positive and one negative peak, after the value is always
positive. Note: in either case Δρ_J was given by the largest peak only.
2024-11-04 12:05:26 +01:00