{
  "title": "HammerstadSurfaceRoughness",
  "public_path": "flex_rf.tidy3d.HammerstadSurfaceRoughness",
  "lookup_path": "tidy3d.rf.HammerstadSurfaceRoughness",
  "slug": "flex_rf/tidy3d/HammerstadSurfaceRoughness",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/hammerstadsurfaceroughness/",
  "object_kind": "class",
  "introduction": "Modified Hammerstad surface roughness model. It's a popular model that works well\nunder 5 GHz for surface roughness below 2 micrometer RMS.",
  "notes": "The power loss compared to smooth surface is described by:\n\n$$\n1 + (RF-1) \\frac{2}{\\pi}\\arctan(1.4\\frac{R_q^2}{\\delta^2})\n$$\n\nwhere $$\\delta$$ is skin depth, $$R_q$$ the RMS peak-to-vally height, and RF\nroughness factor.\n\nThis model is based on:\n\nY. Shlepnev, C. Nwachukwu, \"Roughness characterization for interconnect analysis\",\n2011 IEEE International Symposium on Electromagnetic Compatibility,\n(DOI: 10.1109/ISEMC.2011.6038367), 2011.\n\nV. Dmitriev-Zdorov, B. Simonovich, I. Kochikov, \"A Causal Conductor Roughness Model\nand its Effect on Transmission Line Characteristics\", Signal Integrity Journal, 2018.",
  "examples": "",
  "references": "",
  "signature": "class HammerstadSurfaceRoughness(AbstractSurfaceRoughness)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/medium.py",
    "url": "",
    "lineno": 5651,
    "endlineno": 5720
  },
  "bases": [
    "AbstractSurfaceRoughness"
  ],
  "parameter_rows": [
    {
      "name": "rq",
      "annotation": "PositiveFloat",
      "default": "",
      "description": "RMS peak-to-valley height (Rq) of the surface roughness.",
      "origin": "declared"
    },
    {
      "name": "roughness_factor",
      "annotation": "float",
      "default": "2.0",
      "description": "Expected maximal increase in conductor losses due to roughness effect. Value 2 gives the classic Hammerstad equation.",
      "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": "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"
}
