RF Mode Analysis
MicrowaveModeSpec
extends the standard mode specification with characteristic impedance
calculation. It is useful for RF and microwave transmission lines where Z0 is
a key result.
Unlike a standard mode spec, MicrowaveModeSpec includes impedance_specs,
which defines how voltage and current path integrals are computed for each
mode.
from flex_rf.tidy3d import AutoImpedanceSpec, MicrowaveModeMonitor, MicrowaveModeSpec
mode_spec = MicrowaveModeSpec( num_modes=2, target_neff=1.5, impedance_specs=AutoImpedanceSpec(),)
monitor = MicrowaveModeMonitor( center=(0, 0, 0), size=(2, 2, 0), freqs=[1e9, 2e9, 3e9], mode_spec=mode_spec, name="mode_monitor",)Automatic Impedance
Section titled “Automatic Impedance”AutoImpedanceSpec
automatically determines voltage and current integration paths from the mode
field distribution. This is the recommended starting point.
from flex_rf.tidy3d import AutoImpedanceSpec, MicrowaveModeSpec
mode_spec_auto = MicrowaveModeSpec( num_modes=1, impedance_specs=AutoImpedanceSpec(),)Custom Impedance
Section titled “Custom Impedance”Use
CustomImpedanceSpec
when you need precise control over voltage and current path placement.
from flex_rf.tidy3d import ( AxisAlignedCurrentIntegralSpec, AxisAlignedVoltageIntegralSpec, CustomImpedanceSpec, MicrowaveModeSpec,)
voltage_spec = AxisAlignedVoltageIntegralSpec( center=(0, 0, 0), size=(0, 0, 1), sign="+",)
current_spec = AxisAlignedCurrentIntegralSpec( center=(0, 0, 0), size=(2, 1, 0), sign="+",)
custom_impedance = CustomImpedanceSpec( voltage_spec=voltage_spec, current_spec=current_spec,)
mode_spec_custom = MicrowaveModeSpec( num_modes=1, impedance_specs=custom_impedance,)Multiple Modes
Section titled “Multiple Modes”Provide one impedance specification per mode, or provide a single specification that is applied to all modes.
mode_spec_multi = MicrowaveModeSpec( num_modes=2, impedance_specs=( AutoImpedanceSpec(), custom_impedance, ),)
mode_spec_shared = MicrowaveModeSpec( num_modes=2, impedance_specs=AutoImpedanceSpec(),)Mode Solver Monitors
Section titled “Mode Solver Monitors”| Monitor | Use |
|---|---|
MicrowaveModeMonitor | Records mode amplitudes and transmission-line parameters during a full 3D simulation. |
MicrowaveModeSolverMonitor | Stores complete 2D mode field profiles from a standalone mode solver calculation. |
from flex_rf.tidy3d import MicrowaveModeMonitor, MicrowaveModeSolverMonitor
mode_monitor = MicrowaveModeMonitor( center=(0, 0, 0), size=(2, 2, 0), freqs=[1e9, 2e9], mode_spec=mode_spec, name="mode_monitor",)
mode_solver_monitor = MicrowaveModeSolverMonitor( center=(0, 0, 0), size=(2, 2, 0), freqs=[1e9, 2e9], mode_spec=mode_spec, name="mode_solver_monitor",)Standalone Mode Simulation
Section titled “Standalone Mode Simulation”Use ModeSimulation to solve modes without a full 3D FDTD run.
from flex_rf import webfrom flex_rf.tidy3d import GridSpec, ModeSimulation
mode_sim = ModeSimulation( size=(10, 10, 0), grid_spec=GridSpec.auto(wavelength=0.3), structures=[...], mode_spec=mode_spec, freqs=[1e9, 2e9, 3e9],)
mode_sim_data = web.run(mode_sim, task_name="mode_analysis")z0 = mode_sim_data.modes.transmission_line_data.Z0Related Pages
Section titled “Related Pages”| Page | Why open it |
|---|---|
| Path Integrals | Define voltage and current paths used by impedance specs. |
| Impedance Calculator | Calculate impedance from mode or field data after a run. |
| Wave Ports | Use microwave mode specs in modal RF ports. |