#model = SapphireBars(**model_param) if sim_param['frequency_domain']: model.simulation_name += ("_frequency=%.4e" % sim_param['frequency']) meep.master_printf("Simulation name:\n\t%s\n" % model.simulation_name) ## TODO print parameters in a table ## Initialize volume vol = meep.vol3d(model.size_x, model.size_y, model.size_z, 1./model.resolution) volume_except_pml = meep.volume( meep.vec(-model.size_x/2, -model.size_y/2, -model.size_z/2+model.pml_thickness*0), meep.vec(model.size_x/2, model.size_y/2, model.size_z/2-model.pml_thickness*0)) vol.center_origin() ## Define the Perfectly Matched Layers perfectly_matched_layers = meep.pml(model.pml_thickness) ## PML on both faces at Z axis if not sim_param['frequency_domain']: meep.master_printf("== Time domain structure setup ==\n") ## Define each polarizability by redirecting the callback to the corresponding "where_material" function ## Define the frequency-independent epsilon for all materials (needed here, before defining s, or unstable) model.double_vec = model.get_static_permittivity; meep.set_EPS_Callback(model.__disown__()) s = meep.structure(vol, meep.EPS, perfectly_matched_layers, meep.identity()) ## Add all the materials model.build_polarizabilities(s) ## Add the source dependence #srctype = meep.band_src_time(model.srcFreq/c, model.srcWidth/c, model.simtime*c/1.1) srctype = meep.gaussian_src_time(model.srcFreq/c, model.srcWidth/c) ## , 0, 1000e-12 ??
meep.master_printf("Simulation name:\n\t%s\n" % model.simulation_name) ## TODO print parameters in a table ## Initialize volume vol = meep.vol3d(model.size_x, model.size_y, model.size_z, 1. / model.resolution) volume_except_pml = meep.volume( meep.vec(-model.size_x / 2, -model.size_y / 2, -model.size_z / 2 + model.pml_thickness * 0), meep.vec(model.size_x / 2, model.size_y / 2, model.size_z / 2 - model.pml_thickness * 0)) vol.center_origin() ## Define the Perfectly Matched Layers #perfectly_matched_layers = meep.pml(model.pml_thickness, meep.Z) ## PML on both faces at Z axis perfectly_matched_layers = meep.pml(model.pml_thickness) ## PML on all faces if not sim_param['frequency_domain']: meep.master_printf("== Time domain structure setup ==\n") ## Define each polarizability by redirecting the callback to the corresponding "where_material" function ## Define the frequency-independent epsilon for all materials (needed here, before defining s, or unstable) model.double_vec = model.eps meep.set_EPS_Callback(model.__disown__()) s = meep.structure(vol, meep.EPS, perfectly_matched_layers, meep.identity()) ## Add all the materials model.build_polarizabilities(s) ## Add the source dependence #srctype = meep.band_src_time(model.srcFreq/c, model.srcWidth/c, model.simtime*c/1.1)
#from model_SapphireBars import * #model = SapphireBars(**model_param) if sim_param['frequency_domain']: model.simulation_name += ("_frequency=%.4e" % sim_param['frequency']) meep.master_printf("Simulation name:\n\t%s\n" % model.simulation_name) ## TODO print parameters in a table ## Initialize volume vol = meep.vol3d(model.size_x, model.size_y, model.size_z, 1./model.resolution) volume_except_pml = meep.volume( meep.vec(-model.size_x/2, -model.size_y/2, -model.size_z/2+model.pml_thickness*0), meep.vec(model.size_x/2, model.size_y/2, model.size_z/2-model.pml_thickness*0)) vol.center_origin() ## Define the Perfectly Matched Layers #perfectly_matched_layers = meep.pml(model.pml_thickness, meep.Z) ## PML on both faces at Z axis perfectly_matched_layers = meep.pml(model.pml_thickness) ## PML on all faces if not sim_param['frequency_domain']: meep.master_printf("== Time domain structure setup ==\n") ## Define each polarizability by redirecting the callback to the corresponding "where_material" function ## Define the frequency-independent epsilon for all materials (needed here, before defining s, or unstable) model.double_vec = model.eps; meep.set_EPS_Callback(model.__disown__()) s = meep.structure(vol, meep.EPS, perfectly_matched_layers, meep.identity()) ## Add all the materials model.build_polarizabilities(s) ## Add the source dependence #srctype = meep.band_src_time(model.srcFreq/c, model.srcWidth/c, model.simtime*c/1.1) srctype = meep.gaussian_src_time(model.srcFreq/c, model.srcWidth/c) ## , 0, 1000e-12 ??