Physics
Sub-commands to support the physics components
Source terms
JANSSEN
Bases: SourceTerms
Janssen source terms subcomponent.
.. code-block:: text
JANSSEN [cds1] [delta] (AGROW [a])
References
Janssen, P.A., 1989. Wave-induced stress and the drag of air flow over sea waves. Journal of Physical Oceanography, 19(6), pp.745-754.
Janssen, P.A.E.M., Lionello, P. and Zambresky, L., 1989. On the interaction of wind and waves. Philosophical transactions of the royal society of London. Series A, Mathematical and Physical Sciences, 329(1604), pp.289-301.
Janssen, P.A., 1991. Quasi-linear theory of wind-wave generation applied to wave forecasting. Journal of physical oceanography, 21(11), pp.1631-1642.
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import JANSSEN
janssen = JANSSEN()
print(janssen.render())
janssen = JANSSEN(cds1=4.5, delta=0.5, agrow=True)
print(janssen.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['janssen', 'JANSSEN'] = Field(default='janssen', description='Model type discriminator')
cds1
class-attribute
instance-attribute
cds1: Optional[float] = Field(default=None, description='Coefficient for determining the rate of whitecapping dissipation ($Cds / s^4_{PM}$) (SWAN default: 4.5)')
delta
class-attribute
instance-attribute
delta: Optional[float] = Field(default=None, description='Coefficient which determines the dependency of the whitecapping on wave number (mix with Komen et al. formulation) (SWAN default: 0.5)')
Functions
cmd
Source code in rompy_swan/subcomponents/physics.py
KOMEN
Bases: SourceTerms
Komen source terms subcomponent.
.. code-block:: text
KOMEN [cds2] [stpm] (AGROW [a])
References
Komen, G.J., Hasselmann, S. and Hasselmann, K., 1984. On the existence of a fully developed wind-sea spectrum. Journal of physical oceanography, 14(8), pp.1271-1285.
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import KOMEN
komen = KOMEN()
print(komen.render())
komen = KOMEN(cds2=2.36e-5, stpm=3.02e-3, agrow=True, a=0.0015)
print(komen.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['komen', 'KOMEN'] = Field(default='komen', description='Model type discriminator')
cds2
class-attribute
instance-attribute
cds2: Optional[float] = Field(default=None, description='Coefficient for determining the rate of whitecapping dissipation (`Cds`) (SWAN default: 2.36e-5)')
stpm
class-attribute
instance-attribute
stpm: Optional[float] = Field(default=None, description='Value of the wave steepness for a Pierson-Moskowitz spectrum (`s^2_PM`) (SWAN default: 3.02e-3)')
Functions
cmd
Source code in rompy_swan/subcomponents/physics.py
WESTHUYSEN
Bases: SourceTerms
Westhuysen source terms subcomponent.
.. code-block:: text
WESTHUYSEN [cds2] [br] (AGROW [a])
Nonlinear saturation-based whitecapping combined with wind input of Yan (1987).
Notes
The two arguments are specified in the Appendix C of the User manual but not in the command description for WESTH in Section 4.5.4. They are also options in the WCAPPING command. It is not entirely clear if they should/could be specified here.
References
van der Westhuysen, A.J., Zijlema, M. and Battjes, J.A., 2007. Nonlinear saturation-based whitecapping dissipation in SWAN for deep and shallow water. Coastal Engineering, 54(2), pp.151-170.
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import WESTHUYSEN
westhuysen = WESTHUYSEN()
print(westhuysen.render())
westhuysen = WESTHUYSEN(cds2=5.0e-5, br=1.75e-3)
print(westhuysen.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['westhuysen', 'WESTHUYSEN'] = Field(default='westhuysen', description='Model type discriminator')
cds2
class-attribute
instance-attribute
cds2: Optional[float] = Field(default=None, description='proportionality coefficient due to Alves and Banner (2003) (SWAN default: 5.0e-5).')
br
class-attribute
instance-attribute
br: Optional[float] = Field(default=None, description='Threshold saturation level\t(SWAN default: 1.75e-3)')
Functions
cmd
Source code in rompy_swan/subcomponents/physics.py
ST6
Bases: SourceTerms
St6 source terms subcomponent.
.. code-block:: text
ST6 [a1sds] [a2sds] [p1sds] [p2sds] UP|DOWN HWANG|FAN|ECMWF VECTAU|SCATAU &
TRUE10|U10PROXY [windscaling] DEBIAS [cdfac] (AGROW [a])
wind input and whitecapping from Rogers et al. (2012) (RBW12).
Notes
The two arguments are specified in the Appendix C of the User manual but not in the command description for WESTH in Section 4.5.4. They are also options in the WCAPPING command. It is not entirely clear if they should/could be specified here.
References
Fan, Y., Lin, S.J., Held, I.M., Yu, Z. and Tolman, H.L., 2012. Global ocean surface wave simulation using a coupled atmosphere–wave model. Journal of Climate, 25(18), pp.6233-6252.
Rogers, W.E., Babanin, A.V. and Wang, D.W., 2012. Observation-consistent input and whitecapping dissipation in a model for wind-generated surface waves: Description and simple calculations. Journal of Atmospheric and Oceanic Technology, 29(9), pp.1329-1346.
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import ST6
st6 = ST6(a1sds=4.7e-7, a2sds=6.6e-6)
print(st6.render())
kwargs = dict(
a1sds=2.8e-6,
a2sds=3.5e-5,
normalization="up",
wind_drag="hwang",
tau="vectau",
u10="u10proxy",
windscaling=32.0,
cdfac=0.89,
agrow=True,
a=0.0015,
)
st6 = ST6(**kwargs)
print(st6.render())
Source code in rompy_swan/subcomponents/physics.py
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 | |
Attributes
model_type
class-attribute
instance-attribute
a1sds
class-attribute
instance-attribute
a2sds
class-attribute
instance-attribute
p1sds
class-attribute
instance-attribute
p1sds: Optional[float] = Field(default=None, description='Power coefficient controlling strength of dissipation term T1 (L in RBW12, SWAN default: 4)')
p2sds
class-attribute
instance-attribute
p2sds: Optional[float] = Field(default=None, description='Power coefficient controlling strength of dissipation term T2 (M in RBW12, SWAN default: 4)')
normalization
class-attribute
instance-attribute
normalization: Literal['up', 'down'] = Field(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')
wind_drag
class-attribute
instance-attribute
wind_drag: Literal['hwang', 'fan', 'ecmwf'] = Field(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')
tau
class-attribute
instance-attribute
tau: Literal['vectau', 'scatau'] = Field(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')
u10
class-attribute
instance-attribute
u10: Literal['u10proxy', 'true10'] = Field(default='u10proxy', description='Wind velocity definition')
windscaling
class-attribute
instance-attribute
windscaling: Optional[float] = Field(default=32.0, description='Factor to scale U10 with U* when using U10PROXY')
cdfac
class-attribute
instance-attribute
cdfac: Optional[float] = Field(default=None, description='Counter bias in the input wind fields by providing a multiplier on the drag coefficient', gt=0.0)
Functions
debias_only_with_hwang
debias_only_with_hwang() -> ST6
Source code in rompy_swan/subcomponents/physics.py
cmd
Source code in rompy_swan/subcomponents/physics.py
ST6 presets
Combinations of calibrated coefficients for ST6 are defined in the SWAN Manual. The following presets are available:
ST6C1
Bases: ST6
First ST6 calibration in the SWAN user manual.
.. code-block:: text
ST6 4.7e-7 6.6e-6 4.0 4.0 UP HWANG VECTAU U10PROXY 28.0 AGROW
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import ST6C1
st6 = ST6C1()
print(st6.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
ST6C2
Bases: ST6C1
Second ST6 calibration in the SWAN user manual.
.. code-block:: text
ST6 4.7e-7 6.6e-6 4.0 4.0 UP FAN VECTAU U10PROXY 28.0 AGROW
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import ST6C2
st6 = ST6C2()
print(st6.render())
TODO: Ensure validator is reused here so fan and debias are not used together.
Source code in rompy_swan/subcomponents/physics.py
ST6C3
Bases: ST6C1
Third ST6 calibration in the SWAN user manual.
.. code-block:: text
ST6 2.8e-6 3.5e-5 4.0 4.0 UP HWANG VECTAU U10PROXY 32.0 AGROW
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import ST6C3
st6 = ST6C3()
print(st6.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
ST6C4
Bases: ST6C3
Fourth ST6 calibration in the SWAN user manual.
.. code-block:: text
ST6 2.8e-6 3.5e-5 4.0 4.0 UP HWANG VECTAU U10PROXY 32.0 DEBIAS 0.89 AGROW
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import ST6C4
st6 = ST6C4()
print(st6.render())
Source code in rompy_swan/subcomponents/physics.py
ST6C5
Bases: ST6C1
Fifth ST6 calibration in the SWAN user manual.
.. code-block:: text
ST6 4.7e-7 6.6e-6 4.0 4.0 UP HWANG VECTAU U10PROXY 28.0 AGROW
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import ST6C5
st6 = ST6C5()
print(st6.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
Biphase
ELDEBERKY
Bases: BaseSubComponent
Biphase of Eldeberky (1999).
.. code-block:: text
BIPHASE ELDEBERKY [urcrit]
Biphase parameterisation as a funtion of the Ursell number of Eldeberky (1999).
References
Eldeberky, Y., Polnikov, V. and Battjes, J.A., 1996. A statistical approach for modeling triad interactions in dispersive waves. In Coastal Engineering 1996 (pp. 1088-1101).
Eldeberky, Y. and Madsen, P.A., 1999. Deterministic and stochastic evolution equations for fully dispersive and weakly nonlinear waves. Coastal Engineering, 38(1), pp.1-24.
Doering, J.C. and Bowen, A.J., 1995. Parametrization of orbital velocity asymmetries of shoaling and breaking waves using bispectral analysis. Coastal engineering, 26(1-2), pp.15-33.
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import ELDEBERKY
biphase = ELDEBERKY()
print(biphase.render())
biphase = ELDEBERKY(urcrit=0.63)
print(biphase.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['eldeberky'] = Field(default='eldeberky', description='Model type discriminator')
urcrit
class-attribute
instance-attribute
urcrit: Optional[float] = Field(default=None, description='The critical Ursell number appearing in the parametrization. Note: the value of `urcrit` is setted by Eldeberky (1996) at 0.2 based on a laboratory experiment, whereas Doering and Bowen (1995) employed the value of 0.63 based on the field experiment data (SWAN default: 0.63)')
Functions
DEWIT
Bases: BaseSubComponent
Biphase of De Wit (2022).
.. code-block:: text
BIPHASE DEWIT [lpar]
Biphase parameterization based on bed slope and peak period of De Wit (2022).
References
De Wit, F.P., 2022. Wave shape prediction in complex coastal systems (Doctoral dissertation, PhD. thesis. Delft University of Technology. https://repository. tudelft. nl/islandora/object/uuid% 3A0fb850a4-4294-4181-9d74-857de21265c2).
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import DEWIT
biphase = DEWIT()
print(biphase.render())
biphase = DEWIT(lpar=0.0)
print(biphase.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
lpar
class-attribute
instance-attribute
lpar: Optional[float] = Field(default=None, description="Scales spatial averaging of the De Wit's biphase in terms of a multiple of peak wave length of the incident wave field. Note: `lpar` = 0` means no averaging (SWAN default: 0)")
Functions
Transmission and reflection
TRANSM
Bases: BaseSubComponent
Constant transmission coefficient.
.. code-block:: text
TRANSM [trcoef]
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import TRANSM
transm = TRANSM()
print(transm.render())
transm = TRANSM(trcoef=0.5)
print(transm.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['transm', 'TRANSM'] = Field(default='transm', description='Model type discriminator')
trcoef
class-attribute
instance-attribute
trcoef: Optional[float] = Field(default=None, description='Constant transmission coefficient (ratio of transmitted over incoming significant wave height) (SWAN default: 0.0) (no transmission = complete blockage)', ge=0.0, le=1.0)
Functions
TRANS1D
Bases: BaseSubComponent
Frequency dependent transmission.
.. code-block:: text
TRANS1D < [trcoef] >
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import TRANS1D
transm = TRANS1D(trcoef=[0.0, 0.0, 0.2, 0.5, 0.2, 0.0, 0.0])
print(transm.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['trans1d', 'TRANS1D'] = Field(default='trans1d', description='Model type discriminator')
trcoef
class-attribute
instance-attribute
trcoef: list[Annotated[float, Field(ge=0.0, le=1.0)]] = Field(description='Transmission coefficient (ratio of transmitted over incoming significant wave height) per frequency. The number of these transmission values must be equal to the number of frequencies, i.e. `msc` + 1')
Functions
TRANS2D
Bases: BaseSubComponent
Frequency-direction dependent transmission.
.. code-block:: text
TRANS2D < [trcoef] >
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import TRANS2D
trcoef = np.array([[0.0, 0.0], [0.1, 0.1], [0.2, 0.2]])
transm = TRANS2D(trcoef=trcoef)
print(transm.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['trans2d', 'TRANS2D'] = Field(default='trans2d', description='Model type discriminator')
trcoef
class-attribute
instance-attribute
trcoef: Np2DArray = Field(description='Transmission coefficient (ratio of transmitted over incoming significant wave height) per frequency and direction, rows represent directions and columns represent frequencies')
Functions
constrained_0_1
classmethod
Ensure all directions have the same number of frequencies.
Source code in rompy_swan/subcomponents/physics.py
cmd
Command file string for this subcomponent.
GODA
Bases: BaseSubComponent
DAM transmission of Goda/Seelig (1979).
.. code-block:: text
DAM GODA [hgt] [alpha] [beta]
This option specified transmission coefficients dependent on the incident wave conditions at the obstacle and on the obstacle height (which may be submerged).
References
Goda, Y. and Suzuki, Y., 1976. Estimation of incident and reflected waves in random wave experiments. In Coastal Engineering 1976 (pp. 828-845).
Seelig, W.N., 1979. Effects of breakwaters on waves: Laboratory test of wave transmission by overtopping. In Proc. Conf. Coastal Structures, 1979 (Vol. 79, No. 2, pp. 941-961).
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import GODA
transm = GODA(hgt=3.0)
print(transm.render())
transm = GODA(hgt=3.0, alpha=2.6, beta=0.15)
print(transm.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
hgt
class-attribute
instance-attribute
hgt: float = Field(description='The elevation of the top of the obstacle above reference level (same reference level as for bottom etc.); use a negative value if the top is below that reference level')
alpha
class-attribute
instance-attribute
alpha: Optional[float] = Field(default=None, description="coefficient determining the transmission coefficient for Goda's transmission formula (SWAN default: 2.6)")
beta
class-attribute
instance-attribute
beta: Optional[float] = Field(default=None, description="Another coefficient determining the transmission coefficient for Goda's transmission formula (SWAN default: 0.15)")
Functions
cmd
Command file string for this subcomponent.
Source code in rompy_swan/subcomponents/physics.py
DANGREMOND
Bases: BaseSubComponent
DAM transmission of d'Angremond et al. (1996).
.. code-block:: text
DAM DANGREMOND [hgt] [slope] [Bk]
This option specifies transmission coefficients dependent on the incident wave conditions at the obstacle and on the obstacle height (which may be submerged).
References
d'Angremond, K., Van Der Meer, J.W. and De Jong, R.J., 1996. Wave transmission at low-crested structures. In Coastal Engineering 1996 (pp. 2418-2427).
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import DANGREMOND
transm = DANGREMOND(hgt=3.0, slope=60, Bk=10.0)
print(transm.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['dangremond', 'DANGREMOND'] = Field(default='dangremond', description='Model type discriminator')
hgt
class-attribute
instance-attribute
hgt: float = Field(description='The elevation of the top of the obstacle above reference level (same reference level as for bottom etc.); use a negative value if the top is below that reference level')
slope
class-attribute
instance-attribute
Bk
class-attribute
instance-attribute
Functions
cmd
REFL
Bases: BaseSubComponent
Obstacle reflections.
.. code-block:: text
REFL [reflc]
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import REFL
refl = REFL()
print(refl.render())
refl = REFL(reflc=0.5)
print(refl.render())
Source code in rompy_swan/subcomponents/physics.py
RSPEC
Bases: BaseSubComponent
Specular reflection.
.. code-block:: text
RSPEC
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import RSPEC
refl = RSPEC()
print(refl.render())
Source code in rompy_swan/subcomponents/physics.py
RDIFF
Bases: BaseSubComponent
Diffuse reflection.
.. code-block:: text
RDIFF [pown]
Specular reflection where incident waves are scattered over reflected direction.
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import RDIFF
refl = RDIFF()
print(refl.render())
refl = RDIFF(pown=1.0)
print(refl.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['rdiff', 'RDIFF'] = Field(default='rdiff', description='Model type discriminator')
pown
class-attribute
instance-attribute
pown: Optional[float] = Field(default=None, description='Each incoming direction θ is scattered over reflected direction θ_refl according to cos^pown(θ-θ_refl). The parameter `pown` indicates the widthof the redistribution function (SWAN default: 1.0)')
Functions
FREEBOARD
Bases: BaseSubComponent
Freeboard dependent transmission and reflection.
.. code-block:: text
FREEBOARD [hgt] [gammat] [gammar] [QUAY]
With this option the user indicates that the fixed transmission trcoef and
reflection reflc coefficients are freeboard dependent. The freeboard dependency
has no effect on the transmission coefficient as computed using the DAM option.
Notes
See the Scientific/Technical documentation for background information on the
gammat and gammar shape parameters.
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import FREEBOARD
freeboard = FREEBOARD(hgt=2.0)
print(freeboard.render())
freeboard = FREEBOARD(hgt=2.0, gammat=1.0, gammar=1.0, quay=True)
print(freeboard.render())
Source code in rompy_swan/subcomponents/physics.py
961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 | |
Attributes
model_type
class-attribute
instance-attribute
model_type: Literal['freeboard', 'FREEBOARD'] = Field(default='freeboard', description='Model type discriminator')
hgt
class-attribute
instance-attribute
hgt: float = Field(description='The elevation of the top of the obstacle or height of the quay above the reference level (same reference level as for the bottom). Use a negative value if the top is below that reference level. In case `hgt` is also specified in the DAM option, both values of `hgt` should be equal for consistency')
gammat
class-attribute
instance-attribute
gammat: Optional[float] = Field(default=None, description='Shape parameter of relative freeboard dependency of transmission coefficient. This parameter should be higher than zero (SWAN default 1.0)', gt=0.0)
gammar
class-attribute
instance-attribute
gammar: Optional[float] = Field(default=None, description='Shape parameter of relative freeboard dependency of reflection coefficient. This parameter should be higher than zero (SWAN default 1.0)', gt=0.0)
quay
class-attribute
instance-attribute
quay: bool = Field(default=False, description='With this option the user indicates that the freeboard dependency of the transmission and reflection coefficients also depends on the relative position of an obstacle-linked grid point with respect to the position of the obstacle line representing the edge of a quay. In case the active grid point is on the deeper side of the obstacle, then the correction factors are applied using the parameters `hgt`, `gammat` and `gammar`.In case the active grid point is on the shallower side of the obstacle, the reflection coefficient is set to 0 and the transmission coefficient to 1.')
Functions
cmd
Command file string for this subcomponent.
Source code in rompy_swan/subcomponents/physics.py
LINE
Bases: BaseSubComponent
Line of points to define obstacle location.
.. code-block:: text
LINE < [xp] [yp] >
With this option the user indicates that the fixed transmission trcoef and
reflection reflc coefficients are freeboard dependent. The freeboard dependency
has no effect on the transmission coefficient as computed using the DAM option.
Notes
Points coordinates should be provided in m If Cartesian coordinates are used or in
degrees if spherical coordinates are used (see command COORD). At least two
corner points must be provided.
Examples
.. ipython:: python :okwarning:
from rompy_swan.subcomponents.physics import LINE
line = LINE(xp=[174.1, 174.2, 174.3], yp=[-39.1, -39.1, -39.1])
print(line.render())
Source code in rompy_swan/subcomponents/physics.py
Attributes
model_type
class-attribute
instance-attribute
xp
class-attribute
instance-attribute
xp: list[float] = Field(description='The x-coordinates of the points defining the line', min_length=2)
yp
class-attribute
instance-attribute
yp: list[float] = Field(description='The y-coordinates of the points defining the line', min_length=2)