MicrostripLineParams#
- class simpleEMS.microstrip_line.MicrostripLineParams(min_freq: float, max_freq: float, target_freq: float, elec_length_deg: int = 90, *, substrate_eps_r: float, substrate_tand: float, substrate_thickness_mm: float, substrate_cells: int = 7, unit: float = 0.001, num_points: int = 1000, backend_engine: str = 'FDTD', simulation_box: ndarray[tuple[Any, ...], dtype[_ScalarT]] | None = None, FEM_num_solve_points: int = 10, FEM_max_solve_points: int | None = None, FEM_boundary: str = 'silver_muller', FEM_symmetry: tuple | None = None, FEM_fe_order: int = 1, FEM_air_pad_frac: float = 0.25, FEM_air_pad_mm: float | tuple | None = None, FEM_elems_per_wavelength: float = 16.0, FEM_mesh_freq: float | None = None, FEM_mesh_fine_scale: float = 1.0, FEM_min_layers: int = 3, FEM_port_type: str = 'lumpedport', FEM_port_mode_modes: int = 6, FEM_port_mode_index: int = 0, FEM_port_mode_zc: float | None = None, FEM_port_mode_eps_eff: float | None = None, FEM_waveport_width_mm: float | None = None, FEM_waveport_height_mm: float | None = None, FDTD_timestep: int = 90000000, FDTD_end_criteria: float = 0.0001, FDTD_mesh_resolution_factor: int = 10, FDTD_metal_mesh_resolution_factor: int = 40, copper_thickness_mm: float = 0.035, min_trace_width_mm: float = 0.1, min_trace_spacing_mm: float = 0.089, fp_precision: int = 3, charac_imp: float = 50)#
Bases:
SimParamsParameters for a microstrip transmission line. This class extends SimParams and computes derived geometric parameters required for microstrip line layout and simulation.
- Parameters:
min_freq (float) – Minimum frequency of the simulation range in Hz.
max_freq (float) – Maximum frequency of the simulation range in Hz.
target_freq (float) – Target frequency used to compute the microstrip dimensions in Hz.
elec_length_deg (int, optional) – Electrical length (in degrees) used to compute the microstrip phase shift length. Default is 90.
- microstrip_width_mm#
Computed width of the microstrip trace in millimeters.
- Type:
float
- microstrip_length_mm#
Computed length of the microstrip trace in millimeters.
- Type:
float
- substrate_width_mm#
Substrate width including a 6 x thickness edge margin.
- Type:
float
- substrate_length_mm#
Substrate length, equal to the trace length.
- Type:
float
Attributes Summary
Bundle the flat
FEM_*fields into aFEMOptionsinstance.Return the simulation frequency range.
Return the primary frequency of interest for analysis.
Return
simulation_boxas per-axis[min, max]bounds.Return the substrate length, which the trace spans end to end.
Return the substrate width including the board-edge margin.
Attributes Documentation
- FDTD_end_criteria: float = 0.0001#
- FDTD_mesh_resolution_factor: int = 10#
- FDTD_metal_mesh_resolution_factor: int = 40#
- FDTD_timestep: int = 90000000#
- FEM_air_pad_frac: float = 0.25#
- FEM_air_pad_mm: float | tuple | None = None#
- FEM_boundary: str = 'silver_muller'#
- FEM_elems_per_wavelength: float = 16.0#
- FEM_fe_order: int = 1#
- FEM_max_solve_points: int | None = None#
- FEM_mesh_fine_scale: float = 1.0#
- FEM_mesh_freq: float | None = None#
- FEM_min_layers: int = 3#
- FEM_num_solve_points: int = 10#
- FEM_port_mode_eps_eff: float | None = None#
- FEM_port_mode_index: int = 0#
- FEM_port_mode_modes: int = 6#
- FEM_port_mode_zc: float | None = None#
- FEM_port_type: str = 'lumpedport'#
- FEM_symmetry: tuple | None = None#
- FEM_waveport_height_mm: float | None = None#
- FEM_waveport_width_mm: float | None = None#
- backend_engine: str = 'FDTD'#
- charac_imp: float = 50#
- copper_thickness_mm: float = 0.035#
- elec_length_deg: int = 90#
- fem_options#
Bundle the flat
FEM_*fields into aFEMOptionsinstance.
- fp_precision: int = 3#
- freq_range#
Return the simulation frequency range.
- Returns:
(min_freq, max_freq)in Hz.- Return type:
tuple[float, float]
- main_freq#
Return the primary frequency of interest for analysis.
- Returns:
The target frequency for the microstrip line simulation.
- Return type:
float
- min_trace_spacing_mm: float = 0.089#
- min_trace_width_mm: float = 0.1#
- num_points: int = 1000#
- simulation_bounds#
Return
simulation_boxas per-axis[min, max]bounds.A
(3,)box of sizes is centred on the origin.- Returns:
Array of shape (3, 2),
[[xmin, xmax], [ymin, ymax], [zmin, zmax]]in mm, orNonewhen no simulation box is defined.- Return type:
NDArray or None
- simulation_box: ndarray[tuple[Any, ...], dtype[_ScalarT]] | None = None#
- substrate_cells: int = 7#
- substrate_length_mm#
Return the substrate length, which the trace spans end to end.
Both ports sit on the trace ends, so the board stops there and the connectors land on its edges.
- Returns:
Substrate length in mm.
- Return type:
float
- substrate_width_mm#
Return the substrate width including the board-edge margin.
The board extends 6 substrate thicknesses beyond each edge of the trace, far enough to contain the fringing fields.
- Returns:
Substrate width in mm.
- Return type:
float
- unit: float = 0.001#