# Triangle - Simulation Object

Triangular objects denote physical objects that appear triangular from above. For 2D simulations, these objects represent triangles while in 3D these objects are extruded in the z direction to a specific height. They are actually polygon objects, with the number of vertices set to 3.

::tab title list::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::tab1 contents below::::::::::::::::::::::::::::::::::::::::::::::

- X, Y, Z: The center position of the object
- Z MIN, Z MAX: Z min, Z max position
- Z SPAN: Z span of the object
- ADD, DELETE: Add, delete vertices

## Setting the vertices of the polygon object

The vertices of the polygon object can be edited by

- moving them with the mouse,
- manually editing the x,y location of each vertex in the polygon property editor,
- script command

For complex shapes, scripting in the structure group is usually best. Once the script has calculated the x,y vertex positions, they can be loaded into the polygon object with a single set("vertices",V); command. For example, use the following code to create an octagon shaped object.

# octagon properties n_sides=8; r=1e-6; # x,y position of each corner theta=linspace(0,360,n_sides+1); theta=theta(1:n_sides); x=r*cos(theta*pi/180); y=r*sin(theta*pi/180); # combine x,y into one vertices matrix V=matrix(n_sides,2); V(1:n_sides,1)=x(1:n_sides); V(1:n_sides,2)=y(1:n_sides); # add polygon object and set the vertices addpoly; set("vertices",V);

*NOTE: Getting and modifying polygon vertices *

To get the polygon vertices, use the following command. The vertices will be returned in an Nx2 matrix. The columns of this matrix correspond to the X,Y positions of each vertex.

V=get("vertices"); ?size(V);

To modify a polygon vertex, you must get the vertices matrix, modify the vertex matrix as desired, then re-apply it to the polygon object:

V=get("vertices"); V(1,1)=V(1,1)+1e-6; # change the x position of the first vertex by 1um. set("vertices",V);

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::tab2 contents below::::::::::::::::::::::::::::::::::::::::::::::

The material options are as follows:

- MATERIAL: This field can be set to any material included in the material database. It is possible to include new materials in the database, or edit the materials already included. See the material database section for more information.
- OVERRIDE MESH ORDER FROM MATERIAL DATABASE: Select to override the mesh order from the material database and manually set a mesh order. The mesh order is used by the simulation engine to select which material to use when two materials overlap. See the mesh order (optical) or mesh order (electrical) section for more details.
- MESH ORDER: Set the mesh order in this field if the OVERRIDE MESH ORDER FROM MATERIAL DATABASE option is selected. If the option is not selected, the field displays the material's default mesh order from the database. For example, a material of mesh order 1 will take precedence over a material of mesh order 2.

The following only applies to MODE and FDTD:

If <Object defined dielectric> is selected, then the INDEX property must be set.

- INDEX: The refractive index of the structure, when the material type is <Object defined dielectric>. The index must be greater than one.
- Anisotropic index: To specify an anisotropic refractive index, use a semicolon to separate the diagonal xx,yy,zz indices. Eg. 1;1.5;1
- Spatially varying index: It is possible to specify a spatially varying refractive index by entering an equation of the variables x,y,z in this field. Eg. 2+0.1*x will create an object where the refractive index increases in the X direction. The units of the spatial variables (x,y,z) must be set with the 'INDEX UNITS' property described below. The variables x,y,z will be zero in the center of the object. When using an equation in this field, consider using a mesh override region to control the simulation mesh size. For more information on entering equations, see the Equation interpreter section.

- INDEX UNITS: Only relevant when specifying a spatially varying equation in the INDEX properly described above. Specify the units (nm, um, m) of the x,y,z position variables.
- GRID ATTRIBUTE NAME: Enter the name of the grid attribute that applies to this object, see the grid attribute section

The following only applies to CHARGE, HEAT, FEEM, DGTD:

If the material chosen from the drop down menu is a binary alloy consisting of two semiconductors, then there will be an additional property, namely, the "composition fraction" to set as well.

- COMPOSITION FRACTION: This is x, the fraction of the semiconductor in the alloy. x can either take a fixed value or vary.

The user can see which semiconductor has fraction x and which has fraction (1-x) shown in a line above this drop down menu.

- FIXED: This means that fraction x will be a constant value between 0 and 1.
- LINEAR X/Y/Z: This means that the composition fraction x will vary as a function x or y or z. In this case, user can specify the min and max fraction values for the min and max spatial points and the fraction will be interpolated linearly in between. x,y,z here are those of the unrotated object. x,y,z are local to the object.
- EQUATION: The user can enter an equation for the fraction that varies with u,v and w. u is (x-x0), v is (y-y0) and w is (z-z0) where x0, y0 and z0 are the center coordinates of the object. This means that u,v and w are local to the object.

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::tab3 contents below::::::::::::::::::::::::::::::::::::::::::::::

Rotate objects by setting the following variables:

- FIRST, SECOND, THIRD AXES: Select rotation axis. Up to three different rotations can be applied.
- ROTATION 1,2,3: The rotation of the object in a clockwise direction about each axis, measured in degrees.

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::tab4 contents below::::::::::::::::::::::::::::::::::::::::::::::

The graphical rendering tab is used to change how objects are drawn in the layout editor. The options are:

- RENDER TYPE: The options for drawing the objects are detailed or wireframe. Detailed objects are shaded and their transparency can be set using OVERRIDE COLOR OPACITY FROM MATERIAL DATABASE.
- DETAIL: This is a slider which takes values between 0 and 1. By default it is set to 0.5. Higher detail shows more detail, but increases the time required to draw objects. This setting has no effect on the simulation.
- OVERRIDE COLOR OPACITY FROM MATERIAL DATABASE: When unselected the opacity is determined from the material database. When selected, you can specify a value for ALPHA between 0 (transparent) and 1 (opaque) for the object, depending on how transparent you want the object to be.

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::