SIMION® Industry standard charged particle optics simulation software.
About | Documentation | Community/Support | Downloads | Ordering

Info: Multiple PAs

From SIMION

It is simplest and least error-prone to simulate your entire system as a single PA in SIMION. SIMION's Refine function solves the Laplace equation globally over the entire system (simple). However, in some cases a single PA is not ideal. It may require too many grid points to achieve the required accuracy. You may have a certain critical region in your system where a certain high density of grid points is required. Since the grid point density must be uniform throughout the PA, the overall density is determined by the critical region. One way to greatly reduce the number of grid points is to use a PA with a certain symmetry (e.g. 2D cylindrical or 2D planar). Doing so is not entirely accurate though if even a small part of your system lacks that symmetry (e.g. even if your system is "mostly" cylindrically symmetric except for some small region).

As an optimization, SIMION allows you place multiple PAs into a workbench. Each PA is Refined independently, which means that SIMION treats each PA as an independent system. The Laplace equation is solved independently on each PA rather than once globally over the entire system. When an ion flies through the workbench, at most one electrostatic PA instance (the highest priority one) is active (affects the ion) at a time.

Obviously, there are caveats in doing that. You need to ensure that the individual field calculations are identical to the single field calculation. Mainly, you need to ensure that the Laplace equation remains satisfied on and between the boundaries of the smaller potential arrays. It helps to be familar with the properties of the Laplace Equation such as the First Uniqueness Theorem. In general terms, the fields must "match up" between PA instances.

The method: If you want to use muiltiple PAs, it is recommended that you first simulate the system as a single PA as a starting point. Use that to observe the fields and fringing effects to determine where it is appropriate to cut the PA so that the Refine calculation is still valid. You may need to establish an artificial electrode boundary on the cut PA (due to the First Uniqueness Theorem) via the Copy function mentioned below. Whatever you do, the fields in the multi-PA system must resemble the fields in the original single-PA system.

The quadrupole example (http://www.simion.com/files/dmanura/quad1.html) (_Quad) in SIMION 7.0 is a good example of using multiple PAs. This system has almost 2D planar symmetry on the long rods, but the entrance and exit lenses break that symmetry, so a 3D array would typically be needed. It would be desirable, therefore, to cut the system into three potential arrays: a 3D entrance lens, a 3D exit lens, and the rods with 2D planar symmetry (at high resolution). To do this, the system was first modeled as one big (but course) potential array. The result provided an indication of how far the fields penetrate through the entrance and exit. The system was then cut into three potential arrays at locations far enough away from the entrance and exit such that the fields are largely 2D symmetric along the length of the rods.

For details, see the following:

  • SIMION 8.0 Manual Section 7.2.4 under "Interpolating Electrostatic Fields Between Instances" (~p.7-10) (or p.7.8 of the SIMION 7.0 manual)
  • SIMION 8.0 Manual Section 9.2 (or SIMION 7.0 Manual, p. 9-2 to 9-4) "Advanced Strategies and Tactics - Doing more with Array Instances"
  • quad example in SIMION 8.0 or 7.0
  • SIMION 8.0 Manual Section 7.6.2 "The Copy Button" (or SIMION 7.0 Manual, p. 7-38 to 7-39)

An Advanced Example: Overlay Fine and Coarse Arrays

The following example demonstrates how to overlay a fine grid inside a course grid and properly set the boundary conditions in the fine grid. The example is of a pointed cathode. We model the full system in a course grid and critical cathode region in a fine grid.

First we create GEM files that define the size and scaling of the fine and course grids:

point-big.gem:

pa_define(201,101,1,cylindrical)
include(point.gem)

point-small.gem:

pa_define(401,201,1,cylindrical)
locate(-200,0,0, 10) {
  include(point.gem)
}

Both GEM files share a third GEM file by inclusion that defines the actual geometry:

point.gem:

e(0) {
  fill { within { box(0,0, 0,100) } }
  fill { within { polyline(0,0, 40,0, 0,20) } }
}
e(1) {
  fill { within { box(200,0, 200,100) } }
}

In SIMION, convert the point-big.gem to a potential array point-big.pa. It looks like this in Modify:

Image:Multi1.png

Refine point-big.pa (refined here to 1e-7 convergence) and go back into Modify.

In point-big.pa, we want to convert the non-electrode points that will be on the boundary of the intersection of the two PAs to electrode points since View's Copy function we will use only copies electrode points between arrays. Further, we want to convert any electrode points inside the intersection of the two PAs to non-electrode points (since we don't want View's Copy to copy any other points). We can do this in Modify by enabling the "Find" function with it set to find "Non-Electrode" points with Potential "0" V "+-" "1" V, marking a box around the boundary between the two PAs (i.e. from (x,y)=(20,0) to (x,y)=(60,20)), clicking "Edge F", specifying "change only type" with "Type" set to "Non-Electrode", and clicking "OK".

Image:Multi2.png

As shown below, the edge of this boundary box has been converted to electrode points. Importantly, the potentials on the box have the same potentials as the refined non-electrode points replaced:

Image:Multi3.png

The next step is similar. Convert all points inside the box to non-electrode points (to prevent View's Copy function from copying them). As before, we enable "change only type" this process (though it's not as important here).

Image:Multi3b.png

We see the result below. The location where the fine array will be placed is empty except for the electrode points on the boundary, which will be copied into the fine array.

Image:Multi3c.png

Save the potential array.

Now, convert point-small.gem to a potential array point-small.pa. It looks like this in Modify:

Image:Multi4.png

Save it.

Now, the following step is only required when using View's Copy function to copy into a 2D potential array since the function currently (as of version 8.0.2) supports copying onto 3D potential arrays only. The trick is we use the "Set" function in Modify to temporarily convert both 2D point-small.pa and point-big.pa to 3D potential arrays (with z=3). Answer "Yes" to any questions. You may need to increase the "max PA size" on the main screen to 10 million points or so and reload the arrays so that there's enough free allocated space to do this. Save both potential arrays.

Image:Multi5.png

Now View point-small.pa in View. Important: in general, do not refine if prompted to (our modified PAs might not refine correctly).

In the PAs tab, add the point-big.pa as well. Select the point-small.pa instance and set its scale to 0.1 and its Xwb+ to 20 so that the two potential array instance properly overlap. Notice that we have "point-small.pa" being the first instance in the list (for now at least), which is required since Copy points into the selected instance (point-small.pa) from instances listed after it (point-big.pa). Also, on the Workbench tab, you probably want to click "Min" to minimize the workbench size to tightly fit around your PA instances.

Now, with the point-small.pa selected in the PA instance list, click the "Copy" button. This copies electrode points from the later instances into the currently selected instance. Particularly, we are copying the calculated boundary conditions from the course PA into the fine PA.

Image:Multi6.png

At this time you may view point-small.pa in Modify to verify that the points were copied correct. (Note: the boundary is fairly thick--about 10 grid units. It would be a good idea to use Modify to cut the boundary back to 1 grid unit. The voltages across the boundary are also stepped every 10 grid units, which also would be best to improve (somehow).)

It's important at this time to convert both PA's back to 2D cylindrical using the "Set" function in Modify. Save both PAs.

Image:Multi7.png

Go back into View. (Note: there's no need to rerefine if asked to, though it's shouldn't hurt in this case, but beware in general that the boundaries in your coarse array will still refine correctly after the modifications to it.)

A potential energy view with contours is shown below. Note that the potentials generally match up on the boundary as required.

Image:Multi8.png

Before flying particles, switch the order of the two PA instances in the PAs tab (with PE view off, click "L-" with point-big.pa selected). This makes the course PA a lower priority than the fine PA. Particles flying inside the fine PA will see the (more precise) fields from the fine PA rather than from the coarse PA.

Any comments on this web page? (will be sent to SIS)
[Optional] Your name: email: phone/fax:
(c) 2003-2006 Scientific Instrument Services, Inc. (SIS). Contact SIS.