INNER CODE UNIT · Python
R
MatthewFilipovich/pycharge · src/pycharge/potentials_and_fields.py:132
R = jnp.linalg.norm(r - r_src) # Distance from source to observation point
n = (r - r_src) / R # Unit vector from source to observation
β = v_src / c # Velocity normalized to speed of light
β̇ = a_src / c # Acceleration normalized to speed of light
one_minus_β_dot_β = 1 - jnp.dot(β, β)
one_minus_n_dot_β = 1 - jnp.dot(n, β)
one_minus_n_dot_β_cubed = one_minus_n_dot_β**3
n_minus_β = n - β
coeff = q / (4 * pi * epsilon_0) # Common coefficient
# Potentials
φ = coeff / (one_minus_n_dot_β * R)
A = β * φ / c
# Fields
E1 = coeff * n_minus_β * one_minus_β_dot_β / (one_minus_n_dot_β_cubed * R**2)
E2 = coeff * jnp.cross(n, jnp.cross(n_minus_β, β̇)) / (c * one_minus_n_dot_β_cubed * R)
E = E1 + E2