Source code for struphy.geometry.domains.cuboid.cuboid
import copy
from struphy.geometry.base import Domain
[docs]
class Cuboid(Domain):
r"""Slab geometry (Cartesian coordinates).
.. image:: ../../pics/mappings/cuboid.png
Parameters
----------
l1 : float
Start of x-interval (default: 0.).
r1 : float
End of x-interval, r1>l1 (default: 1.).
l2 : float
Start of y-interval (default: 0.).
r2 : float
End of y-interval, r2>l2 (default: 1.).
l3 : float
Start of z-interval (default: 0.).
r3 : float
End of z-interval, r3>l3 (default: 1.).
"""
[docs]
@classmethod
def doc_mapping(cls):
r"""
.. math::
F: \begin{bmatrix}\eta_1\\ \eta_2\\ \eta_3\end{bmatrix}\mapsto \begin{bmatrix}
\,\,x= &l_1 + (r_1 - l_1)\,\eta_1\,\,\\
\,\,y= &l_2 + (r_2 - l_2)\,\eta_2\,\,\\
\,\,z= &l_3 + (r_3 - l_3)\,\eta_3\,\,\end{bmatrix}
"""
def __init__(
self,
l1: float = 0.0,
r1: float = 1.0,
l2: float = 0.0,
r2: float = 1.0,
l3: float = 0.0,
r3: float = 1.0,
):
self.kind_map = 10
# use params setter
self.params = copy.deepcopy(locals())
self.params_numpy = self.get_params_numpy()
# periodicity in eta3-direction and pole at eta1=0
self.periodic_eta3 = False
self.pole = False
super().__init__()