Hints, Tips and Solutions

How can I Mirror 3D structures in Victory Process ?

 

Introduction

Victory Process supports mesh generation for device simulation using many common algorithms. The primary two are conformal and delaunay. A simple process simulation followed by an export will result in a mesh modeling the device grown. If the device is a single array of a larger device, we can mirror at the export stage instead of creating a symmetrical structure during the process. This has the advantage of a faster process simulation.

Example delaunay export (Figure 1)

export victory(delaunay) name=”structure” \

max.size=0.1 \

distance.interface.materials=sio2 max.interface.size=0.025 \

max.interface.distance=0.5

 

Figure 1. Example Delaunay export (with interface refinement).

 

Mirroring

We support various forms of mirroring. The simplest is:

export victory(delaunay) name=”structure_a” \

mirror.process=”x+x” \

max.size=0.1 \

distance.interface.materials=sio2 max.interface.size=0.025 \

max.interface.distance=0.5

this would give one copy of the process mesh in the negative x-axis followed by another mirror in the positive x-axis before the device mesh is generated (Figure 2). Each operation in the mirroring string must be in the form [-+][0-9]*[xyz], so for example, we could also state “+2x”, or “+2x+y” etc.

Figure 2. Process mesh mirroring.

 

If we wish to mirror the device mesh itself:

export victory(delaunay) name=”structure_b” \

mirror.device=”x+x” \

max.size=0.1 \

distance.interface.materials=sio2 max.interface.size=0.025 \

max.interface.distance=0.5

 

would first generate the conformal mesh, then mirror it in the negative and then positive x-axis (Figure 3). The export is faster since the refinement is performed on the unmirrored mesh before the device mirroring occurs. Note that we now have symmetry in the exported device mesh.

Figure 3. Device mesh mirroring.

 

The mirror.process and mirror.device strings can be used together. For example:

export victory(delaunay)name=”structure_c” \

mirror.process=”x”mirror.device=”+x” \

max.size=0.1 \

distance.interface.materials=sio2 max.interface.size=0.025 \

max.interface.distance=0.5

will mirror the process mesh in the negative x-axis a single time, generate the conformal device mesh, and then mirror the device mesh in the positive x-axis. In this case we have four copies of the original structure (Figure 4), in a mesh which is symmetrical at x_max, where x_max is the x-axis bound of the input process mesh. Note that we only have a single line of mesh symmetry in this example.mirror.process mirrors the structure before the device mesh generation.

Figure 4. Process followed by Device mirroring.

The mirroring operations can also be combined with the crop/slice. For example:

export victory(delaunay) name=”structure_d” \

mirror.process=”x” mirror.device=”+x” \

crop.from = “0.25, 0.25” crop.to = “0.75, 0.75” \

max.size=0.1 \

distance.interface.materials=sio2 max.interface.size=0.025 \

max.interface.distance=0.5

will perform a crop-rectangle of the process mesh from the given points, mirror that, generate the device mesh, and then mirror that (Figure 5).

Figure 5. Crop then mirrored process mesh, followed by mirrored device.

 

Note: Cropping is currently only supported in cell mode.

We can also change the order of the crop/mirror operations:

export victory(delaunay) name=”structure_e” \

mirror.process=”x” mirror.device=”+x” \

crop.from = “0.75, 0.25” crop.to = “0.75, 0.75” \

process.ops.order = “mirror crop” \

max.size=0.1 \

distance.interface.materials=sio2 max.interface.size=0.025 \

max.interface.distance=0.5

will mirror the process, crop from the mirrored process structure, generate the device export, and then mirror that (Figure 6).

Figure 6. Process mesh mirror then crop followed by device mesh mirror.

 

Note: If process.ops.order is not specified, we crop then mirror by default.

We can also apply the mirroring string multiple times, for example:

export victory(delaunay) name=”structure_f” \

mirror.process=”x” mirror.device=”+x” \

crop.from = “0.5, 0.25” crop.to = “0.5, 0.75” \

process.ops.order = “mirror crop mirror” \

max.size=0.1 \

distance.interface.materials=sio2 max.interface.size=0.025 \

max.interface.distance=0.5

will mirror the process mesh, crop it, mirror it again, generate the device mesh, and then mirror it. The mirroring string used during the process will be -x, while that for the device is +x. Figure 7 shows an example.

Figure 7. Process mirror, crop, mirror followed by device mirror.

 

Conclusions

The mirroring operation can be used to mirror the process and/or device mesh. It is a powerful export operation that greatly minimizes the runtime of the process stage of a simulation. In cell mode, it can also be used in combination with the crop/slice operation to generate array type structures from smaller subsections of the process mesh.