rompy.swan.components.physics.GEN3#

pydantic model rompy.swan.components.physics.GEN3[source]#

Third generation source terms GEN3.

GEN3 JANSSEN|KOMEN|->WESTHUYSEN|ST6 AGROW [a]

With this command the user indicates that SWAN should run in third-generation mode for wind input, quadruplet interactions and whitecapping.

Examples

In [70]: from rompy.swan.components.physics import GEN3

In [71]: gen = GEN3(
   ....:     source_terms=dict(
   ....:         model_type="westhuysen",
   ....:         wind_drag="wu",
   ....:         agrow=True,
   ....:     ),
   ....: )
   ....: 

In [72]: print(gen.render())
GEN3 WESTHUYSEN DRAG WU AGROW

In [73]: from rompy.swan.subcomponents.physics import ST6C1

In [74]: gen = GEN3(source_terms=ST6C1())

In [75]: print(gen.render())
GEN3 ST6 a1sds=4.7e-07 a2sds=6.6e-06 p1sds=4.0 p2sds=4.0 UP HWANG VECTAU U10PROXY windscaling=28.0 AGROW

Show JSON schema
{
   "title": "GEN3",
   "description": "Third generation source terms GEN3.\n\n.. code-block:: text\n\n    GEN3 JANSSEN|KOMEN|->WESTHUYSEN|ST6 AGROW [a]\n\nWith this command the user indicates that SWAN should run in third-generation mode\nfor wind input, quadruplet interactions and whitecapping.\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.components.physics import GEN3\n    gen = GEN3(\n        source_terms=dict(\n            model_type=\"westhuysen\",\n            wind_drag=\"wu\",\n            agrow=True,\n        ),\n    )\n    print(gen.render())\n    from rompy.swan.subcomponents.physics import ST6C1\n    gen = GEN3(source_terms=ST6C1())\n    print(gen.render())",
   "type": "object",
   "properties": {
      "model_type": {
         "default": "gen3",
         "description": "Model type discriminator",
         "enum": [
            "gen3",
            "GEN3"
         ],
         "title": "Model Type",
         "type": "string"
      },
      "source_terms": {
         "description": "SWAN source terms to be used (SWAN default: WESTHUYSEN)",
         "discriminator": {
            "mapping": {
               "JANSSEN": "#/$defs/JANSSEN",
               "KOMEN": "#/$defs/KOMEN",
               "WESTHUYSEN": "#/$defs/WESTHUYSEN",
               "janssen": "#/$defs/JANSSEN",
               "komen": "#/$defs/KOMEN",
               "st6": "#/$defs/ST6",
               "st6c1": "#/$defs/ST6C1",
               "st6c2": "#/$defs/ST6C2",
               "st6c3": "#/$defs/ST6C3",
               "st6c4": "#/$defs/ST6C4",
               "st6c5": "#/$defs/ST6C5",
               "westhuysen": "#/$defs/WESTHUYSEN"
            },
            "propertyName": "model_type"
         },
         "oneOf": [
            {
               "$ref": "#/$defs/JANSSEN"
            },
            {
               "$ref": "#/$defs/KOMEN"
            },
            {
               "$ref": "#/$defs/WESTHUYSEN"
            },
            {
               "$ref": "#/$defs/ST6"
            },
            {
               "$ref": "#/$defs/ST6C1"
            },
            {
               "$ref": "#/$defs/ST6C2"
            },
            {
               "$ref": "#/$defs/ST6C3"
            },
            {
               "$ref": "#/$defs/ST6C4"
            },
            {
               "$ref": "#/$defs/ST6C5"
            }
         ],
         "title": "Source Terms"
      }
   },
   "$defs": {
      "JANSSEN": {
         "additionalProperties": false,
         "description": "Janssen source terms subcomponent.\n\n.. code-block:: text\n\n    JANSSEN [cds1] [delta] (AGROW [a])\n\nReferences\n----------\nJanssen, P.A., 1989. Wave-induced stress and the drag of air flow over sea waves.\nJournal of Physical Oceanography, 19(6), pp.745-754.\n\nJanssen, P.A.E.M., Lionello, P. and Zambresky, L., 1989. On the interaction of wind\nand waves. Philosophical transactions of the royal society of London. Series A,\nMathematical and Physical Sciences, 329(1604), pp.289-301.\n\nJanssen, P.A., 1991. Quasi-linear theory of wind-wave generation applied to wave\nforecasting. Journal of physical oceanography, 21(11), pp.1631-1642.\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import JANSSEN\n    janssen = JANSSEN()\n    print(janssen.render())\n    janssen = JANSSEN(cds1=4.5, delta=0.5, agrow=True)\n    print(janssen.render())",
         "properties": {
            "model_type": {
               "default": "janssen",
               "description": "Model type discriminator",
               "enum": [
                  "janssen",
                  "JANSSEN"
               ],
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "default": "wu",
               "description": "Indicates the wind drag formulation",
               "enum": [
                  "wu",
                  "fit"
               ],
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "default": false,
               "description": "Activate the Cavaleri and Malanotte (1981) wave growth term",
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "cds1": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Coefficient for determining the rate of whitecapping dissipation ($Cds / s^4_{PM}$) (SWAN default: 4.5)",
               "title": "Cds1"
            },
            "delta": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Coefficient which determines the dependency of the whitecapping on wave number (mix with Komen et al. formulation) (SWAN default: 0.5)",
               "title": "Delta"
            }
         },
         "title": "JANSSEN",
         "type": "object"
      },
      "KOMEN": {
         "additionalProperties": false,
         "description": "Komen source terms subcomponent.\n\n.. code-block:: text\n\n    KOMEN [cds2] [stpm] (AGROW [a])\n\nReferences\n----------\nKomen, G.J., Hasselmann, S. and Hasselmann, K., 1984. On the existence of a fully\ndeveloped wind-sea spectrum. Journal of physical oceanography, 14(8), pp.1271-1285.\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import KOMEN\n    komen = KOMEN()\n    print(komen.render())\n    komen = KOMEN(cds2=2.36e-5, stpm=3.02e-3, agrow=True, a=0.0015)\n    print(komen.render())",
         "properties": {
            "model_type": {
               "default": "komen",
               "description": "Model type discriminator",
               "enum": [
                  "komen",
                  "KOMEN"
               ],
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "default": "wu",
               "description": "Indicates the wind drag formulation",
               "enum": [
                  "wu",
                  "fit"
               ],
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "default": false,
               "description": "Activate the Cavaleri and Malanotte (1981) wave growth term",
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "cds2": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Coefficient for determining the rate of whitecapping dissipation (`Cds`) (SWAN default: 2.36e-5)",
               "title": "Cds2"
            },
            "stpm": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Value of the wave steepness for a Pierson-Moskowitz spectrum (`s^2_PM`) (SWAN default: 3.02e-3)",
               "title": "Stpm"
            }
         },
         "title": "KOMEN",
         "type": "object"
      },
      "ST6": {
         "additionalProperties": false,
         "description": "St6 source terms subcomponent.\n\n.. code-block:: text\n\n    ST6 [a1sds] [a2sds] [p1sds] [p2sds] UP|DOWN HWANG|FAN|ECMWF VECTAU|SCATAU &\n        TRUE10|U10PROXY [windscaling] DEBIAS [cdfac] (AGROW [a])\n\nwind input and whitecapping from Rogers et al. (2012) (RBW12).\n\nNotes\n-----\nThe two arguments are specified in the Appendix C of the User manual but not in the\ncommand description for WESTH in Section 4.5.4. They are also options in the\nWCAPPING command. It is not entirely clear if they should/could be specified here.\n\nReferences\n----------\nFan, Y., Lin, S.J., Held, I.M., Yu, Z. and Tolman, H.L., 2012. Global ocean surface\nwave simulation using a coupled atmosphere\u2013wave model. Journal of Climate, 25(18),\npp.6233-6252.\n\nRogers, W.E., Babanin, A.V. and Wang, D.W., 2012. Observation-consistent input and\nwhitecapping dissipation in a model for wind-generated surface waves: Description\nand simple calculations. Journal of Atmospheric and Oceanic Technology, 29(9),\npp.1329-1346.\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import ST6\n    st6 = ST6(a1sds=4.7e-7, a2sds=6.6e-6)\n    print(st6.render())\n    kwargs = dict(\n        a1sds=2.8e-6,\n        a2sds=3.5e-5,\n        normalization=\"up\",\n        wind_drag=\"hwang\",\n        tau=\"vectau\",\n        u10=\"u10proxy\",\n        windscaling=32.0,\n        cdfac=0.89,\n        agrow=True,\n        a=0.0015,\n    )\n    st6 = ST6(**kwargs)\n    print(st6.render())",
         "properties": {
            "model_type": {
               "const": "st6",
               "default": "st6",
               "description": "Model type discriminator",
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "default": "hwang",
               "description": "Wind drag formula, `hwang` is the default and is unchanged from RBW12, `fan` is from Fan et al. (2012), `ecmwf` follows WAM Cycle 4 methodology",
               "enum": [
                  "hwang",
                  "fan",
                  "ecmwf"
               ],
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "default": false,
               "description": "Activate the Cavaleri and Malanotte (1981) wave growth term",
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "a1sds": {
               "description": "Coefficient related to local dissipation term T1 (a1 in RBW12)",
               "title": "A1Sds",
               "type": "number"
            },
            "a2sds": {
               "description": "Coefficient related to local dissipation term T2 (a2 in RBW12)",
               "title": "A2Sds",
               "type": "number"
            },
            "p1sds": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Power coefficient controlling strength of dissipation term T1 (L in RBW12, SWAN default: 4)",
               "title": "P1Sds"
            },
            "p2sds": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Power coefficient controlling strength of dissipation term T2 (M in RBW12, SWAN default: 4)",
               "title": "P2Sds"
            },
            "normalization": {
               "default": "up",
               "description": "Selection of normalization of exceedance level by ET(f) (`up`) or E(f) (`down`) as in RBW12 (right column, page 1333), `up` is default and strongly recommended",
               "enum": [
                  "up",
                  "down"
               ],
               "title": "Normalization",
               "type": "string"
            },
            "tau": {
               "default": "vectau",
               "description": "Use vector (vectau) or scalar (scatau) calculation for the wind strerss (Eq. 12 in RBW12), `vectau` is the default and strongly recommended",
               "enum": [
                  "vectau",
                  "scatau"
               ],
               "title": "Tau",
               "type": "string"
            },
            "u10": {
               "default": "u10proxy",
               "description": "Wind velocity definition",
               "enum": [
                  "u10proxy",
                  "true10"
               ],
               "title": "U10",
               "type": "string"
            },
            "windscaling": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": 32.0,
               "description": "Factor to scale U10 with U* when using U10PROXY",
               "title": "Windscaling"
            },
            "cdfac": {
               "anyOf": [
                  {
                     "exclusiveMinimum": 0.0,
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Counter bias in the input wind fields by providing a multiplier on the drag coefficient",
               "title": "Cdfac"
            }
         },
         "required": [
            "a1sds",
            "a2sds"
         ],
         "title": "ST6",
         "type": "object"
      },
      "ST6C1": {
         "additionalProperties": false,
         "description": "First ST6 calibration in the SWAN user manual.\n\n.. code-block:: text\n\n    ST6 4.7e-7 6.6e-6 4.0 4.0 UP HWANG VECTAU U10PROXY 28.0 AGROW\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import ST6C1\n    st6 = ST6C1()\n    print(st6.render())",
         "properties": {
            "model_type": {
               "const": "st6c1",
               "default": "st6c1",
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "default": "hwang",
               "description": "Wind drag formula, `hwang` is the default and is unchanged from RBW12, `fan` is from Fan et al. (2012), `ecmwf` follows WAM Cycle 4 methodology",
               "enum": [
                  "hwang",
                  "fan",
                  "ecmwf"
               ],
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "const": true,
               "default": true,
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "a1sds": {
               "const": 4.7e-07,
               "default": 4.7e-07,
               "title": "A1Sds",
               "type": "number"
            },
            "a2sds": {
               "const": 6.6e-06,
               "default": 6.6e-06,
               "title": "A2Sds",
               "type": "number"
            },
            "p1sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P1Sds",
               "type": "number"
            },
            "p2sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P2Sds",
               "type": "number"
            },
            "normalization": {
               "default": "up",
               "description": "Selection of normalization of exceedance level by ET(f) (`up`) or E(f) (`down`) as in RBW12 (right column, page 1333), `up` is default and strongly recommended",
               "enum": [
                  "up",
                  "down"
               ],
               "title": "Normalization",
               "type": "string"
            },
            "tau": {
               "default": "vectau",
               "description": "Use vector (vectau) or scalar (scatau) calculation for the wind strerss (Eq. 12 in RBW12), `vectau` is the default and strongly recommended",
               "enum": [
                  "vectau",
                  "scatau"
               ],
               "title": "Tau",
               "type": "string"
            },
            "u10": {
               "default": "u10proxy",
               "description": "Wind velocity definition",
               "enum": [
                  "u10proxy",
                  "true10"
               ],
               "title": "U10",
               "type": "string"
            },
            "windscaling": {
               "const": 28.0,
               "default": 28.0,
               "title": "Windscaling",
               "type": "number"
            },
            "cdfac": {
               "anyOf": [
                  {
                     "exclusiveMinimum": 0.0,
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Counter bias in the input wind fields by providing a multiplier on the drag coefficient",
               "title": "Cdfac"
            }
         },
         "title": "ST6C1",
         "type": "object"
      },
      "ST6C2": {
         "additionalProperties": false,
         "description": "Second ST6 calibration in the SWAN user manual.\n\n.. code-block:: text\n\n    ST6 4.7e-7 6.6e-6 4.0 4.0 UP FAN VECTAU U10PROXY 28.0 AGROW\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import ST6C2\n    st6 = ST6C2()\n    print(st6.render())\n\nTODO: Ensure validator is reused here so fan and debias are not used together.",
         "properties": {
            "model_type": {
               "const": "st6c2",
               "default": "st6c2",
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "const": "fan",
               "default": "fan",
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "const": true,
               "default": true,
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "a1sds": {
               "const": 4.7e-07,
               "default": 4.7e-07,
               "title": "A1Sds",
               "type": "number"
            },
            "a2sds": {
               "const": 6.6e-06,
               "default": 6.6e-06,
               "title": "A2Sds",
               "type": "number"
            },
            "p1sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P1Sds",
               "type": "number"
            },
            "p2sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P2Sds",
               "type": "number"
            },
            "normalization": {
               "default": "up",
               "description": "Selection of normalization of exceedance level by ET(f) (`up`) or E(f) (`down`) as in RBW12 (right column, page 1333), `up` is default and strongly recommended",
               "enum": [
                  "up",
                  "down"
               ],
               "title": "Normalization",
               "type": "string"
            },
            "tau": {
               "default": "vectau",
               "description": "Use vector (vectau) or scalar (scatau) calculation for the wind strerss (Eq. 12 in RBW12), `vectau` is the default and strongly recommended",
               "enum": [
                  "vectau",
                  "scatau"
               ],
               "title": "Tau",
               "type": "string"
            },
            "u10": {
               "default": "u10proxy",
               "description": "Wind velocity definition",
               "enum": [
                  "u10proxy",
                  "true10"
               ],
               "title": "U10",
               "type": "string"
            },
            "windscaling": {
               "const": 28.0,
               "default": 28.0,
               "title": "Windscaling",
               "type": "number"
            },
            "cdfac": {
               "anyOf": [
                  {
                     "exclusiveMinimum": 0.0,
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Counter bias in the input wind fields by providing a multiplier on the drag coefficient",
               "title": "Cdfac"
            }
         },
         "title": "ST6C2",
         "type": "object"
      },
      "ST6C3": {
         "additionalProperties": false,
         "description": "Third ST6 calibration in the SWAN user manual.\n\n.. code-block:: text\n\n    ST6 2.8e-6 3.5e-5 4.0 4.0 UP HWANG VECTAU U10PROXY 32.0 AGROW\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import ST6C3\n    st6 = ST6C3()\n    print(st6.render())",
         "properties": {
            "model_type": {
               "const": "st6c3",
               "default": "st6c3",
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "default": "hwang",
               "description": "Wind drag formula, `hwang` is the default and is unchanged from RBW12, `fan` is from Fan et al. (2012), `ecmwf` follows WAM Cycle 4 methodology",
               "enum": [
                  "hwang",
                  "fan",
                  "ecmwf"
               ],
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "const": true,
               "default": true,
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "a1sds": {
               "const": 2.8e-06,
               "default": 2.8e-06,
               "title": "A1Sds",
               "type": "number"
            },
            "a2sds": {
               "const": 3.5e-05,
               "default": 3.5e-05,
               "title": "A2Sds",
               "type": "number"
            },
            "p1sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P1Sds",
               "type": "number"
            },
            "p2sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P2Sds",
               "type": "number"
            },
            "normalization": {
               "default": "up",
               "description": "Selection of normalization of exceedance level by ET(f) (`up`) or E(f) (`down`) as in RBW12 (right column, page 1333), `up` is default and strongly recommended",
               "enum": [
                  "up",
                  "down"
               ],
               "title": "Normalization",
               "type": "string"
            },
            "tau": {
               "default": "vectau",
               "description": "Use vector (vectau) or scalar (scatau) calculation for the wind strerss (Eq. 12 in RBW12), `vectau` is the default and strongly recommended",
               "enum": [
                  "vectau",
                  "scatau"
               ],
               "title": "Tau",
               "type": "string"
            },
            "u10": {
               "default": "u10proxy",
               "description": "Wind velocity definition",
               "enum": [
                  "u10proxy",
                  "true10"
               ],
               "title": "U10",
               "type": "string"
            },
            "windscaling": {
               "const": 32.0,
               "default": 32.0,
               "title": "Windscaling",
               "type": "number"
            },
            "cdfac": {
               "anyOf": [
                  {
                     "exclusiveMinimum": 0.0,
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Counter bias in the input wind fields by providing a multiplier on the drag coefficient",
               "title": "Cdfac"
            }
         },
         "title": "ST6C3",
         "type": "object"
      },
      "ST6C4": {
         "additionalProperties": false,
         "description": "Fourth ST6 calibration in the SWAN user manual.\n\n.. code-block:: text\n\n    ST6 2.8e-6 3.5e-5 4.0 4.0 UP HWANG VECTAU U10PROXY 32.0 DEBIAS 0.89 AGROW\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import ST6C4\n    st6 = ST6C4()\n    print(st6.render())",
         "properties": {
            "model_type": {
               "const": "st6c4",
               "default": "st6c4",
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "default": "hwang",
               "description": "Wind drag formula, `hwang` is the default and is unchanged from RBW12, `fan` is from Fan et al. (2012), `ecmwf` follows WAM Cycle 4 methodology",
               "enum": [
                  "hwang",
                  "fan",
                  "ecmwf"
               ],
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "const": true,
               "default": true,
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "a1sds": {
               "const": 2.8e-06,
               "default": 2.8e-06,
               "title": "A1Sds",
               "type": "number"
            },
            "a2sds": {
               "const": 3.5e-05,
               "default": 3.5e-05,
               "title": "A2Sds",
               "type": "number"
            },
            "p1sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P1Sds",
               "type": "number"
            },
            "p2sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P2Sds",
               "type": "number"
            },
            "normalization": {
               "default": "up",
               "description": "Selection of normalization of exceedance level by ET(f) (`up`) or E(f) (`down`) as in RBW12 (right column, page 1333), `up` is default and strongly recommended",
               "enum": [
                  "up",
                  "down"
               ],
               "title": "Normalization",
               "type": "string"
            },
            "tau": {
               "default": "vectau",
               "description": "Use vector (vectau) or scalar (scatau) calculation for the wind strerss (Eq. 12 in RBW12), `vectau` is the default and strongly recommended",
               "enum": [
                  "vectau",
                  "scatau"
               ],
               "title": "Tau",
               "type": "string"
            },
            "u10": {
               "default": "u10proxy",
               "description": "Wind velocity definition",
               "enum": [
                  "u10proxy",
                  "true10"
               ],
               "title": "U10",
               "type": "string"
            },
            "windscaling": {
               "const": 32.0,
               "default": 32.0,
               "title": "Windscaling",
               "type": "number"
            },
            "cdfac": {
               "const": 0.89,
               "default": 0.89,
               "title": "Cdfac",
               "type": "number"
            }
         },
         "title": "ST6C4",
         "type": "object"
      },
      "ST6C5": {
         "additionalProperties": false,
         "description": "Fifth ST6 calibration in the SWAN user manual.\n\n.. code-block:: text\n\n    ST6 4.7e-7 6.6e-6 4.0 4.0 UP HWANG VECTAU U10PROXY 28.0 AGROW\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import ST6C5\n    st6 = ST6C5()\n    print(st6.render())",
         "properties": {
            "model_type": {
               "const": "st6c5",
               "default": "st6c5",
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "default": "hwang",
               "description": "Wind drag formula, `hwang` is the default and is unchanged from RBW12, `fan` is from Fan et al. (2012), `ecmwf` follows WAM Cycle 4 methodology",
               "enum": [
                  "hwang",
                  "fan",
                  "ecmwf"
               ],
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "const": true,
               "default": true,
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "a1sds": {
               "const": 6.5e-06,
               "default": 6.5e-06,
               "title": "A1Sds",
               "type": "number"
            },
            "a2sds": {
               "const": 8.5e-05,
               "default": 8.5e-05,
               "title": "A2Sds",
               "type": "number"
            },
            "p1sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P1Sds",
               "type": "number"
            },
            "p2sds": {
               "const": 4.0,
               "default": 4.0,
               "title": "P2Sds",
               "type": "number"
            },
            "normalization": {
               "default": "up",
               "description": "Selection of normalization of exceedance level by ET(f) (`up`) or E(f) (`down`) as in RBW12 (right column, page 1333), `up` is default and strongly recommended",
               "enum": [
                  "up",
                  "down"
               ],
               "title": "Normalization",
               "type": "string"
            },
            "tau": {
               "default": "vectau",
               "description": "Use vector (vectau) or scalar (scatau) calculation for the wind strerss (Eq. 12 in RBW12), `vectau` is the default and strongly recommended",
               "enum": [
                  "vectau",
                  "scatau"
               ],
               "title": "Tau",
               "type": "string"
            },
            "u10": {
               "default": "u10proxy",
               "description": "Wind velocity definition",
               "enum": [
                  "u10proxy",
                  "true10"
               ],
               "title": "U10",
               "type": "string"
            },
            "windscaling": {
               "const": 35.0,
               "default": 35.0,
               "title": "Windscaling",
               "type": "number"
            },
            "cdfac": {
               "const": 0.89,
               "default": 0.89,
               "title": "Cdfac",
               "type": "number"
            }
         },
         "title": "ST6C5",
         "type": "object"
      },
      "WESTHUYSEN": {
         "additionalProperties": false,
         "description": "Westhuysen source terms subcomponent.\n\n.. code-block:: text\n\n    WESTHUYSEN [cds2] [br] (AGROW [a])\n\nNonlinear saturation-based whitecapping combined with wind input of Yan (1987).\n\nNotes\n-----\nThe two arguments are specified in the Appendix C of the User manual but not in the\ncommand description for WESTH in Section 4.5.4. They are also options in the\nWCAPPING command. It is not entirely clear if they should/could be specified here.\n\nReferences\n----------\nvan der Westhuysen, A.J., Zijlema, M. and Battjes, J.A., 2007. Nonlinear\nsaturation-based whitecapping dissipation in SWAN for deep and shallow water.\nCoastal Engineering, 54(2), pp.151-170.\n\nExamples\n--------\n\n.. ipython:: python\n    :okwarning:\n\n    from rompy.swan.subcomponents.physics import WESTHUYSEN\n    westhuysen = WESTHUYSEN()\n    print(westhuysen.render())\n    westhuysen = WESTHUYSEN(cds2=5.0e-5, br=1.75e-3)\n    print(westhuysen.render())",
         "properties": {
            "model_type": {
               "default": "westhuysen",
               "description": "Model type discriminator",
               "enum": [
                  "westhuysen",
                  "WESTHUYSEN"
               ],
               "title": "Model Type",
               "type": "string"
            },
            "wind_drag": {
               "default": "wu",
               "description": "Indicates the wind drag formulation",
               "enum": [
                  "wu",
                  "fit"
               ],
               "title": "Wind Drag",
               "type": "string"
            },
            "agrow": {
               "default": false,
               "description": "Activate the Cavaleri and Malanotte (1981) wave growth term",
               "title": "Agrow",
               "type": "boolean"
            },
            "a": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Proportionality coefficient when activating the Cavaleri and Malanotte (1981) wave growth term (SWAN default: 0.0015)",
               "title": "A"
            },
            "cds2": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "proportionality coefficient due to Alves and Banner (2003) (SWAN default: 5.0e-5).",
               "title": "Cds2"
            },
            "br": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Threshold saturation level\t(SWAN default: 1.75e-3)",
               "title": "Br"
            }
         },
         "title": "WESTHUYSEN",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Fields:
field model_type: Literal['gen3', 'GEN3'] = 'gen3'#

Model type discriminator

field source_terms: JANSSEN | KOMEN | WESTHUYSEN | ST6 | ST6C1 | ST6C2 | ST6C3 | ST6C4 | ST6C5 [Optional]#

SWAN source terms to be used (SWAN default: WESTHUYSEN)

cmd()[source]#

Command line string for this component.