Skip to content

`batch_duration` Stability and Steady Value

This section organizes the theoretical relationship between sim.batch_duration in the BEACH batch loop, or the one-batch physical time determined from sim.batch_duration_step, and the validity and stability of the converged wall-charge distribution. In the current implementation, when batch_duration_step is used, sim.batch_duration = sim.dt * sim.batch_duration_step; in reservoir_face injection, the physical inflow per batch determines the macro-particle count or weight.

Implementation entry points:

For first runs, choose batch_duration empirically before relying on the theory below.

  1. Start with a conservative, small sim.batch_duration_step.
  2. Inspect charge_history.csv, last_rel_change in summary.txt, and absorbed / escaped counts.
  3. Run 2x and 1/2x batch_duration_step comparisons and compare final charge distributions and history shapes.
  4. If the final charge and history are nearly unchanged and no oscillation or divergence appears, keep that value.
  5. If fluctuations dominate, tune target_macro_particles_per_batch, w_particle, batch_count, and history_stride in addition to batch_duration.
SymptomCheckTypical response
Charge history oscillates strongly by batchcharge_history.csvLower batch_duration_step
Final charge changes strongly with step size1/2x and 2x comparisonRecompute with smaller batch_duration_step
History is too noisy to readtarget_macro_particles_per_batch, w_particleAdjust macro-particle count or weight
Run stops before settlingbatches in summary.txtIncrease batch_count

Treat batch_duration as the deterministic explicit-update time step, and particle count / weight as the Monte Carlo noise controls.

Let qj(t)q_j(t) be the accumulated charge of insulator wall element j, and let Jj(q)J_j(\mathbf q) be the incident charge flux per unit wall area at that charge state. The absorption-only model becomes:

dqjdt  =  Jj(q)Aj\frac{dq_j}{dt} \;=\; J_j(\mathbf q)\, A_j

where AjA_j is the element area. Since JJ depends on the field created by wall charge, it is generally nonlinear.

One BEACH batch can be viewed as an explicit update that freezes the field at the start of the batch. In expectation:

qn+1  =  qn  +  ΔtbJ(qn)A  +  ηn\mathbf q^{n+1} \;=\; \mathbf q^n \;+\; \Delta t_b \cdot \mathbf J(\mathbf q^n)\,\mathbf A \;+\; \boldsymbol\eta^n

where:

  • Δtb=\Delta t_b = sim.batch_duration
  • A\mathbf A is the element-area vector
  • ηn\boldsymbol\eta^n is Monte Carlo sampling error within the batch

The implementation follows this picture: particles in a batch see the same field E(qn)E(\mathbf q^n), and the charge delta is applied to the wall at the end of the batch. Thus batch_duration is the time step of this explicit update.

Write the mean update map as:

FΔtb(q)  =  q  +  ΔtbJ(q)AF_{\Delta t_b}(\mathbf q) \;=\; \mathbf q \;+\; \Delta t_b\, \mathbf J(\mathbf q)\,\mathbf A

Its fixed point q\mathbf q^{\ast} satisfies:

FΔtb(q)=qJ(q)=0F_{\Delta t_b}(\mathbf q^{\ast}) = \mathbf q^{\ast} \quad\Longleftrightarrow\quad \mathbf J(\mathbf q^{\ast}) = 0

Therefore, the fixed point of the mean model itself does not depend on Δtb\Delta t_b.

In this sense, if the iteration converges stably and Monte Carlo error is sufficiently averaged, changing batch_duration does not change the targeted continuous-time steady solution.

However, this statement applies only to the fixed point of the mean model. Actual runs include:

  • finite-sample error per batch
  • fluctuation in monitoring quantities used to judge convergence
  • residual error from stopping at a finite batch count

So the observed converged value can retain weak batch_duration dependence. The safe statement is:

The mean fixed point of the iteration is independent of batch_duration, but finite-sample and finite-time calculations can show small step-size dependence.

Near a fixed point q\mathbf q^{\ast}, define perturbations δqn=qnq\delta\mathbf q^n = \mathbf q^n - \mathbf q^{\ast}. The linearized mean update is:

δqn+1  =  (I+ΔtbM)δqn,Mij    (JiAi)qjq\delta \mathbf q^{n+1} \;=\; \bigl(I + \Delta t_b\, M\bigr)\,\delta \mathbf q^n, \qquad M_{ij} \;\equiv\; \frac{\partial (J_i A_i)}{\partial q_j}\bigg|_{\mathbf q^{\ast}}

The stability condition for a general multi-degree-of-freedom system is the spectral-radius condition:

ρ ⁣(I+ΔtbM)<1\rho\!\left(I + \Delta t_b\, M\right) < 1

For each eigenvalue λk\lambda_k:

1+Δtbλk<1|1 + \Delta t_b\, \lambda_k| < 1

This is the essential BEACH stability condition.

As an insulator wall accumulates charge, it tends to attract fewer particles of the same sign, so the dominant eigenvalues of MM are expected to be real negative, Re(λk)<0\mathrm{Re}(\lambda_k) < 0. Only under this real-negative dominant mode assumption, using response time scale τk1/λk\tau_k \equiv 1/|\lambda_k|, the fastest mode avoids divergence when:

0  <  Δtb  <  2λmax  =  2τmin0 \;<\; \Delta t_b \;<\; \frac{2}{|\lambda_{\max}|} \;=\; 2\,\tau_{\min}

and converges monotonically, or overdamped, when:

0  <  Δtb  <  1λmax  =  τmin0 \;<\; \Delta t_b \;<\; \frac{1}{|\lambda_{\max}|} \;=\; \tau_{\min}

Practical interpretation:

  • Δtb<2τmin\Delta t_b < 2\,\tau_{\min}: non-divergence under the real-negative dominant mode assumption
  • Δtb<τmin\Delta t_b < \tau_{\min}: monotone convergence under the same assumption
  • in a general coupled system, the precise condition is ρ(I+ΔtbM)<1\rho(I + \Delta t_b\, M) < 1

Thus the 2τ2\tau / τ\tau rule is better described as an explicit-Euler stability guide under a real-negative dominant mode assumption, not as a strict BEACH CFL condition.

For a one-mode approximation with noise:

δqn+1  =  (1Δtbτ)δqn  +  ξn\delta q^{n+1} \;=\; \left(1 - \frac{\Delta t_b}{\tau}\right)\,\delta q^n \;+\; \xi^n

the steady variance depends on the variance of ξn\xi^n. The key point is that the Δtb\Delta t_b dependence of Var(ξn)\mathrm{Var}(\xi^n) depends on injection normalization. BEACH reservoir_face has two modes.

When w_particle is specified directly, the physical inflow count changes in proportion to Δtb\Delta t_b, so the expected macro-particle count per batch follows:

Nmacro    ΔtbN_\text{macro} \;\propto\; \Delta t_b

The shot-noise variance of the batch charge increment can be regarded roughly as proportional to Δtb\Delta t_b:

Var(ξn)    αΔtb\mathrm{Var}(\xi^n) \;\approx\; \alpha\, \Delta t_b

In the limit Δtbτ\Delta t_b \ll \tau, the steady variance does not depend strongly on batch_duration.

4.2 Fixed target_macro_particles_per_batch

Section titled “4.2 Fixed target_macro_particles_per_batch”

When w_particle is solved from target_macro_particles_per_batch, the weight is determined as in src/config/bem_app_config_runtime.f90:644:

wparticle    ΓAΔtbNtargetw_\text{particle} \;\propto\; \frac{\Gamma\, A\, \Delta t_b}{N_\text{target}}

so the noise dependence on Δtb\Delta t_b differs from the simple Var(ξn)Δtb\mathrm{Var}(\xi^n) \propto \Delta t_b of §4.1. The macro-particle count is fixed, while the contribution per particle is proportional to Δtb\Delta t_b.

The useful separation is:

  • batch_duration mainly controls deterministic stability
  • the main knobs for statistical noise are w_particle or target_macro_particles_per_batch

In particular, neither of these is generally true:

Making batch_duration smaller always lowers noise. Making batch_duration larger leaves noise almost unchanged.

The answer depends on injection normalization.

5. Physical estimate of τmin\tau_{\min}

Section titled “5. Physical estimate of τmin⁡\tau_{\min}τmin​”

τmin\tau_{\min} is the fastest effective response time that controls numerical stability. It is hard to express with one general physical formula because it depends on geometry, potential distribution, upstream distribution function, and injection model. In practice, estimate two different quantities.

A natural estimate uses an effective capacitance CeffC_\text{eff} and effective conductance GeffG_\text{eff}:

τcharge    CeffGeff\tau_\text{charge} \;\sim\; \frac{C_\text{eff}}{G_\text{eff}}

or a typical potential change Δϕ\Delta\phi and effective current IeffI_\text{eff}:

τcharge    CeffΔϕIeff\tau_\text{charge} \;\sim\; \frac{C_\text{eff}\,\Delta\phi}{I_\text{eff}}

This is a relatively slow charging timescale affected by geometry and shielding.

Another fast reference is:

τpe  =  ωpe1  =  ε0menee2\tau_{pe} \;=\; \omega_{pe}^{-1} \;=\; \sqrt{\frac{\varepsilon_0\, m_e}{n_e\, e^2}}

This is the microscopic fast timescale of an electron plasma and is useful as a reference for how sharply the system can respond.

However, treating ωpe1\omega_{pe}^{-1} directly as an upper bound on τmin\tau_{\min} is too strong. It is better viewed as a fast-side physical reference. The effective time constant that limits batch_duration often comes from $\tau_\text{charge}`, including geometry and incoming-flux limits.

For τmin\tau_{\min}, estimate:

  • ωpe1\omega_{pe}^{-1}: microscopic fast reference
  • τcharge\tau_\text{charge}: system-specific charging / sheath relaxation timescale

Then refine with numerical experiments.

ωpe1\omega_{pe}^{-1} is only a fast reference; the actual stability limit is set by an effective response time that often includes τcharge\tau_\text{charge}.

  1. Estimate both ωpe1\omega_{pe}^{-1} and τcharge\tau_\text{charge} as physical scales.
  2. Start with a conservative, smaller batch_duration if oscillation should be avoided.
  3. Compare charge history and monitoring quantities with batch_duration multiplied by 1/2 and 2, as a step-size sensitivity check.
  4. If the converged values nearly agree and no oscillation or divergence is visible, the batch_duration is practically adequate.
  5. If noise is large, first adjust w_particle or target_macro_particles_per_batch. Do not try to solve noise only by changing batch_duration.
  6. Oscillation in charge_history.csv last_rel_change, or jitter in element charge time series, is a useful diagnostic. This is better called a step-size sensitivity check than strict Richardson extrapolation, because it does not assume a power law of the error.
ItemConclusion
Validity of steady valueThe fixed point of the mean update does not depend on batch_duration
Exact stability conditionρ(I+ΔtbM)<1\rho(I + \Delta t_b\, M) < 1
2τ2\tau, τ\tau rulesExplicit-Euler approximate guide under real-negative dominant modes
Role of ωpe1\omega_{pe}^{-1}Microscopic fast reference, not generally a direct stability upper bound
Noise and batch_durationDependence is set by injection normalization
Main noise-reduction knobsAdjust w_particle or target_macro_particles_per_batch
Practical checkStep-size sensitivity check by varying batch_duration

It is theoretically clean to say that the steady value of the mean model does not depend on how batch_duration is chosen. The general stability condition ρ(I+ΔtbM)<1\rho(I + \Delta t_b M) < 1 follows directly from classical stability analysis. The remaining uncertainty is the value of τmin\tau_{\min} itself, which must be narrowed down with both case-specific physical estimates and numerical experiments.