Tips on loading Silvaco charge density distributions into Lumerical



Is there a recommended/correct way to import in data we have from Silvaco diode junction electrical analysis on charge distributions into Lumerical Mode solutions? Thanks for the help.

creating a custom np Density object (not from DEVICE)
creating a custom np Density object (not from DEVICE)

Hi. I’m not familiar with the data format here. However, you might want to look into the dataset builder in MODE. This wizard allows you to create an unstructure dataset from imported data (the imported data has to be finite-element data). Once you have the dataset, you can save it in a .mat file and load it into the “np density” grid attribute.

In order to use the dataset builder, you will need to import the data into the script workspace first. To learn about the different file formats that can be imported into our solvers, take a look at this page: Data Import.


ah, thanks for the pointer!


Hi Dr. Alam, thanks again for the pointer. I had some more questions on how to format my data for Lumerical use. From data import sections and what you mentioned, the np carrier concentration needs to be FEM data format before I import into Lumerical MODE’s NPDensityGridAttribute , so if I have rectilinear N,P carrier concentration at (x,y) physical location, that must be converted externally by remeshing to a triangular finite element grid(2d in this case), is that correct?

My other questions were about the data output from the charge monitor in DEVICE, that MODE’s NPDensityGridAttribute takes as input. I see the data output from charge monitor’s datastructure contains
1.) n , p ( carrier concentration values at a specific vertex in the FEM mesh, at a specific voltage, so #ofVertices x # of voltages),
2.)and x,y,z vertex matrices, which are of length #ofVertices( so give the physical x,y location of a vertex),
3.) an elements matrix which is #ofElements by 3(since 2D), and the values contained in that matrix go up to #ofVertices, so that looks like the connectivity Matrix?
4.) also an Area vector of length #ofElements, what is this matrix?

I didn’t find much on the charge monitor page and was wondering if those above are correct and how the Area vector was constructed.

Thanks so much for your help!

  1. You are right. The np density grid attribute only takes in unstructured (finite-element) data. So if you have rectilinear data then you’ll have to convert it into unstructured data.

  2. You definition for n, p, x, y, z, and elements is correct!

  3. The “area” vector is something that DEVICE automatically generates. It is the area of each of the elements so the length of the matrix is equal to the number of elements and not the number of vertices. The grid attribute does not use this information so you can safely ignore this.