PLUME Input

PLUME Input

This is a reference for the key input parameters used by PLUME.

Normalization conventions

normalization='rho_ref' is the default and preserves existing inputs. normalization='d_ref' uses the inertial length of species_1. The reference species must be first in either convention. The symbols $\mu_s=m_R/m_s$, $Q_s=q_R/q_s$ (signed), $D_s=n_s/n_R$, and $\alpha_s=T_{\perp,s}/T_{\parallel,s}$ have the same meaning in both modes.

Parameter rho_ref d_ref
kperp, kpar $k\rho_R$, $\rho_R=v_{t\perp,R}/ \Omega_R
vtp $v_{t\parallel,R}/c$ $v_{A,R}/c$
betap $8\pi n_RT_{\parallel,R}/B_0^2$ same, and equals reference tauS
tauS $T_{\parallel,R}/T_{\parallel,s}$ $2T_{\parallel,s}/(m_Rv_{A,R}^2)$
muS, Qs, Ds, alphS, vvS $m_R/m_s$, $q_R/q_s$, $n_s/n_R$, $T_{\perp,s}/T_{\parallel,s}$, $U_s/v_{A,R}$ same
Kn $(n_0\sigma\rho_R)^{-1}$ $(n_0\sigma d_R)^{-1}$

For $\alpha_R=T_{\perp,R}/T_{\parallel,R}$ and positive reference temperature, $k d_R=k\rho_R/\sqrt{\beta_{\parallel,R}\alpha_R}$, $v_{t\parallel,R}/c=\sqrt{\beta_{\parallel,R}}\,v_{A,R}/c$, and $\tau_s^{(d)}=\beta_{\parallel,R}/\tau_s^{(\rho)}$. In d_ref, $v_{t\parallel,s}^2/v_{A,R}^2=\mu_s\tau_s^{(d)}$, $\beta_{\parallel,s}=D_s\tau_s^{(d)}$, $\omega_{ps}^2/\Omega_R^2=D_s\mu_s/[Q_s^2(v_{A,R}/c)^2]$, and $\Omega_s/\Omega_R=\mu_s/Q_s$. The signed charge ratio is retained in the cyclotron frequency and Doppler shift.

d_ref requires species_1 tauS=betap. A scan of either reference beta or reference tauS updates both. Its other inputs remain fixed during that scan; this is a different physical scan from changing only betap in rho_ref. Two-dimensional scans cannot vary both redundant quantities independently. All kinetic species currently require positive tauS; tauS=0 is reserved for a future cold-fluid susceptibility. See the matched example files in inputs/example/normalization_*.in.

Namelists in input files.

The following namelists and associated input parameters are read in by PLUME from the input file.

&params

General system parameters.

normalization 'rho_ref' (default) or 'd_ref'. Invalid values stop with a diagnostic.

betap
Initial reference parallel plasma beta $\beta_{ref,\parallel} = 8 \pi n_{ref} T_{ref,\parallel}/B^2$.

kperp
Initial perpendicular wavevector $k_{\perp} \rho_{ref}$ or $k_{\perp}d_{ref}$, according to normalization.

kpar
Initial parallel wavevector $k_{\parallel} \rho_{ref}$ or $k_{\parallel}d_{ref}$.

vtp
Initial reference parallel thermal velocity $v_{t,ref,\parallel}/c$ in rho_ref, or reference Alfvén speed $v_{A,ref}/c$ in d_ref.

nspec
Number of plasma species or components.

nscan
Number parameter or wavevector scans to execute.

collision_type
Type of collision for the system. - 0: no collisions; standard PLUME - 1: non-conservative Krook Operator neutral-charged collisions only.

Kn
Neutral Knudson number over characteristic scale $(n_0 \sigma \rho_{ref})^{-1}$. or $(n_0 \sigma d_{ref})^{-1}$. Ignored for collision_type=0 (collisionless evalulation).

option
Determines set of scans to perform. Choice of:

  • -1: Calculate the value of the dispersion relation at a single $(\omega/\Omega_{ref}, \gamma/\Omega_{ref})$
  • 0: Calculate roots for input plasma parameters.
  • 1: Calculate roots for input plasma parameters or Reads in root value and then scan over plasma parameters, with range and type specified in *.in file.
  • 2: Calculate roots for input plasma parameters or Reads in root value and then scan over two-dimensional plasma parameters space, with range and type specified in *.in file.
  • 3: Deprecated...
  • 4: Make multiple maps of complex frequency space.
  • 5: Find roots for parameters along a prescribed path Path is set by solar wind models, with values calculated and output by helper function (in development, the radial scan function.).

nroot_max
Number of dispersion solutions to find and follow.

use_map
Choice of:

  • True: Searching for roots over a map in complex frequency space (see &maps namelist).
  • False: Input nroot_max guesses for solutions (see &guess_1 namelist).

low_n
Logical to toggle on or off outputing the $n=0$ and $\pm 1$ resonances for characterizing heating channels. Separates Landau, Transit, and Cyclotron damping. This follows Huang et al 2024 JPP and is expressed in Sec. 5 of Klein, K. G., Howes, G. G., and Brown, C. R., 2025.

new_low_n
Depricated Logical to toggle on or off outputing the $n=0$ and $\pm 1$ resonances for characterizing heating channels. Previous had multiple versions of the low n susceptability calculation. As we are only using Eqns. 39,40, and 41 from Klein, K. G., Howes, G. G., and Brown, C. R., 2025, this logical flag is unnecessary.

writeOut
Write or suppress output to screen.

dataName
Subdirectory (below PLUME/data/) where outputs will be written.

outputName String to be included in output files to identify specific run.

&guess_m

Initial guess of complex frequency for $m$th solution.
Only used when use_map=.false.
Need to have number of namelists equal to nroot_max.

g_om
Guess for real solution $\omega_{r}/\Omega_{ref} $.

g_gam
Guess for imaginary solution $\gamma/\Omega_{ref} $.

&maps

Range of complex frequencies for map_scan subroutine.
Only used when use_map=.true.

loggridw
Linear (F) or Log (T) spacing for $\omega_{r}/\Omega_{p}$ map search. Spacing automatically calculated between omi and omf.

loggridg
Linear (F) or Log (T) spacing for $\gamma/\Omega_{p}$ map search. Spacing automatically calculated between gami and gamf

omi
Smallest $\omega_{r}/\Omega_{p}$ value for complex map search.

omf
Largest $\omega_{r}/\Omega_{p}$ value for complex map search.

gami
Smallest $\gamma/\Omega_{p}$ value for complex map search.

gamf
Largest $\gamma/\Omega_{p}$ value for complex map search.

nr
Number of $\omega_{r}/\Omega_{p}$ points in frequency grid. Default is 128 if not specified.

ni
Number of $\gamma/\Omega_{p}$ points in frequency grid. Default is 128 if not specified.

positive_roots If true, the map routine will only select solutions with $\omega_{|textrm{r}} \ge 0$.

&species_j

Species or component parameters list for distribution $f_{j}$.

tauS
Relative parallel temperature $T_{ref,\parallel}/T_{j,\parallel}$ in rho_ref; Alfvénic temperature $2T_{j,\parallel}/(m_{ref}v_{A,ref}^2)$ in d_ref.

muS
Relative mass $m_{ref}/m_{j}$.

alphS
Temperature anisotropy $T_{j,\perp}/T_{j,\parallel}$.

Qs
Relative charge $q_{ref}/q_{j}$.

Ds
Relative density $n_{j}/n_{ref}$.

vvS
Drift speed parallel to mean magnetic field, normalized to the reference Alfven velocity $v_{j,drift}/v_{A,ref}$, where $v_{A,ref}=B/\sqrt{4 \pi n_{ref} m_{ref}}$

nunS
Neutral-charged species collision frequency, $\nu_{n,s}/\Omega_{ref} = n_0$

&scan_input_l

Inputs for scanning parameter space for $l$th scan.

scan_type
Type of parameter scan.

For scan_style=-1 (Global Two-Component Scan), options of:

  • 0: Scan from $\textbf{k}0 \rho$ to $\textbf{k}1 \rho$. Scans from current value of $(k_\perp,k_\parallel) \rho_{ref}$ to $k_\perp \rho_p$=swi and $k_\parallel \rho_{ref}$=swf.
  • 1: Scan from $\theta_0$ to $\theta_1$ with fixed $|k|\rho_{ref}$. Scans from current value of $(|k|\rho_{ref},\theta)$ to $(|k|\rho_{ref},$swi$)$, with swi in degrees.
  • 2: Scan from $|k|0 \rho$ to $|k|1 \rho$ with a fixed value of $\theta$. Scan from current value of $(k_\perp,k_\parallel) \rho_{ref}$ to $|k|\rho_{ref}$=swf with constant $\theta = \atan (k_\perp/k_\parallel)$.

NOTE: If you are executing a two-parameter plane scan of $\theta$ and $|k|\rho_{ref}$, $\theta$ (scan_style=-1, scan_type=1) must be set to scan_input_1 and $|k| \rho_{ref}|$ (scan_style=-1, scan_type=2) to scan_input_2. The opposite order will not properly scan through $|k| \rho_{ref}|$. See

inputs/example/example_map_perp.in

for an example.

For scan_style=0 (Global Scan), options of:

  • 0: $k_\perp \rho_{ref}$
  • 1: $k_\parallel \rho_{ref}$
  • 2: $\beta_{ref,\parallel}$
  • 3: $v_{t,ref,\parallel}/c$

swi and swf represent the initial and final scan values for scan_style=0.

For scan_style=1-nspec (Parameter scan of component scan_style), options of:

  • 0: $T_{ref,\parallel}/T_{j,\parallel}$.
  • 1: $m_{ref}/m_{j}$.
  • 2: $T_{j,\perp}/T_{j,\parallel}$.
  • 3: $q_{ref}/q_{j}$.
  • 4: $n_{j}/n_{ref}$.
  • 5: $v_{j,drift}/v_{A,ref}$.

swi and swf represent the initial and final scan values for scan_style=1 through nspec.

scan_style
Class of parameter scan. Options of:

  • -1: Global Two-Component Scan
  • 0: Global Scan
  • 1-nspec: Single-Parameter Scan

swi
Scan variable to define start of scan through parameter space.

swf
Scan variable to define end of scan through parameter space.

swlog
Use $\log_{10}$ (T) or linear (F) spacing.

ns
Number of output scan values.

nres
Resolution between output scan values.

heating
Calculates heating rates if true.

eigen
Calculates eigenfunctions if true.

tensor
Outputs susceptibility tensor if true.