(
sim: Simulation,
ax: Optional[Axes] = None,
output_plane: Optional[Volume] = None,
eps_parameters: Optional[dict] = None,
colorbar_parameters: Optional[dict] = None,
frequency: Optional[float] = None,
label_geometry: bool = False,
)
| 514 | |
| 515 | |
| 516 | def plot_eps( |
| 517 | sim: Simulation, |
| 518 | ax: Optional[Axes] = None, |
| 519 | output_plane: Optional[Volume] = None, |
| 520 | eps_parameters: Optional[dict] = None, |
| 521 | colorbar_parameters: Optional[dict] = None, |
| 522 | frequency: Optional[float] = None, |
| 523 | label_geometry: bool = False, |
| 524 | ) -> Union[Axes, Any]: |
| 525 | # consolidate plotting parameters |
| 526 | if eps_parameters is None: |
| 527 | eps_parameters = default_eps_parameters |
| 528 | else: |
| 529 | eps_parameters = dict(default_eps_parameters, **eps_parameters) |
| 530 | |
| 531 | # Determine a frequency to plot all epsilon |
| 532 | if frequency is not None: |
| 533 | warnings.warn( |
| 534 | "The frequency parameter of plot2D has been deprecated. " |
| 535 | "Use the frequency key of the eps_parameters dictionary instead." |
| 536 | ) |
| 537 | eps_parameters["frequency"] = frequency |
| 538 | if eps_parameters["frequency"] is None: |
| 539 | try: |
| 540 | # Continuous sources |
| 541 | eps_parameters["frequency"] = sim.sources[0].frequency |
| 542 | except: |
| 543 | try: |
| 544 | # Gaussian sources |
| 545 | eps_parameters["frequency"] = sim.sources[0].src.frequency |
| 546 | except: |
| 547 | try: |
| 548 | # Custom sources |
| 549 | eps_parameters["frequency"] = sim.sources[0].src.center_frequency |
| 550 | except: |
| 551 | # No sources |
| 552 | eps_parameters["frequency"] = 0 |
| 553 | |
| 554 | # Get domain measurements |
| 555 | sim_center, sim_size = get_2D_dimensions(sim, output_plane) |
| 556 | |
| 557 | xmin, xmax, ymin, ymax, zmin, zmax = box_vertices( |
| 558 | sim_center, sim_size, sim.is_cylindrical |
| 559 | ) |
| 560 | |
| 561 | if eps_parameters["resolution"]: |
| 562 | grid_resolution = eps_parameters["resolution"] |
| 563 | else: |
| 564 | grid_resolution = sim.resolution |
| 565 | |
| 566 | Nx = int((xmax - xmin) * grid_resolution + 1) |
| 567 | Ny = int((ymax - ymin) * grid_resolution + 1) |
| 568 | Nz = int((zmax - zmin) * grid_resolution + 1) |
| 569 | |
| 570 | if sim_size.x == 0: |
| 571 | # Plot y on x axis, z on y axis (YZ plane) |
| 572 | extent = [ymin, ymax, zmin, zmax] |
| 573 | xlabel = "Y" |
no test coverage detected