Skip to content
Projects

Vlasov iteration

The equations of beamtracer.solver.vlasov, declared on the code that implements them and checked by the tests.

apply_compensation

functionsource

Return rho with the compensation of every region applied.

compensation
ρb←(1−f) ρbon the node columns xmin≤xi≤xmax\rho_b \leftarrow (1 - f)\, \rho_b \quad \text{on the node columns } x_\mathrm{min} \le x_i \le x_\mathrm{max}
Assumes
  • f∈[0,1]f \in [0, 1] the compensated share, e.g. by the electrons of the background gas; regions applied in turn, so overlapping ones multiply

vlasov_iterate

functionsource

Run iterations Vlasov iterations.

iteration 0
ϕ0=the vacuum solution, with the free nodes at x<xplasma held at Up (with a plasma)\phi^0 = \text{the vacuum solution, with the free nodes at } x < x_\mathrm{plasma} \text{ held at } U_p \text{ (with a plasma)}
solve
∇2ϕn=−ρbn+ρp(ϕn)ε0,Newton from ϕn−1\nabla^2 \phi^{n} = -\frac{\rho_b^{n} + \rho_p(\phi^{n})}{\varepsilon_0}, \qquad \text{Newton from } \phi^{n-1}
relaxation
ρbn+1=(1−ω) ρbn+ω ρnew(ϕn),ρb1=ρnew(ϕ0)\rho_b^{n+1} = (1 - \omega)\, \rho_b^{n} + \omega\, \rho_\mathrm{new}(\phi^{n}), \qquad \rho_b^1 = \rho_\mathrm{new}(\phi^0)
convergence
max⁡∣ϕn−ϕn−1∣<tolerance\max |\phi^{n} - \phi^{n-1}| < \text{tolerance}
Assumes
  • ρnew\rho_\mathrm{new} the compensated deposit of the beam traced in ϕn\phi^n, re-seeded identically every iteration; ω\omega = relaxation in (0,1](0, 1] acts on the charge density, not on the potential
  • the Boltzmann species built once, at n=1n = 1, with ρ0\rho_0 given or the beams' ∑J/v0\sum J / v_0
  • at most iterations; an unconverged iteration returns its last state without a warning (stats['converged'] is 0); the returned trace is that of the newest potential
  • with MPI every rank solves the whole field and the deposits are summed
Built from