{
  "title": "HuraySurfaceRoughness",
  "public_path": "flex_rf.tidy3d.HuraySurfaceRoughness",
  "lookup_path": "tidy3d.rf.HuraySurfaceRoughness",
  "slug": "flex_rf/tidy3d/HuraySurfaceRoughness",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/huraysurfaceroughness/",
  "object_kind": "class",
  "introduction": "Huray surface roughness model.",
  "notes": "The power loss compared to smooth surface is described by:\n\n$$\n\\frac{A_{matte}}{A_{flat}} + \\frac{3}{2}\\sum_i f_i/[1+\\frac{\\delta}{r_i}+\\frac{\\delta^2}{2r_i^2}]\n$$\n\nwhere $$\\delta$$ is skin depth, $$r_i$$ the radius of sphere,\n$$\\frac{A_{matte}}{A_{flat}}$$ the relative area of the matte compared to flat surface,\nand $$f_i=N_i4\\pi r_i^2/A_{flat}$$ the ratio of total sphere\nsurface area (number of spheres $$N_i$$ times the individual sphere surface area)\nto the flat surface area.\n\nThis model is based on:\n\nJ. Eric Bracken, \"A Causal Huray Model for Surface Roughness\", DesignCon, 2012.",
  "examples": "",
  "references": "",
  "signature": "class HuraySurfaceRoughness(AbstractSurfaceRoughness)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/medium.py",
    "url": "",
    "lineno": 5723,
    "endlineno": 5815
  },
  "bases": [
    "AbstractSurfaceRoughness"
  ],
  "parameter_rows": [
    {
      "name": "relative_area",
      "annotation": "PositiveFloat",
      "default": "1",
      "description": "Relative area of the matte base compared to a flat surface",
      "origin": "declared"
    },
    {
      "name": "coeffs",
      "annotation": "tuple[tuple[PositiveFloat, PositiveFloat], ...]",
      "default": "",
      "description": "List of ($$f_i, r_i$$) values for model, where $$f_i$$ is the ratio of total sphere surface area to the flat surface area, and $$r_i$$ the radius of the sphere.",
      "origin": "declared"
    },
    {
      "name": "attrs",
      "annotation": "dict",
      "default": "factory: dict",
      "description": "Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields, `attrs` are mutable. For example, the following is allowed for setting an `attr` `obj.attrs['foo'] = bar`. Also note that Tidy3D will raise a `TypeError` if `attrs` contain objects that can not be serialized. One can check if `attrs` are serializable by calling `obj.model_dump_json()`.",
      "origin": "inherited"
    }
  ],
  "members": [
    {
      "name": "from_cannonball_huray",
      "kind": "function",
      "signature": "from_cannonball_huray(radius: float)",
      "description": "Construct a Cannonball-Huray model."
    },
    {
      "name": "roughness_correction_factor",
      "kind": "function",
      "signature": "roughness_correction_factor(frequency: ArrayFloat1D, skin_depths: ArrayFloat1D)",
      "description": "Complex-valued roughness correction factor applied to surface impedance."
    }
  ],
  "group": "flex_rf.tidy3d"
}
