Antes que nada, debe de poderse realizar las siguientes instrucciones
$conda activate mp $mkdir expediente $cd expediente $jupyter notebook
Asi activamos elambiente para trabajar en jupyter. El Primer codigo viene en el sitio https://meep.readthedocs.io/en/master/Python_Tutorials/Basics/ y se compone de las siguientes instrucciones:
import meep as mp
cell = mp.Vector3(16, 8, 0)
geometry = [
mp.Block(
mp.Vector3(mp.inf, 1, mp.inf),
center=mp.Vector3(),
material=mp.Medium(epsilon=12),
)
]
sources = [
mp.Source(
mp.ContinuousSource(frequency=0.15), component=mp.Ez, center=mp.Vector3(-7, 0)
)
]
pml_layers = [mp.PML(1.0)]
resolution = 10
sim = mp.Simulation(
cell_size=cell,
boundary_layers=pml_layers,
geometry=geometry,
sources=sources,
resolution=resolution,
)
sim.run(until=200)
para visualizar los datos se hace
import numpy as np import matplotlib.pyplot as plt
Con eso se crea el ambiente para graficar
eps_data = sim.get_array(center=mp.Vector3(), size=cell, component=mp.Dielectric) plt.imshow(eps_data)
Con eso se puede graficar la funcion dielectrica y sale

esta grafica se hace mas elaborada con
eps_data = sim.get_array(center=mp.Vector3(), size=cell, component=mp.Dielectric)
plt.figure()
plt.imshow(eps_data.transpose(), interpolation='spline36', cmap='binary')
plt.axis('off')
plt.show()

los campos se pueden extraer con
ez_data = sim.get_array(center=mp.Vector3(), size=cell, component=mp.Ez)

tambien podemos rotar esta imagen con
plt.imshow(ez_data.transpose())

plt.plot(ez_data[:,40])

Esta grafica se puede hacer mas elaborada de la forma
ez_data = sim.get_array(center=mp.Vector3(), size=cell, component=mp.Ez)
plt.figure()
plt.imshow(eps_data.transpose(), interpolation='spline36', cmap='binary')
plt.imshow(ez_data.transpose(), interpolation='spline36', cmap='RdBu', alpha=0.9)
plt.axis('off')
plt.show()
El campo se puede visualizar muy bonito si hacemos
z_data = sim.get_array(center=mp.Vector3(), size=cell, component=mp.Ez)
plt.figure()
plt.imshow(eps_data.transpose(), interpolation='spline36', cmap='binary')
plt.imshow(ez_data.transpose(), interpolation='spline36', cmap='RdBu', alpha=0.9)
plt.axis('off')
plt.show()

Hay una herramienta que nos permite visualizar la malla de simulacion
plt.figure(dpi=100) sim.plot2D() plt.show()

Lo que sigue puede ser que NO sea necesario si vamos a utilizar los archivos h5, pero lo ponemos a ontinuacion
sim.reset_meep() f = plt.figure(dpi=100) Animate = mp.Animate2D(fields=mp.Ez, f=f, realtime=False, normalize=True) plt.close() sim.run(mp.at_every(1, Animate), until=100) plt.close() filename = "straight_waveguide.mp4" Animate.to_mp4(10, filename) from IPython.display import Video Video(filename)