| 1670 | ) |
| 1671 | |
| 1672 | def _create_grid_volume(self, k: Vector3Type = None): |
| 1673 | dims = self._infer_dimensions(k) |
| 1674 | |
| 1675 | if dims == 0 or dims == 1: |
| 1676 | gv = mp.vol1d(self.cell_size.z, self.resolution) |
| 1677 | elif dims == 2: |
| 1678 | self.dimensions = 2 |
| 1679 | gv = mp.vol2d(self.cell_size.x, self.cell_size.y, self.resolution) |
| 1680 | elif dims == 3: |
| 1681 | gv = mp.vol3d( |
| 1682 | self.cell_size.x, self.cell_size.y, self.cell_size.z, self.resolution |
| 1683 | ) |
| 1684 | elif dims == mp.CYLINDRICAL: |
| 1685 | gv = mp.volcyl(self.cell_size.x, self.cell_size.z, self.resolution) |
| 1686 | self.dimensions = 2 |
| 1687 | self.is_cylindrical = True |
| 1688 | else: |
| 1689 | raise ValueError(f"Unsupported dimentionality: {dims}") |
| 1690 | |
| 1691 | gv.center_origin() |
| 1692 | gv.shift_origin( |
| 1693 | py_v3_to_vec(self.dimensions, self.geometry_center, self.is_cylindrical) |
| 1694 | ) |
| 1695 | return gv |
| 1696 | |
| 1697 | def _create_symmetries(self, gv) -> Symmetry: |
| 1698 | sym = mp.symmetry() |