qiskit-community / qiskit-metal

Quantum Hardware Design. Open-source project for engineers and scientists to design superconducting quantum devices with ease.
https://qiskit-community.github.io/qiskit-metal/
Apache License 2.0
270 stars 201 forks source link

How to remove the psuedo inductor from the transomn pocket teeth without upsetting the COMSOL library for dc simulations #952

Open Divita2697 opened 1 year ago

Divita2697 commented 1 year ago

I am simulating transmon qubit with both charge line and read-out resonator, But for dc simulation, I want to remove the pseudo inductor from between the two metallic pads; when I use "Q1.options.pop('inductor_width', None)" or "del Q1.options['inductor_width']" commands and call COMSOL directly from the qiskit metal, I get the following error

File c:\ProgramData\Anaconda3\envs\sqdmetal_env\Lib\site-packages\qiskit_metal\renderers\renderer_mpl\mpl_renderer.py:261, in QMplRenderer.render_tables(self, ax) 256 # TODO: do by layer and color 257 # self.get_color_num() ... --> 290 self.logger.warning( 291 'One or more junctions have zero width. Consider changing this.' 292 ) What's the procedure to remove the pseudo inductor (my qubit) from the transmon pocket teeth so that I get two different metal pieces for my coupling capacitance calculation without upsetting COMSOL .

I have used the following code to call Comsol from qiskit metal

SQD metal is environment created for this and other qubit related simulations

from SQDMetal.COMSOL.Model import COMSOL_Model from SQDMetal.COMSOL.SimCapacitance import COMSOL_Simulation_CapMats

COMSOL_Model.init_engine() cmsl = COMSOL_Model('leModel') sim_capMats = COMSOL_Simulation_CapMats(cmsl) cmsl.initialize_model(design, [sim_capMats], bottom_grounded=True) cmsl.add_metallic(1, threshold=1e-10, fuse_threshold=1e-10) cmsl.add_ground_plane() cmsl.fuse_all_metals() cmsl.build_geom_mater_elec_mesh(skip_meshing=True, mesh_structure='Fine') cmsl.plot() cmsl.save('Q1_DC_Test') capMat = sim_capMats.run() capMat

zlatko-minev commented 1 year ago

So the error is coming from the drawing in matpltolib in Metal gui - mpl_renderer.py - this is cosmetic, but it indicates probably some issue with the data. File c:\ProgramData\Anaconda3\envs\sqdmetal_env\Lib\site-packages\qiskit_metal\renderers\renderer_mpl\mpl_renderer.py:261,

You can't remove options Q1.options.pop('inductor_width', None)

Because these options are used in the drawing method of the object.

You have to subclass the Class of Q1 and modify the drawing method and use that.

Divita2697 commented 1 year ago

Thank you very much for the response; I was able to remove the pseudo inductor.