I am unsure the category is correct, but it is what it is I guess.
The problem I am having is that the weighting potential is showing gaps when I plot it. Given that the weighting potential is plotted for pixel (1,1), it seems mostly correct, see the xy-plane figure below.
And looking at the figure in the xz-plane and the yz-plane, the behaviour is mostly correct, except for the parts where the field seems to dissapear at the top, the the two figures below.
We can also see that the weighting field starts >-325um when it should start at -325um exactly, se the figure below, even though it stops at the correct 325um by the electrodes.
Is this behaviour, both at the top and the bottom, expected due to some odd plotting since it is 0.000 at the white parts, or is this something else?
I can also add that the fields have been formatted using python and inspected in matplotlib, and all looks good there. And when I output the plots of the E-field from Allpix they also show correctly.
And a second question is
2. Is it hard coded not to plot the full weighting potential, but only for pixel (1,1) and its closest surrounding pixels?
I also have thoughts regarding the extent of the weighting potential. My pixels are highly assymetric (think 10um by few hundred um) as can be seen in the images above.
Since the electrodes are so large in one dimension, and so small in another, I am keen on having the field extending to say 7 pixels in each direction in the small dimension, and only extending 1 in each direction in the large dimension, since the large dimension is much less critical. My question is now
Can I set “distance = 7” in the TransientPropagation module and get the correct behaviour in the small dimension of the electrodes, even though the weighting potential only extends to the neighbouring pixels in the large dimension, or will this cause problems?
The reason for this is that I want to have a high resolution of the sampling of the fields (or at least the option to have it), but the amount of RAM is limited. And with the charge sharing in the large dimension of the electrodes will be insignificant compared to the charge-sharing in the small dimension, it would be nice to limit the extent of the weighting field there.
loads of questions, but all well motivated Let me go through them one-by-one:
The white part is just to the value 0.00 not being plotted. This is an artifact from the ROOT plotting I believe.
There seems to be some misconception. There is no such thing as a “full weighting potential” since the weighting potential changes and depends on which electrode you calculate the induced current for. That is why in the calculation of the weighting potential, you always only set one electrode to unit potential and all others to ground. We do something similar in APSQ then: for each electrode (or pixel) we would like to calculate the current for, we center the weighting potential such that the electrode on unit potential lies on the pixel in question. we then calculate the induced current by the carriers moving around somewhere, and then change the position of the WP to calculate the same current for another pixel. See explanation here - additions to make this more understandable would be very welcome!
In the light of answer 2 and looking at your weighting potential, I think “1” should be a good value for you The weighting potential does not extend even to neighboring pixels to a significant degree, so even in immediatate neighbors you don’t seem to expect significant induced currents. The weighting potential only needs to cover distances from the pixel on unit potential until where you get non-zero values. distance = 7 seems excessive.
Having said that, the weighting potential you are showing loosk suspicious to me, mostly because it has s a curiosly repeating pattern along x but not in y, this does not look like any shape I would expect. Are you sure your boundary conditions are set up properly? Maybe use the WeightingPotential Generator to generate a reference field to compare with - it uses the full pixel size as electride, which seems to be the case also in your plots above.
Regarding 2. I understand that the weighting field is unique for each electrode and that it is translated to each electrode in the simulation, but maybe I formulated it badly. By full weighting field I meant its full spatial width and depth in XY, since it only plots the weighting field for the (1,1) pixel and its extent to one pixel over, whilst the loaded one extends 7 pixels in each directions. I assume that the weighting field is plotted only for the (1,1) pixel and the spatial coordinates in the plot only extends to the neighboring pixels, and that the full extent of the weighting field for the pixel is used in the simulations?
And for 3. The weighting field does not extend significantly, but it is necessary for us to take at least 3-4 in each direction into account. Though I agree that 7 is a bit excessive, but better safe than sorry. And my question remains: in the X-direction, where the pitch is on the order of 10um, compared to Y where the pitch is a few hundred microns, can I have an asymmetric weighting field that extends to 7 neighboring pixels in the X-direction and only the adjacent 1 in the Y-direction?
I assume so since no errors are thrown. 4. In connection to 3. Does APSQ treat the points outside where the weighting field extends to as 0?
And regarding your final comments, could it be due to the highly asymmetric pixels(?) ->The scaling is very off since the pixels are ~504um in Y and 14um in X, with the electrodes being 501umx10um. I have imported the fields into Python and checked, and they seem correct there, centered and all. Though I do use an odd number of points, if that could cause problems(?)
Regarding the solving for the weighting potential, I use COMSOL and solve the Laplace equation with a 15 by 15 pixels grid,
all electrodes are at ground (the pixel electrodes and the backside electrode) except the center one,
the middle electrode is at unit potential,
the sides of the volume have a zero flux condition (Should be fine since it is far far away from the electrode of interest, but input is appreciated).
I then export the potential in a regular grid with the electrode of interest in the center.
Do you have any recommendations regarding the process?
I do basically the same for the electric field, but use the physics models of COMSOL.
sorry for the misunderstanding - now things become more clear to me
This is correct. The plotting is done for the central pixel and one ring around it, but the full WP will be used in the simulation. It is actually a good idea to extend the plotting to the full WP provided. I opened an issue for this.
This is correct, you can have an asymmetric WP without any issues. What happens in the Y direction is answered in 4.
Yes, all points outside the WP provided (along x and y that is) are treated as zero, i.e. there is no contribution in induced current to the pixel in question.
Your procedure for the WP simulation in COMSOL sounds reasonable (having no experience with COMSOL myself). I am not sure what the “zero flux” condition translates to, but there should be a difference between electric field (periodic boundary conditions) and weighting potential (no periodicity). I just wonder why there is a reappearing non-zero contributions at the outside of your outer pixels along x, but that might really be the electrode configuration - and the difference in y could indeed be explained by the order-of-magnitude larger pitch in that coordinate.
No worries at all, I think my explaining skills needs a bit of improvement as well
Great to hear that I am not completely off with the weighting field, but to expand on it a bit:
The zero flux just says that \overrightarrow{n}\cdot \nabla f = 0 where \overrightarrow{n} is the surface normal, and f is the potential. Does this sound like it would produce the correct weighting potential given the above boundary conditions as well?
The borders of the simulation volume are far away from the electrode of interest, so the effects should be negligible.
But there is something odd with the figures that comes out for the E-field. I don’t have access to the figures now, but I can try to explain: when I plot with output_plots_project = z and output_plots_projection_percentage = 1 I get essentially 0 (just white with nothing plotted) for all figures for all E-components. But if I change it to output_plots_projection_percentage = 0.999 I get some output that looks like what I would expect.
Again, I have double checked in Python that the field is correct, and plotting with output_plots_project = y and output_plots_projection_percentage = 0.5 shows correct. Is this perhaps also some artifact of ROOT plotting?