Thank you so much for your fast and detailed response Chris. I will play with your code to see how it works.
Best regards, Eduardo On Mon, Feb 19, 2018 at 5:10 PM, Chris Hogan <c096h...@gmail.com> wrote: > It is possible to change the material in a step function with something > like this: > > ``` > import meep as mp > > def change_mat(sim): > t = sim.meep_time() > fn = t * 0.2 > geom = [mp.Sphere(radius=0.025, center=mp.Vector3(fn))] > mp.set_materials_from_geometry( > sim.structure, > geom, > sim.eps_averaging, > sim.subpixel_tol, > sim.subpixel_maxeval, > sim.ensure_periodicity, > False, > sim.default_material, > None, > sim.extra_materials > ) > > sim = mp.Simulation( > cell_size=mp.Vector3(10, 10), > resolution=16 > ) > > sim.run(mp.at_beginning(mp.output_epsilon), mp.at_time(10, change_mat), > mp.at_end(mp.output_epsilon), until=60) > ``` > > However, it is currently not possible to change the susceptibilities. > > The `set_materials_from_geometry` call is a bit ponderous, so I'm planning > to add a public `Simulation.set_materials` method that only requires > geometry and/or default_material. In the current state, this will be very > slow, but issue #207 (https://github.com/stevengj/meep/issues/207) will > speed it up when it's implemented. > > Also note that the current master will segfault after successfully > completing `sim.run` in the above script. This will be fixed once PR#209 ( > https://github.com/stevengj/meep/pull/209) is merged. > > Chris > > On Thu, Feb 15, 2018 at 8:57 AM, EDUARDO CABRERA GRANADO <ecabr...@ucm.es> > wrote: > >> Dear meep developers and users, >> >> first, I would like to thank meep developers for their work on this >> wonderful tool and the effort shown to get a Python interface, both in the >> code and in the documentation. I think it is a big push to increase the use >> of meep in electromagnetic simulations. >> >> Second, I would like to ask a question I have not seen answered anywhere >> (sorry in advance if it is somewhere I did not see). In short, I would like >> to know if it is possible to modify a parameter of the material used in a >> simulation continuously during the execution. More especifically, I would >> like to change the gamma and fn parameters of the DrudeSusceptibility with >> a step function, somehow in a similar way as change_sources function for >> the sources. >> I tried with a step function like: >> >> def change_susc(sim): >> t = meep.Simulation.meep_time(sim) >> fn = t*0.2 >> susc = [meep.DrudeSusceptibility(frequency=fn,gamma=0.1, sigma=0.1)] >> mat = meep.Medium(epsilon=1.0, E_susceptibilities=susc) >> geom = [meep.Sphere(radius=0.025,center=meep.Vector3(0,0,0),materia >> l=mat)] >> sim.geometry=geom >> meep.Simulation._init_structure(sim) >> return sim >> >> sim.run(meep.at_beginning(meep.output_epsilon), >> meep.at_time(10,change_mat), >> meep.at_end(meep.output_epsilon),until=60) >> >> The values are just for this example. Anyway, I must be doing something >> wrong so I tried to simplify the problem with a material with no dispersion >> and modifying the value of epsilon but again nothing happens. >> >> At this point, I do not know if I am doing something wrong or it is just >> that is not possible to change the material properties during simulation in >> Meep. If someone could provide some suggestion I would be very grateful. >> >> Thanks in advance. >> >> Eduardo >> >> >> _______________________________________________ >> meep-discuss mailing list >> meep-discuss@ab-initio.mit.edu >> http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss >> > >
_______________________________________________ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss