Skip to content

Initial conditions and sources ​

The field at t0 is set by [initial_conditions] type; the current density by the coils ([coils_input]) and, under PIC, by the particles; an external field ([external_fields]) can act on the particles. The keys are in the input reference; this page gives what each one sets. Under the non-dimensional models plane_wave and the pulses convert their SI inputs with L0, B0, D0=B0c0ε0 (models); uniform_field writes its values as given, and rmf_field uses its SI amplitude and frequency with lengths in L0 (no conversion, #108).

After the initial condition, the t0 elliptic solves add the field of the initial charge and current (numerics), and the far-wave layer correction is applied.

Field initial conditions ​

typeField at t0
vacuumevery variable zero
plane_waveD, B of a plane wave: phase cos(2πλ(kxx+kyy+kzz)), D=Dw(kz,kx,ky)cos⁡(⋅), B=B0(ky,kz,kx)cos⁡(⋅), Dw=B0c0ε0
gaussian_pulsea linearly polarized Gaussian wave packet (below)
gaussian_derivative_pulsea pulse with no zero-frequency content, single-cycle or with a carrier (below)
rmf_fieldthe rotating magnetic field at t = 0 (below)
uniform_fieldB=(Bx,By,Bz), D=0

riemann-problem, magnetic_nozzle and rmf_magnetic_nozzle are refused at load (#56). Every kind leaves the GLM scalars, J and ρ at zero.

plane_wave is transverse only along a coordinate axis. With (kx,ky,kz)=(1,0,0) it gives Dy, Bz; for an oblique direction D⋅k=kxkz+kykx+kzky≠0 and, with B=B0(ky,kz,kx), B⋅k=kykx+kzky+kxkz≠0: neither initial field is divergence-free, and without GLM cleaning nothing removes the ∇⋅B.

Gaussian pulse ​

Along the axis a of pulse_direction (±x, ±y, ±z; the sign σv=±1 is the direction of travel), with s=xa−r0:

E(s)=B0c0e−s2/(2σ2)cos⁡(k0s),E=0 for |s|>5σ,

the polarization pairs being (Ey,Bz) along x, (Ez,Bx) along y, (Ex,By) along z, with D=ε0E and B=σvE/c0.

Gaussian-derivative pulse ​

The derivative of a Gaussian vector potential with an optional carrier (k0, default 0), A=A0e−s2/(2σ2)cos⁡(k0s), A0=B0/k02+1/(eσ2), same polarization:

E(s)=−c0A0e−s2/(2σ2)[sσ2cos⁡(k0s)+k0sin⁡(k0s)].

With k0=0 it is the single-cycle pulse E=−B0c0e1/2(s/σ)e−s2/(2σ2), max|B|=B0 at s=∓σ, whose spectrum peaks at kσ=1 with a relative width of order one. With a carrier the spectrum is k[G(k−k0)+G(k+k0)], G a Gaussian of width 1/σ: a packet around k0 of relative width ∼1/(k0σ), with B0 its envelope amplitude for k0σ≫1.

A vanishes on both sides, so the profile has zero area for any k0: no zero-frequency content, no net momentum to free particles, no quasi-static field left in an absorbing layer. It is not truncated.

Rotating magnetic field ​

With the rotation axis γ ([external_fields] RMF_rotation_axis) and (x,y) the two other coordinates in cyclic order, θ=atan2(y,x), r=x2+y2, ω=2πf:

Bx=BRMF,By=0,Dγ=ε0ωrBRMFcos⁡θ,

the field at t = 0 of B rotating at ω about γ, with its induced electric field.

Coils ​

A coil is a prescribed current density J stamped on the grid, one of four kinds (coil_type), with its plane normal (or axis) among ±x, ±y, ±z:

KindGeometry
rectangulara rectangular loop of sides lx, ly
circulara circular loop of radius r_coil
solenoidwindings turns of radius r_coil over a length l_solenoid
helicona polyline antenna through up to 50 points

Stamping. Every kind builds a smooth vector potential A of the coil path, with a Gaussian cross-section of width sigma, and sets J=∇h×A with the operator of [fdv] fdv_scheme (FD or FV). So ∇h⋅J=0 to round-off on a uniform grid, and the coil injects no charge. The first coil's amplitude is calibrated on its Amplitude; the coils after the first reuse the first coil's calibrated amplitude, and a circular coil's amplitude is never set, so it injects no current (defects, #108). The per-coil density is written to the field files as coil_NN_j_vec_1/2/3.

Waveform. At time t (the stage time t+γsΔt inside a Runge–Kutta step) a coil adds Ag(s)cos⁡θ times its stamped density to J:

g(s)=10s3−15s4+6s5,s=clamp(t/td, 0, 1),θ={ϕDC_currentω(t−td)+ϕAC_current

with td = [coils_input] time_delay, ω=2πFrequency, and ϕ = Phase in degrees (0 for DC). g ramps the current smoothly from zero at t0 to full at td, with zero first and second derivatives at both ends. With time_delay <= 0 the current is full at t0, and its magnetic field is solved for at t0.

In the cells a coil occupies, J is reset at every evaluation: a PIC deposit there stops the run.

External fields ​

[external_fields] external_fields_applied = RMF (a field of amplitude RMF_B_amplitude rotating at RMF_frequency about RMF_rotation_axis) or uniform_field adds a prescribed field to the fields the particles see: before every gather it is added to the state, and subtracted after. It is not part of the evolved state, so in an EM run (no particles) it does not change the dynamics; it is, however, added to every field file and slice written, which show the total field. magnetic_nozzle and rmf_and_magnetic_nozzle are refused at initialization.