Source code for rolland.boundary

"""Defines boundary classes for FDM simulation.

.. autosummary::
    :toctree: boundary

    PMLRailDampVertic
"""

from traitlets import Float, HasTraits


[docs] class PMLRailDampVertic(HasTraits): 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 Damping exponent :math:`[-]`. l_bound : float Length of the boundary domain (single sided) :math:`[m]`. """ alpha = Float(default_value=7) l_bound = Float(default_value=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