CfgHFSSSetup#

class pyedb.configuration.cfg_setup.CfgHFSSSetup(/, **data: Any)#

Bases: CfgSetupAC

Represent one HFSS setup entry with adaptive and sweep settings.

Overview#

set_single_frequency_adaptive

Configure single-frequency adaptive meshing.

set_broadband_adaptive

Configure broadband adaptive meshing.

add_multi_frequency_adaptive

Append one adaptive point to multi-frequency adaptive meshing.

set_auto_mesh_operation

Configure the automatic mesh-seeding operation.

add_length_mesh_operation

Append a length-based mesh operation to this HFSS setup.

add_frequency_sweep

Add a frequency sweep to this HFSS setup.

Import detail#

from pyedb.configuration.cfg_setup import CfgHFSSSetup

Attribute detail#

CfgHFSSSetup.type: str = 'hfss'#
CfgHFSSSetup.adapt_type: Literal['broadband', 'single', 'multi_frequencies'] = None#
CfgHFSSSetup.single_frequency_adaptive_solution: CfgHFSSSetup.CfgSingleFrequencyAdaptiveSolution | None = None#
CfgHFSSSetup.broadband_adaptive_solution: CfgHFSSSetup.CfgBroadbandAdaptiveSolution | None = None#
CfgHFSSSetup.multi_frequency_adaptive_solution: CfgHFSSSetup.CfgMultiFrequencyAdaptiveSolution | None = None#
CfgHFSSSetup.auto_mesh_operation: CfgHFSSSetup.CfgAutoMeshOperation | None = None#
CfgHFSSSetup.mesh_operations: list[CfgHFSSSetup.CfgLengthMeshOperation] | None = None#

Method detail#

CfgHFSSSetup.set_single_frequency_adaptive(freq: float | str = '5GHz', max_passes: int = 20, max_delta: float | str = 0.02)#

Configure single-frequency adaptive meshing.

Sets adapt_type to "single" and replaces the current single-frequency solution settings.

Parameters:
freqstr or float, optional

Adaptive frequency, e.g. "5GHz". Default is "5GHz".

max_passesint, optional

Maximum number of adaptive passes. Default is 20.

max_deltastr or float, optional

Convergence criterion (maximum delta-S). Default is 0.02.

Returns:
CfgHFSSSetup

self — enables method chaining.

Examples

>>> hfss.set_single_frequency_adaptive("10GHz", max_passes=15, max_delta=0.01)
CfgHFSSSetup.set_broadband_adaptive(low_freq: float | str = '1GHz', high_freq: float | str = '10GHz', max_passes: int = 20, max_delta: float | str = 0.02)#

Configure broadband adaptive meshing.

Sets adapt_type to "broadband" and replaces the current broadband solution settings.

Parameters:
low_freqstr or float, optional

Lower adaptive frequency, e.g. "1GHz". Default is "1GHz".

high_freqstr or float, optional

Upper adaptive frequency, e.g. "10GHz". Default is "10GHz".

max_passesint, optional

Maximum number of adaptive passes. Default is 20.

max_deltastr or float, optional

Convergence criterion (maximum delta-S). Default is 0.02.

Returns:
CfgHFSSSetup

self — enables method chaining.

Examples

>>> hfss.set_broadband_adaptive("1GHz", "20GHz", max_passes=25, max_delta=0.01)
CfgHFSSSetup.add_multi_frequency_adaptive(freq: float | str, max_passes: int = 20, max_delta: float | str = 0.02)#

Append one adaptive point to multi-frequency adaptive meshing.

Calling this method sets adapt_type to "multi_frequencies". Call it multiple times to add several adaptive frequency points.

Parameters:
freqstr or float

Adaptive frequency to add, e.g. "5GHz".

max_passesint, optional

Maximum passes for this frequency. Default is 20.

max_deltastr or float, optional

Convergence criterion. Default is 0.02.

Returns:
CfgHFSSSetup

self — enables method chaining.

Examples

>>> hfss.add_multi_frequency_adaptive("5GHz")
>>> hfss.add_multi_frequency_adaptive("10GHz", max_passes=30)
CfgHFSSSetup.set_auto_mesh_operation(enabled: bool = True, trace_ratio_seeding: float = 3.0, signal_via_side_number: int = 12)#

Configure the automatic mesh-seeding operation.

Parameters:
enabledbool, optional

Enable automatic mesh seeding. Default is True.

trace_ratio_seedingfloat, optional

Ratio of trace width used for seeding element size. Default is 3.0.

signal_via_side_numberint, optional

Number of mesh segments per signal-via circumference. Default is 12.

Returns:
CfgHFSSSetup

self — enables method chaining.

Examples

>>> hfss.set_auto_mesh_operation(enabled=True, trace_ratio_seeding=4.0)
CfgHFSSSetup.add_length_mesh_operation(mesh_op: CfgLengthMeshOperation | str = None, nets_layers_list: dict[str, list] = None, max_length: float | str | None = '1mm', max_elements: int | str | None = 1000, restrict_length: bool | None = True, refine_inside: bool | None = False, name: str = None)#

Append a length-based mesh operation to this HFSS setup.

Accepts a pre-built CfgLengthMeshOperation payload or individual keyword arguments to build one inline.

Parameters:
mesh_opCfgLengthMeshOperation or str, optional

Pre-built mesh-operation object or a name string (legacy positional use). When None, a new operation is constructed from the remaining parameters.

nets_layers_listdict[str, list], optional

Mapping from net name to a list of layer names on which to apply the operation, e.g. {"SIG": ["top", "bot"]}.

max_lengthstr or float, optional

Maximum element edge length. Supports unit strings such as "0.5mm". Default is "1mm".

max_elementsint or str, optional

Maximum number of mesh elements in the seeded region. Default is 1000.

restrict_lengthbool, optional

Whether to enforce the max_length constraint. Default is True.

refine_insidebool, optional

Whether to refine inside vias. Default is False.

namestr, optional

Operation name. Required when building inline.

Returns:
CfgHFSSSetup

self — enables method chaining.

Examples

>>> hfss.add_length_mesh_operation(
...     name="mesh_sig",
...     nets_layers_list={"SIG": ["top"]},
...     max_length="0.5mm",
... )
CfgHFSSSetup.add_frequency_sweep(name: CfgSetupAC | str, sweep_type: str = 'interpolation', start=None, stop=None, step_or_count=None, distribution: str = 'linear_count', **kwargs)#

Add a frequency sweep to this HFSS setup.

Parameters:
nameCfgFrequencySweep or str

Either a pre-built CfgFrequencySweep object (round-trip use) or a name string for a new sweep.

sweep_typestr, optional

Sweep interpolation type. "interpolation" (default) or "discrete".

startstr or float, optional

Inline range start frequency, e.g. "1GHz". When supplied, stop and step_or_count are also required.

stopstr or float, optional

Inline range stop frequency.

step_or_countstr, float, or int, optional

Point count ("linear_count", "log_count") or step size ("linear_scale", "log_scale").

distributionstr, optional

Frequency distribution for the inline range. Default is "linear_count".

**kwargs

Extra keyword arguments forwarded to CfgFrequencySweep (e.g. enforce_passivity, adv_dc_extrapolation, …).

Returns:
CfgFrequencySweep

The newly created (or passed-through) sweep object.

Examples

Inline — single call describes a complete sweep:

>>> hfss.add_frequency_sweep(
...     "sweep1",
...     start="1GHz",
...     stop="20GHz",
...     step_or_count=100,
...     distribution="linear_count",
...     enforce_passivity=True,
... )

Chained — add multiple ranges to one sweep:

>>> sw = hfss.add_frequency_sweep("sweep2", sweep_type="interpolation")
>>> sw.add_linear_count_frequencies("1GHz", "10GHz", 100)
>>> sw.add_single_frequency("0Hz")

Classes#

CfgSingleFrequencyAdaptiveSolution

Base Pydantic model used by typed configuration payload classes.

CfgBroadbandAdaptiveSolution

Base Pydantic model used by typed configuration payload classes.

CfgAutoMeshOperation

Base Pydantic model used by typed configuration payload classes.

CfgMultiFrequencyAdaptiveSolution

Base Pydantic model used by typed configuration payload classes.

CfgLengthMeshOperation

Mesh operation export/import payload.