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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/rompy_swan/subcomponents/physics.py
cmd ¶
Source code in src/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 src/rompy_swan/subcomponents/physics.py
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 src/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 src/rompy_swan/subcomponents/physics.py
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 src/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 src/rompy_swan/subcomponents/physics.py
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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/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 src/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)
Functions¶
check_length ¶
check_length() -> LINE
Check that the length of xp and yp are the same.