"""Conduction and displacement current in an illustrative material.

Run with Python 3; no third-party packages needed.
Convention: exp(+j*omega*t), E(t) = E0*cos(omega*t).
Constant sigma/epsilon are illustrative, not measured tissue properties.
"""
from math import atan2, hypot, pi

EPSILON_0 = 8.8541878128e-12
RELATIVE_PERMITTIVITY = 80.0
CONDUCTIVITY_S_M = 0.20
FIELD_AMPLITUDE_V_M = 1.0
FREQUENCIES_MHZ = [1, 10, 100, 1000]

print("f (MHz) | Jc (A/m2) | Jd (A/m2) | Jd/Jc | phase (deg)")
for frequency_mhz in FREQUENCIES_MHZ:
    omega = 2 * pi * frequency_mhz * 1e6
    jc = CONDUCTIVITY_S_M * FIELD_AMPLITUDE_V_M
    jd = omega * EPSILON_0 * RELATIVE_PERMITTIVITY * FIELD_AMPLITUDE_V_M
    phase = atan2(jd, jc) * 180 / pi
    print(f"{frequency_mhz:7.0f} | {jc:9.4f} | {jd:9.4f} | {jd/jc:5.2f} | {phase:8.2f}")

crossover_mhz = CONDUCTIVITY_S_M / (2 * pi * EPSILON_0 * RELATIVE_PERMITTIVITY) / 1e6
print(f"Equal current amplitudes at {crossover_mhz:.2f} MHz")
