Python 3 & MATLAB codes for implementing the Finite Difference Time Domain (FDTD) algorithm to solve Maxwell's equations for modelling different electromagnetic structures.
The Python codes have the following dependencies -
-
NumPy - for mesh discretization
-
matplotlib - for general plots
-
mpl_toolkits.mplot3d - for surface plots
-
homog_gau.py
Gaussian pulse propagation in a homogeneous medium -
homog_gau_abc.py
Gaussian pulse propagation in a homogeneous medium terminated with Absorbing Boundary Condition (ABC) -
interface_gau.py
Gaussian Pulse propagation through an interface with ABC at extreme boundaries -
interface_sin.py
Sine wave propagation through an interface with ABC at extreme boundaries -
Microstrip_SW.py
50 Ω Microstrip transmission line with an open termination (ZL = ∞) and ABC -
Microstrip_SW-2.py
Two symmetrically spaced 50 Ω Microstrip transmission lines with open termination (ZL = ∞) and ABC -
Microstrip_SW-2_dielectric.py
Two symmetrically spaced 50 Ω Microstrip transmission lines with open termination (ZL = ∞), a cylindrical dielectric region in between the striplines and feed on one strip -
Two_port_gaussian.m
Two-port 50 Ω transmission line with gaussian feed at transmitting end. The corresponing signal at the receiving end is analysed in time & frequency domain -
Two_port_modulated_gaussian.m
Two-port 50 Ω transmission line with gaussian signal modulated by a sinusoidal pulse at transmitting end -
Luebbers_Tapered_gaussian.m
Two-port 50 Ω transmission line with Luebber's source (lumped source with internal resistance) and Source Tapering (staircased FDTD mesh transition from ground plane to stripline) for a gaussian signal -
Final_Structure.m
Two-port 50 Ω transmission lines with a cylindrical dielectric region in between