# Structures - Primitives

The button includes options to to add the following primitive structures:

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.

Rectangular regions denote physical objects that appear rectangular from above. For 2D simulations, these objects represent rectangles while in 3D these objects are extruded to a specific height.

Polygons allow the user to define a custom object with a variable number of vertices. The location of each vertex can be independently positioned within a plane, and the vertices are connected with straight lines. For 3D simulations, the object is extruded in the z dimension. In CHARGE, HEAT, FEEM and DGTD the vertices have to be entered in a counter clock wise manner for the structure to be defined and meshed properly.

Circles denote physical objects which appear circular or ellipsoid from above. They are either circles/ellipses in 2D, or circular/ellipsoid cylinders in 3D.

Ring regions represent physical objects that consist of full or partial rings when viewed from above. Rings in 3D simulations are extruded in the z direction to a specific height.

Waveguide allows the users to create a waveguide having an isosceles trapezoidal cross section and a Bézier-curved path.

In 3D simulations, users can define spherical regions of constant refractive index through the spherical physical object. Spherical objects only exist in 3D simulations.

Pyramids can be configured to half flat tops and/or flat bottoms, and either narrow or expand in the vertical z direction. Pyramids are only available for 3D simulations.

The planar solid object behaves like the polygon structure, however script commands are used to specify all the vertices and facets of the structure.

## Other primitives (Optical Solvers only)

Custom primitives can be used to create customized surfaces, specified via parametric equations. The resulting surfaces can either exist on one or more faces of the object, or can be used to define a cylindrically-symmetric surface of revolution.

Surface primitives can be used to define complex material volumes that exist above or below analytically defined surfaces. In 3D simulations, a surface (S) is defined as a function of variables u and v, i.e. S = S(u,v). The variables (u,v) can represent (x,y), (x,z) or (y,z) depending on the surface orientation. Similarly, in 2D simulations, a surface is defined as a function of u (S = S(u)) where u can represent x or y.

This is a true 2D rectangle (or a surface object), which has no thickness in the normal direction. This object can be used with the graphene model using the surface conductivity approach.