Segments of very different lengths should not be close to each other.


The program automatically checks to see if any two segments of very different length are close to each other.

The test is not used on pairs of segments that derive from the same electrode.

(The program also checks that electrodes are not overlapping.)


For example if two segments have lengths 1 and 0.001 and the distance between their centres is d, then the segments are judged to be too close when d < 3 (see below).


The number of subdivisions of the offending electrodes can be changed automatically by the program (by clicking on the relevant button at the bottom of the message screen). The choice is ‘increase’ or ‘decrease’. In ‘increase’ the number of segments is increased for the electrode that has the segments that are too large. In ‘decrease’ the number of segments is decreased for the electrode that has the segments that are too small. The best choice is usually ‘increase’. The program makes cautious changes, so more than one stage might be needed. The final overall changes to the subdivision numbers are given in the information box and the ray output file. The program does not put these changes into the primary data file, so they have to be made with the databuilder or manually.

To view these segments disable or modify  the test temporarily (in CPO2D use the option to create spaces between segments, to see them better).  Then restore the test -it is USUALLY VERY UNWISE not to do this, see below.


The tests carried out by the program are not completely exhaustive, so the user must carefully inspect the simulated system to check for overlaps.


The test should never be disabled for accurate simulations, unless

(1) the segments that fail the test are in unimportant regions and at the same time

(2) a separate simulation has established that the segments in the critical regions all pass the test.


In CPO3D the reason for the message about segments being too close is occasionally not obvious. It can happen for example when a disc with a hole starts with a certain number of segments but is then subdivided further by the program. A triangle at the inner edge is subdivided so that it still follows the inner edge, but then the subdivisions might be pushed outwards so that they overlap other triangles. In this case try starting with more segments.


The Boundary Element Method makes the approximation that the charge distributions on the segments are uniform. Therefore the potential distribution within about 3*l1 of the larger segment is not accurate, except at the centre of the segment. (But the potentials are of course very accurate further away.) This can spoil a simulation if the smaller segment is in a critical region, for example if the smaller segment is part of a cathode (and the larger segment might then be part of some surrounding electrode).



In more detail:

Put l1 and l2 = lengths of the larger and smaller segments respectively, where in CPO3D the 'length' is the maximum distance between the middle and any corner of the segment.

Put d = distance betwween the centres of the segments.

Put u1 = d/l1, u2 = LOG10(l1/l2).

Then the segments are judged to be too close when

u1 <= f*u2

where f is an empirical parameter.

The program pre-sets f to 1, but the user can change the value (see the 'Segment final number' page).

This criterion is empirical.

For example, if l1 = 1, l2 = 0.001, then the segments are judged to be too close when d < 3 for f = 1, or d < 1.5 for f = 0.5.


Examples for f = 1:

l1        l2        

1        0.1        1        too close

1        0.1        1.5        OK

1        0.01        2        too close

1        0.01        3        OK

1        0.001        3        too close

1        0.001        4        OK


Examples for f = 0.5:

l1        l2        

1        0.1        0.5         too close

1        0.1        1        OK

1        0.01        1        too close

1        0.01        1.5        OK

1        0.001        1.5        too close

1        0.001        2        OK


Examples for f = 0.1 (which would effectively disable the test for most simulations):

l1        l2        

1        0.1        0.1         too close

1        0.1        0.2        OK

1        0.01        0.2        too close

1        0.01        0.3        OK

1        0.001        0.3        too close

1        0.001        0.4        OK



See also general advice on segmentation.