Source code for rolland.boundary
"""Defines boundary classes for FDM simulation.
.. autosummary::
:toctree: boundary
PMLRailDampVertic
"""
from dataclasses import dataclass
[docs]
@dataclass
class PMLRailDampVertic:
r"""Calculate the boundary domain properties according to :cite:t:`stampka2022a`.
A perfectly matched layer (PML) method is used which increases the rail damping
coefficient in the boundary domain for the vertical rail deflection.
Attributes
----------
alpha : float, default=7.0
Damping exponent :math:`[-]`.
l_bound : float, default=33.0
Length of the boundary domain (single sided) :math:`[m]`.
"""
alpha: float = 7.0
l_bound: float = 33.0
[docs]
def pml(self, drbc, xbc):
"""Exponential increasing rail damping, added to dr."""
return drbc * xbc ** self.alpha / self.l_bound ** self.alpha