# Containers 3D¶

<align3d> (or <align>)

Corresponding Python class: plask.geometry.Align3D.

Container in which all the items must have explicitly specified position. As the objects in this container may overlap, their order matters: latter items overwrite the former ones.

Attributes: name – Object name for further reference. In the script section, the object is available by GEO table, which is indexed by names of geometry objects. axes – Specification of the axes. Most popular values are xy, yz, rz (letters are names of the horizontal and vertical axis, respectively). role – Object role. Important for some solvers. back – Default value for longitudinal alignment specification: position of the back edge of the bounding box of each element. (float [µm]) front – Default value for longitudinal alignment specification: position of the front edge of the bounding box of each element. (float [µm]) longcenter – Default value for longitudinal alignment specification: position of the center of the bounding box of each element. (float [µm]) {X}center – where {X} is the longitudinal axis name: Alias for longcenter. {X} – where {X} is the longitudinal axis name: Default value for longitudinal alignment specification: position of the origin of each element. (float [µm]) left – Default value for transversal alignment specification: position of the left edge of the bounding box of each element. (float [µm]) right – Default value for transversal alignment specification: position of the right edge of the bounding box of each element. (float [µm]) trancenter – Default value for transversal alignment specification: position of the center of the bounding box of each element. (float [µm]) {Y}center – where {Y} is the transverse axis name: Alias for trancenter. {Y} – where {Y} is the transverse axis name: Default value for transversal alignment specification: position of the origin of each element. (float [µm]) top – Default value for vertical alignment specification: position of the top edge of the bounding box of each element. (float [µm]) bottom – Default value for vertical alignment specification: position of the bottom edge of the bounding box of each element. (float [µm]) vertcenter – Default value for vertical alignment specification: position of the center of the bounding box of each element. (float [µm]) {Z}center – where {Z} is the vertical axis name: Alias for vertcenter. {Z} – where {Z} is the vertical axis name: Vertical alignment specification: position of the origin of each element. (float [µm])

Attributes back, front, longcenter, {X}center, {X}, are mutually exclusive. Attributes left, right, trancenter, {Y}center, {Y}, are mutually exclusive. Attributes top, bottom, vertcenter, {Z}center, and {Z} are mutually exclusive. At most one alignment specification for each axis can be given. If alignment specification for some direction is not given, elements will be not alignment in this direction by default.

Contents:

The content of this element can be any number of other three-dimensional geometry object (is such case defaul alignment specifications are used) or <item> elements, which are aligned in the container according to its specification.

object

<item>
Attributes: path – Name of a path that can be later on used to distinguish between multiple occurrences of the same object. back – Longitudinal alignment specification: position of the back edge of the bounding box of the element. (float [µm]) front – Longitudinal alignment specification: position of the front edge of the bounding box of the element. (float [µm]) longcenter – Longitudinal alignment specification: position of the center of the bounding box of the element. (float [µm]) {X}center – where {X} is the longitudinal axis name: Alias for longcenter. {X} – where {X} is the longitudinal axis name: Longitudinal alignment specification: position of the origin of the element. (float [µm]) left – Transversal alignment specification: position of the left edge of the bounding box of the element. (float [µm]) right – Transversal alignment specification: position of the right edge of the bounding box of the element. (float [µm]) trancenter – Transversal alignment specification: position of the center of the bounding box of the element. (float [µm]) {Y}center – where {Y} is the transverse axis name: Alias for trancenter. {Y} – where {Y} is the transverse axis name: Transversal alignment specification: position of the origin of the element. (float [µm]) top – Vertical alignment specification: position of the top edge of the bounding box of the element. (float [µm]) bottom – Vertical alignment specification: position of the bottom edge of the bounding box of the element. (float [µm]) vertcenter – Vertical alignment specification: position of the center of the bounding box of each element. (float [µm]) {Z}center – where {Z} is the vertical axis name: Alias for vertcenter. {Z} – where {Z} is the vertical axis name: Vertical alignment specification: position of the origin of the element. (float [µm])

Attributes back, front, longcenter, {X}center, {X}, are mutually exclusive. Attributes left, right, trancenter, {Y}center, {Y}, are mutually exclusive. Attributes top, bottom, vertcenter, {Z}center, and {Z} are mutually exclusive. At most one alignment specification for each axis can be given. If alignment specification for some direction is not given, default value is used.

Contents:
A single three-dimensional geometry object.
<container3d> (or <container>)

Alias for <align3d>.

<container3d> (or <container>)

Alias for <align3d>.

<stack3d> (or <stack>)

Corresponding Python classes: plask.geometry.SingleStack3D (if repeat=1), plask.geometry.MultiStack3D (if repeat>1).

Stack organizing its elements on top of the other. Horizontal alignments of the stack elements can be controlled by the alignment attributes of the whole stack or its items.

Attributes: name – Object name for further reference. In the script section, the object is available by GEO table, which is indexed by names of geometry objects. axes – Specification of the axes. Most popular values are xy, yz, rz (letters are names of the horizontal and vertical axis, respectively). role – Object role. Important for some solvers. repeat – Number of repetitive occurrences of stack content. This attribute allows to create periodic vertical structures (e. g. DBRs) easily. Defaults to 1. (integer) shift – Vertical position of the stack bottom edge in its local coordinates. Defaults to 0. (float [µm]) back – Longitudinal alignment specification: position of the back edge of the bounding box of each element. (float [µm]) front – Longitudinal alignment specification: position of the front edge of the bounding box of each element. (float [µm]) longcenter – Longitudinal alignment specification: position of the center of the bounding box of each element. (float [µm]) {X}center – where {X} is the longitudinal axis name: Alias for longcenter. {X} – where {X} is the longitudinal axis name: Longitudinal alignment specification: position of the origin of each element. (float [µm]) left – Transversal alignment specification: position of the left edge of the bounding box of each element. (float [µm]) right – Transversal alignment specification: position of the right edge of the bounding box of each element. (float [µm]) trancenter – Transversal alignment specification: position of the center of the bounding box of each element. (float [µm]) {Y}center – where {Y} is the transverse axis name: Alias for trancenter. {Y} – where {Y} is the transverse axis name: Transversal alignment specification: position of the origin of each element. (float [µm])

Attributes back, front, longcenter, {X}center, {X}, are mutually exclusive. Attributes left, right, trancenter, {Y}center, {Y}, are mutually exclusive. Default alignment is left="0" and back="0".

Contents:

The content of this element can any number of other three-dimensional geometry object or <item> elements which are organized in the vertical stack, ordered from top to bottom.

object

<item>

Tag that allows to specify additional item attributes.

Attributes: path – Name of a path that can be later on used to distinguish between multiple occurrences of the same object. zero – The attribute can be specified only for one item. If present the stack must not have the shift attribute and there must be no  tag in the stack. For the item with zero attribute, the stack coordinates are matched to the local coordinates of the item: the origin of the stack will be vertically alligned with the item’s local vertical coordinate specified as the attribute value. {alignment} – Any of the stack alignment specification attributes (back, front, longcenter, {X}center, {X}, left, right, trancenter, {Y}center, {Y}) that overrides the stack default for the particular item.
Contents:
A single three-dimensional geometry object.
<zero/>

This tag can appear as a stack content only once and only if no item has zero attribute specified and the stack does not have the shift attribute. If present, it indicates the vertical position of origin of the local coordinate system. Hence, it is an alternative method of specifying shift value.