Skip to content

Commit

Permalink
Added max_num_poles at least min_num_poles validator to FastDispersio…
Browse files Browse the repository at this point in the history
…nFitter
  • Loading branch information
caseyflex authored and momchil-flex committed Dec 13, 2023
1 parent 0857821 commit c34a23e
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions tidy3d/plugins/dispersion/fit_fast.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,12 @@ class FastFitterData(AdvancedFastFitterParam):
title="eps_inf",
description="Value of ``eps_inf``.",
)
poles: ArrayComplex1D = Field(
poles: Optional[ArrayComplex1D] = Field(
None, title="Pole frequencies in eV", description="Pole frequencies in eV"
)
residues: ArrayComplex1D = Field(None, title="Residues in eV", description="Residues in eV")
residues: Optional[ArrayComplex1D] = Field(
None, title="Residues in eV", description="Residues in eV"
)

passivity_optimized: Optional[bool] = Field(
False,
Expand Down Expand Up @@ -188,7 +190,11 @@ def _generate_initial_poles(cls, val, values):
"""Generate initial poles."""
if val is not None:
return val
if values["logspacing"] is None or values["smooth"] is None:
if (
values.get("logspacing") is None
or values.get("smooth") is None
or values.get("num_poles") is None
):
return None
omega = values["omega"]
num_poles = values["num_poles"]
Expand All @@ -211,7 +217,7 @@ def _generate_initial_residues(cls, val, values):
"""Generate initial residues."""
if val is not None:
return val
poles = values["poles"]
poles = values.get("poles")
if poles is None:
return None
return np.zeros(len(poles))
Expand Down Expand Up @@ -675,6 +681,11 @@ def fit(
Best fitting result: (dispersive medium, weighted RMS error).
"""

if max_num_poles < min_num_poles:
raise ValidationError(
"Dispersion fitter cannot have 'max_num_poles' less than 'min_num_poles'."
)

omega = PoleResidue.angular_freq_to_eV(PoleResidue.Hz_to_angular_freq(self.freqs[::-1]))
eps = self.eps_data[::-1]

Expand Down

0 comments on commit c34a23e

Please sign in to comment.